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 GUI, we have a Python FastAPI backend that bridges it to Robot Operating Software 2 (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
Complex VisualsThree.js (3D), Leaflet (Maps)
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


Have a suggestion for features? Put it here!