Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged pymoveit2 at Robotics Stack Exchange
Package Summary
| Version | 5.0.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/AndrejOrsula/pymoveit2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-17 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Andrej Orsula
Authors
- Andrej Orsula
pymoveit2
Move a robot from Python by communicating with MoveIt 2 over ROS 2 actions and services
![]() |
![]() |
![]() |
![]() |
Joint Configuration |
Cartesian Pose |
Gripper Action |
Real-Time Servoing |
Installation
Binary package
sudo apt install ros-$ROS_DISTRO-pymoveit2
Python package
pip install pymoveit2
Docker image
cd $WS
git clone https://github.com/AndrejOrsula/pymoveit2.git
pymoveit2/.docker/run.bash $ROS_DISTRO --network-host --ipc-host --gui
Source build
cd $COLCON_WS
git clone https://github.com/AndrejOrsula/pymoveit2.git src/pymoveit2
rosdep install -y -r -i --rosdistro $ROS_DISTRO --from-paths src/pymoveit2
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"
source install/local_setup.bash
Quick start (demo with Franka Emika Panda)
- Configure MoveIt 2 for your robot (install for widely available robots, or build one on your own):
sudo apt install ros-$ROS_DISTRO-moveit-resources-panda-moveit-config ros-$ROS_DISTRO-controller-manager
- Launch the MoveIt 2 setup for your robot:
ros2 launch moveit_resources_panda_moveit_config demo.launch.py
- Move the robot via
pymoveit2examples:
ros2 run pymoveit2 ex_joint_goal.py
Nothing moved? Run ros2 run pymoveit2 ex_doctor.py to investigate the problem.
Examples
Kinematics
# Forward (joint positions -> end effector pose)
ros2 run pymoveit2 ex_fk.py
# Inverse (end effector pose -> joint positions)
ros2 run pymoveit2 ex_ik.py --ros-args -p position:="[0.3, 0.0, 0.3]" -p quat_xyzw:="[0.0, 0.0, 0.0, 1.0]"
Motion planning and execution
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[5.0.0] - 2026-09-16
Added
- Add
ex_session.pyto expected executables within Debian package check (bdec262) by @AndrejOrsula - Add example for
RobotSessionusage viaconnect()(f055649) by @AndrejOrsula - CI: Add PyPI release workflow for Python package distribution (f8a59d8) by @AndrejOrsula
- CI: Add Docker release workflow (f39838f) by @AndrejOrsula
- Add doctor example to help with diagnosing MoveIt 2 setup issues (3911a84) by @AndrejOrsula
- Docker: Add Dockerfile and helper scripts (9d32e1c) by @AndrejOrsula
- Add simplified RobotSession manager for MoveIt2 interfaces (41754d7) by @AndrejOrsula
- Add script for running tests across different ROS 2 distributions (53ae617) by @AndrejOrsula
- Add integration tests (57b3886) by @AndrejOrsula
- Add typecheck test (3d0060e) by @AndrejOrsula
- Add core tests (31d37b8) by @AndrejOrsula
- Add Python package manifest and metadata (de8842c) by @AndrejOrsula
- Add automated robot description discovery (5c941c4) by @AndrejOrsula
- Gitignore: Add cache and coverage reports (f82f918) by @AndrejOrsula
- Added joints jogging with MoveIt2 servo (1416cb5) by @macmacal
Changed
- Docker: Update .dockerignore to allow helper scripts (e0d2194) by @AndrejOrsula
- Build(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (e5edd27) by @dependabot[bot] in #135
- Build(deps): bump actions/download-artifact from 4.3.0 to 8.0.1 (60842da) by @dependabot[bot] in #137
- Build(deps-dev): bump mypy from 1.15.0 to 2.3.1 in /.ci (6de83c7) by @dependabot[bot] in #134
- Build(deps-dev): bump coverage from 7.6.10 to 7.16.0 in /.ci (31369e5) by @dependabot[bot] in #136
- Update CHANGELOG for 5.0.0 (76eb79c) by @AndrejOrsula
- Deprecate
max_stepparameter in favor ofcartesian_max_step(d101370) by @AndrejOrsula - Update documentation for the 5.0.0 release (d83a4c3) by @AndrejOrsula
- CI: Update Debian package build workflow (69c4801) by @AndrejOrsula
- CI: Update Dependabot automation (99581a9) by @AndrejOrsula
- CI: Automate testing and codecov reporting across ROS 2 distributions (fb66745) by @AndrejOrsula
- CI: Update pre-commit workflow (cbf470f) by @AndrejOrsula
- Update examples (0371a5d) by @AndrejOrsula
- Update ROS 2 package manifest (7b2824b) by @AndrejOrsula
- Standardize MoveIt2Servo across different ROS 2 distributions (b055206) by @AndrejOrsula
- Refactor the unified gripper interface with lifecycle management and joint state validation (6654cd6) by @AndrejOrsula
- Refactor MoveIt2 interface with lifecycle management and error handling (2643626) by @AndrejOrsula
- License: Update copyright year to 2026 (0fcccf1) by @AndrejOrsula
- Pre-commit: Update hooks (c2bbfb4) by @AndrejOrsula
- Pre-commit: Update setup script usage message (3b9d727) by @AndrejOrsula
- Build(deps): bump actions/setup-python from 6 to 7 (149c164) by @dependabot[bot] in #132
- Build(deps): bump actions/checkout from 6 to 7 (b1bcfe3) by @dependabot[bot] in #131
- Build(deps): bump dependabot/fetch-metadata from 2 to 3 (680bdf9) by @dependabot[bot] in #129
- Apply the custom start joint state to the request (900c137) by @AndrejOrsula in #127
- Avoid blocking update planning scene (64ce749) by @AndrejOrsula in #126
- Docs: Update naming from Ignition to Gazebo (3568a98) by @AndrejOrsula in #125
- Use context managers for mutex (732cbc5) by @mfinean in #113
- Merge pull request #124 from christian-rauch/ci_allow_concurrency (d5fc691) by @christian-rauch in #124
- Allow concurrent CI jobs (9d653b1) by @christian-rauch
- Merge pull request #117 from macmacal/bugfix/servo_topic_name_typo (36b6ca7) by @christian-rauch in #117
- Merge remote-tracking branch ‘origin/main’ into bugfix/servo_topic_name_typo (083bda2) by @AndrejOrsula
- Merge pull request #118 from macmacal/feature/add_servo_jogging (79088ac) by @christian-rauch in #118
- Merge remote-tracking branch ‘origin/main’ into feature/add_servo_jogging (df707fc) by @AndrejOrsula
- CI: Disable pull_request trigger for the build workflow (e581b73) by @AndrejOrsula in #121
- Build(deps): bump actions/checkout from 5 to 6 (e40c904) by @dependabot[bot] in #120
- Merge pull request #115 from AndrejOrsula/ci_run_example (8c562a4) by @christian-rauch in #115
- Handle ExternalShutdownException during wait for joint states (20695be) by @christian-rauch
- Run ‘ex_pose_goal’ example (7b74438) by @christian-rauch
- Replace deprecated ‘warn’ with ‘warning’ (efe253a) by @christian-rauch
- Replace internal ‘_logger’ member with public ‘get_logger()’ method (c63e58f) by @christian-rauch
- Install ROS 2 CLI Packages (db8737c) by @christian-rauch
Fixed
- CI: Fix test for documenting script usage (c5a30ad) by @AndrejOrsula
- Fix dockerignore matches across tests (747ea2a) by @AndrejOrsula
- CI: Fix path to scripts and set coverage threshold to 65% (5de2535) by @AndrejOrsula
- Fix type error in mesh upload (b25c9a6) by @grahas in #133
- Fixed topic path for servo commands (5c6b24b) by @macmacal
Removed
- Remove non-existing ‘master’ branch (cce4671) by @christian-rauch
New Contributors
[4.2.0] - 2025-10-31
Added
- Add a new namespace parameter to MoveIt2Servo (8b79149) by @Flamethr0wer in #102
- Add a method for setting the workspace parameters (a89b816) by @mfinean in #106
- CI: Add build workflow (c2dda9e) by @AndrejOrsula in #97
Changed
- Merge pull request #114 from AndrejOrsula/rel_412 (5f97078) by @christian-rauch in #114
- Update the release version in the package.xml (dea501f) by @christian-rauch
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_python | |
| action_msgs | |
| control_msgs | |
| geometry_msgs | |
| moveit_msgs | |
| rclpy | |
| sensor_msgs | |
| shape_msgs | |
| std_msgs | |
| std_srvs | |
| trajectory_msgs | |
| rcl_interfaces | |
| ament_cmake_pytest |



