Skip to content

intelligent-control-lab/APEX-MR

Repository files navigation

APEX-MR

Project Page ArXiv

Multi-Robot Asynchronous Planning and Execution for Cooperative Assembly
Philip Huang*, Ruixuan Liu*, Shobhit Aggarwal, Changliu Liu, Jiaoyang Li
Carnegie Mellon University
RSS 2025


This is the code repository for APEX-MR, our planning and execution framework for dual-arm LEGO assembly.

Installation

Prerequisites

Gurobi (optional): If you would like to search over all possible LEGO grasp/support poses (i.e. $P = 28$), you need a Gurobi license for stability estimation. Academics may request a free license from the Gurobi website here; after obtaining the license, place it in your home directory or another recommended location. - If you do not have access to Gurobi, you can still run the code with the default LEGO grasp poses (i.e. $P = 1$) computed by our automated assembly sequence planner

Docker Installation

Build the docker image and run it inside docker

cd docker && bash build.sh

Native Installtaion with ROS

If you are not using the docker file, the following setup has been tested on Ubuntu 20.04 with ROS Noetic. You may need to install some system dependencies

Once you have download ros, and other system deps, under your catkin_ws/src, download the robot model to your workspace

Under the catkin_ws/src workspace, doanload the code. Then use catkin build to compile the code.

Run APEX-MR

Task Planning

To generate the task assignment for lego task, run

roslaunch apex_mr lego_assign.launch task:=cliff

You should see a message saying lego assignment success.

Motion Planning and TPG construction

To compute the motion plan for lego assembly and build the corresponding TPG for asynchronous execution, run

roslaunch apex_mr lego.launch task:=cliff

You should see a lego planning success

Planning params

vmax:=X to set maximum velocity scale, default X = 1
adg_shortcut_time:=X to set the time for TPG shortcutting, default X = 1s
sync_plan:=true to run the sync planning baseline
sync_shortcut_time:=X to set the time for RRT-Connect,shortcutting, default X = 0.1s

Target LEGO assembly are specified under config/lego_tasks/assembly_tasks.
Description of the LEGO assembly plate are specified under config/env_setup/assembly_tasks

Running the experiments in paper

We provide a script to run all 9 LEGO assemblies from the paper in simulation

python3 scripts.py/benchmark.py

Note that the exact results may be slightly different from the numbers reported in our paper.

Citation

If you find this repository useful for your research, please cite the following work.

@inproceedings{huang2025apexmr,
              title = {APEX-MR: Multi-Robot Asynchronous Planning and Execution for Cooperative Assembly},
              author = {Huang, Philip and Liu, Ruixuan and Aggarwal, Shobhit and Liu, Changliu and Li, Jiaoyang},
              year = {2025},
              info = {https://intelligent-control-lab.github.io/APEX-MR/},
              booktitle = {Robotics: Science and Systems},
              url = {https://arxiv.org/abs/2503.15836}
            }

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages