ros2-moveitlisted
Install: claude install-skill Leehyunbin0131/claude-ros2-skills
# MoveIt 2 Motion Planning Instructions (Ubuntu 24.04 LTS & ROS 2 Jazzy)
## 1. Architecture
MoveIt 2 provides motion planning, IK, collision checking, 3D perception (OctoMap), and real-time servoing via `moveit_servo` (`servo_node`); path planning goes through `MoveGroupInterface`.
## 2. Documentation Entry Points
| For | Entry point |
| :--- | :--- |
| Concepts (move_group, kinematics, motion planning) + examples | `https://moveit.picknik.ai/main/index.html` |
| C++ API reference | `https://moveit.picknik.ai/main/doc/api/cpp_api/api.html` |
| Python API reference | `https://moveit.picknik.ai/main/doc/api/python_api/api.html` |
## 3. Key C++ Usage Patterns
### A. MoveGroupInterface Pose Target Planning
```cpp
#include <moveit/move_group_interface/move_group_interface.hpp> // Jazzy (MoveIt 2.10+): .hpp headers; legacy .h is deprecated
rclcpp::NodeOptions node_options;
node_options.automatically_declare_parameters_from_overrides(true);
auto node = std::make_shared<rclcpp::Node>("arm_planner", node_options);
moveit::planning_interface::MoveGroupInterface move_group(node, "arm");
geometry_msgs::msg::Pose target_pose;
target_pose.orientation.w = 1.0;
target_pose.position.x = 0.28;
target_pose.position.y = -0.2;
target_pose.position.z = 0.5;
move_group.setPoseTarget(target_pose);
moveit::planning_interface::MoveGroupInterface::Plan my_plan;
bool success = (move_group.plan(my_plan) == moveit::core::MoveItErrorCode::SUCCESS);
if (success) {
move_group.execute(my_plan);