A reference implementation of advanced motion planning and manipulation concepts using MoveIt 2 (Jazzy) and the Franka Emika Panda robot.
This repository demonstrates the transition from basic kinematic planning to environment-aware deliberation, focusing on the C++ MoveGroupInterface and PlanningScene management.
Concept: Inverse Kinematics (IK) & OMPL Integration.
- Initialization of the
MoveGroupInterfacefor the kinematic chain. - Handling
MoveItErrorCodefor trajectory validation. - Targeting specific end-effector poses in the Planning Frame.
Concept: The Planning Scene Monitor & Allowed Collision Matrix (ACM).
- Programmatic injection of
CollisionObjectprimitives into the world. - Demonstrating
RRTConnectplanner behavior when resolving geometric constraints (manifold planning around obstacles). - Handling asynchronous updates to the Planning Scene.
Concept: Rigid Body Attachment & Hybrid Planning.
- Grasp Planning: Approach, Pre-grasp, and Grasp pose definition.
- Attachment: Using
AttachedCollisionObjectto modify the robot's kinematic model dynamically (merging object + gripper). - Retreat: Post-grasp planning with payload constraints.
Dependencies:
- ROS 2 Jazzy
- MoveIt 2
moveit_resources_panda_moveit_config
Build:
cd ~/moveit_ws
colcon build --packages-select moveit_foundations
source install/setup.bashRun:
Run Basic Movement:
ros2 run hello_moveit moveit_basic_movementRun collision-aware Movement:
ros2 run hello_moveit moveit_obstacle_avoidanceRun Pick and Place:
ros2 run moveit_foundations moveit_pick_and_place