Skip to main content

Wheel-Chair-Planning

Documentation Build Docs CI

A planning library for the wheelchair-mounted xArm7 robot (wheelchair_xarm_description). It provides inverse kinematics (TRAC-IK and Pink), motion planning (VAMP + OMPL), and collision-aware planning through a unified Python interface.

The architecture mirrors AdaCompNUS/Autolife-Planning; only the robot has been swapped — from the 24-DOF Autolife humanoid to a 10-DOF mobile manipulator (a 3-DOF planar wheelchair base + a 7-DOF xArm7 arm).

Features

  • Inverse Kinematics — TRAC-IK (unconstrained) and Pink (QP-based constrained) solvers with self-collision avoidance and camera/orientation stabilization
  • Motion Planning — VAMP-based planner with collision checking, path validation, and subgroup planning (arm-only, base-only, and whole-body)
  • Time Parameterization — TOPP-RA; converts planned paths into executable trajectories with velocity/acceleration limits
  • Kinodynamic Planning — FLASK (flatness-based kinodynamic RRT-Connect) plans time-parameterised trajectories directly, with joint/base velocity and acceleration limits and an exactly nonholonomic diff-drive base
  • Collision Geometry — Spherized URDF representations for efficient collision detection, with pointcloud obstacle support

Robot

Description soibkhon/wheelchair_xarm_description (vendored at assets/wheelchair_xarm_description)
Arm UFACTORY xArm7 (7 DOF), end-effector link_tcp
Base Wheelchair platform, modeled as a 3-DOF planar virtual joint (x, y, yaw)
Planning groups wheelchair_arm (7), wheelchair_base (3), wheelchair_whole_body (10)

Quick Start

Platform: Linux x86_64 (AVX2), Python 3.12–3.15.

For inference — running the planners and IK solvers — pip install:

git clone --recursive https://github.com/H-tr/Wheel-Chair-Planning.git
cd Wheel-Chair-Planning
pip install -e ".[kinematics]"   # core deps: numpy, scipy, casadi

The kinematics extra adds pin + pin-pink for the IK solvers; drop it if you only need motion planning and time parameterization.

For development — rebuilding URDFs, regenerating FK headers, running the C++ toolchain end-to-end — use the setup script, which installs pixi and the conda-forge deps (pinocchio, orocos-kdl, eigen, boost, ...):

bash scripts/setup.sh

Usage

# Inverse kinematics
pixi run python examples/ik/basic.py
pixi run -e dev python examples/ik/basic_vis.py           # PyBullet visualization

# Motion planning
pixi run python examples/planning/motion.py
pixi run python examples/planning/subgroup.py

# Time parameterization
pixi run python examples/planning/time_parameterization.py

# Kinodynamic planning (FLASK): drive to a table, then reach over it
pixi run python examples/planning/kinodynamic.py

# Tests
pixi run -e dev test

Rebuilding the robot description

The planning URDFs, spherized collision geometry, and the FK header are generated from the vendored robot description:

pixi run build-robot        # preprocess URDF + meshes + SRDF + virtual base
pixi run decompose-robot    # CoACD convex decomposition
pixi run spherize-robot     # FOAM spherization -> wheelchair_spherized.urdf
pixi run generate-fk        # cricket -> ext/ompl_vamp/robot/wheelchair.hh
pixi run build-pkg          # compile the C++ extensions

Project Structure

wheelchair_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 (SE3Pose, PlannerConfig, ...)
  resources/           # Packaged URDFs and asset loaders
third_party/
  vamp/                # SIMD-accelerated motion planning (submodule)
  ompl/                # Open Motion Planning Library (submodule)
  cricket/             # FK code generator (submodule)
  foam/                # Collision geometry / spherization (submodule)
  toppra/              # Time-optimal path parameterization (submodule)
ext/                   # C++ extensions (ompl_vamp, trac_ik)
assets/
  wheelchair_xarm_description/   # Raw robot description (submodule)
examples/              # IK, planning, demos
tests/                 # Pytest suite (CI)
scripts/               # Setup, build, spherize, FK codegen
docs/                  # MkDocs site sources (GitHub Pages)

Acknowledgements

This project builds on several outstanding open-source libraries and on the AdaCompNUS/Autolife-Planning architecture:

  • 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, used for time parameterization.
  • TRAC-IK — Inverse kinematics solver (TRACLabs).
  • wheelchair_xarm_description — The robot description (URDF + meshes).

Metadata

