University of Florida, IPPD Integrated Technology Ventures Dynamic Radiographic Imaging Control System, (DRICS) System Level Design Review GatorRay Controllers December 12, 2005 Table Of Contents 1 PROJECT OVERVIEW ........................................................................................................................... 3 1.1 BACKGROUND INFORMATION ............................................................................................................... 3 1.2 PROJECT PURPOSE AND SCOPE ............................................................................................................. 3 2 CUSTOMER REQUIREMENTS ............................................................................................................ 4 2.1 OVERVIEW ............................................................................................................................................ 4 2.2 CURRENT SYSTEM ................................................................................................................................ 5 2.3 REQUIRED SYSTEM ............................................................................................................................... 6 2.3.1 Central Computer ........................................................................................................................ 6 2.3.2 Robot ............................................................................................................................................ 7 2.3.3 Motion Capture System (MoCap) ................................................................................................ 7 2.3.3 Video ............................................................................................................................................ 8 2.3.4 Safety ............................................................................................................................................ 8 3 GUI OVERVIEW ...................................................................................................................................... 9 3.1 OVERVIEW ............................................................................................................................................ 9 3.2 DETAILED GUI DESCRIPTION ............................................................................................................... 9 4 CONTROL SYSTEM DESIGN DESCRIPTION ..................................................................................13 4.1 OVERVIEW ...........................................................................................................................................13 4.2 ARCHITECTURE....................................................................................................................................14 4.3 INTERFACE BETWEEN SYSTEMS...........................................................................................................17 4.4 VERIFICATION .....................................................................................................................................19 5 BUSINESS CASE .....................................................................................................................................20 5.1 OVERVIEW ...........................................................................................................................................20 5.2 LICENSING PLAN..................................................................................................................................20 5.3 SYSTEM DEMAND ................................................................................................................................20 5.4 ORTHOPEDIC CLINICS ..........................................................................................................................21 5.5 FIRST-TIME COST .................................................................................................................................21 6 PROJECT PLAN......................................................................................................................................22 6.1 DELIVERABLES ....................................................................................................................................22 6.2 PROJECT ASSIGNMENTS AND RISK ASSESSMENTS ...............................................................................24 1 Project Overview 1.1 Background Information Tens of millions of Americans suffer from joint diseases like osteoarthritis or traumatic injuries of the joints and spine. Skeletal joints provide the ability to move, yet there is currently no technology to accurately and routinely examine dynamic joint motion – instead, doctors diagnose problems by searching for abnormal structures using static X-ray, computed tomography (CT), and magnetic resonance (MR) technology. GatorRay is a new technology invented by University of Florida professor Scott Banks. It is a new imaging platform based on a pair of robot-mounted devices, the X-ray source and sensor panel, whose motions are coordinated via a real-time motion-capture system. The product’s function is to track human joints in motion, and obtain highprecision targeted radiographic image sequences, yielding dynamic skeletal imaging and computed tomography. The development of this technology would significantly enhance the observation, diagnosis, treatment and rehabilitation of people suffering from joint disease and injury. By using real-time motion-capture to track the motion of the subject and coordinating the motions of robot-mounted X-ray video equipment, detailed images of the moving joints can be obtained. This is a capability that does not currently exist in medical imaging. 1.2 Project Purpose and Scope The purpose of the project is to complement and enhance the development of Integrated Technology Ventures’ GatorRay project, directed by Professor Scott Banks. By integrating the efforts of a business team, a technical team, and robotics and tomography researchers, the scientific, hardware, software, and business aspects of the venture can be developed in parallel. The project’s purpose is to create a system which uses motion capture data fed to robots to follow the natural movement of patients, and capture X-ray images of the patient’s area of concern. The GatorRay system makes use of several different technologies, including realtime motion capture, robot control, X-ray imaging, and computed tomography. The scope of this project is limited to developing the software and network hardware necessary to provide an overall control system for the current and future system components. This project has two technical goals. The first is to design and develop the Dynamic Radiographic Imaging Control System (DRICS), a computer network-based system that centralizes the control of all subsystems. The second goal is to create a userfriendly graphical user interface that demonstrates the potential of the overall system and can be used to aid researchers in the project. Although this project will serve as a step towards commercialization of the GatorRay system in conjunction with ITV, the project will not produce a completely marketable prototype for the overall system and graphical user interface. Instead, the control system and graphical user interface will serve as a research tool and a demonstration of feasibility and potential for the future. Specifically excluded from the project scope are the following: Integrating the current components into a single hardware housing. DRICS will be developed on the distributed architecture of the current system, with the addition of a single central computer. Developing software or hardware specifically for an X-ray imaging subsystem. For this project, a video camera of the same bandwidth as the proposed X-ray unit will be used in place of an actual X-ray emitter and receiver. Developing a graphical user interface (GUI) to serve as a final product. The GUI will serve as a research tool and as a proof of concept mechanism. The GUI will incorporate some safety features, but leave full compliance with federally mandated safety measures for the next generation of the GatorRay system. 2 Customer Requirements 2.1 Overview Our project consists of designing and implementing the control system and GUI for the GatorRay product. As such, our “customers” consists primarily of the operators of the software and the researches who will use it. However, we cannot simply disregard the patient. As with any medical procedure, the safety of the product must be a very high priority. In order to do this the prototype must be designed with a safety-first mentality. A major requirement of the GUI, therefore, is to have a very simple-to-use built-in emergency stop mechanism. Additional requirements for the GUI are to provide the user with all the tools required to set up the patient’s tests and to ensure their accuracy and readability. Another requirement of the GUI is the proper storage of the X-ray image sequence and model data. The communication of the control system must allow for an instantaneous override to be sent to the robotic and X-ray/video subsystems. It must also provide the coordinate data at a rate of speed that is high enough to keep the robots centered on their target. 2.2 Current System Figure 1. A GatorRay system robotic arm. GatorRay currently consists of one off-the-shelf Mitsubishi robot and a real-time motion capture system (Figure 1). There is currently no system in place for capturing actual Xray images. However, a digital video camera has recently been purchased to take the place of X-ray equipment during development. The robot moves at speeds up to one meter per second on 6 axes. It weighs 70 Kg. and carries a payload of up to 10 Kg. if the center of gravity of the payload is on the tip of the robot itself. Therefore the operational payload wight limit is between 6 and 8 Kg. The robot is currently controlled by commands from a Windows system. Methods to direct the robot and control its movement have been implemented on the Windows system in Visual C++ by Chris Lightcap and J. D. Yamakoski. The Windows system currently has 1 GB of RAM and has a 2.8 GHz Intel Pentium 4 processor. The motion capture system’s lenses are mounted in a circle surrounding the robot/patient interaction area so that 3-dimensional coordinates are obtained from LED markers located on the patient. Such coordinates are obtained from every angle to provide a highly accurate tracking. The system creates a coordinate plane, using the LED makers on the patient’s area of interest, to track and plot movements. The motion capture system is currently interfaced with a Linux system dedicated to it. The Windows system that controls the robot is connected to the motion capture’s Linux system by an Ethernet crossover cable. The Windows system currently uses this connection to make decisions about the trajectory of the robot based on the coordinates obtained by the motion capture system. As a result, the robot is currently capable of tracking a patient wearing motion capture markers. A video camera has been purchased which provides an API to control the camera. This video camera will be used in place of an actual X-ray system throughout most of the system’s development. This will facilitate testing through the design process. 2.3 Required System Figure 2. The Gator System. Three computers will needed. One is required to control each of the robots, along with the main control computer, which will handle all communications. There will be a patient information system with a database in the background that stores all the data on the patient. Once the patient information is stored, the type of examination to be performed will be selected. After the exam is selected the motion capture data must be verified, and then the “Black Box” coordinate data will be used to visually verify that the data is correct. Next, the X-ray system will be tested and the parameters changed as necessary. Finally, the system will capture the image sequence and allow the data to be viewed or stored as required. The control system requires that the communications be carried out at a very high data rate, and a high degree of accuracy, to allow real-time coordination of the robot motion. The requirement of accuracy in tracking left for future developers. 2.3.1 Central Computer The Central Computer will be running the control system and the GUI that will interact with the user. The control system will be used for synchronization. It will send information across an Ethernet cable in less time than the connection time between the robot and its control box, which is 2ms. The central computer needs to be capable of reliably running the GUI, written in Visual C++, while accepting images from the video source. It also will give commands to the two Dell computers which control the robots, based on the spatial coordinate information given to it from the motion capture sub-system. The central computer will be capable of storing the image streams it receives. The control system will send information across the Ethernet cable in 2ms or less. The central computer will be capable of running the GUI at an effective rate. Communication between the Dell computers and the motion capture sub-system will be verified through scripted scenarios. DRICS must be capable of storing 30 Videos @ 30 fps, and a minimum resolution of 1.4M pixels. 2.3.2 Robot The robots are connected to the robot control system via a proprietary communication protocol. The time required for the robots to receive commands from the robot control system is 2ms. That time must not increase for the robots to operate safely. At calibration time, the motion capture subsystem will record the initial position of the robots. The robots will base their movements on the 3D position coordinates of the sensors on the patient. The robot mounted with the X-ray system must remain approximately 4 inches away from the patient. The robots will be pointing at one another so that their line of sight goes through the target region on the patient, which is identified by the markers placed on the patient. As the target moves, the robots will follow in real time, maintaining a constant viewing angle of the target. The X-ray source mounted on the robot must remain approximately 4 inches away from the patient. The system must ensure that the robots maintain a constant viewing angle of the target. 2.3.3 Motion Capture System (MoCap) The MoCap system runs on a Linux platform and be connected to the central computer via an Ethernet cable. Currently this system transfers information at roughly the same speed as the robot control system; the overall control system must maintain this speed. The MoCap system includes 8 remote sensors that create a 360-degree perimeter around the two robots and the patient. The sensors will track the movement of the patient and relay the positions of the patient’s markers to the robots. Sensors will track the movement of the patient and relay the position of the patient’s marker positions to the robots in real time. 2.3.3 Video In the final system, GatorRay will use an X-ray device to capture image sequences of the patient’s bone and joint movement. For this project, the system will be designed with a video camera instead of an X-ray source. The video camera will be mounted on one of the robots and will transmit images to a separate receiver that will be connected to the central computer. The video camera we will use records images at a resolution of 1.4 mega pixels. The image sequences stored in the control computer will have a video rate of at least 30 frames per second. On the GUI, the user will be able to see the image taken by the camera. We propose that the final system have both the x-ray and the video camera sending images back to the GUI. The image sequences presented on the GUI do not have to be shown at at a rate of 30 frames per second. The GUI will show the user the image sequences taken by the camera. The GUI will show the images sequences at a video rate less than 30 fps. 2.3.4 Safety One major concern with the system is the exposure to X-rays. Since the overall goal is to have a system that takes a dynamic X-ray images, X-ray over-exposure is a serious potential problem. The X-ray technician will not be able to change the dosage to an amount above the legal limit. Also, with the integration of an x-ray and video, exposure will be reduced dramatically because fewer and more accurate shots can be taken of the patient. In case of emergency, there will be an external shutdown switch. This will ensure that the X-ray can be shut off even if there is a problem with the control computer. Another design consideration is that the robot will have to maintain a minimum distance of 4 inches from the patient, and not come in contact with the patient at any time. The system will prevent X-ray dosages above the legal limit (140 KV). The system will ensure that the robots maintain a minimum distance of 4 inches from the patient at all times. The system will include an external emergency shutdown switch that will immediately halt all X-ray emission, and halt all robot movement within 1 second. 3 GUI Overview 3.1 Overview The second part of the system is a graphical user interface (GUI) which functions as the software interface in controlling the robots. Following our sponsor’s wishes, our GUI will be laid out in a tabbed window format with each of the tabs corresponding to a specific GUI human-machine interaction. At any time, the operator will only have one window on the screen with which to control the system, with simple buttons to click and text fields to fill. The operator of the GUI will not require significant knowledge of computers to operate the system. An important goal of the system is to ensure the safety of the patient. In dealing with X-rays, there is always a potential for excess exposure to radiation. Since the system will be taking dynamic imaging of a patient, the risk of over exposure is high. The GUI will thus have a way to stop the process once the X-ray imgae acquisition process has begun. There will be a large button with distinctive lettering which will stop the system immediately. The operator will also be able to hit the space bar on the keyboard to stop the system. 3.2 Detailed GUI Description The GUI starts out with tab for the operator to enter in the patient’s information, Figure 3 below shows a screen shot of the first tab. If a patient has already been entered into the database and the operator would just like to pull up his/her file, all he enters is the patient’s ID # into the first text box. If the number is incorrect, the other tabs will not be selectable and “Incomplete Information” will appear next to the text box in red letters. If a new patient is being entered into the system, the ID # text area will be left blank and the rest of the text fields must be filled in. When the date of birth is entered in correctly, the patient’s age will automatically appear under the word age. After all the fields are filled, the rest of the tabs may be selected. Figure 3 – Patient Information Page The second tab, shown in Figure 4, allows the operator to select the joint of the patient to be examined. The left section will have a list of the joints that can be accessed by clicking on the box to the left. The joints are the cervical spine, shoulder, lumbar spine, hip, knee, and foot/ankle. When a joint is clicked, such as the knee, the operator may select either the right or left knee, and then can specify other characteristics. When the operator finally chooses the desired joint, he/she will click “Establish Coordinate System”. A window (Figure 5) then opens to show any errors in marker placements and suggestions on which markers should be selected. If there are no errors, the operator clicks the button again and a stick man appears showing the marker placements. Figure 4 – Joint Selection Figure 5 – Markers In the third tab, the system calibrates the X-ray source, as shown in figure 6. The left side of the page has parameters for the X-ray. If the values are outside the specified requirements, they will be set back to the default values. When the values are correct and the operator hits the “Test” button, a prompt pops up and asks the operator if he or she is sure they want to continue. After “ok” is pressed, the system takes a single test image of the patient, and the system displays the image in the screen. If during the test shot the operator needs to stop the process, he or she can click the “STOP” button on the screen and the image acquisition will stop. Figure 6 – X-ray Calibration The fourth and final tab is where the system displays the entire x-ray sequence. This can be seen below in Figure 7. The operator starts by clicking “Perform Sequence”. A window will pop up, showing the progress of the imaging process. Once again, the operator will have the ability to stop the system, by clicking the large stop button in the window. If the imaging process concludes uneventfully, the X-ray images will appear. The operator can view the entire sequence at once, or view a particular segment. Figure 7 – Video Capture 4 Control System Design Description 4.1 Overview Figure 8. Software/Block Diagram There are several different systems that will communicate with each other. The central control computer will coordinate all communications. The graphical user interface will be run on the central control computer. Information gathered from the user concerning the sequence to run will be sent, along with the raw motion capture data, to the system we refer to as the “Black Box” (Trajectory Generation in figure 8). That system is out of the scope of our project and is being developed by Scott Banks and his PhD students. Its purpose is to provide a data structure to the control system, which contains information about the patient. The central computer then uses this data, consisting of points on the body, to communicate with the two robot control computers as well as send a signal to the x-ray indicating that the image would be good if taken. There will be one computer for each robot arm. The robot-control computers invoke the robot API. We will write helper programs on these computers, whose purpose is to ensure that the data is properly transmitted to the robot control software. The two robot-control computers will be connected to the central control computer via Ethernet cables through a router. TCP will be used to send information between the systems. The decision was made to have each robot run on its own computer because of the ports needed operate them. This configuration, with three computers including one central control computer, was selected to allow the graphical user interface to run on one machine while simultaneously communicating with the robots. 4.2 Architecture The DRICS system-level architecture is shown in figure 9. The central computer and both robot control computers will be running the Windows operating system. They will have a minimum of 1 GB of RAM and a 2.8 GHz Intel Pentium 4 processor. These hardware requirements are needed to provide seamless communication across the network. The central computer will also allow storage for image sequences. The images will be viewable through the GUI on the central control computer. There will also be an ability to stop a capture sequence on demand (emergency stop). The GatorRay system is being developed, for safety reasons, using a video camera. The video camera will be connected to the central computer. This decision also provides the benefit of modularity. One of the requirements of our system is to design the control system independently of any specific X-ray machine. In the final system the X-ray emitter and receiver will each be connected the robot control computer for their robot arm. Figure 9. DRICS System-level Architecture. The main purpose of our GUI in relation to the motion capture system is to select a test from a pre-determined list of tests and verify that the markers the technologist expects to see are there. Here is an example of the test structure: 1) Cervical Spine Lateral View Right Frontal Left Frontal 2) Shoulder Left - Scapulothracic Lateral Left - Glenohumeral Lateral Left - Superior Left - Scaption Plane Left - AP Right - Scapulothracic Lateral Right - Glenohumeral Lateral Right - Superior Right - Scaption Plane Right - AP 3) Lumbar Spine AP Lateral 4) Hip Left - Posterior Lateral Left - Anterior Oblique Left - AP Right - Posterior Lateral Right - Anterior Oblique Right - AP 5) Knee Left - Lateral Left - AP Left - Sunrise Patella (in contact) Left - Sunrise Patella (no contact) Right - Lateral Right - AP Right - Sunrise Patella (in contact) Right - Sunrise Patella (no contact) 6) Foot/Ankle Left - Lateral Left - Anterior/Superior Left - Superior Lateral Oblique Right - Lateral Right - Anterior/Superior Right - Superior Lateral Oblique The system will receive marker data from the motion capture system. The hexadecimal identification numbers for each marker found will be shown. Any markers that are expected and not found will be shown along with any markers found that are not expected. The technologist can assign the unexpected markers to the positions of the markers that were not found. After this process, the markers that will be tracked by the system are defined. This data is given to the “Black Box” system. The output of the “Black Box” will be a list of cardinal points. One of the points will have a special denotation as the point in space which the robot arms will be following. The cardinal points will be identified and their names will be output to the screen. With these points as input our system will be able to display a basic visual schematic, showing the points for which the system will keep track, as shown in figure 10. The technologist will be given the ability to change various different parameters for a given test. X-Ray parameters: Parameter Limits Beam Current Accelerator Voltage Pulse Fequency Pulse Width Maximum duration of Exposure 0.5-4mA 40-120 KV 5-30 s-1 2-30 ms .5-4.0 s type float int int int float default 1.0mA 55kVp 30Hz 4 ms 2s Each test, after it is selected, will have its own default values for each of the parameters that will be shown to the technologist. Example Left Knee – Lateral – test is selected Displayed on screen: Figure 10. Schematic of tracked points. L-Hip R-Hip L-Knee R-Knee L-Ankle R-Ankle L-Toe R-Foot the arrow denotes that this is the point to be followed Each of the cardinal points represents a 6-d point that will be output from the “Black Box.” The cardinal makers are stored as 6 floating-point values. Three of the six dimensions are the (x, y, z) coordinates of each point. The other three values are angles of orientation. Our system will output the cardinal marker information to the computers that control each robotic arm. 4.3 Interface Between Systems To transfer the information we will use Windows Sockets, and pass a bit stream containing the 6 floating-point values for each cardinal marker. Each of the two control computers will be running a client written in Visual C++, and the central computer will be running server code. We will be using TCP for a stream of reliable information. Using TCP will allow us to use standard Ethernet cards. TCP was selected over UDP because it is more reliable in sending packets of information in a specific order. It was also determined to be better than a publish/subscribe model due to the availability of implementation tutorials on the web. The server code will include the following items: #include <winsock.h> int nRet = WSAStartup(wVersionRequested, &wsaData); if (wsaData.wVersion != wVersionRequested) { fprintf(stderr,"\n Wrong version\n"); return; } winsock.h must be included for any Windoze application that uses sockets. Next, the WSAStartup() function must be called to initialize WinSock and ensure the correct version is being used. Below are some of the socket methods. socket(address family, socket type, protocal) bind(socket, our address, size of address structure) listen(bound socket, number of connection request queue) accept(listening socket, optional client address) recv(connected client, receive bit array containing cardinal marker floats, length of buffer, flags) closesocket(socket) WSACleanup(); The socket function creates the socket and the bind, listen and accept functions allow for a connection with the client. The actual information is received in the recv() command as the receive buffer. It will be large enough to contain the bits of the six floating-point numbers for each cardinal point. Depending on the test the length of buffer will be a different size. During each specific test the buffer length will contain the same number of floats. The client code will include the following items: #include <winsock.h> WSAStartup() socket(address family, socket type, protocal) connect(socket, server address, length of server address structure) send(connected socket, bit array containing cardinal marker floats, length of data, flags) closesocket(socket) WSACleanup(); The connect function connects to the accepting server, and send() sends the data buffer to recv(). For this application we will also need functions we will require the port addresses, and we will need to convert it using htons(), which converts a “Host to Network Short”. Using cardinal marker data received in the data buffer the control computers will be able to make the robots follow the specified point. There is free source code available dealing with TCP using Windows sockets. We plan to modify the code for use with the cardinal marker data. We will also write code for constant transmissions because the robots must receive the motion capture data quickly to be able to track the patient in real time. 4.4 Verification Once the code is completed and implemented it will be tested for performance. Verifying the connection between each computer will test the integration of the system. The overall system will be tested to make sure our code receives the information quickly enough. The socket code will be tested to make sure the correct information is being passed. A test will be performed using the robot to make sure it can follow a joint effectively and keep the camera on the correct point in space. The visual images received from the camera will be tested to make sure a video can be saved at 30 frames per second. The cardinal marker data will also be checked against the numbers we expect to see based on the test selected in the GUI. 5 Business Case 5.1 Overview It is important to first note that our liaison engineer and system inventor, Prof. Scott Banks, would like our engineering team to concentrate on “demonstrating feasibility and potential” for the system. The ITV business team holds most of the responsibility for developing a pricing strategy, monetary estimates, and marketing considerations for the product. Within the past several months, the GatorRay engineers and business analysts have made several key decisions. These are as follows: 1. 2. 3. 4. A licensing plan should be implemented to allow for the GatorRay system to be produced by a major radiological distributor. Market analysis can not be conducted until we have at least a rough estimate for what the demand for the system will be. Orthopedic clinics should be our target market. The cost for building the first GatorRay system will be about $350,000. 5.2 Licensing Plan The first major resolution that has been made this semester is that the GatorRay system will be distributed by a major manufacturer, rather than as its own small start-up company. After examining the radiological manufacturing industry, the business team has determined that it is controlled by several large players, such as General Electric. This is a difficult industry for a small start-up company to break into, no matter how novel their idea might be. This decision has been more important to the business and legal sides of the project, as they are the ones who will deal mostly with the licensing issues. However, this decision has caused the GatorRay engineers to realize that our main job is to prove that the system is a feasible, useful technology. 5.3 System Demand While the business team would like to begin a market analysis for the GatorRay system, they will not be able to do so until they have determined who will want this technology and what they will be willing to pay for it. The next step that the business team will take will be to visit with as many radiologists, orthopedic clinics, and even sports medicine facilities as possible. This will allow them to calculate the demand and determine a good price for the finished system. As of right now, the business team has visited with one radiologist and one orthopedist. 5.4 Orthopedic Clinics If the licensing plan goes through as we hope, we will not have to worry about finding people to sell this system to; the manufacturer would take care of that. However, in order to get the licensing done at all, we have to prove that there exists a market that will find this technology useful and is willing to pay to have it. Therefore, we have been researching different markets and have determined that we should target orthopedic clinics. It seems that radiologists might feel that they have no use for the system, but Dr. Moser, the one orthopedist with whom the business team has been in contact, seemed excited about the system and said that it is something he would definitely buy for his office when it comes to market. He felt that this would be a powerful tool for pre-surgery diagnosis and post-surgery rehabilitation, particularly for shoulder injuries. Without this tool, orthopedists often do not know what exactly is wrong with a patient's shoulder until surgery has begun. 5.5 First-time Cost The GatorRay system involves several "off-the-shelf" parts that have a definite fixed cost. This makes it easier to estimate what the first complete system will cost to produce. Scott Banks has provided this estimate as follows: 2 Robots 1 X-ray source 1 X-ray detector 1 MoCap system Glue Total $120,000 50,000 80,000 50,000 50,000 $ 350,000 In this estimate, “glue” is anything that ties all of the other pieces together. This is mainly the DRICS, our project, which includes the control system and the graphical user interface. These four key decisions will shape how each of the teams plans out next semester’s agenda. The business team will concentrate on discovering more about the target market and demand for the product. The legal team will work on patenting and licensing. Finally, the engineering team will continue to build on the system, proving that it is a useful, feasible technology. 6 Project Plan 6.1 Deliverables Deliverables Due Date 1. Final Report & Doc. 2. Final Presentation 3. Project Poster 4. Final Project Code 5. Project Poster Draft 6. GUI Prototype 2 7. Code/Unit Test/Build & Integration 8. Prototype 1 Test Results 9. Project Plan & Detailed Design Review 10. GUI Prototype 1 11. System Level Design Report 12. Technical Design Specification Report 13. Comprehensive Test Plan 14. Component Specifications 15. Prototype Plan 16. Product Architecture 17. Preliminary Design Report 18. Configuration Management Plan 4/13/06 4/13/06 4/03/06 3/22/06 3/15/06 2/22/06 2/15/06 1/11/06 1/11/06 12/09/05 12/07/05 11/23/05 11/02/05 11/02/05 10/26/05 10/26/05 10/19/05 10/12/05 Est. Time (weeks) 4 3 3 5 2 6 4 5 4 6 3 2 2 1 2 2 4 1 Our group will utilize two processes to complete the project. For the network control system we will follow the traditional waterfall model. The network control system will connect two robot arms and their control systems with one central computer. The waterfall model was selected because communication protocols that enable communication between these systems already exist. The waterfall model also coincides with many of the deliverables required for our IPPD course. The GatorRay system is a new technology that does not have a comparable system in production. Therefore, our GUI will be unique. To develop the GUI it was decided that rapid prototyping should be used. Rapid prototyping will allow us to receive quick feedback on the quality of our design. Our prototypes will receive careful review from Scott Banks, Chris Lightcap, and J.D. Yamokoski along with Radiologists such as Manuel Arreola and orthopedists at the Shands Health Center. We believe showing our prototype to the type of professionals that will actually be using this technology is the best way for us to determine the usefulness of the design, and make improvements. The first prototype will be developed rapidly in order to receive critiques as soon as possible. Using the information gathered from the first prototype, a second prototyped will be developed that will resemble our final system. The second prototype will be finished with at least four weeks left for review and testing. After a period of comprehensive testing the final project code will be finished and turned in by March 22nd. Project Roadmap System Requirements And Product Design Detail Design And Test Plan Testing And Integration 10/1/2005 8/26/2005 9/28/2005 Maintenance Product Verification 1/1/2006 11/4/2005 12/9/2005 2/22/2006 3/20/2006 8/26/2005 - 9/28/2005 Technical Strategy 8/26/2005 - 9/28/2005 System Requirements 8/26/2005 - 10/5/2005 Product Specifications 9/21/2005 - 11/4/2005 Comprehensive Test Plan 9/28/2005 - 11/23/2005 Product Design 10/27/2005 - 12/9/2005 GUI Prototype 1 11/4/2005 - 12/9/2005 Testing 11/16/2005 - 1/25/2006 Control System Integration 12/9/2005 - 2/22/2006 GUI Prototype 2 12/9/2005 - 2/22/2006 Control System Verification 2/22/2006 - 3/20/2006 Maintenance Figure 11. Project Roadmap. The project roadmap is shown in figure 11. The figure shows the five stages in our development process. During the system requirements and product design phase we developed our technical strategy along with the system requirements and product specifications. In the second stage the product has been designed, and development of the first GUI prototype has begun. A comprehensive test plan will also be constructed. By the completion of the testing and integration phase the first representation of the GUI will be completed. During product verification the network control system will be integrated with the robots, and their verification will begin. The last stage is maintenance, any problems in the system will be resolved and the final product will be completed. 6.2 Project Assignments and Risk Assessments Kim Poor - User Testing and Feedback Kim is in responsible for testing prototype 1 along with receiving and documenting the feedback for each implementation of the GUI. Lucas Hillard and Drew Davis - Network Control System. They are responsible for developing the visual C++ programs that will be used to communicate between systems. They are also responsible for the integration, verification, and maintenance of the network control system. Blake Sutton, David Cohen and Jonathon Cohen - GUI. They are responsible for developing the GUI prototypes in visual C++. Our assessment of risks in this project are summarized in the table below. Risk Technical Risks Inexperience in visual c++ Probability Impact Moderate Severe Time built into the schedule for studying visual C++ Moderate The network system will undergo speed testing David, Luke, Drew, Blake, Jon Drew Moderate Rigorous testing of the control system will uncover problems with precision. Severe Time has been built into the plan for research in integration. Severe The GUI will be made to show potential, and for research purposes Severe Safety will be our first priority Luke Inability to meet speed requirements Inability to meet precision requirements Low Complexity of Integration Moderate Complexity of GUI Moderate Inability to meet safety requirements Schedule Risks: Insufficient time for prototypes Low Control system dependency on Low Low Moderate Solutions Team member responsible David, Luke, Blake, Drew, Jon David, Jon, Blake Kim Moderate The first prototype will David, Blake, be developed rapidly in Jon order to receive feedback Moderate Control programs for Luke, Drew both robots will be another robot Insufficient time Moderate for review and feedback Inability to Moderate determine user of product similar Moderate Prototype development will begin once the first feedback is received Low Our System is developed for research, with different users in mind Kim Kim