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 pybullet-planning named pybullet_planning is available through PyPI. However, new features will continue to be introduced first through pybullet-planning.
Caelan Reed Garrett. PyBullet Planning. https://pypi.org/project/pybullet-planning/. 2018.
Install for macOS or Linux using:
$ git clone --recurse-submodules https://github.com/caelan/pybullet-planning.git
$ cd pybullet-planning
pybullet-planning$ pip install -r requirements.txt
pybullet-planning is intended to have ongoing support for both python2.7 and python3.*
Make sure to recursively update pybullet-planning's submodules when pulling new commits.
pybullet-planning$ git pull --recurse-submodules
We recommend using IKFast, an analytical inverse kinematics solver, instead of PyBullet's damped least squares solver. IKFast bindings are included for the following robots:
pybullet-planning$ (cd pybullet_tools/ikfast/franka_panda; python setup.py)
pybullet-planning$ (cd pybullet_tools/ikfast/movo; python setup.py)
pybullet-planning$ (cd pybullet_tools/ikfast/pr2; python setup.py)
To create IKFast bindings for a new robot, following the instructions in ikfast_pybind.
1) Test PyBullet - pybullet-planning$ python -c 'import pybullet'
test_turtlebot - $ python -m examples.test_turtlebot
Heavily annotated simple example that demonstrates:
pybullet-planning$ python -m examples.test_kuka_pick
pybullet-planning$ python -m examples.test_turtlebot_motion
pybullet-planning$ python -m examples.test_pr2_motion
pybullet-planning$ python -m examples.test_franka
pybullet-planning$ python -m examples.test_movo
pybullet-planning$ python -m examples.test_se3
pybullet-planning$ python -m examples.teleop_pr2
pybullet-planning$ python -m examples.test_json
pybullet-planning$ python -m examples.test_tamp_xml
pybullet-planning$ python -m examples.gripper.test_side
pybullet-planning$ python -m examples.gripper.test_top
pybullet-planning$ python -m examples.test_water
pybullet-planning$ python -m examples.test_clone
See the following examples: https://github.com/caelan/pddlstream/tree/master/examples/pybullet