Repo symbol

ros2_pick_and_place_ur5 repository

robotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic
Repo symbol

ros2_pick_and_place_ur5 repository

robotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic
Repo symbol

ros2_pick_and_place_ur5 repository

robotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic
Repo symbol

ros2_pick_and_place_ur5 repository

robotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic
Repo symbol

ros2_pick_and_place_ur5 repository

robotiq 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 (-)

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:

  1. moveit_ur5_msgs - custom message package containing one srv message for moveit_ur5_interface.
  2. moveit_ur5_interface - a service/client interface to control the UR5 robot using moveit2.
  3. pnp_msgs - custom message package containing three action messages for pnp action.
  4. pnp_actionlib - implementation of a pnp action service for the UR5 robot.
  5. robotiq_description - description files for the robotiq gripper: meshes, URDF/XACRO files, etc.
  6. ur5_gripper_description - description files for the UR5 combined with the gripper.
  7. 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
    

</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:

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

  2. 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:

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

Repo symbol

ros2_pick_and_place_ur5 repository

robotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic
Repo symbol

ros2_pick_and_place_ur5 repository

robotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic
Repo symbol

ros2_pick_and_place_ur5 repository

robotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic
Repo symbol

ros2_pick_and_place_ur5 repository

robotiq ros2 actionlib ur5-robot robotiq-gripper urdf-descriptions pickandplace moveit2 robotiq-2f-85-gripper ros2-galactic