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.14.

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 (Pose, JointState, ...)
  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.0

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.0
File Actions
wheelchair_planning-0.4.0-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.0-cp315-cp315-manylinux_2_34_x86_64.whl
wheelchair_planning-0.4.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for wheelchair_planning-0.4.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
wheelchair_planning-0.4.0-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.0-cp314-cp314-manylinux_2_34_x86_64.whl
wheelchair_planning-0.4.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 for wheelchair_planning-0.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
wheelchair_planning-0.4.0-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.0-cp313-cp313-manylinux_2_34_x86_64.whl
wheelchair_planning-0.4.0-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.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
wheelchair_planning-0.4.0-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.0-cp312-cp312-manylinux_2_34_x86_64.whl
wheelchair_planning-0.4.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 for wheelchair_planning-0.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Total release size: 50.0 MB

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

Download URL wheelchair_planning-0.4.0-cp315-cp315-manylinux_2_34_x86_64.whl
Size 6.3 MB
Tags CPython 3.15 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
7c7ee192eca25b4e3f79b43fb58d9747270ec24b00a839ba2d1c677faf211f80
BLAKE2b-256 checksum
How to use checksums
b87bbade41d374558698080c886a9f3d037e8b1cfa3b1ef60757d2736b726099
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

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

Download URL wheelchair_planning-0.4.0-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
202e8a4d1fd79aab7f7a99192362eb130efa5c6abe7b11b8213b64a2b3144994
BLAKE2b-256 checksum
How to use checksums
a2e622342d14d533e547fe06d1e73b318dafdfabd836e7bc16116ac5fee53947
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

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

Download URL wheelchair_planning-0.4.0-cp314-cp314-manylinux_2_34_x86_64.whl
Size 6.3 MB
Tags CPython 3.14 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
1e4cef13b73a4bdeac1310d320f6368f68c58f99c7050a7be545b114285a7b89
BLAKE2b-256 checksum
How to use checksums
13a77b176db220280269491ded68709d1217435cd7edd46d2733b661d2d9dcec
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

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

Download URL wheelchair_planning-0.4.0-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
1aff89ed9126864f5cccbee7705e03987e5a6fc4a002585400f4717d41db4965
BLAKE2b-256 checksum
How to use checksums
0a6475bdf01a8160d207d12465331cd4b86a6df87a15152bf165de0d5b45e4a9
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

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

Download URL wheelchair_planning-0.4.0-cp313-cp313-manylinux_2_34_x86_64.whl
Size 6.3 MB
Tags CPython 3.13 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
fd08291fbb47c75b0b75c16ca4d9f54cd0f39e38159e99fd4e0d369aad475072
BLAKE2b-256 checksum
How to use checksums
1c7739850f10acf6a0bec832ff515e11d11d29e7053fd0b0e97f88f6b7f80133
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

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

Download URL wheelchair_planning-0.4.0-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
8f6692180c2ba4fa721e031253404cdc9e729d9fe077c77d237660afd272afcf
BLAKE2b-256 checksum
How to use checksums
6fbac4ae37b66370215d227b4665c5f0aa2e1cc37895456ba2c7a6eafe0aeced
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

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

Download URL wheelchair_planning-0.4.0-cp312-cp312-manylinux_2_34_x86_64.whl
Size 6.3 MB
Tags CPython 3.12 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
98ee76cf3ecaec33bf3ee67f0ce9899f21f0fd6366e36cd9aad77e43f1ff5808
BLAKE2b-256 checksum
How to use checksums
f7b32f5e2120a791f02c279401d4bff037f199a2796efedc641aad5d8c7b72b4
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

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

Download URL wheelchair_planning-0.4.0-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
b6f42c206d202519a70286b40b1076e4e88ef7dea64c23e33dbdfd2bbc3c6e1d
BLAKE2b-256 checksum
How to use checksums
af0bfa81238b1ca343b527803427180f32689987f0b17aae8700188bc4c00641
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

Security for wheelchair-planning 0.4.0

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.0-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 Sep 29, 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.0 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