Remaining steps to actually play badminton on the real robot, now that PR #179 has landed most of the sim/RL work:
- Fix real camera → EKF wiring —
shuttlecock_localizer_node.py publishes to /perception/shuttlecock/detections_3d, but trajectory_EKF_prediction_node.py subscribes to /shuttle_states; reconcile the topic names and add the localizer node (+ TrackNetV3 detector) to perception.launch.py, which currently only wires the synthetic dummy_tracknet_output path into the EKF.
- Build the missing perception → policy bridge — real EKF/localizer output needs to be reshaped into the 61-dim
student observation layout (humanoid_badminton/perception_command.py) the trained policy actually expects; nothing does this today.
- Finish training all 3 RL stages to a checkpoint — teacher PPO → distillation → student PPO fine-tune (
src/simulation/badminton/README.md); confirm a final checkpoint exists under models/.
- Write a real-time ROS2 inference node — load the trained checkpoint, subscribe to perception, publish joint commands through
src/interfacing/ (CAN bridge), respecting the hardware speed cap already modeled in sim.
- Hardware validation — mount/validate the racket holder (
assets/badminton_holder/, currently unused) on the real arm, and validate the scripted FSM baseline (baseline/fsm.py) on hardware before trusting RL policy output on real motors.
Due date
No response
Remaining steps to actually play badminton on the real robot, now that PR #179 has landed most of the sim/RL work:
shuttlecock_localizer_node.pypublishes to/perception/shuttlecock/detections_3d, buttrajectory_EKF_prediction_node.pysubscribes to/shuttle_states; reconcile the topic names and add the localizer node (+ TrackNetV3 detector) toperception.launch.py, which currently only wires the syntheticdummy_tracknet_outputpath into the EKF.studentobservation layout (humanoid_badminton/perception_command.py) the trained policy actually expects; nothing does this today.src/simulation/badminton/README.md); confirm a final checkpoint exists undermodels/.src/interfacing/(CAN bridge), respecting the hardware speed cap already modeled in sim.assets/badminton_holder/, currently unused) on the real arm, and validate the scripted FSM baseline (baseline/fsm.py) on hardware before trusting RL policy output on real motors.Due date
No response