同步機器人系統(tǒng)節(jié)點的系統(tǒng)和方法
【專利說明】
[0001] 相關(guān)申請的交叉參考
[0002] 本申請要求于2013年2月15日提交的美國臨時專利申請第61/765559號和于 2014年2月14日提交的美國非臨時專利申請第14/181499號的優(yōu)先權(quán)。這些申請文件的 公開內(nèi)容在此通過參考它們的全部內(nèi)容而被并入。
技術(shù)領(lǐng)域
[0003] 本公開涉及同步機器人系統(tǒng)節(jié)點的系統(tǒng)和方法。特別地,本公開涉及同步可以在 機器人系統(tǒng)的每個節(jié)點處執(zhí)行的數(shù)據(jù)庫,同步數(shù)據(jù)庫允許訂閱和發(fā)布機器人系統(tǒng)節(jié)點之間 的更新屬性。
【背景技術(shù)】
[0004] 某些應(yīng)用程序為了通信需具有高帶寬要求和嚴格的同步、延時以及可靠性要求。 例如,機器人輔助外科手術(shù)要求低延時來實時地傳遞控制和反饋信號。這種應(yīng)用的同步和 延時要求是嚴格的,因為理想情況下在外科醫(yī)生控制主輸入器的運動和從動于主輸入器的 機器人運動之間應(yīng)該有盡可能少的延遲。
[0005] 包含機器人輔助外科手術(shù)系統(tǒng)的復雜系統(tǒng)包含許多部件,在此大體稱為"節(jié)點", 其在系統(tǒng)內(nèi)一起工作并且因此需要能夠保持同步。對于這些耦合的節(jié)點中的每個節(jié)點,同 步通常通過第一節(jié)點發(fā)送數(shù)據(jù)請求給第二節(jié)點,而第二節(jié)點將通過向第一節(jié)點提供所請求 的數(shù)據(jù)對該請求作出響應(yīng)來進行。在某些情況下,第一節(jié)點將會檢查第二節(jié)點和第三節(jié)點 的存在,并且如果發(fā)現(xiàn)第二和第三節(jié)點是存在的,那么第一節(jié)點將數(shù)據(jù)推送給第二和第三 節(jié)點。如果第二或第三節(jié)點與第一節(jié)點斷開并且然后重新連接,則第一節(jié)點可能不會被通 知第二或第三節(jié)點斷開,并且結(jié)果是重新連接的節(jié)點可能會缺失第一節(jié)點在斷開期間發(fā)送 的數(shù)據(jù)。而且,當新節(jié)點被耦合到第一節(jié)點時,第一節(jié)點可能不會檢查到該新節(jié)點的存在, 并且因此不會提供任何數(shù)據(jù)給新節(jié)點,從而使得新節(jié)點處的數(shù)據(jù)沒有與第一節(jié)點的數(shù)據(jù)同 步。最終,需要一種系統(tǒng),其持續(xù)地檢查節(jié)點的存在并且然后發(fā)送數(shù)據(jù)給每個節(jié)點以保持同 步,這會產(chǎn)生不必要的系統(tǒng)通信量,進而可以減慢系統(tǒng)或溢出消息序列。
[0006] 所需要的是某種系統(tǒng)和方法,其可以以最低系統(tǒng)通信量自動同步系統(tǒng)內(nèi)的節(jié)點, 并且可以快速同步連到系統(tǒng)的新節(jié)點。
【發(fā)明內(nèi)容】
[0007] 根據(jù)一些實施例,本文提供了機器人系統(tǒng)。機器人系統(tǒng)包含發(fā)布節(jié)點,其包含至少 一個第一同步數(shù)據(jù)庫,第一同步數(shù)據(jù)庫包含多個屬性、與每個屬性相關(guān)的標記以及訂戶列 表,其中每個屬性包含識別屬性的標簽和數(shù)據(jù)。該系統(tǒng)還包含訂戶節(jié)點,其包含至少一個第 二同步數(shù)據(jù)庫。發(fā)布節(jié)點被配置為當屬性被寫進至少一個同步數(shù)據(jù)庫時或者當屬性內(nèi)包含 的數(shù)據(jù)被修改時設(shè)置與屬性關(guān)聯(lián)的標記,并且將被標記的屬性發(fā)布給訂戶節(jié)點。
[0008] 根據(jù)一些實施例,本文也提供了一種用于同步機器人系統(tǒng)的節(jié)點上的數(shù)據(jù)的方 法。該方法包含從發(fā)布節(jié)點傳遞通告消息,該通告消息通告被存儲于在發(fā)布節(jié)點上執(zhí)行的 服務(wù)器實例同步數(shù)據(jù)庫內(nèi)的屬性,由耦合到發(fā)布節(jié)點的訂閱節(jié)點接收該通告消息,并且由 訂閱節(jié)點傳遞訂閱消息,該訂閱消息指示了至少一個訂閱節(jié)點想要訂閱的被存儲于在發(fā)布 節(jié)點上執(zhí)行的服務(wù)器實例同步數(shù)據(jù)庫內(nèi)的屬性。該方法還包含通過發(fā)布節(jié)點將訂閱節(jié)點添 加到維持于在發(fā)布節(jié)點上執(zhí)行的服務(wù)器實例同步數(shù)據(jù)庫內(nèi)的訂閱列表,通過發(fā)布節(jié)點設(shè)置 每個訂閱屬性的標記,通過發(fā)布節(jié)點將包含每個標記屬性的同步數(shù)據(jù)包傳遞到訂閱節(jié)點, 以及為每個傳遞的屬性清除標記。
[0009] 進一步根據(jù)一些實施例,本文還提供了一種非臨時計算機可讀介質(zhì),其具有由機 器人系統(tǒng)的一個或多個處理器執(zhí)行的指令,當指令被執(zhí)行時,使一個或多個處理器進行同 步機器人系統(tǒng)節(jié)點的方法。該方法包含從發(fā)布節(jié)點傳遞通告消息,該通告消息通告存儲于 在發(fā)布節(jié)點上執(zhí)行的服務(wù)器實例同步數(shù)據(jù)庫內(nèi)的屬性,由耦合到發(fā)布節(jié)點上的訂閱節(jié)點接 收通告消息,并且將來自訂閱節(jié)點的訂閱消息傳遞到發(fā)布節(jié)點,該訂閱消息指示了至少一 個訂閱節(jié)點想要訂閱的被存儲于在發(fā)布節(jié)點上執(zhí)行的服務(wù)器實例同步數(shù)據(jù)庫內(nèi)的屬性。該 方法還包含將訂閱節(jié)點添加到在發(fā)布節(jié)點上執(zhí)行的服務(wù)器實例同步數(shù)據(jù)庫內(nèi)維持的訂閱 列表中,為在發(fā)布節(jié)點上執(zhí)行的服務(wù)器實例同步數(shù)據(jù)庫內(nèi)的每個訂閱屬性設(shè)置標記,將來 自發(fā)布節(jié)點的同步數(shù)據(jù)包傳遞到訂閱節(jié)點,同步數(shù)據(jù)包包含每個標記屬性,以及為在發(fā)布 節(jié)點上執(zhí)行的服務(wù)器實例同步數(shù)據(jù)庫內(nèi)的每個傳遞屬性清除標記。
[0010] 這些和其他的實施例通過參考之后的附圖將在下文更詳細地被描述。
【附圖說明】
[0011] 圖1是根據(jù)一些實施例圖示說明通過使用同步數(shù)據(jù)庫的實例同步系統(tǒng)內(nèi)節(jié)點的 系統(tǒng)的不意圖。
[0012] 圖2是根據(jù)一些實施例圖示說明同步數(shù)據(jù)包的示意圖。
[0013] 圖3是根據(jù)一些實施例圖示說明其中多個同步數(shù)據(jù)庫實例正在節(jié)點上執(zhí)行的系 統(tǒng)的示意圖。
[0014] 圖4A和4B是根據(jù)一些實施例圖示說明同步服務(wù)器數(shù)據(jù)庫和客戶端數(shù)據(jù)庫之間屬 性的方法的流程圖。
[0015] 圖5是根據(jù)一些實施例圖示說明錯誤檢測方法的流程圖。
[0016] 圖6是根據(jù)一些實施例的用在機器人系統(tǒng)內(nèi)的圖1中系統(tǒng)的示例。
[0017] 圖7是根據(jù)一些實施例的用在機器人系統(tǒng)內(nèi)的圖1中系統(tǒng)的另一示例。
[0018] 圖8是根據(jù)一些實施例的用在機器人系統(tǒng)內(nèi)的圖1中系統(tǒng)的另一示例。
[0019] 圖9是根據(jù)一些實施例的用在機器人輔助外科手術(shù)系統(tǒng)內(nèi)的圖1中系統(tǒng)的示例。
[0020] 在附圖中,具有相同標示的元件具有相同或相似的功能。
【具體實施方式】
[0021] 在之后的描述中,具體的細節(jié)被提出以描述某些實施例。但是,即使沒有一些或全 部這些具體細節(jié),也可以實踐所公開的實施例,這對于本領(lǐng)域內(nèi)技術(shù)人員將會是明顯的。所 提出的具體實施例意在說明性的,而非限制性。盡管本文沒有具體描述,但是本領(lǐng)域內(nèi)技術(shù) 人員可以意識到其他的材料也在本公開的范圍和精神內(nèi)。各種機械、組成、結(jié)構(gòu)、電氣以及 操作上的改變可以被做出,而不偏離本說明書和權(quán)利要求書的精神和范圍。在某些情況下, 熟知的電路、結(jié)構(gòu)和技術(shù)沒有詳細地顯示以便不模糊本發(fā)明。此外,單數(shù)形式"一"、"一個" 以及"該/所述"意在還包含復數(shù)形式,除非文中另外做出指示。此外,術(shù)語"包括"、"由… 組成"、"包含"等表明存在所述特征、步驟、操作、元件和/或部件但是并不排除存在或添加 一個或多個其他的特征、步驟、操作、元件、部件和/或分組。被描述為耦合的部件可以是電 氣地或機械地直接耦合,或者它們可以經(jīng)由一個或多個中間部件間接地耦合。
[0022] 圖1是根據(jù)一些實施例圖示說明通過使用同步數(shù)據(jù)庫的實例同步系統(tǒng)中節(jié)點的 系統(tǒng)100的示意圖。如圖1所示,系統(tǒng)100包含多個互相連接的節(jié)點102-1到102-N(統(tǒng)一 稱為"節(jié)點102")。根據(jù)一些實施例,每個節(jié)點102可以是器件、機器人系統(tǒng)的部件、一個或 多個處理器、由一個或多個處理器執(zhí)行的各任務(wù)。節(jié)點102可以包含具有一個或多個處理 器并且能夠讀取存儲在非臨時機器可讀介質(zhì)上以便于由一個或多個處理器執(zhí)行的指令的 硬件和/或軟件的任何合適的組合。這種指令可以包含用于創(chuàng)造一個或多個同步數(shù)據(jù)庫實 例的指令,正如本文所述的。
[0023] 返回圖1,節(jié)點102包含與第二節(jié)點102-2耦合的第一節(jié)點102-1,第二節(jié)點102-2 進而耦合到多個節(jié)點102-3到102-N。盡管圖1中未顯示,但是節(jié)點102-1可以用與節(jié)點 102-2連接的方式類似的方式直接耦合到額外的節(jié)點。根據(jù)一些實施例,存儲器(未顯示) 與每個節(jié)點102關(guān)聯(lián)。進一步地,一個或多個處理器也可以與每個節(jié)點102關(guān)聯(lián)。用于創(chuàng) 建同步數(shù)據(jù)庫實例的指令可以被存儲在存儲器中,并且一個或多個處理器可以執(zhí)行這些指 令以便在每個節(jié)點102處創(chuàng)建一個或多個同步數(shù)據(jù)庫實例。根據(jù)一些實施例,同步數(shù)據(jù)庫 是軟件容器對象,其可以(i)存儲數(shù)據(jù)屬性,諸如狀態(tài)或事件,(ii)支持在稱為發(fā)布節(jié)點的 一個節(jié)點上的數(shù)據(jù)變化的聚集(aggregation),以及(iii)支持向一個或多個訂戶節(jié)點發(fā) 布變化的數(shù)據(jù)。同步數(shù)據(jù)庫可以通過執(zhí)行一個或多個同步應(yīng)用程序來完成該過程,所述同 步應(yīng)用程序在每個節(jié)點處被執(zhí)行以完成訂閱發(fā)布節(jié)點并且接收數(shù)據(jù)變化或者向一個或多 個訂閱節(jié)點發(fā)布數(shù)據(jù)變化所必需的功能。對于發(fā)布節(jié)點,同步應(yīng)用程序可以被稱為發(fā)布應(yīng) 用程序,并且對于訂閱節(jié)點,其可以被稱為訂閱應(yīng)用程序。
[0024] 如圖1中所示的,節(jié)點102-1正在執(zhí)行服務(wù)器實例的同步數(shù)據(jù)庫104且用作發(fā)布 節(jié)點,并且節(jié)點102-2正在執(zhí)行客戶端實例的同步數(shù)據(jù)庫106且用作訂閱節(jié)點。對于服務(wù) 器實例和客戶端實例兩者,同步數(shù)據(jù)庫都可以存儲一組被稱為屬性108的數(shù)據(jù)向量,訂閱 節(jié)點列表116和可以用于管理同步的另外的狀態(tài)(未顯示)。屬性108可以涉及包含了系 統(tǒng)100中狀態(tài)或事件的數(shù)據(jù),并且可以進一步包含計數(shù)器和時間戳。屬性108也可以涉及 作為用于描述系統(tǒng)100的行為的行為元素的數(shù)據(jù)。根據(jù)一些實施例,屬性108可以涉及用 戶界面(UI)狀態(tài)或事件,其可以是發(fā)生在一個節(jié)點上的狀態(tài)或事件的可視表示,該節(jié)點可 以被發(fā)布給額外的節(jié)點以更新額外節(jié)點的事件和/或在額外的節(jié)點處復制這些事件或狀 態(tài)的可視表示。屬性108也可以被存儲在一個或多個數(shù)據(jù)庫中,諸如與節(jié)點102-1關(guān)聯(lián)的 數(shù)據(jù)庫104和與節(jié)點102-2關(guān)聯(lián)的數(shù)據(jù)庫106,如圖1中所示。
[0025] 如圖1所示,屬性108包含標簽110、數(shù)據(jù)112以及能夠被設(shè)置或清除的相關(guān)標記 114。盡管與節(jié)點102-1關(guān)聯(lián)的數(shù)據(jù)庫104和與節(jié)點102-2關(guān)聯(lián)的數(shù)據(jù)庫106被顯示為只 具有3或4個屬