A joint calibration routine for IsaacLab and Mujoco, to estimate motor parameters. It provides scripts for data collection on the real robot (the robot should be in the air with the base fixed if a quadruped, or on a table if a manipulator). This repo interfaces directly with Pace and the new sys-id functionality of Mujoco.
The models (usd and xml) identified so far can be found in the folder robot_model.
-
install miniforge (x86_64 or arm64 depending on your platform)
-
create an environment using the file in the folder installation
conda env create -f mamba_environment_ros2.yaml
conda activate sim2real_robot_identification_ros2_env- install IsaacLab if you need it
This repo works best with unitree-ros2-dls for communicating with unitree go2, b2, a2, and z1 robots. Soon, will support agilex piper arms using piper-ros2-dls2.
-
Choose the robot and the gains in the config file
-
In the xml of your robot, add two keyframe (sys_id_1, sys_id_2) to define the start and end point of the chirp trajectory (see here for an example)
-
Runs one of the following files
python3 run_collection_quadruped_ros2.py
python3 run_collection_manipulator_ros2.pymodifying inside USE_MUJOCO_RENDER and USE_MUJOCO_SIMULATION depending on your usecase
- Visualize your trajectory running
python3 datasets/replay_dataset_quadruped.py
python3 datasets/replay_dataset_manipulator.pypython3 sysid_isaaclab/my_fit.py --headlesspython3 sysid_mujoco/my_fit.py PRs are very welcome (search for TODO in the issue, or add what you like)!
This repository is maintained by Giulio Turrisi and Lorenzo Amatucci.

