Created by Riddhiman Laha, Marvin Becker, Jonathan Vorndamme, Juraj Vrabel, Luis F.C Figueredo, Matthias A. Müller, and Sami Haddadin from the Technical University of Munich and Leibniz University Hannover.
This repository contains the code regarding the paper:
"Predictive Multi-Agent based Planning and Landing Controller for Reactive Dual-Arm Manipulation", IEEE Transactions on Robotics, 2023.
The repository contains all the code necessary for running the predictive multi-agent-based planning and landing controller described in the paper.
The accompanying video for the work can be found here.
If you find our work useful in your research, please consider citing:
@article{laha2023predictive,
author={Laha, Riddhiman and Becker, Marvin and Vorndamme, Jonathan and Vrabel, Juraj and Figueredo, Luis F.C. and Müller, Matthias A. and Haddadin, Sami},
journal={IEEE Transactions on Robotics},
title={Predictive Multi-Agent based Planning and Landing Controller for Reactive Dual-Arm Manipulation},
year={2024},
volume={40},
number={},
pages={864-885},
doi={10.1109/TRO.2023.3341689}}
The code is only tested on Ubuntu 18.04 and Ubuntu 20.04. The following packages need to be installed:
- CoppeliaSim https://www.coppeliarobotics.com/downloads
- ROS Melodic/Noetic http://wiki.ros.org/ROS/Installation
- DQ Robotics including the CoppeliaSim interface (formerly V-REP) https://dqrobotics.github.io/. Note that you need to add the stable release PPA and not the development PPA.
sudo apt install ros-noetic-rviz-visual-tools ros-noetic-franka-* ros-noetic-moveit ros-noetic-moveit-visual-tools ros-noetic-rosparam-shortcuts
- Create a folder for the catkin workspace and clone the repository:
mkdir -p <CatkinWSRootFolder>/pmaf_ws/
cd <CatkinWSRootFolder>/pmaf_ws/
git clone https://github.com/riddhiman13/predictive-multi-agent-framework.git
- Initialize catkin workspace, adjust compile arguments and compile:
catkin init
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build
- Start CoppeliaSim in headless mode with a loaded scene, e.g.:
cd <CoppeliaSimRootFolder>
./coppeliaSim.sh -h <CatkinWSRootFolder>/pmaf_ws/src/bimanual_planning_ros/vrep_scenes/dual_arms.ttt
- In a new terminal: start the CoppeliaSim interface and load the desired task sequence, e.g.:
roslaunch bimanual_planning_ros vrep_interface_dual_arms.launch task_sequence:=dual_arms_static1
- In a new terminal: start the planning and control nodes, e.g.:
roslaunch bimanual_planning_ros planning_moveit_dual_arms.launch
- In the same terminal (planning node): hit enter to start planning.
For the simulations with the Kobo robot, replace "dual_arms" with "kobo" in the launch files, load the kobo.ttt in CoppeliaSim and use the corresponding task sequences.
The multi-agent planner (without robot) can be accessed here: https://github.com/riddhiman13/multi_agent_vector_fields.
Note that the last obstacle that is defined in the task sequence .yaml is only used for self collision avoidance with repulsive force generation. Also note that touching spheres are not merged automatically and need to be merged manually such that the current vectors are not defined in a way such that the robot is guided in between them (cf. the trap-like obstacle in Fig.~9(c), or the sphere in Fig.~9(b) of the paper).
Detailed information on the scenarios and parameters for all simulations in the paper are available at Dataset: Predictive Multi-Agent based Planning and Landing Controller for Reactive Dual-Arm Manipulation.
Only the code in src/bimanual_planning_ros is written and owned by us. All other code in this repository is from third parties and belongs to the ROS planning software stack and the MoveIt motion planning framework, for more details see: