How safwansatil/yeah-science- works
Yeah, Science is a desktop ground station paired with a separate local rover simulator. The main workflow is: an operator connects and drives through the Qt interface; the station coordinates controls and UDP traffic; the simulator applies differential-drive motion and reports telemetry for display in the field view and metrics. Session notes and event logging are additional station capabilities. The README documents the UI features and startup wiring; sampled source confirms the coordinator, packet, transport, and simulator behavior, but not the internal QML bindings.
Main entry points: controller.py Station coordinator · simulator/__main__.py Simulator process · app/__main__.py Station launcher · telemetry.py Telemetry state
Components 15
Ground Station UI
- Station window
qml/Main.qml - Mouse controls
qml/DrivePad.qml - Telemetry cards
qml/Metric.qml - Rover field view
qml/RoverView.qml - Session notes
qml/EventLog.qml - Settings panel
qml/SettingsPanel.qml
Station Coordination
- Station launcher
app/__main__.py - Configuration
app/config.py - Station coordinator
app/controller.py - Telemetry state
app/telemetry.py
UDP Link
- Packet codec
link/packets.py - Station UDP link
link/udp.py
Rover Simulator
- Simulator process
simulator/__main__.py - Rover motion model
simulator/rover.py
Other components
- Operator
Connections 19
- Operator → Mouse controls: uses controls
- Operator → Station window: views station
- Station launcher → Configuration: loads settings
- Station launcher → Station coordinator: creates coordinator
- Station launcher → Station window: loads window
- Station window → Mouse controls: presents controls
- Mouse controls → Station coordinator: sets drive
- Settings panel → Station coordinator: changes speed
- Station coordinator → Telemetry state: updates telemetry
- Station coordinator → Packet codec: encodes commands
- Station coordinator → Packet codec: decodes replies
- Station coordinator → Station UDP link: sends and polls
- Telemetry state → Telemetry cards: supplies readings
- Telemetry state → Rover field view: supplies pose
- Station coordinator → Session notes: supplies events
- Station UDP link → Simulator process: exchanges datagrams
- Simulator process → Packet codec: decodes and encodes
- Simulator process → Rover motion model: applies commands
- Rover motion model → Simulator process: provides telemetry