Skip to main content

Iterative Closest Point Reconstructor for Continuum Robots

This repository provides the implementations and examples used in our publication "An iterative closest point algorithm for marker-free 3D shape registration of continuum robots". All of the implementations were done in Python.

Overview

This project arose from our work "An iterative closest point algorithm for marker-free 3D shape registration of continuum robots", available on arXiv, on the shape estimation of continuum robots (CR), more precisely concentric tube continuum robots we plan on using for minimally invasive neurosurgery procedures. The reconstruction of CRs involves finding the backbone -- the central line -- of the robot.

Here, we aim to provide tools and methods for reproducing the results from our work and to enable other's to find their robot's shape. This package is built up in an object-oriented manner, so that user's can easily implement compatible sub-modules, backbone models and algorithms

Installation

This package is available via PyPI:

pip install icpReconstructor

It requires the following packages:

  • PyTorch
  • CasADi
  • NumPy
  • torchdiffeq
  • scikit-learn
  • scikit-image
  • tqdm
  • NetworkX
  • SciPy

Prerequisites

This package requires you to provide the parameters of a camera-calibration, in particular the following:

  • A: The cameras' intrinsic matrices (3x3) including focal lengths and principal point.
  • dist: The distortion coefficients (k1, k2, p1, p2, k3) for radial and tangential distortion.
  • P: The projection matrix (3x4) used to project 3D camera coordinates onto the image plane.
  • R: The rotation matrix (3x3) describing the orientation of the first camera in world coordinates.
  • T: The translation vector (3x1) describing the position of the first camera in world coordinates.

We chose these formulations to be in line with the camera calibration implementation of OpenCV for stereo calibration. A tutorial can also the found there.

Documentation

For in-depth information about the algorithms and APIs used in CTCR reconstruction, refer to our Github Wiki and our work.

Examples

Within this repository, we provide a set of examples on one set of binary images of a simulated concentric tube continuum robot. These include the One-Step and Multi-Step algorithms presented in our work, but also different ways of warmstarting using image-processing algorithms and space-carving.

Robot Applications

Applications of this method to specific robots are included in the source directory. The applications currently include a modification for a modular bending actuator. An example to use this robot application can be found in the examples directory.

How to Cite

If you find our project valuable for your research or work, please consider citing it using the following format: Hoffmann, M., Mühlenhoff, J., Ding, Z., Sattel T. , Flaßkamp, K., "An iterative closest point algorithm for marker-free 3D shape registration of continuum robots" arXiv preprint arXiv:2405.15336 (2024).

Acknowledgments

This project was developed during my time at Saarland University in the group Systems Modeling and Simulation.

Metadata

Release files for icpReconstructor 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for icpReconstructor 0.1.5
File Size Uploaded Provenance Actions
icpReconstructor-0.1.5.tar.gz 49.7 kB Without provenance Details for icpReconstructor-0.1.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for icpReconstructor 0.1.5
File Interpreter ABI Platform Actions
icpReconstructor-0.1.5-py3-none-any.whl Python 3 none any Details for icpReconstructor-0.1.5-py3-none-any.whl

Total release size: 100.2 kB

Release files / icpReconstructor-0.1.5.tar.gz

Download URL icpReconstructor-0.1.5.tar.gz
Size 49.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d542c7f78d51b97d04a383f0fdcbfc00d53ecbaab55596493877a02bf08b352a
BLAKE2b-256 checksum
How to use checksums
80927fe321bada30958ce51e579d70b7226334a234775769d4b14803e64927ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / icpReconstructor-0.1.5-py3-none-any.whl

Download URL icpReconstructor-0.1.5-py3-none-any.whl
Size 50.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
345518c61fca92ca2bfc65223e45a6754620cca48bf1dae9322d39c224842f24
BLAKE2b-256 checksum
How to use checksums
f85d06528e363cab30c66d3ee6be6ca885a28ba8db6e39603de5d97ec68b30f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Security for icpReconstructor 0.1.5

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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.

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