Passive Soft Extensions

Interactive companion to the paper

Actuation and Control of Passive Tendon-Driven Soft Extensions Through Rigid Manipulator Motion

A passive soft extension is mounted at the end effector (EE) of an industrial manipulator, and its tendons are anchored to arm links upstream of the EE. Joint motion changes the exterior spans \lo_i of the tendons and therefore their tensions, which bend the soft extension. The manipulator thus positions the soft extension and also actuates its tendons, whereas the soft extension itself contains no motors, sensors, or electronics.

When the task constrains the pose of the EE, for example when the tool passes through an access aperture, only the joint motions compatible with this EE constraint can actuate the soft extension. The controller regulates the tip in the null space of the EE constraint with a damped least-squares control law. Its model combines the analytic arm and tendon kinematics with a deformation map identified from probing motions, and quadratic programming with control barrier functions imposes obstacle-clearance, fulcrum, and model-validity constraints. The analysis bounds the number of deformation directions that the tendons can transmit under an EE constraint and shows that a weighted tip-error function does not increase under the nominal control law.

These pages illustrate the model, run the closed loop on the simulated UR10 of the paper, and animate the analysis. The simulations run in the browser, with a JavaScript port of the Python package of this repository.

Modeling Control demo Analysis
span \lo_i=\|a_i-b_i\| J_D=\Jtr+\Rbar\Jspan\Jlq \qnom=\qdc+N_c\nuv \nabla h^{\T}\qd\ge-\alpha_h(h-\varepsilon_h)
Three ways to access a confined workspace with a manipulator: a passive rigid extension, which may damage the workpiece; an active soft extension, which needs dedicated actuation, power, and control hardware; and the passive soft extension studied here, whose tendons are anchored on the arm.
Fig. 1 of the paper. Three ways to access a confined workspace with a manipulator: a passive rigid extension, an active soft extension, and the passive soft extension studied here. The active soft extension requires its own actuation, power, and control hardware, whereas the passive soft extension is actuated by the joint motion of the manipulator instead of dedicated tendon actuators.

Video

the mechanism, the simulations, and the six experiments on the real setup

The video shows how joint motion changes the tendon spans and deforms the soft extension, the three EE constraints and the barrier functions, the three simulated scenarios, and the six experiments on the real setup.

On the real setup, a UR10 carries handmade soft extensions of foam tubing, each costing less than US$10, with two cord tendons in parallel or helical routing. An RGB-D camera measures three body points and the tip. The experiments regulate the tip with a free EE, a position-constrained EE, and a fulcrum at a finite aperture, with virtual obstacles.

Each experiment is shown with the camera view, a 3-D view from the log, and the tip error, spans, and barrier values over time (3 min). Download the video (MP4, 16 MB)

Interactive pages

in the order of the paper

Results in the paper

simulations (Sec. VI) and experiments on the real setup (Sec. VII); click to enlarge

Code

Python reference implementation, and these pages

The package softext/ implements the simulated UR10 with its Cosserat-rod soft extension, the span kinematics and the differential model (2)–(11), the identification from probing motions, the EE constraints and the null-space control law (12)–(18), the barriers and the QP (19), and the analysis of Sec. V. With the span map identified by the paper's simulator, it reruns the scenarios of Sec. VI and the descent of Fig. 7.

pip install -r requirements.txt
python examples/run_scenario.py S2        # laparoscopic fulcrum (Sec. VI)
python examples/identify.py               # probing and validation error (Sec. VI-A)
python examples/rank_bound.py             # Proposition 1 for the EE constraints
python figures/fig7_stability.py          # Fig. 7
python figures/fig8_scenarios.py          # Fig. 8 (S1-S3)
python -m unittest discover tests

The pages are static files (HTML, CSS, and JavaScript, with KaTeX and three.js included), so they run on any web server. To open them locally:

python run.py                             # http://127.0.0.1:8765

The browser simulation is a line-by-line port of the package; tests/test_web_parity.py runs it with Node.js and checks that both give the same closed-loop logs.