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.
- 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 — Time-optimal trajectory generation (TOTG) converts planned paths into executable trajectories with velocity/acceleration limits
- Collision Geometry — Spherized URDF representations for efficient collision detection, pointcloud obstacle support
Platform: Linux, Python 3.11+ (see pixi.toml).
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 .If you are using Python 3.8, install the robotics Pink package from conda-forge first:
conda install -n autolife -c conda-forge pink --solver=libmamba -yFor 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.shSee the Getting Started guide for detailed installation options.
# 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 testautolife_planning/ # Core Python package
kinematics/ # TRAC-IK + Pink IK, FK, collision checking
planning/ # VAMP motion planning, cost + constrained planners
envs/ # Simulation environments (PyBullet)
types/ # Shared dataclasses (Pose, JointState, ...)
resources/ # Packaged URDFs and asset loaders
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)
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).
- MoveIt 2 — The vendored TOTG (Time-Optimal Trajectory Generation) implementation in
ext/time_parameterization/is adapted from MoveIt 2'strajectory_processingmodule, originally by Tobias Kunz and Mike Stilman (Georgia Tech). Seeext/time_parameterization/LICENSE.TOTGfor the full BSD license. - TRAC-IK — Inverse kinematics solver (TRACLabs).
