Skip to content

Dual-Arm Data Generation

In this section, we introduce how to perform dual-arm data generation using GenManip. This section should be read together with the Advanced Data Generation section, and essentially serves as a concrete application scenario of the Advanced Data Generation section.

To perform dual-arm data generation, you need to download some assets. You can download the assets using the following command:

Terminal window
python standalone_tools/download_assets.py --dataset all-robot

Dual-arm data generation builds upon the large-scale data generation described in the previous section. Therefore, we do not repeat the details of large-scale data generation here, and instead directly introduce the dual-arm setup. Specifically, we replace the single-arm RoboTiq robot used previously with the dual-arm Aloha robot.

To achieve this, you only need to make the following modifications.

First, modify the robot configuration to replace the single-arm RoboTiq robot with the dual-arm Aloha robot.

robots:
- config:
gripper_type: aloha_split
type: aloha_split

Next, modify the task configuration by adding the arm: auto field.

goal:
- - obj1_uid:
- obj1_0
obj2_uid:
- obj2
position:
- top
arm: auto
fixed_position: true

With this field enabled, the program will automatically select the arm that is closest to the grasp pose to perform the grasp.

That is all.

The complete configuration file can be found in the Codebase, and you can use it directly.

Terminal window
# Make sure the AnyGrasp service is running
python demogen.py -cfg configs/tasks/scaling_up/system1_scaling_14kobj_object_container_fgrandpos_bgrandpos_fgclip_NOrobotbaserandpos_bgcache10_bgclip_3L2obsAlign_refineActionSpace_aloha.yml
python render.py -cfg configs/tasks/scaling_up/system1_scaling_14kobj_object_container_fgrandpos_bgrandpos_fgclip_NOrobotbaserandpos_bgcache10_bgclip_3L2obsAlign_refineActionSpace_aloha.yml