System and method for remote clock estimation for reliable communications
An electronic device is provided including a processor, a communications interface coupled to the processor, a memory coupled to the processor, and a module saved in the memory. The module configures the processor to receive a first communications packet from a remote device via the communications interface including information useful for estimating a clock offset of the remote device, and determine an upper bound of the clock offset of the remote device with respect to the electronic device based on the information.
1. A medical navigation system comprising:
a processor coupled to a memory, the memory storing instructions that, when executed, cause the processor to:
communicate with a tracking system to obtain tracking information about a tracked medical instrument;
register the tracked medical instrument to a reference frame using the tracking information;
communicate with the tracking system intraoperatively to obtain further tracking information about the tracked medical instrument;
track the tracked medical instrument intraoperatively in the reference frame using the further tracking information;
receive a first communications packet from a remote device, the first communications packet including information about a clock offset of the remote device relative to the navigation system;
determine an upper bound of the clock offset; and
determine a maximum age of data contained in the first communications packet, based on the determined upper bound.
2. The medical navigation system of claim 1 , further comprising:
a mechanical arm in communications with the processor;
the mechanical arm being tracked by the tracking system in the reference frame.
3. The medical navigation system of claim 1 , further comprising:
an imaging device, in communications with the processor, for capturing an image;
wherein the instructions further cause the processor to perform image registration of the image to the reference frame.
4. The medical navigation system of claim 3 , further comprising:
a mechanical arm in communications with the processor;
the mechanical arm supporting the imaging device, and the mechanical arm being tracking by the tracking system in the reference frame.
5. The medical navigation system of claim 1 , wherein the remote device is the tracking system, and wherein the first communications packet contains the tracking information from the tracking system.
6. The medical navigation system of claim 1 , wherein the remote device is a robotic arm.
7. The medical navigation system of claim 1 , wherein the information about the clock offset includes a first timestamp of the navigation system at a start of transmission of a second communications packet to the remote device, a second timestamp of the remote device upon receipt of the second communications packet, and a third timestamp of the remote device at a start of transmission of the first communications packet.
8. The medical navigation system of claim 7 , wherein the information about the clock offset further includes a fourth timestamp of the navigation system upon receipt of the first communications packet.
9. The medical navigation system of claim 7 , wherein the second communications packet was sent earlier in time than the first communications packet and the first and second communications packets are TCP/IP packets that are not explicit request/response packets sent for the purpose of determining timing information.
10. A method of operating a medical navigation system, the method comprising:
receiving, from a tracking system, tracking information about a tracked medical instrument;
registering the tracked medical instrument to a reference frame using the tracking information;
receiving intraoperatively, from the tracking system, further tracking information about the tracked medical instrument;
tracking the tracked medical instrument intraoperatively in the reference frame using the further tracking information;
receiving a first communications packet from a remote device, the first communications packet including information about a clock offset of the remote device relative to the navigation system;
determining an upper bound of the clock offset; and
determining a maximum age of data contained in the first communications packet, based on the determined upper bound.
11. The method of claim 10 , wherein the medical navigation system includes a mechanical arm, and the method further comprises:
tracking the mechanical arm in the reference frame.
12. The method of claim 10 , wherein the medical navigation system includes an imaging device for capturing an image, and the method further comprises:
performing image registration of the image to the reference frame.
13. The method of claim 12 , wherein the medical navigation system includes a mechanical arm supporting the imaging device, and the method further comprises:
tracking the mechanical arm in the reference frame.
14. The method of claim 10 , wherein the remote device is the tracking system, and wherein the first communications packet contains the tracking information from the tracking system.
15. The method of claim 10 , wherein the information about the clock offset includes a first timestamp of the navigation system at a start of transmission of a second communications packet to the remote device, a second timestamp of the remote device upon receipt of the second communications packet, and a third timestamp of the remote device at a start of transmission of the first communications packet.
16. The method of claim 15 , wherein the information about the clock offset further includes a fourth timestamp of the navigation system upon receipt of the first communications packet.
17. The method of claim 15 , wherein the second communications packet was sent earlier in time than the first communications packet and the first and second communications packets are TCP/IP packets that are not explicit request/response packets sent for the purpose of determining timing information.
18. A computer program product comprising a non-transitory computer readable medium having stored thereon computer executable instructions that, when executed by a processor of a medical navigation system, causes the medical navigation system to:
receive, from a tracking system, tracking information about a tracked medical instrument;
register the tracked medical instrument to a reference frame using the tracking information;
receive intraoperatively, from the tracking system, further tracking information about the tracked medical instrument;
track the tracked medical instrument intraoperatively in the reference frame using the further tracking information;
receive a first communications packet from a remote device, the first communications packet including information about a clock offset of the remote device relative to the navigation system;
determine an upper bound of the clock offset; and
determine a maximum age of data contained in the first communications packet, based on the determined upper bound.