How iit-dlslab/sim2real-robot-identification works
This repository identifies robot dynamics and motor parameters using real-robot recordings and either MuJoCo or IsaacLab/Pace simulation. The main workflow is to configure a robot, collect joint-state and control data through ROS 2, then fit parameters against that recording and inspect the resulting report or robot model. It also supports replaying and plotting recordings and maintains models for several robots. The graph reflects the README and sampled entry points; wiring inside unsampled fitting and replay code is left out where it cannot be established.
Main entry points: sysid_mujoco/my_fit.py MuJoCo fitter · sysid_isaaclab/my_fit.py IsaacLab fitter · datasets Trajectory recordings · run_collection_quadruped_ros2.py ROS collectors
Components 20
Data collection
- ROS collectors
run_collection_quadruped_ros2.py - Manipulator collector
run_collection_manipulator_ros2.py - ROS messages
ros2_ws/src/dls2_interface/msg/BlindState.msg - Robot settings
config.py
Parameter fitting
- MuJoCo fitter
sysid_mujoco/my_fit.py - MuJoCo utilities
sysid_mujoco/common.py - Fit report
sysid_mujoco/my_fit.py - IsaacLab fitter
sysid_isaaclab/my_fit.py - Pace robot tasks
sysid_isaaclab/tasks
Robot assets
- Robot models
robot_model - Identified parameters
robot_model/go2/isaaclab_identified_parameters.py
Dataset inspection
- Quadruped replay
datasets/replay_dataset_quadruped.py - Manipulator replay
datasets/replay_dataset_manipulator.py - Trajectory plotter
datasets/plot_joint_trajectories.py
Other components
- Operator
- Physical robot
- Trajectory recordings
datasets - MuJoCo
- Pace Sim2Real
- IsaacLab simulator
Connections 31
- Operator → ROS collectors: starts collection
- Operator → Manipulator collector: starts collection
- ROS collectors → Robot settings: reads settings
- Manipulator collector → Robot settings: reads settings
- ROS collectors → ROS messages: uses messages
- Manipulator collector → ROS messages: uses messages
- Physical robot → ROS collectors: sends state
- ROS collectors → Physical robot: sends control
- Physical robot → Manipulator collector: sends state
- Manipulator collector → Physical robot: sends control
- ROS collectors → Trajectory recordings: writes recordings
- Manipulator collector → Trajectory recordings: writes recordings
- Operator → MuJoCo fitter: runs fit
- MuJoCo fitter → Trajectory recordings: reads recordings
- MuJoCo fitter → MuJoCo utilities: uses utilities
- MuJoCo fitter → Robot models: selects model
- MuJoCo fitter → MuJoCo: fits parameters
- MuJoCo fitter → Fit report: generates report
- Operator → IsaacLab fitter: runs fit
- IsaacLab fitter → Trajectory recordings: reads recording
- IsaacLab fitter → Pace robot tasks: loads task
- IsaacLab fitter → Pace Sim2Real: uses environment
- IsaacLab fitter → IsaacLab simulator: steps simulation
- Pace robot tasks → Robot models: loads robot asset
- IsaacLab fitter → Identified parameters: estimates parameters
- Operator → Quadruped replay: replays recording
- Operator → Manipulator replay: replays recording
- Operator → Trajectory plotter: plots recording
- Quadruped replay → Trajectory recordings: reads recording
- Manipulator replay → Trajectory recordings: reads recording
- Trajectory plotter → Trajectory recordings: reads recording