Skip to main content

a suite of utility functions to facilitate robotic planning related research on the pybullet physics simulation engine.

Project description

pybullet_planning is a suite of utility functions to facilitate robotic planning related research on the pybullet physics simulation engine. Planning research made easy.

Main features

  • easy-to-use functions to connect with pybullet, tailored for task and motion planning research
  • built-in implementations of standard motion planners, including PRM, RRT, biRRT, A* etc.

Getting Started

pybullet_planning can be installed using pip:

pip install pybullet_planning


On Windows, you may need to install Microsoft Visual C++ 14.0.

Once the installation is completed, you can verify your setup. Start Python from the command prompt and run the following:

>>> import pybullet_planning

First Steps


We love contributions!

Check the Contributor’s Guide for more details.

Releasing this project

Ready to release a new version of pybullet_planning? Here’s how to do it:

  • We use semver, i.e. we bump versions as follows:
    • patch: bugfixes.
    • minor: backwards-compatible features added.
    • major: backwards-incompatible changes.
  • Update the CHANGELOG.rst with all novelty!
  • Ready? Release everything in one command:
invoke release [patch|minor|major]
# with -b to bump version
  • Celebrate! 💃


Caelan Reed Garrett. PyBullet Planning. 2020.

This package was initiated and maintained by Caelan Garrett @caelan and other contributors.


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.


Added - Added current_conf to as the single-node ladder in the ladder graph Cartesian planning plan_cartesian_motion_lg

Changed - Changed Attachment.from_data to construct parent and child bodies from body name data - Changed EdgeBuilder from using upper_tm and joint_vel_limits to directly using jump_threshold




  • Added SE3 floating body motion planning
  • Added ladder graph cartesian planner


  • Removed requirments.txt, moved dependencies into



  • Fixed Windows OS “Display not in os.environ” issue in connect



  • diagnosis collision checking function to help visualizing the collision bodies’ information
  • add workspace_bodies to the get_collision_fn to check collisions with the obstacles specified in a URDF file.
  • move ik_interface module from application side to this repo, since it’s “universal” for fixed-end robot. Might need to add a separete one for robots with moving base later.
  • enable travis ci unit test, collision_fn well tested
  • get_floating_body_collision_fn to check a body without joints’s collision. Associated test added.
  • Added snap_sols to kinematics.ik_utils


  • add extra_disabled_collisions parameter to get_collision_fn, plan_joint_motion
  • Changed get_name to return name without index if name is not ‘’


  • get_collision_diagnosis_fn removed, integrated into the get_collision_fn


  • utils.numeric_sample.randomize: random.shuffle cannot operate on a range in py 3.x. Enforced conversion to list to fix it.
  • Fixed get_collision_fn to ignore checking between bodies both specified in attachment and obstacles (prioritize its role as attachment)



  • add body name for bodies from create_obj

Requested features

  • clone_body work for bodies from create_obj



  • Initial version
  • Divide the original file into separate modules
  • Modules cycle dependency resolved.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pybullet-planning, version 0.5.1
Filename, size File type Python version Upload date Hashes
Filename, size pybullet_planning-0.5.1.tar.gz (8.2 MB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page