Release files for wheelchair-planning 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for wheelchair-planning 0.4.1
File Actions
wheelchair_planning-0.4.1-cp315-cp315-manylinux_2_34_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.34+ x86-64 Details for wheelchair_planning-0.4.1-cp315-cp315-manylinux_2_34_x86_64.whl
wheelchair_planning-0.4.1-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for wheelchair_planning-0.4.1-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
wheelchair_planning-0.4.1-cp314-cp314-manylinux_2_34_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.34+ x86-64 Details for wheelchair_planning-0.4.1-cp314-cp314-manylinux_2_34_x86_64.whl
wheelchair_planning-0.4.1-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 for wheelchair_planning-0.4.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
wheelchair_planning-0.4.1-cp313-cp313-manylinux_2_34_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.34+ x86-64 Details for wheelchair_planning-0.4.1-cp313-cp313-manylinux_2_34_x86_64.whl
wheelchair_planning-0.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for wheelchair_planning-0.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
wheelchair_planning-0.4.1-cp312-cp312-manylinux_2_34_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ x86-64 Details for wheelchair_planning-0.4.1-cp312-cp312-manylinux_2_34_x86_64.whl
wheelchair_planning-0.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for wheelchair_planning-0.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Total release size: 49.6 MB

Release files / wheelchair_planning-0.4.1-cp315-cp315-manylinux_2_34_x86_64.whl

Download URL wheelchair_planning-0.4.1-cp315-cp315-manylinux_2_34_x86_64.whl
Size 6.2 MB
Tags CPython 3.15 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
da716c4bb2936d2b9a649c26d5e78b0b4a50cebf9f385b2d94d35c5626ea3b81
BLAKE2b-256 checksum
How to use checksums
2dfcf816b1c376cb9d32c11614d34b315b72e10ccdd6bc476ef520d7630a5db4
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 Oct 19, 2026.

Transparency log

Release files / wheelchair_planning-0.4.1-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL wheelchair_planning-0.4.1-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 6.2 MB
Tags CPython 3.15 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d70f7803e3369a0366d04cc0572f2f6e797a1a21e9ab63980ee5a67b93c2f72f
BLAKE2b-256 checksum
How to use checksums
c3250c20418d9a96b5837c7603df77b058d3e07808f47463ba3c5a8d0c8e8752
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 Oct 19, 2026.

Transparency log

Release files / wheelchair_planning-0.4.1-cp314-cp314-manylinux_2_34_x86_64.whl

Download URL wheelchair_planning-0.4.1-cp314-cp314-manylinux_2_34_x86_64.whl
Size 6.2 MB
Tags CPython 3.14 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
648c5ac9d954169374c163a4ac4f69ee62559c2806e635ef56df0d73bd7b8ca6
BLAKE2b-256 checksum
How to use checksums
4cda37216aac20800aeac04ad2dbbef50ac30c26b456c921560c9a0b815c0967
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 Oct 19, 2026.

Transparency log

Release files / wheelchair_planning-0.4.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL wheelchair_planning-0.4.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 6.2 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5b31e1a7d6287182714afae5058d9d39d9a1bcefb4d6f5a2e3b59034fb61df43
BLAKE2b-256 checksum
How to use checksums
97032e4c990e8cc35712a6291091e2e1104210a5c3250d4f079e6d51b2700b90
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 Oct 19, 2026.

Transparency log

Release files / wheelchair_planning-0.4.1-cp313-cp313-manylinux_2_34_x86_64.whl

Download URL wheelchair_planning-0.4.1-cp313-cp313-manylinux_2_34_x86_64.whl
Size 6.2 MB
Tags CPython 3.13 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
3a26cb9208ff7d559bf8fe06050c29e47a7a6b3ccf7716849c654ec1272de4d0
BLAKE2b-256 checksum
How to use checksums
aa1b357a2bdabc61d0c1cd3e983ec696e0f60fa9a8183bec5bb6ef31f2433b48
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 Oct 19, 2026.

Transparency log

Release files / wheelchair_planning-0.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL wheelchair_planning-0.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 6.2 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d9c1f345a7660b61d12428517c3903353c4aa37243dffa01a1517262b3b6a941
BLAKE2b-256 checksum
How to use checksums
2f5fcdcd17bde3808f3eb29fc0119bfe3680dddaea25ef2a31e03232d7515cdd
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 Oct 19, 2026.

Transparency log

Release files / wheelchair_planning-0.4.1-cp312-cp312-manylinux_2_34_x86_64.whl

Download URL wheelchair_planning-0.4.1-cp312-cp312-manylinux_2_34_x86_64.whl
Size 6.2 MB
Tags CPython 3.12 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
40d960374b79b52bf56ec7caf0dec96ce20a63646ba5b7b7e398e43f2558df03
BLAKE2b-256 checksum
How to use checksums
343c591ec1dff0fc19dd2584666df3a2de4e4ecb4bac41ce76369daefc661399
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 Oct 19, 2026.

Transparency log

Release files / wheelchair_planning-0.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL wheelchair_planning-0.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 6.2 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c73f1244371f74605dbcf1fab16345f15d62819383fd4b18a43ae7821f0792d1
BLAKE2b-256 checksum
How to use checksums
76bc0fd4e0a44059d13accb20a247cfaba51e8f61b300878e01d9eb7ff900f51
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 Oct 19, 2026.

Transparency log

Security for wheelchair-planning 0.4.1

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.

Full provenance

All 8 files in this release have been uploaded with provenance metadata.

Select from 8 files

Attestation for wheelchair_planning-0.4.1-cp315-cp315-manylinux_2_34_x86_64.whl

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 Oct 19, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.4.1 This release

8 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page