Autolife-Planning
A planning library for the Autolife robot. It provides inverse kinematics (TRAC-IK and Pink), motion planning (VAMP), and collision-aware planning through a unified Python interface.
Features
- Inverse Kinematics — TRAC-IK (unconstrained) and Pink (QP-based constrained) solvers with CoM stability, camera stabilization, and self-collision avoidance
- Motion Planning — VAMP-based planner with collision checking, path validation, and subgroup planning
- Time Parameterization — TOPP-RA converts planned paths into executable trajectories with velocity/acceleration limits
- Collision Geometry — Spherized URDF representations for efficient collision detection, pointcloud obstacle support
Quick Start
Platform: Linux, Python 3.12+.
For inference — running the planners and IK solvers — just pip install:
git clone --recursive https://github.com/AdaCompNUS/Autolife-Planning.git
cd Autolife-Planning
pip install -e .
For development — rebuilding URDFs, regenerating FK headers, running the C++ toolchain end-to-end — use the setup script, which also installs pixi and the conda-forge deps (pinocchio, orocos-kdl, eigen, boost, ...):
bash scripts/setup.sh
See the Getting Started guide for detailed installation options.
Usage
# Inverse kinematics
pixi run python examples/ik/basic.py
pixi run -e dev python examples/ik/basic_vis.py # PyBullet visualization
pixi run -e dev python examples/ik/constrained_vis.py # Pink QP with CoM stability
# Motion planning
pixi run python examples/planning/motion.py
pixi run python examples/planning/subgroup.py
pixi run -e dev python examples/planning/constrained/plane.py
pixi run -e dev python examples/planning/cost/orientation_lock.py
# Time parameterization
pixi run python examples/planning/time_parameterization.py
# End-to-end pick-and-place demo (the video above)
pixi run -e dev python examples/demos/rls_pick_place.py
# Tests
pixi run -e dev test
Project Structure
autolife_planning/ # Core Python package
kinematics/ # TRAC-IK + Pink IK, FK, collision checking
planning/ # VAMP motion planning, cost + constrained planners
trajectory/ # TOPP-RA time parameterization
envs/ # Simulation environments (PyBullet)
types/ # Shared dataclasses (Pose, JointState, ...)
resources/ # Packaged URDFs and asset loaders
ext/
ompl_vamp/ # OMPL + VAMP planner extension, generated FK header
time_parameterization/ # Vendored TOPP-RA C++ core (nanobind)
trac_ik/ # Vendored TRAC-IK C++ (pybind11)
third_party/
cricket/ # FK code generator
foam/ # Collision geometry processing
vamp/ # Motion planning (installed as editable PyPI dep)
examples/
ik/ # TRAC-IK + Pink examples
planning/ # Motion, subgroup, cost, constrained planning demos
demos/ # End-to-end scenarios (rls_pick_place, ...)
tests/ # Pytest suite (CI)
scripts/
render_videos/ # Docs/demo video pipeline
... # Setup, build, spherize, FK codegen
resources/ # Robot URDF and mesh files
assets/ # Scene pointclouds and env meshes
docs/ # MkDocs site sources (GitHub Pages)
Acknowledgements
This project builds on several outstanding open-source libraries:
- VAMP — SIMD-accelerated motion planning and collision checking (Kavrakilab, Rice University).
- OMPL — The Open Motion Planning Library (Kavrakilab, Rice University).
- TOPP-RA — Reachability-analysis-based time-optimal path parameterization (MIT, © Hung Pham). Its C++ core is vendored unmodified under
ext/time_parameterization/toppra/. - TRAC-IK — Inverse kinematics solver (TRACLabs).
Metadata
Release files for autolife-planning 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| autolife_planning-1.1.0-cp314-cp314-manylinux_2_34_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.34+ x86-64 | Details |
| autolife_planning-1.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| autolife_planning-1.1.0-cp313-cp313-manylinux_2_34_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.34+ x86-64 | Details |
| autolife_planning-1.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| autolife_planning-1.1.0-cp312-cp312-manylinux_2_34_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.34+ x86-64 | Details |
| autolife_planning-1.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
Total release size: 59.8 MB
Release files / autolife_planning-1.1.0-cp314-cp314-manylinux_2_34_x86_64.whl
| Download URL | autolife_planning-1.1.0-cp314-cp314-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 10.0 MB |
| Tags | CPython 3.14 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
14b58e52ef5e1ba7ae4eef15c97da17cc3eb2db1d86ce411fbc30bbea6fb548e
|
|
BLAKE2b-256 checksum How to use checksums |
2c5a579a710c955d613f1df3e2230bf4044928079c54fe24da71f84d9f4b1afb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / autolife_planning-1.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | autolife_planning-1.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 9.9 MB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
c8e6049a20f6abda33212d53b3201998669710baf56a827d5189226d616db4a4
|
|
BLAKE2b-256 checksum How to use checksums |
bb5cd537328e87d21bbc12480a09f981e7c532a5c23e047b72a597e5f396d866
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / autolife_planning-1.1.0-cp313-cp313-manylinux_2_34_x86_64.whl
| Download URL | autolife_planning-1.1.0-cp313-cp313-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 10.0 MB |
| Tags | CPython 3.13 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
0f3de098b1ca2a69cae352118a45f9e65fde3df802aa04da0c054155a198cfb8
|
|
BLAKE2b-256 checksum How to use checksums |
4519a4c340f717b5891137886b0da69baca05020bd1203f6aa7a46b4fdb59d44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / autolife_planning-1.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | autolife_planning-1.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 9.9 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
e6961fdef5aa0c9f17e88406f25805e7f4b0e556a5324a890abfe313bb4adc33
|
|
BLAKE2b-256 checksum How to use checksums |
82064a1ad2c9299e6416910447f0ce75b842d8f141294c7b38072ba3c6560262
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / autolife_planning-1.1.0-cp312-cp312-manylinux_2_34_x86_64.whl
| Download URL | autolife_planning-1.1.0-cp312-cp312-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 10.0 MB |
| Tags | CPython 3.12 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
c49443b03b2b4e70342afd628346c18ce0d6f8df2ea38ddbff1ec4a7aa09c107
|
|
BLAKE2b-256 checksum How to use checksums |
7acadf0f60b1f348710768f4a950c4380e65870b81a109eee5dfb7b6a92b31fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / autolife_planning-1.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | autolife_planning-1.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 9.9 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
c22008dbcd953d1768b4fd5b6a90132750d0adabcb296f9e4c11a1ba13077e2b
|
|
BLAKE2b-256 checksum How to use checksums |
aeaaf1a01529990255c2f80a6cfc51734d802e48ba64cd9f385bfa7cce2bd28c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency log