/ROS_ur3ehand

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

ROS Packages for Motion Planning and Execution for UR3e Manipulator with Custom Soft Gripper

Acknowledgment

This repository was created for the Smart Robotics Lab at the University of Nevada, Reno. It is the companion repository to gripperROSIntegration.

Purpose

ROS packages to allow control of Universal Robots UR3e manipulator with University of Nevada, Reno Smart Robotics Lab's TSA-Driven Soft Robotic Hand. Packages can be used for motion planning and execution with the real robot or in simulation using Gazebo. 20220429_142555

Contents

  1. ur3ehand_description
    • The ur3ehand_description package contains files used to construct and load virtual models of the UR3e with the attached end-effector to be used for simulation, visualization, and motion-planning.
    • The ur3e_with_hand.urdf model can be altered to change the collision and visual geometry of the end-effector and adjust joint limits to fit the user's needs.

  1. ur3ehand_moveit_config
    • The ur3ehand_moveit_config package provides tools for motion planning and simulated execution for the combined UR3e-end-effector system.

  1. ur3ehand_scripts
    • The ur3ehand_scripts package contains Python and C++ scripts used for controlling the gripper and manipulator.
    • Many of them are meant to serve as examples, showing how one could program specific joint-space or Cartesian goals to the system and execute them. They do not necessarily reflect the optimal method of performing these actions.
    • Some of the scripts include examples of how to publish to the arduino topic to interface with this repository's companion repository.

Requirements, Dependencies, and Building

These packages are built and tested on a system running ROS noetic on Ubuntu 20.04.
Use of these packages in a non-simulated environment requires the use of the official Universal Robots ROS Drivers. Slight modifications may be necessary to get these drivers to load the proper configuration files. Please contact the author at stevenswanbeck@nevada.unr.edu if help is needed to do this.

  1. Create a Catkin workspace:
mkdir -p catkin_ur3ehand/src && cd catkin_ur3ehand/src
  1. Clone the contents of this repository:
git clone https://github.com/steven-swanbeck/ROS_ur3ehand.git
  1. Clone the UR Robots ROS Driver:
git clone https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git src/Universal_Robots_ROS_Driver
  1. Install all package dependencies:
rosdep install --from-paths src --ignore-src -r -y
  1. Make the workspace:
catkin_make
  1. Source the workspace:
source devel/setup.bash

Commonly Used Commands

  1. To launch a simple demo of the robot configured in RViz, use:
roslaunch ur3ehand_moveit_config demo.launch

Screenshot from 2022-07-24 15-14-10

  1. To expand the capabilites of this demo to Gazebo to simulate the robot, instead run:
roslaunch ur3ehand_moveit_config demo_gazebo.launch

Screenshot from 2022-07-24 15-24-07

  1. To run MoveIt with the real robot and drivers, the PC and robot must be configured as described in Universal Robots ROS Drivers. Once this is done, start with:
roslaunch ur_robot_driver ur3e_bringup.launch <robot_ip> <port> <kinematics_config>

ex:

roslaunch ur_robot_driver ur3e_bringup.launch robot_ip:=192.168.0.2 [reverse_port:=REVERSE_PORT] kinematics_config:=$(rospack find  ur_calibration)/my_ur3_calibration.yaml

Then use:

roslaunch ur3ehand_moveit_config ur3ehand_moveit_planning_execution.launch limited:=true

Followed by:

roslaunch ur3ehand_moveit_config moveit_rviz.launch config:=true

Note: The fixed frame may have to be defined and the robot model may need to be loaded in after this node has been launched. Scene objects should also be loaded in if necessary to prevent environment collisions.


Once the RViz is launched through any of these methods, movement scripts can be passed to the robot in the form:

rosrun ur3ehand_scripts <executable>

ex:

rosrun ur3ehand_scripts test_pickplace2.py

Running in simulation and with real system:


Simulating Robot Using Gazebo:

Screencast.from.07-24-2022.03.28.46.PM.webm

Simple Pick-and-Place Demonstration:

SoftPickPlace2.mp4

Secret Handshake Demo Showing Safe Human-Robot Interaction:

8mb.video-MgV-58kiDMVe.mp4

Arduino Integration with Soft Gripper

For full details of the ROS integration of the Arduino-based gripper with these packages, view this repository's companion repository.


Troubleshooting

If ROS informs the user that it was not able to execute a script file of the target name, try changing the executable permissions using:

chmod +x <filename>

Helpful Links

https://ros-planning.github.io/moveit_tutorials/doc/getting_started/getting_started.html
https://moveit.readthedocs.io/en/latest/doc/pr2_tutorials/planning/src/doc/move_group_interface_tutorial.html#moving-to-a-pose-goal


The gripper was also shared with NASA's Dexterous Robotics Team at Johnson Space Center. It is shown here attached to their Valkyrie humanoid astronaut.

gripperonValkyrie