Working Project: Needle Manipulation
A University of Manchester (UoM) and University of Tokyo (UTokyo) collaboration, on dual-quaternion (DQ) control for needle insertion. Built on DQRobotics, it provides a QP-based task-space controller with remote-centre-of-motion (RCM) and joint-limit constraints, extended with violation-field constraints that keep a needle within a safe band around vessel primitives (with optional angular insertion constraints).
Installation
pip install marinholab-working-needlemanipulation
This is a pure-Python package. The serial-manipulator kinematics model
(SerialManipulatorSimulatorFriendly, re-exported here as
M3_SerialManipulatorSimulatorFriendly for backward compatibility) is provided
by the marinholab-sas-core dependency, so no C++ toolchain or git submodules
are needed to build it. See AGENTS.md.
Usage
The public API is exposed at the package root:
from marinholab.working.needlemanipulation import (
ICRA19TaskSpaceController, # QP task-space control (RCM + joint limits)
NeedleController, # adds vessel VFI + insertion constraints
M3_SerialManipulatorSimulatorFriendly, # serial-manipulator model
)
Three examples are installed as commands:
needlemanipulation_example— build a small robot and (ifmatplotlibis available) plot it in 3D.needlemanipulation_example_create_needle_controller— build aNeedleControllerfrom the bundledleft_robot.yaml.needlemanipulation_example_load_from_file— run the base controller on the bundled model for a short trajectory (records an MP4 whenmatplotlibis available).
The live end-to-end insertion simulations against the pediatric simulator live
in saul/ and require a running simulator instance; they are not part
of the installed package.
License
See LICENSE for details.
Release files for marinholab-working-needlemanipulation 26.8.0.22
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| marinholab_working_needlemanipulation-26.8.0.22-py3-none-any.whl | Python 3 | none | any | Details |
Release files / marinholab_working_needlemanipulation-26.8.0.22-py3-none-any.whl
| Download URL | marinholab_working_needlemanipulation-26.8.0.22-py3-none-any.whl |
|---|---|
| Size | 26.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b46d64a8c89ad9885a097c62e8f86b926e60feaa1dca9f3a750b1f24ed4f2738
|
|
BLAKE2b-256 checksum How to use checksums |
684b508012f0fee56fa8c6f770d05506af98ea9bb235f6674a561a8b2babe811
|
| 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 24, 2026.
Transparency log