Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MoveIt 2 Foundations: C++ Manipulation Architecture

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.

Demo of a pick and place maneuver

Pick and Place Demo

Modules & Architectural Concepts

1. Cartesian & Joint Space Planning (moveit_basic_movement)

Concept: Inverse Kinematics (IK) & OMPL Integration.

  • Initialization of the MoveGroupInterface for the kinematic chain.
  • Handling MoveItErrorCode for trajectory validation.
  • Targeting specific end-effector poses in the Planning Frame.

2. Dynamic Environment Deliberation (moveit_obstacle_avoidance)

Concept: The Planning Scene Monitor & Allowed Collision Matrix (ACM).

  • Programmatic injection of CollisionObject primitives into the world.
  • Demonstrating RRTConnect planner behavior when resolving geometric constraints (manifold planning around obstacles).
  • Handling asynchronous updates to the Planning Scene.

3. Manipulation Primitives (moveit_pick_and_place)

Concept: Rigid Body Attachment & Hybrid Planning.

  • Grasp Planning: Approach, Pre-grasp, and Grasp pose definition.
  • Attachment: Using AttachedCollisionObject to modify the robot's kinematic model dynamically (merging object + gripper).
  • Retreat: Post-grasp planning with payload constraints.

Quick Start

Dependencies:

  • ROS 2 Jazzy
  • MoveIt 2
  • moveit_resources_panda_moveit_config

Build:

cd ~/moveit_ws
colcon build --packages-select moveit_foundations
source install/setup.bash

Run:

Run Basic Movement:

ros2 run hello_moveit moveit_basic_movement

Run collision-aware Movement:

ros2 run hello_moveit moveit_obstacle_avoidance

Run Pick and Place:

ros2 run moveit_foundations moveit_pick_and_place

About

Documenting my learning journey of the moveit library

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages