Skip to main content

A general Python interface class for robot simulations using PyBullet. Also provides an IK interface for multi-end-effector robots that uses bullet physics as a solver.

Project description

PyBullet Robot

PyPI version

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.

Project details


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-0.2.2.tar.gz (21.7 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-0.2.2-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pybullet_robot-0.2.2.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pybullet_robot-0.2.2.tar.gz
Algorithm Hash digest
SHA256 63c8d822dc77ff3a3d154818d3aa6b662b06446c65566d70b18dd4b3a62773d0
MD5 7bfef747d1369e0223ca73827374e09c
BLAKE2b-256 f9f9ce889fa8f2bce5fb295ab08ceb00713edb44930404d950840cd54e816c44

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybullet_robot-0.2.2.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-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: pybullet_robot-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pybullet_robot-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1b986e3de2a62f23430783c14e5897f4fda01111a721e957ca5aa0c5abdffb0c
MD5 fbba1f31203fe2e25db2cd256963258d
BLAKE2b-256 507cecb39fb5ead54d00d621bb94740ec417764792b2443495005aae7ecc1ebf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pybullet_robot-0.2.2-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 Pingdom Monitoring Sentry Error logging StatusPage Status page