1 of 40

System Development Review

Team E - Surgical Robot for Orthopedics

ParaDocs

2 of 40

The ParaDocs are

With Branko, Parker, Sundaram, Kaushik

Paramjit

Shivangi

Li-Wei

Kimi

Abhishek

3 of 40

Overview

1

4 of 40

The Project

System to assist in

Total Knee Replacement Surgery

Aim: To precisely and robustly register the drilling site, navigate to site and drill holes sufficient to slide in a surgical pin

  • Autonomous
  • Non-Invasive
  • Robust

5 of 40

The Project

  • Key Components
  • KUKA LBR Manipulator
  • RealSense D405 and D435 Camera
  • Dremel 9100 Drill
  • General Workflow
  • Register (Where is the bone located in the scene)
  • Plan (A collision free path for the end effector)
  • Drill (Make hole(s) at designated spots)

6 of 40

Use Case

Surgeon

I/O

Main Robot

Manipulation

Subsystem

Patient

Perception Subsystem

7 of 40

Requirements

Modifications

2

8 of 40

Our functional requirements have stayed the same, however the importance of some requirements have changed

9 of 40

Overall Approach

SVD/Encore

End-to-End Pipeline

Systems Focus

  • User Interface
  • Both femur + tibia
  • Drilling multiple points in succession

etc

FVD/Encore

Goal : 2mm / 2°

10 of 40

Overall Approach

SVD/Encore

End-to-End Pipeline

Systems Focus

Algorithmic Focus

  • User Interface
  • Both femur + tibia
  • Drilling multiple points in succession

etc

  • Motion Tracking
  • Dynamic Compensation
  • Registration Performance

etc

FVD/Encore

Goal : 2mm / 2°

11 of 40

Current

System Status

3

12 of 40

Subsystems

Last semester, we had three subsystems we were actively working on,

  • Perception
  • Drilling
  • Manipulation

We have finished developing the drill subsystem and our manipulation work is focused on planning hence this semester we have the following primary subsystems,

  • Perception: Registration | Tracking
  • Planning: Motion Compensation | Obstacle Avoidance

With additional work towards optimization and testing.

13 of 40

Perception: Registration

  • We had developed an GroundingDINO (Open-Vocab Object Detection Model) + Segment-Anything Model (SAM) based registration pipeline for SVD Encore
  • But this pipeline
    • Is rather over-engineered with many priors and multiple large models
    • Quite messy since most code was written in the lead up to encore
  • Based on discussion with sponsor, we agreed on getting the initial input prompt from the surgeon, instead of DINO
    • Faster, More Efficient
    • Better Generalization
    • Closer to actual scenario in an operating room
    • Tradeoff : Less Autonomy

14 of 40

Registration

  • Developed a simple UI to get user inputs from the surgeon asking them to annotate points on the femur and tibia
  • We give these points as +ve and -ve prompts to SAM2 which enables us to obtain a precise mask.

Additionally,

  • We use the the annotated femur point as the initial position estimate.
  • We use the angle b/w these points as the orientation estimate.

Effectively solving the problem of Global Registration for our use case, without needing additional cropping/clustering/segmentation steps. We later perform ICP as usual.

15 of 40

Registration Priors

Assumptions we made for SVD

Femur is always on the left

Orientation < ~45 deg

Located within crop region

Femur is always on the left

Orientation < ~45 deg

Anatomically, femur is located above tibia

(For SAM Input)

Assumptions we made for SVD Encore

Since we are getting user input, we don’t need any of these priors anymore.

16 of 40

17 of 40

Registration

This new pipeline has been integrated with the manipulation stack, effectively replacing our old registration pipeline.

Also a testament to our improved software development workflow. Was developed entirely offline with Docker + ROS bag files and worked perfectly the first time with the robot-in-loop.

18 of 40

Registration : Analysis

Performance Benchmark

  • SAM Mask Generation : 40ms (small) | 140ms (large)
  • Unprojection + Preprocessing : 200ms
  • ICP : 400ms - 1.2s (depending on RANSAC trials)

