ServoPy
From robot targets to controlled motion. A ROS-independent C++ core with a Python API for online joint and Cartesian servoing.
Documentation · Source · 中文介绍
ServoPy turns joint or Cartesian targets and measured feedback into bounded motion references. It supports position, velocity, pose and twist commands; native URDF or optional Pinocchio kinematics; DLS or bounded QP solvers; and optional Ruckig jerk control. NumPy is the only required third-party Python runtime dependency.
Install on Ubuntu
Prebuilt Linux wheels target CPython 3.10–3.14, x86_64 / ARM64, and glibc 2.28 or newer. A matching wheel needs no C++ compiler, CMake, Eigen installation or ROS. Ubuntu 22.04 and 24.04 provide suitable default Python versions; on Ubuntu 20.04, install Python 3.10 or newer in a separate environment first. Python 3.8/3.9, 32-bit and free-threaded builds are outside this wheel matrix.
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install --only-binary=:all: servo-py
python -m servo_py.examples.track_pose
If Ubuntu reports that venv is missing, install its matching python3-venv package. The example uses bundled URDF data, runs without a checkout or display, and finishes in HOLD with a position error of about 9.8e-5 m.
Panda simulation
python -m pip install --only-binary=:all: 'servo-py[mujoco]'
servo-py-panda --control-mode joint-position
For a machine without a desktop, run servo-py-panda --headless. The default demo runs an 18-second simulation. Choose torque, joint-position or ik-position; press Space to pause the viewer. Video recording also needs a working graphics backend.
The wheel and source distribution do not contain Panda model assets. On first use the demo downloads a fixed, approximately 5 MB archive, verifies its SHA-256, and caches it under ~/.cache/servo-py (or $XDG_CACHE_HOME/servo-py). Further runs reuse the cache offline. Installing or importing ServoPy, the basic URDF example and servo-py-panda --help do not download this model. For offline setup, supply the pinned archive via SERVO_PY_PANDA_ARCHIVE=/path/to/panda.zip; see the model setup guide. The small provenance manifest and license are included in the package.
Optional dependencies
servo-py[mujoco]: simulation, viewer and video recording.servo-py[pinocchio]: Pinocchio kinematics.servo-py[ruckig]: Ruckig 0.19.4 trajectory smoothing. Its upstream Linux wheels currently cover x86_64; installing this extra on ARM64 requires an upstream source build.
Extras can be combined, for example python -m pip install 'servo-py[mujoco,ruckig]' on x86_64. See the installation guide and Panda tutorial.
Source builds and scope
Source builds require Python 3.10 or newer, a compiler and standard library supporting C++17 or newer, CMake 3.20 or newer, and Eigen headers (provided by cmeel-eigen>=3.4,<4 during isolated pip builds). C++17 is the minimum language standard.
ServoPy generates references; your application owns feedback, actuator commands and device stopping. Physical-robot validation, geometric collision checking and hard real-time execution are outside the current verified scope. See the design contract and validation record.
ServoPy is MIT-licensed. The separately downloaded Panda assets are Apache-2.0; see NOTICE. This is an independent project and does not claim MoveIt compatibility.
Metadata
Release files for servo-py 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| servo_py-0.3.0.tar.gz | 6.1 MB | With provenance | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| servo_py-0.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| servo_py-0.3.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 | Details |
| servo_py-0.3.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 |
| servo_py-0.3.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 | Details |
| servo_py-0.3.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 |
| servo_py-0.3.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 | Details |
| servo_py-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| servo_py-0.3.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 | Details |
| servo_py-0.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| servo_py-0.3.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 | Details |
Total release size: 10.1 MB
Release files / servo_py-0.3.0.tar.gz
| Download URL | servo_py-0.3.0.tar.gz |
|---|---|
| Size | 6.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dac896cbdb36de22805812678543922abf0c2c274eea0894b9ac094d625b3691
|
|
BLAKE2b-256 checksum How to use checksums |
b610da380d23d4c58bc66c2d8e40de17785de3682d5c0278a1c2c583617aea15
|
| 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 18, 2026.
Transparency logRelease files / servo_py-0.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | servo_py-0.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 417.7 kB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
43dec8a77c31d9ed9f71ea75d3d0284c49bf3bea4dd8382fa22f29095df56091
|
|
BLAKE2b-256 checksum How to use checksums |
2ac3b4cd95eeb1770a3fa23474075492e1c7df3a357414ee3b8f3e8571683e35
|
| 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 18, 2026.
Transparency logRelease files / servo_py-0.3.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | servo_py-0.3.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 382.0 kB |
| Tags | CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
1d5f4ac584a4dc76479412568c9aca478163f150f917d53e4b16dfcd04a96b89
|
|
BLAKE2b-256 checksum How to use checksums |
cc874df97745281e72f34a1ec0792de2f6c7cc605fa9aecc3f319e8f61156a54
|
| 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 18, 2026.
Transparency logRelease files / servo_py-0.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | servo_py-0.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 417.8 kB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0e0831396aef75328909eaaeafb7cd1ae5a86cf26bbbe8bbbdfc747f8bc071a4
|
|
BLAKE2b-256 checksum How to use checksums |
ee7fc31a97ce70b641ebde10e935ef0e13b8637e4ca2ec6abd9f53157e969f2b
|
| 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 18, 2026.
Transparency logRelease files / servo_py-0.3.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | servo_py-0.3.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 381.1 kB |
| Tags | CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
d6bb658afe09e71a6be2c69e8c732599de5cb628ff328f2e1f9555bb65cc7310
|
|
BLAKE2b-256 checksum How to use checksums |
36243b576edd7a726d43cda1cb2b30a8c7efa63e9a9e6cf9bf537be03a2296ea
|
| 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 18, 2026.
Transparency logRelease files / servo_py-0.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | servo_py-0.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 417.8 kB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
d514c950a4b0a6cee4dec4e5ebf1d68ee45d717a4b35f8728eb6d686e881d77d
|
|
BLAKE2b-256 checksum How to use checksums |
ed2f5ca2cfb114c8ca0c21d13d622a5757da760bd913542bcb7cb6d7f6e64b47
|
| 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 18, 2026.
Transparency logRelease files / servo_py-0.3.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | servo_py-0.3.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 381.1 kB |
| Tags | CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
4456eb8f3ea6231b388d92e9c50b2faa5b4d4e82387f1da275e31c41a7827e6c
|
|
BLAKE2b-256 checksum How to use checksums |
2b46136d573663c66bf97822b62d86fafed00c17b7c842c4598b658264fa8721
|
| 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 18, 2026.
Transparency logRelease files / servo_py-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | servo_py-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 414.9 kB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
34b4d7d53bb6fdc62a81d8c20f7e99e94f26ca357113bfff813c06eadb3ed79f
|
|
BLAKE2b-256 checksum How to use checksums |
13f8448245b81787c1508b8726683d3c94a62a4df954eee3bf4a515f877c672f
|
| 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 18, 2026.
Transparency logRelease files / servo_py-0.3.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | servo_py-0.3.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 379.2 kB |
| Tags | CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
2faf52139f7a401c0b167a635d2923360bd903e29b538b0f883fc17ed655c2b5
|
|
BLAKE2b-256 checksum How to use checksums |
3441c389776e77af28aebd2b248617515a9f64dbb0dd875fcfe5c13a8f66b05c
|
| 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 18, 2026.
Transparency logRelease files / servo_py-0.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | servo_py-0.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 414.2 kB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
05effbbb8a9c9b6e49da75d39b6b87866eb89d8fb488d258b4b8cdd2c38411d7
|
|
BLAKE2b-256 checksum How to use checksums |
3c7c98fdd53118e66d380ce03ce32fb26b749fa4d1aff254ad299f04cc5fcaaf
|
| 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 18, 2026.
Transparency logRelease files / servo_py-0.3.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | servo_py-0.3.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 378.2 kB |
| Tags | CPython 3.10 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
e8bdc4a02a0b338bc5ec338e27dec68ffea3497cfb55948d3705ecfbe365b0d5
|
|
BLAKE2b-256 checksum How to use checksums |
220d21f7eabe16d8f308b6ab65669c3ac1eca3d08a9dd3f329d06e0f38a623c7
|
| 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 18, 2026.
Transparency logSecurity for servo-py 0.3.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 11 files in this release have been uploaded with provenance metadata.
Attestation for servo_py-0.3.0.tar.gz
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 18, 2026.
Transparency logA 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.