(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-09-22
(45)【発行日】2025-10-01
(54)【発明の名称】仮想境界に基づくツールのロボットの動きを制御するためのシステム及び方法
(51)【国際特許分類】
A61B 34/32 20160101AFI20250924BHJP
B25J 13/00 20060101ALI20250924BHJP
【FI】
A61B34/32
B25J13/00 Z
(21)【出願番号】P 2022558329
(86)(22)【出願日】2021-03-25
(86)【国際出願番号】 US2021024135
(87)【国際公開番号】W WO2021195369
(87)【国際公開日】2021-09-30
【審査請求日】2024-03-25
(32)【優先日】2020-03-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】507280594
【氏名又は名称】マコ サージカル コーポレーション
(74)【代理人】
【識別番号】100099623
【氏名又は名称】奥山 尚一
(74)【代理人】
【識別番号】100125380
【氏名又は名称】中村 綾子
(74)【代理人】
【識別番号】100142996
【氏名又は名称】森本 聡二
(74)【代理人】
【識別番号】100166268
【氏名又は名称】田中 祐
(74)【代理人】
【氏名又は名称】池本 理絵
(72)【発明者】
【氏名】ドゼマン,マイケル,デール
(72)【発明者】
【氏名】ロエスラー,パトリック
(72)【発明者】
【氏名】ガルシア,グレゴリー
(72)【発明者】
【氏名】クラーナー,リシャブ
(72)【発明者】
【氏名】ダン,ジェレミー,エル.
(72)【発明者】
【氏名】ボウリング,デイヴィッド,ジーン
【審査官】滝沢 和雄
(56)【参考文献】
【文献】特表2018-506352(JP,A)
【文献】特表2015-534480(JP,A)
【文献】特表2016-505328(JP,A)
【文献】特表2018-518254(JP,A)
【文献】特表2018-519872(JP,A)
【文献】米国特許出願公開第2019/0083191(US,A1)
【文献】米国特許出願公開第2018/0353253(US,A1)
【文献】米国特許出願公開第2017/0177191(US,A1)
【文献】特表2018-519876(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A61B 34/32
A61B 34/35
A61B 34/37
A61B 34/30
A61B 34/20
A61B 34/10
B25J 13/00
(57)【特許請求の範囲】
【請求項1】
外科システムであって、
ツールと、
前記ツールをサポートするマニピュレータと、
前記ツールと、対象部位に関連付けられた仮想境界との関係に基づいて、前記マニピュレータの動作と前記ツールの動きとを制御する制御システムと
を備え、
前記制御システムは、第1の入力状態及び第2の入力状態を有するユーザ入力
と、境界ハンドラとを有し、
前記制御システムは、
前記ユーザ入力が前記第1の入力状態にあるときに前記ツールの自律的な、境界に準拠した動きを可能にし、前記ツールは前記仮想境界への準拠を維持し、
前記ユーザ入力が前記第2の入力状態にあるときに、前記ツールの自律的な、境界に準拠した動きを無効と
し、前記ツールの現在のポーズを保持し、
前記第2の入力状態から前記第1の入力状態への前記ユーザ入力の移行に応じて、前記ツールが
前記現在のポーズで前記仮想境界に侵入
するものとなるように前記仮想境界が移動したことを
、前記境界ハンドラを用いて判定す
る、
外科システム。
【請求項2】
前記制御システムは、前記ユーザ入力が前記第2の入力状態から前記第1の入力状態に移行するときに前記ツールが前記仮想境界に侵入していることに応じて回復モードを開始するように構成され、前記ユーザ入力が前記第1の入力状態にあるとき、前記回復モードでは前記ツールの自律的な、境界に準拠した動きは無効のままである、請求項1に記載の外科システム。
【請求項3】
前記ツールは
モータを有し、前記制御システムは、前記ユーザ入力が前記第2の入力状態から前記第1の入力状態に移行するときに前記ツールが前記仮想境界に侵入していることに応じて前記
モータの動作を無効にするように構成される、請求項1に記載の外科システム。
【請求項4】
前記制御システムは、可聴フィードバック、視覚フィードバック、及び触覚フィードバックのうちの1つ又は複数を含むユーザフィードバックを生成することによって、前記回復モードで前記仮想境界に準拠するものとなるように前記ツールを配置するようユーザに案内し、
前記制御システムは、前記ツールが前記仮想境界に準拠するものとなるように配置されたときに前記ユーザフィードバックの生成を停止する、請求項2に記載の外科システム。
【請求項5】
前記ツールが前記仮想境界に準拠するものとなるように配置されたときに前記制御システムが前記ユーザフィードバックの生成を停止するように構成されている場合において、前記制御システムは、前記境界ハンドラで境界制約を生成することによって、前記ユーザ入力が前記第1の入力状態にあるときに、前記ツールと前記仮想境界との間の相対的な動きを制限するように
更に構成され、
前記制御システムは、
前記境界制約に基づいて前記仮想境界に準拠して前記ツールを維持するように適合された制約力を計算するための制約ソルバーと、
前記制約力に基づく仮想シミュレーションで前記ツールのダイナミクスをシミュレートし、命令されたポーズを出力する仮想シミュレータと
を有し、
前記制御システムは、前記マニピュレータに、前記命令されたポーズに基づいて前記ツールを動かすように命令するように構成される、請求項4に記載の外科システム。
【請求項6】
前記境界ハンドラは、境界制約が前記境界ハンドラから前記制約ソルバーに送信されて、それにより、別段には前記ツールが前記仮想境界に侵入するような様式で前記仮想境界が前記ツールに対して移動するときに前記ツールの自律的な、境界に準拠した動きを可能にする、境界が有効な状態と、境界制約が前記境界ハンドラから前記制約ソルバーにもはや送信されず、それにより、前記ツールを前記仮想境界に侵入させるような様式で前記仮想境界が前記ツールに対して移動可能であるように前記ツールの自律的な、境界に準拠した動きが無効になる、境界が無効な状態とで動作可能であり、
前記境界ハンドラは、
前記第1の入力状態から前記第2の入力状態への前記ユーザ入力の移行に応じて、前記境界が無効な状態で動作し、
前記ツールが前記仮想境界に準拠している状態で、前記ユーザ入力が前記第2の入力状態から前記第1の入力状態に移行することに応じて、前記境界が有効な状態で動作し、
前記ツールが前記仮想境界に侵入している状態で、前記ユーザ入力が前記第2の入力状態から前記第1の入力状態に移行することに応じて、前記境界が無効な状態で動作するように構成される、請求項5に記載の外科システム。
【請求項7】
前記制御システムは、前記ツールを前記仮想境界に準拠するように誘導するために1つ又は複数のガイド制約をアクティブ化することと前記ツールの動きを減衰させることとのいずれかによって、前記ツールを前記仮想境界に準拠して配置するように前記ユーザに案内すべく前記ユーザに触覚フィードバックを提供するように構成される、請求項6に記載の外科システム。
【請求項8】
前記制御システムは、前記ツールが前記仮想境界に準拠するように配置されたときに、前記境界ハンドラを前記境界が無効な状態から前記境界が有効な状態に切り替えるように構成されている、請求項7に記載の外科システム。
【請求項9】
前記ユーザ入力は、前記第1の入力状態が、ユーザがアクティブに前記ツールに関与していることを示し、前記第2の入力状態が、前記ユーザが前記ツールを解放したことを示すように構成される、請求項1に記載の外科システム。
【請求項10】
前記ユーザ入力が前記ツールに配置され、前記ユーザ入力を作動して前記ユーザ入力を前記第1の入力状態に置き、前記ユーザ入力を解放して前記ユーザ入力を前記第2の入力状態に置くように、前記ユーザ入力が構成され、
前記ツールはグリップを有し、前記ユーザ入力は、前記グリップのユーザの手を検出するための存在検出器を含む、
請求項1に記載の外科システム。
【請求項11】
前記制御システムは、ペンダントを含み、前記ユーザ入力はペンダントにあり、前記ユーザ入力は、前記ユーザ入力が前記第1の入力状態に前記ユーザ入力を置くように作動され、前記ユーザ入力が前記第2の入力状態に前記ユーザ入力を置くように解放されるように構成される、請求項1に記載の外科システム。
【請求項12】
前記ユーザ入力は、前記ツールに配置されたツール入力としてさらに定められ、前記第1及び第2の入力状態は、ツール入力の第1の状態及びツール入力の第2の状態としてさらに定められ、前記制御システムは、ペンダント及び前記ペンダントに配置されたペンダント入力を含み、前記ペンダント入力は、ペンダント入力の第1の状態及びペンダント入力の第2の状態を有する、請求項1に記載の外科システム。
【請求項13】
前記マニピュレータは、前記ツール入力が前記ツール入力の第1の状態にあるときに、ユーザが前記ツールに加えたユーザの力及びトルクに応じて前記マニピュレータが前記ツールを動かす手動モードで動作可能であり、前記マニピュレータは、前記ペンダント入力が前記ペンダント入力の第1の状態にあるときに、前記マニピュレータがツール経路に沿って前記ツールを移動させる半自律モードで動作可能である、請求項12に記載の外科システム。
【請求項14】
前記境界ハンドラは、前記手動モード及び半自律モードの一方から前記手動及び半自律モードの他方への前記マニピュレータの前記制御システム
による切り替え動作に応じて、前記ツールが前記仮想境界に準拠しているか、又は前記仮想境界に侵入しているかを判定するように構成され、
前記制御システムは、前記マニピュレータが前記手動モードから前記半自律モードに切り替わるときに、前記ツールの現在の位置から前記ツール経路へのリードイン経路を生成するように構成された経路ハンドラを備え、
前記境界ハンドラは、前記リードイン経路に沿った前記ツールの移動が前記仮想境界への準拠を維持するか、前記仮想境界に侵入するかを判定するように構成され、
前記境界ハンドラは、前記リードイン経路に沿った前記ツールの動きが前記仮想境界への準拠を維持するか、又は前記仮想境界に侵入するかを、前記ツールに関連付けられた複数の定位的相互作用機構のモーションをモデル化することによって判定して、前記定位的相互作用機構が前記仮想境界への準拠を維持するか、前記仮想境界に侵入するかどうかを判定するように構成され、
前記境界ハンドラが、3つ以上の自由度で前記複数の定位的相互作用機構のモーションをモデル化するように構成され、
前記制御システムは、前記ツールが前記現在の位置から前記リードイン経路に沿って前記ツール経路へ移動した場合に前記境界ハンドラが、前記ツールが前記仮想境界に侵入すると判定したのに応じて、前記ユーザへのユーザフィードバックを生成するように構成されたガイドハンドラを含む、
請求項13に記載の外科システム。
【請求項15】
前記制御システムは、
前記複数の定位的相互作用機構のうち第1の定位的相互作用機構についての第1のパラメータを定めるステップと、
前記複数の定位的相互作用機構のうち第2の定位的相互作用機構についての第2のパラメータを定めるステップであって、前記第1のパラメータは前記第2のパラメータとは異なる、ステップと
を行う、
請求項14に記載の外科システム。
【請求項16】
前記制御システムが、
前記ツールが停止することと、
前記第1の入力状態から前記第2の入力状態への前記ユーザ入力の移行に続いて所定の期間が経過することと、
前記ツールの線速度が1つ又は複数の閾値を下回ることと、
前記ツールの角速度が1つ以上の閾値を下回ることと
のうちの1つ又は複数に応じて、前記ツールの自律的な、境界に準拠した動きを無効にするように構成される、請求項1に記載の外科システム。
【請求項17】
前記制御システムは、前記仮想境界に対して定められた許容誤差に基づいて、前記ツールが前記仮想境界に準拠したままであるかどうかを判定するように構成される、請求項1に記載の外科システム。
【請求項18】
前記制御システムは、前記ツールを前記仮想境界に準拠するように移動させるために、前記回復モードで回復ツール経路を生成するように構成される、請求項2に記載の外科システム。
【請求項19】
前記制御システムは、開始位置から前記回復モードで前記仮想境界を移動するように構成されて、前記ツールが前記仮想境界に準拠するように戻り、その後、前記ツールの自律的な、境界に準拠した動きを可能にしながら、前記仮想境界を前記開始位置に戻す、請求項2に記載の外科システム。
【請求項20】
ツールと、対象部位に関連付けられた仮想境界との関係に基づいて前記ツールをサポートするマニピュレータの動作を制御する方法であって、
ユーザ入力が第1の入力状態にあるときに、前記仮想境界が前記ツールに対して移動するのに応じて、前記ツールが前記仮想境界への準拠を維持できるように前記ツールの自律的な、境界に準拠した動きを
制御システムが開始するステップと、
前記ユーザ入力が第2の入力状態にあるときに、
前記制御システムが、前記ツールの自律的な、境界に準拠した動きを無効
とし、前記ツールの現在のポーズを保持するステップと、
前記制御システムが、前記第2の入力状態から前記第1の入力状態への前記ユーザ入力の移行に応じて、前記ツールが
前記現在のポーズで前記仮想境界に侵入
するものとなるように前記仮想境界が移動したことを判定するステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2020年3月27日出願の米国特許仮出願第63/000,860号の優先権及びすべての利益を主張し、その開示全体は、引用により本明細書の一部をなすものとする。
【0002】
本開示は、概して、仮想境界に基づいてツールのロボットの動きを制御するためのシステム及び方法に関する。
【背景技術】
【0003】
外科システムは、ロボットマニピュレータと、患者に外科的処置を実行するためにマニピュレータに結合されたツールとを含み得る。手術中、外科システムは、患者の解剖学的構造の一部をツールから保護するために確立された仮想境界に侵入することを回避するために、ツールの動きを制限することができる。
【0004】
状況によっては、ユーザは、患者の解剖学的構造の標的部位へのアクセスを改善するため、又は患者の解剖学的構造のユーザの視覚化を改善するために患者の位置を調整することを望む場合があり、又は患者の解剖学的構造が他の理由で動く場合がある。患者の解剖学的構造が動くときに仮想境界への準拠を維持するために、外科システムは、患者の解剖学的構造のそのような動きを補償するためにツールを自律的に動かすようにマニピュレータに命令することができる。ただし、一部のユーザは、ツールのそのような自律的な動きを制限することを好む場合がある。例えば、ユーザがツールを予期せず移動させたくない場合や、ユーザからの入力に応じてのみツールの移動が発生するようにしたい場合がある。
【発明の概要】
【0005】
本概要は、下段の発明を実施するための形態にさらに記述されている単純化された形式で一連の概念を紹介する。本概要は、特許請求されている主題の範囲を制限することが意図されておらず、特許請求されている主題の主要な特徴又は本質的な特徴を識別することも意図されていない。
【0006】
第1の態様によれば、ツール、ツールをサポートするマニピュレータ、及びツールと、標的部位に関連付けられた仮想境界との関係に基づいてマニピュレータの動作とツールの動きを制御する制御システムを含む外科システムが提供される。制御システムは、第1の入力状態及び第2の入力状態を有するユーザ入力を含む。制御システムは、ユーザ入力が第1の入力状態にあるときにツールの自律的な、境界に準拠した動きを可能にするように構成されているため、ツールは仮想境界への準拠を維持する。制御システムは、ユーザ入力が第2の入力状態にあるときに、ツールの自律的な、境界に準拠した動きを無効にするように構成されている。制御システムは、第2の入力状態から第1の入力状態へのユーザ入力の移行に応じて、ツールが仮想境界に侵入しているかどうかを判定するための境界ハンドラを含む。
【0007】
第2の態様によれば、ツール、ツールをサポートするマニピュレータ、及びツールと、標的部位に関連付けられた第1の仮想境界との関係に基づいてマニピュレータの動作とツールの動きを制御する制御システムを含む外科システムが提供される。制御システムには、ユーザが標的部位に関連付けられた第2の仮想境界を選択できるようにする仮想境界セレクタが含まれている。制御システムは、制御システムがツールの第1の仮想境界への準拠を維持しながら、ユーザが仮想境界セレクタを用いて第2の仮想境界を選択できるように構成されている。制御システムは、ユーザが第2の仮想境界を選択することに応じて、ツールが第2の仮想境界に準拠しているかどうかを判定するための境界ハンドラを含む。
【0008】
第3の態様によれば、ツール、ツールをサポートするマニピュレータ、及びツールと、標的部位に関連付けられた仮想境界との関係に基づいてマニピュレータの動作とツールの動きを制御する制御システムを含む外科システムが提供される。マニピュレータは、ユーザによってツールに加えられたユーザの力及びトルクに応じてマニピュレータがツールを動かす手動モード、及びマニピュレータがツール経路に沿ってツールを動かす半自律モードを含む、複数のモードで動作可能である。制御システムは、制御システムが半自律モードに移行することに応じて、ツールの現在の位置からツール経路へのリードイン経路を生成するための経路ハンドラを含む。制御システムはまた、リードイン経路に沿ったツールの移動の前に、リードイン経路に沿ったツールの動きが、定位的相互作用機構(stereotactic interaction feature)が仮想境界に準拠しているかどうかを判定するツールに関連付けられた複数の定位的相互作用機構のモーションをモデル化することによって、仮想境界への準拠を維持するかどうかを判定する境界ハンドラを含む。
【0009】
第4の態様によれば、ツールと、標的部位に関連付けられた仮想境界との間の関係に基づいて、ツールをサポートするマニピュレータの動作を制御するための方法が提供される。この方法は、ユーザ入力が第1の入力状態にあるときに、仮想境界がツールに対して移動するのに応じて、ツールが仮想境界への準拠を維持するようにツールの自律的な、境界に準拠した動きを開始することを含む。この方法はまた、ユーザ入力が第2の入力状態にあるときにツールの自律的な、境界に準拠した動きを無効にすること、及びユーザ入力が第2の入力状態から第1の入力状態に移行することに応じて、ツールが仮想境界の侵入をしているか判定することを含む。
【0010】
第5の態様によれば、ツールと、標的部位に関連付けられた第1の仮想境界との間の関係に基づいて、ツールをサポートするマニピュレータの動作を制御するための方法が提供される。この方法は、ユーザが標的部位に関連付けられた第2の仮想境界を選択できるようにすることを含む。この方法はまた、ツールの第1の仮想境界への準拠を維持しながら、ユーザが第2の仮想境界を選択できるようにし、ユーザが第2の仮想境界を選択することに応じて、ツールが第2の仮想境界に準拠しているかどうかを判定することを含む。
【0011】
第6の態様によれば、ツールと標的部位に関連する仮想境界との間の関係に基づいてツールをサポートするマニピュレータの動作を制御する方法であって、マニピュレータは、ユーザがツールに加えたユーザの力及びトルクに応じてマニピュレータがツールを動かす手動モードと、マニピュレータがツール経路に沿ってツールを動かす半自律モードとを含む複数のモードで動作可能である方法が提供される。この方法は、マニピュレータを半自律モードに移行することと、マニピュレータを半自律モードに移行することに応じて、ツールの現在の位置からツール経路へのリードイン経路を生成することとを含む。方法はまた、リードイン経路に沿ったツールの移動の前に、リードイン経路に沿ったツールの動きが、定位的相互作用機構が仮想境界に準拠しているかどうかを判定するツールに関連付けられた複数の定位的相互作用機構のモーションをモデル化することによって、仮想境界への準拠を維持するかどうかを判定することを含む。
【0012】
第7の態様によれば、外科システムであって、第1の対象物及び第2の対象物を追跡するように構成されたローカリゼーションシステム、及び少なくとも1つのコントローラであって、仮想境界を1つ以上の第1の対象物に関連付け、第1の定位的相互作用機構及び第2の定位的相互作用機構を1つ又は複数の第2の対象物に関連付け、第1の定位的相互作用機構の第1のパラメータを定め、第2の定位的相互作用機構の第2のパラメータを定め、第1のパラメータは第2のパラメータとは異なり、第1及び第2の定位的相互作用機構の少なくとも1つと仮想境界との間の相互作用に基づいて応答を生成するように構成される少なくとも1つのコントローラを含む外科システムが提供される。
【0013】
第8の態様によれば、ローカリゼーションシステム及び少なくとも1つのコントローラを含む外科システムを作動させる方法であって、ローカリゼーションシステムを使用して、第1の対象物と第2の対象物を追跡すること、少なくとも1つのコントローラで、仮想境界を1つ又は複数の第1の対象物と関連付けること、少なくとも1つのコントローラで、第1の定位的相互作用機構及び第2の定位的相互作用機構を1つ又は複数の第2の対象物に関連付けること、少なくとも1つのコントローラを用いて、第1の定位的相互作用機構のための第1のパラメータを定めること、少なくとも1つのコントローラを用いて、第2の定位的相互作用機構の第2のパラメータを定めることであって、第1のパラメータは第2のパラメータとは異なる、定めること、及び少なくとも1つのコントローラを用いて、第1及び第2の定位的相互作用機構の少なくとも1つと仮想境界との間の相互作用に基づいて応答を生成することを含む、方法が提供される。
【0014】
上記の態様のいずれかを、全体的又は部分的に組み合わせることができる。
【0015】
上記の態様のいずれかは、そのような実施態様が全体的又は部分的に利用されるかどうかにかかわらず、以下の実施態様のいずれかで利用することができる。
【0016】
いくつかの実施態様では、マニピュレータは、ベースと、ロボットアームを形成する複数のリンク及びジョイントを備える外科用ロボットマニピュレータである。いくつかの実施態様では、マニピュレータは手持ち式マニピュレータであり、重力に逆らってユーザの手で自由に支持され、ベースはツールのベース部分(例えば、ユーザによってフリーハンドで保持される部分)であり、ツールの先端は、ベース部分に対して移動可能である。いくつかの実施態様では、ツールは、回転式切断バー、のこぎり、切断ガイド、超音波振動ツール、レーザー切断ツールなどである。
【0017】
いくつかの実施態様では、制御システムは、ツールが仮想境界に侵入していることに応じて回復モードを開始するように構成されている。いくつかの実施態様では、ユーザ入力が第2の入力状態から第1の入力状態に移行するときに侵入が発生する。いくつかの実施態様では、ユーザ入力が第1の入力状態にあるとき、ツールの自律的な、境界に準拠した動きは、回復モードでは無効のままになる。
【0018】
いくつかの実施態様では、ツールはツールドライブを含み、制御システムは、ツールが仮想境界に侵入していることに応じてツールドライブの動作を無効にするように構成される。いくつかの実施態様では、ユーザ入力が第2の入力状態から第1の入力状態に移行するときに侵入が発生する。
【0019】
いくつかの実施態様では、制御システムは、回復モードで仮想境界に準拠するようにツールを配置するようにユーザをガイドするように構成されている。いくつかの実施態様では、ガイドはユーザフィードバックを生成することによって行われる。いくつかの実施態様では、フィードバックには、可聴フィードバック、視覚フィードバック、及び触覚フィードバックの1つ以上が含まれる。いくつかの実施態様では、制御システムは、ツールが仮想境界に準拠するように配置されたときに、ユーザフィードバックの生成を停止するように構成されている。いくつかの実施態様では、制御システムは、ツールと仮想境界との間の相対的な動きを制限するように構成されている。いくつかの実施態様では、相対移動の制限は、ユーザ入力が第1の入力状態にあるときに、境界ハンドラを使用して境界制約を生成することによって発生する。
【0020】
いくつかの実施態様では、制御システムは、境界制約に基づいて仮想境界に準拠してツールを維持するように適合された制約力を計算するための制約ソルバーを含む。いくつかの実施態様では、制御システムは、制約力に基づく仮想シミュレーションでツールのダイナミクスをシミュレートし、命令されたポーズを出力するための仮想シミュレータを含む。いくつかの実施態様では、制御システムは、命令されたポーズに基づいてツールを動かすようにマニピュレータに命令するように構成される。
【0021】
いくつかの実施態様では、境界ハンドラは、境界が有効な状態と境界が無効な状態との間で動作可能である。境界が有効な状態とは、境界制約が境界ハンドラから制約ソルバーに送信され、それによってツールの自律的な、境界に準拠した動きを可能にする状態である。いくつかの実施態様では、ツールが仮想境界に侵入するような方法で仮想境界がツールに対して移動すると、境界に準拠した自律的な動きが可能になる。いくつかの実施態様では、境界制約が境界ハンドラから制約ソルバーに送信されなくなった境界が無効な状態により、ツールが仮想境界に侵入する様式で仮想境界がツールに対して移動可能になるように、ツールの自律的な、境界に準拠した動きが無効になる。いくつかの実施態様では、境界ハンドラは、第1の入力状態から第2の入力状態へのユーザ入力移行に応じて、境界が無効な状態で動作するように構成されている。いくつかの実施態様では、境界ハンドラは、仮想境界にツールが準拠し、第2の入力状態から第1の入力状態へのユーザ入力移行に応じて、境界が有効な状態で動作するように構成されている。いくつかの実施態様では、境界ハンドラは、仮想境界にツールが侵入し、第2の入力状態から第1の入力状態へのユーザ入力移行に応じて、境界が無効な状態で動作するように構成されている。
【0022】
いくつかの実施態様では、制御システムは、ユーザに触覚フィードバックを提供して、ツールを仮想境界に準拠するようにユーザを導くように構成されている。いくつかの実施態様では、1つ又は複数のガイド制約をアクティブにして、ツールを仮想境界に準拠するようにガイドすることにより、フィードバックが発生する。いくつかの実施態様では、制御システムは、ユーザに触覚フィードバックを提供して、ツールを仮想境界に準拠するようにユーザを導くように構成されている。いくつかの実施態様では、触覚フィードバックはツールの動きを減衰することによって発生する。いくつかの実施態様では、制御システムは、ツールが仮想境界に準拠するように配置されたときに、境界ハンドラを境界が無効な状態から境界が有効な状態に切り替えるように構成されている。
【0023】
いくつかの実施態様では、ユーザ入力は、第1の入力状態が、ユーザがツールをアクティブに使用していることを示し、第2の入力状態が、ユーザがツールを解放したことを示すように構成される。
【0024】
いくつかの実施態様では、ユーザ入力がツールに配置され、ユーザ入力が作動してユーザ入力が第1の入力状態になり、ユーザ入力が解放されてユーザ入力が第2の入力状態になるように、ユーザ入力が構成されている。いくつかの実施態様では、ツールはグリップを有し、ユーザ入力は、グリップのユーザの手を検出するための存在検出器を含む。
【0025】
いくつかの実施態様では、制御システムはペンダントを含み、ユーザ入力はペンダントに配置される。いくつかの実施態様では、ユーザ入力が作動してユーザ入力が第1の入力状態になり、ユーザ入力が解放されてユーザ入力が第2の入力状態になるように、ユーザ入力が構成されている。
【0026】
いくつかの実施態様では、ユーザ入力は、ツールにあるツール入力としてさらに定められる。いくつかの実施態様では、第1及び第2の入力状態は、ツール入力として第1の状態及びツール入力第2の状態がさらに定められる。いくつかの実施態様では、制御システムは、ペンダント及びペンダントに配置されたペンダント入力を含み、ペンダント入力は、ペンダント入力第1の状態及びペンダント入力第2の状態を有する。
【0027】
いくつかの実施態様では、マニピュレータは、ツール入力がツール入力の第1の状態にあるときにユーザによってツールに加えられるユーザの力及びトルクに応じてマニピュレータがツールを動かす手動モードで動作可能である。いくつかの実施態様では、マニピュレータは、ペンダント入力がペンダント入力の第1の状態にあるときにマニピュレータがツール経路に沿ってツールを移動させる半自律モードで動作可能である。いくつかの実施態様では、境界ハンドラは、手動モード及び半自律モードのいずれかから手動モードと半自律モードのもう一方へのマニピュレータの制御システム切り替え操作に応じて、ツールが仮想境界に準拠しているか、又は仮想境界に侵入しているかを判定するように構成される。いくつかの実施態様では、制御システムは、ツールの現在の位置からツール経路へのリードイン経路を生成するように構成された経路ハンドラを含む。いくつかの実施態様では、マニピュレータが手動モードから半自律モードに切り替わるときに、リードイン経路が生成される。いくつかの実施態様では、境界ハンドラは、リードイン経路に沿ったツールの移動が仮想境界への準拠を維持するか、仮想境界に侵入するかを判定するように構成される。いくつかの実施態様では、境界ハンドラは、リードイン経路に沿ったツールの動きが仮想境界への準拠を維持するか、又は仮想境界に侵入するかを、定位的相互作用機構が仮想境界への準拠を維持するか、仮想境界に侵入するかどうかを判定するツールに関連付けられた複数の定位的相互作用機構のモーションをモデル化することによって判定するように構成される。いくつかの実施態様では、境界ハンドラは、3つ以上の自由度で複数の定位的相互作用機構のモーションをモデル化するように構成される。いくつかの実施態様では、制御システムは、ツールが現在の位置からリードイン経路に沿ってツール経路へ移動した場合に境界ハンドラが、ツールが仮想境界に侵入すると判定したのに応じて、ユーザへのユーザフィードバックを生成するように構成されたガイドハンドラを含む。
【0028】
いくつかの実施態様では、制御システムは、以下の、ツールが停止すること、第1の入力状態から第2の入力状態へのユーザ入力の移行に続いて所定の期間が経過すること、ツールの線速度が1つ又は複数の閾値を下回ること、又はツールの角速度が1つ以上の閾値を下回っていることのうちの1つ又は複数に応じて、ツールの境界に準拠した自律的な動きを無効にするように構成される。
【0029】
いくつかの実施態様では、制御システムは、仮想境界に対して定められた許容誤差に基づいて、ツールが仮想境界に準拠したままであるかどうかを判定するように構成される。
【0030】
いくつかの実施態様では、制御システムは、回復モードで回復ツール経路を生成して、ツールを仮想境界に準拠するように移動するように構成されている。
【0031】
いくつかの実施態様では、制御システムは、開始位置から回復モードで仮想境界を移動するように構成されて、ツールが仮想境界に準拠するように戻り、その後、仮想境界を開始位置に戻しながら、ツールの境界に準拠した自律的な動きを可能にする。
【0032】
いくつかの実施態様では、境界ハンドラは、ユーザが第2の仮想境界を選択することに応じて、第2の仮想境界をアクティブにし、ツールが第2の仮想境界に準拠していると境界ハンドラが判定した場合、第1の仮想境界を非アクティブにするように構成され、そのため、制御システムは、ツールと第2の仮想境界との間の関係に基づいて、マニピュレータの動作及びツールの動きの制御に移行する。いくつかの実施態様では、ユーザが第2の仮想境界を選択することに応じて、境界ハンドラは、ツールが第2の仮想境界に侵入していると境界ハンドラが判定した場合、第1の仮想境界をアクティブとして維持し、制御システムがツールと第1の仮想境界の関係に基づいてマニピュレータの動作とツールの動きを制御し続けるように構成される。いくつかの実施態様では、制御システムは、ツールが第2の仮想境界に侵入していると境界ハンドラが判定したのに応じて、ユーザへのユーザフィードバックを生成するように構成される。
【0033】
いくつかの実施態様では、制御システムは、第1の入力状態及び第2の入力状態を有するユーザ入力を含み、ユーザ入力は、ツールに配置され、ユーザ入力が第1の入力状態にユーザ入力を置くようにユーザによって作動され、ユーザ入力が第2の入力状態にユーザ入力を置くようにユーザによって解放されるように構成される。いくつかの実施態様では、制御システムは、ユーザ入力が第1の入力状態にある間に、仮想境界セレクタを用いてユーザが第2の仮想境界を選択することを可能にするように構成される。いくつかの実施態様では、仮想境界セレクタは、ツールに配置された第2のユーザ入力を含む。いくつかの実施態様では、ツールはツールドライブを含み、制御システムは、ユーザが仮想境界セレクタで第2の仮想境界を選択するとき、ツールドライブの動作を継続するように構成される。いくつかの実施態様では、制御システムは、ユーザ入力が第1の入力状態にあり、第1の仮想境界がアクティブであるときに、ツールと第1の仮想境界との間の相対移動を制限するように構成される。いくつかの実施態様では、制御システムは境界ハンドラで第1の境界制約を生成することにより、そのように制限し、ユーザ入力が第1の入力状態にあり、境界ハンドラでの第2の境界制約を生成することによって第2の仮想境界がアクティブであるときに、ツールと第2の仮想境界との間の相対的な動きを制限するように構成される。いくつかの実施態様では、制御システムは第1の境界制約に基づいて第1の仮想境界に準拠して、又は第2の境界制約に基づいて第2の仮想境界に準拠してツールを維持するように適合された制約力を計算する制約ソルバーを含む。いくつかの実施態様では、制御システムは制約力に基づく仮想シミュレーションでツールのダイナミクスをシミュレートし、命令されたポーズを出力するための仮想シミュレータを含む。いくつかの実施態様では、制御システムは、命令されたポーズに基づいてツールを動かすようにマニピュレータに命令するように構成される。いくつかの実施態様では、仮想境界セレクタは、ユーザが第1及び第2の仮想境界の間でトグルすること、複数の仮想境界の中から順次トグルすること、又は仮想境界のリストから選択することを可能にするよう構成される。
【0034】
いくつかの実施態様では、第1及び第2のパラメータはそれぞれ剛性パラメータとしてさらに定められ、第1の定位的相互作用機構は第2の定位的相互作用機構よりも剛性である。いくつかの実施態様では、少なくとも1つのコントローラは、イベントを特定し、イベントの特定に応じて、第1のパラメータ又は第2のパラメータの少なくとも1つを変更するように構成される。いくつかの実施態様では、第1及び第2のパラメータはそれぞれ、定位的相互作用機構のサイズ、面積、体積、又は形状のうちの少なくとも1つとして定められる幾何学的パラメータとしてさらに定められ、第1の幾何学的パラメータは、第2の幾何学的パラメータとは異なる。いくつかの実施態様では、定第1及び第2の定位的相互作用機構のうちの1つ又は複数は、1つ又は複数の第2の対象物から距離の離れた位置に配置されることによって1つ又は複数の第2の対象物に関連付けられる。いくつかの実施態様では、少なくとも1つのコントローラは、第1及び第2のパラメータの1つ又は複数を定めるユーザ入力を受信するか、又は外科的情報に基づいて、第1及び第2のパラメータの1つ又は複数を自動的に定めるように構成されることによって、第1及び第2のパラメータのうちの1つ又は複数を定めるように構成される。いくつかの実施態様では、第1及び第2の定位的相互作用機構のうちの少なくとも1つと仮想境界との間の相互作用に基づいて応答を生成するために、少なくとも1つのコントローラは、第1及び第2の定位的相互作用機構の1つ又は複数と仮想境界との間の衝突又は予想される衝突を特定し、以下の、1つ又は複数の第2の対象物のポーズを調整すること、及び衝突又は予想される衝突に関するアラート又は通知を生成することの1つ又は複数を実行するように構成されている少なくとも1つのコントローラとしてさらに定められる応答を生成するように構成される。いくつかの実施態様では、第1又は複数の第2の対象物は、単一の第2の対象物としてさらに定められ、第1の定位的相互作用機構及び第2の定位的相互作用機構が単一の第2の対象物に関連付けられる。いくつかの実施態様では、1つ又は複数の第2の対象物は、別個の第2の対象物としてさらに定められ、第1の定位的相互作用機構は第2の対象物の1つに関連付けられ、第2の定位的相互作用機構は第2の対象物の別の1つに関連付けられる。いくつかの実施態様では、1つ又は複数の第1の対象物はさらに骨として定められ、仮想境界はさらに、除去されるべきではない解剖学的構造から除去されるべき解剖学的構造を描写する切断境界として定められ、1つ又は複数の第2の対象物は、回転切削ツールとしてさらに定められ、第1及び第2の定位的相互作用機構は、回転切削ツールに関連付けられており、回転切削ツールに対して異なる位置に配置され、第1及び第2のパラメータはそれぞれ剛性パラメータとしてさらに定められ、第1の定位的相互作用機構は第2の定位的相互作用機構よりも剛性である。いくつかの実施態様では、1つ又は複数の第1の対象物は、以下の、患者の解剖学的構造、ベース、リンク、ジョイント、エンドエフェクタ、ツール、滅菌アダプタ、エネルギーアプリケータを含む、ロボットマニピュレータを形成する運動学的チェーンの任意の部分、ハンドヘルドツール又はデバイス、手術台、ヘッドマウントデバイス、ハンドヘルドディスプレイデバイス又はタブレット、外科用トラッカー、リトラクター、画像化デバイス、手術室にいる人間のうちの1つ又は複数を含み、1つ又は複数の第2の対象物は、以下の、患者の解剖学的構造、ベース、リンク、ジョイント、エンドエフェクタ、ツール、滅菌アダプタ、エネルギーアプリケータを含む、ロボットマニピュレータを形成する運動学的チェーンの任意の部分、ハンドヘルドツール又はデバイス、手術台、ヘッドマウントデバイス、ハンドヘルドディスプレイデバイス又はタブレット、外科用トラッカー、リトラクター、画像化デバイス、手術室にいる人間のうちの1つ又は複数を含む。
【0035】
添付の図面と関連して考慮するとき、以下の詳細な説明を参照することによって、より良く理解されると、本開示の利点が容易に理解されるようになる。
【図面の簡単な説明】
【0036】
【
図2】外科システムを制御するための制御システムのブロック図である。
【
図3】ソフトウェアプログラムの機能ブロック図である。
【
図4】寛骨臼の外科的処置の境界ジェネレータの出力を示している。
【
図5】寛骨臼の外科的処置のための経路ジェネレータの出力を示している。
【
図6】椎体の外科的処置のための境界ジェネレータの出力を示している。
【
図7】大腿骨の外科的処置のための境界ジェネレータの出力を示している。
【
図8】大腿骨の外科的処置の経路ジェネレータの出力を示している。
【
図9】大腿骨の外科的処置の境界ジェネレータの出力を示している。
【
図11】制御システムによって動作可能なモジュールのブロック図である。
【
図13】仮想シミュレーションを実行するためのフォワードダイナミクスアルゴリズムのサンプルを示している。
【
図14】仮想シミュレーションを実行するためのフォワードダイナミクスアルゴリズムのサンプルを示している。
【
図15】境界が有効なモードと境界が無効のモードを切り替えるために制御システムによって実行されるステップのセットの例を示している。
【
図16】制約を解決し、フォワードダイナミクスを実行し、命令されたポーズを判定するために制御システムによって実行されるステップのセットの例を示している。
【
図16A】制約を解決し、フォワードダイナミクスを実行し、命令されたポーズを判定するために制御システムによって実行されるステップのセットの例を示している。
【
図17A】命令されたポーズを判定するときに、制御システムが衝突をどのように考慮するかを示している。
【
図17B】命令されたポーズを判定するときに、制御システムが衝突をどのように考慮するかを示している。
【
図17C】命令されたポーズを判定するときに、制御システムが衝突をどのように考慮するかを示している。
【
図17D】命令されたポーズを判定するときに、制御システムが衝突をどのように考慮するかを示している。
【
図18A】大腿骨の外科的処置中のツールと仮想境界の動きを示している。
【
図18B】大腿骨の外科的処置中のツールと仮想境界の動きを示している。
【
図18C】大腿骨の外科的処置中のツールと仮想境界の動きを示している。
【
図18D】大腿骨の外科的処置中のツールと仮想境界の動きを示している。
【
図18E】大腿骨の外科的処置中のツールと仮想境界の動きを示している。
【
図18F】大腿骨の外科的処置中のツールと仮想境界の動きを示している。
【
図18G】大腿骨の外科的処置中のツールと仮想境界の動きを示している。
【
図19】第1の仮想境界と第2の仮想境界の切り替えを示している。
【
図20】ロボット外科システムの構成要素に関連する複数の定位的相互作用機構を示している。
【発明を実施するための形態】
【0037】
I.概要
図1を参照して、外科システム10が示されている。システム10は、骨又は軟組織の治療など、患者12の標的部位又は解剖学的体積部Aを治療するのに有用である。
図1では、患者12は外科的処置を受けている。
図1の解剖学的構造には、患者12の大腿骨F、骨盤PEL、及び脛骨Tが含まれている。外科的処置には、組織の除去又は他の形態の治療が含まれ得る。治療には、組織の切断、凝固、病変、他のインサイチュでの組織の治療などが含まれ得る。いくつかの例では、外科的処置は、人工膝ジョイント部分置換術又は人工膝関節術、あるいは部分的な股関節術又は人工股関節術、肩関節術、脊椎手術、又は足首の手術を含む。いくつかの例では、システム10は、ユニコンパートメント、バイコンパートメント、マルチコンパートメント、又は全人工膝インプラント、アセタブラーカップインプラント、大腿骨ステムインプラント、スクリュー、アンカ、他の留め具を含む股関節及び膝インプラントなどの外科的インプラントによって置き換えられる物質を切り取るように設計されている。これらのタイプのインプラントのいくつかは、「Prosthetic Implant and Method of Implantation」と題された米国特許出願公開第2012/0330429号に示され、その開示は参照により本明細書に組み込まれる。本明細書に開示されるシステム10及び技術は、外科的又は非外科的である他の処置を実行するために使用され得るか、又は産業用途又は他の用途で使用され得る。
【0038】
システム10は、外科用ロボットとも呼ばれるロボットマニピュレータ14を含む。マニピュレータ14は、ベース16及び複数のリンク18を有する。マニピュレータカート17は、マニピュレータ14がマニピュレータカート17に固定されるようにマニピュレータ14を支持する。リンク18は、集合的に、マニピュレータ14の1つ又は複数のアーム(例えば、ロボットアーム)を形成する。マニピュレータ14は、(
図1に示されるように)シリアルアーム構成、パラレルアーム構成、又は任意の他の適切なマニピュレータ構成を有することができる。他の例では、複数のアーム構成で複数のマニピュレータ14を利用することができる。
【0039】
図1に示す例では、マニピュレータ14は、複数のジョイントJと、ジョイントJの位置データを判定するためにジョイントJに配置された複数のジョイントエンコーダ19とを備える。簡単にするために、
図1では、1つのジョイントエンコーダ19のみが示されているが、他のジョイントエンコーダ19が同様に示され得る。一例によるマニピュレータ14は、マニピュレータ14に対して少なくとも6の自由度(DOF)を実装する6つのジョイントJ1~J6を有する。しかし、マニピュレータ14は、任意の数の自由度を有し得、任意の適切な数のジョイントJを有し得、冗長なジョイントを有し得る。
【0040】
マニピュレータ14は、ジョイントエンコーダ19を必要としないが、代替的又は追加的に、各ジョイントJのモータに存在するモータエンコーダを利用し得る。また、マニピュレータ14は、回転ジョイントを必要としないが、代替的又は追加的に、1つ又は複数のプリズム状のジョイントを利用する。ジョイントタイプの任意の適切な組み合わせが企図される。
【0041】
マニピュレータ14のベース16は、一般に、マニピュレータ14、又は一般にシステム10の他の構成要素に固定基準座標系を提供するマニピュレータ14の一部である。一般に、マニピュレータ座標系MNPLの原点は、ベース16の固定基準で定められる。ベース16は、1つ又は複数のリンク18など、マニピュレータ14の任意の適切な部分に関して定めることができる。代替的に、又は追加的に、ベース16は、マニピュレータ14がカート17に物理的に取り付けられている場合など、マニピュレータカート17に関して定められ得る。一例では、ベース16は、ジョイントJ1及びJ2の軸の交点で定められる。したがって、ジョイントJ1とJ2は実際には可動の構成要素であるが、それでもジョイントJ1とJ2の軸の交点は仮想の固定基準ポーズであり、固定の位置と配向の基準の両方を提供し、マニピュレータ14及び/又はマニピュレータカート17に対して移動しない。
【0042】
いくつかの例では、マニピュレータ14は、ベース16がツールのベース部分(例えば、ユーザによってフリーハンドで保持される部分)であり、ツールの先端がベース部分に対して移動可能であるハンドヘルドマニピュレータであり得る。ベースの部分は追跡される基準の座標系を有し、ツールの先端には基準の座標系に対して計算される(例えば、モータ及び/又はジョイントエンコーダと順運動学の計算を介する)ツールの先端の座標系を有する。経路に対するポーズを判定できるため、ツールの先端の動きを経路に沿って制御できる。そのようなマニピュレータ14は、2012年8月31日に出願された「Surgical Instrument Including Housing, A Cutting Accessory that Extends from the Housing and Actuators that Establish the Position of the Cutting Accessory Relative to the Housing」と題する米国特許第9,707,043号に示されている。これは、参照により本明細書に組み込まれる。
【0043】
マニピュレータ14及び/又はマニピュレータカート17は、マニピュレータコントローラ26、又は他のタイプの制御ユニットを収容する。マニピュレータコントローラ26は、1つ又は複数のコンピュータ、又はマニピュレータ14のモーションを方向付ける任意の他の適切な形態のコントローラを備えることができる。マニピュレータコントローラ26は、中央処理装置(CPU)及び/又は他のプロセッサ、メモリ(図示せず)、及びストレージ(図示せず)を有し得る。マニピュレータコントローラ26には、以下に説明するようなソフトウェアがロードされている。プロセッサは、マニピュレータ14の動作を制御するための1つ又は複数のプロセッサを含むことができる。これらのプロセッサは、任意のタイプのプロセッサ、マルチプロセッサ及び/又はマルチコア処理システムであり得る。マニピュレータコントローラ26は、追加的に、又は代替的に、1つ又は複数のマイクロコントローラ、フィールドプログラマブルゲートアレイ、システムオンチップ、ディスクリート回路、及び/又は本明細書に記載される機能を実行することができる他の適切なハードウェア、ソフトウェア、又はファームウェアを含むことができる。プロセッサという用語は、任意の実施形態を単一のプロセッサに限定することを意図するものではない。マニピュレータ14はまた、1つ又は複数のディスプレイ及び/又は入力デバイス(例えば、押しボタン、センサ、スイッチ、キーボード、マウス、マイクロフォン(音声起動)、ジェスチャ制御デバイス、タッチスクリーン、ジョイスティック、フットペダルなど)を備えたユーザインターフェースUIを備え得る。
【0044】
外科用ツール20は、マニピュレータ14に結合し、ベース16に対して移動可能であり、特定のモードで解剖学的構造と相互作用する。ツール20は、特定の実施形態では、マニピュレータ14によって支持されるエンドエフェクタ22であるか、又はその一部を形成する。ツール20は、ユーザによって把持され得る。マニピュレータ14及びツール20の1つの可能な配置は、2013年8月2日に出願された「Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes」と題する米国特許第9,119,655号に記載されており、その開示は参照により本明細書に組み込まれる。マニピュレータ14及びツール20は、代替の構成で配置され得る。ツール20は、参照により本明細書に組み込まれる、「End Effector of a Surgical Robotic Manipulator」と題された、2014年3月15日に出願された米国特許出願公開第2014/0276949号に示されるものと同様であり得る。
【0045】
ツール20は、標的部位で患者12の組織に接触するように設計されたエネルギーアプリケータ24を含む。一例では、エネルギーアプリケータ24はバー25である。バー25は、実質的に球形であり得、球形の中心、半径(r)及び直径を含むことができる。あるいは、エネルギーアプリケータ24は、ドリルビット、鋸刃27(
図1の代替ツールを参照)、超音波振動チップなどであり得る。ツール20及び/又はエネルギーアプリケータ24は、任意の幾何学的特徴、例えば、周囲の長さ、円周、半径、直径、幅、長さ、体積、面積、表面/平面、モーションエンベロープの範囲(いずれか1つ又は複数の軸に沿って)などを含み得る。幾何学的特徴は、所望の治療を実行するために、標的部位の組織に対してツール20をどのように配置するかを判定するために考慮され得る。本明細書で説明する実施形態のいくつかでは、ツール中心点(TCP)を有する球形バー、及びTCPを有するサジタルソーブレードについて、便宜上及び説明を容易にするために記載するが、ツール20をいずれかの特定の形態に限定することを意図してはいない。
【0046】
ツール20は、ツール20への電力を制御する(例えば、ツール20の回転モータなどのツールドライブへの)、ツール20の動きを制御する、ツール20の灌注/吸引を制御する、及び/又は同様など、ツール20の動作を制御するためのツールコントローラ21を備え得る。ツールコントローラ21は、マニピュレータコントローラ26又は他の構成要素と通信し得る。ツール20はまた、ツールコントローラ21、マニピュレータコントローラ26、及び/又は本明細書に記載の他のコントローラに結合されている、1つ又は複数のディスプレイ及び/又は入力デバイス(例えば、プッシュボタン、トリガ、センサ、スイッチ、キーボード、マウス、マイクロフォン(音声起動)、ジェスチャ制御デバイス、タッチスクリーン、ジョイスティック、フットペダルなど)を備えたユーザインターフェースUIを含み得る。マニピュレータコントローラ26は、マニピュレータ座標系MNPLなどの座標系に関して、ツール20(例えば、TCPの)の状態(例えば、位置及び/又は配向)を制御する。マニピュレータコントローラ26は、速度(線形又は角度)、加速度、又はツール20のモーションの他の導関数を制御することができる。
【0047】
一例では、ツール中心点(TCP)は、エネルギーアプリケータ24で定められた所定の基準点である。TCPには、他の座標系に対して既知の、又は計算可能な(つまり、必ずしも静的である必要はない)ポーズがある。エネルギーアプリケータ24の形状は、TCP座標系において既知であるか、又はそれに対して定められている。TCPは、ツール20のバー25の球形の中心、又は鋸刃27の遠位端に配置されて、一点のみが追跡されるようにすることができる。TCPは、エネルギーアプリケータ24の構成に応じて様々な方法で定めることができる。マニピュレータ14は、TCPのポーズを判定することを可能にするために、ジョイント/モータエンコーダ、又は任意の他の非エンコーダ位置感知方法を使用することができる。マニピュレータ14は、ジョイント測定を使用してTCPポーズを判定することができ、及び/又はTCPポーズを直接測定するための技術を使用することができる。ツール20の制御は、中心点に限定されない。例えば、任意の適切なプリミティブ、メッシュなどを使用して、ツール20を表すことができる。
【0048】
システム10は、ナビゲーションシステム32をさらに含む。ナビゲーションシステム32の一例は、2013年9月24日に出願され、「Navigation System Including Optical and Non-Optical Sensors」と題された、米国特許第9,008,757号に記載されており、参照により本明細書に援用されている。ナビゲーションシステム32は、様々な対象物の動きを追跡する。このような対象物には、例えば、マニピュレータ14、ツール20、及び解剖学的構造、例えば、大腿骨F、骨盤PEL、及び脛骨Tが含まれる。ナビゲーションシステム32は、これらの対象物を追跡して、(ナビゲーション)ローカライザ座標系LCLZに関し、各対象物の状態の情報を収集する。ローカライザ座標系LCLZの座標は、変換を利用して、マニピュレータ座標系MNPL、他の座標系に、及び/又はその逆方向に変換できる。
【0049】
ナビゲーションシステム32は、ナビゲーションコントローラ36及び/又は他のタイプの制御ユニットを収容するカートアセンブリ34を含む。ナビゲーションユーザインターフェースUIは、ナビゲーションコントローラ36と動作可能に通信している。ナビゲーションユーザインターフェースは、1つ又は複数のディスプレイ38を含む。ナビゲーションシステム32は、1つ又は複数のディスプレイ38を使用して、追跡された対象物の相対的な状態のグラフィック表現をユーザに表示することができる。ナビゲーションユーザインターフェースUIは、ナビゲーションコントローラ36に情報を入力する、又はその他の方法により、ナビゲーションコントローラ36のある特定の態様を選択する/制御する1つ又は複数の入力デバイスをさらに含む。このような入力デバイスには、インタラクティブなタッチスクリーンディスプレイが含まれる。しかしながら、入力デバイスは、押しボタン、キーボード、マウス、マイクロフォン(音声起動)、ジェスチャ制御デバイス、フットペダルなどのうちのいずれか1つ又は複数を含み得る。
【0050】
ナビゲーションシステム32はまた、ナビゲーションコントローラ36に結合されたナビゲーションローカライザ44を含む。一例では、ローカライザ44は、光学的ローカライザであり、カメラユニット46を含む。カメラユニット46は、1つ以上の光学的センサ50を収容する外側筐体48を含む。ローカライザ44は、それ自体のローカライザコントローラ49を含み得、さらにビデオカメラVCを含み得る。
【0051】
ナビゲーションシステム32は、1つ又は複数のトラッカーを含む。一例では、トラッカーは、ポインタトラッカーPT、1つ又は複数のマニピュレータトラッカー52A、52B、第1の患者トラッカー54、第2の患者トラッカー55、及び第3の患者トラッカー56を含む。
図1の図示の例では、マニピュレータトラッカーはツール20(すなわち、トラッカー52A)にしっかりと取り付けられ、第1の患者トラッカー54は、患者12の大腿骨Fにしっかりと取り付けられ、第2の患者トラッカー55は、患者12の骨盤PELにしっかりと取り付けられ、第3の患者トラッカー56が患者12の脛骨Tにしっかりと取り付けられている。この例では、患者トラッカー54、55、56が、骨のセクションにしっかりと取り付けられている。ポインタトラッカーPTが、解剖学的構造をローカライザ座標系LCLZに登録するために使用されるポインタPに、しっかりと取り付けられている。マニピュレータトラッカー52A、52Bは、ツール20に加えて又はそれ以外にマニピュレータ14のいずれかの適切な構成要素に取り付けることができ、例えば、ベース16(すなわち、トラッカー52B)、又はマニピュレータ14のいずれか1つ又は複数のリンク18に取り付けることができる。トラッカー52A、52B、54、55、56、PTは、いずれかの適切な方法でそれぞれの構成要素に固定することができる。例えば、トラッカーは、それぞれのトラッカーとそれが関連付けられている対象物との関係を判定するのに適切な(補足的な)方法(測定)がある限り、堅固に固定されているか、柔軟に接続されているか(光ファイバ)、又は物理的にまったく接続されていない(超音波)場合がある。
【0052】
トラッカーのいずれか1つ又は複数は、アクティブマーカー58を含み得る。アクティブマーカー58は、発光ダイオード(LED)を含み得る。あるいは、トラッカー52A、52B、54、55、56、PTは、カメラユニット46から放出された光を反射する、反射器などの受動式マーカーを有し得る。本明細書に具体的に記載されていない他の適切なマーカーを利用することができる。
【0053】
ローカライザ44は、トラッカー52A、52B、54、55、56、PTを追跡して、それぞれに取り付けられた対象物の状態にそれぞれ対応するトラッカー52A、52B、54、55、56、PTのそれぞれの状態を判定する。ローカライザ44は、既知の三角測量技術を実行して、トラッカー52、54、55、56、PT、及び関連する対象物の状態を判定することができる。ローカライザ44は、トラッカー52A、52B、54、55、56、PTの状態をナビゲーションコントローラ36に提供する。一例では、ナビゲーションコントローラ36は、トラッカー52A、52B、54、55、56、PTの状態を判定し、マニピュレータコントローラ26に伝達する。本明細書で使用される場合、対象物の状態には、追跡される対象物の位置及び/又は配向、又は位置及び/又は配向の同等物/派生物を定めるデータが含まれるが、これらに限定されない。例えば、状態は、対象物のポーズであり得、線形速度データ、及び/又は角速度データなどを含み得る。
【0054】
ナビゲーションコントローラ36は、1つ又は複数のコンピュータ、又は任意の他の適切な形態のコントローラを備えることができる。ナビゲーションコントローラ36は、中央処理装置(CPU)及び/又は他のプロセッサ、メモリ(図示せず)、及びストレージ(図示せず)を有する。これらのプロセッサは、いずれかのタイプのプロセッサ、マイクロプロセッサ、又はマルチプロセッサシステムであることができる。ナビゲーションコントローラ36には、ソフトウェアがロードされている。ソフトウェアは、例えば、ローカライザ44から受信した信号を、追跡されている対象物の位置及び配向を表すデータに変換する。ナビゲーションコントローラ36は、追加的に、又は代替的に、1つ又は複数のマイクロコントローラ、フィールドプログラマブルゲートアレイ、システムオンチップ、ディスクリート回路、及び/又は本明細書に記載される機能を実行することができる他の適切なハードウェア、ソフトウェア、又はファームウェアを含むことができる。プロセッサという用語は、任意の実施形態を単一のプロセッサに限定することを意図するものではない。
【0055】
対象物の状態を判定するために三角測量技術を使用するナビゲーションシステム32の一例が示されているが、ナビゲーションシステム32は、マニピュレータ14、ツール20、及び/又は患者12を追跡するための他の任意の適切な構成を有し得る。別の例では、ナビゲーションシステム32及び/又はローカライザ44は超音波ベースである。例えば、ナビゲーションシステム32は、ナビゲーションコントローラ36に結合された超音波画像化装置を備え得る。超音波画像装置は、前述の対象物、例えば、マニピュレータ14、ツール20、及び/又は患者12のいずれかを画像化し、超音波画像に基づいてナビゲーションコントローラ36への状態信号を生成する。超音波画像は、2D、3D、又は両方の組み合わせであり得る。ナビゲーションコントローラ36は、対象物の状態を判定するためにほぼリアルタイムで画像を処理することができる。超音波画像装置は、任意の適切な構成を有し得、
図1に示されるようにカメラユニット46とは異なり得る。
【0056】
別の例では、ナビゲーションシステム32及び/又はローカライザ44は、無線周波数(RF)ベースである。例えば、ナビゲーションシステム32は、ナビゲーションコントローラ36に結合されたRFトランシーバを備え得る。マニピュレータ14、ツール20、及び/又は患者12は、取り付けられたRFエミッタ又はトランスポンダを備え得る。RFエミッタ又はトランスポンダは、受動的又は能動的に通電され得る。RFトランシーバは、RF追跡信号を送信し、RFエミッタから受信したRF信号に基づいて、ナビゲーションコントローラ36に状態信号を生成する。ナビゲーションコントローラ36は、受信したRF信号を分析して、相対的な状態をそれに関連付けることができる。RF信号は、任意の適切な周波数のものであり得る。RFトランシーバは、RF信号を効果的に使用して対象物を追跡するために、任意の適切な位置に配置することができる。さらに、RFエミッタ又はトランスポンダは、
図1に示されるトラッカー52A、52B、54、55、56、PTとは大きく異なり得る任意の適切な構造的構成を有し得る。
【0057】
さらに別の例では、ナビゲーションシステム32及び/又はローカライザ44は電磁ベースである。例えば、ナビゲーションシステム32は、ナビゲーションコントローラ36に結合されたEMトランシーバを備えてもよい。マニピュレータ14、ツール20、及び/又は患者12は、任意の適切な磁気トラッカー、電磁トラッカー、誘導トラッカーなど、取り付けられたEM構成要素を備え得る。トラッカーは受動的又は能動的に通電できる。EMトランシーバは、EM場を生成し、トラッカーから受信したEM信号に基づいて、ナビゲーションコントローラ36への状態信号を生成する。ナビゲーションコントローラ36は、受信したEM信号を分析して、それに相対的な状態を関連付けることができる。この場合も、そのようなナビゲーションシステム32の例は、
図1に示されるナビゲーションシステム32の構成とは異なる構造的構成を有するのでもよい。
【0058】
ナビゲーションシステム32は、本明細書に具体的に記載されていない他の任意の適切な構成要素又は構造を有することができる。さらに、示されるナビゲーションシステム32に関して上で説明されている技術、方法、及び/又は構成要素のいずれかが、本明細書で説明されるナビゲーションシステム32の他の例のいずれかのために実装又は設けることができる。例えば、ナビゲーションシステム32は、慣性追跡のみ、又は追跡技術の任意の組み合わせを利用することができ、追加的又は代替的に、光ファイバベースの追跡、マシンビジョン追跡などを含むことができる。
【0059】
図2を参照すると、システム10は、他の構成要素の中でも、マニピュレータコントローラ26、ナビゲーションコントローラ36、及びツールコントローラ21を含む制御システム60を含む。制御システム60は、
図3に示される1つ又は複数のソフトウェアプログラム及びソフトウェアモジュールをさらに含む。ソフトウェアモジュールは、システム10の制御を支援するためにデータを処理するために、マニピュレータコントローラ26、ナビゲーションコントローラ36、ツールコントローラ21で動作する1つ又は複数のプログラムの一部、又はそれらの任意の組み合わせであり得る。ソフトウェアプログラム及び/又はモジュールは、マニピュレータコントローラ26、ナビゲーションコントローラ36、ツールコントローラ21、又はそれらの組み合わせの非一時的メモリ64に格納され、コントローラ21、26、36の1つ又は複数のプロセッサ70によって実行されるコンピュータ可読命令を含む。メモリ64は、RAM、不揮発性メモリなどの任意の適切なメモリ構成であり得、ローカルに又はリモートデータベースから実装され得る。さらに、ユーザにプロンプトを表示及び/又は通信するためのソフトウェアモジュールは、1つ又は複数のプログラムの一部を形成し得、マニピュレータコントローラ26、ナビゲーションコントローラ36、ツールコントローラ21、又はそれらの任意の組み合わせにおけるメモリ64に格納された命令を含み得る。ユーザは、ナビゲーションユーザインターフェースUI又は他のユーザインターフェースUIの入力デバイスのいずれかとインタラクトして、ソフトウェアモジュールと通信することができる。ユーザインターフェースソフトウェアは、マニピュレータコントローラ26、ナビゲーションコントローラ36、及び/又はツールコントローラ21とは別個のデバイスで実行することができる。
【0060】
制御システム60は、本明細書に記載の機能及び方法を実行するのに適した入力、出力、及び処理デバイスの任意の適切な構成を含むことができる。制御システム60は、マニピュレータコントローラ26、ナビゲーションコントローラ36、又はツールコントローラ21、あるいはそれらの任意の組み合わせを含み得るか、又はこれらのコントローラのうちの1つのみを含み得る。これらのコントローラは、
図2に示すように、有線バス又は通信ネットワークを介して、無線通信を介して、又はその他の方法で通信できる。制御システム60はまた、コントローラと呼ばれることもある。制御システム60は、1つ又は複数のマイクロコントローラ、フィールドプログラマブルゲートアレイ、システムオンチップ、ディスクリート回路、センサ、ディスプレイ、ユーザインターフェース、インジケータ、及び/又は本明細書に記載される機能を実行することができる他の適切なハードウェア、ソフトウェア、又はファームウェアを含むことができる。
【0061】
II.仮想境界とツール経路
図3を参照すると、制御システム60によって使用されるソフトウェアは、境界ジェネレータ66を含む。
図4に示されるように、境界ジェネレータ66は、ツール20の動き及び/又は動作を制限するための仮想境界71を生成するソフトウェアプログラム又はモジュールである。仮想境界71は、1次元、2次元、3次元であり得、点、線、軸、軌道、平面、体積部、三角形メッシュなどを含み得る。仮想境界71は、単純な形状又は複雑な幾何学的形状を有し得る。いくつかの実施形態では、仮想境界71は、三角形メッシュによって定められる表面である。仮想境界71は、仮想対象物と呼ばれることもある。仮想境界71は、例えば、ツール20が境界によって定められた体積部の内部に保持されることが望ましい場合はキープイン境界、又はツール20が境界によって定められた体積部から離れ続けることが望ましい場合はキープアウト境界である。仮想境界71はまた、ツール20が境界を定める点、線、平面、表面などに保持されることが望ましい場合はキープオン境界、又はツール20が境界を定める点、線、平面、表面などから離れることが望ましい場合はキープオフ境界であり得る。仮想境界71はまた、これらのタイプの境界の組み合わせであり得る。他のタイプの境界も企図されている。
【0062】
仮想境界71は、3D骨モデルなどの解剖学的モデルAMに関して定めることができる。解剖学的モデルAMは、位置合わせ又は他のプロセスを介して患者の解剖学的構造にマッピングされることにより、実際の患者の解剖学的構造に関連付けられる。
図4の例では、仮想境界71は、寛骨臼へのアクセスをもたらす入口部分71a(開口部)を備えた寛骨臼を実質的に取り囲む略球形のメッシュを含む。入口部分は漏斗状又は円錐形である。この仮想境界71は、寛骨臼の3Dモデルに関連付けられている。
【0063】
解剖学的モデルAM及び関連する仮想境界71は、1つ又は複数の患者トラッカー54、55、56に位置合わせされる。したがって、解剖学的モデルAM(及び関連する実際の患者の解剖学的構造)及び解剖学的モデルAMに固定された仮想境界71は、患者トラッカー54、55、56によって追跡することができる。仮想境界71はインプラントに固有であり得る、例えば、インプラントのサイズ、形状、体積などに基づいて定められる、及び/又は、患者に固有であり得、例えば患者の解剖学的構造に基づいて定められる。仮想境界71は、術前、術中、又はそれらの組み合わせで作成される境界であり得る。言い換えれば、仮想境界71は、外科的処置が始まる前、外科的処置中(組織除去中を含む)、又はそれらの組み合わせで定められ得る。いずれの場合でも、制御システム60は、仮想境界71をメモリ内/メモリから格納/検索し、メモリから仮想境界71を取得し、術前に仮想境界71を作成し、仮想境界71を術中に作成することなどによって仮想境界71を取得する。
【0064】
マニピュレータコントローラ26及び/又はナビゲーションコントローラ36は、1つ又は複数の仮想境界71に関連するツール20の状態を追跡する。一例では、TCPの状態は、ツール20が仮想境界に準拠し続けるように、仮想シミュレーションを介してツール20の仮想剛体モデルに適用される力を判定する目的で、仮想境界71に対して測定される。ツール20は、仮想境界71を超えて移動されないなど、仮想境界71に対して所望の関係を維持することによって、及び/又は仮想境界71に対して所望の位置及び/又は配向を維持することによって、仮想境界に準拠し続ける。ツール20による仮想境界71のある程度の貫入又は仮想境界71の完全な準拠からの逸脱が仮想境界71に侵入していると見なされないように、事前に定義された構成可能な許容誤差もいずれかの仮想境界71に対して確立され得ることを理解されたい。例えば、ツール20が仮想境界71に0.1ミリメートル(mm)未満侵入する限り、ツール20が仮想境界71に準拠し続けるように、小さな許容誤差を0.1mmに設定することができる(すなわち、これは、仮想境界71の侵入とは見なされない)。場合によっては、より大きな許容誤差が適切な場合がある。仮想シミュレーションの結果は、マニピュレータ14に命令される。制御システム60は、物理的な境界/障壁の存在下で物理的なハンドピースが応答する方法をエミュレートする様式でマニピュレータ14を制御/配置する。境界ジェネレータ66は、マニピュレータコントローラ26上に実装され得る。あるいは、境界ジェネレータ66は、ナビゲーションコントローラ36などの他の構成要素に実装され得る。
【0065】
図3及び5を参照すると、経路ジェネレータ68は、制御システム60によって実行される別のソフトウェアプログラム又はモジュールである。一例では、経路ジェネレータ68は、マニピュレータコントローラ26によって実行される。経路ジェネレータ68は、インプラントを受け入れるために解剖学的構造のセクションを除去するためなど、ツール20がトラバースするためのツール経路TPを生成する。ツール経路TPは、複数のパスセグメントPSを含み得るか、又は単一のパスセグメントPSを含み得る。パスセグメントPSは、直線セグメント、曲線セグメント、それらの組み合わせなどであり得る。ツール経路TPはまた、解剖学的モデルAMに関して定められ得、患者トラッカー54、55、56のうちの1つ以上を介して追跡され得る。ツール経路TPは、インプラントに固有であり得、例えば、インプラントのサイズ、形状、体積などに基づいて定められる、及び/又は患者に固有であり得、例えば、患者の解剖学的構造に基づいて定義される。ツール経路TPは、ツール20のTCPがシステム10の特定の動作中に移動することを意図されている3Dの経路であり得る。
【0066】
本明細書で説明される1つのバージョンでは、ツール経路TPは、組織除去経路として定められるが、他のバージョンでは、ツール経路TPは、組織除去以外の治療に使用され得る。本明細書に記載される組織除去経路の一例は、粉砕経路72を含む。「粉砕経路」という用語は、一般に、解剖学的構造を粉砕するための標的部位の近くのツール20の経路を指し、ツール20が経路の全持続期間にわたって作動可能に解剖学的構造を粉砕することを要求することを意図しないことを理解されたい。例えば、粉砕経路72は、ツール20が粉砕なしである場所から別の場所に移行するセクション又はセグメントを含み得る。さらに、組織切除など、粉砕経路72に沿った他の形態の組織除去を使用することができる。粉砕経路72は、術前、術中、又はそれらの組み合わせで作成される事前に定義された経路であり得る。換言すれば、粉砕経路72は、外科的処置が始まる前、外科的処置の間(組織を除去する間を含む)、又はそれらの組み合わせで定められ得る。いずれの場合でも、制御システム60は、メモリ内/メモリからの粉砕経路72の格納/検索、メモリからの粉砕経路72の取得、術前の粉砕経路72の作成、術中での粉砕経路72の作成などによって、粉砕経路72を取得する。粉砕経路72は、任意の適切な形状、又は円形、らせん/栓抜き、線形、曲線、それらの組み合わせなどの形状の組み合わせを有することができる。
図5に示される粉砕経路72は、ツール20によってトラバースされるとき、寛骨臼から材料を除去して、寛骨臼カップインプラントが寛骨臼に取り付けられるためのスペースを作ることを目的としている。
【0067】
仮想境界71及び/又は粉砕経路72の例を
図4~9に示す。示される仮想境界71及び/又は粉砕経路72の特定の形状及び配置は、例示の目的のためである。他の形状や配置も可能である。前に説明したように、
図4及び5は、寛骨臼カップインプラントを受け入れるために寛骨臼が準備される(例えば、粉砕される)外科的処置で使用するために生成される仮想境界71及び粉砕経路72を示す。
【0068】
図6は、椎体へのアクセスをもたらす入口部分71a(開口部)を備えた椎体を実質的に取り囲む略球形のメッシュを含む仮想境界71を示している。入口部分71aは、漏斗又は円錐形を有し、円筒形部分71bに延びる。この仮想境界71は、椎体の3Dモデルに関連付けられている。この仮想境界71は、椎体がスクリュー又は他のインプラントを受けるために準備されている(例えば、粉砕されている)外科的処置で使用するために生成される。
【0069】
図7は、大腿骨へのアクセスをもたらす入口部分71a(開口部)を備えた大腿骨の一端を実質的に取り囲む略球形のメッシュを含む仮想境界71を示している。入口部分71aは、漏斗又は円錐形を有し、大腿骨の髄管を下って続く管部分71bまで延びる。この仮想境界71は、大腿骨の3Dモデルに関連付けられる。
図8は、ツール20が大腿骨から材料を除去して大腿骨ステムインプラントに道を譲ることができるように定められた粉砕経路72を示している。したがって、
図7及び8は、大腿骨Fが大腿骨ステムインプラントを受け入れるために準備される(例えば、粉砕される)外科的処置で使用するために生成される仮想境界71及び粉砕経路72を示している。
【0070】
図9は、大腿骨の遠位端を通る5つの切断面に対して生成される一連の仮想境界71を示している。
図9の仮想境界71のそれぞれは、大腿骨へのアクセスをもたらす入口部分71a(開口部)を備えた大腿骨の遠位端を実質的に取り囲む略球形のメッシュを含む。入口部分71aは、5つの切断面73a~73eのうちの1つに沿って定められた切断スロット71bに続く。これらの仮想境界71は、人工膝関節全置換術を受けるために大腿骨Fが(例えば、平面切除を介して)準備されている外科的処置で使用するために生成される。他のタイプ/形状の仮想境界及び/又は粉砕経路72は、他の外科的処置での使用が企図されている。
【0071】
仮想境界71及び/又は粉砕経路72を生成するためのシステム及び方法の一例は、「Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes」と題された米国特許第9,119,655号に記載されている。その開示は、参照により本明細書に組み込まれる。いくつかの例では、仮想境界71及び/又は粉砕経路72は、マニピュレータコントローラ26又はナビゲーションコントローラ36ではなく、オフラインで生成され得る。その後、仮想境界71及び/又は粉砕経路72は、実行時にマニピュレータコントローラ26によって利用され得る。
【0072】
図3に戻って参照すると、2つの追加のソフトウェアプログラム又はモジュールが、マニピュレータコントローラ26及び/又はナビゲーションコントローラ36で実行される。1つのソフトウェアモジュールが行動制御74を実行する。行動制御74は、ツール20の次の命令された位置及び/又は配向(例えば、ポーズ)を示すデータを計算するプロセスである。行動制御74からTCPの位置のみが出力される場合もあれば、ツール20の位置と配向が出力される場合もある。境界ジェネレータ66、経路ジェネレータ68、及び力/トルクセンサSなどの1つ又は複数のセンサからの出力は、行動制御74への入力として供給されて、ツール20の次の命令された位置及び/又は配向を判定することができる。行動制御74は、これらの入力を、以下でさらに説明する1つ又は複数の仮想制約と共に処理して、命令されたポーズを判定することができる。
【0073】
第2のソフトウェアモジュールは、モーション制御76を実行する。モーション制御の一態様は、マニピュレータ14の制御である。モーション制御76は、行動制御74から次の命令されたポーズを定めるデータを受け取る。これらのデータに基づいて、モーション制御76は、(例えば、逆運動学及びヤコビアン計算機を介して)マニピュレータ14のジョイントJのジョイント角度の次の位置を判定し、マニピュレータ14が、行動制御74によって命令されたように、例えば、命令されたポーズでツール20を配置することができるようにする。言い換えれば、モーション制御76は、デカルト空間で定められ得る、命令されたポーズをマニピュレータ14のジョイント角度に処理し、マニピュレータコントローラ26がそれに応じてジョイントモータに命令して、マニピュレータ14のジョイントJを動かし、ツール20の命令されたポーズに対応する命令されたジョイント角度にすることができるようにする。1つのバージョンでは、モーション制御76は、各ジョイントJのジョイント角度を調整し、各ジョイントモータが出力するトルクを継続的に調整して、ジョイントモータが関連するジョイントJを命令されたジョイント角度に駆動することを可能な限り綿密に確実にする。
【0074】
境界ジェネレータ66、経路ジェネレータ68、行動制御74、及びモーション制御76は、ソフトウェアプログラム78のサブセットであり得る。あるいは、それぞれは、別々に及び/又はそれらの任意の組み合わせで独立して動作するソフトウェアプログラムであり得る。「ソフトウェアプログラム」という用語は、本明細書では、説明された技術的解決策の様々な機能を実行するように構成されたコンピュータ実行可能命令を説明するために使用される。簡単にするために、「ソフトウェアプログラム」という用語は、少なくとも、境界ジェネレータ66、経路ジェネレータ68、行動制御74、及び/又はモーション制御76のうちのいずれか1つ又は複数を包含することを意図している。ソフトウェアプログラム78は、マニピュレータコントローラ26、ナビゲーションコントローラ36、又はそれらの任意の組み合わせで実施することができ、又は制御システム60によって任意の適切な方法で実施することができる。
【0075】
臨床アプリケーション80は、ユーザの相互作用を処理するために提供され得る。臨床アプリケーション80は、ユーザの相互作用の多くの側面を処理し、術前の計画、インプラントの配置、位置合わせ、骨の準備の視覚化、インプラントの適合性の術後評価などを含む、手術ワークフローを調整する。臨床アプリケーション80はディスプレイ38に出力するように構成されている。臨床アプリケーション80は、それ自体の別個のプロセッサ上で実行することができ、又はナビゲーションコントローラ36と一緒に実行することができる。一例では、臨床アプリケーション80は、インプラントの配置がユーザによって設定された後、境界ジェネレータ66及び/又は経路ジェネレータ68とインターフェースし、次に、境界ジェネレータ66及び/又は経路ジェネレータ68が戻る仮想境界71及び/又はツール経路TPを、実行のためにマニピュレータコントローラ26に送信する。マニピュレータコントローラ26は、本明細書で説明されるようにツール経路TPを実行する。マニピュレータコントローラ26は、機械加工を開始又は再開するときに、生成されたツール経路TPにスムーズに戻るために、特定のセグメント(例えば、引き込みセグメント)をさらに作成することができる。マニピュレータコントローラ26はまた、仮想境界71を処理して、以下でさらに説明するように、対応する仮想制約を生成することができる。
【0076】
III.動作モード
システム10は、参照により本明細書に組み込まれる米国特許第9,119,655号に記載されているような手動モードで動作することができる。ここで、ユーザは手動で指示し、マニピュレータ14は、標的部位でツール20及びそのエネルギーアプリケータ24の移動を実行する。ユーザは、ツール20に物理的に接触して、手動モードでツール20を動かす。1つのバージョンでは、マニピュレータ14は、ツール20を配置するために、ユーザによってツール20に加えられる力及びトルクを監視する。例えば、マニピュレータ14は、ユーザによってツール20に加えられた力及びトルクを検出及び測定し、制御システム60によって使用される対応する入力を生成する1つ又は複数のセンサ(例えば、力/トルクセンサS)を備え得る(例えば、1つ又は複数の対応する入力/出力信号)。ユーザによって加えられる力及びトルクは、手動モードでツール20を動かす方法を判定するために使用される外力Fextを少なくとも部分的に定める。外力Fextは、参照により本明細書に組み込まれる米国特許第9,119,655号に記載されているように、重力補償力、逆駆動力など、ユーザによって加えられるもの以外の他の力及びトルクを含み得る。したがって、ユーザによって加えられる力及びトルクは、外力Fextを少なくとも部分的に定め、場合によっては、手動モードでのツール20の全体的な動きに影響を与える外力Fextを完全に定め得る。
【0077】
力/トルクセンサSは、例えば、参照により本明細書に組み込まれる米国特許第9,119,655号に開示されているように、6DOF力/トルク変換器を備え得る。力/トルクセンサSは、ツール20、マニピュレータ14、又はその両方の一部を形成し得る。力/トルクセンサSは、ツール20とマニピュレータ14の間のインターフェースの一部を形成できるか、ユーザがツール20に加える力及びトルクが力/トルクセンサSに伝達されるように任意の適切な場所に配置することができる。マニピュレータコントローラ26及び/又はナビゲーションコントローラ36は、力/トルクセンサSからの入力(信号など)を受け取る。ユーザによって加えられた力及びトルクに応じて、マニピュレータ14はユーザによって加えられた力及びトルクに基づいて、発生したであろう動きをエミュレートする様式でツール20を動かす。
【0078】
手動モードでのツール20の動きはまた、境界ジェネレータ66によって生成された1つ又は複数の仮想境界71に関して抑制され得る(例えば、制限され得る)。一部のバージョンでは、力/トルクセンサSによって取得された測定値は、力/トルクセンサSの力/トルク座標系FTから、仮想シミュレーションがツール20の仮想剛体モデルにおいて実行される仮想質量座標系VMなどの別の座標系に変換され、仮想シミュレーションで仮想剛体に仮想的に力及びトルクを適用して、以下に説明するように、これらの力及びトルク(他の入力の中でも)が仮想剛体の動きにどのように影響するかを最終的に判断できるようにする。
【0079】
システム10はまた、マニピュレータ14が粉砕経路72に沿ってツール20を自律的に動かす半自律モードで動作することができる(例えば、マニピュレータ14のアクティブジョイントJは、ユーザからのツール20の力/トルクを必要とせずにツール20を動かすように動作する)。半自律モードでの動作の例は、参照により本明細書に組み込まれる米国特許第9,119,655号にも記載されている。いくつかの実施形態では、マニピュレータ14が半自律モードで動作するとき、マニピュレータ14は、ユーザの支援なしにツール20を動かすことができる。ユーザ支援がないということは、ユーザがツール20を動かすためにツール20に物理的に接触しないことを意味し得る。代わりに、ユーザは、マニピュレータ14(例えば、有線又は無線)と通信しているリモートコントロールRC(
図1を参照)を使用して、動きの開始及び停止を制御することができる。リモートコントロールRCは、ユーザの手に保持されるか、さもなければユーザによって把持又は支持されるペンダントの形態であり得る。ペンダントは、ユーザがペンダントを保持及び操作することを可能にするために、任意の適切なサイズ及び/又は形状を有し得る。一部のバージョンでは、ペンダントは携帯用電子機器である。
【0080】
ツール20及びリモートコントロールRCのユーザインターフェースUIは、それぞれ、マニピュレータ14の動作を制御するために、ツールコントローラ21、マニピュレータコントローラ26、及び/又はナビゲーションコントローラ36に結合されている1つ又は複数のユーザ入力デバイス(例えば、押しボタン、センサ、スイッチ、キーボード、マウス、マイク(音声起動)、ジェスチャ制御デバイス、タッチスクリーン、ジョイスティック、フットペダルなど)を含み得る。例えば、ツール20のユーザインターフェースUI上のユーザ入力デバイスの1つは、第1及び第2の入力状態を有するツール入力82(例えば、スイッチ又は他の形態のユーザ入力デバイス)であり得る(
図1を参照)。ツール入力82は、第1の入力状態に置かれるようにユーザによって作動(例えば、押されて保持される)され得、第2の入力状態に置かれるために解放され得る。ツール20は、ツール入力82が配置されているグリップ83を有することができる。いくつかのバージョンでは、ツール入力82は、オン/オフ状態を切り替える瞬間的な接触スイッチ、静電容量センサ、光学センサなどのように、ユーザの手の存在を検出する存在検出器である。したがって、ツール入力82は、第1の入力状態が、ユーザがアクティブにツール20に関与していることを示し、第2の入力状態が、ユーザがツール20を解放したことを示すように構成される。
【0081】
リモートコントロールRC上の入力デバイスの1つは、第1及び第2の入力状態を有するペンダント入力RC1(例えば、スイッチ又は他の形態のユーザ入力デバイス)であり得る。ツール入力82と同様に、ペンダント入力RC1は、第1の入力状態になるようにユーザによって作動(例えば、押されて保持される)され得、第2の入力状態になるために解放され得る。ペンダント入力RC1が作動されるとき、リモートコントロールRC上の二次ペンダント入力RC2、RC3(例えば、スイッチ又は他の形態のユーザ入力デバイス)は、マニピュレータ14の送り速度、例えばマニピュレータ14がツール20を動かす速度を制御することによって、次にマニピュレータ14の動きを引き起こし得る。例えば、二次ペンダント入力RC2は、送り速度を遅くすることができ、二次ペンダント入力RC3は、半自律モードで送り速度を上げることができる。ユーザペンダントとして具体化されたそのようなリモートコントロールRCは、「Robotic Systems and Methods for Controlling a Tool Removing Material from a Workpiece」と題された、Moctezuma de La Barreraらの米国特許第10,117,713号に開示されている。これは、参照により本明細書に組み込まれる。
【0082】
ツール入力82及びペンダント入力RC1は、連続作動装置の形態であり得る。すなわち、どのユーザ入力が作動されるかに応じて、手動モード又は半自律モードでツール20のモーションを可能にするために連続的に作動されなければならない入力である。例えば、ユーザがツール入力82を継続的に作動させ、手動モードが有効にされている間、マニピュレータ14は、ユーザによって加えられた入力の力及びトルクに応じて移動し、制御システム60は、仮想境界71に患者の解剖学的構造を保護させる。ツール入力82が解放されると、力/トルクセンサSからの入力は、マニピュレータ14が、ユーザによってツール20に加えられた力及びトルクにもはや応答しないように無効にされ得る。
【0083】
通常の動作状態では、ツール入力82が第1の入力状態(例えば、作動)にあるとき、ペンダント入力RC1の状態に関係なく(ツール入力82が優先される)、マニピュレータ14は手動モードで動作し、制御システム60は、境界が有効な状態で動作して、その時点で制御システム60によって使用されている仮想境界71(又は複数の境界)に準拠してツール20を維持する。同様に、通常の動作状態では、ツール入力82が第2の入力状態(例えば、解放)にあり、ペンダント入力RC1が第1の入力状態(例えば、作動)にあるとき、マニピュレータ14は、半自律モードにて動作し、制御システム60は、境界が有効な状態で動作して、ツール20を仮想境界71に準拠させ、ツール経路TPに準拠させるのを維持する。
【0084】
境界が有効な状態では、制御システム60は、マニピュレータ14の動作を制御して、ツール20を仮想境界71に準拠させて維持する。結果として、境界が有効な状態では、制御システム60は、マニピュレータ14を制御して、ツール20の自律的な動きを引き起こすことができ、仮想境界71が、他の場合にはツール20に対し仮想境界71に侵入させるような様式でツール20に対して移動する場合、制御システム60は、ツール20を動かすことによって、仮想境界71のそのような動きを補償することができる。このような自律的な動きは、自律的な、境界に準拠した動きと呼ぶことができる。例えば、マニピュレータ14が手動モードで動作しているが、ユーザがツール20のいずれかの動きを引き起こすのをやめた場合、例えば、ユーザは依然としてツール入力82を作動させているが、いずれのユーザの力又はトルクをもツール20に加えておらず、仮想境界71(患者の解剖学的構造に対して固定されている)がツール20のTCPをわずかに超えて移動するように患者の解剖学的構造が動かされる場合、次に制御システム60は、マニピュレータ14におけるジョイントモータの1つ又は複数を、仮想境界71に準拠するようツール20のTCPを保つようツール20の補償的な動きをもたらす様式にて作動させることよって、反応する。
【0085】
ツール入力82及びペンダント入力RC1が両方とも第2の入力状態にあるとき(例えば、どちらも作動されていないとき)、マニピュレータ14は、ホールドモード及び境界が無効な状態で動作する。ホールドモードでは、ツール20の動きは事実上無効にされる。この場合、マニピュレータ14は、エンコーダ19を監視し、ユーザによってマニピュレータ14又はツール20に不注意に加えられた重力又は力による外力に抵抗するようジョイントモータを能動的に駆動することにより、マニピュレータ座標系MNPLに対するツール20の現在の位置及び/又は配向を能動的に保持するように引き続き通電及び動作することができる。いくつかのバージョンでは、ブレーキシステムを作動させて、ツール20を現在の位置及び/又は配向に保持することができる。ホールドモードでは、ユーザは、例えば、ツール20の動きがユーザからの入力に応じてのみ起こるように、ツール20のいずれかの予期しない動きをもたらさずに、患者の解剖学的構造及び標的部位の位置を調整することを望む場合がある。ユーザは、視覚化、標的部位へのアクセスの改善、標的部位の洗浄、軟組織の除去又は洗浄など、様々な理由で患者の解剖学的構造を調整したい場合がある。いずれの場合も、患者の解剖学的構造が移動した場合、患者の解剖学的構造に対してポーズが固定されたいずれかの仮想境界71も移動した。
【0086】
ホールドモード及び境界が無効な状態では、制御システム60は、ツール20の自律的な、境界に準拠したいずれかの動きを無効にする。結果として、ユーザが視覚化、アクセス、又はその他を改善するために患者の解剖学的構造を動かし終え、手動モード又は半自律モードでマニピュレータ14の動作を再開する準備ができると、システム10は最初に、ツール20が今や仮想境界71に侵入するように仮想境界71が移動したかどうか(例えば、仮想境界71の外側、仮想境界71の内側、仮想境界71からの逸脱など)確認する。したがって、ツール入力82又はペンダント入力RC1を第1の入力状態に切り替えることによって手動モード又は半自律モードに戻るとき、制御システム60は、衝突チェックを実行して、ツール20のTCPが現在、仮想境界71に侵入しているかを判定する。
【0087】
衝突が検出された場合、手動モード又は半自律モード(どちらの入力が作動されたかに応じて)は無効のままであり、制御システム60は、状況、及びツール20をどのように動かしてツール20を仮想境界71に準拠して戻すことができるかについて、ユーザにガイダンスを提示するように機能する。そうでなければ、手動モード又は半自律モードが有効にされた場合、これは、特にツール20が仮想境界71に十分に準拠していないときに、ツール20の突然の予期しない動きをもたらす可能性がある。ユーザへのガイダンスは、視覚的フィードバック(ディスプレイ38上、ツール20上の視覚的インジケータLEDなど)、可聴フィードバック(マニピュレータ14、ツール20のスピーカーを介してなど)、及び/又は触覚フィードバック(例えば、ツール20を仮想境界71との所望の関係にて配置するようにユーザを触覚的に誘導することによる)などのユーザフィードバックの形態であり得る。衝突チェックは定期的又は継続的に繰り返すことができ、ツール20が仮想境界71に準拠するように戻った場合、手動又は半自律モードを有効にすることができ、ユーザフィードバックは停止する。制御システム60は、ツール20が仮想境界71に準拠するように戻ったことを検出すると、マニピュレータ14を、境界が無効な状態から境界が有効な状態に自動的に切り替えることができる。いくつかのバージョンでは、自動化されたガイダンスが制御システム60によって提供されて、ツール20を仮想境界71に準拠した位置に自律的に移動させることができる。この場合、回復ツール経路が経路ジェネレータ68(又は他のモジュール)によって生成され得、ツール20の現在のポーズに基づいて生成され得(例えば、仮想境界71に準拠して現在のポーズから既知のポーズへ)、又は回復経路を事前に定義することができる。
【0088】
システム10はまた、2019年9月30日に出願された「Systems and Methods for Guiding Movement of a Tool」と題された米国仮特許出願公開第62/908,056号に記載されているように、誘導触覚モードで動作することができる。これは、参照により本明細書に組み込まれる。誘導触覚モードは、例えば、ホールドモードと境界が無効な状態のときにツール20が仮想境界71に侵入した場合に、仮想境界71に準拠する目標状態にツール20を配置するようにユーザを触覚的に誘導するのを助けるために使用され得る。誘導触覚モードでは、手動モードと半自律モードの両方で使用される制御の側面が利用される。例えば、ユーザによって加えられた力及びトルクは、力/トルクセンサSによって引き続き検出され、ツール20の全体的な動きに少なくとも部分的に影響を与える仮想シミュレーションに供給される外力Fextを判定する。さらに、誘導触覚モードでは、システム10は、仮想シミュレーションに外力Fextと共に供給される仮想制約力Fcで具体化された仮想引力(又は反発)力及びトルクを生成する。
【0089】
IV.制約と仮想シミュレーションの解決策
図11を参照すると、経路制約、境界制約、ガイド制約、及び他の制約などの1つ又は複数の仮想制約が、ツール20の動きを制御するために様々なモードで制御システム60によって使用され得る。一般に、仮想制約は、マニピュレータ14にツール20を動かすように命令する方法を判定するために、他のモーション関連情報と共に、制御システム60によって考慮される剛体のモーションに対する制限である。これらの仮想制約は、ツール20の位置及び/又はツール20の配向に影響を及ぼし得る。以下でより詳細に説明するように、制御システム60は、仮想制約を満たす、又は満たそうとする制約力F
cを計算するように動作する制約ソルバー84を備える。制約力F
cには、ツール20の動きに影響を与えるように定められた力及びトルクが組み込まれている。
【0090】
経路制約は、経路ジェネレータ68によって提供されるツール経路TPに基づいて生成され得る。事実上、経路制約により、仮想の力及び/又はトルクが制約ソルバー84によって計算され、仮想シミュレーションで使用されて、ツール20のTCPがツール経路TPに沿って追従するようにツール20をツール経路TPに沿って引っ張り、一方で、ツール20が所望の配向を維持している。したがって、経路制約には配向制約を含めることもできるが、ユーザが適用する力/トルクに基づいて配向を調整することもできる。例えば、参照により本明細書に組み込まれる米国特許第9,119,655号に記載のユーザの再配向方法を参照されたい。経路制約は、半自律モードなどの特定の操作モードで生成される場合があるが、手動モードなどの他のモードでは生成されない場合がある。
【0091】
境界制約は、ツール20が1つ又は複数の仮想境界71に侵入することを禁止するように定めることができる。境界制約のそれぞれは、1つ又は複数の仮想境界71に準拠してツール20のTCPを維持するように動作する一方向の仮想制約と見なすことができる。例えば、境界制約は、仮想の力及び/又はトルクが計算され、仮想シミュレーションで使用されることを引き起こし得、その結果、ツール20のTCPは、仮想境界71でゼロ速度(又はほぼゼロ速度)を有し、TCPが仮想境界71に侵入する(又は侵入しすぎる)ことを防ぐ。境界制約は、手動モードや半自律モードなどの特定のモードでアクティブになる場合がある。しかしながら、境界制約は、制御システム60が前述のように境界が無効な状態で動作しているときなど、特定の状況で無効にされ得る。例えば、ホールドモードで解剖学的構造を移動した後にツール20と仮想境界71との衝突を検出するとき、境界制約が制約ソルバー84にもはや出力されなくなるため、手動モード又は半自律モードが無効になる。
【0092】
場合によっては、境界制約が出力されなくなったとしても、ユーザは、ツール20に力及びトルクを加えることによって、フリーモード又は他の同様のモードでツール20を動かすことができる。フリーモードでは、ツール20は、ユーザによってツール20に加えられた力及びトルクに応じて比較的自由に移動し、これにより、ユーザは、ツール20を仮想境界71に準拠するように戻すことができる。ユーザが加えた力及びトルクを含む外力Fextは、制約ソルバー84への入力であり、仮想シミュレータ86に供給され、有効にすると、外力Fextは少なくとも部分的にツール20の全面的な移動に影響を与える。外力Fextは、通常、例えば、手動モードで、ツール入力82が第1の入力状態(例えば、作動)にあるときに有効にされる。外力Fextをフリーモードで有効にして、ユーザが加えた力及びトルクに応じ、ユーザがツール20を仮想境界71に準拠するように戻すことができるようにすることもできる。外力Fextは、ユーザ入力(例えば、ツール入力82とペンダント入力RC1)が両方とも第2の入力状態にある(例えば、どちらも作動していない)ときに無効になる。
【0093】
ガイド制約は、仮想シミュレーションで使用される仮想引力(又は反発)力及びトルクを生成して、仮想境界71に従って、ツール20を目標状態に配置するようにユーザを誘導するように定められる。ガイド制約は、ツール20の目標状態への動きに最終的に影響を与えるように定められ、その結果、ユーザは、ツール20の所望の動きを引き起こすようにユーザを導く1つ又は複数の触覚相互作用効果を提供される。ガイド制約は、誘導触覚モードなどの特定のモードでアクティブになる場合があるが、他のモードでは非アクティブになる場合がある。ガイド制約はまた、ユーザがツール20を目標状態からさらに遠ざけるときなどのエラー又は異常な状態を示すために、ツール20の動きに対する弱められた感触など、他の形態の触覚フィードバックをユーザに提供し得る。
【0094】
一部のバージョンでは、仮想制約は速度インパルス制約であり、力及び/又はトルクが計算されて、仮想シミュレーションで対象物に仮想インパルスを適用し、目的の制約パラメータに従って対象物の速度を変化させる。いくつかのバージョンでは、制約は、参照により本明細書に組み込まれる米国特許第9,119,655号に記載されているインパルスモデリングで使用されるものと同様である。一部のバージョンでは、仮想制約がすべてのモードで使用される。
【0095】
制御システム60によって採用される仮想制約は、主に3つの実行時パラメータによって定められる。各仮想制約を仮想シミュレーションに採用される座標系にマッピングする制約ヤコビアンJp、座標系の仮想制約のスカラー速度である所望の速度Vdes(又はVp2)(例えば、患者が動かず、患者に対して定められた関連する仮想制約が動いていないとき、所望の速度はゼロである可能性があるが、仮想制約が患者に関連付けられている可能性があるため、患者が移動するときはゼロ以外になる可能性がある)、及び例えば、TCPが制約にどれだけ近いかを示し、仮想制約に侵入しているかどうかを示す制約距離Δdである。Δdは、貫入の深さ、つまり制約の方向に沿った誤差距離とも呼ばれる。
【0096】
仮想制約は無限に剛体ではないが、代わりに、各仮想制約には、例えばばねと減衰のパラメータを制約に組み込むことによって、仮想制約の剛性を調整するための調整パラメータがある。このようなパラメータには、制約力混合パラメータ(C)及びエラー低減パラメータ(ε)が含まれる場合がある。スプリングとダンピングのパラメータは、動作中に調整できる。一部のバージョンでは、調整パラメータの値は、特定の関係に基づいて変更される場合があり、例えば、ツール経路TPの曲率(経路制約の場合)、仮想境界71とTCPの関係(境界制約の場合)、現在の状態と目標状態の関係(ガイド制約の場合)などがある。調整パラメータは、様々な仮想制約ごとに異なり得る。例えば、境界制約は他の制約よりも厳しい場合がある。仮想制約は、調整パラメータの第1の値を有する第1の仮想制約と、調整パラメータの第2の値を有する第2の仮想制約とを含み得、第1の値は、第2の値よりも大きく、制約力Fcで具体化された結果として生じる仮想の力及び/又はトルクは、第2の仮想制約と比較して、第1の仮想制約の結果として、ツール20の動きをより強くもたらすように適合されている。調整パラメータの値は、方向の制約よりも位置の制約の方が大きい(例えば、硬い)場合があり、その逆の場合もある。
【0097】
調整パラメータは、一定のまま、制約距離で指数関数的に上昇/下降する、制約距離に応じて線形に変化する、制約の方向によって異なる、重力の影響を考慮に入れる、などのように設定することもできる。調整パラメータは、制約力Fc又はそのコンポーネントの大きさに応じて剛性を増減するなど、仮想制約に基づいて最終的に計算される制約力Fcに応じてスケーリングすることもできる。調整パラメータ及びそれらの値、特定の関係に対するそれらの相関、及びそれらがスケーリングされ得る様式は、後で検索するために、制御システム60内の任意の適切なメモリ内の1つ又は複数のルックアップテーブルに格納され得る。
【0098】
各仮想制約には構成的な設定もある。構成的な設定には、制約力混合パラメータ(C)やエラー削減パラメータ(ε)などの調整パラメータに関する情報、力の上限及び/又は下限、及び/又は上下の制約距離オフセットが含まれる。力の上限及び下限は、以下でさらに説明するように、制約ソルバー84によって最終的に解決されて制約力Fcを生成する、各仮想制約に対して計算された力の制限を指す。仮想制約は、一方向の制約(例えば、制約を満たすために計算された力が正のみ又は負のみである)、又は双方向の制約(例えば、制約を満たすために計算された力が正又は負である可能性がある)であり得る。一方向の制約の場合、力の上限を正の方向に高く設定し(例えば、+100,000ニュートン)、力の下限をゼロに設定できるが、力の限界は任意の所望の制限に設定できる。双方向の制約の場合、力の上限と下限を反対方向に高く設定できる(例えば、+/-100,000ニュートン)。上下の制約距離オフセットは、制約がアクティブになるときを示す。一部の制約は、特定のモードで常にアクティブになる場合がある。境界制約に関しては、制約距離オフセットの上限はゼロであり得、制約距離オフセットの下限は大きな負の値(例えば、-100,000mm)であり得るため、事実上、任意の境界侵入は制限内に収まる。以下でさらに説明するように、仮想シミュレーションがツール20のTCPの提案された状態が仮想境界71に侵入していることを示したときに境界制約がアクティブになるように、制約距離オフセットの上限及び下限を設定することができる。
【0099】
ガイド制約、経路制約、境界制約、及び他の制約を含む、様々な仮想制約を、制約ソルバー84に供給することができる。これらの制約は、制御システム60によってオン/オフされ得る。例えば、場合によっては、経路制約(手動モードなど)がなく、境界制約(ホールドモード、誘導手動モード、又はフリーモードなど)がなく、他の制約が生成されていないことがある。同様に、ツール20を仮想境界71に準拠するよう戻すようにユーザを誘導する必要がない限り、ガイド制約が生成されない場合がある。行動制御74で使用されるすべての仮想制約は、ツール20の動きに影響を及ぼし得る。
【0100】
制約ソルバー84は、制約ソルバー84に送られた仮想制約に基づいて、仮想シミュレータ86によって実行される仮想シミュレーションにおいて、ツール20に仮想的に適用される制約力Fcを計算する。制約ソルバー84は、最終的に、すべての制約を満たす、又は満たそうとする制約力Fcの解を与えるタスクがあり、したがって、他の制約もまた、制約力Fcの大きさ/方向に影響を及ぼし得る。例えば、境界制約が制約ソルバー84に能動的に伝達される場合、制約ソルバー84は、制約力Fcを計算して、ツール20を境界制約に基づいて仮想境界71に準拠して維持するように適合された力及び/又はトルクの成分を有する。
【0101】
図12に示される制約方程式を参照すると、制約ソルバー84は、各仮想制約の制約データを、F
pを解くために、行列形式の制約方程式の対応する行に配置する。ここで、F
pは、選択した座標系の力ベクトルである。つまり、F
pの各成分は、対応する制約方向に作用する制約力スカラーである。F
pを解くために、以下に説明するように、
図12に示す方程式は、各行が単一の1次元制約を表す行列方程式に変換される。制約データは、外力F
cgext、減衰力F
damping、慣性力F
inertial、仮想質量行列M、仮想質量速度V
cg1、及びタイムステップΔt(例えば、125マイクロ秒のt
frameに設定)など、制約ソルバー84が既知の他の情報と共に、制約方程式に配置される。
【0102】
仮想質量行列Mは、3x3の質量行列と慣性行列を組み合わせたものである。減衰及び慣性力Fdamping及びFinertialは、仮想シミュレータ86によって計算され/既知であり、前のタイムステップで、仮想シミュレータ86によって出力された仮想質量速度Vcg1(例えば、仮想質量座標系VMの速度)に基づいている。仮想質量速度Vcg1は、線形及び角速度成分を含む6DOFの速度ベクトルである。減衰力Fdampingは、仮想質量速度Vcg1と減衰係数マトリックスの関数として計算された6DOFの力/トルクベクトルである(線形係数と回転係数は等しくない場合がある)。仮想質量に減衰を適用して、その安定性を向上させる。慣性力Finertialは、仮想質量速度Vcg1と仮想質量行列Mの関数として計算された6DOF力/トルクベクトルでもある。減衰力と慣性力FdampingとFinertiaは、Bowlingらの米国特許第9,566,122号に記載されている様式で判定され、この文献は参照により本明細書に組み込まれる。
【0103】
制約ソルバー84は、連立方程式を満たす(例えば、様々な制約を満たす)解を求めるために、この制約の連立方程式を解く任意の適切なアルゴリズム命令(例えば、反復制約ソルバー、射影されたガウス・ザイデルソルバーなど)で構成されてもよい。場合によっては、すべての制約が同時に満たされないことがある。例えば、モーションが様々な制約によって過剰に制約されている場合、制約ソルバー84は、様々な制約の相対的な剛性/減衰を考慮して、本質的に「最適な」解決策を見つける。制約ソルバー84は連立方程式を解き、最終的に制約力Fpを出力する。
【0104】
射影されたガウス・ザイデルソルバーを使用する場合、制約ソルバー84は制約に基づいてA及びb行列を作成し、射影されたガウス・ザイデルを使用して連立方程式を解き、結果の力ベクトルFpを判定し、射影されたガウス・ザイデルの出力を取得し、選択した座標系(制約座標系など)から仮想質量座標系VMに変換する。例えば、方程式Fc=Jp
TFpを使用するとき、式中Fcは制約力であり、力ベクトルFpの成分は、仮想質量座標系VMに適用される同等の力/トルクベクトルFcに変換される。
【0105】
射影ガウス・ザイデルを使用して複数の制約の連立方程式を解く方法は、例えば、Marijn TamisとGiuseppe Maggioreによる2015年6月15日付けの「Constraint based physics solver」(v1.02)に示されており、それはhttp://www.mft-spirit.nl/files/MTamis_ConstraintBasedPhysicsSolver.pdfにおいて見出せる。又は2015年7月1日付の、Marijn Tamisによる「Comparison between Projected Gauss-Seidel and Sequential Impulse Solvers for Real-Time Physics Simulations」(v1.01)に示されており、これはhttp://www.mft-spirit.nl/files/MTamis_PGS_SI_Comparison.pdfにおいて見出せる。どちらも参照によりその全体が本明細書に組み込まれる。
【0106】
射影されたガウス・ザイデル法は、線形相補性問題(LCP)に対処する。一部の制約タイプ(境界制約などの片側制約など)は一方向にしか押す(力を加える)ことができないため、LCPに関連する不等式が発生する。そのような制約の計算された力が、制約ソルバー84の所与の反復の許容範囲外であり、これは無効である場合、所与の制約をプルーニングする(又はその上限又は下限の許容された値で交互に制限/限界を設ける)必要があり、適切な結果(つまり、収束)が見つかるまで、残りの制約は解かれる。このようにして、制約ソルバー84は、所与のタイムステップに対する制約のアクティブなセットを判定し、次にそれらの値を解く。他の制約タイプでは、正と負の両方の方向、例えば両側の制約に、力を加えることができる。このような制約には、ユーザがツールを目標状態に向けて移動するように誘導するために使用されるガイド制約が含まれる。このような両側制約は、有効になっているとき、通常はアクティブであり、制約ソルバー84の反復中にプルーニング/制限されない。
【0107】
制約ソルバー84によって計算された制約力Fcは、x、y、z軸に沿った力の3つの成分と、x、y、z軸の周りのトルクの3つの成分とを含む。仮想シミュレータ86は、その仮想シミュレーションにおいて、外力Fcgext、減衰力Fdamping、及び慣性力Finertial(これらはすべて、力/トルクの6つの成分を含み得る)と共に、制約力Fcを利用する。場合によっては、力/トルクのこれらの成分は、最初に共通の座標系(例えば、仮想質量座標系VM)に変換され、次に合計されて総合的な力FTが定められる。結果として生じる6DOFの力(すなわち、力及びトルク)は、仮想剛体に適用され、結果として生じるモーションは、仮想シミュレータ86によって計算される。したがって、仮想シミュレータ86は、すべてが総合的な力FTに反映される様々な制約が、仮想剛体のモーションにどのように影響するかを効果的にシミュレートするように機能する。仮想シミュレータ86は、フォワードダイナミクスを実行して、仮想剛体に加えられている所与の総合的な力FTに基づいて、仮想剛体の結果として生じる6DOFのポーズ及び速度を計算する。一例では、仮想シミュレータ86は、物理エンジンを備え、これは、前述のコントローラ21、26、36のいずれか1つ又は複数の非一時的メモリに格納され、制御システム60によって実装される実行可能ソフトウェアである。
【0108】
仮想シミュレーションの場合、仮想シミュレータ86は、ツール20を仮想質量座標系VMの仮想剛体としてモデル化し、通常、仮想質量座標系VMの原点は仮想剛体の質量の中心に位置し、座標軸は仮想剛体の主軸と位置合わせされる。仮想剛体は、仮想シミュレーションの目的のための動的対象物及びツール20の剛体表現である。仮想剛体は、仮想シミュレーションによるデカルト空間の6自由度(6DOF)に従って自由に移動できる。仮想シミュレーションは、視覚的又はグラフィック表現なしで計算的に処理される場合がある。したがって、仮想シミュレーションで仮想剛体のダイナミクスを表示する必要はない。言い換えると、仮想剛体は、処理ユニットで実行されるグラフィックスアプリケーション内でモデル化する必要はない。仮想剛体は、仮想シミュレーションのためにのみ存在し得る。
【0109】
仮想剛体とその特性(質量、慣性マトリックス、重心、主軸など)は、加えられた力及びトルクに応じてツール20がどのように動くかを定める(例えば、ユーザによって適用される力及びトルク、及び制約力及びトルクを組み込んだ総合的な力FTから)。それは、ツール20が重く感じるか軽く感じるか、加えられた力及びトルクに応じてツールがどのように動くか(例えば、並進及び回転で加速する)を管理する。仮想剛体の特性を調整することにより、制御システム60は、ツール20がユーザにどのように感じるかを調整することができる。可能な限り現実的なモーション/感触を得るために、ツール20の実際の特性にかなり近いようにモデル化された仮想剛体の特性を有することが望ましい場合があるが、それは必須ではない。制御の安定性の理由(所与のマニピュレータ14の有限の加速度、制御の待ち時間など)のために、仮想の質量と慣性は、物理的なツール20よりもいくらか高くなるようにモデル化できる。
【0110】
仮想剛体は、ツール20上又はツール20内にあり得る構成要素に対応し得る。追加的又は代替的に、仮想剛体は、部分的に、物理的ツール20を超えて延びることができる。仮想剛体は、エネルギーアプリケータ24を備えたツール20を考慮に入れることができ、又はエネルギーアプリケータ24を備えていないツール20を考慮に入れることができる。さらに、仮想剛体はTCPに基づいている場合がある。一例では、仮想剛体の重心は、仮想剛体の別の点に仮想の力が加えられ、仮想剛体がそれ以外制約されていない、すなわちマニピュレータ14によって制約されていない場合、仮想剛体が回転する中心の点であると理解される。仮想剛体の重心は、ツール20の実際の重心に近であり得るが、同じである必要はない。仮想剛体の重心は、経験的に判定できる。ツール20がマニピュレータ14に取り付けられると、個々の実践者の好みに対応するために、重心の位置をリセットすることができる。
【0111】
仮想シミュレータ86は、仮想シミュレーションにおいて仮想剛体に力及び/又はトルクを仮想的に適用することによって、すなわち、総合的な力FTからの力及びトルクの成分を仮想的に仮想質量座標系VMの仮想剛体の重心に適用することによって、ツール20の剛体ダイナミクスを効果的にシミュレートする。したがって、仮想剛体に仮想的に適用される力/トルクは、外力Fcgext(例えば、1つ又は複数のセンサからの入力に基づく)に関連する力/トルク、減衰力Fdamping、慣性力Finertial、及び様々な制約に関連する制約力Fcからの力/トルク(制約力Fcで具体化されるため)を含み得る。
【0112】
剛体ヤコビアンを使用して、同じ仮想剛体上の1つの座標系(参照フレーム)から別の座標系に速度と力を変換でき、ここでは、Fextの力及びトルクを仮想質量座標系VMに変換するためにも使用できる(例えば、制約方程式で使用されるFcgextを生成するため)。次に、仮想シミュレータ86は、減衰力Fdamping及び慣性力Finertialを内部で計算して、総合的な力FTを判定し、また、制約ソルバー84によって使用するために、減衰力Fdamping及び慣性力Finertialを、次のタイムステップの連立方程式で出力する。
【0113】
図13及び14に示すように、仮想フォワードダイナミクスアルゴリズムを仮想シミュレーションで使用して、総合的な力F
Tを適用すると移動する仮想剛体のモーションをシミュレートできる。事実上、仮想フォワードダイナミクスアルゴリズムは、6DOFで方程式F=ma(又はa=F/m)を解き、加速度を統合して速度を生成する。これは、
図14に示すように、新しいポーズを判定するために使用される。制御システム60は、仮想の力及び/又はトルク(例えば、総合的な力F
T)を仮想シミュレータ86に入力し、これらの仮想の力及び/又はトルクは、仮想剛体が初期速度で初期のポーズにあるとき、仮想シミュレーションでの重心(例えば、CG)における仮想剛体に加えられる。仮想剛体は、入力された仮想の力及び/又はトルクを満たす制御システム60に応じて、異なる状態(すなわち、位置及び/又は配向)を有し、デカルト空間内の最終速度で最終ポーズに移動される。モーション制御76に送られる次の命令されたポーズは、仮想シミュレータ86によって計算された最終ポーズに基づく。したがって、仮想シミュレータ86は、
図14に示すように、仮想前方ダイナミクスを使用して仮想剛体に総合的な力F
Tを加える効果をシミュレートすることによって、次の命令されたポーズを判定するように動作する。
【0114】
シミュレーションでは、仮想剛体に速度制限が課される場合がある。場合によっては、速度制限を高く設定して、一般にシミュレーションに影響を与えないようにすることも、任意の所望の値に設定することもできる。仮想剛体は初期ポーズ(初期状態)にあり、仮想シミュレーションの各反復の開始時(例えば、各タイムステップ/間隔dt)に初期速度を有する。初期ポーズ及び初期速度は、前のタイムステップで仮想シミュレータ86によって出力された最終ポーズ及び最終速度として定めることができる。その後、仮想シミュレータ86は、その仮想シミュレーションに基づいて、次の命令されたポーズを計算して出力する。制御システム60は、マニピュレータ14に、命令されたポーズに基づいてツール20を動かすように命令するように構成される。
【0115】
図11に戻ると、ブロック図は、前述の制約を使用して、マニピュレータ14の動作及びツール20の動きを制御するために実行されるプロセスを示している。示されているバージョンでは、行動制御74は、経路ハンドラ88を含む。経路ハンドラ88は、経路ジェネレータ68によって与えられるツール経路TPに従って経路制約を生成/出力するように動作する。ツール経路TPは、経路ハンドラ88への入力である。経路ハンドラ88は、制約実行時パラメータ(例えば、制約ヤコビアンJ
p、所望の速度V
des(又はVp2)、及び制約距離Δd)の判定を含む、前述の制約パラメータに基づいて経路制約を生成する。
図11を参照して説明されたバージョンの経路ハンドラ88は、半自律モードでは有効でアクティブであるが、他のモードでは無効である。
【0116】
行動制御74は、境界ジェネレータ66によって生成された1つ又は複数の仮想境界71に基づいて境界制約を生成するための境界ハンドラ90をさらに備える。境界制約は、最終的に、制御システム60が、ツール20と、標的部位に関連付けられた1つ又は複数の仮想境界71との間の関係に基づいて、マニピュレータ14の動作及びツール20の動きを制御することを可能にする。例えば、制御システム60は、境界制約を介して、ツール20と仮想境界71との間の相対的な動きを制限する。境界ハンドラ90への入力は、ツール20の最後に命令されたポーズ(例えば、現在のポーズとして扱われる)、仮想境界71、及びツール入力82及びペンダント入力RC1のユーザ入力状態を含む。境界ハンドラ90は、制約実行時パラメータ(例えば、制約ヤコビアンJp、所望の速度Vdes(又はVp2)、及び制約距離Δd)の判定を含む、前述の制約パラメータに基づいて境界制約を生成する。
【0117】
行動制御74はまた、ガイドハンドラ94を備える。特定の状況では、ツール20を所望の位置及び/又は配向に誘導する様式でツール20を操作するようにユーザを誘導することが望ましい場合がある。例えば、状況によっては、ツール20のTCPは、それが仮想境界71に侵入する位置にある可能性がある。この場合、手動モード又は半自律モードなどの特定の動作モードは、ツール20のTCPが仮想境界71に準拠するまで無効にされ得る(例えば、ツール20の動きに影響を与える境界制約又は経路制約が生成されない)。ガイドハンドラ94は、ツール20を仮想境界71に準拠させるツール20の目標状態を取得し、ツール20の目標状態及び現在の状態に基づいて1つ又は複数のガイド制約を生成することができる。前述のように、ユーザはまた、フリーモードで、すなわち、いずれのガイド制約をも生成することなく、ツール20を仮想境界71に準拠するように戻すことができるか、又は制御システム60は、ツール20を、回復パスを介して仮想境界71に準拠するよう自動的に戻すことができる。以下でさらに説明するように、仮想境界71への準拠を達成する他の方法もまた企図される。
【0118】
ガイドハンドラ94への入力は、回復信号及び最後に命令されたポーズ(現在の状態)を含む。境界ハンドラ90は、仮想境界71に侵入していないツール20の目標位置及び/又は配向を識別し得るので、目標状態(例えば、ポーズ)は、境界ハンドラ90からの回復信号の一部であり得る。目標状態は、解剖学的座標系、解剖学的トラッカー座標系などで定められ、最後に命令されたポーズで共通の座標系に変換され得る。ガイドハンドラ94は、最後に命令されたポーズと目標状態との間の関係に基づいて、1つ又は複数のガイド制約を定める。ガイド制約は、ガイドハンドラ94から制約ソルバー84に出力される。ガイドハンドラ94は、ガイド制約をアクティブにして、ユーザに触覚フィードバックを提供し、ユーザがツール20を仮想境界71に準拠するように誘導するように構成され、制約ソルバー84は、ガイド制約に基づいて、ツール20を仮想境界71に準拠するように引き付けるように適合されている制約力Fcを計算するように構成される。
【0119】
V.衝突チェックと境界が有効な状態と境界が無効な状態
境界ハンドラ90は、動作モード、ユーザ入力状態などに応じて様々な衝突チェックを実行する。第1のタイプの衝突チェックは、ツール20の現在の状態(例えば、現在のポーズ)又は仮想シミュレータ86による仮想シミュレーションで生成されたツール20の提案された状態(例えば、提案されたポーズ)は、仮想境界71に侵入しているかどうか/どのくらい侵入しているかをチェックすることを含む。この衝突チェックは、境界ハンドラ90によって生成され、制約ソルバー84によって適用される必要がある境界制約を判定するために実行され、現在の状態/提案された状態が、手動モード又は半自律モードでの通常の操作中のツール20による仮想境界71の侵入を防止するか、又は少なくとも制限する方法で変更される。一部のバージョンでは、このタイプの衝突チェックは、手動モード又は半自律モードでの動作中に各フレームで実行され、仮想シミュレータ86によって新しい命令されたポーズが生成される前に実行され、モーション制御76によって最終的に生成され実行される命令されたポーズが、ツール20による仮想境界71の侵入を制限する。いくつかのバージョンでは、このタイプの衝突チェックは、前の反復で計算された命令されたポーズに基づいて境界ハンドラ90によって実行され得る(例えば、前の時間枠の命令されたポーズが現在のポーズとして設定される)。その場合、境界ハンドラ90は、少なくとも仮想境界71の侵入を制限するために生成される必要がある境界制約を判定する。例えば、前のフレームからの命令されたポーズは、ツール20が仮想境界71をわずかに横切って移動する結果となるポーズであり得るが、境界ハンドラ90は、ツール20を戻すために現在のフレームに境界制約を生成する。
【0120】
第1のタイプの衝突チェックを実行するための方法は、「Robotic Surgical System And Method For Producing Reactive Forces To Implement Virtual Boundaries」と題される、Bowlingに対する米国特許出願公開第2018/0353253号に記載されている。これは参照により本明細書に組み込まれる。他の衝突検出方法も使用することができる。例えば、仮想境界71が三角形メッシュによって定められる場合、参照により本明細書に組み込まれる米国特許第9,119,655号に記載されているように、広位相及び狭位相検索を使用する衝突検出を実施することができる。
【0121】
境界ハンドラ90は、ツール入力82又はペンダント入力RC1が第2の入力状態から第1の入力状態に切り替わるとき、例えば、システム10がホールドモードから手動モードに、又はホールドモードから半自律モードに切り替わるときに、第2のタイプの衝突チェックを実行する。ユーザ入力の現在の状態及びその切り替えは、ユーザ入力状態検出器92によって検出することができる。ユーザ入力状態検出器92は、ユーザ入力(例えば、ツール入力82及びペンダント入力RC1)の現在の状態を供給し、そのいずれかの状態変化を境界ハンドラ90に示す。第2のタイプの衝突チェックは、ユーザ入力のいずれかが1つの状態から別の状態に切り替わるたびに実行されるサブルーチンである可能性がある。
【0122】
第2のタイプの衝突チェックを実行するために、境界ハンドラ90は、仮想境界71の幾何学的な定義をツール20の現在の状態(例えば、最後に命令されたポーズ)に対してチェックして、ツール(例えば、ツール20のTCP)は、仮想境界71に準拠しているか、又は仮想境界71に侵入しているかどうかチェックする。前に述べたように、仮想境界71へのツール20のいくらかの貫入又は仮想境界71の完全な準拠からのツール20の逸脱が仮想境界71の侵入と見なされないように、事前に定義された設定可能な許容誤差が仮想境界71に対して確立され得、そのため第2のタイプの衝突チェックでは、これらの許容誤差も考慮する必要がある。これは、仮想境界71の境界体積部をチェックし、ツール20のTCPの現在の位置を境界体積部と比較することを単に必要とし得る。いくつかのバージョンでは、TCPに加えて、ツール20に帰属する1つ又は複数の仮想定位的相互作用機構SIFの位置が、境界体積部と比較され得る。これらの定位的相互作用機構SIFは、ツール20上の実際の点に対応する点、固有の原点と半径の球、又はその他の適切な幾何学的形状である可能性がある。各定位的相互作用機構SIFは、衝突をチェックするために境界体積部と比較される。境界体積部は、例えば、ボクセルによって定められ得、境界ハンドラ90は、衝突検出を実行して、ツール20がいずれかのボクセル内にあるかどうかを判定することができる。衝突検出の他の方法は、光線追跡法、構成空間検索、境界体積部階層、ポイントメンバーシップ分類(PMC)などを利用することができる。境界ハンドラ90は、任意の適切な方法を使用してツール20と仮想境界71との衝突を検出することができる。
【0123】
第2のタイプの衝突チェックが、ツール20が仮想境界71に侵入していることを示す場合、回復モードが有効になり、回復信号及び関連する目標状態がガイドハンドラ94に送信され、ガイドハンドラ94は仮想境界71に準拠するようにツール20を配置するようにユーザを誘導するために説明されている、以前に記載したユーザフィードバックを生成することができる。ツール20が仮想境界71に侵入している間、マニピュレータ14の所望の動作モード(例えば、手動モード又は半自律モード)を無効にすることができる。ユーザ入力(例えば、ツール入力82又はペンダント入力RC1)が第1の入力状態にあるとき、ツール20の自律的な、境界に準拠した動きは、回復モードでは無効のままである。
【0124】
衝突チェックが、ツール20がすでに仮想境界71に準拠していることを示している場合、マニピュレータ14の所望の動作モードを有効にすることができる。衝突チェックに合格した場合(例えば、TCP及び/又は他のSIFが仮想境界71の許可された領域に完全にあるか、設定された距離(例えば、0.1mm)を超えて仮想境界71を貫入していない場合)、境界制約がアクティブになり、ツール20の移動が有効になる。第2のタイプの衝突チェックと境界制約のアクティブ化は、チェックとアクティブ化の間の移動の競合状態を回避するために、アトミックに(同じタイムステップで)実行される。
【0125】
第2のタイプの衝突チェックが失敗した場合、境界制約は有効にならず、回復シーケンスが回復モードを介して開始される。回復シーケンスは、ツール20を切除領域から遠ざけるようにユーザに要求する1つ又は複数のディスプレイ38に表示されるユーザメッセージを含むことができる。ツールドライブも無効になる(例えば、機械加工は許可されない)。いくつかのバージョンでは、回復モードで、高度に減衰された移動が可能になり得る(例えば、減衰制約が、ツール20の高度に減衰された移動を提供するためにガイドハンドラ94によって使用され得る)。仮想シミュレータ86によって実行される仮想シミュレーションで使用される減衰係数は、減衰力Fdampingを変更して減衰を増加させるように調整することもできる。そのような動きは、マニピュレータ14がツール20に加えられたユーザの力及びトルクに応答することを可能にすることによって有効になり得るが、比較的減衰された様式である。高度に減衰された移動により、ユーザは、触覚の相互作用(減衰制約を介して)を通じて、ユーザがその時点でディスプレイ38を直接見ていなければ異常な状態が存在することを即座に感じることができる。
【0126】
回復モードは、回復中にユーザをガイドするのに役立つ誘導触覚モードのアクティブ化を引き起こし得る。あるいは、フリーモードを回復モードでアクティブにし得、ユーザがツール20を仮想境界71に準拠するように自由に動かすことを可能にする。前述のように、回復経路は、追加的に、又は代替的に、回復モードで生成され、ツール20を仮想境界71に準拠するように自律的に戻すために使用され得る。この場合、ペンダント入力RC1を使用して、回復経路に沿ったツール20の動きを制御することができる。いくつかのバージョンでは、回復モードにおいて、境界ハンドラ90又はガイドハンドラ94は、ツール20が一層段階的に仮想境界71の侵入から回復できる(すなわち、仮想境界71は、より堅くないように効果的に変更される)ように、元の境界制約の調整パラメータよりも低い調整パラメータを有する仮想境界71に関連する回復制約を生成し得る。いくつかのバージョンでは、回復モードにおいて、制御システム60は、ツール20がもはや仮想境界71に侵入しないように、仮想境界71をその開始位置から移動させる(例えば、その位置/配向を変更する)ことができる。ツール20が仮想境界71に準拠するように戻ると、ツール20の自律的な、境界に準拠した動きは、制御システム60によって可能になり、仮想境界71は、穏やかにそれと一緒にツール20を押しながら、ゆっくりと移行して開始位置に戻り、ツール20が仮想境界71に準拠したままであるようにする。
【0127】
回復モードで実行されるステップは比較的迅速に実行されるので、ユーザによるツール入力82又はペンダント入力RC1の最初の起動に応じて、ツールのモーションの開始に目立った遅延はない。例えば、これにより、ユーザ/マニピュレータ14は、ツール20を仮想境界71に対して許可された領域に比較的効率的に動かして戻すことができる。ツール20が回復モードで移動している間、制御システム60は、定期的又は継続的に第2のタイプの衝突チェックを実行して、ツール20が仮想境界71に準拠するように戻ったときを検出する。その時点で、ユーザがツール入力82又はペンダント入力RC1を解放することを必要とせずに、前述の境界制約のアクティブ化が実行され、減衰(使用される場合)は通常の設定に戻され(ユーザは、状態が解決されたと感じるのに基づいて表示をする)、ツールドライブを使用してツール20を操作する能力が有効になり、ディスプレイ38のメッセージが更新/クリアされる。
【0128】
回復シーケンスは、アクティブ化中にトラッカーの1つが有効でない(つまり、表示されないか、質の閾値を下回っている)場合にも開始できる。トラッカーが表示され、第2のタイプの衝突チェックがクリアされると、制御システム60は境界が有効な状態に切り替わり、手動モード又は半自律モードでの操作を可能にする。
【0129】
図15は、第2のタイプの衝突チェックを実行するために境界ハンドラ90及び関連する構成要素によって実行されるサブルーチンを示している。ステップ100において、境界ハンドラ90は、入力状態が変化したかどうか、すなわち、ツール入力82又はペンダント入力RC1が1つの状態から別の状態に切り替えられたかどうかを判定する。そうでない場合、及び境界ハンドラ90がまだ回復モードになっていない場合、境界ハンドラ90は状態変化のチェックに戻る。状態変化があった場合、境界ハンドラ90は、次に、ステップ102で、状態変化の性質、すなわち、それが第2の入力状態から第1の入力状態への変化/移行であるか(例えば、ユーザ入力が作動された)、又はその逆(例えば、解放された)かを判定する。ツール入力82又はペンダント入力RC1が作動された場合、境界ハンドラ90は、ステップ104で衝突チェックを実行して、ツール20が仮想境界71に準拠しているか、又は仮想境界71に侵入しているかを判定する。
【0130】
仮想境界71に侵入した場合、(i)制御システム60が、ステップ106で境界が無効な状態に切り替えられる、(ii)ツール20の動作を制御するツールドライブが、ステップ108で無効にされ、これは、制御システム60が、ツール20の動作に通常関連するユーザからのいずれかの入力を事実上無視することを意味する、また(iii)回復モードが、ステップ110で開始される。これらのステップはほぼ同時に発生し得、
図15に示されている順序は単に説明を目的としたものであることに留意されたい。ステップ112において、ガイドハンドラ94は、回復信号を介して、仮想境界71が侵入されていることをユーザに通知するためのユーザフィードバックを生成するように、及び/又はユーザにツール20を仮想境界71に準拠して配置するように誘導するように指示される。回復モードに入ると、サブルーチンはいずれかのそれ以降の状態の変化をチェックし続け、状態の変化がない場合(例えば、ユーザがまだツール入力82又はペンダント入力RC1を作動させている場合)、境界ハンドラ90は回復モードを継続させ、ツール20が仮想境界71に侵入したままであるかどうかをチェックする。
【0131】
仮想境界71が侵入されていない場合、(i)制御システム60は、ステップ114において境界が有効な状態に切り替えられ、(ii)ツール20の動作を制御するツールドライブが、ステップ116で有効にされ、また(iii)回復モード(アクティブな場合)がステップ118で終了する。示されていないが、回復モードが終了するとき、ユーザが選択した手動モード又は半自律モードが有効になる。これらのステップはほぼ同時に発生する可能性があり、
図15に示されている順序は単に説明を目的としたものであることに留意されたい。また、ステップ116でツールドライブが有効にされたとき、回復モードに入った後、ツール20はすぐにはアクティブ化されない場合もあるが、ツールの制御は、関連するユーザインターフェースUIを介した(例えば、ボタン、フットスイッチ、トリガなどを介した)ツールの操作を可能にするために、ユーザに戻ることにも留意されたい。ユーザがユーザインターフェースUIの入力を作動させてツールの操作(例えば、電動切断など)を引き起こしている間に回復モードが終了した場合、制御システム60は、ユーザが入力を解放して再係合するまでこの入力を無視することができ、回復モードを終了した後、ツール20の予期しない動作がないようにする。
【0132】
ツール入力82又はペンダント入力RC1が解放された場合、(i)制御システム60は、ステップ120でホールドモード及び境界が無効な状態に切り替えられ、(ii)ツール20の動作を制御するツールドライブは、ステップ122で無効にされ、また(iii)回復モード(アクティブな場合)がステップ124で終了する。これらのステップはほぼ同時に発生する可能性があり、
図15に示されている順序は単に説明を目的としたものであることに留意されたい。
【0133】
いくつかのバージョンでは、制御システム60は、ユーザ入力が第1の入力状態から第2の入力状態に移行してから、所定の期間が経過した後、ツール20の自律的な、境界に準拠した動きを無効にするように構成され得る。例えば、ツール入力82又はペンダント入力RC1が解放された後、仮想境界71を短時間(例えば、100~500ms)有効にしたままにして、マニピュレータ14/ツール20が止まるようにすることが望ましい場合がある。そうでなければ、境界制約が直ちに無効にされた場合、ツール20は、仮想境界71を通って惰性走行し、望ましくない方法で切断又は移動する可能性がある。場合によっては、ツール入力82又はペンダント入力RC1が解放されたとき、制御システム60は、ツール20がより迅速に停止するように、前述のように高度に減衰された移動に切り替わることができる。一定の時間間隔の後、又はツール20が停止すると、仮想境界71を無効にすることができる。この遅延は、前述のように事前に決定/事前設定することができるか、又は、ツール20(例えば、仮想剛体)とその速度(線形、回転)を監視し、境界制約を、速度の程度(線形、回転)が特定の閾値を下回る(又は、各自由度及び/又は各タイプの速度に対して定められた閾値のセットを下回る)まで有効にしておくことにより、制御システム60によって自動的に制御することもできる。場合によっては、仮想境界71は、いずれが先であっても、1つ又は複数の速度が1つ又は複数の閾値を下回るか、又は最大時間に達するまで、アクティブであり続け得る。
【0134】
図15に概説されるプロセスは、境界制約が境界ハンドラ90から制約ソルバー84に送られている境界が有効な状態と、境界制約がもはや境界ハンドラ90から制約ソルバー84に送られてなく、それによりツール20の自律的な、境界に準拠した動きを無効にする境界が無効な状態との間で、境界ハンドラ90がどのように動作可能であるかを示す。境界ハンドラ90は、(i)ツール入力82又はペンダント入力RC1が第1の入力状態から第2の入力状態に移行することに応じて境界が無効な状態で動作し、ツール入力82又はペンダント入力RC1が切り替えられてマニピュレータ14の動きが安定することを可能にした後に境界が無効な状態への移行に遅延が生じる可能性がある、(ii)ツール20が仮想境界71に準拠している限り、ツール入力82又はペンダント入力RC1が第2の入力状態から第1の入力状態に移行することに応じて、境界が有効な状態で動作する、(iii)ツール20が移行時に仮想境界71に侵入している場合、ツール入力82又はペンダント入力RC1が第2の入力状態から第1の入力状態に移行することに応じて境界が無効な状態で動作する、又はその後まもなく(iv)ツール入力82又はペンダント入力RC1がまだ第1の入力状態にある場合、ツール20が仮想境界71に準拠して配置されると、境界が無効な状態から境界が有効な状態に切り替わる。
【0135】
制約ソルバー84、仮想シミュレータ86、経路ハンドラ88、境界ハンドラ90、ユーザ入力状態検出器92、及びガイドハンドラ94はそれぞれ、前述のコントローラのいずれか1つ又は複数の非一時的メモリに格納され、制御システム60によって実装される実行可能ソフトウェアを含む。制約ソルバー84、仮想シミュレータ86、経路ハンドラ88、境界ハンドラ90、ユーザ入力状態検出器92、及びガイドハンドラ94は、制御システム60による実装のために任意の適切な場所に格納された1つ又は複数のソフトウェアモジュールに具体化され得る。
【0136】
VI.行動制御
図16は、行動制御74によって実行される様々なステップの概要である。これらには、上記のように、制約ソルバー84、仮想シミュレータ86、経路ハンドラ88、境界ハンドラ90、及びガイドハンドラ94によって実行されるステップが含まれる。ステップ130では、力/トルクセンサSから取得した読み取り値に基づいて外力F
extが計算される。ステップ132及び133では、様々な仮想制約に関連付けられた制約データが取得され、アクティブな制約が識別される。ステップ133において、境界制約などの制約は、以下でさらに説明されるように、仮想シミュレーションの結果に応じて更新され得る。
図16は、仮想シミュレーションによって出力された提案された状態が、最終的な更新された状態が計算される前に衝突について評価される実施形態を表しているが、一部のバージョンでは、仮想シミュレーションからの出力は、さらなる衝突をチェックせずに最終的な更新された状態として設定される(以下でさらに説明する
図16Aを参照)。
【0137】
ステップ134~138では、仮想シミュレータ86によって剛体計算が実行され、仮想剛体の逆質量行列M-1、慣性力Finertial、及び減衰力Fdampingが判定される。ステップ 140~144において、制約ソルバー84は、ステップ134~138で実行された剛体計算からの出力、及びステップ132及び133で得られた制約データを利用して、前述の制約力の計算を実行し、最終的に制約力Fcを生成する。ステップ146で、制約力Fcは、仮想質量座標系VM(Fcgext)に変換された外力Fext、減衰力Fdamping、及び慣性力Finertialと合計され、総合的な力FTが生成される。ステップ148において、仮想シミュレータ86によって実施される仮想シミュレーションにおいて、総合的な力FTが仮想剛体に加えられて、仮想剛体の提案された状態(例えば、ポーズ及び速度)を判定し、最終的にステップ150で初期状態及び提案された状態をTCPに変換する。
【0138】
ステップ152では、最初に一方の経路をたどり、次に次の実行でもう一方の経路をたどるソフトウェアトグルが使用される。第1の経路において、境界ハンドラ90は、ステップ154で第1のタイプの衝突チェックを実行して、提案された状態が仮想境界71との衝突をもたらすかどうかを判定する。衝突が検出されない場合、提案された状態が検証され、ステップ156で更新された状態として保存され、ステップ158でTCPに変換される。新しい命令されたポーズ(TTCP)と速度(VTCP)は、ステップ160で仮想シミュレータ86によって出力される。衝突が検出されなかった場合、トグル(ステップ152)は現在の状態のままである、すなわち、トグルは他の経路をたどるように切り替えられない。
【0139】
衝突が検出された場合、境界ハンドラ90は、ステップ162で衝突時間t
collisionを計算し、トグルが切り替えられる。
図17A及び17Bを参照すると、衝突時間t
collisionは、現在の状態と仮想シミュレーションで計算された提案された状態との間の第1の距離を計算(
図17A)し、現在の状態と仮想境界71の間の第2の距離を計算し(
図17B)、第1の距離に対する第2の距離の比率に全体の時間枠t
frameを掛けることによって判定され得る。したがって、例えば、仮想境界71が提案された状態までの距離の50%で交差する場合、衝突時間t
collisionは時間枠t
frameの50%になる。次に、ステップ140~144の制約力の計算に使用される時間Δtは、ステップ164の衝突時間t
collisionにリセットされ(
図17Cも参照)、新しい提案された状態が計算される。したがって、仮想シミュレーションは、衝突が発生する前の時間にトリミングされる。次に、仮想シミュレーションによって、新しい提案された状態が判定される。新しい提案された状態が判定されると、トグル(ステップ152)により、(衝突が検出されたので)他の経路がたどられ、新しい提案された状態は、ステップ166で更新された現在の状態になる。ステップ166への移行が発生すると、トグルは自動的にリセットされ、第1の経路をたどる。
【0140】
次に、
図16及び
図17Dを参照して、制御システム60は、衝突が発生してからの時間、衝突時間t
collisionから、元の時間枠t
frameの終わりまでの時間を担う。言い換えると、制御システム60は、期間Δt=t
frame-t
collisionの間、新しい仮想シミュレーションを実行する。境界制約は、ステップ168の仮想シミュレーションのこの次のラウンドのために取得され、ツール20が仮想境界71を横切るのを防ぐために必要な仮想インパルスを効果的に生成する(又は、したがって、ツール20は仮想境界71を最小限しか横切らない)。次に、ステップ168で得られた境界制約を使用して、ステップ133で制約を更新し、仮想シミュレーションが、新しい期間t
frame-t
collisionに対して実行される(ステップ148を参照)。新しい提案された状態が判定され、ステップ150で再びTCPに変換される。リセットされているステップ152のトグルは、再び第1の経路をたどり、衝突チェックが再びステップ154で実行される。一部の仮想境界71では、衝突が検出されると、上記のステップにより、次の衝突チェックが常に負になり、ステップ160で新しい命令されたポーズと速度が出力される。ただし、複雑な幾何学的形状の場合、最初の衝突が検出されて対処されたときでも、次のラウンドの仮想シミュレーションではさらに別の衝突が発生する可能性がある。この場合、複数の衝突を考慮するための他のステップを実行できるが、
図16に示すプロセスは、説明する目的のより簡易な場合である。場合によっては、仮想シミュレーションの最大反復回数が設定でき、最大反復回数に達するとプロセスが停止する。最大反復回数に達した後も衝突が発生する場合は、様々な方法で処理でき、(i)最新の提案された状態を最終的な更新された状態として出力する、(ii)前のフレームの状態(つまり、初期状態)を最終的な更新された状態として出力する、又は(iii)エラーを信号通知し、マニピュレータ14、ツール20などのモーションを停止する。
【0141】
図16Aを参照すると、一部のバージョンでは、
図16のステップ152、154、156、162、164、166、及び168が削除され、代わりに仮想シミュレーションからの出力が新しい更新された状態として設定され、最終的に新しい命令されたポーズを生成する。このバージョンでは、第1の衝突チェックはステップ132の一部であり、境界ハンドラ90が(他の制約と共に)制約ソルバー84にフィードする境界制約(存在する場合)を判定する。
【0142】
VII.例示的な動作
図18A~18Gは、システム10の動作の一例を示している。
図18Aでは、ユーザは、ツール入力82が作動され、第1の入力状態にあるように、ツール入力82でツール20のグリップ83を把持していることが示されている。ユーザは、マニピュレータ14を手動モード及び境界が有効な状態で操作して、標的部位(この場合は大腿骨F)から物質を除去する。仮想境界71は、大腿骨F上にオーバーレイされるように示され、これは、ディスプレイ38を介してユーザに視覚的に示され得る。
図18Aでは、ユーザは、ツール20を使用して大腿骨Fからすでに少量の組織を除去しているが、仮想境界71内には、まだ除去されていないかなりの量の物質が残っている。この構成では、制御システム60は、必要に応じて、ツール20の自律的な、境界に準拠した動きを可能にすることによって、ツール20を仮想境界71内に維持し、そうでなければツール20に仮想境界71の侵入を生じさせる可能性のある仮想境界71のいずれかの動きを担う。
【0143】
図18Bは、ユーザが大腿骨Fにアクセスしやすくなるように大腿骨を動かす準備として、ユーザがツール20のTCPを大腿骨Fの上方に動かすことを示している。
【0144】
図18Cは、大腿骨Fのユーザの動きを示している。ユーザは、ツール20のグリップ83から手を離し、ツール入力82が解放されている。したがって、ツール入力82は、ここで第2の入力状態にあり、制御システム60は、ここで、ホールドモード及び境界が無効な状態に切り替えられる。したがって、ツール20の自律的な、境界に準拠した動きは無効にされ、大腿骨Fは、ツール20のいずれの対応する動きをも引き起こすことなく、ユーザによって動かされ得る。大腿骨Fの動きは、大腿骨Fにしっかりと取り付けられた第1の患者トラッカー54を介して大腿骨Fの動きを追跡するローカライザ44により、ナビゲーションシステム32によって検出される。示されるように、ツール20は、仮想境界71の外側に移動した。
【0145】
図18Dは、手動モードで操作を継続するためにツール20を再び使用するユーザを示している。より具体的には、ユーザは、ツール入力82を再び作動させて、ツール入力82を第1の入力状態にする。前述のように、第2の入力状態から第1の入力状態へのこの移行により、境界ハンドラ90は、第2のタイプの衝突チェックを実行する。この衝突チェックの結果は、ツール20が仮想境界71に侵入しているということである。したがって、ガイドハンドラ94は、1つ又は複数の形態のユーザフィードバックを提供して、ツール20のこの状態をユーザに示し、及び/又はユーザがツール20を仮想境界71に準拠するように戻すように誘導することができる。アラート及び関連するガイダンスは、
図18D及び18Eの1つ又は複数のディスプレイに表示されるものとして示されている。
図18Eでは、ユーザは、仮想境界71に準拠するように、誘導触覚モード又はフリーモードでツール20を動かした。
【0146】
図18Fは、ユーザがもはやリモートコントロールRCのペンダント入力RC1を作動させて、ペンダント入力RC1を第1の入力状態にして、システム10を半自律モードで動作させることを示している。より具体的には、ユーザは、手動モードから半自律モードに移行するためにツール入力82を解放した。制御システム60が手動モードから半自律モードに動作を移行するとき、制御システム60は、第3のタイプの衝突チェックを実行することができる(例えば、第2のタイプの衝突チェックを実行することに加えて)。より具体的には、半自律モードが有効になる前に、経路ハンドラ88は、ツール20の現在のポーズからツール経路TP上の開始点SPまでのリードイン経路LIPを定める。この直線経路は、ツール20の現在のポーズ及び開始点SPが両方とも仮想境界71に準拠している場合でも、仮想境界71と交差することがあり得る(
図18Fに示されるように)。第3のタイプの衝突チェックは、経路ハンドラ88によって生成されたリードイン経路LIPが仮想境界71に侵入するかどうかを判定する。仮想境界71に侵入していない場合、制御システム60は、半自律モードで、ツール20をリードイン経路LIPに沿ってツール経路TPに自律的に移動させることができる。ツール20がリードイン経路LIPに沿って移動された場合に仮想境界71に侵入する場合、制御システム60は、それをユーザに示し、ツール20を移動する方法についてユーザにガイダンスを提供することによって応答し、
図18Fのディスプレイ38に示されている「ツール位置の変更」の指示に示されているように、このような侵入を回避する。半自律モードは無効のままである。
【0147】
第3のタイプの衝突チェックは、第1のタイプの衝突チェックと同様に実行され得る。前述のように、経路ハンドラ88は、マニピュレータ14が手動モードから半自律モードに移行するときに、ツール20の現在の位置(又はポーズ)からツール経路TPの開始点までのリードイン経路LIPを生成する。境界ハンドラ90は、リードイン経路LIPに沿ったツール20の動きが仮想境界71への準拠を維持するか、又は仮想境界71に侵入するかどうかを判定する。
【0148】
VIII.その他の衝突チェック
いくつかのバージョンでは、
図18Gに示されている境界ハンドラ90は、定位的相互作用機構SIFが仮想境界71への準拠を維持するか、又は仮想境界71に侵入するかを判定するために、リードイン経路LIPに沿ったツール20の動きが仮想境界71の準拠を維持するか、又は仮想境界71に侵入するかどうかを、定位的相互作用機構SIFが仮想境界71への準拠を維持するか、又は仮想境界71に侵入するかどうかを判定するためにツール20に関連付けられた複数の定位的相互作用機構SIFのモーションをモデル化することによって、判定するように構成される。これは、定位的相互作用機構SIFからの直線のモーションに対して同様の衝突チェックを実行することによって実行できる。このようなモーションは、リードイン経路LIPとそれに対応する配向を、対応する定位的相互作用機構SIFのそれぞれに変換することによって判定できる(
図18GのLIP
Tを参照)。いくつかのバージョンでは、境界ハンドラ90は、3つ以上の自由度で複数の定位的相互作用機構のより複雑なモーションをモデル化するように構成される。ガイドハンドラ94は、ツール20がリードイン経路LIPに沿ってツール経路TPへと現在の位置から移動した場合にツール20(例えば、その任意のモデル化された点)が仮想境界71に侵入すると判定する境界ハンドラ90に応じて、ユーザへのフィードバックを生成する。
【0149】
リードイン経路LIPの衝突チェックでは、有効な定位的相互作用機構のSIFとその形状、つまりツール20用に構成された球体とその位置であり得る球体を考慮し、TCPが、提案されたリードイン経路LIPを通過する間にそれぞれが遭遇する可能性のあるモーションの範囲でそれぞれをスイープするようにする。リードイン経路LIPは、開始点SPへの位置及び/又は配向の位置合わせ(3DOFを超える自律機械加工の場合)を含む、つまり、引き込みの間の各定位的相互作用機構SIFの結果として生じる動きが必ずしも直線ではないことに留意されたい。したがって、制御システム60は、(i)各定位的相互作用機構SIFのモーションを正確にモデル化し、適用可能な並進/回転軌跡に従って、又は図に示すように、連続衝突検出を実行する、(ii)開始位置と終了位置の間で衝突形状を平行移動のみでスイープすることにより、定位的相互作用機構SIFの軌跡を概算することができる。リードイン経路の衝突チェックが失敗した場合、ツール20のいずれかのモーションの前に(すなわち、マニピュレータ14がホールドモード、フリーモード、又は手動モードに留まる)、状況を解決する方法に関するディスプレイ38を介して潜在的に強化された視覚情報と共に、ユーザが警告される。
【0150】
図19を参照すると、境界ハンドラ90は、ユーザが、手動モード又は半自律モードでの操作中に現在の仮想境界(第1の仮想境界71として示される)から第2の仮想境界75に切り替えることを望むときに、第4のタイプの衝突チェックを実行するように構成され得る。ユーザが、第1の仮想境界71から第2の仮想境界75への切り替えなど、外科的処置の途中で仮想境界を変更することを望む場合、境界ハンドラ90は、切り替えが発生した場合に第2の仮想境界75が侵入されないのを確実にすべくチェックする(例えば、第2の仮想境界75に設定されたいずれかの許容誤差を考慮に入れることを含めて、第1の仮想境界71が前述のように侵入について評価されるのと同じ様式で)。第2の仮想境界75に侵入する場合、制御システム60は、第1の仮想境界71が有効にされ、第2の仮想境界75が無効にされた状態で動作を継続する。しかしながら、第2の仮想境界75に侵入しない場合、制御システム60は、第2の仮想境界75をアクティブにし、第1の仮想境界71を非アクティブにする。
【0151】
仮想境界セレクタVBSは、第2の仮想境界75に切り替えることを望むことを示すためにユーザによって利用され得る。仮想境界セレクタVBSは、ユーザが第2の仮想境界75を選択することを可能にし、これはまた、標的部位に関連付けられ得、その結果、制御システム60は、その後、マニピュレータ14の動作及びツール20の動きを制御して、第1の仮想境界71への準拠を維持するために使用される制御システム60と同じ様式で、ツール20が第2の仮想境界75へ準拠するのを維持する。仮想境界セレクタVBSは、マニピュレータ14、ツール20、リモートコントロールRCなどに配置されたユーザ入力を含むことができる。仮想境界セレクタVBSのユーザ入力は、本明細書で以前に説明されたものを含む任意の適切な形式の入力デバイスであり得る。仮想境界セレクタVBSは、ユーザが第1及び第2の仮想境界71、75の間でトグルすること、複数の仮想境界の中から順次トグルすること、又は仮想境界のリストから選択することを可能にすることができる。
【0152】
制御システム60は、制御システム60がマニピュレータ14の動作及びツール20の動きを制御し続けて、ツール20の第1の仮想境界71への準拠を維持しながら、ユーザが仮想境界セレクタVBSで第2の仮想境界75を選択することを可能にする。境界ハンドラ90は、ユーザが第2の仮想境界75を選択することに応じて、ツール20が第2の仮想境界75に準拠しているか、又は第2の仮想境界75に侵入しているかを判定し、境界ハンドラ90は、ツール20が第2の仮想境界75に準拠していると境界ハンドラ90が判定した場合、第2の仮想境界75をアクティブにし、第1の仮想境界71を非アクティブ化し、その結果、制御システム60は、マニピュレータ14の動作及びツール20の動きを、第1の仮想境界71に基づくものから第2の仮想境界75に基づくものへと移行するように制御する。境界ハンドラ90は、ユーザが仮想境界セレクタVBSを介して第2の仮想境界75を選択したことに応じて、ツール20が第2の仮想境界75に侵入していると境界ハンドラ90が判断した場合、第1の仮想境界71をアクティブとして維持するように構成される。
【0153】
制御システム60は、ユーザが仮想境界セレクタVBSを作動させて第2の仮想境界75を選択するときに、ツール20が第2の仮想境界75に侵入していると境界ハンドラ90が判定したのに応じて、ユーザへのユーザフィードバックを生成する。制御システム60は、ツール入力82又はペンダント入力RC1が第1の入力状態にある間に、ユーザが仮想境界セレクタVBSを伴い第2の仮想境界75を選択できるように構成される。さらに、制御システム60は、ユーザが仮想境界セレクタVBSで第2の仮想境界75を選択したときに、ツールドライブの動作を継続する。いくつかのバージョンでは、ユーザは、ツール入力82及びペンダント入力RC1が第2の入力状態にある間に、仮想境界セレクタVBSで第2の仮想境界75を選択することもできる場合がある。
【0154】
いくつかのバージョンでは、ユーザは仮想境界セレクタVBSで第2の仮想境界75をオンザフライで選択でき、これは、手動モード又は半自律モードがアクティブであること(例えば、ツール入力82又はペンダント入力RC1の1つが第1の入力状態になる)、及びマニピュレータ14及びツール20が動いていることを意味する。第4のタイプの衝突チェックが第2の仮想境界75の侵入を示した場合、有効な境界制約がアクティブのままであったため(例えば、第1の仮想境界71について)、ユーザ/マニピュレータ14は、ツール20の操作/移動を停止又は強制的に停止しない。
【0155】
いくつかの例では、第1及び第2の仮想境界71、75は、膝全体の手技又は他の外科的手技の標準的及び拡張された境界と見なされ得る。標準的な境界は、インプラントのサイズに基づいて制限された寸法(例えば、高さ、幅、及び/又は深さ)を有し得、拡張された境界は、標準的な境界よりも大きさが大きい1つ以上の寸法(例えば、より広い幅)を有し得、ユーザがツール20を用いてより多くの組織(例えば、骨)にアクセスすることを可能にする。制御システム60は、デフォルトで動作を標準的な境界に設定することができる。仮想境界セレクタVBSを介したユーザ入力に基づいて、必要に応じて、ユーザは、より多くの組織に到達できるようにする拡張された境界に切り替えることができる。ユーザがより大きな(例えば、より広い)境界を必要とする領域の機械加工を終了すると、ユーザが標準の境界に戻って残りのカットを適用したいと望む場合がある。第4のタイプの衝突チェックを使用して、ツール20が標準的な境界に許可された領域内にある場合に、ユーザは拡張された境界から標準的な境界に戻ることのみができる。そうでない場合、ユーザインターフェース(ディスプレイなど)は侵入を示し、失敗したスイッチは標準的な境界に戻り、ユーザは仮想境界セレクタVBSを再度作動させることで後に再試行できる。
【0156】
制御システム60は、ツール入力82又はペンダント入力RC1が第1の入力状態にあり、第2の仮想境界75が、境界ハンドラ90で第2の仮想境界75の第2の境界制約を生成することによって、アクティブであるときに、ツール20と第2の仮想境界75との間の相対移動を制限する。制約ソルバー84は、制約力Fcを計算して、第1の境界制約に基づいて第1の仮想境界71に準拠して、又はユーザが仮想境界セレクタVBSで第2の仮想境界75を正常に選択したときに、第2の境界制約に基づき第2の仮想境界75へ準拠して、ツールを維持することができる。
【0157】
第1の仮想境界71から第2の仮想境界75に移行するための衝突チェック/アクティブ化/非アクティブ化ステップは、衝突チェックと、仮想境界71、75の両方がアクティブである、又は両方共アクティブではない間の作動又は時間のギャップの間で動きの競合状態を回避するために、原子的に(すなわち、同じタイムステップで)実行され得ることに留意されたい。仮想境界71、75は、衝突シーンと呼ばれることもある。衝突チェックが失敗した場合、衝突シーンは最初の衝突シーンから第2の衝突シーンに更新されない。衝突チェックに合格しない限り、アクティブな衝突シーンは非アクティブ化されないので、制御システム60は、移行要求の直前の時点でその動作を維持することができる。移行の失敗をユーザに通知するために、ユーザフィードバックを与えることができ、例えば、可聴フィードバック、ディスプレイ38上のユーザメッセージ、触覚フィードバックなどである。自動的に行うこともできるが、通常はユーザに、「アクティブ」から「新しい」衝突シーンへの移行をいつ再試行するか/再試行するかどうかを、上記のシーケンスが繰り返されるときに、決断させることが望まれる。
【0158】
いくつかの状況では、第2の仮想境界75へのユーザの切り替えの試みが失敗し、第1の仮想境界71がアクティブのままである場合、ツール20を第2の仮想境界75に準拠させるのを助けるために支援モードがアクティブ化され得る。支援モードでは、回復モードについて説明したのと同じ制御を使用して、ツール20を第2の仮想境界75に準拠させるのを助けることができるが、手動モード又は半自律モードは、第1の仮想境界71が第1の仮想境界71への準拠を維持するための境界制約を生成するために依然として使用されていることによってアクティブのままである。
【0159】
支援モードは、制御システム60を含み得、(i)ツール20を第2の仮想境界75に準拠して配置させるツール20の動きを引き起こすようにユーザを導くために、ディスプレイ又は他の場所に視覚的な合図を生成すること、(ii)ガイドハンドラ94を用いてガイド制約を生成して、ユーザを第2の仮想境界75に準拠するように誘導すること、(iii)第2の仮想境界75に準拠するようにツール20を自律的に移動させるための支援ツール経路を生成すること、(iv)第2の仮想境界75をその開始位置からツール20がそれに準拠するように移動し、次に第2の仮想境界75を徐々にその開始位置に戻し、ツール20をそれに沿って穏やかに引き、及び/又は(v)ツール20が一層段階的に、第2の仮想境界75(すなわち、第2の仮想境界75は、より剛性が低くなるように効果的に変更される)に準拠するように移行できるように、第2の仮想境界75の元の境界制約の調整パラメータよりも低い調整パラメータを有する第2の仮想境界75に関連する支援制約を生成する。ツール20を第2の仮想境界75に準拠するように導くための他の方法もまた企図される。場合によっては、これらの方法の1つ又は複数が制御システム60によって考慮され、特定の条件が満たされた場合に実行されることがある。制御システム60は、ツール20が第2の仮想境界75にどれだけ近いかを確認し、次に適切な方法を選択することができる。例えば、ツール20が第2の仮想境界75の1~2mm以内にある場合、一時的に緩い調整パラメータで第2の仮想境界75をアクティブ化することが可能になり得、又は第2の仮想境界75を一時的にシフトすることが適切であり得る。ツール20が第2の仮想境界75に準拠すると、制御システム60は、制御を手動又は自動で第2の仮想境界75に切り替えることができる。他の実施態様には、例えば、縁の骨棘のためのTKA又はTHA寛骨臼の準備のための、ツールの軸に沿ったバックトラックが含まれる。
【0160】
様々なユーザインターフェースUI上のリモートコントロールRC及び/又は他の入力デバイスを使用して、マニピュレータ14の様々な動作モードを切り替え、アクティブ化、及び/又は非アクティブ化することができる。制御システム60は、特定の状況でモードを自動的に切り替えるように構成することができる。制御システム60はまた、これらのモードが選択されたときにこれらのモードが最初に無効にされた場合、ツール20が境界ハンドラ90によって仮想境界71に侵入していることが判明したため、手動モード又は半自律モードで動作する前に最初にユーザにプロンプトを出すことができる。制御システム60はまた、誘導触覚モードで動作する前にユーザにプロンプトを出すことができる。そのようなプロンプトは、手動モード、半自律モード、又は誘導触覚モードで続行するために、ディスプレイ38のうちの1つ又は複数に選択可能なプロンプトを提供することを含み得る。ユーザは、リモートコントロールRCを含む任意のユーザインターフェースUIの任意の適切な入力デバイスを介して、手動モード、半自律モード、誘導触覚モードなどを続行することを選択できる。
【0161】
仮想境界71、ツール経路TP、目標状態、及び/又は標的部位に対するツール20の現在の状態は、ナビゲーションシステム32によって出力され、ツール20のグラフィック表現を介してディスプレイ38上に、仮想境界71、ツール経路TP、目標状態、及び/又は標的部位、例えば、大腿骨F、脛骨T、骨盤PEL、椎体、又は他の解剖学的構造が表され得る。これらのグラフィック表現はリアルタイムで更新できるため、ユーザは仮想境界71、ツール経路TP、目標状態、解剖学的構造などに対するツール20の動きを視覚化できる。例えば、ツール20及び解剖学的構造のグラフィック表現は、マニピュレータ14によるツール20の実際の動き及び解剖学的構造の実際の動きと共に、リアルタイムでディスプレイ38上を移動することができる。
【0162】
本明細書に記載の様々なモードは、様々なタイプの外科システムで使用することができる。例えば、マニピュレータは、遠隔操作ロボットアームに対して遠隔に配置されて遠隔操作ロボットアームを制御するユーザインターフェースを介して制御される遠隔操作ロボットアームを備え得る。ユーザインターフェースは、ユーザによって手動で操作される6DOF制御ユニットなどの別個のマニピュレータ、例えば、ユーザに触覚フィードバックを提供するためのアクティブなジョイントを備えた別個のマニピュレータを備えることができる。
【0163】
IX.定位的相互作用機構
上記のように、定位的相互作用機構SIFは、衝突検出のためにシステムによって利用され得る。このセクションでは、SIFを実装又は利用できる様々な構成又は実施態様について説明する。SIFの以下の構成又は実施態様は、このセクションで参照によって完全に組み込まれる上記の技術又はコンポーネントのいずれかと共に利用することができる。代替的又は追加的に、SIFの以下の構成又は実施態様は、上記の技術のいずれかとは無関係に、及びこれらに限定されないが、ロボット制御、衝突回避、ユーザエクスペリエンスなどの他の一般的な目的のために利用され得る。
【0164】
定位的相互作用機構SIFは、仮想境界71と相互作用できる任意の対象物に帰属する可能性がある。任意選択で、SIFは、ポーズを(手動、自動、又は運動学的に)制御できる任意のコンポーネントに帰属させることができる。例えば、SIFは、ロボット手術システムの任意の部分、ツール20、エンドエフェクタ22、エネルギーアプリケータ24又はTCP、マニピュレータ14、任意のリンク18又はマニピュレータ14のジョイントJ、ベース16、又はマニピュレータ14を形成する運動学的チェーンの他のいずれかの部分に帰属する可能性がある。SIFは、ハンドヘルドツール、手術台、ヘッドマウントデバイス、ハンドヘルドディスプレイデバイス又はタブレット、トラッカー、開創器、患者、職員、又はスタッフなどの、手術室の他の対象物又は手術の構成要素に帰属する可能性がある。SIFの位置を知ることができるのは、上記のローカリゼーション技術を含むがこれに限定されない任意の適切な方法を使用して、任意の対象物を追跡できるためである。SIFが帰属する対象物は、プログラムへの入力に基づいて選択され、及び/又は、例えば、手術計画、手術のタイプ又はステップ、外科医の好みなどの要因に基づいて自動的に生成され得る。
【0165】
さらに、このセクションで説明されている仮想境界71は、解剖学的構造以外の任意の対象物に帰属する可能性がある。例えば、仮想境界71は、ロボット手術システムの任意の部分、ツール20、エンドエフェクタ22、エネルギーアプリケータ24又はTCP、マニピュレータ14、任意のリンク18又はマニピュレータ14のジョイントJ、ベース16、又はマニピュレータ14を形成する運動学的チェーンの他のいずれかの部分に帰属する可能性がある。仮想境界71は、画像化デバイス(cアーム、ガントリ、CTスキャナなど)、ハンドヘルドツール、手術台、ヘッドマウントデバイス、ハンドヘルドディスプレイデバイス又はタブレット、トラッカー、開創器、患者、職員、又はスタッフなどの、手術室の他の対象物又は手術の構成要素に帰属する可能性がある。仮想境界71は、それが帰属する対象物に応じて、任意の適切な形状又は構成を有することができる。例えば、仮想境界71がマニピュレータ14のリンク18に帰属する場合、仮想境界71は、例えば
図20に示されるように、リンク18を取り囲む体積部の形状をとることができる。他の構成が考えられる。仮想境界71の位置を知ることができるのは、上記のローカリゼーション技術を含むがこれに限定されない任意の適切な方法を使用して、任意の対象物を追跡できるためである。仮想境界71が帰属する対象物は、プログラムへの入力に基づいて選択され、及び/又は、例えば、手術計画、手術のタイプ又はステップ、外科医の好みなどの要因に基づいて自動的に生成され得る。
【0166】
SIFは、ソフトウェアプログラム78及び境界ハンドラ90を含む、前のセクションで説明された制御システム60を使用して、定められ、配置され、カスタマイズされ、実装され得る。境界ハンドラ90は、任意の適切な方法を使用して、任意の数のSIFと仮想境界71との間の衝突を検出することができる。いずれか1つ又は複数のSIFと仮想境界71との間の衝突又は予想される衝突に応じて、制御システムは、それぞれの対象物のポーズを調整し、及び/又はアラート又は通知を生成することができる。制御システムからのこのような応答は、衝突を反応的又は予防的に防止、回避、軽減、又は低減するために提供される。
【0167】
任意の数のSIFを任意の数の対象物に帰属させることができる。
図20の例では、複数のSIFがツール20に帰属し、この場合、THAのために大腿骨Fを粉砕するための細長いカッティングバーである。もちろん、この例は説明を目的としたものであり、SIFを利用し得る方法の範囲を制限することを意図したものではない。SIFが帰属する数は、プログラムへの入力に基づいて定められ、及び/又は、例えば、手術計画、手術のタイプ又はステップ、外科医の好みなどの要因に基づいて自動的に生成され得る。
【0168】
いくつかの実施態様では、SIFは、SIFが帰属する対象物に直接配置されている場所に帰属することができる。例えば、
図20では、SIF-1として識別されるいくつかのSIFは、ツール20のシャフトSHに直接帰属する。これらのSIF-1は、シャフトSHに沿って、シャフトSH上に互いに間隔を置いて、直接配置されている。この例では、SIF-1は、シャフトSHと大腿骨Fの管の内面に帰属する仮想境界71との衝突を回避するために提供されている。例えば、粉砕中では、TCPがツール経路に沿うので、ツール20は定期的に再配向することができ、それにより順次シャフトSHの再配向が生じる。シャフトSHに沿って複数のSIF-1を有すると、そのような再配向に応じてシャフトSHと解剖学的構造が物理的に衝突する可能性が低くなる。
【0169】
他の実施態様では、SIFは、SIFが帰属する対象物から離れた場所に帰属することができる。例えば、
図20では、SIF-2として識別されるいくつかのSIFは、ツール20の近位端に帰属する。これらのSIF-2は、指定された距離だけツール20から離れて配置されている。この例のSIF-2の間隔は、ツール20が、再配向に応じて、TCPの近くと比較して、近位端の近くでより大きな配向移動(例えば、角度のモーション)を受ける可能性が高いため、適切である可能性がある。したがって、ツール20からのSIF-2の間隔は、追加のクッション、又は衝突又は予想される衝突に対するより早い応答をもたらす。この例では、SIF-2は近位端にSIFのリングを形成するように配置されている。SIFの構成又は配置は、対象物のジオメトリ、例えば、シャフトSH又はツール20の2Dの断面から直接導き出すことができる。SIFは、互いに直接隣接して配置することも、互いに離して配置することもできる。
【0170】
SIFが属するそれぞれの対象物に対するSIFの間隔は、プログラムへの入力に基づいて定められ、及び/又は、例えば、手術計画、手術のタイプ又はステップ、外科医の好みなどの要因に基づいて自動的に生成され得る。
【0171】
他の実施態様では、SIFは任意の適切なジオメトリで構成できる。例えば、SIFはポイント、領域、又は体積部であり得る。SIFは任意の適切な形状にすることができる。
図20の例では、SIFは球形である。ただし、平面、双曲面、放物面、円柱、立方体、ピラミッド、円錐、直方体、楕円体、プリズム、又は任意のタイプの多面体など、他の2D形状又は体積部が考慮され、これらに限定されない。任意のタイプのジオメトリ構成に対して、SIFは任意の適切なサイズで構成することもできる。例えば、
図20では、球形のSIF-1は、SIFがツール20の近位端に近づくにつれて体積が増加する。繰り返すが、これは、衝突又は予想される衝突に対する早期の応答を実現するために実装され得る場合がある。SIFのジオメトリ構成又はサイズは、プログラムへの入力に基づいて定められ、及び/又は、例えば、手術計画、手術のタイプ又はステップ、外科医の好みなどの要因に基づいて自動的に生成され得る。
【0172】
1つの実施態様では、SIFは無限に剛性ではないが、代わりに、各SIFは、例えば、ばね及び減衰パラメータを制約に組み込むことによって、仮想制約に対してSIFの剛性を調整するための調整(剛性)パラメータを有し得る。このようなパラメータには、制約力混合パラメータ(C)及びエラー低減パラメータ(ε)が含まれる場合がある。スプリングと減衰のパラメータは、動作前又は動作中に調整できる。SIFの調整パラメータは、異なる対象物、条件、場所、又はジオメトリ構成によって異なる場合がある。SIFは、調整パラメータの第1の値を有する第1のSIFと、調整パラメータの第2の値を有する第2のSIFとを含み得、第1の値は第2の値よりも大きく、そのため、結果として生じる、制約力Fcで具体化された仮想の力及び/又はトルクは、第2のSIFと比較して、第1のSIFの結果として、ツール20の動きをより強くもたらすように適合されている。調整パラメータの値は、配向の制約よりも位置の制約の方が大きい(例えば、硬い)場合があり、その逆の場合もある。
【0173】
SIFの調整パラメータは、一定のまま、制約距離で指数関数的に上昇/下降する、制約距離に応じて線形に変化する、制約の方向によって異なる、重力の影響を考慮に入れる、などのように設定することもできる。調整パラメータは、制約力Fc又はそのコンポーネントの大きさに応じて剛性を増減するなど、仮想制約に基づいて最終的に計算される制約力Fcに応じてスケーリングすることもできる。SIFの調整パラメータ及びそれらの値、特定の関係に対するそれらの相関、及びそれらがスケーリングされ得る様式は、後で検索するために、制御システム60内の任意の適切なメモリ内の1つ又は複数のルックアップテーブルに格納され得る。
【0174】
一実施態様では、第1の調整パラメータを第1のSIFに対して定めることができ、第2の調整パラメータを第2のSIFに対して定めることができる。第1の調整パラメータと第2の調整パラメータは異なる値である。一例では、第1及び第2の異なるように調整されたSIFは、ロボットマニピュレータ14の運動学的チェーンKCの異なる構成要素に配置されている。異なるように調整されたSIFは、運動学的チェーンKCの同じ構成要素の異なる位置に配置することもできる。運動学的チェーンKCは、ベース16、複数のリンク18及びジョイントJ、シャフトSHを含むツール20(該当する場合)、及びエネルギーアプリケータ24などの任意の堅固に取り付けられた構成要素を含むマニピュレータ14によって形成される。エンドエフェクタ22もまた、運動学的チェーンKCの一部であり得る。さらに、マニピュレータ14とエンドエフェクタ22との間に結合された任意の取り付けシステム又は滅菌インターフェースは、運動学的チェーンKCの一部であり得る。運動学的チェーンの一部となり得る取り付けシステム及び/又は滅菌インターフェース機構の一例は、「Mounting System With Sterile Barrier Assembly For Use In Coupling Surgical Components」と題された米国特許出願公開第2020/0170724A1号に記載されている。その全内容は、参照により本明細書に組み込まれる。本明細書で使用される場合、「運動学的チェーン」という用語は、ジョイントによって接続された剛体のアセンブリであり、剛体の運動学が判定されて数学モデルを利用してチェーンの他の剛体に関連することができるように、ボディの剛性により、制約されたモーションが可能になる。
図20の例では、運動学的チェーンは、少なくとも1つのリンクが機械的に接地されているため、さらに「メカニズム」を形成する。
【0175】
図20の例では、異なって調整された第1及び第2のSIFは、ツール20及び/又はシャフトSH上に配置することができる。この場合、SIF-2の調整パラメータは、ツール20の近位端付近でシャフトSHの望ましくない配向的なモーションの可能性が大きくなるため、SIF-1の調整パラメータよりも剛性が高くなる(例えば、より多大な減衰、又はより大きなばね定数)可能性がある。SIF-2のより大きな剛性は、マニピュレータ14がツール20の近位端の近くで、より非破壊的な修正のモーションを命令する原因となる可能性がある。他の例では、SIF-2はSIF-1よりも剛性が低くなる可能性がある。この調整構成は、エネルギーアプリケータ/ツールと仮想境界71との間に衝突が生じたときに、よりスムーズな移行を提供するために実装することができる。この実装は、最初はシャフトSH又はツール20による仮想境界71のより大きな貫入をもたらすことができるが、ロボットマニピュレータの他の動作は、衝突から生じるそのようなより大きな貫入の原因となるために、貫入の前、最中、又は直後に変更することができる。さらに、SIFに対して異なる調整パラメータを有することにより、境界71との衝突がエラー状態を引き起こし、マニピュレータ14の動作を停止させる可能性を低減することができる。このような調整パラメータ構成は、望ましくない対象物のモーションを軽減する目的で、又はロボット制御及び/又はユーザエクスペリエンスに関連する任意のその他の目的で、任意の数のSIFに適用できる。
【0176】
さらに、複数の調整パラメータを任意の単一のSIFに関連付けることができる。例えば、1つのSIFの調整パラメータは、時間、状態の検出、それぞれの対象物までのSIFの距離、仮想境界71までのSIFの距離などに関して変化し得る。別の例では、1つのSIFは、複数の調整パラメータを同時に含めるのに十分なサイズである場合がある。例えば、SIFのある部分/表面/体積は、同じSIFの別の部分/表面/体積よりも多かれ少なかれ剛性になるように構成され得る。
【0177】
上記のSIFのいずれかの特性は、手術中、又はロボットシステムの動作を一時停止している間に、動的に変化する可能性がある。例えば、制御システムは、何らかの制御イベント又は環境条件に応じてSIF変更イベントを判定することができる。このような状態は、予期される場合と予期されない場合があり、ローカリゼーションデータ、運動学的データ、又はそれらの任意の組み合わせを使用して制御システムによって検出できる。それに応じて、制御システムは、1つ又は複数のSIFの位置、ジオメトリ構成、間隔、剛性を動的に変更できる。この動的に変化する機構は、プログラムへの入力に基づいて管理することができ、及び/又は、例えば、手術計画、手術のタイプ又はステップ、外科医の好みなどの要因に基づいて自動的に管理することができる。
【0178】
SIFの記述された機構、特性、プロパティ、及び/又は動作のいずれかは、SIFのパラメータとして参照できる。SIFの上記の実施態様又はパラメータのいずれかを個別に、又はそれらの任意の組み合わせで利用できる。
【0179】
前述の説明では、いくつかの実施形態について説明してきた。しかし、本明細書で論じられる実施形態は、網羅的であること、又は本発明をいずれかの特定の形態に限定することを意図するものではない。使用されている用語は、限定ではなく、説明の言葉の性質にあることを意図するものである。上記の教示に照らして多くの修正形態及び変形形態が可能であり、本発明は、具体的に記載されている以外のもので実施されることができる。