Skip to content

Latest commit

 

History

History
119 lines (72 loc) · 6.27 KB

File metadata and controls

119 lines (72 loc) · 6.27 KB

Adding new Manipulator Components

In this repository we test multiple grippers with the same manipulator.

If you want to add a new gripper, you start can following the instructions in Adding New Grippers document.

Once you have a new gripper ready, you can add it to the manipulator by following the steps discussed in this document.

Preparing the combined robot description

Combine the description files of the components you need to use into a single xacro file. For example, if you want to add a new gripper to the UR10 manipulator, you can create a new xacro file that includes both the UR10 and the new gripper descriptions.

We recommend creating a new xacro file in the grasping_description/xacro folder for each new combination of manipulator and gripper. This way you can keep the original component descriptions unchanged and easily switch between different combinations.

In this project we follow this and use the following naming convention for the combined descriptions:

<manipulator>-<gripper>.urdf.xacro

Currently we have,

Updating the MoveIt configuration

Once you have the combined description ready, you need to update/create the MoveIt configuration to use it.

This allows you to define self-collision and other properties for the new combination of manipulator and gripper.

You can create a new MoveIt configuration package for the new combination, or you can update an existing one if it already exists.

Recommended approach is to use the Moveit Setup Assistant to create a new MoveIt configuration package for the new combination. This way you can easily define the necessary properties and configurations for the new setup.

To create a new MoveIt configuration package using the MoveIt Setup Assistant, follow these steps:

  1. Build your workspace and source the setup file to make sure all your packages are available:
colcon build
  1. Open the MoveIt Setup Assistant by running the following command in your terminal:
source install/setup.bash
ros2 launch moveit_setup_assistant setup_assistant.launch.py
  1. Follow the instructions here to complete the setup.

Recommended naming convention for the MoveIt configuration packages is:

<manipulator>_<gripper>_moveit_config

Currently we have,

Testing the new setup

Use the demonstration launch files to test the new setup. You can create a new launch file for the new combination, or you can update an existing one if it already exists.

If the MoveIt Setup Assistant generated only fake-hardware oriented file, you might have to update ur.ros2_control.xacro, ur.urdf.xacro and other files to match.

For fake-hardware demo support, prefer a single ros2_control owner in the generated MoveIt package. For the UR10 + soft-two-finger setup, the clean pattern is to disable the embedded UR ros2_control tag in the demo wrapper and let the generated ur.ros2_control.xacro provide one local fake GenericSystem for the combined arm+gripper model.

Updating the launch files

Finally, you need to update the launch files to use the new MoveIt configuration, combined description and hardware.

Recommended appraoch is to create the hardware_with_moveit.launch.py inside the newly created moveit config package as this allows you to keep this unique to correct hardware combination.

Currently we have,

To create a new launch file, you can copy an existing one and modify it to use the new MoveIt configuration and the combined description.

Hardware Testing

Once you have updated the launch files, you can test the new setup by launching the corresponding launch file and verifying that everything is working as expected.

Recommended control split

For this repository, the recommended split is:

  • MoveIt owns arm planning and, when desired, arm trajectory execution.
  • The gripper remains in the robot description and SRDF so collision checking and reachability reflect the real combined tool.
  • Gripper actuation stays external through the standard /gripper_command action unless you specifically need synchronized arm+gripper trajectories.

This keeps task logic simple: external code can plan with MoveIt, execute arm motion, and call gripper actions at grasp-specific phases without forcing the gripper behavior into MoveIt's controller model.

Currently we support following systems

To test the gripper action, you can use the following commands:

source install/setup.bash
ros2 action send_goal /gripper_command control_msgs/action/GripperCommand "{command: {position: 0.09, max_effort: 0.0}}"
source install/setup.bash
ros2 action send_goal /gripper_command control_msgs/action/GripperCommand "{command: {position: 0.0, max_effort: 5.0}}"