April 28, 2023

GSOC: MoveIt 2 Python Bindings

by Peter David Fagan, University of Edinburgh
GSOC: MoveIt 2 Python Bindings

A new Python library for MoveIt is now available in ROS2 Rolling. The new Python library binds core components of the MoveIt C++ API and exposes the functionalities of these components through a Python API.

Python Library Features

The Python library can be found under the folder moveit_py in the MoveIt 2 repository root directory. An outline of the codebase structure is provided within the package README.md, below we provide a high-level overview of the structure of the Python library,

  • A core module that provides Python bindings for packages available in moveit_core
    • collision_detection
    • kinematic_constraints
    • planning_interface
    • planning_scene
    • robot_model
    • robot_state
    • robot_trajectory
    • transforms
  • A planning module that provides Python bindings for a subset of the functionalities within moveit_cpp
  • A servo module that enables users to integrate new teleoperation devices in Python

Getting Started In order to help new users get started with the library we have curated the following set of tutorials,

API documentation is also available for the library here.

What’s next?

There are many additional features, enhancements and tutorials that can be made available for the existing Python library. Below are some features, enhancements and tutorials that should be addressed in the near future:

  • Features
    • Implement interface for interacting with grippers
    • Implement utilities for deploying learnt policies with MoveIt Servo
    • Establish feature parity with existing C++ API
  • Enhancements
  • Tutorials
    • Real-world data collection for imitation learning
    • Setting up real-world reinforcement learning experiments
    • Deploying policies learnt in Isaac-Sim on real robots

New contributors to the MoveIt project are highly encouraged to get involved in development of the Python library. See the Contribution Guides for further details.

Acknowledgements

I would like to thank my project mentors Henning Kayser and Michael Görner for the time they dedicated to supervise my project. I would also like to thank other MoveIt maintainers/contributors who took the time to review my code and provide feedback. Finally thank you to the Google Summer of Code program for funding this project and to the ML Collective for providing compute funding for this project.