![]() |
ros2_pick_and_place_ur5 repositoryrobotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic |
![]() |
ros2_pick_and_place_ur5 repositoryrobotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic |
![]() |
ros2_pick_and_place_ur5 repositoryrobotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic |
![]() |
ros2_pick_and_place_ur5 repositoryrobotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic |
![]() |
ros2_pick_and_place_ur5 repositoryrobotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic moveit_ur5_interface moveit_ur5_msgs pnp_actionlib pnp_msgs robotiq_description ur5_gripper_description ur5_gripper_moveit_config |
Repository Summary
Description | This repository contains ROS2 packages for controlling a UR5 robot with a Robotiq gripper, facilitating precise pick and place operations using MoveIt and providing a comprehensive toolkit for ROS2-based UR5 manipulation. |
Checkout URI | https://github.com/juotungchen/ros2_pick_and_place_ur5.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-01-09 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | robotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
moveit_ur5_interface | 0.0.0 |
moveit_ur5_msgs | 0.0.0 |
pnp_actionlib | 0.0.0 |
pnp_msgs | 0.0.0 |
robotiq_description | 0.0.0 |
ur5_gripper_description | 0.0.0 |
ur5_gripper_moveit_config | 0.0.0 |
README
ROS2 pick and place for UR5 using Moveit2
This repo provides ROS2 packages for initiating a pick-and-place service for the UR5 Robotic Manipulator combining a Robotiq85 2 DoF gripper.
It is part of the following project: AR pick and place with UR5
Prerequisites
The following Linux version as well as the ROS distribution is required:
- Ubuntu 20.04 / ROS 2 Galactic Geochelone
</br>
Packages in the Repository:
-
moveit_ur5_msgs
- custom message package containing one srv message for moveit_ur5_interface. -
moveit_ur5_interface
- a service/client interface to control the UR5 robot using moveit2. -
pnp_msgs
- custom message package containing three action messages for pnp action. -
pnp_actionlib
- implementation of a pnp action service for the UR5 robot. -
robotiq_description
- description files for the robotiq gripper: meshes, URDF/XACRO files, etc. -
ur5_gripper_description
- description files for the UR5 combined with the gripper. -
ur5_gripper_moveit_config
- MoveIt configuration for UR5 with the gripper.
</br>
Installation
- First you’ll need to clone this repo into the src folder of your workspace
cd <COLCON_WS>/src
git clone https://github.com/JuoTungChen/ROS2_pick_and_place_UR5.git
- To control the UR5, the official UR5 driver needs to be installed.
You can install it by running the following command:
vcs import src < galactic.repos
- To control the gripper, the official gripper driver needs to be installed.
You can follow this link to setup the driver for the gripper: gripper driver installation guide
</br>
Moveit UR5 msgs
This package provides a custom service type to request trajectory planning from Moveit2.
The message moveit_ur5_msgs/srv/PlanRequest has the following format:
geometry_msgs/Pose target
---
string result
</br>
Moveit UR5 Interface
This package provides a service/client interface between the official Universal Robots ROS2 Driver and the Moveit2 API. The package takes position commands through the custom service moveit_ur5_msgs
described above and generates a trajectory for the robot using Moveit2. It then uses the UR5 ROS2 driver to control the robot and follow the trajectory.
Launch Files
The package provides the following launch files:
-
ros2 launch moveit_ur5_interface moveit_ur5_interface_sim.launch
This launch file is used when you don’t have the actual UR5 and want to see it in simulation. It starts the UR5 driver with fake hardware controller and the Moveit2 server. It launches the UR5 Moveit configuration with the gripper attached to the end effector and opens Rviz. You can call services or run a client node that publishes the target pose to move the robot to anywhere you want. -
ros2 launch moveit_ur5_interface moveit_ur5_interface.launch
This launch file is used when you want to actually control a real UR5. It starts up the UR5 driver and the Moveit2 server with custom settings. It launches the UR5 Moveit configuration with the gripper attached to the end effector and opens Rviz.
To connect to a real UR5, you can follow this instruction: Setting up a UR robot for ur_robot_driver
After finishing setting up the robot, you can run the launch file, and press the play button on the pendant.
Executables
The package provides the following executables:
- moveit_server_node.cpp
ros2 run moveit_ur5_interface moveit_srv_node
This node initiates a server that communicates with the move group node when receiving a planning request.
- moveit_client_node.cpp
ros2 run moveit_ur5_interface moveit_cli_node
This is an example client node that sends a planning request to the moveit_server_node.cpp. It constructs and sends a request to the server by calling the following function (overloaded with two variants):
``` call(const double &x, const double &y, const double &z, const double &q_x, const double &q_y, const double &q_z, const double &q_w);
File truncated at 100 lines see the full file
CONTRIBUTING
![]() |
ros2_pick_and_place_ur5 repositoryrobotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic |
![]() |
ros2_pick_and_place_ur5 repositoryrobotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic |
![]() |
ros2_pick_and_place_ur5 repositoryrobotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic |
![]() |
ros2_pick_and_place_ur5 repositoryrobotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic |