Welcome to DOFBOT-Ultra repository
1. MoveIt Configuration
MoveIt2 Configuration
Please ensure that the web control program backend process is not running in the background. To close it, refer to the [Get Started Quickly - 2. Access the Terminal] section in [Disable the Auto-Start Web Control Backend Process]. After closing, please restart DofbotUltra!!!
MoveIt2 Configuration1. Environment Setup1.1. Install MoveIt21.2. Create Folder2. MoveIt2 Configuration2.1. Launch Assistant2.2. Collision Detection2.3. Virtual Joint2.4. Motion Planning Group2.5. Robot Poses2.6. End Effector2.7. Passive Joints2.8. URDF File2.9. ROS2 Controllers2.10. MoveIt Controllers2.11. Sensors2.12. Launch Files2.13. Author Information2.14. Generate Configuration3. Configuration Files4. Configuration Verification4.1. Modify Configuration Files4.2. Build Package4.3. Launch MoveItReferences
MoveIt2 is an advanced software framework for robot motion simulation, planning, and control.
Note: This tutorial is only a configuration demonstration. It is strongly recommended to directly use our pre-configured Ubuntu 22.04 image. The pre-configured image does not require complex environment setup again. Please skip directly to the next section, 2. MoveIt Usage tutorial.
1. Environment Setup
Motherboard: VMware Workstation virtual machine Ubuntu 22.04 image
ROS2: Humble
Note: This tutorial is only a configuration demonstration. It is strongly recommended to directly use our pre-configured Ubuntu 22.04 image. The pre-configured image does not require complex environment setup again.
Note: This tutorial is only a configuration demonstration. It is strongly recommended to directly use our pre-configured Ubuntu 22.04 image. The pre-configured image does not require complex environment setup again.
1.1. Install MoveIt2
xxxxxxxxxxsudo apt install ros-humble-moveit*
The Jetson Orin series motherboards have been tested and can run MoveIt2 related cases directly on the board, with acceptable overall fluency!
1.2. Create Folder
Create the auto-generated configuration files for MoveIt2:
xxxxxxxxxxmkdir ~/dofbot_ultra_ws/src/dofbot_ultra_moveit
2. MoveIt2 Configuration
MoveIt Setup Assistant is a graphical tool used to simplify and accelerate the creation and configuration of MoveIt2 configuration packages.
Through this tool, users can easily generate configuration files for robot motion planning and control without manually editing complex configuration files.
2.1. Launch Assistant
Launch the MoveIt Setup Assistant:
xxxxxxxxxxros2 launch moveit_setup_assistant setup_assistant.launch.py
For first-time use, you can choose to create a new MoveIt configuration package. For later simple modifications, you can choose to edit an existing MoveIt software package:

Creating a new MoveIt configuration package requires importing the robot URDF model: Simply importing the URDF model file into the MoveIt Assistant may cause errors. You need to use the compiled software package (dofbot_ultra_description) URDF file path.
xxxxxxxxxx/home/yahboom/dofbot_ultra_ws/src/dofbot_ultra_description/urdf/DOFBOT_ultra-V24.urdf

After selecting the URDF file, click Load File, and the MoveIt Assistant will display the robot model:

2.2. Collision Detection
The self-collision matrix is a function used to optimize motion planning. Its main purpose is to generate a matrix that describes whether collisions may occur between each link in the robot model.
This matrix helps the motion planner avoid unnecessary collision detection during path planning, thereby improving planning efficiency.
To generate the self-collision matrix, click the MoveIt Setup Assistant option to auto-generate:


2.3. Virtual Joint
A virtual joint is used to define the relationship between the robot model and the external world.
Virtual joints are typically used to describe the connection between the robot base (base) and a fixed reference frame (such as the world coordinate system).

Fix the robot base link base_link to world:
Virtual Joint Name: virtual_joint
Child Link: base_link
Parent Frame Name: world
Joint Type: fixed


2.4. Motion Planning Group
Planning groups are a key step in configuring robot motion planning.
Planning groups define which joints and links in the robot can move together and how their motion is planned.

Plan the arm group: arm_group
Group Name:arm_group
Kinematic Solver:kdl_kinematics_plugin/KDLKinematicsPlugin
Kin. Search Resolution (sampling density in joint space):0.005
Kin. Search Timeout (solution timeout):0.005

Add Joints:Select the arm joints
Joints:Arm1_Joint、Arm2_Joint、Arm3_Joint、Arm4_Joint、Arm5_Joint


Plan the gripper group: grip_group
Group Name:grip_group
Kinematic Solver:None
Kin. Search Resolution (sampling density in joint space):0.005
Kin. Search Timeout (solution timeout):0.005

Add Links:Select the gripper links
Links:rlink1、rlink2、rlink3


2.5. Robot Poses
Arm Poses
Set three predefined arm poses in the robot configuration:

Manually move the sliders to set each joint state: up, down, init



Gripper Poses
Set two predefined gripper poses in the robot configuration:

Manually move the sliders to set the gripper state: open, close



2.6. End Effector
Set the gripper group as the end effector:

End Effector: gripper
End Effector Name:gripper
End Effector Group:gripper_group
Parent Link:Arm5_Link
Parent Group:None


2.7. Passive Joints
Passive joints are non-actuated joints that cannot be directly controlled. The arm has no passive joints, so skip this step.

2.8. URDF File
MoveIt Setup Assistant automatically sets up command interfaces and state interfaces for each joint. Use the default generated information.

2.9. ROS2 Controllers
ROS2 Controllers is a framework for real-time robot control, which can be used to auto-generate simulation controllers to drive robot joints.

Add the arm controller:
Controller Name:arm_group_controller
Controller Type:joint_trajectory_controller/JointTrajectoryController
Add Planning Group Joints:arm_group



Add the gripper controller:
Controller Name:grip_group_controller
Controller Type:position_controllers/GripperActionController
Add Planning Group Joints:grip_group



2.10. MoveIt Controllers
MoveIt requires a trajectory controller with the FollowJointTrajectoryAction interface to execute planned trajectories. This interface sends the generated trajectory to the robot ROS2 controller.
The added MoveIt Controllers must ensure that the controller names match those configured in ROS2 Controllers.

Add the arm controller:
Controller Name:arm_group_controller
Controller Type:FollowJointTrajectory
Add Planning Group Joints:arm_group



Add the gripper controller:
Controller Name:grip_group_controller
Controller Type:Gripper Command
Add Planning Group Joints:grip_group


![image-2025030</div><!--]--><!--]--><div class=](http://www.yahboom.net/public/upload/upload-html/1783679927/image-20250305194141769.png)