MoveIt 2
MoveIt 2 answers: given where the robot is, where the obstacles are, and a goal pose or joints, find a collision-free motion and play it on the controllers.
- Planning scene: robot state + collision objects. Geometry for safety, not a product database.
- Collision checking: would this joint configuration intersect anything? Sampled densely along candidate paths.
- OMPL: sampling-based planners. combeanie uses RRTConnect. They explore configuration space until a valid path appears, then time-parameterize it into a trajectory.
- Trajectory execution: send the timed joint path to
FollowJointTrajectoryand monitor progress.
Why it matters here
Every restock segment (approach, grasp lift, transfer, insert) must clear shelf geometry, other products, and depth-derived obstacle boxes. combeanie projects world knowledge into MoveIt; it does not let MoveIt invent inventory. Baseline is OMPL-only (no CHOMP/Pilz in the default pipeline). Obstacles are boxes, not octomaps.
world state (+ obstacles)
│ projector + lease
▼
MoveIt planning scene ──OMPL──► trajectory ──► controllers
This project
| Piece | Path |
|---|---|
| Config builder | restocker_moveit_config/…/configuration.py |
| OMPL | …/config/ompl_planning.yaml (RRTConnect, TOTG) |
| Kinematics | …/config/kinematics.yaml (KDL) |
| Controllers map | …/config/moveit_controllers.yaml |
| SRDF | …/config/restocker.srdf |
| Scene projector | restocker_task_executor/src/planning_scene_projector_node.cpp |
| Motion port | …/src/moveit_motion_port.cpp |
Planning success ≠ execution success. The motion port classifies whether anything was commanded and whether the arm may have moved. That classification is required for fail-closed recovery.
References
- Official docs: Motion planning concepts
- Official docs: Planning Scene Monitor
- Official docs: OMPL interface tutorial
- Literature: OMPL project site · Şucan et al. OMPL paper (PDF)
- Literature: Coleman et al., MoveIt case study
- Reference implementation: moveit2
- This project: Motion planning · World state vs planning scene