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
- 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