How watonomous/pioneer_humanoid works
Pioneer is a humanoid-robot software and firmware repository. Its documented real-robot workflow connects operator teleoperation or a deployed policy through ROS 2/CAN interfacing to embedded motor firmware, with perception alongside it. A second workflow collects demonstrations in simulation or on hardware, records datasets, and trains policies; simulation RL is a separate capability. The graph preserves those branches and the documented perception, robot-model, and FreeRTOS subsystems. Broad workflow edges cite the README; unsampled implementations are represented by their exact enclosing directories.
Main entry points: real_arm.py Leader-arm teleop · joint_command_core.cpp Joint commands · humanoid_mujoco_scenes MuJoCo scenes · recording Dataset recording
Components 19
Robot and firmware
- Robot model
src/pioneer_humanoid/pioneer_humanoid/bimanual_arm.py - Joint commands
src/interfacing/joint_command/src/joint_command_core.cpp - CAN bridge
src/interfacing/can/src/can_node.cpp - STM32 firmware
src/embedded/STM32/src/main.cpp - FreeRTOS kernel
src/embedded/STM32/lib/FreeRTOS-Kernel
Perception
- Camera calibration
src/perception/camera_calibration/calibrate_intrinsics.py - Visual odometry
src/perception/slam/prototype/vo.py - Shuttlecock tracking
src/perception/perception/perception - Voxel mapping
src/perception/voxel_grid/voxel_grid/voxel_grid_node.py
Teleoperation
- Leader-arm teleop
src/teleop/pioneer_leader_arm_teleop/real_arm.py - Quest teleop
src/teleop/quest_controller_teleop/scene_driver.py - Synthetic tasks
src/teleop/pioneer_leader_arm_teleop/synthetic/synthetic_tasks.py
Simulation and RL
- MuJoCo scenes
src/simulation/mujoco_scenes/humanoid_mujoco_scenes - Badminton simulation
src/simulation/badminton - Humanoid RL tasks
src/simulation/humanoid_rl_tasks/humanoid_rl_tasks
Learning and deployment
- Dataset recording
src/robot_learning/humanoid_robot_learning/recording - Policy training
src/robot_learning/humanoid_robot_learning/train.py - Policy deployment
src/robot_learning/humanoid_robot_learning/deploy/pioneer_interface.py
Other components
- Operator
Connections 20
- Operator → Leader-arm teleop: drives
- Operator → Quest teleop: controls
- Leader-arm teleop → Joint commands: commands
- Quest teleop → MuJoCo scenes: controls simulation
- Synthetic tasks → MuJoCo scenes: generates demonstrations
src/teleop/pioneer_leader_arm_teleop/synthetic/synthetic_tasks.py - MuJoCo scenes → Dataset recording: supplies demonstrations
- Leader-arm teleop → Dataset recording: records demonstrations
src/teleop/pioneer_leader_arm_teleop/real_arm.py - Dataset recording → Policy training: provides datasets
- Policy training → Policy deployment: produces policies
- Policy deployment → Joint commands: commands robot
- Joint commands → CAN bridge: sends ROS commands
- CAN bridge → STM32 firmware: exchanges CAN frames
- STM32 firmware → FreeRTOS kernel: runs on
- Robot model → Leader-arm teleop: configures arm
src/teleop/pioneer_leader_arm_teleop/real_arm.py - Operator → Camera calibration: calibrates cameras
- Camera calibration → Visual odometry: calibrates camera input
- Shuttlecock tracking → Joint commands: informs motion
- Operator → Badminton simulation: runs simulations
- Humanoid RL tasks → Policy training: trains RL policies
- Voxel mapping → Operator: provides mapped environment