Skip to main content

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 (if matplotlib is available) plot it in 3D.
  • needlemanipulation_example_create_needle_controller — build a NeedleController from the bundled left_robot.yaml.
  • needlemanipulation_example_load_from_file — run the base controller on the bundled model for a short trajectory (records an MP4 when matplotlib is 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)

Table of built distributions (wheels) for marinholab-working-needlemanipulation 26.8.0.22
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

26.8.0.22 This release

1 release file

0.0.1

2 release files

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