Hello ROS Community,
I want to share a comprehensive step-by-step video tutorial on configuring MoveIt 2 from scratch for a custom robotic manipulator on ROS 2 Jazzy and Ubuntu 24.04.
While most official tutorials use high-DOF industrial manipulators (like the Franka Emika Panda), building configurations for smaller or custom arms often introduces unique glitches that standard guides don’t cover (0:33). In this video, I take a 3-joint printed arm model (arduinobot) with a gripper (0:17), walk through the MoveIt Setup Assistant, generate the config package, and explicitly show how to fix the common runtime errors that pop up (18:28).
Watch the Full Tutorial here: https://youtu.be/eWbAi8HUdE8
Environment & Setup
- OS: Ubuntu 24.04 LTS
- ROS 2 Version: Jazzy Jalisco
- MoveIt Version: MoveIt 2.12
- Middleware: Cyclone DDS (
rmw_cyclonedds_cpp) (3:19) - Hardware: No physical hardware required (uses simulated/fake components in RViz) (7:51)
What This Video Covers (And the Errors Fixed)
Instead of just showing a flawless run, this video acts as a practical troubleshooting handbook. Here are the 5 major roadblocks we encounter and solve live:
move_groupCrash (Joint Limits Type Error): Fixing theexpected double, got integererror insidejoint_limits.yamlby ensuring type consistency and manually initializing acceleration properties (21:47).- Action Execution Failure: Resolving trajectory failures by explicitly mapping the
action_ns: follow_joint_trajectorynamespace insidemoveit_controllers.yaml(26:44). - Start Point Deviation Abort: How to correctly configure and command execution directly from the current robot state to avoid state deviations (25:59).
- Broken Interactive Markers (3-DOF Limitation) (31:48): Standard KDL kinematics solver fails to compute position and orientation together for a 3-joint setup (0:43). We resolve this by forcing
position_only_ik: trueinsidekinematics.yamlto unlock full marker functionality (34:23).
Pilz Industrial Motion Planner Acceleration Violations: Setting up the OMPL and Pilz planners (LIN, PTP, CIRC) (37:29). We fix joint acceleration violations under linear paths by dialing down the Acceleration Scaling factor to 0.3 (39:09).
Video Timeline & Highlights
0:00- Intro & Overview of the 3-Jointarduinobot2:51- Setting up Cyclone DDS Middleware7:09- URDF Preparation (Stripping conflicting Gazebo/ros2_control tags)10:36- Defining Planning Groups (Arm KDL Chain & Gripper)21:16- [Error Fix 1] Repairingjoint_limits.yamlformatting26:16- [Error Fix 2] Structuringmoveit_controllers.yamlaction namespaces31:59- [Error Fix 3] Fixing Interactive Markers via Position-Only IK37:00- Switching to Pilz Industrial Planner for Linear (LIN) Motion
If you are currently struggling to port a low-degree-of-freedom manipulator or custom URDF into MoveIt 2 on Jazzy, I hope this deep dive saves you hours of debugging (0:33)!
I would love to hear feedback from the community regarding your experiences with Position-Only IK behaviors or configuring custom industrial motion planners on Jazzy!