Total Time - 0.7 - 1.5s

Accuracy Benchmark

  • Any evaluation with the actual camera / robot-in-loop will have errors due to calibration, execution etc.
  • Hence to get an isolation registration accuracy we are trying to replicate our setup in simulation but currently WIP.

19 of 40

Perception: Tracking

Tested Meta’s SOTA model : Co-Tracker

Currently we are working on figuring out

  • Which camera feed to use
  • Since this is a huge model, how to improve performance
  • How will it interplay with the registration pipeline

20 of 40

Planning

Along with perception, this is the primary area of focus.

Last semester,

  • We were using RRT* via Moveit/OMPL with 10s to optimize.
  • Our stack was open-loop. We plan once and then execute it.
  • No fallback behavior if a plan fails.
  • No obstacle avoidance.

Essentially a “pray and hope for the best” approach.

Hence we want to make the following improvements -

  • Plan paths with certain constraints (eg - always look at the bone while moving).
  • Integrate with tracking system for motion compensation.
  • Be able to avoid obstacles.
  • Minimize planning time to make the system more reactive.

21 of 40

Hybrid-Planning

Instead of the typical “Sense-Plan-Act” loop, hybrid planning enables interleaving global and local planners to adapt to dynamic environments.

  • Global Planner
    • Running at a lower frequency
    • When large motion detected, replan the path
    • Plan according to static obstacles
  • Local Planner
    • Running at a higher frequency
    • Execute Global Planner’s plan
    • Compensate for small motion

22 of 40

Hybrid-Planning

23 of 40

Hybrid-Planning

24 of 40

Planning Future Work

  • Hybrid-planning Manager
    • Define logic between and track states.
  • Global Planner
    • Set planning space limit (virtual walls)
    • (Main Challenge) Add constraint to keep looking at the bone
    • (Main Challenge) Add D435 obstacles to the planning scene
      • Crop out bone and robot arm in the occupancy grid
  • Local Planner
    • Modify trajopt plugin to take in new goals and do motion compensation
    • When compensating for motion, keep looking at the bone

25 of 40

Subsystem Evaluation / Error Quantification

  • End-to-end error: roughly <= 4mm (with strict priors)

Sources of error

Error

Execution Error

< 0.5 mm

Drill URDF Error

Negligible

Camera Calibration Error

From 10.58 mm to < 2 mm

Registration Error

WIP

26 of 40

Project management

3

27 of 40

Schedule

28 of 40

Schedule

We are behind schedule

  • Various Error Source Quantified
    • Execution Error
    • Drill URDF Error
    • Camera Calibration Error
    • Registration Error
  • Real-time Motion Compensation Tested
  • Behavior Tree Developed
    • Deprioritized
  • Bone Tracking Algorithm Developed
    • 50% progress

29 of 40

Schedule

Why we are behind schedule

  • We spent some time to improve our software setup / workflow
  • We spent some time to eval/quantify different sources of error
  • We are trying new unfamiliar methods

Our plan to catch up

  • Deprioritize non-essential tasks
  • Increase time allocation for critical tasks
  • Pair programming for important tasks that could be potential bottlenecks.

30 of 40

Test Plan - Progress Reviews

Identifier

Date

Capabilities

PR10

Oct. 30

  • Planning Algorithm Improved
    • The Global Planner will plan a trajectory that keep looking at the bone
  • Tracking pipeline developed
    • Able to track movement of bone setup with live feed
  • Real-time motion compensation integrated
    • The Local Planner will compensate for small motion

PR11

Nov. 13

  • Tibia registration developed
    • The tibia can be registered as fast as femur
  • Reach drilling accuracy
    • For single hole, the drilling should achieve 2 mm and 2 deg error
  • Full system demo
    • Only static obstacles, the system should compensate for the motion

PR12 (FVD)

Nov. 18

  • Full system demo

PR13 (FVD Encore)

Nov. 25

  • Improve the system according to the feedback from FVD

31 of 40

