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.

Installation

Install PyBullet on OS X or Linux using:

$ pip install numpy pybullet
$ git clone --recurse-submodules https://github.com/caelan/ss-pybullet.git
$ 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 setup.py build

MOVO

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

PR2

$ cd ss-pybullet/pybullet_tools/ikfast/pr2
$ python setup.py build

Tests

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

Examples

Examples:

  • 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

turtlebot

movo

PDDLStream Examples

GitHub

https://github.com/caelan/pybullet-planning