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.
Base Station GUI
Section titled “Base Station GUI”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…
FastAPI Backend
Section titled “FastAPI Backend”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)
Tech Stack
Section titled “Tech Stack”| Layer | Technology |
|---|---|
| Frontend | Vue 3, TypeScript, Vite, Pinia, Tailwind CSS |
| 3D / Maps | Three.js, Leaflet |
| Backend | Python, FastAPI, uvicorn |
| Communication | WebSocket + msgpack binary serialization |
| Data | SQLite |
| Runtime | Bun (JS), ROS2 rclpy (Python) |