Skip to content

Badminton: sim-to-real integration checklist #282

Description

@wilsonchenghy

Remaining steps to actually play badminton on the real robot, now that PR #179 has landed most of the sim/RL work:

  1. Fix real camera → EKF wiringshuttlecock_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.
  2. 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.
  3. 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/.
  4. 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.
  5. 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions