IP Library › Granted Patent US 10,592,529
Granted Patent B2
US 10,592,529 · App. 15/814,214 · Granted Mar 17, 2020

Systems and methods for synchronizing nodes of a robotic system

Inventors: Brian D. Hoffman (Mountain View, CA); Joshua Radel (Menlo Park, CA)
Assignee: INTUITIVE SURGICAL OPERATIONS, INC.
G06F16/27A61B34/00A61B34/37G06F9/542G06F16/2365G06F16/2379G06F16/273
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,592,529
App. No.
15/814,214
Filed
Nov 15, 2017
Granted
Mar 17, 2020
Kind
B2
Art Unit
2168
USPC
707/631
Abstract

A robotic system is provided. The robotic system includes a publishing node including at least one first synchronization database that includes a plurality of attributes, each of the attributes including a tag identifying the attribute and data, a flag associated with each of the attributes, and a subscriber list. The system also includes a subscriber node including at least one second synchronization database. The publishing node is configured to set the flag associated with the attributes when the attributes are written in the at least one first synchronization database or when the data included in the attributes are modified and publish the flagged attributes to the subscriber node.

Claims (57)

1. A system comprising:

a first node comprising one or more first processors and a first synchronization database; and

a second node comprising one or more second processors and a second synchronization database;

wherein:

the first synchronization database comprises:

a subscriber list of a plurality of first subscribers;

a plurality of first attributes, each individual attribute of the plurality of first attributes including data and a tag, the tag identifying the individual attribute; and

a plurality of first flags, each individual flag of the plurality of first flags being associated with a corresponding one of the plurality of first attributes and a corresponding one of the plurality of first subscribers;

the first node is configured to:

receive a first subscription message from the second node, the first subscription message identifying a second attribute of the plurality of first attributes;

in response to receiving the first subscription message, add the second node to the subscriber list if the second node is not already in the subscriber list and set the individual flag of the plurality of first flags associated with both the second node and the second attribute;

on a condition that the data included in a third attribute of the plurality of first attributes is modified and the third attribute is associated with the second node by a second flag of the plurality of first flags, set the second flag; and

for each individual flag in the plurality of first flags that is set and is associated with the second node, publish the associated one of the plurality of first attributes to the second node; and

the second node is configured to:

send the first subscription message; and

store each of the published plurality of first attributes in the second synchronization database.

2. The system of claim 1 , wherein the first node is further configured to transmit an advertising message that advertises the plurality of first attributes.

3. The system of claim 1 , wherein the first node is further configured to:

receive a discover message from the second node; and

transmit a discover response message to the second node in response to the discover message, the discover response message including a list of the plurality of first attributes.

4. The system of claim 1 , wherein the first node is further configured to aggregate modifications to the plurality of first attributes until a synchronization reply signal is received from the second node.

5. The system of claim 1 , wherein the first node is further configured to delay publishing of attributes to the second node until a ready signal is received from the second node.

6. The system of claim 1 , wherein the first node and the second node are further configured to exchange heartbeat signals.

7. The system of claim 1 , wherein:

the first node is a first device or component in a robotic system; and

the second node is a second device or component in the robotic system.

8. The system of claim 7 , wherein:

the first node is a unit controller, a dispatcher, a manipulator, a supervisor, a video subsystem, or a user interface of the robotic system; and

the second node is a unit controller, a dispatcher, a manipulator, a supervisor, a video subsystem, or a user interface of the robotic system.

9. The system of claim 7 , wherein the first node is a link in a kinematic chain, an actuator, a sensor, or a subgroup of the robotic system.

10. The system of claim 7 , wherein the second node is a link in a kinematic chain, an actuator, a sensor, or a subgroup of the robotic system.

11. A method for synchronizing data across nodes in a system, the method comprising:

maintaining, by a first node of the system, a subscriber list of a plurality of first subscribers;

maintaining, by the first node, a plurality of first attributes, each individual attribute of the plurality of first attributes including data and a tag, the tag identifying the individual attribute;

maintaining, by the first node, a plurality of first flags, each individual flag of the plurality of first flags being associated with a corresponding one of the plurality of first attributes and a corresponding one of the plurality of first subscribers;

sending, by a second node of the system, a first subscription message, the first subscription message identifying a second attribute of the plurality of first attributes;

receiving, by the first node, the first subscription message;

adding, by the first node and in response to receiving the first subscription message, the second node to the subscriber list if the second node is not already in the subscriber list;

setting, by the first node and in response to receiving the first subscription message, the individual flag of the plurality of first flags associated with both the second node and the second attribute;

setting, by the first node and on a condition that the data included in a third attribute of the plurality of first attributes is modified and the third attribute is associated with the second node by a second flag of the plurality of first flags, the second flag;

publishing, by the first node and for each individual flag in the plurality of first flags that is set and is associated with the second node, the associated one of the plurality of first attributes to the second node; and

storing, by the second node, each of the published plurality of first attributes.

12. The method of claim 11 , further comprising transmitting, by the first node, an advertising message that advertises the plurality of first attributes.

13. The method of claim 11 , further comprising:

receiving, by the first node, a discover message from the second node; and

transmitting, by the first node and in response to the discover message, a discover response message to the second node, the discover response message including a list of the plurality of first attributes.

14. The method of claim 11 , further comprising aggregating, by the first node, modifications to the plurality of first attributes until a synchronization reply signal is received from the second node.

15. The method of claim 11 , further comprising delaying publishing, by the first node, of attributes to the second node until a ready signal is received from the second node.

16. The method of claim 11 , further comprising exchanging, by the first node and the second node, heartbeat signals.

17. The method of claim 11 , wherein:

the first node is a first device or component in a robotic system; and

the second node is a second device or component in the robotic system.

18. The method of claim 17 , wherein:

the first node is a unit controller, a dispatcher, a manipulator, a supervisor, a video subsystem, or a user interface of the robotic system; and

the second node is a unit controller, a dispatcher, a manipulator, a supervisor, a video subsystem, or a user interface of the robotic system.

19. The method of claim 17 , wherein the first node is a link in a kinematic chain, an actuator, a sensor, or a subgroup of the robotic system.

20. The method of claim 17 , wherein the second node is a link in a kinematic chain, an actuator, a sensor, or a subgroup of the robotic system.

Continuity (4)
Continuation 15242408 · Aug 19, 2016
Continuation 14181499 · Feb 14, 2014
Provisional Application 61765559 · Feb 15, 2013
Related Publication 20180075120A1 · Mar 15, 2018
Cited By (51)
US 1,066,378 US 1,066,379 US 1,066,380 US 1,066,381 US 1,066,382 US 1,066,383 US 1,066,404 US 1,066,405 US 1,087,135 US 1,087,995 US 12,186,040 US 12,207,894 US 12,223,629 US 12,256,890 US 12,262,863 US 12,262,964 US 12,310,685 US 12,315,109 US 12,329,475 US 12,339,871 US 12,350,828 US 12,369,998 US 12,376,934 US 12,380,998 US 12,390,294 US 12,409,003 US 12,419,711 US 12,433,699 US 12,433,700 US 12,465,447 US 12,479,098 US 12,491,028 US 12,496,119 US 12,496,728 US 12,548,667 US 12,564,457 US 12,599,445 US 12,599,449 US 12,611,086 US 12,611,272 US 12,616,474 US 12,617,078 US 12,626,422 US 12,642,613 US 12,648,685 US 12,661,192 US 12,672,927 US 12,678,238 US 12,685,603 US 12,708,466 US 12,733,950