Test Plan - FVD/FVD Encore

  • Location: NSH B512
  • Equipment:
    • KUKA LBR Med7 with drill, Realsense D405 mounted on end-effector, Realsense D435 mounted on workspace, Team E PC, Sawbones bone models, Bone model mount, Surgical guide pins
  • Procedure:
    • Setup
      • The bone is fixed on the mount, within the workspace of the arm
      • The arm is in a configuration such that the bone is in the view of D405
      • Use a sharpie to mark the desired drilling point on the bone, as outlined in the surgical plan
      • The E-stops are kept ready within reach of team member’s hand

32 of 40

Test Plan - FVD/FVD Encore

  • Procedure:
    • Test
      • Run registration pipeline to obtain target pin positions and angles
      • The robot should then generate and execute a trajectory to drill multiple holes (at least one each in femur and tibia). The drill should also be triggered autonomously
      • Before the first hole is drilled, we will slightly move the bone setup mid-execution to demonstrate that the robot is able to compensate for motion
      • If bone is out of sight, the robot should stop execution as a safety feature
      • Once the robot finishes drilling, it will return to the home position

33 of 40

Test Plan - FVD/FVD Encore

34 of 40

Test Plan - FVD/FVD Encore

  • Quantitative Metrics:
    • FVD
      • The robot should autonomously drill holes on the femur and the tibia, at the target position without colliding into any static obstacle, and compensating for bone motion
      • The hole should be within 2 mm of the marked position and within 2 deg of the target orientation to fit the surgical guide pin
      • We will compare the drilled holes with a 3D-printed stencil to verify that it meets the position / orientation error criteria
    • FVD Encore
      • We will put cutting guides on the bone through surgical pins to demonstrate the accuracy and consistency across multiple holes

35 of 40

Budget

  • Total budget: $5000
  • Spent:
    • $1,390.97 (~27.8%)
  • Budget Remaining for emergencies:
    • $3,609.03 (~72.2%)
  • Primary critical part:
    • Synthetic Bones, have 6 in inventory

36 of 40

Risks

Risk ID

Risk

Type*

Likelihood

Consequence

Mitigation

R3

Manipulator is damaged

T

1

5

- Follow user manual for safely operating and transporting the arm

- Store arm in a secure area away from liquids, weather conditions

R5

Drill injures a person

T

1

4

- Design and build and test our E-Stop

- Follow drill user manual for safe operation

- Keep people a safe distance away

- Have a first-aid kit ready

R6

A group member is absent

S

3

3

- Have a primary and secondary assignee for each task

- Check member mental/physical status during stand-up meetings

R7

Version conflicts or data loss

T

2

3

- Set up version control software (Git & GitHub)

- Docker environment has been set up

*T: Technical, S: Schedule

37 of 40

Risks

*T: Technical, S: Schedule

Risk ID

Risk

Type*

Likelihood

Consequence

Mitigation

R8

We lose connection to the arm

T

2

5

- Keep cable taped to the ground

- High speed ethernet cable has been used & tested

- Modify FRI client behavior, override the state

R10

Planning fails

T

2

5

- Replan after planning fail

- Define pre-drill pose to avoid singularities

R11

Registration / Tracking not fast enough

T

2

4

- Fail Fast and find out sooner rather than later

- Don’t be restricted to 3D and leverage pixel space if necessary

- Upgrade compute

38 of 40

Risks

Risk ID

Risk

Type*

Likelihood

Consequence

Mitigation

R12

Behavior Tree cannot get implemented

T+S

4

2

- Use FSM, or well-designed ROS Node communication

- Limited behaviors in our system, hence low consequence

R13

Camera Calibration Error is high

T

2

4

- Recalibrated w/ ChAruco. Reduced 10 mm error to 2 mm

- Double Registration (re-register with camera at closer distance to the drill site)

R14

Registration is not accurate enough

T

1

4

- Double Registration (re-register with camera at closer distance to the drill site)

*T: Technical, S: Schedule

39 of 40

Risk Likelihood-Consequence Table

R3

R8, R10

R5, R14

R7

R6

R11, R13

R12

40 of 40

Thank You!

Questions?