Skip to content

Teleop Overview

What is the role of the Teleoperations team?

Section titled “What is the role of the Teleoperations team?”

The Teleoperations (Teleop) team ensures the rover’s physical systems are easily controllable by a human operator. We build and maintain key systems that allow operators to command the rover and receive feedback in real time.

The Base Station GUI is a Vue.js web app that serves as the main interface for operating the rover. It:

  • Captures controller inputs (Xbox, Thrustmaster joystick)
  • Displays GPS, camera, and sensor data
  • Sends waypoints to auton
  • Controls devices used in science sample acquisition

and more…

To support the frontend, we have a Python FastAPI backend that bridges the GUI to ROS2. It:

  • Maintains WebSocket connections per subsystem (arm, drive, nav, science, etc.)
  • Forwards ROS2 topics to the frontend via msgpack-serialized WebSocket messages
  • Publishes controller inputs from the frontend to ROS2 topics
  • Stores persistent data like GPS waypoints in SQLite
  • Computes robotic arm commands (throttle, IK position, IK velocity)
LayerTechnology
FrontendVue 3, TypeScript, Vite, Pinia, Tailwind CSS
3D / MapsThree.js, Leaflet
BackendPython, FastAPI, uvicorn
CommunicationWebSocket + msgpack binary serialization
DataSQLite
RuntimeBun (JS), ROS2 rclpy (Python)

Teleop Quickstart

Teleop FAQ

Vue Introduction

Tailwind Introduction

GUI Styling Guidelines

WebSocket Handlers Lookup

Teleop Starter Project

Sample Vue Component