Johns Hopkins EN 600 446 - Polaris Server Code: Java Implementation for TINI

Unformatted text preview:

Polaris Server Code: Java Implementation for TINIPresentation OutlineSlide 3The HardwareIdeal Information Flow Through Polaris Server / ClientActual Information Flow Through Polaris Server / ClientJava Polaris Tracker ClassSlide 8DependenciesWhat’s the Problem?Slide 11Projected DeliverablesActual DeliverablesSlide 14Original Project TimelineRevised Project TimelineRe - Revised Project TimelineSlide 18What We’ve Learned – TechnicalWhat We’ve Learned – LogisticalWhat We’ve Learned – ERC StyleSlide 22Future Technologies Taking it the extra stepIn the very near futurePolaris Server Code: Java Implementation for TINIAndrew A. KitchenKevin WieheComputer Integrated Surgery11 May 2001Presentation Outline•Project Overview•Problems and Dependencies•Deliverables•Schedule •What we’ve learned•The Near and Distant FuturePolaris Server Code: Java Implementation for TINICreation of Server (and Client) code for distributed control of a Polaris Tracker device—in Java for the TINI devicewww.ndigital.comwww.dallassemiconductor.comThe HardwareJacOrbServerClientPolaris TrackerIDL StubIDL StubTINI DeviceIdeal Information Flow Through Polaris Server / ClientEthernetRS-232Outside the Lab In the LabServerClientCompletely abstractPolaris TrackerNot actual sizeTINI DeviceActual sizeActual Information Flow Through Polaris Server / ClientEthernet (TCP)RS-232(Null – Straight)In the Lab Across the LabJava Polaris Tracker Class1. Init() – send serial break to reset Polaris and initialize 2. Config() – set Communication baud rate, number of bytes sent, etc.3. GetTransformation(tool)- return Quarternian representing translation and rotation of tool, return RMS error. 4. PolarisStatus()– returns status of tools in ports 5. Start/StopTracking() – begin or end tracking modePresentation Outline•Project Overview•Problems and Dependencies•Deliverables•Schedule •What we’ve learned•The Near and Distant FutureDependencies1. ExternalA. Access to TINI – Fulfilled.B. Access to Polaris – Partially Fulfilled.C. JacORB ported to TINI – Will Not Be Fulfilled.2. InternalA. Working Java serial port code – Fulfilled.B. Basic Polaris server code – Mostly Fulfilled.C. Distributed Control with TCP – Will Be Fulfilled.D. Client code – Will Be Fulfilled.What’s the Problem?1. Controlling the TINI serial portA. The TINI won’t send data across the serial port•Straight serial cable vs. Null modem cableB. The TINI refuses to allow control of the serial port•Acquiring ownership of serial port from native TINI control required root access, which was granted by Dr. KoontzC. The documentation / support for TINI is horrendous—directed toward interest groups.•Nowhere to turn to for quick answers •Forced to troll mailing lists2. Polaris IssuesA. Loading passive tools proved too difficult•Using active tools proved to be simpleB. Access to Polaris was delayed•Complete and unfettered access to Polaris since 27 AprilPresentation Outline•Project Overview•Problems and Dependencies•Deliverables•Schedule •What we’ve learned•The Near and Distant FutureProjected DeliverablesI. Minimum:•Server code that implements Config(), LoadTool(tool), Init(), getToolFrame() and getToolPos() methods•A Client that will demonstrate these methods in a distributed environment•A single threaded server implementationII. Maximum:I. Server code that implements all Polaris functions (loading and tracking multiple tools, tracking both passively and actively, etc.)II. A multi-threaded implementation of the server codeIII. Ability to scale well with multiple clients (multi-threaded implementation?)Actual DeliverablesI. Achieved:•Single-threaded server code that implements Config(), Init(), getToolTranformation(), PolarisStatus(); for active markers.•Basic serial communications with TINI.II. Will Be Achieved:•Server code ported to TINI board.•Simple client created to work across network using TCP.III. By the Way-side:•Multi-threaded implementation.•Client – Server communication using CORBA (either on TINI or on a PC).Presentation Outline•Project Overview•Problems and Dependencies•Deliverables•Schedule •What we’ve learned•The Near and Distant Future2 – 12 March: Dissect & Study the C++ Tracker Reference Model 12 March: Begin Porting C++ Tracker Reference Model to Embedded Java 12 March: Define interaction of server IDL and JacOrb 26 March: Begin writing server code 15 April: Begin re-writing basic functions, such as setConfig()& getTool() in Embedded Java 22 April: Begin writing simple client 30 April: Complete Project (implementation of server andsimple client)Original Project Timeline2 – 12 March: Dissect & Study the C++ Tracker Reference Model 12 March: Define interaction of server IDL and JacOrb 26 March: Begin writing server code *3 April: Began serial port coding 9 April: Begin re-writing basic functions, such as setConfig()& getTool() in Embedded Java *22 April: Complete serial port code *22 April: Begin testing server code on Polaris Device *29 April: Complete server code 29 April: Begin writing simple client 11 May: Complete Project (implementation of server andsimple client)Black = done; Blue = future; Red = future & delayed; * = newRevised Project Timeline2 – 12 March: Dissect & Study the C++ Tracker Reference Model 12 March: Define interaction of server IDL and JacOrb 26 March: Begin writing server code *3 April: Began serial port coding 9 April: Begin re-writing basic functions, such as setConfig()& getTool() in Embedded Java 22 April: Complete serial port code 27 April: Begin testing server code on Polaris Device 8 May: Complete server code 13 May: Begin writing simple client 17 May: Complete Project (implementation of server andsimple client)Black = done; Red = future & delayedRe - Revised Project TimelinePresentation Outline•Project Overview•Problems and Dependencies•Deliverables•Schedule •What we’ve learned•The Near and Distant FutureWhat We’ve Learned – Technical•More Java & Embedded Java than we thought existed•Serial cable communications•Server – client relationships•Intimately acquainted with Polaris interface•Enough CORBA to become intrigued by itWhat We’ve Learned – Logistical•Project Management–Communicate all the time!–Checkpoints! Checkpoints! Checkpoints!–Be a


View Full Document

Johns Hopkins EN 600 446 - Polaris Server Code: Java Implementation for TINI

Download Polaris Server Code: Java Implementation for TINI
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Polaris Server Code: Java Implementation for TINI and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Polaris Server Code: Java Implementation for TINI 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?