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
This package provides:
- [
BulletRobot]: A general Python interface class for robot simulations using PyBullet. Python API class to control and monitor the robot in the simulation. - [
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)
Task-space control
Example using a custom cartesian impedance / torque control for task-space control.
(demo_task_space_control.py)
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)
Whole-body / multi-end-effector IK
Floating-base IK tracking the body pose and all four feet simultaneously.
(demo_quadruped_ik.py)
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63c8d822dc77ff3a3d154818d3aa6b662b06446c65566d70b18dd4b3a62773d0
|
|
| MD5 |
7bfef747d1369e0223ca73827374e09c
|
|
| BLAKE2b-256 |
f9f9ce889fa8f2bce5fb295ab08ceb00713edb44930404d950840cd54e816c44
|
Provenance
The following attestation bundles were made for pybullet_robot-0.2.2.tar.gz:
Publisher:
publish.yml on justagist/pybullet_robot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pybullet_robot-0.2.2.tar.gz -
Subject digest:
63c8d822dc77ff3a3d154818d3aa6b662b06446c65566d70b18dd4b3a62773d0 - Sigstore transparency entry: 1853530788
- Sigstore integration time:
-
Permalink:
justagist/pybullet_robot@fdffc9d4b977b2afc68be9ee9eabe46b9329ea15 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/justagist
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fdffc9d4b977b2afc68be9ee9eabe46b9329ea15 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b986e3de2a62f23430783c14e5897f4fda01111a721e957ca5aa0c5abdffb0c
|
|
| MD5 |
fbba1f31203fe2e25db2cd256963258d
|
|
| BLAKE2b-256 |
507cecb39fb5ead54d00d621bb94740ec417764792b2443495005aae7ecc1ebf
|
Provenance
The following attestation bundles were made for pybullet_robot-0.2.2-py3-none-any.whl:
Publisher:
publish.yml on justagist/pybullet_robot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pybullet_robot-0.2.2-py3-none-any.whl -
Subject digest:
1b986e3de2a62f23430783c14e5897f4fda01111a721e957ca5aa0c5abdffb0c - Sigstore transparency entry: 1853530808
- Sigstore integration time:
-
Permalink:
justagist/pybullet_robot@fdffc9d4b977b2afc68be9ee9eabe46b9329ea15 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/justagist
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fdffc9d4b977b2afc68be9ee9eabe46b9329ea15 -
Trigger Event:
push
-
Statement type: