Abstract
We are developing open source software for computer assisted intervention systems. Our primary experience has been with medical robots, but the concepts (and software) apply to many physical devices that interact with the real world. The real-time performance requirements permeate all levels of our software, including common tools (such as logging, class and object registers), vectors, matrices and transformations. Our software libraries are written in C++, but are also accessible from Python, which provides a convenient environment for rapid prototyping and interactive testing. The real-time support includes a device (hardware) interface and a task library. Device-specific modules such as robot servo control and trajectory generation can be provided by tasks or by external devices. Ultimately, we intend to provide a framework that supports extension via dynamically loaded plug-in modules. Our development process utilizes a multitude of open source tools, including CVS, CMake, Swig, CppUnit, Dart, CVSTrac, Doxygen and LaTeX. These tools help to ensure compliance with our software development procedure.
Keywords
Source Code and Data
No source code files available for this publication.
Reviews
Julien Jomier
Tuesday 24 October 2006
Summary: This paper presents an open-source develoment software for computer-assisted intervention. The paper focuses on the real-time issue that is inherent in a clinical environment.
Hypothesis: NA
Evidence: NA
Open Science: The software package really fits in the Open Science spirit by using a lot of Open Source packages and will be open-source in the future. It will be a great package to have when developing surgical guidance software.
Reproducibility: Did you download their code? Yes Did you compile it? No source code provided Did you run it? Yes Did you managed to get the same results that they reported? Most of the examples need a tracker to run, so no test were performed.
Use of Open Source Software: The authors use a lot of open source packages: CMake, Swig, Dart, CppUnit, PyUnit, CVSTrac. This is definitively one strength of the paper and the software.
Open Source Contributions: The authors provides only the pre-compiled libraries. They ensure that the code will be open-source, but the type of license is not specified.
Code Quality: Only the header files are provided at this point. The coding style looks really good. The portability looks good.
Applicability to other problems: I don't see any other applications for the moment.
Suggestions for future work: No suggestion.
Requests for additional information from authors: - The type of license should be stated in the paper. - It would be nice to have some timing comparison with other real-time software. - Is the warping Python only? How about TCL and other wrappers? - References to SWIG, cmake (the URLs) will be good to have.
Additional Comments: This sounds like a very good package.
Luis Ibanez
Tuesday 20 September 2005
Summary: This paper describes an open source library for computer-assisted interventions. The software is distributed under an open source license.
The library provides very valuable resources for groups that develop software for computer-assisted intervention. In particular
Support for Tracking devices
Robot control
Support for real time
Logging
Mathematical classes
Hypothesis: This paper advances the hypotesis that the development of computer-assited intervention systems can be simplified by using an open source library that offers support for the basic functionalities that are commonly required in these systems.
Evidence: The paper focuses on describing the architecture of the software. A set of examples is included with the source code that is downloadable from www.cisst.org A detailed description of the architecture is presented, as well as an overview of the classes that will be available in the toolkit.
Open Science: The paper does fully adhere to the principles of Open Science, since the software is distributed and the readers can check with the software the claims in the paper.
Reproducibility: The reviewer downloaded the source code and built it under Cygwin, with gcc 3.4 and CMake 2.0.6.
The configuration of the software when smoothly without a single warning, The compilation didn’t generate errors or warnings, which indicates that the authors really put in place an effective system of quality control.
Use of Open Source Software: The authors used
the netlib library (www.netlib.org)
the SWIG wrapper tool.
Cmake configuration tool
CVS for revision control
Dart for testing
Doxygen for code documentation
CVSTrac for bug tracking
CPPUnit and PyUnit for testing
Open Source Contributions: The authors distribute the source code at www.cisst.org Doxygen documentation is also available online and in a downloadable zip file.
Code Quality: The source code has a very standard of quality. It is very structured, and follows a formal object oriented methodology. The authors used state of the art software engineering methodologies in the design, implementation and testing of the software. All of which is critical for software that is intended to be used in surgical applications.
The documentation of the classes is available online, http://www.cisst.org/resources/software/cisst-0.1.0/doc/doxygen/main.html
Applicability to other problems: The software described in the paper seems to be suitable for robotics applicaitons outside of the medical field, and the tracker functionalities can probably be used too in virtual reality applications.
Suggestions for future work: The authors are strongly encouraged to follow the methodology of releasing early and releasing often. This maximize the feedback from the community and encourage the use of the software by a larger number of people.
Additional Comments The authors really need to make the download option more visible in their web site. This reviewer missed the option even after multiple passes through the page. Readers may easily get the impression that the software is not yet available.
When visiting the web page of an open source software package the reviewer would expect the “Download” option to be close to the top, and quite highlighted.
