MRI Robot:System design

From CISSTwiki

Jump to: navigation, search

Contents

Obsoleted

This document was obsoleted by the new one http://wiki.na-mic.org/Wiki/index.php/OpenIGTLink/Protocol/JHUBRP

System Diagram

Image:MRI_Robot_System_Diagram.png

Workflow

  1. Scanner: Scout image acquisition with the landmark close to the prostate
  2. Navigation soft and scanner: Calculate Z-frame position, scan a slice through the Z-frame
  3. Repeat previous step if the Z-frame is not visible enough to register the robot
  4. Scanner: 3D volume acquisition of the prostate
  5. Navigation soft: Select (or import) the targets, show needle path, allow modification
  6. Navigation soft: Calculate the target and path, send it to the robot
  7. Robot: Execute command
  8. [Optional] Navigation soft: send current robot coordinates to the Real Time scanner IO for needle tracking, display image
  9. Navigation soft: Display robot position and status
  10. Scanner: Confirm robot location before biopsy
  11. Manual: Insert biopsy needle
  12. [Optional] Navigation soft: show Real time images of the needle insertion
  13. Manual: Fire biopsy gun

Dataflow and Communication Protocols

NaviTrack NetworkModule port and channel

  • Navigation Soft ⇒ Robot Controller: UDP port 12347, channel 2
  • Navigation Soft ⇐ Robot Controller: UDP port 12348, channel 2
  • Navigation Soft ⇒ RT Scanner IO: UDP port 12345, channel 1
  • Navigation Soft ⇐ RT Scanner IO: UDP port 12346, channel 1

Navigation soft ⇒ Robot Controller

  • Workphase: START_UP - Initialize robot, respond with status as part of the command
  • Workphase: PLANNING - respond with status
  • Workphase: CALIBRATION- respond with status as part of the command
  • Workphase: TARGETING - respond with status
  • Workphase: MANUAL - respond with periodit "robot coordinates" message
  • Workphase: EMERGENCY - respond with status

Implemented commands:

  • Command: Initialize robot (calibration, set the encoders, this will be "home") - respond with status
  • Command: Z-frame position and orientation (global RAS coordinate system) - respond with status
  • Command: Go to coordinate - position, orientation (later: speed) (global RAS coordinate system)
  • Query: Get Coordinates (position and orientation in global RAS coordinate system)
  • Query: Get Robot Status

To be implemented:

  • Command: Insertion depth - float (in mm)
  • Command: Take biopsy (Retract Cannula)
  • Command: Go to Home (collapses the robot to remove/replace needle)
  • Command: Stop (stop moving)
  • Command: Emergency Stop (stop + purges the air lines)
  • Query: Get Actual Insertion Depth

To be implemented - Research Interface:

  • Command: Set Joint Positions - float[max.16] - move joint here
  • Command: Set Joint Velocities - float[max.16] - move joint with this speed
  • Query: Get Number of Joints - integer
  • Query: Get Actual Joint Positions
  • Query: Get Actual Joint Velocities
  • Query: Get Actual Air Pressures
  • Query: Get Actual Joint Tracking Errors
  • Query: Get Brakes status
  • Query: Get Joint Moving status
  • Command: Lock (engage brakes - all of them)
  • Command: Unlock (disengage the brakes so it can be moved manually)
  • Command: Set entire robot velocity limit in Robot Coords. - float (like 10 mm/s)
  • maybe - Command: Needle rotation angle - double

Navigation soft ⇐ Robot Controller

Implemented:

  • Value: Actual coordinates and insertion- 6DOF in global RAS coordinate system
  • Status: Robot done moving, Error message, Emergency stop

To be implemented - Research Interface:

  • Value: Number of Joints - integer
  • Value: Actual joint positions - float[max.16] (joint positions in mm)
  • Value: Actual joint velocities - float[max.16] (joint velocities in mm/s)
  • Value: Actual air pressures - float[max.32] - two per joint! (PSI for each valve)
  • Value: Actual joint tracking error - float[max.16] - "actual joint position" - "set joint position"
  • Status: Brake status - float[max.16] - true(locked)/false(loose) for each joint
  • Status: Done moving/joint - float[max.16] - true/false for each joint

Navigation soft ⇒ RT Scanner IO

  • Command: image plane position and orientation (global RAS coordinate system)
  • Command: start MRI scanner
  • Command: stop MRI scanner

Navigation soft ⇐ RT Scanner IO

  • Image data
    • image
    • position
    • orientation
    • image resolution (x and y)
    • field of view - double (in mm)
    • slice thickness - double (in mm)

Other

Views
Personal tools