![]() |
This project integrates a ROS 2 development environment with Docker and provides packages for the description and simulation of the UR5 workbench, developed by the Paris Robotics Lab and referred to as Mantis.
Provides a Docker environment for developing with ROS 2 (jazzy), including the UR Driver to interact with UR robots (UR3, UR5, UR10, etc.). The container includes all necessary tools for simulation and communication with both physical and simulated robots.
Contains the Mantis description, including 3D model files necessary for visualizing and simulating the UR5 robot in ROS 2.
Launch files and configuration for simulating the UR5 robot in Gazebo.
Configuration files for ROS 2 controllers and launch files to spawn controllers for Mantis parts.
Configuration and launch files to control the UR5 robot using path planning solvers in ROS 2 with MoveIt.
Launch file to access the real robot by starting the driver and enabling control.
- Docker installed (tested on
linux/amd64; not supported on ARM). - Compatible version of ROS 2 (Humble).
- Gazebo for simulation if intended.
Create a shared folder on your host machine that will be mounted inside the Docker container:
mkdir ~/docker_sharedBuild and run the Docker container using the provided script:
cd prl_ur5_ros2/docker_ros2
./start_docker.bash my_container ~/docker_shared ros[!TIPS] If you want to disable GPU sharing, add the
--no-gpuoption when running the./start_docker.bashscript.
Warning
If you plan to use the Orbbec Femto Mega, you must install the Orbbec SDK ROS 2 on your local machine. Follow these steps:
git clone https://github.com/orbbec/OrbbecSDK_ROS2.git -b v2-main
cd OrbbecSDK_ROS2/orbbec_camera/scripts
sudo bash install_udev_rules.sh
sudo udevadm control --reload-rules && sudo udevadm triggerAfter installing dependencies, rebuild all packages:
Note
After the build, you may see an error related to the realsense package. You can ignore this error, as it does not affect the setup.
colcon build --symlink-install
source install/setup.bashModify configuration files to reflect your specific setup.
Important
Refer to prl_ur5_robot_configuration README for network and robot setup.
Important
If you want to use different controller than the default loaded one, you can modify the controllers_setup.yaml file in the prl_ur5_robot_configuration package to load the desired controller by default when launching the real robot. Please verify that the controller match with a controller into the plr_ur5_control/config/dual_arm_controller.yaml package.
ros2 launch prl_ur5_description view_mantis.launch.pyros2 launch prl_ur5_gazebo start_gazebo_sim.launch.pyros2 launch prl_ur5_run sim.launch.pyAlternatively, you can customize the launch by enabling or disabling specific components such as RViz, Gazebo GUI, or MoveIt. Use the following command with the desired parameters:
ros2 launch prl_ur5_run sim.launch.py launch_rviz:=<true|false> gazebo_gui:=<true|false> launch_moveit:=<true|false>To use the UR5 robot with a real setup, you need to modify the robot's network info in standard_setup.yaml of the prl_ur5_robot_configuration package.
Launch control of the real robot:
ros2 launch prl_ur5_run real.launch.pyAlternatively, you can customize the launch by enabling or disabling specific components such as RViz or MoveIt. Use the following command with the desired parameters:
ros2 launch prl_ur5_run real.launch.py launch_rviz:=<true|false> launch_moveit:=<true|false>- ROS 2 Version: Jazzy is recommended.
- Gazebo: Ensure it is installed and configured for ROS 2.
- Dependencies: If issues arise, consult individual package documentation or open an issue in the relevant repo.

