CN108280239B - 同步机器人系统节点的系统和方法 - Google Patents
同步机器人系统节点的系统和方法 Download PDFInfo
- Publication number
- CN108280239B CN108280239B CN201810174151.7A CN201810174151A CN108280239B CN 108280239 B CN108280239 B CN 108280239B CN 201810174151 A CN201810174151 A CN 201810174151A CN 108280239 B CN108280239 B CN 108280239B
- Authority
- CN
- China
- Prior art keywords
- node
- database
- publishing
- attributes
- subscribing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 5
- 230000004931 aggregating effect Effects 0.000 claims 2
- 230000001360 synchronised effect Effects 0.000 description 21
- 239000000872 buffer Substances 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000001356 surgical procedure Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B34/00—Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B34/00—Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
- A61B34/30—Surgical robots
- A61B34/37—Master-slave robots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Surgery (AREA)
- Robotics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Veterinary Medicine (AREA)
- Biomedical Technology (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Medical Informatics (AREA)
- Public Health (AREA)
- Animal Behavior & Ethology (AREA)
- Heart & Thoracic Surgery (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Small-Scale Networks (AREA)
- Manipulator (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及同步机器人系统节点的系统和方法,并公开一种机器人系统。该机器人系统(100)包含发布节点(102‑1),其包含至少一个第一同步数据库(104),第一同步数据库(104)包含多个属性(108)、与每个属性关联的标记(114)和订户列表(116),其中每个属性包含识别属性的标签(110)和数据(112)。该系统也包含订户节点(102‑2),其包含至少一个第二同步数据库(106)。发布节点被配置为当属性被写进至少一个第一同步数据库或者当属性内包含的数据被修改时设置与属性关联的标记,并且将被标记的属性发布给订户节点。
Description
本申请是于2014年2月14日提交的名称为“同步机器人系统节点的系统和方法”的中国专利申请201480008621.2的分案申请。
相关申请的交叉参考
本申请要求于2013年2月15日提交的美国临时专利申请第61/765559号和于2014年2月14日提交的美国非临时专利申请第14/181499号的优先权。这些申请文件的公开内容在此通过参考它们的全部内容而被并入。
技术领域
本公开涉及同步机器人系统节点的系统和方法。特别地,本公开涉及同步可以在机器人系统的每个节点处执行的数据库,同步数据库允许订阅和发布机器人系统节点之间的更新属性。
背景技术
某些应用程序为了通信需具有高带宽要求和严格的同步、延时以及可靠性要求。例如,机器人辅助外科手术要求低延时来实时地传递控制和反馈信号。这种应用的同步和延时要求是严格的,因为理想情况下在外科医生控制主输入器的运动和从动于主输入器的机器人运动之间应该有尽可能少的延迟。
包含机器人辅助外科手术系统的复杂系统包含许多部件,在此大体称为“节点”,其在系统内一起工作并且因此需要能够保持同步。对于这些耦合的节点中的每个节点,同步通常通过第一节点发送数据请求给第二节点,而第二节点将通过向第一节点提供所请求的数据对该请求作出响应来进行。在某些情况下,第一节点将会检查第二节点和第三节点的存在,并且如果发现第二和第三节点是存在的,那么第一节点将数据推送给第二和第三节点。如果第二或第三节点与第一节点断开并且然后重新连接,则第一节点可能不会被通知第二或第三节点断开,并且结果是重新连接的节点可能会缺失第一节点在断开期间发送的数据。而且,当新节点被耦合到第一节点时,第一节点可能不会检查到该新节点的存在,并且因此不会提供任何数据给新节点,从而使得新节点处的数据没有与第一节点的数据同步。最终,需要一种系统,其持续地检查节点的存在并且然后发送数据给每个节点以保持同步,这会产生不必要的系统通信量,进而可以减慢系统或溢出消息序列。
所需要的是某种系统和方法,其可以以最低系统通信量自动同步系统内的节点,并且可以快速同步连到系统的新节点。
发明内容
根据一些实施例,本文提供了机器人系统。机器人系统包含发布节点,其包含至少一个第一同步数据库,第一同步数据库包含多个属性、与每个属性相关的标记以及订户列表,其中每个属性包含识别属性的标签和数据。该系统还包含订户节点,其包含至少一个第二同步数据库。发布节点被配置为当属性被写进至少一个同步数据库时或者当属性内包含的数据被修改时设置与属性关联的标记,并且将被标记的属性发布给订户节点。
根据一些实施例,本文也提供了一种用于同步机器人系统的节点上的数据的方法。该方法包含从发布节点传递通告消息,该通告消息通告被存储于在发布节点上执行的服务器实例同步数据库内的属性,由耦合到发布节点的订阅节点接收该通告消息,并且由订阅节点传递订阅消息,该订阅消息指示了至少一个订阅节点想要订阅的被存储于在发布节点上执行的服务器实例同步数据库内的属性。该方法还包含通过发布节点将订阅节点添加到维持于在发布节点上执行的服务器实例同步数据库内的订阅列表,通过发布节点设置每个订阅属性的标记,通过发布节点将包含每个标记属性的同步数据包传递到订阅节点,以及为每个传递的属性清除标记。
进一步根据一些实施例,本文还提供了一种非临时计算机可读介质,其具有由机器人系统的一个或多个处理器执行的指令,当指令被执行时,使一个或多个处理器进行同步机器人系统节点的方法。该方法包含从发布节点传递通告消息,该通告消息通告存储于在发布节点上执行的服务器实例同步数据库内的属性,由耦合到发布节点上的订阅节点接收通告消息,并且将来自订阅节点的订阅消息传递到发布节点,该订阅消息指示了至少一个订阅节点想要订阅的被存储于在发布节点上执行的服务器实例同步数据库内的属性。该方法还包含将订阅节点添加到在发布节点上执行的服务器实例同步数据库内维持的订阅列表中,为在发布节点上执行的服务器实例同步数据库内的每个订阅属性设置标记,将来自发布节点的同步数据包传递到订阅节点,同步数据包包含每个标记属性,以及为在发布节点上执行的服务器实例同步数据库内的每个传递属性清除标记。
这些和其他的实施例通过参考之后的附图将在下文更详细地被描述。
附图说明
图1是根据一些实施例图示说明通过使用同步数据库的实例同步系统内节点的系统的示意图。
图2是根据一些实施例图示说明同步数据包的示意图。
图3是根据一些实施例图示说明其中多个同步数据库实例正在节点上执行的系统的示意图。
图4A和4B是根据一些实施例图示说明同步服务器数据库和客户端数据库之间属性的方法的流程图。
图5是根据一些实施例图示说明错误检测方法的流程图。
图6是根据一些实施例的用在机器人系统内的图1中系统的示例。
图7是根据一些实施例的用在机器人系统内的图1中系统的另一示例。
图8是根据一些实施例的用在机器人系统内的图1中系统的另一示例。
图9是根据一些实施例的用在机器人辅助外科手术系统内的图1中系统的示例。
在附图中,具有相同标示的元件具有相同或相似的功能。
具体实施方式
在之后的描述中,具体的细节被提出以描述某些实施例。但是,即使没有一些或全部这些具体细节,也可以实践所公开的实施例,这对于本领域内技术人员将会是明显的。所提出的具体实施例意在说明性的,而非限制性。尽管本文没有具体描述,但是本领域内技术人员可以意识到其他的材料也在本公开的范围和精神内。各种机械、组成、结构、电气以及操作上的改变可以被做出,而不偏离本说明书和权利要求书的精神和范围。在某些情况下,熟知的电路、结构和技术没有详细地显示以便不模糊本发明。此外,单数形式“一”、“一个”以及“该/所述”意在还包含复数形式,除非文中另外做出指示。此外,术语“包括”、“由…组成”、“包含”等表明存在所述特征、步骤、操作、元件和/或部件但是并不排除存在或添加一个或多个其他的特征、步骤、操作、元件、部件和/或分组。被描述为耦合的部件可以是电气地或机械地直接耦合,或者它们可以经由一个或多个中间部件间接地耦合。
图1是根据一些实施例图示说明通过使用同步数据库的实例同步系统中节点的系统100的示意图。如图1所示,系统100包含多个互相连接的节点102-1到102-N(统一称为“节点102”)。根据一些实施例,每个节点102可以是器件、机器人系统的部件、一个或多个处理器、由一个或多个处理器执行的各任务。节点102可以包含具有一个或多个处理器并且能够读取存储在非临时机器可读介质上以便于由一个或多个处理器执行的指令的硬件和/或软件的任何合适的组合。这种指令可以包含用于创造一个或多个同步数据库实例的指令,正如本文所述的。
返回图1,节点102包含与第二节点102-2耦合的第一节点102-1,第二节点102-2进而耦合到多个节点102-3到102-N。尽管图1中未显示,但是节点102-1可以用与节点102-2连接的方式类似的方式直接耦合到额外的节点。根据一些实施例,存储器(未显示)与每个节点102关联。进一步地,一个或多个处理器也可以与每个节点102关联。用于创建同步数据库实例的指令可以被存储在存储器中,并且一个或多个处理器可以执行这些指令以便在每个节点102处创建一个或多个同步数据库实例。根据一些实施例,同步数据库是软件容器对象,其可以(i)存储数据属性,诸如状态或事件,(ii)支持在称为发布节点的一个节点上的数据变化的聚集(aggregation),以及(iii)支持向一个或多个订户节点发布变化的数据。同步数据库可以通过执行一个或多个同步应用程序来完成该过程,所述同步应用程序在每个节点处被执行以完成订阅发布节点并且接收数据变化或者向一个或多个订阅节点发布数据变化所必需的功能。对于发布节点,同步应用程序可以被称为发布应用程序,并且对于订阅节点,其可以被称为订阅应用程序。
如图1中所示的,节点102-1正在执行服务器实例的同步数据库104且用作发布节点,并且节点102-2正在执行客户端实例的同步数据库106且用作订阅节点。对于服务器实例和客户端实例两者,同步数据库都可以存储一组被称为属性108的数据向量,订阅节点列表116和可以用于管理同步的另外的状态(未显示)。属性108可以涉及包含了系统100中状态或事件的数据,并且可以进一步包含计数器和时间戳。属性108也可以涉及作为用于描述系统100的行为的行为元素的数据。根据一些实施例,属性108可以涉及用户界面(UI)状态或事件,其可以是发生在一个节点上的状态或事件的可视表示,该节点可以被发布给额外的节点以更新额外节点的事件和/或在额外的节点处复制这些事件或状态的可视表示。属性108也可以被存储在一个或多个数据库中,诸如与节点102-1关联的数据库104和与节点102-2关联的数据库106,如图1中所示。
如图1所示,属性108包含标签110、数据112以及能够被设置或清除的相关标记114。尽管与节点102-1关联的数据库104和与节点102-2关联的数据库106被显示为只具有3或4个属性,但是属性的数量仅仅受限于为每个节点102上同步数据库实例分配的存储器。根据一些实施例,当与数据库104或数据库106关联的节点接收到来自请求节点的查询时,存储在数据库104或数据库106中的属性108被发送到请求节点。
存储在同步数据库中的每个属性108通过标签110唯一地识别。根据一些实施例,标签110可以是32位标签并且可以通过使用散列表/哈希表查找功能支持有效的数据库操作。标记114指示属性108是否要求发布以使属性108与订阅客户端数据库106同步。当属性108被写进数据库104或另外地在数据库104中被修改从而使数据库106存储的相应属性108可能不同时,设置标记114。节点102-1可以修改一个或多个属性108,进而为每个修改的属性108设置标记114。然后,节点102-1可以在其关联数据库104上调用“发布”方法,从而向订阅节点102(诸如节点102-2)发布存储在数据库104中的所有属性108以及设置的标记114。在发布属性108之后,清除数据库104中的标记114。标记114可以是包含每个订阅节点102的位的字段。
如图1所示,数据库104也可以包含订户列表116,其可以是节点102和已经订阅了存储在数据库104中的一个或多个属性108的节点102关联数据库的列表。根据一些实施例,数据库104通告其存储的属性108。在该实施例中,数据库104可以周期性地传递信号给所有的耦合节点102以指示其正在存储的属性108和数据,从而其他的节点(诸如节点102-2)可以确定其是否应该全部或部分地订阅存储在数据库104中的一个或多个属性108。例如,一旦开始连接订阅节点102或当数据库104启动时,数据库104可以传递通告消息(advertisemessage)。同时,数据库106周期性地传递发现消息以尝试识别具有存储数据库106要求的数据的关联数据库的节点。例如,一旦开始连接具有数据库104的发布节点102-1或者当数据库106启动时,数据库106可以传递发现消息。当数据库104接收到发现消息或者当数据库106接收到通告信号时,数据库104和数据库106将会建立连接。一旦接收到发现消息,数据库104将向数据库106传递发现应答信号。一旦接收到通告信号或发现应答信号,数据库106将向数据库104发送订阅消息,以建立两个节点间的连接并且与节点102-2关联的数据库106订阅存储在与节点102-1关联的数据库104中的一个或多个属性108。然后,可将节点102-2被添加到订户列表116。
节点102-2和其关联的数据库106可以订阅存储在数据库104中的所有属性108,或者可以仅仅订阅某些属性。每个节点102可以具有存储在订户列表116中的唯一标识符以便唯一地识别被订阅的节点。当节点102订阅存储在数据库104中的属性108时,该节点针对每个被订阅的属性108分配标记114,从而当修改被订阅的属性时,标记114将被设置。当节点102初始订阅服务器数据库104时,其订阅的所有属性108将具有设置的标记114。然后,订阅节点,诸如节点102-2和其关联数据库106,可以发送应答消息给数据库104以指示其准备接收具有已设置标记114的所有属性108。当数据库104等待来自诸如节点102-2的订阅节点和其关联数据库106的应答消息时,数据库104将聚集对被订阅的属性108和因此设置的标记114的任何进一步的变化或者修改。在接收到应答消息之后,数据库104然后将发布具有已设置标记114的属性并且然后清除标记114。在接收到属性108之后,它们被检查错误,并且如果没有错误,则订阅节点的数据库将确认消息传递到数据库104。在数据库104等待确认消息时被修改的任何被订阅的属性108将在接收到确认消息之后被发布给订阅节点的数据库。如果接收节点的数据库确定所接收的属性108包含错误,则数据库将进入错误状态并且请求数据库104重新传递被订阅的属性。发布属性108的方法将在下文参考图4被进一步论述。
正如节点102-2执行客户端实例的同步数据库以订阅存储在节点102-1处数据库104中的属性108时,节点102-3到102-N也可以执行客户端实例的同步数据库以订阅节点102-2处同步数据库中的属性。
根据一些实施例,同步数据库实例可以是双缓冲的,从而使得其可以用作客户端和服务器以便向下游节点重新发布接收到的属性。例如,节点102-2可以执行客户端实例的同步数据库以便订阅存储在节点102-1处数据库104中的属性。从数据库104中接收的属性(具有更新状态)可能跨越多个同步数据包(参考图2如下文所述),该接收的属性被存储在节点102-2处的第一不活动/“后台”缓冲器中。同时,存储在节点102-2处第二活动/“前台”缓冲器中的相同属性(具有当前状态)可以被发布给订阅节点102-3到102-N。当完成节点102-1和102-2之间的同步更新时,后台和前台缓冲器被交换以便新的前台缓冲器具有从节点102-1接收的最新的属性。然后,更新的前台缓冲器中节点102-2处保持的属性108被用于更新下游节点102-3到102-N。节点102-2将属性108重新发布给已经订阅以便从节点102-2接收属性的任意节点102-3到102-N,其中属性108从节点102-1接收进入后台缓冲器并且然后被交换进入前台缓冲器。在所述示例中,由于客户端实例能够如所述地重新发布属性108,对于节点102-2没有必要执行服务器实例以便向节点102-3到102-N发布从节点102-1接收的属性108。但是,节点102能够执行服务器实例和客户端实例的同步数据库,如下文关于图3所述的。
而且,尽管节点102-2被描述成双缓冲以便向下游节点重新发布接收到的属性,但是订阅另一节点的任何节点102可以从成为双缓冲中获益,即使该节点不向下游节点重新发布接收到的属性。例如,订阅节点(诸如节点102-3)可以用同步数据包的方式从发布节点(诸如102-2)接收修改的属性,同步数据包将在下文参考图2被进一步描述。这些同步数据包将由节点102-3接收并且当它们被接收时被存储在后台缓冲器中。一旦节点102-3已经接收到用于特定同步操作的同步数据包之后,后台缓冲器将与前台缓冲器交换,给予节点102-3原子视图(atomic view)的聚集事务,并且允许节点102-3接收将被存储在刚刚交换的前台缓冲器(现在用作后台缓冲器)中的进一步同步数据包。
根据一些实施例,诸如具有数据库104的节点102-1的发布节点可以将心跳信号传递给订阅其属性108的那些节点102,诸如具有数据库106的节点102-2。心跳信号可以是具有同步数据包而无属性的同步更新信号。根据一些实施例,在属性同步之后,心跳信号可以从发布节点102-1周期性地传递,并且每次属性同步之后重设周期性传递。当接收到心跳信号时,数据库106将心跳信号视为同步信号并且发送应答消息,就如同信号包含更新属性。具有客户端数据库106的订阅节点(诸如节点102-2)将周期性地接收该心跳信号并且因此了解数据库104在线并且数据库106将接收其已经订阅的更新属性。如果订阅节点停止接收周期性心跳信号,其将会意识到节点102-1的数据库104离线并且没有提供更新属性。然后数据库106可以开始分析从发布节点传递的通告消息,可以开始向服务器节点发出发现消息,并且可以订阅具有期望属性的发布节点。在一些实施例中,例如在发布节点和订阅节点之间的通信中断之后,节点102-2的数据库106可以重新订阅节点102-1的数据库104以接收期望的属性。
如果任何订阅节点102的数据库离线了一段预定时间段,由于缺少接收到的应答消息,该段时间足以使发布节点认为订阅节点和/或其关联数据库正在“死去”,则发布节点的数据库可以从其订户列表中去除订阅节点和其关联数据库。一旦订阅节点回到在线状态,其可以用其先前所用的相同方式重新订阅存储在发布节点的数据库中的一个或多个属性。即,重新订阅的节点102将会接收到从发布节点传递的指示可从其关联的数据库中得到属性108和数据的通告消息,或者发送指示其想要订阅的属性的发现消息,并且然后其将订阅存储在发布节点的数据库中的一个或多个属性108的消息。然后,发布节点的数据库将重新订阅的节点添加回到其订户列表116,并且将为每个指示属性108设置标记114。一旦收到从重新订阅节点的数据库发出的最初“同步-应答”信号,发布节点的数据库将推送标记114已设置过的属性。然后,被重新订阅的节点102的数据库将会接收到对其订阅的属性108的任何未来修改。
图2是根据一些实施例图示说明同步数据包的示意图。当发布节点的数据库向订阅节点102发布属性108时,属性108作为同步数据包200被传递。同步数据包200包含数据包头202和数据包体204。数据包体204包含同步头206和在同步有效负载208中将要被同步的属性108。每个将要被同步的属性108可以包含属性头210和属性有效负载212。根据一些实施例,同步头206可以包含同步状态(例如重置、开始、继续以及结束),与在相同发布事件中发布的一组属性相关的编号以及数据包计数。属性头210可以包含属性标签110、最后修改属性的时间戳以及属性头210之后属性有效负载212的长度。根据一些实施例,属性头210还可以包含偏移量,其允许属性有效负载分离并且越过多个同步数据包200转移。
根据一些实施例,发布节点的数据库(诸如图1所示数据库104)将识别具有已设置过的标记114的属性108并且准备这些属性以便发布到订阅节点的数据库(诸如节点102-2的数据库106)。然后,发布节点的数据库可以将属性108布置到同步数据包200中,在同步数据包200中第一数据包将被指示为同步头206的“开始”,随后的数据包将被指示为同步头206的“继续”,以及最后的数据包将被指示为同步头206的“结束”。根据一些实施例,如果只布置了两个同步数据包,则它们将被分别指示为同步头206的“开始”和“结束”。如果只布置了一个同步数据包200,则其将被指示为同步头206的“结束”。一旦构成同步数据包200,它们然后就由发布节点的数据库传递并且由订阅节点的数据库接收。当订阅节点的数据库接收每个同步数据包200时,属性108将被拆包(unpack)并且被写进数据库。一旦订阅节点的数据库处理了具有“结束”标志(designation)的同步头206后,确认消息被发送到发布节点。然后,根据一些实施例,订阅节点将作为发布节点并且向其订阅节点102发布属性。
图3是根据一些实施例图示说明其中多个同步数据库实例正在节点102上执行的系统的示意图。如图3所示,每个节点102能够执行多个同步数据库实例。例如,如图3所示,节点102-1正执行(i)服务器实例的同步数据库104,其将属性发布给订阅节点102-2和关联数据库106,以及(ii)客户端实例的同步数据库实例302,其订阅节点304和其关联数据库306。结果,数据库302订阅了数据库306中的属性308,如订户列表316中指出的,并且当属性308被写入数据库306中或在数据库306中被另外地修改时,数据库302将接收这些属性308。同时,数据库104将被写入或另外修改的属性108发布给订阅节点102-2的数据库106和另外的耦合节点310-1到310-N,如果它们也订阅的话。每个节点102、304和310能够运行多个同步数据库实例从而使得其可以既作为订阅节点也可以作为发布节点,并且,根据一些实施例,在单个节点处执行的一个或多个数据库可以是双缓冲,如上文所述。
因此,单个节点可以成为发布节点和订阅节点,并且可以采用单个属性数据同步数据库或者采用多个属性数据同步数据库完成这些发布和订阅功能。单个节点可以将第一组属性发布给相应的第一组一个或多个订阅节点,并且可以将第二组属性发布给相应的第二组一个或多个订阅节点。相似地,单个节点可以从第一发布节点订阅第一组属性并且可以从第二发布节点订阅第二组属性。并且,以上论述的各种特征诸如心跳信号可以是各种同步数据库中一个或多个数据库的特征。此外,根据一些实施例可知,一组互相连接的节点可以进行属性的更新,不只在单个“下游”方向上而是在两个方向上都可以进行。
图4A和4B是根据一些实施例图示说明在发布节点和订阅节点之间同步属性的方法的流程图。特别地,图4A图示说明由节点102-1的数据库104进行的动作,并且图4B图示说明由节点102-2的数据库106进行的动作。为了说明的目的,图4A和图4B中所示的方法将参考图1-3进行描述。图4A和图4B中所示的方法可以被包含在机器人系统的存储器或与节点102关联的存储器中所含有的指令内,并且可以由机器人系统中包含的或与节点102关联的一个或多个处理器执行。
如图4A和图4B所示,具有服务器实例的同步数据库104的发布节点102-1周期地传递通告消息(401),并且具有在其上执行的客户端实例的同步数据库106的订阅节点102诸如节点102-2周期性地传递发现消息(402)。例如,在开始连接具有数据库104的发布节点102-1和具有数据库106的订阅节点102后或者当数据库104和106启动时,数据库104和客户端数据库102可以分别传递通告消息和发现消息。根据一些实施例,通告消息可以包含关于存储在数据库104中的属性108的信息。发现消息可以指示订阅节点102-2的数据库106要求的属性108。当节点102-1的数据库104从节点102-2接收发现消息(403)时,其将发现应答消息(404)传递回订阅节点。当订阅节点102-2从发布节点接收通告消息(405),或者从发布节点接收发现应答消息(406)时,订阅节点102-2的数据库106将开始服务器发现回调(407),通知订阅节点已经发现了具有数据库104的发布节点102-1。然后,订阅节点102-2将向发布节点102-1传递添加订户消息(408)。根据一些实施例,添加订户消息可以指示订阅节点102-2想要订阅哪种属性。当发布节点102-1从订阅节点102-2接收添加订户消息时,发布节点102-1的数据库104将节点102-2添加为订户(409)并且将其添加到订户列表116。将订阅节点102-2添加为订户还将启动订户添加回调(410),其通知发布节点102-1已经添加了订户。一旦将订阅节点102-2作为订户添加到发布节点102-2的数据库104,数据库104将为所有的订阅属性(411)设置标记114并且等待来自订阅节点102-2的同步-应答消息(412)。当数据库104等待来自订阅节点102-2的同步-应答消息时,对属性108的修改被聚集在数据库104中直到接收到同步-应答消息。因此,内部节流(built-in throttling)的信息被传递给订阅节点102-2的数据库106,从而数据库106仅接收其能够接受的信息量。
返回图4A和图4B,在订阅节点102-2传递同步-应答消息(413)之后,其将会等待由发布节点102-1传递的同步数据包(414)。一旦发布节点102-1从订阅数据库102-2接收到同步-应答消息后,发布节点102-1的数据库104将确定订阅节点102-2订阅的任何属性是否具有已设置的标记114(415)。如果发布节点102-1的数据库104刚刚已经将客户端数据库106作为订户添加到一个或多个属性,则所有属性108的标记114将被设置。否则,当修改属性108时,属性108的标记114将被设置,当从发布应用中接收到修改属性调用时,数据库104将会处理上述过程(416)。如果没有属性108具有已设置的标记114,数据库104将会进入空闲状态并且等待来自服务器应用的发布调用(417)。如果数据库104确定仍然有具有已设置标记114的属性108,和/或当数据库104接收到发布调用(418)时,发布节点102-1的数据库104发布包含具有已设置标记114的属性108的一个或多个同步数据包200(419),为所有发布属性108清除标记114(420),并且然后继续等待来自订阅节点102-2的同步-应答信号(412)。当订阅节点102-2的数据库106从发布节点102-1接收到一个或多个同步数据包200时(421),数据库106更新存储在其内(422)的属性108并且对每个接收到的同步数据包检查以确定所接收到的数据包是否是被指示为同步头206内“结束”的最后数据包(423)。如果订阅节点102-2的数据库106确定所接收的同步数据包200不是最后数据包,则其将继续等待来自发布节点102-1的数据库104的另外的同步数据包200(414)。如果所接收到的同步数据包200是最后数据包,则订阅节点102-2的数据库106将启动客户端更新回调(424),这将向发布节点102-1发送同步-应答消息(413)并且向任何下游订户(诸如节点102-3到102-N)重新发布更新后的属性108(425)。尽管图4A和图4B中未作显示,但是步骤421和步骤422之间的客户端数据库可以对接收到的同步数据包200进行错误检测。错误检测方法的示例通过参考图5在下文中描述。
图5是根据一些实施例图示说明错误检测方法的流程图。为了说明的目的,图5中所示的方法将通过参考图1-3而被描述。图5中所示的方法可以被包含在机器人系统的存储器或与节点102关联的存储器中含有的指令内,并且可以由包含在机器人系统的或与节点102关联的一个或多个处理器执行。
如图5所示,在从诸如节点102-1的发布节点接收到同步数据包200之后,诸如节点102-2的订阅节点将扫描同步数据包200的错误(502)。如果在同步数据包200中没有发现错误,则订阅节点102-2的数据库106通常将处理同步数据包200从而拆包属性并且将属性写进数据库106(504)。如果检测到错误,则订阅节点102-2将错误信号传递给发布节点102-1(506)。然后,订阅节点102-2将进入错误状态,其中具有带有“开始”、“继续”或“结束”指示的同步头206的任何进一步接收到的同步数据包200将被放弃(508)。一旦发布节点102-1接收到错误信号,数据库104将对订阅节点102-2订阅的所有属性设置标记114(510)。然后发布节点102-1向订阅节点102-2传递重置消息(512),重置消息可以是具有带有“重置”指示的同步头206的同步数据包200。根据一些实施例,重置消息可以不包含任何有效负载并且将用于重置由订阅节点102-2的数据库106接收到的属性的预期序列。然后,发布节点102-1向订阅节点102-2传递包含标记属性的同步数据包200(514),并且订阅节点102-2的数据库106将再次扫描同步数据包200的错误(502)。根据一些实施例,如果发现另一错误,则将发送另一错误信号并且将再次进行步骤506-514。进一步地根据一些实施例,发布节点102-1的数据库104可以包含计数器,其对尝试成功地传递同步数据包200给订阅节点102-1的次数进行计数,并且如果计数器达到预定数值则中止传递。然后数据库104可以记录已经发生的错误并且生成超时,该超时允许数据库104出于安全目的采取任何动作或者在超时回调时纠正错误。当发布节点102-1从指示了成功传递的订阅节点102-2接收到确认消息时,计数器可以被重置。
图1-5中所述的实施例可以用在机器人系统中以最小的系统通信量和延迟来同步机器人系统的节点。一些实施例也可以被用在机器人辅助外科手术系统以便同步机器人辅助外科手术系统中的节点,从而以最小的系统通信量和延迟同步节点,进而使系统可靠并且提供对外科医生动作的几乎实时的响应(例如,在响应中外科医生察觉到在命令系统部件移动或作用与实际移动或作用之间没有延迟)。系统100的使用的示例被描述在下文的图6-9中。
图6是正被用在机器人系统中的系统100的示例。如图6所示,机器人系统600包含第一单元控制器602,其被耦合到第二单元控制器604。单元控制器602和604中的每一个分别耦合到子系统管理器606和608,如图所示。子系统管理器606包含与多个机械操纵器612-1到612-N耦合的调度器610。子系统管理器608包含与多个机械操纵器616-1到616-N耦合的调度器614。根据一些实施例,每个单元控制器、调度器以及操纵器可以对当于关于图1和图3在上文所述的节点102-1到102-N。而且,每个操纵器可以对当于机器人系统600的不同机械零件(例如,连续运动链中的不同连杆、不同致动器、不同传感器、不同的系统子组等等)。
根据一些实施例,调度器610用作每个操纵器612-1到612-N和单元控制器602的订阅节点。即,调度器610执行每个操纵器612-1到612-N和单元控制器602的客户端实例同步数据库,从而调度器610订阅可从单元控制器602得到的某些属性并且订阅可从每个操纵器612-1到612-N得到的某些属性,所有的操纵器和单元控制器用作调度器610的发布节点。然后,调度器610可以从单元控制器602向操纵器612-1到612-N重新发布属性并且从操纵器612-1到612-N向单元控制器602重新发布属性。使用相似的功能,调度器610可以用作其他操纵器612-1到612-N间的发布者/订户,从而使得调度器610可以同步操纵器612-1到612-N间的属性。而且,操纵器612-1到612-N可以被物理去除和添加到系统600,或者“热交换(hot-swapped)”,因为当添加新的操纵器612时,其将能够执行客户端实例的同步数据库以作为订阅节点,并且其将立即订阅期望属性,然后期望属性将通过调度器610发布给添加的操纵器,进而给新操纵器提供期望属性的最新状态。关于单元控制器604和操纵器616-1到616-N,调度器614提供了相似的功能。
图7是根据一些实施例用在机器人系统中的系统100的另一示例。如图7所示,系统700包含与一个或多个同步数据库704耦合的管理器节点702。根据一些实施例,管理器节点702将管理器节点702的状态传递给一个或多个同步数据库704,同步数据库704将接收到的状态发布给用户界面(UI)节点706和视频子系统节点708。在这种布置中,管理器节点702执行服务器实例的同步数据库并且用作发布节点,对此,一个或多个同步数据库704执行客户端实例的同步数据库并且用作管理器节点702的订阅节点。然后,一个或多个同步数据库704将管理器节点702的属性和状态重新发布给UI节点706和视频子系统节点708。
根据一些实施例,UI节点706可以然后将管理器节点702的状态解释成由与UI节点706耦合的一个或多个控制器712进行的动作710。相似地,视频子系统节点708可以将管理器节点702的状态解释成用于显示视频的命令。如图7所示的,管理器节点702也被耦合到视频子系统节点708以便从视频子系统节点708接收用户界面事件714。根据一些实施例,用户界面事件714可以引起管理器节点702的状态的改变,并且根据上述实施例,改变后的状态将被标记并且然后被发布到一个或多个同步数据库704。使用同步数据库以传播系统700中的状态可以确保UI节点706和视频子系统708都将更新从而与管理器节点702所保持的状态一致。视频子系统节点708可以另外地驱动多个显示器,其中每个显示器的内容通过经由同步数据库传播的状态被确定。
图8是根据一些实施例用在机器人系统800中的系统100的示例。机器人系统800包含以树结构耦合在一起的多个节点。机器人系统800包含显示器控制器节点802,其被耦合到视频管线节点804和额外的控制器节点806。视频管线节点804被耦合到进一步的额外的控制器节点808-1到808-N。根据一些实施例,使用与系统100相似的系统,机器人系统800同步遍布节点的数据。例如,视频管线节点804执行客户端实例的同步数据库并且订阅进一步的额外的控制器节点808-1到808-N,其中控制器节点808-1到808-N中的每个节点执行服务器实例的同步数据库并且发布属性。而且,显示器控制器节点802执行客户端实例的同步数据库并且订阅视频管线节点804和额外的控制器节点806-1到806-N,其中每个执行服务器实例的同步数据库并且发布属性。结果,进一步的额外的控制器节点808的任何属性改变将被发布到视频处理器节点804,并且视频处理器节点804的任何属性改变(包含从进一步的额外的控制器节点808所接收到的那些属性改变)和额外的控制器节点806-1到806-N的任何属性改变将被发布给显示器控制器节点802。显示器控制器节点802依次执行“根”服务器数据库以便重新发布其已经从附属节点804、806-1到806-N(以及经由804从808-1到808-N)收集到的一个或多个重要的“全局可见”的状态。附属节点804以及806-1到806-N订阅该根数据库;节点808-1到808-N向节点804订阅根数据库内容。进一步地,向树结构新添加的任何节点将能够执行客户端实例的同步数据库,订阅期望的属性,以及被发布最近状态的期望属性,正如先前实施例所述的。
图9是根据一些实施例用在机器人辅助外科手术系统900中的系统100的示例。如图9所示的,系统900包含与核心系统904耦合的患者推车902,核心系统904又耦合到外科医生控制台906。根据一些实施例,系统900可以对当于加利福尼亚州森尼韦尔市直观外科手术公司出售的外科手术系统,从而使患者推车902包含从动操纵器受控外科器械(包含摄像器械),外科医生控制台906包含用于从动操纵器的主要控制装置,以及核心系统904包含处理部件的摄像机和视觉系统以及处理部件的其他系统数据。进一步地,患者推车902、核心系统904以及外科医生控制台906中的每个能够执行根据上文公开的实施例的一个或多个同步数据库,并且可以被称为系统900的节点。进一步地,系统900的每个节点可以含有额外的节点。例如,患者推车902可以包含一个或多个处理器,其中每个处理器能够执行客户端实例的同步数据库,并且这些一个或多个处理器可以被称为节点908,节点908订阅患者推车902内个体节点(诸如,安装接合点910和操纵器912)发布的属性,其中每个个体节点包含可执行服务器实例的同步数据库的相关处理器。执行客户端实例的同步数据库的节点908从安装接合点910和操纵器912接收发布的属性并且将这些属性存储在客户端实例的同步数据库中。然后,在节点908执行服务器实例的同步数据库且核心系统904执行客户端实例的同步数据库的情况下,这些属性可以由节点908发布到核心系统904。相似地,节点908可以执行客户端实例的同步数据库从而订阅从核心系统904上的服务器实例发布的属性。相似的布置可以在核心系统904和外科医生控制台906之间提供,以便可以在系统900中同步属性。
根据一些实施例,如果患者推车902与系统900的其余部分断开,则患者推车902能够在独立的环境中操作,在该独立的环境中执行客户端实例同步数据库的节点908从机器人操纵器安装臂接合点910并且从操纵器离合器912接收发布的属性,并且然后将这些属性存储在客户端实例同步数据库中。一旦与系统900重新连接,节点908将向核心系统904发布其存储的值,并且然后核心系统904将其存储的值发布给节点908从而整个系统900中的数据属性将被同步。对于外科医生控制台906或者执行属性数据库同步功能的任何其他系统部件的断开和随后的重新连接,系统的同步将类似地操作。
在可应用的情况下,本公开提供的各个实施例可以通过使用硬件、软件或硬件和软件的组合来实施。同样地,在可应用的情况下,本文提出的各个硬件部件和/或软件部件可以被组合成复合部件,该复合部件包括软件、硬件和/或没有离开本公开的精神范围的硬件软件两者。在可应用的情况下,本文提出的各个硬件部件和/或软件部件可以被分成子部件,该子部件包括软件、硬件或没有离开本公开范围的软件硬件两者。此外,在可应用的情况下,预期到软件部件可以被实施为硬件部件且反之亦然。
根据本公开,软件(诸如程序代码和/或数据)可以被存储在一个或多个计算机可读介质上。本文也预期到在此所识别的软件可以通过使用联网和/或其他方式的一个或多个通用或专用计算机和/或计算机系统来实施。在可应用的情况下,本文所述的各个步骤的次序可以被改变、组合成复合步骤和/或分成子步骤以提供本文所述的特征。
本文公开的实施例可以提供以最小的系统通信量和最少的冲突和中断同步系统中节点的系统和方法。本文公开的实施例也可以提供同步系统中节点的系统和方法,其允许节点容易连接、断开以及重新连接到该系统并且以最小的延迟同步。进一步地,本文公开的实施例也可以提供同步系统中节点的系统和方法,其允许一个节点处的显示器以最小延迟在另一节点处被复制。上文提供的示例仅是示例性的且不旨在进行限制。本技术领域内技术人员可以轻易地想出与所公开实施例一致的其他系统,所述其他系统意在落入本公开的范围内。同样地,本申请仅由权利要求书限制。
Claims (15)
1.一种机器人系统(100、600、700、800)的发布节点(102、310),所述发布节点(102、310)包括:
一个或多个处理器;以及
第一同步数据库(104),所述第一同步数据库(104)包括:
多个属性(108),每个所述属性(108)包括数据和识别所述属性(108)的标签(110);
与每个所述属性(108)相关联的标记(114);以及
订户列表(116);
其中所述发布节点(102、310)被配置为:
当所述属性(108)被写进所述第一同步数据库(104)或者当包含在所述属性(108)中的所述数据被修改时,设置与所述属性(108)相关联的对应标记(114);
聚集对所述属性(108)的修改,直到从订户节点接收到同步应答信号;以及
在接收到所述同步应答信号后,将所标记的属性(108)发布给所述订户节点;
其中所述标记包括用于所述订户列表中的每个订户节点的位。
2.根据权利要求1所述的发布节点(102、310),其中所述发布节点(102、310)进一步被配置为:
传递通告消息,所述通告消息通告存储在所述第一同步数据库(104)内的所述属性(108);以及
从所述订户节点接收发现消息。
3.根据权利要求2所述的发布节点(102、310),其中所述发布节点(102、310)进一步被配置为从所述订户节点接收订阅消息,所述订阅消息指示所述订户节点想要订阅的存储在所述第一同步数据库(104)内的所述属性(108)。
4.根据权利要求2所述的发布节点(102、310),其中所述发布节点(102、310)进一步被配置为接收所述发现消息并且传递应答消息,并且优选地,其中所述发布节点(102、310)进一步被配置为当所述发布节点(102、310)接收到订阅消息时设置与包括在所述订阅消息中的每个属性(108)相关联的所述标记(114)。
5.根据权利要求1所述的发布节点(102、310),其中所述发布节点(102、310)进一步被配置为将心跳信号传递给所述订户节点,并且优选地,其中所述发布节点(102、310)进一步被配置为,如果所述发布节点(102、310)确定所述订户节点不再耦合到所述发布节点(102、310),则使所述订户节点取消订阅所有已订阅属性(108)。
6.根据权利要求1所述的发布节点(102、310),其中所述发布节点(102、310)包括第三同步数据库(104),所述第三同步数据库能够订阅具有第四同步数据库(104)的另一节点的被发布的属性(108)。
7.一种机器人系统,其包括根据权利要求1至6中任一项所述的发布节点(102、310)以及订户节点,其中所述订户节点包括第二同步数据库(106)并且被配置为充当额外耦合的次级订户节点的次级发布节点(102、310),其中所述次级发布节点(102、310)被配置为向所述次级订户节点发布新的或被修改的属性(108)。
8.一种用于同步机器人系统(100、600、700、800)的节点上的数据的方法,其包括:
从发布节点(102、310)传递通告消息,所述通告消息通告存储于在所述发布节点(102、310)上执行的服务器实例同步数据库(104)内的多个属性(108);
由耦合到所述发布节点(102、310)的订阅节点接收所述通告消息;
由所述订阅节点传递订阅消息,所述订阅消息指示一个所述订阅节点想要订阅的存储于在所述发布节点(102、310)上执行的所述服务器实例同步数据库(104)内的所述多个属性(108)中的一个或多个;
由所述发布节点(102、310)将所述订阅节点添加到被维持于在所述发布节点(102、310)上执行的所述服务器实例同步数据库(104)内的订阅列表;
由所述发布节点(102、310)为所述一个或多个属性(108)中的每一个设置标记(114);
将同步应答信号从所述订阅节点传递到所述发布节点(102、310);
聚集对在所述发布节点(102、310)上执行的所述同步数据库(104)中的所述多个属性(108)的修改,直到接收到所述同步应答信号;
在接收到所述同步应答信号之后,由所述发布节点(102、310)将包含每个被标记的属性(108)的同步数据包(200)传递到所述订阅节点;以及
为每个传递的属性(108)清除所述标记(114)。
9.根据权利要求8所述的方法,进一步包括:
由所述订阅节点传递发现消息;
由所述发布节点(102、310)接收所述发现消息;以及
由所述发布节点(102、310)将应答消息传递给所述订阅节点。
10.根据权利要求8所述的方法,进一步包括:
当所述多个属性(108)的对应属性(108)被写进在所述发布节点(102、310)上执行的所述服务器实例同步数据库(104)时,当所述对应属性(108)内所包含的数据被修改时,或者当所述对应属性(108)被所述订阅节点订阅时,设置对应标记(114)。
11.根据权利要求8所述的方法,其中所述发布节点(102、310)和所述订阅节点每个都包括所述机器人系统(100、600、700、800)的部件或所述机器人系统(100、600、700、800)中的一个或多个处理器的至少一个。
12.根据权利要求8所述的方法,进一步包括:
由所述发布节点(102、310)传递心跳信号;以及
响应于接收到所述心跳信号,由所述订阅节点传递确认信号,并且优选地进一步包括:
如果没有接收到确认信号,则由所述发布节点(102、310)将所述订阅节点从所述订阅列表中去除。
13.根据权利要求8所述的方法,进一步包括:
由所述订阅节点检查所述同步数据包(200)的错误。
14.根据权利要求13所述的方法,其中检查所述同步数据包(200)的错误包括:
由所述订阅节点确定所述同步数据包(200)是否包含错误;
由所述订阅节点将错误信号传递给所述发布节点(102、310);
由所述发布节点(102、310)为每个被订阅的属性(108)设置对应标记(114);
由所述发布节点(102、310)将重置消息传递给所述订阅节点;以及
由所述发布节点(102、310)将包含每个所述被标记的属性的新的同步数据包(200)传递给所述订阅节点。
15.一种非临时计算机可读介质,其具有用于由机器人系统(100、600、700、800)的一个或多个处理器执行的指令,当所述指令被执行时,使所述一个或多个处理器进行根据权利要求8-14中任一项所述的用于同步机器人系统(100、600、700、800)的节点上的数据的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361765559P | 2013-02-15 | 2013-02-15 | |
US61/765,559 | 2013-02-15 | ||
CN201480008621.2A CN105009127B (zh) | 2013-02-15 | 2014-02-14 | 同步机器人系统节点的系统和方法 |
PCT/US2014/016615 WO2014127300A1 (en) | 2013-02-15 | 2014-02-14 | Systems and methods for synchronizing nodes of a robotic system |
US14/181,499 US9424303B2 (en) | 2013-02-15 | 2014-02-14 | Systems and methods for synchronizing nodes of a robotic system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480008621.2A Division CN105009127B (zh) | 2013-02-15 | 2014-02-14 | 同步机器人系统节点的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108280239A CN108280239A (zh) | 2018-07-13 |
CN108280239B true CN108280239B (zh) | 2023-01-17 |
Family
ID=51352036
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810174151.7A Active CN108280239B (zh) | 2013-02-15 | 2014-02-14 | 同步机器人系统节点的系统和方法 |
CN201480008621.2A Active CN105009127B (zh) | 2013-02-15 | 2014-02-14 | 同步机器人系统节点的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480008621.2A Active CN105009127B (zh) | 2013-02-15 | 2014-02-14 | 同步机器人系统节点的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (4) | US9424303B2 (zh) |
EP (2) | EP2956879B1 (zh) |
JP (4) | JP6301373B2 (zh) |
KR (2) | KR102264615B1 (zh) |
CN (2) | CN108280239B (zh) |
WO (1) | WO2014127300A1 (zh) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2956879B1 (en) | 2013-02-15 | 2020-01-22 | Intuitive Surgical Operations, Inc. | Systems and methods for synchronizing nodes of a robotic system |
EP3578119B1 (en) | 2013-12-11 | 2021-03-17 | Covidien LP | Wrist and jaw assemblies for robotic surgical systems |
JP6734259B2 (ja) | 2014-08-13 | 2020-08-05 | コヴィディエン リミテッド パートナーシップ | 機械的利益把握のロボット制御 |
WO2016133633A1 (en) | 2015-02-19 | 2016-08-25 | Covidien Lp | Repositioning method of input device for robotic surgical system |
AU2016229897B2 (en) | 2015-03-10 | 2020-07-16 | Covidien Lp | Measuring health of a connector member of a robotic surgical system |
CN107666866A (zh) | 2015-06-03 | 2018-02-06 | 柯惠Lp公司 | 偏置器械驱动单元 |
WO2016205266A1 (en) | 2015-06-16 | 2016-12-22 | Covidien Lp | Robotic surgical system torque transduction sensing |
EP3313315B1 (en) | 2015-06-23 | 2024-04-10 | Covidien LP | Robotic surgical assemblies |
WO2017007795A1 (en) | 2015-07-07 | 2017-01-12 | Intuitive Surgical Operations, Inc. | Control of multiple devices |
US10806454B2 (en) | 2015-09-25 | 2020-10-20 | Covidien Lp | Robotic surgical assemblies and instrument drive connectors thereof |
US10912449B2 (en) | 2015-10-23 | 2021-02-09 | Covidien Lp | Surgical system for detecting gradual changes in perfusion |
EP3376988B1 (en) | 2015-11-19 | 2023-08-23 | Covidien LP | Optical force sensor for robotic surgical system |
US11576562B2 (en) | 2016-04-07 | 2023-02-14 | Titan Medical Inc. | Camera positioning method and apparatus for capturing images during a medical procedure |
US11547508B2 (en) | 2016-05-26 | 2023-01-10 | Covidien Lp | Robotic surgical assemblies |
WO2017205576A1 (en) | 2016-05-26 | 2017-11-30 | Covidien Lp | Instrument drive units |
WO2017210500A1 (en) | 2016-06-03 | 2017-12-07 | Covidien Lp | Robotic surgical system with an embedded imager |
US11612446B2 (en) | 2016-06-03 | 2023-03-28 | Covidien Lp | Systems, methods, and computer-readable program products for controlling a robotically delivered manipulator |
CN113180835A (zh) | 2016-06-03 | 2021-07-30 | 柯惠Lp公司 | 用于机器人手术系统的控制臂 |
CN109195543A (zh) | 2016-06-03 | 2019-01-11 | 柯惠Lp公司 | 用于机器人手术系统的被动轴系统 |
US10993760B2 (en) | 2016-08-16 | 2021-05-04 | Ethicon, Llc | Modular surgical robotic tool |
US11246670B2 (en) | 2016-08-16 | 2022-02-15 | Cilag Gmbh International | Modular surgical robotic tool |
AU2018221456A1 (en) | 2017-02-15 | 2019-07-11 | Covidien Lp | System and apparatus for crush prevention for medical robot applications |
CN108632300B (zh) * | 2017-03-15 | 2021-12-10 | 阿里巴巴集团控股有限公司 | 数据同步系统、方法、服务器、客户端及电子设备 |
CN108881014B (zh) * | 2017-05-12 | 2021-10-01 | 北京猎户星空科技有限公司 | 一种数据发送系统及方法 |
EP3629979A4 (en) | 2017-05-24 | 2021-02-17 | Covidien LP | PRESENCE DETECTION FOR ELECTROSURGICAL TOOLS IN A ROBOTIC SYSTEM |
WO2018217430A1 (en) | 2017-05-25 | 2018-11-29 | Covidien Lp | Robotic surgical systems and drapes for covering components of robotic surgical systems |
WO2018217431A1 (en) | 2017-05-25 | 2018-11-29 | Covidien Lp | Robotic surgical system with automated guidance |
CN110177518B (zh) | 2017-05-25 | 2023-01-31 | 柯惠Lp公司 | 用于在图像捕获装置的视场内检测物体的系统和方法 |
US20200042336A1 (en) * | 2017-07-19 | 2020-02-06 | Siemens Industry Software Ltd. | Method and system for simulating a robotic program of an industrial robot |
WO2019050829A1 (en) | 2017-09-05 | 2019-03-14 | Covidien Lp | COLLISION MANAGEMENT ALGORITHMS FOR ROBOTIC SURGICAL SYSTEMS |
WO2019050878A2 (en) | 2017-09-06 | 2019-03-14 | Covidien Lp | SCALE OF LIMITS OF SURGICAL ROBOTS |
WO2019136062A1 (en) | 2018-01-04 | 2019-07-11 | Covidien Lp | Systems and assemblies for mounting a surgical accessory to robotic surgical systems, and providing access therethrough |
US11189379B2 (en) | 2018-03-06 | 2021-11-30 | Digital Surgery Limited | Methods and systems for using multiple data structures to process surgical data |
CN111787880A (zh) | 2018-03-08 | 2020-10-16 | 柯惠Lp公司 | 手术机器人系统 |
WO2019204012A1 (en) | 2018-04-20 | 2019-10-24 | Covidien Lp | Compensation for observer movement in robotic surgical systems having stereoscopic displays |
EP3817683A4 (en) | 2018-07-03 | 2022-04-20 | Covidien LP | SYSTEMS, METHODS AND COMPUTER READABLE MATERIALS FOR DETECTING IMAGE DEGRADATION DURING SURGICAL PROCEDURES |
CN109165261A (zh) * | 2018-10-10 | 2019-01-08 | 深圳市欧瑞博科技有限公司 | 数据同步方法、装置、服务器及计算机存储介质 |
US11109746B2 (en) | 2018-10-10 | 2021-09-07 | Titan Medical Inc. | Instrument insertion system, method, and apparatus for performing medical procedures |
US11868494B1 (en) * | 2018-11-26 | 2024-01-09 | Amazon Technologies, Inc. | Synchronization of access management tags between databases |
US11586106B2 (en) | 2018-12-28 | 2023-02-21 | Titan Medical Inc. | Imaging apparatus having configurable stereoscopic perspective |
US11717355B2 (en) | 2019-01-29 | 2023-08-08 | Covidien Lp | Drive mechanisms for surgical instruments such as for use in robotic surgical systems |
US11576733B2 (en) | 2019-02-06 | 2023-02-14 | Covidien Lp | Robotic surgical assemblies including electrosurgical instruments having articulatable wrist assemblies |
US11484372B2 (en) | 2019-02-15 | 2022-11-01 | Covidien Lp | Articulation mechanisms for surgical instruments such as for use in robotic surgical systems |
US11200255B2 (en) * | 2019-08-22 | 2021-12-14 | Adp, Llc | Robust data synchronization solution between databases |
USD963851S1 (en) | 2020-07-10 | 2022-09-13 | Covidien Lp | Port apparatus |
CN112256538A (zh) * | 2020-09-01 | 2021-01-22 | 北京航天控制仪器研究所 | 一种无人船设备信息采集处理及控制方法 |
US11570266B2 (en) | 2021-02-10 | 2023-01-31 | Juniper Networks, Inc. | Real-time detection of completion of sensor wrap completion in GNMI telemetry of a network device |
US11948226B2 (en) | 2021-05-28 | 2024-04-02 | Covidien Lp | Systems and methods for clinical workspace simulation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421570B1 (en) * | 1997-08-22 | 2002-07-16 | Honeywell Inc. | Systems and methods for accessing data using a cyclic publish/subscribe scheme with report by exception |
US6711578B1 (en) * | 2001-01-17 | 2004-03-23 | Palmsource, Inc. | Rule-based, n-way, synchronization of multiple copies of a database |
CN102571485A (zh) * | 2011-12-14 | 2012-07-11 | 上海交通大学 | 一种在微博平台上识别机器人用户的方法 |
CN102830645A (zh) * | 2012-09-26 | 2012-12-19 | 苏州工业园区职业技术学院 | 单轴全自动高速点胶机器人伺服控制系统 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6272386B1 (en) | 1998-03-27 | 2001-08-07 | Honeywell International Inc | Systems and methods for minimizing peer-to-peer control disruption during fail-over in a system of redundant controllers |
JP3175692B2 (ja) | 1998-04-28 | 2001-06-11 | 日本電気株式会社 | コンピュータと携帯端末間のデータ連携システム及びそのデータ連携方法 |
JP4478236B2 (ja) * | 1998-12-14 | 2010-06-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 資源管理システムおよびその方法 |
US7113963B1 (en) * | 2000-11-10 | 2006-09-26 | Palmsource, Inc. | Optimized database technique to enable faster data synchronization |
JP3577028B2 (ja) * | 2001-11-07 | 2004-10-13 | 川崎重工業株式会社 | ロボットの協調制御システム |
US7180253B2 (en) * | 2003-09-30 | 2007-02-20 | Rockwell Automation Technologies, Inc. | Method and system for generating multi-dimensional motion profiles |
US7346633B2 (en) | 2004-06-10 | 2008-03-18 | Sybase, Inc. | System providing methodology for replication subscription resolution |
US7706895B2 (en) | 2005-02-25 | 2010-04-27 | Rockwell Automation Technologies, Inc. | Reliable messaging instruction |
US20070198629A1 (en) | 2006-02-21 | 2007-08-23 | Nec Laboratories America, Inc. | Scalable Content Based Event Multicast Platform |
EP1855194B1 (en) | 2006-05-11 | 2018-07-04 | ABB Schweiz AG | Synchronization of a graphical program and a robot program |
CN1937536A (zh) * | 2006-10-31 | 2007-03-28 | 华为技术有限公司 | 网管拓扑数据同步刷新的方法及系统 |
CN100449548C (zh) * | 2007-04-11 | 2009-01-07 | 华为技术有限公司 | 数据库同步方法及系统 |
JP5298626B2 (ja) * | 2007-10-17 | 2013-09-25 | ソニー株式会社 | ネットワークシステム、ネットワーク家電機器、コンテンツ/メタデータの同期処理方法、及びコンピュータ・プログラム |
EP2266077A1 (en) | 2008-04-02 | 2010-12-29 | iRobot Corporation | Robotics systems |
JP4581037B2 (ja) | 2008-07-10 | 2010-11-17 | 国立大学法人名古屋大学 | 中継装置、通信システム及び通信方法 |
JP4621837B2 (ja) | 2008-07-10 | 2011-01-26 | 国立大学法人名古屋大学 | 中継装置、通信システム及び通信方法 |
KR101248802B1 (ko) * | 2008-10-31 | 2013-03-29 | 한국전자통신연구원 | 지능형 로봇 시스템에서의 로봇 소프트웨어 컴포넌트 관리 장치 및 방법 |
US8370443B2 (en) | 2009-09-08 | 2013-02-05 | Microsoft Corporation | Reliable messaging using publish subscribe mechanism |
US8706296B2 (en) | 2010-02-16 | 2014-04-22 | Irobot Corporation | Mobile robot internal communication system |
US20120254108A1 (en) | 2011-03-30 | 2012-10-04 | Microsoft Corporation | Synchronization Of Data For A Robotic Device |
US9906450B2 (en) * | 2012-07-16 | 2018-02-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for handling error indications |
US8635373B1 (en) * | 2012-09-22 | 2014-01-21 | Nest Labs, Inc. | Subscription-Notification mechanisms for synchronization of distributed states |
EP2956879B1 (en) | 2013-02-15 | 2020-01-22 | Intuitive Surgical Operations, Inc. | Systems and methods for synchronizing nodes of a robotic system |
-
2014
- 2014-02-14 EP EP14751546.4A patent/EP2956879B1/en active Active
- 2014-02-14 KR KR1020217003451A patent/KR102264615B1/ko active IP Right Grant
- 2014-02-14 JP JP2015558173A patent/JP6301373B2/ja active Active
- 2014-02-14 EP EP20152283.6A patent/EP3670112A1/en active Pending
- 2014-02-14 WO PCT/US2014/016615 patent/WO2014127300A1/en active Application Filing
- 2014-02-14 US US14/181,499 patent/US9424303B2/en active Active
- 2014-02-14 KR KR1020157021386A patent/KR102214868B1/ko active IP Right Grant
- 2014-02-14 CN CN201810174151.7A patent/CN108280239B/zh active Active
- 2014-02-14 CN CN201480008621.2A patent/CN105009127B/zh active Active
-
2016
- 2016-08-19 US US15/242,408 patent/US9830371B2/en active Active
-
2017
- 2017-11-15 US US15/814,214 patent/US10592529B2/en active Active
-
2018
- 2018-02-28 JP JP2018034965A patent/JP6510099B2/ja active Active
-
2019
- 2019-04-03 JP JP2019071247A patent/JP6720377B2/ja active Active
-
2020
- 2020-02-19 US US16/795,162 patent/US11687556B2/en active Active
- 2020-06-17 JP JP2020104150A patent/JP7008103B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421570B1 (en) * | 1997-08-22 | 2002-07-16 | Honeywell Inc. | Systems and methods for accessing data using a cyclic publish/subscribe scheme with report by exception |
US6711578B1 (en) * | 2001-01-17 | 2004-03-23 | Palmsource, Inc. | Rule-based, n-way, synchronization of multiple copies of a database |
CN102571485A (zh) * | 2011-12-14 | 2012-07-11 | 上海交通大学 | 一种在微博平台上识别机器人用户的方法 |
CN102830645A (zh) * | 2012-09-26 | 2012-12-19 | 苏州工业园区职业技术学院 | 单轴全自动高速点胶机器人伺服控制系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2956879A1 (en) | 2015-12-23 |
JP6720377B2 (ja) | 2020-07-08 |
KR20150118130A (ko) | 2015-10-21 |
JP2019145137A (ja) | 2019-08-29 |
EP2956879B1 (en) | 2020-01-22 |
US10592529B2 (en) | 2020-03-17 |
JP7008103B2 (ja) | 2022-01-25 |
KR20210016088A (ko) | 2021-02-10 |
US20180075120A1 (en) | 2018-03-15 |
CN105009127B (zh) | 2018-04-10 |
US9424303B2 (en) | 2016-08-23 |
US20230289366A1 (en) | 2023-09-14 |
JP6510099B2 (ja) | 2019-05-08 |
JP6301373B2 (ja) | 2018-03-28 |
CN108280239A (zh) | 2018-07-13 |
US20200192911A1 (en) | 2020-06-18 |
KR102214868B1 (ko) | 2021-02-10 |
JP2020167710A (ja) | 2020-10-08 |
EP2956879A4 (en) | 2016-10-26 |
US20160357838A1 (en) | 2016-12-08 |
CN105009127A (zh) | 2015-10-28 |
US9830371B2 (en) | 2017-11-28 |
KR102264615B1 (ko) | 2021-06-14 |
US11687556B2 (en) | 2023-06-27 |
US20140236894A1 (en) | 2014-08-21 |
EP3670112A1 (en) | 2020-06-24 |
WO2014127300A1 (en) | 2014-08-21 |
JP2016513414A (ja) | 2016-05-12 |
JP2018137758A (ja) | 2018-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108280239B (zh) | 同步机器人系统节点的系统和方法 | |
US8713098B1 (en) | Method and system for migrating object update messages through synchronous data propagation | |
US9477738B2 (en) | Initialization protocol for a peer-to-peer replication environment | |
US8954504B2 (en) | Managing a message subscription in a publish/subscribe messaging system | |
US20140089619A1 (en) | Object replication framework for a distributed computing environment | |
EP1894096A1 (en) | Apparatus, system, and method for facilitating communication between an enterprise information system and a client | |
EP3602974B1 (en) | Apparatus and method for maintaining message databases in eventual consistency distributed database systems | |
US20150112929A1 (en) | Parallel Truncation Point Management for Log Based Replication | |
JP2010086137A (ja) | メッセージキューイング方法及びプログラム | |
US8089987B2 (en) | Synchronizing in-memory caches while being updated by a high rate data stream | |
US11971905B2 (en) | Systems and methods for synchronizing nodes of a robotic system | |
KR101696911B1 (ko) | 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법 | |
JP2011141695A (ja) | メッセージ処理装置およびメッセージ処理方法 | |
CN114924861A (zh) | 一种分布式任务处理方法及系统 | |
JP2016095824A (ja) | イベントドリブンシステム、情報処理装置、イベントドリブンプログラムおよびイベントドリブン方法 | |
US9380114B1 (en) | Techniques for peer messaging across multiple storage processors of a data storage array | |
CN116450419A (zh) | 主从节点数据同步的方法、系统、介质及电子设备 | |
EP3329379A1 (en) | Generating a timeout signal based on a clock counter associated with a data request |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |