Skip to content
/ ur_ros2 Public

This package is some additions to the official UR ROS2 driver that enables teleoperation and some more visualization. Developed at AI4CE Lab at NYU.

Notifications You must be signed in to change notification settings

ai4ce/ur_ros2

Repository files navigation

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.

Operating the Robot

Bringup

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.

MoveIt Manual Planning

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.

Major Modifications/Additions

Here, I will just record some major modifications and additions I made to the official UR repos.

Teleoperation

  • Successfully implemented joint-space and twist teleoperation for fake hardware in RViz.
    • Added JoyToServoPub_ur10e.cpp to ur_moveit_servo/src
      • All 6 joints can be controlled.
      • For twist control, pressing Home on a PS joystick can switch between the base frame and the EEF frame.
    • I don't understand why most online discussion revolves around 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.
    • In ur_moveit_servo/config, a servo config is provided to make sure that velocities are published to /scaled_joint_trajectory_controller/joint_trajectory
    • To run the teleoperation in RViz (real-world testing incoming), first run 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
  • Add speed multiplier as a launch parameter to the teleoperation system.

EFF Integration

Robotiq 2F-85

Program

  • The code requires that the gripper be connected to the robot through the wrist M8 connector or the tool I/O in the control box. In other words, it does not control an independent controller but rather runs through the UR robot.
  • Another package may be written to independently control the gripper in the future if there is such a need.
  • In the URDF, I turned on use_fake_hardware and fake_sensor_commands, because we don't actually control it through ROS, but through the MBUS connector.
    • This may change if we need to write an independent driver.
    • This is crucial for successfully configuring the gripper for the 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.

Visualization

  • Added ur_robotiq_description package to integrate the mesh and urdf of the gripper.
  • Added 2f_85/collision and 2f_85/visual to ur_robotiq_description/mesh
  • Added 2f_85/robotiq_2f_85_macro.urdf.xacro to ur_robotiq_description/urdf
  • Modified ur_robotiq_description/urdf/ur_macro.xacro, ur_robotiq_description/urdf/ur.urdf.xacro to include the macro for the gripper
  • Modified ur_robotiq_description/launch/view_ur.launch.py) to properly load the new urdf file and visualize the robot.

About

This package is some additions to the official UR ROS2 driver that enables teleoperation and some more visualization. Developed at AI4CE Lab at NYU.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published