專利名稱:遙控微創(chuàng)手術器械的主導件對齊性的漸進的制作方法
技術領域:
本發(fā)明的方面涉及遙控微創(chuàng)手術系統,并且尤其涉及控制遙控微創(chuàng)手術系統中的主導和從屬手術器械尖端的取向。
背景技術:
由位于加利福尼亞州 Sunnyvale Whtuitive surgical. Inc.制造的 da Vinci 手術系統,是微倉ij、遙控的機器人系統,其為病患提供很多益處,例如減小身體外傷、更快恢復及更短的住院時間。da Vinci 手術系統的一個部件是外科醫(yī)生用于操縱手術器械(稱為從屬手術器械)的主導工具操縱器。主導工具操縱器的主導把手經特別設計用于人機(ergonomic)和直觀雙重控制從屬手術器械。外科醫(yī)生使用他/她的食指和大拇指以特殊方式握住主導把手,以便瞄準和抓取動作包含直觀指向和捏取動作。為了能夠直觀控制從屬手術器械,在立體觀察儀的視見參考系(view reference frame)中主導把手必須在取向上與從屬手術器械尖端對齊。從屬手術器械尖端的動作通過遙控操作來跟隨主導件的動作并且兩者在動作方向和絕對取向上均是一致的。若未實現取向對齊,則從屬手術器械尖端會仍然沿理想方向旋轉,但是從屬手術器械尖端既不指向外科醫(yī)生指出的相同的絕對方向,也不沿著外科醫(yī)生指出的相同軸線滾動。主導工具操縱器使用在萬向節(jié)組件(gimbal assembly)中的馬達,來在觀察坐標系中主動對齊主導把手的取向軸線和相關從屬手術器械尖端。在外科醫(yī)生進行遙控手術之前自動進行該對齊。此外,在攝像機或器械外部軸線(instrument outer axes)的操縱期間系統自動保留該對齊。具體地,當開始da Vinci 手術系統的跟隨操作時,在da Vinci 手術系統恰當地進行跟隨操作之前,主導把手必須與從屬手術器械尖端的取向對齊。只要系統從已危及了取向對齊的模式轉變(在工具改變、攝像機嚙合(clutch)、從屬件嚙合、在第四臂系統中的臂交換等之后),則本系統就執(zhí)行主導件對齊。主導件對齊計算在不改變主導把手位置的情況下導致主導把手的取向匹配從屬手術器械尖端取向的一組主導腕部接頭角。然后使用馬達來命令主導腕部接頭匹配計算的角。da Vinci 手術系統在允許用戶進行跟隨操作之前檢查主導件取向和從屬件取向的匹配。若取向不匹配(可能因為用戶過驅了主導件且不允許主導件實現對齊),則顯示警告消息且再次嘗試主導件對齊。這經常減緩外科醫(yī)生進入跟隨操作并且需要在萬向節(jié)組件中帶有馬達的機動主導工具操作器來將主導腕部接頭移動至適當取向。
發(fā)明內容
微創(chuàng)手術系統包括具有從屬手術器械尖端的從屬手術器械和主導把手。主導把手通過遙控伺服控制系統耦合至從屬手術器械尖端。在一方面,隨著移動主導把手,遙控伺服控制系統內的漸進系統無縫地且連續(xù)地改進主導把手在公共參考坐標系中相對于從屬手術器械尖端的對齊性/定位(alignment)。漸進系統導致在主導把手和從屬手術器械尖端之間的直觀對齊。同樣地,漸進系統提供了在外科醫(yī)生正在進行的事情即操作主導把手和外科醫(yī)生在外科醫(yī)生的控制臺上所看到的事物即顯示器中從屬手術器械尖端的移動之間的直接關聯。這可以在不存在與進入跟隨操作之前的常規(guī)機動對齊有關的延遲的情況下被實現。同樣地,在一方面,漸進系統消除了對機動主導把手的需求且允許使用低花費并容易獲得的部件作為主導把手。在一方面,在公共坐標參考系中從屬手術器械尖端和主導把手具有Cartesian位置分量和取向分量。漸進系統能夠針對所有分量、分量子集(例如取向分量或Cartesian 分量)或對于特定分量集合以分量形式實現對齊。在遙控伺服控制系統內的漸進系統(i)耦合到主導把手從而接收在公共坐標系內主導把手的對齊性,以及(ii)耦合到從屬手術器械。隨著主導把手運動,漸進系統通過連續(xù)減小在公共坐標系中的對齊誤差來控制從屬件的動作。這可以在不存在從屬手術器械尖端的自主動作且不存在主導把手的自主動作的情況下被完成。在一方面,在公共坐標系中的對齊誤差是取向誤差。取向誤差包含角。在一方面, 這個角是角θ e,被定義為θ e = C0s-1EO. 5*(Rm1+Ra22+Ra33-1)],其中,Rm1、R,22、Rm3是相對旋轉矩陣1^的對角元素。在另一方面,該角度是在一組Euler角中的一個Euler角。在另一方面,漸進系統包括引入控制循環(huán)誤差控制器,其在公共參考系中從屬手術器械尖端和主導把手的對齊性中引入控制系統誤差。例如,基于從屬手術器械尖端和主導把手之間在公共參考系中的失調(misalignment)量,調整從屬手術器械的角速度。在另一方面,漸進系統包括滾動接頭限制控制器,其用于判斷從屬手術器械的動作是否達到接頭限制(joint limit)且在達到接頭限制時約束從屬手術器械尖端的動作。在另一個方面, 漸進系統包括多個取向解,最佳取向控制器從多個取向解中選擇最接近主導把手取向的一個解。使用以上微創(chuàng)手術系統的方法包括,使用微創(chuàng)手術系統中主導把手的動作來控制在微創(chuàng)手術系統中從屬手術器械尖端的動作。該方法中,微創(chuàng)手術系統中的漸進系統接收公共參考系中的從屬手術器械尖端的對齊性和主導把手的對齊性。隨著主導把手移動,漸進系統通過連續(xù)減小對齊性之間的對齊誤差來將從屬手術器械尖端的對齊性漸進到主導把手的對齊性,而不存在從屬手術器械尖端的自主動作且不存在主導把手的自主動作。在一方面,漸進包括在不考慮公共參考系中的對齊性的情況下在微創(chuàng)手術系統的開始跟隨時,以同樣的相關方式來移動從屬手術器械尖端和主導把手。漸進也包括當主導把手的動作減小了在公共參考系中的對齊誤差時,通過使用新對齊誤差來排出在公共參考系中的所述對齊誤差,且當主導把手的動作不減小對齊誤差時通過使用在公共參考系中的當前對齊誤差來排出在公共參考系中的所述對齊誤差,因此連續(xù)地減小在公共參考系中的對齊性之間的對齊誤差。漸進系統也使用新對齊誤差來生成從屬手術器械的新對齊性,且基于該新對齊性向從屬手術器械發(fā)送命令。
5
在另一方面,漸進系統在從屬手術器械的對齊性和主導把手的對齊性之間引入了控制誤差??刂普`差的引入進一步包括基于所述當前對齊誤差來調整從屬手術器械尖端的被命令角速度。
圖1是包括帶有漸進系統的遙控伺服控制系統的微創(chuàng)手術機器人的圖解視圖。圖2A是用于圖1中微創(chuàng)手術機器人的圖1中外科醫(yī)生控制臺的部分圖解視圖。圖2B示出主導把手和從屬把手的取向以及兩個取向間的旋轉角誤差θ eD圖2C示出主導把手和從屬把手之間的取向并且取向誤差已被分解為一組Euler角。圖3A是用于漸進系統的流程圖。圖;3B是包括用于實現漸進系統的模塊的控制系統的方塊圖。圖4A是用于圖3A中漸進對齊過程的一方面的流程圖。圖4B是包括用于實現漸進對齊過程的模塊的控制系統的方塊圖。圖5A是圖3A漸進對齊過程的另一方面的流程圖。圖5B示出角速度調整分布。圖6A是漸進系統的另一方面的流程圖。圖6B是包括用于實現圖6A中漸進系統的模塊的控制系統的方塊圖。圖7示出了用于從屬手術器械尖端的滾動接頭限制的極端情況處理。在附圖中,附圖編號中的第一個數字表明帶有該附圖編號的元件第一次出現的圖。
具體實施例方式本發(fā)明的各方面使用包含至少一個主導把手的非機動主導工具操縱器來代替了機動的主導工具操縱器,例如加利福尼亞州Sunnyvale的htuitive Surgical, Inc.的da Vinci 手術機器人系統所用的主導工具操縱器。在微創(chuàng)手術系統100中,在控制臺114處外科醫(yī)生在大拇指和食指之間抓握主導把手(未示出)以便瞄準和抓取動作包含直觀指向和捏動作。通過控制系統150來使用主導把手的動作,如以下更完整所示,從而移動從屬手術器械112的端部執(zhí)行器。當外科醫(yī)生開始移動主導把手時致動控制系統150的遙控伺服控制系統160內的漸進系統130,這不同于常規(guī)系統,所述常規(guī)系統需要外科醫(yī)生等待,直到在公共參考系中的主導把手和從屬手術器械端部執(zhí)行器被對齊定位,從而可進入跟隨操作。不考慮在公共參考系中主導把手和從屬手術器械112的端部執(zhí)行器之間的對齊性,遙控伺服控制系統 160進入主導把手和有時稱為從屬手術器械尖端的手術器械端部執(zhí)行器之間的跟隨操作, 且致動漸進系統130。隨著移動主導把手,漸進系統130無縫地且連續(xù)地改進主導把手在公共參考系中相對于從屬手術器械尖端的對齊性。漸進系統130使得從屬手術器械尖端的運動漸進/漸進(ratchet)從而連續(xù)地且無縫地減小在從屬手術器械尖端和主導把手之間在公共參考系中的任何對齊誤差。漸進系統130實現對齊,而不存在主導把手或從屬手術器械尖端的自主動作。漸進系統130導致主導把手和從屬手術器械尖端之間的直觀對齊,如同外科醫(yī)生所看到的。同樣地,漸進系統130提供了在外科醫(yī)生正在進行的事情、操作主導把手以及外科醫(yī)生在外科醫(yī)生控制臺上所看到的事情、在顯示器中從屬手術器械尖端的運動之間的直接關聯。這可以在不存在與進入跟隨操作之前的常規(guī)機動對齊有關的延遲的情況下被實現。同樣地,漸進系統130消除了對機動主導把手的需求且允許使用低花費且容易獲得的部件作為主導把手??刂婆_114(圖1和圖2A)包括主顯示器,其至少顯示病患111的手術部位103的立體圖像210(圖2A)。立體圖像210通常包括手術部位103的圖像203、手術器械112的一部分的圖像212以及從屬手術器械112的尖端的圖像212T。控制臺114也包括一個或更多個腳踏開關(未示出)??刂婆_114(圖1)連接到控制系統150,該控制系統150進而連接到推車110,該推車110支撐包括機器臂113的多個機器臂。機器臂113握住且定位從屬手術器械112。 雖然在圖1中未示出,不過由另一個機器臂握住的內窺鏡通常用于提供圖像210。在整個手術過程中外科醫(yī)生舒適地就坐并且觀察控制臺114上的主顯示器。外科醫(yī)生通過至少操縱主導把手230(圖2A)來執(zhí)行醫(yī)療過程(medical procedure)。響應來自主導把手230的主導件對齊性信息132,控制系統150(圖1)中的遙控伺服控制系統160 導致相應的機器臂113使用從屬件命令135來定位從屬手術器械112。通常,控制臺114包含至少兩個主導把手且每個主導把手控制不同的機器臂和附屬手術器械。在此考慮單個主導把手230。鑒于本說明,可以針對任意所需數量的主導把手來實現漸進系統130。主顯示器置于靠近外科醫(yī)生手的控制臺114(圖1)上,以便在主顯示器中可看到的圖像210(圖2A)被定向成使得外科醫(yī)生感覺她或他實際上直接俯視手術部位103。由于外科醫(yī)生會期望工具112是基于他/她的手的位置,所以工具112的圖像212看起來像是大體置于外科醫(yī)生的手被大體放置且取向的地方。然而,當查看圖像210時外科醫(yī)生不能看見主導把手230的位置或取向。將來自內窺鏡的實時圖像投影到透視圖像210中,以便外科醫(yī)生能通過關聯的主導把手230來操縱工具112的手術器械端部執(zhí)行器,就好像是以大體真實的現場感來觀看工作空間。通過真實的現場感,意味著圖像的顯示是模擬物理操縱手術器械的操作者的視角的真實透視圖像。因此,控制系統150將手術器械112的坐標變換為感知位置(perceived position),以便透視圖像為,就像是內窺鏡在開放性手術過程(an open cavity procedure)期間從外科醫(yī)生的眼睛高度直接觀察手術工具112時外科醫(yī)生可看見的圖像??刂葡到y150在系統100中執(zhí)行各種功能??刂葡到y150接收來自內窺鏡的圖像且生成外科醫(yī)生觀看的立體圖像。以常規(guī)方式,控制系統150將相對于內窺鏡尖端的從屬件對齊性和相對于外科醫(yī)生的主導件對齊性映射到公共參考系中,公共參考系有時稱為公共參照系,其被漸進系統130使用。例如參見,于2002年7月23授權于Niemeyer等人的 ^H^^ljNO. 6, 424, 885,1 "Camera Referenced Control in a Minimally-invasive Surgical Apparatus”,在此通過參考完整地合并在內。控制系統150使用遙控伺服控制系統160來通過控制命令135將主導把手230的機械動作轉變且轉換到相關聯的機器臂113,以便外科醫(yī)生能有效操縱從屬手術器械112。 當與同樣包含于控制系統150中的漸進系統130結合考慮時,由遙控伺服控制系統160執(zhí)行的功能等同于常規(guī)功能。除其它因素之外,單次使用的手術工具的數目和因而系統100中使用的機器臂的數目通常取決于要執(zhí)行的醫(yī)療手術過程和手術室內的空間約束。若必須改變手術過程中正使用的一個或更多個工具,則助手會從其機器臂上移除不再使用的工具,且用來自于手術室中托盤的另一個工具來替換該工具。雖然描述了控制系統150,但是應當理解,可通過硬件、在處理器中執(zhí)行的軟件以及固件的任意組合在實踐中實現控制系統150。同樣地,可由一個單元執(zhí)行在此描述的它的功能,或將它的功能分割到不同部件中,且其中任一部件進而可以通過硬件、在處理器中執(zhí)行的軟件以及固件的任意組合而被實現。當被分割到不同部件中時,所述部件可以集中在一個位置或被分布成遍布系統100以用于分布式處理。當系統100中只有兩個主導把手時,且當外科醫(yī)生想控制與被耦合到這兩個主導把手的兩個從屬手術器械不同的從屬手術器械的運動時,外科醫(yī)生可以在適當位置鎖定這兩個主導把手或其中之一。然后外科醫(yī)生將這兩個主導把手或其中之一關聯到由其它機器臂握住的其它從屬手術器械,并且漸進系統130相對于那些器械是有效的。主導把手230提供被映射到公共參考系中的對齊性,但其是不機動的或至少不包括機動腕部。然而,以下更完整說明的主導把手230的特征能夠用于包括機動腕部的主導把手。如在此所用,機動腕部意味著包括至少一個馬達來控制腕部定位的腕部。能夠使用馬達來補償重力和摩擦并且提供動作力反饋的范圍,但同時關閉任意機動對齊能力。主導把手230包括通常由外科醫(yī)生抓持在大拇指和食指之間的兩個桿231、232。 隨著外科醫(yī)生移動主導把手230,一方面,在公共參考系中主導把手對齊性132被提供給漸進系統130(例如,圖2B所示)。在該方面,從屬手術器械尖端212T具有從屬件對齊性,且漸進系統130也接收被映射到公共參考系中的該從屬件對齊性。由漸進系統130使用的這兩個對齊性處于公共參考系中。因此,由漸進系統130來執(zhí)行方法300的一個方面(圖3A)。在該方面,漸進系統 130包括漸進系統模塊370 (圖:3B),該模塊370進而包括接收對齊性模塊371和漸進對齊模塊372。與接收取向模塊371相關聯的接收主導件和從屬件新對齊性的操作310,接收公共參考系中的主導把手對齊性和從屬手術器械尖端對齊性。漸進系統130在跟隨檢查操作 320中等待直到啟動跟隨。跟隨檢查操作320不應該被解釋為需要連續(xù)查詢(continuous polling),而是應該被簡單地解釋為相對于公共參考系中的對齊性什么都不做直到啟動跟隨。檢查操作320僅用于說明且不應被視為限制。用于確定是否啟動跟隨的具體技術可以基于中斷、事件、具體標識或位改變狀態(tài)等等。當實現了主導把手230和從屬手術器械尖端212T之間的跟隨時,與漸進對齊模塊 372相關聯的漸進對齊過程330生成命令,其導致以移動主導把手230相同的相對方式來移動從屬手術器械尖端212T,而不考慮主導把手230和從屬手術器械尖端212T之間在公共參考系中的任何對齊誤差。
為方便起見,應當注意,從屬手術器械尖端212T用于該說明中,因為外科醫(yī)生正看到它運動。該圖像的運動直接與從屬手術器械尖端本身的運動對應。本領域技術人員理解,如此處描述的,圖像的運動是通過機器臂響應來自控制系統150的命令而導致的從屬手術器械尖端自身運動的直接結果。隨著主導把手230和從屬手術器械尖端212T均運動,漸進對齊過程330排出/放掉(bleed off)在主導把手230和從屬手術器械尖端212T之間在公共參考系中的任何對齊誤差。例如,當外科醫(yī)生以減小對齊誤差的方式移動主導把手230時,漸進對齊過程330 在跟隨操作期間使用在主導把手230和從屬手術器械尖端212T之間的減小的對齊誤差。相反地,當外科醫(yī)生以增加對齊誤差的方式移動主導把手230時,漸進對齊過程330在跟隨操作期間使用當前對齊誤差而不使用在主導把手230和從屬手術器械尖端212T之間的增加的對齊誤差。因此,漸進對齊過程330無縫地且連續(xù)地改進主導把手230相對于從屬手術器械尖端212T的絕對對齊性。漸進對齊過程330實現絕對對齊性的連續(xù)改進,而不導致主導把手230或從屬手術器械尖端212T的自主動作。漸進系統130能夠漸進公共參考系中的對齊誤差,其可以為位置誤差或取向誤差。在以下的示例中,考慮的是對于公共參考系中取向誤差的漸進。然而,取向誤差示例僅為說明性的且不意在限制于描述的特定方面內。鑒于本公開,本領域技術人員可應用同樣原則來漸進位置誤差。在以下示例中,隨著外科醫(yī)生移動主導把手230,在一方面,公共參考系中的主導把手取向235被提供到漸進系統130。在該方面,從屬手術器械尖端212T具有在公共參考系中的從屬件取向225,其等同于從屬手術器械尖端自身的取向。漸進系統130也接收這個在公共參考系中的從屬件取向。在該方面,主導把手230的ζ軸線在滾動軸線上且背離于手的方向指向。在從屬件上的相應ζ軸線是,例如,沿著鉗手的中心線且示出鉗手指向何處。在一方面,通過主導把手旋轉矩陣Rm在遙控伺服控制系統160中定義主導把手 230在公共參考系中的取向235,在該示例中Rm為三乘三矩陣。類似地,通過從屬手術器械尖端旋轉矩陣Rs在遙控伺服控制系統160中定義從屬手術器械尖端212T在公共參考系中的取向225,Rs在該示例中也為三乘三矩陣。主導把手旋轉矩陣Rm和從屬手術器械尖端旋轉矩陣Rs為正交旋轉矩陣。借助取向235和225的這些矩陣表示,在公共參考系中的取向誤差為相對旋轉矩陣R,。相對旋轉矩陣定義為R. = R>Rm(1)其中矩陣RST是從屬手術器械尖端旋轉矩陣艮的轉置。它從矩陣RST和矩陣Rm的定義得出,借助定義(1)中相對旋轉矩陣是三乘三矩陣
^AllRii =Ra22 RA23
、卩厶31 ^·Δ32 卩厶33)當在公共參考系中對齊主導把手230的取向235和從屬手術器械尖端212T的取向225時,相對旋轉矩陣R,是單位矩陣,即,對角元素RM1、R,22、R,33值為一且其它元素值為零。借助主導把手旋轉矩陣Rm、從屬手術器械尖端旋轉矩陣民和相對旋轉矩陣的這些定義,在公共參考系中隨后的主導把手取向通過下述定義被映射到對應的從屬件取向命令Rs = Rm*R.T(2)其中,矩陣Rat是相對旋轉矩陣的轉置。如上所述,借助當前相對旋轉矩陣Rfent和新相對旋轉矩陣R,_new,需要做出在映射到對應的從屬件取向命令時使用這兩個相對旋轉矩陣中的哪一個的判定。當
< Recurrent時使用新相對矩陣L-Mw。然而,已經了解,能夠使用純量(scalar quantity)來判斷使用哪一個相對旋轉矩陣。因此,不需要用于比較多維矩陣的技術來判斷何時新相對旋轉矩陣小于當前相對
旋轉矩陣L -current°如圖2B所示,公共參考系中,主導把手230的取向235和從屬手術器械尖端212T 的取向225之間的取向誤差,由純量旋轉角誤差θε表示。旋轉角誤差θ。是從屬手術器械尖端取向225為了與主導把手取向235 —致而必須旋轉通過的角度,且因而代表失調性。旋轉角誤差θ e定義為θ e = cos—1
(3)回到如上所述,當對齊主導把手取向235和從屬手術器械尖端取向225時,對角元素Rm1、R,22、Rm3值為一。因此,當對齊這兩個取向時,旋轉角誤差為零。在該方面,漸進系統130的漸進對齊過程330被實現為與漸進系統模塊470相關聯的漸進取向過程330Α(圖4Α)。漸進系統模塊470包括接收取向性模塊471和漸進取向模塊472(圖4Β)。當開始跟隨操作時,與取向誤差生成模塊481相關聯的生成新取向誤差過程410, 獲取主導把手旋轉矩陣Rm和從屬手術器械尖端旋轉矩陣Rs。接著,過程410使用主導把手旋轉矩陣Rm和從屬手術器械尖端旋轉矩陣民,從而基于以上定義(1)來生成新相對旋轉矩陣R,_Not。在此,從屬手術器械尖端旋轉矩陣Rs是從屬手術器械尖端212T的當前取向且被存儲,例如,被存儲在存儲器404中的從屬件取向性單元131中(圖4B),而主導把手旋轉矩陣Rm是主導把手230的新取向。新相對旋轉矩陣的對角元素用于以上定義(3)中從而生成新旋轉角誤差θε_Νεψ。在新旋轉角誤差 θ e_New生成后,過程410轉換到與取向誤差比較器模塊482(圖4B)相關聯的取向誤差減小檢查操作420。取向誤差減小檢查操作420確定新旋轉角誤差θ Δ_Ν 是否小于當前旋轉角誤差 θ ,例如,檢查操作420被實現為比較器。若新旋轉角誤差θ ^w等于或大于當前旋轉角誤差θ e_eurrent,則檢查操作420行進到設定取向操作440。相反地,若新旋轉角誤差ee_New 小于當前旋轉角誤差θ e_toMt,則檢查行進到設定取向操作430。兩套取向操作430、440的使用僅為了便于說明且不意為限制。例如在旋轉角誤差 θ e減小的情況下可以僅使用一套取向操作。同樣地,應當注意,在第一次進行漸進取向過程330A時,檢查操作420可以簡單地行進到設定取向誤差操作430??商鎿Q地,在初始化期間,當前旋轉角誤差θ e_current能夠被設定為較大值,以便在第一次進行時新旋轉角誤差θε_Νεψ總是小于當前旋轉角誤差9e_toMt。只要不進入自主動作,則用于處理第一次進行過程330A時的具體方面就不是關鍵性的。設定取向誤差操作440有效地作為無操作(no-op),因為當前旋轉角誤差θ e_Current 和當前相對旋轉矩陣R^torait分別被保持作為當前旋轉角誤差和當前相對旋轉矩陣。因此, 操作440能夠被移除且處理過程簡單地從檢查操作420直接轉換到生成新從屬件取向450。與比較器模塊482相關聯的設定取向誤差操作430,將當前旋轉角誤差θ e_Current 設定為新旋轉角誤差Θ『Ν 。操作430也將當前相對旋轉矩陣R^torent設定為新相對旋轉矩陣且之后轉移至生成新從屬件取向操作450。與從屬件生成取向模塊483相關聯的生成新從屬件取向450,首先生成當前相對旋轉矩陣R^currait的轉置矩陣R/。接著,根據以上定義( 通過結合轉置矩陣R/和主導把手旋轉矩陣Rm來獲得新從屬件取向矩陣民。因此,操作450將主導件取向轉換為從屬件取向。生成新從屬件取向450將處理過程轉換到與從屬件命令生成模塊484相關聯的發(fā)送從屬件取向命令操作460。使用新從屬件取向Rs,操作460通過從屬件輸入/輸出(I/O) 模塊403發(fā)送命令,其導致從屬手術器械尖端212T運動。該運動取決于過程300A的當前迭代中所使用的相對旋轉矩陣L。在過程330A中,當外科醫(yī)生以減小主導把手230和從屬手術器械尖端212T之間在公共參考系中的對齊誤差的方式(例如,減小旋轉角誤差θ e)來移動主導把手230時,漸進對齊過程330A(圖4A)在跟隨操作中使用在主導把手230和從屬手術器械尖端212T之間的減小的對齊誤差。相反地,當外科醫(yī)生以增大主導把手230和從屬手術器械尖端212T 之間在公共參考系中的對齊誤差的方式來移動主導把手230時,漸進對齊過程330A在跟隨操作中使用當前對齊誤差,而不使用在主導把手230和從屬手術器械尖端212T之間的增大的對齊誤差。因此,漸進對齊過程330A無縫地且連續(xù)地改進主導把手230相對于從屬手術器械尖端212T的絕對誤差。漸進對齊過程330A實現了絕對對齊的連續(xù)改進,而不存在主導把手230或從屬手術器械尖端212T的自主動作。若主導把手230和從屬手術器械尖端被剛性連接,則相對旋轉矩陣為恒量。實際上,主導把手230和從屬手術器械尖端并不是剛性連接,而是通過遙控伺服控制系統160 耦合。不論何時主導把手230和從屬手術器械尖端在運動,總是存在少量的控制誤差。使用過程330A以及主導把手230和從手術器尖端212T之間獲得的對齊性,能吸收該控制誤差。然而,該方法高度依賴于伺服控制循環(huán)的剛性。在帶有剛性伺服控制循環(huán)的遙控微創(chuàng)手術系統的正常情況下,增量的改進可能過小且因此花費長時間來達到令人滿意的對齊。即使在這樣的系統中,仍使用漸進系統130,不過引入控制系統誤差控制器560(圖5A) 在公共參考系中在主導把手取向235和從屬手術器械尖端取向225之間引入微妙控制誤差,而不導致從屬手術器械尖端的自主動作。通過引入控制系統誤差控制器560來引入這種微妙控制誤差的技術,包括但不被限制于1.基于旋轉角誤差θ ε的量來調整從屬件角速度。通過基于旋轉角誤差θε來人為減慢從屬件的動作來引入控制誤差。2.當旋轉角誤差θ e大于容許閾值時,將人為接頭限制強加于從屬手術器械尖端旋轉矩陣Rs的動作上。這導致不論何時從屬件達到人為接頭限制時在主導件和從屬件之間的控制誤差。隨著對齊的改進,從屬件的動作的容許范圍能夠被逐漸加寬到從屬件動作的整個范圍(full range) 03.低通過濾感測的主導把手旋轉矩陣Rm。這允許控制誤差被引起且吸收主導把手 230的快速且/或不連續(xù)動作。低通過濾器截止(cutoff)可以是旋轉角誤差9。的函數, 以便隨著旋轉角誤差θe減小而改進響應性。4.低通過濾被命令的從屬手術器械尖端旋轉矩陣民。這引入在主導把手230和從屬手術器械尖端212T之間的控制誤差,其能夠吸收從屬手術器械尖端212T的快速且/或不連續(xù)的取向命令。低通過濾器截止可以是旋轉角誤差θ 6的函數,以便隨著旋轉角誤差 θ e減小而改進響應性。圖5A示出漸進系統130中漸進取向過程330B的另一個實施方式。漸進取向過程 330B使用以上技術之一或另一個等同技術,從而經由引入控制系統誤差過程510,在公共參考系中引入在從屬手術器械尖端的取向和主導把手的取向之間的控制系統誤差。其它過程410、420、430、440、450A和460A與以上參考圖4A描述的對應過程相似,并且因此不在此
重復描述。在該示例中,在過程410中生成新旋轉角誤差θ e_New后,在控制器560中的引入控制系統誤差操作510引入控制系統誤差。過程330B的該位置僅為說明性的且不意為被限制到過程330B的該具體位置。當選擇具體技術來引入控制系統誤差時,引入控制系統誤差操作510能夠被置于過程330B內的適當位置。同樣地,在該示例中引入控制系統誤差模塊被包括在漸進取向模塊472內(圖4B)。在一方面,通過基于當前旋轉角誤差θ e_current人為調節(jié)從屬手術器械尖端的被命令角速度,操作510引入控制誤差。許多不同的技術能夠被用于調整(penalize)被命令角速度。在操作510的一方面,結合角速度調整分布(penalty profile)使用當前旋轉角誤差0 du mt,從而生成用于調整從屬手術器械尖端的被命令角速度的角速度比例系數。 在該方面,角速度比例系數在代表不可接受的旋轉角誤差的零和代表零旋轉角誤差的一之間變化??梢允褂秒S著旋轉角誤差θ e變化而在零和一之間平緩變化的角速度調整分布來調整角速度。更普遍地,只要分布不引入自主動作且不產生從屬件尖端的意外運動,就可使用任何連續(xù)且單調的角速度調整分布。如在此所用,連續(xù)的意味著在分布中的任意點處存在分布的一階導數(the first derivative)。在一方面,基于外科醫(yī)生的經驗來選擇角速度調整分布。在另一方面,單個角速度調整分布供所有外科醫(yī)生使用。在又一方面,角速度調整分布是外科醫(yī)生專用的。適于使用的一個角速度調整分布是S型曲線。圖5B描述了一種角速度調整分布 500,其為具有兩個明確拐點(分別為和θ )的S型曲線。在該示例中,第一個拐點θ el位于30度且第二個拐點θ e2位于90度。角eeQ為權重為一時的角,該權重更具體地被稱為角速度比例系數,而角θ 是權重變?yōu)榱銜r的角且對于任何更大的失調均保持為零。選擇與拐點θ 相關聯的失調角來代表用戶失調公差,而選擇與拐點相關聯的失調角來代表最大可用失調角,以便大于拐點θ &的角被認為是不可用的對齊。只要旋轉角誤差06大于拐點θ ,則從屬手術器械尖端的被命令角速度被換算成趨向于零,其導致從屬手術器械尖端的微小動作或無動作。隨著操作者朝著從屬手術器械尖端212Τ旋轉主導把手230,這允許容易地更新相對旋轉矩陣R,。隨著旋轉角誤差θ e向拐點θ 61減小,被命令角速度逐漸增加,從而允許從屬手術器械尖端更易做出響應動作且同時仍能引起足夠的控制誤差來進一步改進相對旋轉矩陣 R.o 一旦旋轉角誤差96小于拐點θ el,外科醫(yī)生觀察到從屬手術器械尖端212Τ很好地與主導把手230對齊。因此,允許從屬手術器械尖端212T的角運動更易響應主導把手230的動作。繼續(xù)作出額外的小對齊矯正,直至相對旋轉矩陣變?yōu)閱挝痪仃嚽倚D角誤差
變?yōu)榱?。相對于人為接頭限制,從屬件運動的人為接頭限制被定義為在公共參考系中的對齊誤差的函數,例如,作為旋轉角誤差9^的函數。當對齊誤差較大時,例如,大于九十度, 則將人為接頭限制強加于從屬手術器械尖端212T的動作,以至于允許器械尖端212T關于器械尖端212T的當前位置僅做出小的動作。隨著主導把手230朝著從屬手術器械尖端212T運動,從屬手術器械尖端212T沿相同的相對方向運動直至遇到人為接頭限制。當遇到人為接頭限制時,從屬手術器械尖端 212T保持固定在人為接頭限制處的位置上。這允許漸進系統130隨著主導把手230繼續(xù)沿從屬手術器械尖端212T的方向運動而急劇地減小對齊誤差。在一方面,隨著對齊誤差減小,人為接頭限制逐漸變寬。這使對齊過程更加無縫且連續(xù)。例如,若感測的主導把手旋轉矩陣Rm的低通過濾被用于引入控制系統誤差,則主導把手旋轉矩陣Rm在較低的頻率上改變。例如,人們能夠在高達大約20Hz的頻率上做出受控動作。主導件取向能夠被急劇地過濾,例如,向下過濾到一至五赫茲,從而當對齊粗劣時使取向改變更加遲鈍。同樣,單調調整分布可以用于作為當前取向誤差的函數在零赫茲和二十赫茲之間運動。相反地,例如,若被命令從屬手術器械尖端旋轉矩陣Ιζ的低通過濾被用于引入控制系統誤差,則從屬手術器械尖端旋轉矩陣民在較低的頻率上改變。鑒于這些示例,本領域技術人員能夠選擇合適的低通過濾器以便漸進無縫地且連續(xù)地改進主導把手230相對于從屬手術器械尖端212Τ的絕對對齊。漸進對齊過程330Β實現了絕對對齊的連續(xù)改進, 且同時不存在主導把手230或從屬手術器械尖端212Τ的自主動作。在另一方面,由漸進系統130執(zhí)行方法600(圖6Α)。在該方面,漸進系統130包括漸進系統模塊470A(圖6B)。漸進系統模塊470A包括接收取向性模塊471A和漸進取向模塊672。如以下更完整解釋,與漸進取向模塊672相關聯的漸進取向過程330C(圖6A),基于旋轉角誤差θ e的幅度來調整從屬件角速度;包括滾動接頭限制控制器;并且確定外科醫(yī)生如何握住主導把手230,例如,正面朝上還是面向下的。與接收取向模塊471A相關聯的接收主導件和從屬件新取向操作310A,接收主導把手取向235和從屬手術器械尖端取向225。操作310A轉移到檢查操作320A。
13
系統跟隨檢查操作320A確定是否啟動系統跟隨。若系統跟隨還未被啟動,則保存主導件取向操作610將接收到的主導件取向保存在存儲器404A的原主導件取向存儲位置 632中且處理過程從漸進系統返回。因此,漸進系統保持主導把手230在公共參考系中的最近取向(the most recent orientation),直至啟動足艮隨。當啟動系統跟隨時,檢查操作320A轉移到生成新取向誤差矩陣操作615,其與漸進取向模塊672中的取向誤差生成模塊481A(圖6B)相關聯。操作610使用主導把手旋轉矩陣Rm和從屬手術器械尖端旋轉矩陣民來基于上述定義(1)生成新相對旋轉矩陣LiW。 在此,從屬手術器械尖端旋轉矩陣民是從屬手術器械尖端212T在公共參考系中的當前取向并且被存儲于例如存儲器404A的從屬件取向單元131(圖6B)中,而主導把手旋轉矩陣 Rm為主導把手230的新取向。當完成時,操作615轉移到最佳解檢查操作620,其與漸進取向模塊672中的多取向解模塊681相關聯。最佳解檢查操作620確定取向的多個解構成的組中哪一個解最佳匹配于公共參考系中主導把手230的當前取向。例如,相對于外科醫(yī)生如何握住主導把手230的取向,考慮兩個可能的解,正面朝上或面向下(USD)。因此,在一方面,在包括面向下(USD)控制器的多取向解控制器621中執(zhí)行檢查操作620。假設外科醫(yī)生用他/她的右手握住主導把手230,當大拇指在桿231 (圖2A)上且食指在桿232上以便外科醫(yī)生腕部的頂部對外科醫(yī)生是可見的,則這稱為正面朝上。相反的,當大拇指在桿232上且食指在桿231上以便外科醫(yī)生腕部的底部對外科醫(yī)生是可見的, 則這被稱為面向下。因此,握持取向的兩種解是沿著滾動軸線180度分開的。為了確定在過程330C中使用這兩種取向解中的哪一種,針對每個取向確定旋轉角誤差9。的余弦。若面向下取向的余弦大于正面朝上取向的余弦,則面向下取向被設定為真,否則則被設定為假。因此,使用上述定義(3),在一方面,檢查操作620執(zhí)行下列操作cos ( θ e s) =
cos ( θ e f) =
當cos(eef)大于cos(eeS)時,二維上的取向是面向下的且面向下取向標識USD 被設為真。相反的,當cos(eef)小于或等于cos(eeS)時,面向下取向標識USD被設為假。生成新旋轉角誤差θε操作625和生成當前旋轉角操作θε操作630與取向誤差生成模塊481A相關聯。操作625和630使用面向下取向標識USD的狀態(tài)、新相對旋轉矩陣和當前相對旋轉矩陣R^ommt,來生成新旋轉角誤差θ e-New和當前旋轉角誤差
g
e—Current °具體地,若面向下取向標識USD被設為真,則操作625首先在二維上旋轉當前相對旋轉矩陣R^eurrent,然后確定當前旋轉角誤差θ ^eurrent,如上所解釋。若面向下取向標識USD 被設為假,則操作625在沒有任何旋轉的情況下確定當前旋轉角誤差ee_torart。檢查當前旋轉角誤差Qyumnt,且⑴若值大于pi,則當前旋轉角誤差0^_-被設定為?1,或O) 若值小于零,則當前旋轉角誤差被設為零。因此,當前旋轉角誤差θ 被界定在零和Pi之間。類似地,若面向下取向標識USD被設為真,則操作630首先在二維上旋轉新相對旋轉矩陣,且然后確定新旋轉角誤差Qrfew,如上所解譯。若面向下取向標識USD被設為假,則操作630在沒有任何旋轉的情況下確定新旋轉角誤差Θ『ΝΜ。檢查新旋轉角誤差,且⑴若值大于pi,則新旋轉角誤差被設為pi,或⑵若值小于零,則新旋轉角誤差θε_Νεψ被設為零。因此,新旋轉角誤差θε_Νεψ也被界定在零和pi之間。在基于最佳解在操作625和630中確定了旋轉角誤差之后,在生成被調整角速度操作510Α中引入控制系統誤差,該操作510Α與漸進取向模塊672中的控制系統誤差引入模塊682(圖6Β)相關聯。在一方面,在引入控制系統誤差控制器560A中執(zhí)行操作510A,其進而與控制系統誤差引入模塊682相關聯。調整角速度是能夠被引入控制系統誤差控制器560A引入的控制系統誤差的一種類型的示例。通常,引入控制系統誤差控制器560A引入控制誤差,例如以上所描述的。在生成被調整角速度操作510A的這個方面,如上所述,通過使得從主導把手230 感測的角速度與基于當前旋轉角誤差θ 來自調整曲線500的角速度比例系數相乘, 來調整角速度。操作510A完成后,處理過程轉移到接頭限制控制過程,這在滾動接頭限制控制器635中被執(zhí)行。滾動接頭限制控制器635與漸進取向模塊672中的接頭限制控制模塊683相關聯。滾動接頭限制控制器635確定在給定方向上從屬手術器械接頭是否達到限制以及在該給定方向上來自主導把手230的被感測動作是否試圖移動從屬手術器械尖端。在該方面,在滾動接頭限制控制器635中從屬件滾動限制檢查操作640確定在從屬手術器械中的滾動接頭是否已達到滾動限制,且在該滾動方向上來自主導把手230的被感測動作是否正在試圖旋轉從屬手術器械尖端212T。在檢查操作640中,預定義上下滾動限制。轉置被存儲在原主導件取向位置632 中的原主導把手旋轉矩陣艮-?!鄬χ鲗О咽中D矩陣R^被定義為Rffl. = Rm_。ldT*Rm因此,相對主導把手旋轉矩陣Rm,為三乘三矩陣
^1 1\ esBiAll λΒΙΔ12 仇Rm4 = 躍 κιΔ21 RbiA22
、R 431^BUVM J主導把手滾動方向被定義為Master_roll_dir = [Ra21-Rai2]接著,檢查操作640首先判斷從屬手術器械尖端212T的位置是否小于下滾動接頭限制加上公差,并且主滾動方向MaSter_r0ll_dir是否小于零。若該第一判定的結果為真, 則已經達到下滾動接頭限制且主導把手旋轉的方向為沿該下滾動限制的方向。因此,約束了從屬手術器械尖端的動作。若第一判定的結果為假,則檢查操作640其次判斷從屬手術器械尖端的位置是否大于上滾動接頭限制減去公差并且主滾動方向MaSter_r0ll_dir是否大于零。若該其次判定的結果為真,則已達到上滾動接頭限制且主導把手旋轉的方向為沿上滾動限制的方向。 因此,約束了從屬手術器械的動作。當從屬手術器械動作被約束時,從屬件滾動接頭限制檢查操作640轉移到設定當前旋轉角誤差和角速度操作645,否則轉移到旋轉角誤差減小檢查操作420A。設定當前旋轉角誤差和角速度操作645將當前旋轉角誤差θ e_current設定成大于任意可能物理值的值, 并且將被命令角速度設定成零。設定當前旋轉角誤差和角速度操作645將處理過程轉移到取向誤差減小檢查操作420A。取向誤差減小檢查操作420A判斷新旋轉角誤差θ e_New是否小于當前旋轉角誤差 、-eumnt,例如,檢查操作420被實施為比較器。若新旋轉角誤差Θ『Νμ等于或大于當前旋轉角誤差9e_eurrent,則檢查操作420Α轉移到保存主導件取向操作650。相反地,若新旋轉角誤差9e_New小于當前旋轉角誤差θ ^ament,則檢查操作420A將處理過程轉移到設定取向誤差操作430Α。與比較器模塊482Α相關聯的設定取向誤差操作430Α,將當前旋轉角誤差θ e_Current 設定為新旋轉角誤差9e_New。操作430A還將當前相對旋轉矩陣R^ament設定為新相對旋轉矩陣且然后轉移到保存主取向操作650,其在單元632(圖6B)中保存主導把手旋轉矩陣Rm。操作650將處理過程轉移到生成新從屬件取向操作450B(圖6A)。與從屬件生成取向模塊483A(圖6B)相關聯的生成新從屬件取向450B,首先生成當前相對旋轉矩陣R^torait的轉置矩陣R/。接著,根據以上定義( 通過結合轉置矩陣 R/和主導把手旋轉矩陣Rm來獲得新從屬件取向矩陣Rs。生成新從屬件取向450B將處理過程轉移到發(fā)送從屬件取向命令操作460B(圖 6A),其與從屬件命令生成模塊484A相關聯。使用新從屬件取向民,操作460經從屬件輸入 /輸出(I/O)模塊403發(fā)送一命令,該命令包括在公共參考系中的從屬件取向和被命令角速度,這導致從屬手術器械尖端212T按該命令所引導的那樣進行運動。運動取決于在過程 330C的當前迭代中所使用的是哪一個相對旋轉矩陣以及取決于被命令角速度。當外科醫(yī)生以減小主導把手230和從屬手術器械尖端212T之間的對齊誤差的方式(例如,減小旋轉角誤差θ J來移動主導把手230時,在考慮到外科醫(yī)生如何握住主導把手230且是否遇到滾動接頭限制的同時,漸進對齊過程330C(圖6A)跟隨操作中使用主導把手230和從屬手術器械尖端212T之間的減小的對齊誤差。相反的,當外科醫(yī)生以增加主導把手230和從屬手術器械尖端212T之間的對齊誤差的方式來移動主導把手230時,漸進對齊過程330C跟隨操作中使用主導把手230和從屬手術器械尖端212T之間的當前對齊誤差,而不是增加的對齊誤差。因此,漸進對齊過程330C無縫地且連續(xù)地改進了主導把手230相對于從屬手術器械尖端212T的絕對對齊。漸進對齊過程330C實現了絕對對齊的連續(xù)改進,且不存在主導把手230或從屬手術器械尖端212T的自主動作。在方法600中,滾動接頭限制控制器635用于處理從屬件動作范圍的極端情況 (corner-case)。進一步相對于圖7考慮該極端情況。圖7示出用于引入極端情況接頭限制的技術。例如,在零度處存在滾動接頭限制且在一百八十度存在另一個滾動接頭限制。 因此,當主導把手230在零度時,如所示通過從屬手術器械尖端790來定位從屬手術器械尖端;在九十度,如所示通過從屬手術器械尖端791來定位從屬手術器械尖端;且在一百八十度,如所示通過從屬手術器械尖端792來定位從屬手術器械尖端。當外科醫(yī)生繼續(xù)沿逆時針方向將主導把手230旋轉返回至零度,從屬件尖端792 會意外地運動到從屬件尖端790的取向,例如,這會是自主動作。然而,當在從屬手術器械尖端動作上存在極端情況接頭限制時,這樣的動作是被禁止的。例如,當主導把手230的取向進入接頭限制的預定公差內時,從屬手術器械尖端的被命令角速度被設為零且當前旋轉角誤差θ設定人為的大數值,以便使用新相對旋轉矩陣R,_n 。這實質上允許當從屬手術器械尖端處于滾動極限時,主導件取向相對于從屬手術器械尖端的取向滑動。用常規(guī)的機動主導件,用戶可接收力反饋從而指明從屬件何時到達動作限制范圍。用非機動主導件,當主導件驅使從屬件進入或離開接頭限制時,在漸進系統中,滾動接頭限制控制器能夠被用于維持從屬件動作的連續(xù)性。在以上方法中,說明了各種模塊和與這些模塊相關聯的操作和/或過程。模塊可以被實現為硬件、在處理器上執(zhí)行的軟件、固件或者硬件、軟件或固件的任意組合。當模塊包括存儲在存儲介質上的一條或更多條指令時,所描述的操作和/或過程是由于檢索和執(zhí)行在處理器模塊401中的至少一個處理器上的一條或更多條指令從而獲得所描述的變換。所述具體模塊僅為說明性的且不意為限制。鑒于本公開,本領域技術人員可根據需要將多個模塊結合在一起或將一個模塊分為一個或更多個額外的模塊。此外, 雖然模塊被示為聚集在一公共位置,但這也僅是說明性的。表1為用C編程語言編寫的軟件指令示例,其在處理器上被執(zhí)行時實現單元320A、 610、615、620、621、625、630、510A、560A、635、640、645、420A、430A 和 650。表 1#define CLAMP(val,lo,hi) (MIN(MAX((val),(lo)),(hi))) typedef FLOAT (*Matrix3x3Ptr)[3];
y* A* A ****************************** A*** ****** A·****
static FLOAT psm_io_rotation_angle(const Matrix3x3Ptr R,
BOOLEAN USD)
{
float traceR; float costheta;
/* Account for USD configuration by applying rotation of 180 degrees Z */
if (USD) {
FLOAT Rtmp[3][3];
static const FLOAT Rroll[3][3]=
{
{ -1,0, 0}, { 0, -1, 0}, { 0, 0, 1}
};
Matrix_multiplyMatrixf(Rtmp, /* = */R, 3, 3,
/* χ */ Rroll, 3,3); traceR = Rtmp
+ Rtmp[l][l] + Rtmp[2][2];
}
else {
traceR = R
+R[l][l] +Rp] [2];
}
costheta = 0.5f * (traceR - 1 .Of); if (costheta > 1.0){
return 0.0;
}
else if (costheta < -1.0) {
return MPI;
}
else {
return (FLOAT) acos(costheta);
}
}
INT psm_io_constrain_master_roll
(const Matrix3x3Ptr Rm—old,const Matrix3x3Ptr Rm)
{
static const FLOAT tolerance = l.Of * M_PI / 180.0;
FLOAT*const pos == Ptr(SYS_HW_JNTPOS,0,
PSM二JNT POS DOFS); float_par* lower = Ptr(PC_JI_IK_POSL0WERLIMIT, 0,
PSM_JNT_POS—DOFS); float_par* upper = Ptr(PC_JI_IK_POSUPPERLIMIT, 0,
~PSM_JNT_POS_DOFS); FLOAT Rm_old_trans[3][3]; FLOAT Rm一 delta[3][3]; FLOAT mtm_roll—dir; INT constrainroll = 0;
//Compute the error rotation as R2 w.r.t. Rl. Matrix_transposef(Rm_old_trans, Rm old, 3, 3);
/* Rm_delta = Rm_old_trans' * Rm */ Matrix—multiplyMatrixf(Rm_delta,
/* = */ Rm_old_trans,3,3 ,/* χ */Rm,3,3);//Define the local error vector w.r.t. Rl. mtm—roll_dir = Scalar—fsignf(Rm_delta[l]
-~—Rm_delta
[1]);
//Check if the PSM roll joint has reached a limit and //if the MTM is trying to rotate in that roll //direction if (pos[PSM_RO]<(lower[PSM_RO]^tolerance)
&& mtm_roll_dir < 0) { ~ "
constrain_roll = 1 ;
}
else if (pos[PSM_RO]>(upper[PSM_RO] -tolerance)
&& mtm_roll—dir > 0) { ~ ~
constrain—roll = 1 ; } —
return constrain—roll;
}
//Parameters used by sigmoid-shaped velocity weight //function
#defme SIGMOID ALPHA 5 .Of #defme SIGMOID_BETA (0.3ΡΜ_ΡΙ)
^iiicieiiisii^^^^icic^^^^^^^rkii-k'k'k-kit-k-k'ieii-k-ii-ie'k'kit-k-kii'k'k'icit-k'k* psm_io_ratchet_offset()*
*Conditionally updates the orientation offset*
*to improve the alignment between MTM and PSM * *************************************** *******/
void psm—io—ratchet—offset(const Matrix3x3Ptr Rm,
—— ~Matrix3x3Ptr Roff, FLOAT *rotvel)
{
static FLOAT Rm_old[3][3]; FLOAT Rs_trans[3][3]; FLOAT Roff_new[3][3]; FLOAT cur—offset; FLOAT new_offset;FLOAT cosangle_s, cosangle_f; FLOAT vel_weight; BOOLEAN—USD 二 FALSE;
Matrix3x3Ptr Rs= (Matrix3x3Ptr) Ptr(SYS_IO_OUT_CART,
3,9);
if (KernelRobustBooleanIsFALSE
(PSM_IO_F0LLOW_DATA_VALID))
{
Matrix一copyf(Rm—old, Rm, 3,3); return;
}
/* Update the relative rotation offset Roff between master and slave, if the current offset is smaller */ Matrix_transposef( Rs trans, Rs, 3,3); // Compute the offset between the new MTM and new PSM /* Roff—new = Rs' * Rm */
Matrix_multiplyMatrixf(Roff_new, /* - */ Rs_trans,
3, 3, /* x*/Rm, 3,]);
// Determine whether to use the straight or Il upside-down solution
cosangle_s = (FLOAT)(0.5 * (Roff_new
+
Roff_new[l][l] + Roff_new[2][2] -1)); cosangle—f = (FLOAT)(0.5 * (-1 * Rof[new
-
Roff_new[l][l] +Roffjiew[2][2] -1)); USD = (cosangle_f> cosangle—s) ? TRUE : FALSE; new—offset = psm_io_rotation_angle(Roff_new, USD); cur_offset = psm_io_rotation_angle(Roff, USD);
/ * Reduce the angular velocity based on the current
*amount of misalignment. We are using a sigmoid
*function as the weight, since it provides a smooth
*transition between full velocity and no velocity.
*The curve has been tuned to falloff near 30
*degrees and bottom out around 90 degrees */ vel—weight = 1.0f/(1.0f+ exp(SIGMOID_ALPHA*
(cur_offset-SIGMOID_BETA))); vel—weight = CLAMP(vel_weight, O.Of, 1.0-0; vector_scalef(rotvel, rotvel, vel_weight,
21CART—ORI_DOFS); /* Constrain the MTM command if the PSM has hit a roll limit*/
if (psm一io_constrain—master一roll(Rm一old,Rm))
{ " ~
curoffset = BIG—NUM;
vector—setf(rotve[ 0,CART—ORI_DOFS); } ~
/* Conditionally update the Roff offset if we've found a smaller relative rotation*/
if (new—offset < cur_offset)
{ — _ ·
Matrix—copyf(Roff, Roff—new, 3, 3); } — ~
// Save the most recent Rm Matrix_copyf(Rm_old, Rm,3,3);
}在圖2B、圖4A、圖4B、圖5A、圖5B、圖6A和圖6B的示例中,使用純量來判斷公共參考系中在三維中的取向漸進。然而,在另一方面,純量能夠與公共系統中的單個維度相關聯。例如,代替使用純量角誤差θ e來指明三維的取向誤差,相對旋轉矩陣能夠被分解為一組Euler角α、β和Y (圖2C)。線N表示兩個Χ_Υ平面的交線。在該示例中,可相對于一個Euler角(例如,Euler角β )來實現過程330、330Α、330Β或330C的漸進,或者可通過相繼地或并發(fā)地漸進每個Euler角或該組Euler角的某子組來優(yōu)化對齊誤差。例如, 一些微創(chuàng)手術器械可以被約束或被實現成使得感興趣于相對于一個Euler角的取向,且因而可以相對于該Euler角來完成取向的漸進。以上說明和圖示了本發(fā)明的各方面和實施例的附圖不應理解為限制性的,權利要求限定了要受保護的發(fā)明。可作出各種機械性的、合成的、結構的、電氣的和操作的改變,而不偏離本說明和權利要求的精神和范圍。在一些情況中,未在細節(jié)上示出或說明公知的電路、結構和技術以避免混淆本發(fā)明。此外,本說明的術語不意為限制本發(fā)明。例如,空間相對術語,例如,“在之下”、“在下面”、“向下地”、“在之上”、“上面的”、“近端”、“遠端”等等可用于描述圖中的一個單元或特征與另一個單元或特征的關系。這些空間上相對的術語旨在除了包含圖中示出的位置和取向之外還包含在使用或操作中裝置的不同位置或取向。例如,若圖中裝置被翻過來,則描述為在其它元件或特征“下面”、“之下”的元件或特征則成為在其它元件或特征“之上”、“上面”的元件或特征。因此,示范術語“在之下”可包含之上和之下兩種位置和取向。裝置可以以別的方式取向(旋轉90度或在其它取向上)且在此使用的空間相對說明詞可以別的方式相應解釋。單數形式“一”、“一個”和“該”意在也包括復數形式,除非另有明確說明。術語“包含”、“包含了”、“包括”等等指闡述特征、步驟、操作、元件和/或部件的存在,但不排除額外一個或更多個特征、步驟、操作、元件、部件和/或組的存在。所有示例和說明性參考是非限制性的且不用于將權利要求限制成在在此描述的具體實施方式
和實施例及其等價物。標題只用于符合格式且在任何方面都不用于限制主題,因為一個標題下的文本可交叉參考或應用于一個或多個標題下的文本。最終,鑒于本發(fā)明,關于一個方面或實施例的描述的具體特征可應用于本發(fā)明其它公開的方面或實施例, 即使未在附圖中具體示出或本文本中進行說明。雖然存儲器被示作一體結構,但不應解釋為要求所有的存儲器均在同一物理位置上。存儲器的全部或部分可處于與處理器不同的物理位置。存儲器指的是易失性存儲器、 非易失性存儲器或兩者的任意組合。處理器被耦合到包含由處理器執(zhí)行的指令的存儲器。這將在計算機系統內被完成,或可替換地通過調制解調器和模擬線路或者通過數字接口和數字載波線路被連接到另一臺計算機而被完成。在此,計算機程序產品包含介質,其經配置用于存儲方法300、330、330A、330B、 600、330C其中之一或任意組合所需的計算機可讀代碼、或用于方法300、330、330A、330B、 600、330C其中之一或任意組合的計算機可讀代碼存儲在其中。計算機程序產品的一些示例是⑶-ROM磁盤、DVD磁盤、閃存、ROM卡、軟盤、磁帶、計算機硬盤驅動器、網絡上的服務器和呈現計算機可讀程序代碼的在網絡上傳輸的信號。有形計算機程序產品包含介質,其經配置用于存儲方法300、330、330A、330B、600、330C其中之一或任意組合的計算機可讀指令、 或用于方法300、330、330A、330B、600、330C其中之一或任意組合的計算機可讀指令在存儲在其中。有形計算機程序產品為CD-ROM磁盤、DVD磁盤、閃存、ROM卡、軟盤、磁帶、計算機硬盤驅動器和其它物理存儲介質。鑒于本發(fā)明,使用用戶感興趣的操作系統和計算機編程語言,在各種計算機系統配置中可執(zhí)行用于方法300、330、330A、330B、600、330C其中之一或任意組合的指令。此外,鑒于本公開,可執(zhí)行各種不同的微創(chuàng)系統和方法。在一方面,微創(chuàng)手術系統包含具有從屬手術器械尖端的從屬手術器械,其中所述從屬手術器械尖端具有在公共坐標系中的對齊性;耦合到所述從屬手術器械的主導把手,所述主導把手具有在所述公共坐標系中的對齊性,其中在所述公共坐標系中的對齊誤差是所述從屬手術器械尖端的對齊性和所述主導把手的對齊性之間的在所述公共參考系中的對齊性的差;以及漸進系統,(i)耦合到所述主導把手從而接收所述主導把手的對齊性,以及(ii) 耦合到所述從屬手術器械從而在所述主導把手運動時通過連續(xù)減小所述對齊誤差來控制所述從屬手術器械的動作,而不存在所述從屬手術器械尖端的自主動作且不存在所述主導把手的自主動作。漸進系統進一步包括弓I入控制系統誤差控制器,該引入控制系統誤差控制器用于相對于所述從屬手術器械尖端的對齊性和所述主導把手的對齊性引入控制系統誤差。所述引入控制系統誤差控制器包括,但不限于以下各項其中之一或任意組合1.基于旋轉角誤差的量來調整從屬件角速度;2.基于旋轉角誤差將人為接頭限制強加于所述從屬手術器械尖端的動作;3.低通過濾被感測的主導把手旋轉;以及
4.低通過濾被命令的從屬手術器械尖端的旋轉。在另一方面,漸進系統包括用于判斷最接近所述主導把手的取向的取向解的多取向解控制器。所述多取向控制器能夠被包括在任意控制器組合中,包括但不限于所述引入控制系統誤差控制器。在一方面,所述多取向解控制器包括面向下控制器。在另一方面,用于控制微創(chuàng)手術系統中從屬手術器械尖端的對齊性與所述微創(chuàng)手術系統中主導把手的對齊性的方法包括通過所述微創(chuàng)手術系統中的漸進系統,接收所述從屬手術器械尖端在公共參考系中的對齊性和所述主導把手在所述公共參考系中的對齊性;以及當所述主導把手運動時,通過連續(xù)減小在所述公共參考系中所述對齊性之間的對齊誤差,由所述漸進系統來將所述從屬手術器械尖端的對齊性漸進到所述主導把手的對齊性,且不存在所述從屬手術器械尖端的自主動作且不存在所述主導把手的自主動作。在一方面,所述漸進進一步包含在所述從屬手術器械尖端的對齊性和所述主導把手的對齊性之間引入控制系統誤差。所述引入控制系統誤差包括,但不限于以下各項其中之一或任意組合1.基于旋轉角誤差的量來調整從屬件角速度;2.基于旋轉角誤差將人為接頭限制強加于所述從屬手術器械尖端的動作;3.低通過濾被感測的主導把手旋轉;以及4.低通過濾被命令的從屬手術器械尖端的旋轉。在又一方面,所述漸進進一步包含基于所述主導把手在所述公共參考系中的一個取向,在一組取向解中選擇一個取向解。在一方面,選擇取向解與所述引入控制系統誤差相結合。在另一方面,選擇取向解包括選擇面向下解。
權利要求
1.一種微創(chuàng)手術系統包括具有從屬手術器械尖端的從屬手術器械,其中所述從屬手術器械尖端具有在公共參考坐標系中的對齊性;耦合到所述從屬手術器械的主導把手,所述主導把手具有在所述公共參考坐標系中的對齊性,其中在所述公共參考坐標系中的對齊誤差是在所述公共參考坐標系中所述從屬手術器械尖端和所述主導把手的所述對齊性之間的差;以及漸進系統,(i)其耦合到所述主導把手從而接收所述主導把手的對齊性;以及(ii)其耦合到所述從屬手術器械,以便隨著所述主導把手運動,通過連續(xù)地減小所述對齊誤差來控制所述從屬手術器械的動作,且同時不存在所述從屬手術器械尖端的自主動作并且不存在所述主導把手的自主動作。
2.根據權利要求1所述的微創(chuàng)手術系統,其中所述對齊誤差是取向誤差。
3.根據權利要求2所述的微創(chuàng)手術系統,其中所述取向誤差包含角。
4.根據權利要求3所述的微創(chuàng)手術系統,其中所述角被表述為 θ e = cos—1 [0. 5*(R.n+R.22+R.33-1) 1,其中Lu、βΔ22、Ra33為相對旋轉矩陣RA的對角元素。
5.根據權利要求3所述的微創(chuàng)手術系統,其中所述角是一組Euler角中的一個Euler角。
6.根據權利要求1所述的微創(chuàng)手術系統,其中所述漸進系統包括滾動接頭限制控制器,其用于判斷所述從屬手術器械尖端的動作是否已達到接頭限制,其中當達到所述接頭限制時約束所述從屬手術器械尖端的動作。
7.根據權利要求1所述的微創(chuàng)手術系統,其中所述漸進系統包括引入控制系統誤差控制器,其用于相對于所述從屬手術器械尖端和所述主導把手的所述對齊性引入控制系統誤差。
8.根據權利要求1所述的微創(chuàng)手術系統,其中所述漸進系統包括多取向解控制器,其用于判斷最接近所述主導把手的取向的取向解。
9.根據權利要求1所述的微創(chuàng)手術系統,其中所述主導把手包含非機動主導把手。
10.一種用于控制微創(chuàng)手術系統中從屬手術器械尖端的對齊性與所述微創(chuàng)手術系統中主導把手的對齊性的方法包含通過所述微創(chuàng)手術系統中的漸進系統,接收所述從屬手術器械尖端在公共參考坐標系中的對齊性以及所述主導把手在所述公共參考坐標系中的對齊性;以及隨著所述主導把手的運動,在不存在所述從屬手術器械尖端的自主動作并且不存在所述主導把手的自主動作的情況下,通過連續(xù)地減小在所述公共參考坐標系中所述對齊性之間的對齊誤差,從而通過所述漸進系統使得所述從屬手術器械尖端的所述對齊性漸進到所述主導把手的所述對齊性。
11.根據權利要求10所述的方法,所述漸進進一步包含在不考慮所述對齊性的情況下,在所述微創(chuàng)手術系統開始跟隨時,以相同的相對方式來移動所述從屬手術器械尖端和所述主導把手;以及當所述主導把手的動作減小所述公共參考坐標系中的所述對齊誤差時,通過使用所述公共參考坐標系中的新對齊誤差來排出所述對齊誤差,且當所述主導把手的動作不減小所述對齊誤差時,通過使用所述公共參考坐標系中的當前對齊誤差來排出所述對齊誤差,因此連續(xù)地減小所述公共參考坐標系中的所述對齊性之間的所述對齊誤差。
12.根據權利要求11所述的方法,進一步包含使用所述新對齊誤差來生成所述從屬手術器械在所述公共參考坐標系中的新對齊性;基于所述新對齊性向所述從屬手術器械發(fā)送命令;
13.根據權利要求10所述的方法,其中所述漸進進一步包含生成在所述從屬手術器械尖端的對齊性和所述主導把手的對齊性之間在所述公共參考坐標系中的新對齊誤差;比較所述新對齊誤差和當前對齊誤差;當所述比較表明所述新對齊誤差小于所述當前對齊誤差時,將所述當前對齊誤差設定為所述新對齊誤差;使用所述當前對齊誤差生成所述從屬手術器械尖端在所述公共參考坐標系中的新對齊性;基于所述新對齊性向所述從屬手術器械發(fā)送命令;以及重復所述生成新對齊誤差、所述比較、所述設定和所述生成新位置以及在接收到所述主導把手在所述公共參考坐標系中的另一個對齊性時的所述發(fā)送。
14.根據權利要求10所述的方法,其中所述漸進進一步包含在所述從屬手術器械尖端對齊性和所述主導把手對齊性之間引入控制系統誤差。
15.根據權利要求14所述的方法,其中所述引入控制系統誤差進一步包含 基于所述當前對齊誤差來調整所述從屬手術器械尖端的被命令角速度。
16.根據權利要求15所述的方法,其中所述調整進一步包含基于所述當前對齊誤差,從連續(xù)且單調的角速度調整分布中選擇一個角速度比例系數,其中所述角速度比例系數隨所述當前對齊誤差減小而增加,以便所述角速度隨所述當前對齊誤差減小而增加。
17.根據權利要求16所述的方法,其中所述連續(xù)且單調的角速度調整分布包含S型函數分布。
18.根據權利要求16所述的方法,進一步包含基于使用所述微創(chuàng)手術系統的外科醫(yī)生來選擇所述連續(xù)且單調的角速度調整分布。
19.根據權利要求10所述的方法,其中所述漸進進一步包含基于所述主導把手在所述公共參考坐標系的取向從一組取向解中選擇一個取向解。
20.根據權利要求10所述的方法,其中所述漸進進一步包含 判斷是否達到在給定方向上的接頭限制;以及在達到所述接頭限制時,約束所述從屬手術器械的動作。
全文摘要
本發(fā)明涉及一個包括具有從屬手術器械(112)尖端的從屬手術器械和主導把手的微創(chuàng)手術系統(100)。從屬手術器械尖端具有在公共參考系中的對齊性,且耦合到從屬手術器械的主導把手具有在公共參考系中的對齊性。公共參考系中的對齊誤差是從屬手術器械尖端的對齊性和主導把手的對齊性之間的差。漸進系統(130)(i)耦合到主導把手從而接收主導把手的對齊性,且(ii)耦合到從屬手術器械,從而隨著主導把手移動,通過連續(xù)減小對齊誤差從而控制從屬手術器械的動作,而不存在從屬手術器械尖端的自主動作且不存在主導把手的自主動作。
文檔編號B25J9/16GK102470015SQ201080029859
公開日2012年5月23日 申請日期2010年6月11日 優(yōu)先權日2009年6月30日
發(fā)明者B·D·伊科威茲, D·S·敏茲, G·D·捏梅耶爾, S·迪邁爾, W·C·諾林 申請人:直觀外科手術操作公司