How andymuji/e works
This repository is a ROS 2 home-robot prototype with a local operator interface. Its user-facing workflow is to save named poses, request a destination through the web console or voice, and submit a navigation goal; the navigation stack plans motion while a separate safety gate constrains it. Mapping/SLAM, simulation, location management, and run telemetry are additional capabilities. Several launch and integration modules are listed but not excerpted, so links involving them are based on README documentation rather than inspected launch code.
Main entry points: navigation.launch.py Navigation bringup · location_node.py Named locations · console_node.py ROS console node · voice_node.py Voice ROS node
Components 27
Operator control
- Web control API
web_ui/app.py - Web interface
web_ui/web/app.js - ROS console node
robot/ros2_ws/src/robot_console/robot_console/console_node.py - Goal dispatcher
robot/ros2_ws/src/robot_console/robot_console/goal_dispatcher.py - Map provider
robot/ros2_ws/src/robot_console/robot_console/map_provider.py - Occupancy image
robot/ros2_ws/src/robot_console/robot_console/occupancy_image.py
Mapping and navigation
- Named locations
robot/ros2_ws/src/robot_locations/robot_locations/location_node.py - Location store
robot/ros2_ws/src/robot_locations/robot_locations/location_store.py - Pose and goal types
robot/ros2_ws/src/robot_core/robot_core/interfaces.py - SLAM mapping
robot/ros2_ws/src/robot_bringup/launch/slam.launch.py - World-to-map conversion
robot/ros2_ws/src/robot_bringup/robot_bringup/world_to_map.py - Navigation bringup
robot/ros2_ws/src/robot_bringup/launch/navigation.launch.py - Grid planner
robot/ros2_ws/src/robot_navigation/robot_navigation/grid_planner.py - Robot footprint
robot/ros2_ws/src/robot_navigation/robot_navigation/footprint.py
Safety gate
- Console safety adapter
robot/ros2_ws/src/robot_console/robot_console/safety_adapter.py - Safety ROS node
robot/ros2_ws/src/robot_safety/robot_safety/safety_node.py - Safety decisions
robot/ros2_ws/src/robot_safety/robot_safety/safety_controller.py - Obstacle distances
robot/ros2_ws/src/robot_safety/robot_safety/distances.py
Voice commands
- Voice ROS node
robot/ros2_ws/src/robot_voice/robot_voice/voice_node.py - Speech recognition
robot/ros2_ws/src/robot_voice/robot_voice/recognizer.py - Intent parser
robot/ros2_ws/src/robot_voice/robot_voice/intent_parser.py - Command gateway
robot/ros2_ws/src/robot_voice/robot_voice/command_gateway.py
Run telemetry
- Telemetry recording
robot/ros2_ws/src/robot_telemetry/launch/record.launch.py - Run records
robot/ros2_ws/src/robot_telemetry/robot_telemetry/records.py - Safety invariants
robot/ros2_ws/src/robot_telemetry/robot_telemetry/invariants.py - Run report
robot/ros2_ws/src/robot_telemetry/robot_telemetry/report.py
Other components
- Robot operator
Connections 26
- Robot operator → Web interface: uses
- Web interface → Web control API: requests
- Web control API → Goal dispatcher: dispatches goals
web_ui/app.py - ROS console node → Web control API: serves
robot/ros2_ws/src/robot_console/robot_console/console_node.py - ROS console node → Map provider: provides map
robot/ros2_ws/src/robot_console/robot_console/console_node.py - Map provider → Occupancy image: renders map
robot/ros2_ws/src/robot_console/robot_console/map_provider.py - Goal dispatcher → Named locations: sends named goals
- Named locations → Location store: reads and writes
robot/ros2_ws/src/robot_locations/robot_locations/location_node.py - Location store → Pose and goal types: creates goals
robot/ros2_ws/src/robot_locations/robot_locations/location_store.py - Named locations → Navigation bringup: publishes navigation goals
robot/ros2_ws/src/robot_locations/robot_locations/location_node.py - SLAM mapping → Navigation bringup: supplies saved map
- World-to-map conversion → SLAM mapping: converts map inputs
- Navigation bringup → Grid planner: uses planning
- Navigation bringup → Robot footprint: configures footprint
- Navigation bringup → Safety ROS node: routes motion through
- ROS console node → Console safety adapter: controls safety
robot/ros2_ws/src/robot_console/robot_console/console_node.py - Safety ROS node → Safety decisions: evaluates commands
robot/ros2_ws/src/robot_safety/robot_safety/safety_node.py - Safety ROS node → Obstacle distances: checks obstacles
- Voice ROS node → Speech recognition: recognizes speech
- Voice ROS node → Command gateway: routes commands
robot/ros2_ws/src/robot_voice/robot_voice/voice_node.py - Command gateway → Intent parser: parses transcript
- Voice ROS node → Named locations: requests allow-listed goals
- Telemetry recording → Run records: captures run data
robot/ros2_ws/src/robot_telemetry/robot_telemetry/records.py - Safety invariants → Run records: checks records
robot/ros2_ws/src/robot_telemetry/robot_telemetry/invariants.py - Run report → Safety invariants: summarizes checks
robot/ros2_ws/src/robot_telemetry/robot_telemetry/report.py - Run report → Run records: uses records
robot/ros2_ws/src/robot_telemetry/robot_telemetry/report.py