MRI Robot:System design
From CISSTwiki
Contents |
[edit]
Obsoleted
This document was obsoleted by the new one http://wiki.na-mic.org/Wiki/index.php/OpenIGTLink/Protocol/JHUBRP
[edit]
System Diagram
[edit]
Workflow
- Scanner: Scout image acquisition with the landmark close to the prostate
- Navigation soft and scanner: Calculate Z-frame position, scan a slice through the Z-frame
- Repeat previous step if the Z-frame is not visible enough to register the robot
- Scanner: 3D volume acquisition of the prostate
- Navigation soft: Select (or import) the targets, show needle path, allow modification
- Navigation soft: Calculate the target and path, send it to the robot
- Robot: Execute command
- [Optional] Navigation soft: send current robot coordinates to the Real Time scanner IO for needle tracking, display image
- Navigation soft: Display robot position and status
- Scanner: Confirm robot location before biopsy
- Manual: Insert biopsy needle
- [Optional] Navigation soft: show Real time images of the needle insertion
- Manual: Fire biopsy gun
[edit]
Dataflow and Communication Protocols
[edit]
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
[edit]
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
[edit]
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
[edit]
Navigation soft ⇒ RT Scanner IO
- Command: image plane position and orientation (global RAS coordinate system)
- Command: start MRI scanner
- Command: stop MRI scanner
[edit]
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)
[edit]
Other
- In room display - show: robot status, insertion depth, Real-Time image
- Commands: touch screen / gesture recognition (stereo camera?) / other
- Logging
- FDA approval for the software
- Meeting at MIT, June 27, 2007 - NaviTrack requirements
