Thrust 0: Infrastructure
 
Thrust Rationale, Organization and Strategy | Thrust Progress, Results, and Plans | Relationship to the Broad Strategy and Other Thrusts

This thrust was newly organized in year 6 to consolidate the many infrastructure activities that were previously performed, as well as adding new ones. Its role in our overall strategy is to promote maximum sharing of research results by working closely with projects within thrusts and providing architectural guidance and shared infrastructure for research and implementation efforts.

The decision to formalize these activities as a thrust provides more cohesion and strengthens their contribution to the entire range of the Centers research strategy. The Center has now developed a sufficient critical mass of professional engineering staff to manage and execute the development of common interfaces, standards, software libraries, and subsystems. Administratively, this thrust provides a home for the Centers cadre of professional engineering staff and for students who are new to the ERC and have not yet become associated with a specific research project

Thrust Rationale, Organization and Strategy

The objective of this task is to support the other two thrusts while creating hardware and software artifacts of enduring value. Our strategy is to focus our infrastructure development on four key areas:

Distributed System Architecture: Our goal is to define system architectures and standardized interfaces that enable the integration of medical components into sophisticated CIS applications.

Visualization and Application Control Software: We selected the 3D Slicer software package that was originally developed at MIT as a Tool Command Language (TCL)-based interaction shell for medical visualization tasks. It is supported and distributed on an open source basis by the Surgical Planning Lab at Brigham and Womens Hospital. We are developing other application control systems for cases that do not require the visualization capabilities of 3D Slicer.

Medical Robot Controller: We developed the Medical Robot Controller (MRC) software to provide a common programming interface to multiple types of surgical robots and are using it to control several robots within the ERC. Our strategy is to evolve this software into a robust, flexible and extensible open source software system for use throughout the research community. We are also developing various controller platforms using off-the-shelf and custom hardware.

Computer Integrated Surgery Software Library: This library consists of modules that provide common services (e.g., messaging, data logging, exceptions and error handling), 2D and 3D data types (e.g., vectors, matrices, transformations), tracking system interfaces (optical, electromagnetic), geometric meshes, numerical methods, registration techniques (e.g., iterative closest point) and some image processing functions. Our strategy is to continue to build this library by incorporating software from the research thrusts. The incorporation process includes peer review, development of automated test methods and (possibly) modification to conform to architectural and/or programming guidelines.

We seek to avoid duplicating components that are readily available elsewhere. For example, the National Library of Medicines Insight Toolkit (ITK) provides a comprehensive set of image processing functions. Our goal is to write software that uses these toolkits or is compatible with them.

Thrust Progress, Results, and Plans

The most notable accomplishments in the past year were the maturation of the Computer Integrated Surgery software libraries, now called the cisst libraries, as well as the proliferation of the Medical Robot Controller hardware and software to several projects, as described below.

The Distributed System Architecture received increased focus two years ago with the formation of a System Architecture & Middleware group that meets every two to three weeks. This group is composed of faculty, staff and students from Johns Hopkins University (JHU) and Morgan State University (MSU). In the past year, the JHU investigators created an initial requirements document for Distributed Medical Devices and the MSU investigators created a testbed to evaluate different middleware standards against these requirements. The MSU investigators focused on CORBA (Common Object Request Broker Architecture) and SOAP (Simple Object Access Protocol), which are client/server protocols with wide industry support. The JHU investigators focused on publish/subscribe protocols, such as DDS (Data Distributed Services) and Spread (originally developed by Prof. Yair Amir of the JHU Computer Science Department). These protocols are less popular than CORBA and SOAP but are targeted at systems that require real-time data exchange. Currently, one of Professor Amirs graduate students is evaluating the suitability of Spread for medical devices by creating an implementation based on our system requirements.

We are using 3D Slicer (www.slicer.org) for much of the Visualization and Application Control Software. It integrates several facets of image-guided medicine into a single environment: automatic registration (aligning data sets); semi-automatic segmentation (extracting structures such as vessels and tumors from the data); generation of 3D surface models (for viewing the segmented structures); 3D visualization; and quantitative analysis (measuring distances, angles, surface areas, and volumes) of various medical scans. The visualization framework is based on the Visualization Toolkit (VTK), while the user interface and scripting capabilities are implemented with TCL. We are also developing alternative systems for applications that do not require 3D Slicer. At the most recent site visit, we demonstrated a 3D stereoscopic visualization system that integrates surgical microscope images and robot control. We also implemented an Interactive Robot Environment (IRE), which includes a Python interface to our underlying C++ software and is targeted at rapid prototyping and interactive development.

