/predictive-multi-agent-framework

Repository for predictive dual-arm reactive motion planning

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Predictive Multi-Agent-Based Planning and Landing Controller

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. qual_ex_2_sc2

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.

Video

The accompanying video for the work can be found here.

Citation

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}}

Requirements

The code is only tested on Ubuntu 18.04 and Ubuntu 20.04. The following packages need to be installed:

Additional requirements

sudo apt install ros-noetic-rviz-visual-tools ros-noetic-franka-* ros-noetic-moveit ros-noetic-moveit-visual-tools ros-noetic-rosparam-shortcuts

Installation and Compilation

  1. 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
  1. Initialize catkin workspace, adjust compile arguments and compile:
catkin init
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build

Startup

  1. 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
  1. 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
  1. In a new terminal: start the planning and control nodes, e.g.:
roslaunch bimanual_planning_ros planning_moveit_dual_arms.launch
  1. 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.

Additional Information

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.

Disclaimer

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: