This workspace contains the ROS2 package for testing the ROS2 Universal Robots Driver. It is also integrating the UR5E robotic arm, 2F-140 gripper, and Husky mobile robot using the ROS2 framework.
This project demonstrates how to use the ROS2 Universal Robot Driver to control a Universal Robots e-Series robot. The project includes:
- Example launch files to start the robot driver.
- A MoveIt! node to plan and execute motions for the robot.
- Ubuntu 22.04
- ROS2 Iron
- A Universal Robots e-Series robot
- Universal Robots ROS2 Driver
- Robotiq URCap for the 2F-140 gripper
sudo apt-get install ros-iron-urand also the ros2controlcli
sudo apt-get install ros-iron-ros2controlcliclone the following workspace
git clone https://github.com/Sohaib-Snouber/master_project_ur.gitcd master_project_ur
colcon build
source install/setup.bash- Install the externalcontrolURCap:
- Follow the instructions in the Universal Robots manual to install the
externalcontrol-1.0.5.urcap.
- Follow the instructions in the Universal Robots manual to install the
-
Start the Universal Robots Driver:
ros2 launch full_husky_control test.launch.py
This will start the Universal Robots driver necessary for communication with the UR5E robotic arm.
-
Run RQT:
- Open RQT to run the necessary services for starting the robot without using the teach pendant(your teach pendant should be closed last time on remote mode).
- Use the following service calls in RQT to make the robot ready:
- Call
/dashboard_client/power_on(Service:std_srvs/srv/Trigger) - Call
/dashboard_client/brake_release(Service:std_srvs/srv/Trigger) - Call
/dashboard_client/play(Service:ur_dashboard_msgs/srv/Load) to load the programmaster-projekt.urp. (this will include the external control node, with gripper activation node).
- Call
-
Start Gripper Control Node:
ros2 run robotiq_gripper_control robotiq_gripper_control
This will start the Gripper driver that contain the gripper services server.
-
Launch MoveIt Configuration:
ros2 launch full_husky_moveit_config move_group.launch.py
This will start the move_group node, to allow planning and execution on MoveIt.
-
Launch RViz for Visualization:
ros2 launch full_husky_moveit_config moveit_rviz.launch.py
This will start the RViz including the full Husky robot, to allow planning and execution using the interactive marker (just for testing the arm).
Now the system is ready to go with custom nodes to implment any task the robot arm and gripper can do, the next two nodes are my custom developed nodes to test the system.
-
Start the Full Driver:
ros2 launch full_driver full_robot_driver.launch.py
This is the actions server to implement all posible action by the arm, moving to target with high speed, low spped, linearly, with constrain, adding objects to planning scene, deleting objects from planning scene, allowing or disallowing collision between links or objects.
-
Launch the Usage Node:
ros2 launch full_driver usage.launch.py
This will execute some actions requested in the
usagenode, that will call actions from the full_robot_driver node, to implement robot arm action, and it will call the robotiq_gripper_control node to exceute some gripper services.
This project is licensed under the Apache 2.0 License. See the LICENSE file for details.