This package is a modified version of the original ROBOTIS turtlebot3_manipulation package. It is built to accomodate launching bringup and navigation scripts on multiple TurtleBots.
-
Compatibility check: These scripts are intended for use with ROS Noetic Ninjemys and Ubuntu 20.04.
-
Communication setup: Make sure all TurtleBots can communicate with your PC on one network. Additionally, timesync each TurtleBot to your PC (for this, we used chrony).
-
LDS driver: Since this package uses namespaces to differentiate between TurtleBots, you must hard-code a field for the namespace into the TurtleBot's LDS driver file. If you intend to use the scripts in this package, be sure to first edit each TurtleBot's ld08_driver.cpp file according to the suggestions by “dominik-polic” on this GitHub issue thread.
On your PC, run roscore.
roscore
On each TurtleBot's SBC, launch its bringup launch file with the namespace specified.
ROS_NAMESPACE={NAME_OF_YOUR_NAMESPACE} roslaunch turtlebot3_bringup turtlebot3_robot.launch multi_robot_name:="{NAME_OF_YOUR_NAMESPACE}" set_lidar_frame_id:="{NAME_OF_YOUR_NAMESPACE}/base_scan"
On your PC, launch the manipulation launch file to bring up the manipulation nodes for all of the TurtleBots' arms.
roslaunch turtlebot3_manipulation_bringup multi_turtlebot3_manipulation_bringup.launch
On your PC, run this script to launch the robot_state_publisher node, laser filtering, AMCL, and RViz.
roslaunch turtlebot3_manipulation_navigation multi_turtlebot_navigation.launch
The final step involves launching the action client/server scripts in the mutli_mobile_manipulation_control package. Click the link and follow the instructions in the README to send trajectories to your TurtleBots.
By default, the scripts listed in the instructions above assume you are using two TurtleBots. The scripts can be easily modified to accomodate different numbers of robots, but for simplicity, below are the scripts you should run if you are testing on one or three TurtleBots.
If using one TurtleBot:
-
In Step 3, replace
multi_turtlebot3_manipulation_bringup.launch
withsingle_ns_turtlebot3_manipulation_bringup.launch
-
In Step 4, replace
multi_turtlebot_navigation.launch
withsingle_ns_turtlebot_navigation.launch
.
If using three TurtleBots:
-
In Step 3, replace
multi_turtlebot3_manipulation_bringup.launch
withthree_turtlebot3_manipulation_bringup.launch
. -
In Step 4, replace
multi_turtlebot_navigation.launch
withthree_turtlebot_navigation.launch
.
[Coming soon...]
Old text (remove?) This repository contains packages for multi mobile manipulation tasks using team of turtlebots with open manipulators. The repository is developed on top of the ROBOTIS repository: https://github.com/ROBOTIS-GIT/turtlebot3_manipulation