Skip to main content

PyBullet Robot

PyPI version CI

This package provides:

  1. [BulletRobot]: A general Python interface class for robot simulations using PyBullet. Python API class to control and monitor the robot in the simulation.
  2. [PybulletIKInterface] class: A constraint-based inverse kinematics (IK) "solver" interface. Instead of solving IK analytically, it attaches PyBullet constraints that pull the requested end-effector/link frames towards their target poses, forward-simulates the physics until they settle, and reads back the resulting joint configuration as the IK solution. It supports tracking several frames at once (full 6-DOF pose targets and position-only targets), and floating-base robots (where the base pose is solved together with the joint angles).

Installation

From PyPI

pip install pybullet_robot

From source

pip install git+https://github.com/justagist/pyrcf

Development

Install in editable mode with the development extras (test + lint + build tooling):

git clone -b main https://github.com/justagist/pybullet_robot
cd pybullet_robot
pip install -e ".[dev]"

A dev container is provided for a reproducible environment in VS Code ("Reopen in Container").

Usage

See examples/ for runnable demos covering different robots and capabilities. Robot models are downloaded automatically on first run via robot_descriptions:

cd examples
python demo_task_space_control.py

Examples

Joint position control

Loading a robot, inspecting it, position control, and reading state. (demo_joint_position_control.py)

Joint position control demo

Task-space control

Example using a custom cartesian impedance / torque control for task-space control. (demo_task_space_control.py)

Task-space control demo

Headless IK + separate-sim control

Run the provided PybulletIKInterface headless as a pure solver and apply its solution to a robot controlled via position control. (demo_ik_headless_control.py)

Headless IK control demo

Whole-body / multi-end-effector IK

Floating-base IK tracking the body pose and all four feet simultaneously. (demo_quadruped_ik.py)

Quadruped whole-body IK demo

Interactive inverse kinematics (KUKA iiwa14)

Interactive IK: drag GUI sliders to set an end-effector target and the constraint-based solver reaches it. (demo_ik_interface.py) Visually similar to the headless IK demo above, so it has no separate clip; run it to try it interactively.

Download files

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

Source Distribution

pybullet_robot-1.0.1.tar.gz (23.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pybullet_robot-1.0.1-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file pybullet_robot-1.0.1.tar.gz.

File metadata

  • Download URL: pybullet_robot-1.0.1.tar.gz
  • Upload date:
  • Size: 23.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pybullet_robot-1.0.1.tar.gz
Algorithm Hash digest
SHA256 1279ecdcedbed8fbf9873a5799453a8c0d801dd3e947539814e768d57b987d5b
MD5 304f118bdcf582935d77e204281bfdb5
BLAKE2b-256 346fe4491e53dbe8af454f3880f5dd2d20e8f603c56a3a61765e51fbcd2c163e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybullet_robot-1.0.1.tar.gz:

Publisher: publish.yml on justagist/pybullet_robot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pybullet_robot-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: pybullet_robot-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 21.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pybullet_robot-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eae2dd443a19ff6a4a1c287c303cdcc50c80a69d7cfc6436c2d805e56fd33aee
MD5 ca209d23fbd8e416ce66c349beb49c04
BLAKE2b-256 c239dd7980caa4e717e0024e1790880b3bf9c690972ed0ecd339fd4e6fca5d94

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybullet_robot-1.0.1-py3-none-any.whl:

Publisher: publish.yml on justagist/pybullet_robot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page