Skip to content

project of rpc class, c++ implementation of trajectory with moveit! libraries, using a gripper with 2 fingers and static tcp

Notifications You must be signed in to change notification settings

AntoninoParisi/rpc

Repository files navigation

ROBOT PROGRAMMING AND CONTROL FINAL PROJECT - MODULE B

High level control of UR5e with ROS and MoveIt both in simulation and in reality

The purpose of the project is to programming a flexible industrial cell based on ROS. In particular, it refers to the UR5e robot mounted in the production line of the ICELab at the University of Verona. This workspace allows to control the robot both in simulation and in reality. The trajectory are planned with MoveIt, instead the comunication with the real robot is given by the Universal_Robot_ROS_Driver. The key points to address are written in following:

  • Geometric modeling of a UR5e in a manufacturing cell
  • Object Pick and place
  • Glue sealing (following a cartesian path with trajectory constraints in orientation and speed)
  • Quality inspection(pick an object and show it with two different angles to a camera)
  • Communication with the simulator(URsim) and the real robot

Features

In following the most important features of the proposed work:

  • Design the model of gripper_mlp3240 attached on the robot starting from CAD to guarantee more reliability during the task. Including the flange between the wrist 3 and the gripper.
  • ICELab environmnet reconstruction(mesh and parameters)
  • URSim/Robot and MoveIt comunication through a broadcast node
  • The tasks parameters are defined depending on real world measure

Acknowledgment

This work has been devoleped by Antonino Parisi and Edoardo Fiorini at the University of Verona.

UR5e model

To model the UR5e robot mounted in the production line has been used the already existing URDF file from the official repository. In this package there are also all the planning group which allows us to design our trajectory with moveIt.

Gripper mlp3240

To ensure the best reliability we have developed the gripper model from scratch. We started from the CAD models from which we extracted the meshes through blender. A bit of post production was needed to get a good resolution. After that we extracted the complete meshes and assembled them inside the urdf. In particular, to see these stuff you have to open the fmauch_universal_robot/ur_description folder. Then, in meshes there are all the 3D shape, instead in urdf there are all the xacro file. Of course, it was necessary to define the links between the ur5e + gripper xacro file and environment.

Environment

The production line of the ICELab has been reconstructed in minimal details to avoid gap between the simulation and the real task. To use URSim it is necessary to have all the real parameters regarding the conveyors belt and the support of UR5e. Only in this way what happens in the simulator is exactly what will expect in reality. In following is shown respectively the prodcuction line plant and the geometric model:
Alt text
Alt text

Requirements

This workspace requires a system setup with ROS. It is recommended to use:

  • Ubuntu 18.04 LTS
  • ROS melodic

To make sure that robot control is not affected by system latencies, it should be better to use a real-time kernel with the system. See the real-time setup guide.

Installation

First of all you have to install the URSim simulator from the Universal Robot official page. It is recommended to install the simualtor before ROS to avoid problems with dependencies.

After that you are ready to install the project in your ROS workspace. Open a terminal and write the following commands:

cd $HOME/your_ros_ws

git clone https://github.com/AntoninoParisi/rpc.git

#rename rpc to src (do it with gui interface) cd $HOME/your_ros_ws/src catkin_init_workspace cd ..

#building catkin_make

#activate this workspace source $HOME/your_ros_ws/devel/setup.bash

There could be some problems with ROS-packages or dependencies. Check out the package.xml and install all the package that the catkin_make needs.

Usage in simulation with URSim

To run the project in simulation you have to launch some commands, all of these have to be launch from different terminals and before run the command you have to activate your workspace with:

source $HOME/your_ros_ws/devel/setup.bash

The steps are the following one:

  1. Open the rviz simulation (visualizer and planning group):

    roslaunch ur5e_mlp3240_env demo.launch

  2. Open the URSim simulator:

    cd $HOME/your_path/ursim-5.X.X.XXXXX/start-ursim.sh

Now the URCap must be installed in the simulator, using the following guide

  1. Extract the calibration of the robot:

    roslaunch ur_calibration calibration_correction.launch robot_ip:=127.0.0.1 target_filename:="$(rospack find ur_calibration)/etc/ex-ur5e_calibration.yaml"

  2. Run the ROS node that comunicates with URSim

    roslaunch ur_robot_driver ur5e_bringup.launch robot_ip:=127.0.0.1 kinematics_config:=$(rospack find ur_calibration)/etc/ex-ur5e_calibration.yaml

  3. Run the broadcaster ROS node that send the MoveIt trajectory to URSim

    rosrun ursim_broadcaster ursim_broadcaster

  4. Run the task ROS node in base on what you want to execute:

  • Pick and Place:
    rosrun pick_place pick_place_node
  • Glue Sealing:
    rosrun glue_sealing glue_sealing_node
  • Visual Inspection:
    rosrun visual_inspection visual_inspection_node

Usage with the real Robot

To run the project using the real robot, first of all you have to switch on the robot from the teach pendant and you have to connect to the computer robot. Then you are ready to launch some commands, all of these have to be launch from different terminals and before run the command you have to activate your workspace with:

source $HOME/your_ros_ws/devel/setup.bash

The steps are the following one:

  1. Open the rviz simulation (visualizer and planning group):

    roslaunch ur5e_mlp3240_env demo.launch

  2. Start the robot and open the program with the URCap on the teach pendant:

The URCap must be installed in the simulator, using the following guide

  1. Extract the calibration of the robot:

    roslaunch ur_calibration calibration_correction.launch robot_ip:=YOUR_ROBOT_IP target_filename:="$(rospack find ur_calibration)/etc/ex-ur5e_calibration.yaml"

  2. Run the ROS node that comunicates with the real robot

    roslaunch ur_robot_driver ur5e_bringup.launch robot_ip:=ROBOT_IP kinematics_config:=$(rospack find ur_calibration)/etc/ex-ur5e_calibration.yaml

  3. Run the broadcaster ROS node that send the MoveIt trajectory to the real robot

    rosrun ursim_broadcaster ursim_broadcaster

  4. Run the task ROS node in base on what you want to execute:

  • Pick and Place:
    rosrun pick_place pick_place_node
  • Glue Sealing:
    rosrun glue_sealing glue_sealing_node
  • Visual Inspection:
    rosrun visual_inspection visual_inspection_node

About

project of rpc class, c++ implementation of trajectory with moveit! libraries, using a gripper with 2 fingers and static tcp

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published