In the past year, we developed the real-time foundations necessary for our new Medical Robot Controller (MRC-II) software. We selected the Real Time Application Interface (RTAI) for Linux as our real-time operating system, but created an operating system abstraction layer (library) for portability to other systems. We defined a device dependent interface class for hardware interfaces. Our real time support library provides a task class, which includes a real-time thread, an instance of a device dependent interface, an input mailbox and a state data table. This class also inherits from the device dependent interface class, which allows tasks and devices to be used interchangeably. This satisfies the requirement that our software transparently support both intelligent hardware, such as motion control boards, and non-intelligent hardware, such as simple I/O boards. We used the new MRC-II software for the snake robot for laryngeal surgery (JHU and Columbia University), the daVinci-based testbed for haptic research (JHU) and an RCM robot (BWH). We are currently porting Micron (CMU) from an intelligent data acquisition board, with a proprietary software environment, to a standard PC with RTAI/Linux and our real-time foundation software.

On the hardware side, we support both off-the-shelf and custom controller electronics, with an emphasis on low cost, high performance and high reliability. In the past year, we added the Ethernet-based Galil motion controller (DMC-21X3) to our list of supported hardware and used it for two projects. We also designed and built Rev 2 of our Low Power Motor Controller (LoPoMoCo), which is a 6-layer printed circuit board (PCB) that provides all I/O and power amplification necessary to control four small DC motors. This custom hardware was originally designed to satisfy specific requirements for the snake robot for laryngeal surgery, but we are now using it for the daVinci-based testbed and the RCM robot mentioned above. The Rev 2 hardware supports higher power motors and contains additional I/O, such as zero index and limit switch inputs.

We have an extensive Computer Integrated Surgery Software Library, written in C++, which has been developed over many years. In the past year, we made significant progress towards completion of a major revision of the CIS library, which we now call the cisst libraries. At the time of this report, the cisstCommon, cisstVector and cisstNumerical libraries have reached maturity and are being used for many new projects within the ERC. These libraries provide common tools such as logging, error and exception handling, serialization, class and object registries and Python embedding (cisstCommon), vectors and matrices (fixed size and dynamic), quaternions and transformations in 2D/3D (cisstVector), and an interface to the CLAPACK numerical methods as well as numerical tools such as polynomials (cisstNumerical). The cisstOSAbstraction, cisstDeviceInterface and cisstRealTimelibraries, described in the Medical Robot Controller section, are in active development and are being used for projects that require real-time performance.

We developed the cisst libraries by following the software development procedure that we defined in the previous year. This procedure includes documentation, programming standards, test suites and an audit trail. Although a formal development process is generally not necessary for a specific research project, it is appropriate when the goal is to create core modules or platforms that support diverse research projects. Furthermore, the formal development process and associated documentation should facilitate Institutional Review Board (IRB) approval for clinical trials.

Relationship to the Broad Strategy and Other Thrusts

Achieving our vision of a broad family of related surgical CAD/CAM and surgical assistant systems necessarily requires a strong and open systems infrastructure of versatile components and subsystems. Engineering research results must be embodied in robust, modular and reusable software and hardware components and subsystems. Further, standard interfaces are essential for collaboration, both within the ERC and between the ERC and other researchers and industrial companies.

Task 1 of each thrust is explicitly devoted to systems and clinical test beds. However, these are not independent activities; they all rest upon common architectures and shared components. It is explicitly expected that technology and subsystems developed in one thrust will be used in other thrusts. Ensuring that this happens requires a common control point for architecture definition, software library maintenance, shared laboratory infrastructure, and other elements.

Thrust 1: Surgical Assistants

Strategy & Overview
Task 1.1
Task 1.2
Task 1.3
Task 1.4




Thrust 2: Surgical CAD/CAM

Strategy & Overview
Task 2.1
Task 2.2
Task 2.3
Task 2.4
Task 2.5





Thrust 0: Infrastructure

Strategy & Overview