MRI robot/JHU 2007 07 10 Meeting
From CISSTwiki
Contents |
[edit]
Participants
- Greg Fischer, JHU
- Csaba Csoma, JHU
[edit]
Overview
Navigation Software ⇔ OpenTracker ⇔ Network ⇔ OpenTracker (BRPtprReceiver) ⇔ Named Pipe ⇔ Robot Controller (BRPtprControl)
[edit]
Software design
- C++
- 2 threads in each process, one for each direction
- blocking read/write with named pipe
[edit]
Other
- Watchdog for the network communication
- Navigation Software sends a "ping" message every second
- Robot controller goes into the "fault" state if there's no message for 5 sec
if (ThereIsMessage) { counter = 500; ProcessMessage(x); } else { counter--; if (counter<=0) { NetworkFailure(); } }
- Command priority: what happens if there's 30 "GetPosition" in the queue, and "Emergency Stop" arrives?
- Controller side: command priority
- Controller side/Navigation Software side: group "GetPosition" messages into a single one