This repository shows the coordination between two UR5 robots in ROS and Gazebo where one is the master and the other is the slave. Both the master and the slave uses the Robotiq85 gripper for grasping and are attached with a camera sensor for detecting the objects. The master robot detects the object placed at the starting position using the camera and brings it close to the slave robot. The slave robot detects the object from the master's gripper and grasps it. Finally the slave robot brings the object at the final position. The master and slave robot performs three functionalities:
-
Object detection using the camera sensor (
ur5_vision_master.py
) and (ur5_vision_slave.py
) -
Motion planning using python moveit_commander interface (
motion_planning_master.py
) and (motion_planning_slave.py
). -
Grasping action using the GripperActionController (
send_gripper_master.py
) and (send_gripper_slave.py
)
-
Video demo:
Simulation video on Youtube
-
How to cite this repository:
Khuzema Basuwala. M, Coordinating two UR5 robots for a pick and place with Robotiq85 Grippers, (2020), GitHub repository, https://github.com/murtazabasu/Coordinating-Two-UR5-Robots-for-a-Pick-and-Place-Task.git
- This project was tested on Ubuntu 18.04 with ROS Melodic.
- Make sure you have installed Python2.7 and some useful libraries/packages, such as Numpy, cv2, etc.
- Install ROS Melodic, Gazebo, universal robot, Moveit, RViz.
- This repo was created with the workspace name as
catkin_ws3/src
- Assuming your workspace is named as
catkin_ws3
, download the repository tocatkin_ws3/src/
$ cd catkin_ws3/src $ git clone https://github.com/murtazabasu/Coordinating-Two-UR5-Robots-for-a-Pick-and-Place-Task.git
Under the catkin_ws3/src
there are three directories:
robotiq
for the robotiq85 gripperunivesal_robot
for the ur5 robot models and moveit configuration filesur5_notebook
for the launch files and the python scripts
- Build the code under directory
catkin_ws3/
,$ catkin_make $ source devel/setup.bash
- Run the code with ROS and Gazebo
The motion planning and the gripper nodes for both the master and the slave can be initialized in the above launch file itself (uncomment the lines at the bottom) or each script can be made to run individually on seperate terminals.
$ roslaunch ur5_notebook initialize.launch