This document summarizes the integration of the LeRobot SO-101 arm into the DISCOVERSE simulation environment.
- Defines
SO101BaseandSO101Cfg. - Handles the MuJoCo simulation interface for the SO-101 robot.
- Configures sensors (joint positions, velocities, end-effector pose) and actuators.
- Loads the robot model from
mjcf/lerobot_so101/xml/so101_tabletop_manipulation_generated.xml.
- Defines
SO101TaskBase, inheriting fromSO101Base. - Provides a foundation for robotic tasks, including methods for:
- Resetting state (
resetState) - Updating control signals (
updateControl) - Checking action convergence (
checkActionDone)
- Resetting state (
- Includes
recoder_so101for recording task data (actions and observations) to disk.
- Implements
SO101_IKusing the Mink library. - Solves for joint positions given a target end-effector position and orientation.
- Configured specifically for the 6-DOF SO-101 arm (5 arm joints + 1 gripper), targeting the
gripperframesite relative tobaseframe.
4. Example Task: Pick Milk (examples/tasks_so101/so101_pick_milk.py) THIS DOESN'T WORK PROPERLY YET, the frame transforms are off
- A complete example script utilizing
SO101TaskBaseandSO101_IK. - Implements a state machine to:
- Hover over the milk object.
- Open the gripper.
- Descend to grasp position.
- Close the gripper.
- Lift the object.
- Demonstrates batch data generation and recording.
- Domain Randomization: The
domain_randomizationmethod inSO101TaskBaseis currently a placeholder and needs to be implemented for robust policy training. - Complex Interactions: Current success checks are simple (e.g., height check). More complex interaction logic might be needed for advanced tasks.