This package is some additions to the official UR ROS2 driver that enables teleoperation (with Moveit Servo) and some more visualization. Developed at AI4CE Lab at NYU.
To use these packages, please first follow the official installation for the original ROS2 driver, and then place this repo in a folder in your ROS2 workspace.
Each folder of this repo is an independent ROS2 package.
ros2 launch ur_robotiq_description ur_bringup.launch.py ur_type:=ur10e robot_ip:=yyy.yyy.yyy.yyy
This is the same as the official ur_robot_driver ur_control.launch.py
, but with some modifications to fit our lab's need.
Some notable parameters:
fake_hardware
: whether to only run things on RViz and such. False if you are working with the real robot.launch_rviz
: whether to turn on RViz to see the robot model.tool_choice
: which EEF tools to use, if any.ros2 launch ur_robotiq_moveit_config ur_robotiq_moveit.launch.py ur_type:=ur10e
Similar parameters choices as above.
ur_planning
ros2 launch ur_planning ur_planning_sys.launch.py ur_type:=ur10e
Again, similar parameters choices.
Here, I will just record some major modifications and additions I made to the official UR repos.
JoyToServoPub_ur10e.cpp
to ur_moveit_servo/src
forwrd_position_controller
. By default, even in fake hardware, UR driver uses scaled_joint_trajectory_controller
, so directly publishing to the latter can make servoing work. Maybe I am missing something here.ur_moveit_servo/config
, a servo config is provided to make sure that velocities are published to /scaled_joint_trajectory_controller/joint_trajectory
ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur10e robot_ip:=yyy.yyy.yyy.yyy use_fake_hardware:=true launch_rviz:=true
Then, in another terminal, run:
ros2 launch ur_moveit_servo teleop_sys_launch.py
use_fake_hardware
and fake_sensor_commands
, because we don't actually control it through ROS, but through the MBUS connector.
robot_state_publisher
and smooth logging in MoveIt. Otherwise MoveIt will complain nonstop about missing the gripper, despite the fact that it can still control the robot fine.
ur_robotiq_description
package to integrate the mesh and urdf of the gripper.2f_85/collision
and 2f_85/visual
to ur_robotiq_description/mesh
2f_85/robotiq_2f_85_macro.urdf.xacro
to ur_robotiq_description/urdf
ur_robotiq_description/urdf/ur_macro.xacro
, ur_robotiq_description/urdf/ur.urdf.xacro
to include the macro for the gripperur_robotiq_description/launch/view_ur.launch.py)
to properly load the new urdf file and visualize the robot.