How shreyasjb112007-stack/arachnid works
ARACHNID is a rover platform whose current runtime is a React mission-control UI and FastAPI backend, connected over Wi-Fi TCP to the rover’s ESP32 hardware. The main workflow runs from operator commands or sensor telemetry, through backend safety, state and hardware services, to motor commands or live map/telemetry updates in the UI. Backend autonomy adds pose estimation, mapping, exploration and planning; the README also documents a separate legacy ROS 2 stack. Relationships in the production graph are limited to those supported by excerpts or README statements; the ROS 2 branch is documented but not wired into the current runtime.
Main entry points: engine.py Autonomy Engine · gateway.py Hardware Gateway · useRover.tsx Rover State Hook · main.py Backend Application
Components 32
Mission Control UI
- Mission Control App
software/frontend/src/App.tsx - Rover State Hook
software/frontend/src/hooks/useRover.tsx - HTTP API Client
software/frontend/src/services/api.ts - WebSocket Client
software/frontend/src/services/websocket.ts - Live Map
software/frontend/src/components/LiveMap.tsx - Dashboard View
software/frontend/src/pages/DashboardPage.tsx
Backend Runtime
- Data Schemas
software/backend/models/schemas.py - HTTP API Routes
software/backend/api/routes.py - Rover State
software/backend/services/rover_state.py - Safety Manager
software/backend/safety/manager.py - Hardware Gateway
software/backend/hardware/gateway.py - Hardware Adapters
software/backend/hardware/adapters.py - Simulator Engine
software/backend/hardware/simulator/engine.py - WebSocket Manager
software/backend/websocket/manager.py - Backend Application
software/backend/main.py
Autonomy and Mapping
- Autonomy Engine
software/backend/autonomy/engine.py - Pose Estimator
software/backend/autonomy/pose_estimator.py - Global Mapper
software/backend/autonomy/mapper.py - Path Planner
software/backend/autonomy/planner.py - Frontier Explorer
software/backend/autonomy/explorer.py
Rover Hardware
- Brain ESP32
- Drive ESP32
- Motor Drivers
Legacy ROS 2
- ROS Occupancy Mapping
ros2_ws/src/mapping/mapping/occupancy_grid_node.py - ROS Frontier Exploration
ros2_ws/src/exploration/exploration/exploration_manager.py - ROS Navigation Planner
ros2_ws/src/navigation/navigation/planner_node.py - ROS Odometry
ros2_ws/src/odometry/odometry/odometry_node.py - ROS Velocity Control
ros2_ws/src/navigation/navigation/velocity_controller.py - ROS Motor Bridge
ros2_ws/src/motor_bridge/motor_bridge/motor_bridge_node.py - ROS Sensor Interface
ros2_ws/src/sensor_interface/sensor_interface/sensor_node.py - ROS Localization
ros2_ws/src/localization/localization/localization_node.py
Other components
- Operator
Connections 40
- Operator → Mission Control App: operates
README.md - Mission Control App → Rover State Hook: provides context
software/frontend/src/App.tsx - Mission Control App → Live Map: renders
software/frontend/src/App.tsx - Dashboard View → Rover State Hook: reads state
software/frontend/src/pages/DashboardPage.tsx - Live Map → Rover State Hook: reads map
software/frontend/src/components/LiveMap.tsx - Rover State Hook → HTTP API Client: requests data
software/frontend/src/hooks/useRover.tsx - Rover State Hook → WebSocket Client: subscribes to events
software/frontend/src/hooks/useRover.tsx - Operator → Rover State Hook: issues commands
- Backend Application → HTTP API Routes: registers routes
software/backend/main.py - Backend Application → Hardware Gateway: starts gateway
software/backend/main.py - Backend Application → Autonomy Engine: starts autonomy
software/backend/main.py - Backend Application → WebSocket Manager: manages socket clients
software/backend/main.py - HTTP API Routes → Safety Manager: validates commands
software/backend/api/routes.py - HTTP API Routes → Rover State: reads status
software/backend/api/routes.py - HTTP API Routes → Hardware Gateway: sends commands
software/backend/api/routes.py - Safety Manager → Rover State: checks and updates
software/backend/safety/manager.py - Hardware Gateway → Hardware Adapters: uses adapters
software/backend/hardware/gateway.py - Hardware Gateway → Rover State: updates state
software/backend/hardware/gateway.py - Hardware Gateway → WebSocket Manager: broadcasts telemetry
software/backend/hardware/gateway.py - Simulator Engine → Hardware Adapters: implements provider
software/backend/hardware/simulator/engine.py - Rover State Hook → HTTP API Routes: HTTP requests
README.md - WebSocket Client → Backend Application: opens WebSocket
README.md - Backend Application → WebSocket Manager: broadcasts events
software/backend/main.py - Autonomy Engine → Pose Estimator: uses estimator
software/backend/autonomy/engine.py - Autonomy Engine → Global Mapper: updates map
software/backend/autonomy/engine.py - Autonomy Engine → Path Planner: plans paths
software/backend/autonomy/engine.py - Autonomy Engine → Frontier Explorer: selects frontiers
software/backend/autonomy/engine.py - Autonomy Engine → Rover State: reads status
software/backend/autonomy/engine.py - Autonomy Engine → Hardware Gateway: sends commands
software/backend/autonomy/engine.py - Autonomy Engine → WebSocket Manager: publishes updates
software/backend/autonomy/engine.py - Hardware Gateway → Brain ESP32: Wi-Fi TCP telemetry and commands
README.md - Brain ESP32 → Drive ESP32: relays UART commands
README.md - Drive ESP32 → Motor Drivers: drives
README.md - ROS Odometry → ROS Velocity Control: provides encoder math
ros2_ws/src/navigation/navigation/velocity_controller.py - ROS Occupancy Mapping → ROS Frontier Exploration: publishes map input
- ROS Frontier Exploration → ROS Navigation Planner: publishes frontier targets
- ROS Navigation Planner → ROS Velocity Control: uses path control
- ROS Sensor Interface → ROS Occupancy Mapping: supplies sensor data
- ROS Localization → ROS Navigation Planner: supplies pose
- ROS Velocity Control → ROS Motor Bridge: sends velocity commands