Welcome to DOFBOT-Ultra repository
7. MoveIt Cartesian Path
MoveIt Cartesian Path
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!!!
MoveIt Cartesian Path1. Usage Environment2. Drive Real Robot2.1. Start Real Robot2.2. Start MoveIt23. Cartesian Path3.1. Visualization3.2. Launch CommandDetailed Parameter Description
1. Usage Environment
Motherboard: VMware Workstation virtual machine Ubuntu 22.04 image
ROS2: Humble
2. Drive Real Robot
Driving the real robot is accomplished by subscribing to the MoveIt2 /joint_states topic, converting the joint state information of the arm into control commands for the real robot.
Note: Since the real robot does not have obstacle avoidance functionality, some poses may hit obstacles. Therefore, planned arm motions should be as reasonable as possible and avoid positions with obstacles.
(It is recommended to use preset poses for demonstrating driving the real robot.)
2.1. Start Real Robot
If not driving a real robot, use MoveIt simulation to demonstrate arm motions:
ros2 run dofbot_ultra_driver dofbot_ultra_driver
2.2. Start MoveIt2
xxxxxxxxxxros2 launch dofbot_ultra_moveit demo.launch.py

3. Cartesian Path
A Cartesian Path refers to the straight-line motion path of the robot end effector in the Cartesian coordinate system.
xxxxxxxxxxDue to the limitations of arm degrees of freedom and structure, Cartesian path points are very difficult to find.
3.1. Visualization
Before running the launch command, you need to add the MarkerArray plugin in RViz2 to display the Cartesian planned straight-line path. MarkerArray needs to select the arm_group topic.


3.2. Launch Command
After MoveIt has successfully loaded and You can start planning now! appears, run the following command. The arm will plan a Cartesian path by itself.
xxxxxxxxxxros2 run dofbot_ultra_moveit cartesian_path

Detailed Parameter Description
Full parameter version usage example:
xxxxxxxxxxros2 run dofbot_ultra_moveit cartesian_path --ros-args \ -p group:=arm_group -p frame_id:=base_link \ -p dx:=0.08 -p dy:=0.00 -p dz:=0.03 \ -p eef_step:=0.005 -p execute_threshold:=0.50 \ -p marker_topic:=/arm_group -p execute:=truegroup: MoveIt planning group name (defined in SRDF), e.g., arm_group. Must be consistent with the one in move_group.
frame_id: The frame you want to use as the reference coordinate system (also used as the Marker frame in the program). Typically base_link.
dx / dy / dz: Target relative displacement (meters). The program uses "current end position + this offset" to get the target point.
eef_step: Sampling step size for the Cartesian path (meters). Smaller values give denser sampling and a trajectory closer to a straight line, but are more prone to IK failures at certain points, resulting in a lower fraction and slower computation.
jump_threshold: Joint jump threshold (MoveIt parameter). 0.0 usually means not enabled / use default behavior, mainly used to limit sudden large jumps in joint space.
execute_threshold: Execution threshold. fraction is 0~1, indicating the proportion of the path successfully covered. The path is executed only if fraction >= execute_threshold.
marker_topic: The topic name for publishing visualization_msgs/MarkerArray (e.g., /cartesian_path_markers). Add a MarkerArray subscription in RViz to see the line.
execute: Whether to execute. If false, only compute the path and publish markers without moving the arm.
