How ocularbear8/avr-2022 works
AVR-2022 is a drone/vehicle control stack: operators use the desktop GUI to monitor telemetry and issue commands; VMC services process sensor data and control flight/peripherals; PCC firmware drives onboard hardware. The graph emphasizes this workflow and preserves the visible map, autonomy, thermal, logging/debug, and telemetry interfaces. VMC module paths and MQTT roles are inferred from the tree and sampled entry points; unsampled wiring is omitted where it cannot be established.
Main entry points: app.py GUI application · main.cpp PCC firmware · mqtt.py MQTT connection · vio.py Visual odometry
Components 28
Operator GUI
- GUI application
GUI/app.py - Connections tab
GUI/app/tabs/connection/main.py - MQTT connection
GUI/app/tabs/connection/mqtt.py - Serial connection
GUI/app/tabs/connection/serial.py - Autonomy
GUI/app/tabs/autonomy.py - Moving map
GUI/app/tabs/moving_map.py - VMC control
GUI/app/tabs/vmc_control.py - VMC telemetry
GUI/app/tabs/vmc_telemetry.py - Thermal view
GUI/app/tabs/thermal_view_control.py - MQTT debug
GUI/app/tabs/mqtt_debug.py - MQTT logger
GUI/app/tabs/mqtt_logger.py - PCC tester
GUI/app/tabs/pcc_tester.py
VMC Flight Software
- Flight control
VMC/fcm/fcc_control.py - Sensor fusion
VMC/fusion/fusion.py - Visual odometry
VMC/vio/vio.py - VIO transforms
VMC/vio/vio_library.py - AprilTag processing
VMC/apriltag/python/apriltag_processor.py - Peripheral manager
VMC/pcm/pcm.py - Thermal service
VMC/thermal/thermal.py - Status lights
VMC/status/status.py
Peripheral Controller
- PCC firmware
PCC/src/main.cpp - Serial parser
PCC/libraries/AVR_SerialParser/serial_lib.cpp - Servo driver
PCC/libraries/AVR_ServoDriver/avr_servo.cpp - LED driver
PCC/libraries/AVR_NeoDriver/avr_led.cpp
Other components
- Operator
- MQTT broker
- Flight controller
- Camera
Connections 42
- Operator → GUI application: operates
- GUI application → Connections tab: builds
- GUI application → Autonomy: builds
- GUI application → Moving map: builds
- GUI application → VMC control: builds
- GUI application → VMC telemetry: builds
- GUI application → Thermal view: builds
- GUI application → MQTT debug: builds
- GUI application → MQTT logger: builds
- GUI application → PCC tester: builds
- Connections tab → MQTT connection: embeds
- Connections tab → Serial connection: embeds
- GUI application → MQTT connection: connects signals
- VMC control → MQTT connection: publishes commands
- MQTT connection → MQTT broker: publishes/subscribes
- MQTT debug → MQTT connection: receives messages
- MQTT logger → MQTT broker: logs messages
- Moving map → MQTT broker: reads telemetry
- VMC telemetry → MQTT broker: reads telemetry
- Autonomy → MQTT broker: sends actions
- Thermal view → MQTT broker: reads/sets thermal
- PCC tester → Serial connection: tests serial device
- Serial connection → PCC firmware: serial commands
- PCC firmware → Serial parser: polls packets
- PCC firmware → Servo driver: drives servos
- PCC firmware → LED driver: drives LEDs
- PCC firmware → Peripheral manager: serial link
- Flight control → MQTT broker: publishes/subscribes
- Flight control → Flight controller: controls via MAVSDK
- Sensor fusion → MQTT broker: publishes/subscribes
- Visual odometry → VIO transforms: transforms pose
- Visual odometry → Camera: captures frames
- Visual odometry → MQTT broker: publishes telemetry
- AprilTag processing → Camera: processes imagery
- AprilTag processing → MQTT broker: publishes detections
- Peripheral manager → MQTT broker: publishes/subscribes
- Thermal service → MQTT broker: publishes/subscribes
- Status lights → MQTT broker: subscribes status
- Sensor fusion → Flight control: feeds fused data
- Visual odometry → Sensor fusion: provides pose
- AprilTag processing → Sensor fusion: provides detections
- Peripheral manager → PCC firmware: sends peripheral commands