finds.dev← search

// the find

AndrejOrsula/pymoveit2

★ 350 · Python · BSD-3-Clause · updated Apr 2026

Basic Python interface for MoveIt 2 built on top of ROS 2 actions and services

A Python wrapper around MoveIt 2's ROS 2 actions and services, letting you script robot arm motion planning without writing C++. Aimed at researchers and hobbyists who want to quickly prototype manipulation tasks with common arms like Panda, UR, or Kinova. The README honestly acknowledges that PickNik's official `moveit_py` now exists as an alternative.

- The API is genuinely simple — move_to_joint_positions, move_to_pose, servo twist commands — you can read an example script and understand it in two minutes without digging into MoveIt internals.

- Robot presets in pymoveit2/robots/ mean you don't have to manually specify joint names, planning group names, or end-effector link strings for common hardware like UR or Panda.

- Covers a useful breadth of operations: joint/pose goals, Cartesian servo control, collision object management (primitive and mesh), FK/IK calls, and path constraints — enough for most manipulation research scripts.

- Active maintenance (last push April 2026), CI via GitHub Actions, and pre-commit hooks indicate the repo isn't abandonware.

- The README itself flags the elephant in the room: PickNik's official `moveit_py` bindings now exist and are the sanctioned path. Adopting pymoveit2 for anything serious means betting on a community shim over the upstream-supported library.

- Supported ROS 2 distros listed are Galactic, Humble, and Iron — Galactic is EOL, Iron is EOL, and there's no mention of Jazzy or Rolling support, which is a real concern for new projects starting today.

- The action/service interface means every move call goes through the ROS middleware round-trip; there's no direct access to the MoveIt C++ planning pipeline, so you can't do things like inspect the planned trajectory before execution or hook into planning callbacks.

- No unit or integration tests visible in the repo — the CI workflow builds the package but there's nothing testing actual planning behavior, so regressions in edge cases (e.g., constraint handling, async execution) are likely to go unnoticed.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →