How lecar-lab/asap works
ASAP is a humanoid whole-body skill-learning and transfer project built on HumanoidVerse. Its principal workflow prepares/retargets motion, trains a tracking or delta-action policy in a task on a selectable simulator, evaluates the checkpoint, then deploys policies in simulation or on a real robot. The graph preserves these distinct stages and the documented simulator choices. README workflows and sampled runtime files support the main links; links for unsampled training and retargeting internals are limited to explicitly documented relationships.
Main entry points: train_agent.py Training entry · eval_agent.py Evaluation entry · base_simulator.py Simulator interface · deepmimic_dec_loco.py Sim2real policies
Components 26
Motion preparation
- Shape fitting
scripts/data_process/fit_smpl_shape.py - Motion fitting
scripts/data_process/fit_smpl_motion.py
Policy learning
- Training entry
humanoidverse/train_agent.py - RL algorithms
humanoidverse/agents - Policy modules
humanoidverse/agents/modules - Delta action model
humanoidverse/agents/delta_dynamics/delta_dynamics_model.py - Evaluation entry
humanoidverse/eval_agent.py - Policy export
humanoidverse/utils/inference_helpers.py
Simulation runtime
- Motion tracking task
humanoidverse/envs/motion_tracking/motion_tracking.py - Locomotion task
humanoidverse/envs/locomotion/locomotion.py - Delta action tasks
humanoidverse/envs/delta_a - Legged task base
humanoidverse/envs/legged_base_task/legged_robot_base.py - Simulator interface
humanoidverse/simulator/base_simulator/base_simulator.py - Isaac Gym
humanoidverse/simulator/isaacgym/isaacgym.py - Isaac Sim
humanoidverse/simulator/isaacsim/isaacsim.py - Genesis
humanoidverse/simulator/genesis/genesis.py
Policy deployment
- Sim2sim policies
sim2real/rl_policy - Sim2real policies
sim2real/rl_policy/deepmimic_dec_loco.py - Observation history
sim2real/utils/history_handler.py - State processing
sim2real/utils/state_processor.py - Robot commands
sim2real/utils/command_sender.py
Motion and state
- Motion library
humanoidverse/utils/motion_lib/motion_lib_base.py - Skeleton motion
humanoidverse/utils/motion_lib/skeleton.py
Other components
- Researcher
- SMPL / AMASS data
- Unitree robot
Connections 31
- Researcher → Shape fitting: prepare shape
- SMPL / AMASS data → Shape fitting: fit shape
- Researcher → Motion fitting: prepare motion
- SMPL / AMASS data → Motion fitting: retarget motion
- Motion fitting → Motion library: produces motions
- Motion library → Skeleton motion: uses skeletons
- Researcher → Training entry: configure training
- Training entry → RL algorithms: instantiates
- Training entry → Motion tracking task: trains task
- Training entry → Locomotion task: trains task
- Training entry → Delta action tasks: trains task
- RL algorithms → Policy modules: uses modules
- RL algorithms → Delta action model: trains model
- Motion tracking task → Motion library: loads motion
- Motion tracking task → Legged task base: extends
- Locomotion task → Legged task base: extends
- Delta action tasks → Legged task base: uses base
- Legged task base → Simulator interface: steps simulation
- Simulator interface → Isaac Gym: selects adapter
- Simulator interface → Isaac Sim: selects adapter
- Simulator interface → Genesis: selects adapter
- Researcher → Evaluation entry: evaluate checkpoint
- Evaluation entry → RL algorithms: loads policy
- Evaluation entry → Motion tracking task: runs environment
- Evaluation entry → Policy export: exports policy
- Researcher → Sim2sim policies: deploy policy
- Researcher → Sim2real policies: deploy policy
- Sim2real policies → Observation history: updates and reads
- Sim2real policies → State processing: processes state
- Sim2real policies → Robot commands: sends actions
- Robot commands → Unitree robot: commands robot