2026 · QUT

Epidural
Ninja

Force-based bone and epidural space identification for robotic epidural needle insertion — investigating whether a general-purpose robot arm can make the two judgements clinicians make by feel, without any visual input.

  • Medical Robotics
  • Force Sensing
  • Load Cells
  • Loss of Resistance
  • OpenArm
  • CAN-FD
  • Inverse Kinematics
  • Python

Project Overview

Epidural anaesthesia requires a needle to cross the posterior spinal ligaments and stop in a fat-filled space only a few millimetres wide, just before the dura. Clinicians do this almost entirely by feel: bone is recognised as a hard stop, and the epidural space as a sudden loss of resistance (LOR) on a syringe plunger.

This project investigates whether a general-purpose robot arm can make the same two judgements without vision — identifying bone contact, and identifying when the needle tip reaches the epidural space.

The work combined a Python control stack for the open-source 7-DoF OpenArm, two rounds of sensing hardware for each objective, and a focused review of 20 full-text papers and eight supplementary studies.

Sensing in the Load Path

Where the sensor sits decides whether the signal is usable. The arm's joint torques were too far from the needle; load cells placed directly in the needle and plunger load paths separated every trial.

ROBOT & SENSORS LUMBAR PHANTOM OpenArm 7-DoF · CAN-FD Joint torques ✗ Not separable Syringe Holder 1 kg bar load cell In the needle load path ✓ Bone · 26 / 26 Syringe Plunger 100 g load cell Replaced a low-force FSR ✓ LOR · 25 / 25 needle Posterior ligaments Resistance Epidural space Target · LOR Dura Stop before Bone · vertebra Felt as a hard stop

Results

Each objective took two sensing iterations to reach full separation.

Objective 1 · Bone Detection

Joint torques — the arm's own joint torques could not distinguish the printed vertebra from silicone. After contact, joint 2 varied only between −1.15 and −0.99 N·m, and the silicone run produced larger torque swings than the hard run on five of seven joints.

1 kg bar load cell — a redesigned syringe holder put the load cell in the needle load path and separated the printed vertebra from silicone in all 26 insertions (peaks of 2.11 M vs 3.38 M counts; Welch p = 1.7 × 10⁻⁹).

Objective 2 · Epidural Space Detection

Force-sensitive resistor — an FSR on the plunger was not sensitive enough at low force.

100 g plunger load cell — separated a tip occluded by silicone from a tip in the epidural space tube in all 25 trials. The median plunger force over the second half of the stroke separated the classes by 4.68 M counts, with 100% cross-validated accuracy.

Control Stack

A Python control stack written for the open-source 7-DoF OpenArm.

CAN-FD Motor Interface

  • Python interface to the arm's motors over CAN-FD
  • Joint torque readback used in the first bone-detection attempt

Inverse Kinematics

  • IK for the 7-DoF arm
  • Tool-axis constraints to hold the needle orientation

Straight-Line Needle Descents

  • Straight-line motion along the needle axis
  • Built on the constrained IK solver

Logging

  • Records joint and sensor data from each trial
  • Feeds the offline statistical analysis

Literature Review

A focused review of 20 full-text papers and eight supplementary studies across five themes.

01

Manual Procedure

How clinicians perform the insertion and judge depth by feel.

02

Sensing Methods

Approaches for tracking needle progress through tissue.

03

Non-Visual Bone Identification

Recognising bone contact without imaging.

04

Robots for Similar Procedures

Robotic systems for related needle-insertion tasks.

05

Evaluation Metrics

How needle-insertion systems are measured and compared.

Conclusion & Next Steps

Both judgements can be made from force alone — when the sensor sits directly in the relevant load path.

Bone contact and the epidural space were both identified from force alone, with load cells placed directly in the needle and plunger load paths.

Relying on the robot's own motor torques is not sufficient.

Caveat — values are uncalibrated raw counts from a lumbar phantom.

Next — calibration, closed-loop testing on the arm, and layered anatomical phantoms.