# pymoveit2 **Repository Path**: Kehj/pymoveit2 ## Basic Information - **Project Name**: pymoveit2 - **Description**: pymoveit2代码子仓库 - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-16 - **Last Updated**: 2026-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # pymoveit2 Basic Python interface for MoveIt 2 built on top of ROS 2 actions and services. > Note: The official Python library for MoveIt 2 `moveit_py` is now available. Check the announcement [here](https://picknik.ai/moveit/ros/python/google/2023/04/28/GSOC-MoveIt-2-Python-Bindings.html)!
Animation of ex_joint_goal.py Animation of ex_pose_goal.py Animation of ex_gripper.py Animation of ex_servo.py
Joint Goal
Pose Goal
Gripper Action
MoveIt 2 Servo
## Instructions ### Dependencies These are the primary dependencies required to use this project. - ROS 2 [Galactic](https://docs.ros.org/en/galactic/Installation.html), [Humble](https://docs.ros.org/en/humble/Installation.html) or [Iron](https://docs.ros.org/en/iron/Installation.html) - [MoveIt 2](https://moveit.ros.org/install-moveit2/binary) corresponding to the selected ROS 2 distribution All additional dependencies are installed via [rosdep](https://wiki.ros.org/rosdep) during the building process below. ### Building Clone this repository, install dependencies and build with [colcon](https://colcon.readthedocs.io). ```bash # Clone this repository into your favourite ROS 2 workspace git clone https://github.com/AndrejOrsula/pymoveit2.git # Install dependencies rosdep install -y -r -i --rosdistro ${ROS_DISTRO} --from-paths . # Build colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release" ``` ### Sourcing Before utilising this package, remember to source the ROS 2 workspace. ```bash source install/local_setup.bash ``` This enables importing of `pymoveit2` module from external workspaces. ## Examples To demonstrate `pymoveit2` usage, [examples](./examples) directory contains scripts that demonstrate the basic functionality. Additional examples can be found under [gz_moveit2_examples](https://github.com/AndrejOrsula/gz_moveit2_examples) repository. Prior to running the examples, configure an environment for control of a robot with MoveIt 2. For instance, one of the following launch scripts from [panda_gz_moveit2](https://github.com/AndrejOrsula/panda_gz_moveit2) repository can be used. ```bash # RViz (fake) ROS 2 control ros2 launch panda_moveit_config ex_fake_control.launch.py # Gazebo (simulated) ROS 2 control ros2 launch panda_moveit_config ex_gz_control.launch.py ``` After that, the individual scripts can be run. ```bash # Move to joint configuration ros2 run pymoveit2 ex_joint_goal.py --ros-args -p joint_positions:="[1.57, -1.57, 0.0, -1.57, 0.0, 1.57, 0.7854]" # Move to Cartesian pose (motion in either joint or Cartesian space) ros2 run pymoveit2 ex_pose_goal.py --ros-args -p position:="[0.25, 0.0, 1.0]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]" -p cartesian:=False # Repeatadly toggle the gripper (or use "open"/"close" actions) ros2 run pymoveit2 ex_gripper.py --ros-args -p action:="toggle" # Example of using MoveIt 2 Servo to move the end-effector in a circular motion ros2 run pymoveit2 ex_servo.py # Example of adding a collision object with primitive geometry to the planning scene of MoveIt 2 ros2 run pymoveit2 ex_collision_primitive.py --ros-args -p shape:="sphere" -p position:="[0.5, 0.0, 0.5]" -p dimensions:="[0.04]" # Example of adding a collision object with mesh geometry to the planning scene of MoveIt 2 ros2 run pymoveit2 ex_collision_mesh.py --ros-args -p action:="add" -p position:="[0.5, 0.0, 0.5]" -p quat_xyzw:="[0.0, 0.0, -0.707, 0.707]" ``` ## Directory Structure The following directory structure is utilised for this package. ```bash . ├── examples/ # [dir] Examples demonstrating the use of `pymoveit2` ├── pymoveit2/ # [dir] ROS 2 launch scripts ├── robots/ # [dir] Presets for robots (data that can be extracted from URDF/SRDF) ├── gripper_command.py # Interface for Gripper that is controlled by GripperCommand ├── moveit2_gripper.py # Interface for MoveIt 2 Gripper that is controlled by JointTrajectoryController ├── moveit2_servo.py # Interface for MoveIt 2 Servo that enables real-time control in Cartesian Space └── moveit2.py # Interface for MoveIt 2 that enables planning and execution of trajectories ├── CMakeLists.txt # Colcon-enabled CMake recipe └── package.xml # ROS 2 package metadata ```