pybullet-planning (ss-pybullet)

A repository of PyBullet utility functions for robotic motion planning, manipulation planning, and task and motion planning (TAMP). This repository was originally developed for the PDDLStream (previously named STRIPStream) approach to TAMP.

With the help of Yijiang Huang, a stable and documented fork of ss-pybullet named pybullet_planning is available through PyPI. However, new features will continue to be introduced first through ss-pybullet.


Install PyBullet on OS X or Linux using:

$ pip install numpy pybullet
$ git clone --recurse-submodules
$ cd ss-pybullet
$ git pull --recurse-submodules

IKFast Compilation

We recommend using IKFast, an analytical inverse kinematics solver, instead of PyBullet's damped least squares method solver.
IKFast bindings are included for the following robots.
To create IKFast bindings for a new robot, following the instructions in ikfast_pybind.

Franka Panda

$ cd ss-pybullet/pybullet_tools/ikfast/franka_panda
$ python build


$ cd ss-pybullet/pybullet_tools/ikfast/movo
$ python -a {left,right}


$ cd ss-pybullet/pybullet_tools/ikfast/pr2
$ python build


  1. Test pybullet - python -c 'import pybullet'



  • Kuka IIWA pick planning - $ python -m examples.test_kuka_pick
  • PR2 motion planning - $ python -m examples.test_pr2_motion
  • PR2 teleoperation - $ python -m examples.teleop_pr2
  • PR2 visibility - $ python -m examples.test_visibility
  • PR2 copying - $ python -m examples.test_clone
  • TurtleBot collisions - $ python -m examples.test_turtlebot
  • Franka Panda workspace planning - $ python -m examples.test_franka
  • MOVO random workspace planning - $ python -m examples.test_movo
  • Dropping beads - $ python -m examples.test_water



PDDLStream Examples