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 (
    Controller,                        # QP task-space control (RCM + joint limits)
    NeedleController,                  # adds vessel VFI + insertion constraints
    M3_SerialManipulatorSimulatorFriendly,  # serial-manipulator model
)

Controller is the ICRA 2019 task-space controller and is re-exported from marinholab.sas.core.papers.icra2019 (it now ships in the marinholab-sas-core dependency). ICRA19TaskSpaceController is kept as a backward-compatible alias for it.

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

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.24
File Interpreter ABI Platform
marinholab_working_needlemanipulation-26.8.0.24-py3-none-any.whl Python 3 none any Details

Release files / marinholab_working_needlemanipulation-26.8.0.24-py3-none-any.whl

Download URL marinholab_working_needlemanipulation-26.8.0.24-py3-none-any.whl
Size 22.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
13982d027313f293a4c040c2c6c284525a5852c16ae6c087891e8a71aed1064c
BLAKE2b-256 checksum
How to use checksums
10215fe667170cb8654ced57a84fa5be3278046d0c488c9cf8a5d608cf3f2eb3
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 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

26.8.0.24 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