(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-16
(54)【発明の名称】運動構成要素の望ましくない向きの運動を軽減するためのロボットシステム及び方法
(51)【国際特許分類】
A61B 34/35 20160101AFI20240109BHJP
B25J 19/06 20060101ALI20240109BHJP
【FI】
A61B34/35
B25J19/06
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023540083
(86)(22)【出願日】2021-12-28
(85)【翻訳文提出日】2023-08-28
(86)【国際出願番号】 US2021065334
(87)【国際公開番号】W WO2022147001
(87)【国際公開日】2022-07-07
(32)【優先日】2020-12-31
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507280594
【氏名又は名称】マコ サージカル コーポレーション
(74)【代理人】
【識別番号】100099623
【氏名又は名称】奥山 尚一
(74)【代理人】
【識別番号】100125380
【氏名又は名称】中村 綾子
(74)【代理人】
【識別番号】100142996
【氏名又は名称】森本 聡二
(74)【代理人】
【識別番号】100166268
【氏名又は名称】田中 祐
(74)【代理人】
【識別番号】100218604
【氏名又は名称】池本 理絵
(72)【発明者】
【氏名】クラナ,リシャブ
【テーマコード(参考)】
3C707
4C130
【Fターム(参考)】
3C707AS35
3C707BS12
3C707DS01
3C707JS02
3C707LS20
3C707LU01
3C707MS08
3C707MS27
3C707MS30
4C130AA02
4C130AA07
4C130AA13
4C130AA23
4C130AA24
4C130AA33
4C130AA34
4C130AA42
4C130AA55
4C130AB02
4C130AD02
4C130AD05
4C130AD15
4C130AD23
4C130AD25
(57)【要約】
ロボット手術システムは、マニピュレータの構成要素によって規定される運動連鎖と、エネルギーアプリケータを含む手術ツールとを含む。少なくとも1つのコントローラは、エネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素が、望ましくない向きの運動を経験しているまたは経験するであろうことを識別する。少なくとも1つのコントローラは、現在または予想される望ましくない向きの運動を軽減するように、マニピュレータの動作を変更する。
【選択図】
図10
【特許請求の範囲】
【請求項1】
手術システムであって、
エネルギーアプリケータを含む手術ツールと、
ベースと複数のリンク及び関節とを備え、前記手術ツールを支持するように構成されているマニピュレータであって、運動連鎖が、前記マニピュレータの前記ベースと複数のリンク及び関節とを含む構成要素と、前記エネルギーアプリケータを含む前記手術ツールとによって規定される、前記マニピュレータと、
少なくとも1つのコントローラと、を含み、
前記少なくとも1つのコントローラは、
前記エネルギーアプリケータがツールパスに沿って半自律モードで前進する速度として定義される送り速度を決定し、
前記送り速度に従って前記ツールパスに沿って複数の指令位置まで前記エネルギーアプリケータを前進させるように前記半自律モードで前記マニピュレータを制御し、
前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が、前記送り速度に従った前記ツールパスに沿った前記エネルギーアプリケータの前進中に生じる望ましくない向きの運動を経験しているまたは経験するであろうことを識別し、且つ、
前記望ましくない向きの運動を考慮するように前記送り速度を変更する
ように構成される、手術システム。
【請求項2】
前記少なくとも1つのコントローラが、前記エネルギーアプリケータ以外の前記運動連鎖の前記1つまたは複数の構成要素によって経験されるまたは経験されるであろう前記望ましくない向きの運動の大きさに相関される因子によって前記送り速度を低減するようにさらに構成されることによって、前記望ましくない向きの運動を考慮するように前記送り速度を変更し、
前記変更された送り速度は、前記送り速度の変更前の既存の前記送り速度の速度よりも小さい非ゼロの速度である、請求項1に記載の手術システム。
【請求項3】
前記少なくとも1つのコントローラは、前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が、前記望ましくない向きの運動を経験しているまたは経験するであろうことを、
前記望ましくない向きの運動を閾値または範囲と比較し、且つ、
前記望ましくない向きの運動が前記閾値または範囲を満たすことに応答して、前記望ましくない向きの運動を考慮するように前記送り速度を変更する
ようにさらに構成されることによって、識別する、請求項1又は2に記載の手術システム。
【請求項4】
前記少なくとも1つのコントローラが、
前記送り速度に従った前記ツールパスに沿った前記複数の指令位置への前記エネルギーアプリケータの前進中、前記運動連鎖の順運動学測定値を取得し、且つ、
前記順運動学測定値を評価して、前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が前記望ましくない向きの運動を経験しているまたは経験するであろうことを識別する
ように構成される、請求項1~3のいずれか1項に記載の手術システム。
【請求項5】
前記運動連鎖の前記1つまたは複数の構成要素の前記望ましくない向きの運動を示すシミュレーションデータを記憶した非一時的コンピュータ可読媒体をさらに含み、
前記シミュレーションデータは、前記送り速度に従って前記ツールパスに沿って前記複数の指令位置に前記エネルギーアプリケータを前進させるように前記半自律モードで前記マニピュレータの制御をシミュレートするように構成された術前シミュレーションから取得され、
前記少なくとも1つのコントローラは、
前記シミュレーションデータを前記非一時的コンピュータ可読媒体から取得し、且つ、
前記シミュレーションデータに基づいて、前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が前記望ましくない向きの運動を経験しているまたは経験するであろうことを識別する
ように構成される、請求項1~4のいずれか1項に記載の手術システム。
【請求項6】
前記運動連鎖の任意の1つまたは複数の構成要素に関連する測定値を生成するように構成された1つまたは複数のセンサをさらに含み、且つ、
前記少なくとも1つのコントローラが、前記測定値を分析して、前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が前記望ましくない向きの運動を経験しているまたは経験するであろうことを識別するように構成される、請求項1~5のいずれか1項に記載の手術システム。
【請求項7】
前記少なくとも1つのコントローラが、
非一時的コンピュータ可読媒体に前記運動連鎖の任意の1つまたは複数の構成要素の慣性値を記憶し、
前記記憶された慣性値を利用して、前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が前記望ましくない向きの運動を経験しているまたは経験するであろうことを識別する
ように構成される、請求項1~6のいずれか1項に記載の手術システム。
【請求項8】
前記半自律モードでの前記ツールパスに沿った前記エネルギーアプリケータの前進中に、前記少なくとも1つのコントローラが、
前記手術機器の向き変更を有効にし、
前記エネルギーアプリケータ以外の前記運動連鎖の前記1つまたは複数の構成要素が、前記手術ツールの向き変更に応答してさらに生じる前記望ましくない向きの運動を経験しているまたは経験するであろうことを識別し、且つ、
前記手術ツールの向き変更に応答してさらに生じる前記望ましくない向きの運動を考慮するように前記送り速度を変更する
ようにさらに構成される、請求項1~7のいずれか1項に記載の手術システム。
【請求項9】
前記少なくとも1つのコントローラが、
前記運動連鎖の前記1つまたは複数の構成要素に対して1つまたは複数の仮想触覚物体を関連付け、
仮想境界を画定し、
前記1つまたは複数の仮想触覚物体と前記仮想境界との衝突を検出し、
前記衝突の検出に応答して、関連付けられた前記仮想触覚物体を有する前記運動連鎖の前記1つまたは複数の構成要素が前記仮想境界を超えることを抑制するように前記マニピュレータを制御し、
前記エネルギーアプリケータ以外の前記運動連鎖の前記1つまたは複数の構成要素が、前記衝突の前記検出に応答して、前記運動連鎖の前記1つまたは複数の構成要素を抑制することに応じてさらに生じる前記望ましくない向きの運動を経験しているまたは経験するであろうことを識別し、且つ、
前記衝突の前記検出に応答して、前記運動連鎖の前記1つまたは複数の構成要素を抑制することに応じてさらに生じる前記望ましくない向きの運動を考慮するように前記送り速度を変更する
ように構成される、請求項1~8のいずれか1項に記載の手術システム。
【請求項10】
前記手術ツールが、シャフトと、前記シャフトの遠位端にある前記エネルギーアプリケータとを含み、
前記少なくとも1つのコントローラが、
前記仮想触覚物体の前記1つまたは複数を、前記遠位端以外の前記シャフト上の位置で前記手術ツールの前記シャフトに対して関連付け、
前記手術ツールが相互作用する手術部位に対して前記仮想境界を関連付け、
前記シャフトの前記1つまたは複数の仮想触覚物体と前記手術部位の前記仮想境界との前記衝突の検出に応答して、前記シャフトが前記仮想境界を超えることを抑制するように前記マニピュレータを制御し、
前記シャフトが前記望ましくない向きの動きを経験しているまたは経験するであろうことを識別し、且つ
前記シャフトが経験するまたは経験するであろう前記望ましくない向きの運動を考慮するように前記送り速度を変更する
ように構成される、請求項9に記載の手術システム。
【請求項11】
前記少なくとも1つのコントローラが、
前記1つまたは複数の仮想触覚物体と前記手術部位の前記仮想境界との間で生じる侵入の値を評価し、且つ、
前記侵入の値の評価に応じて前記送り速度を変更する
ように構成される、請求項9又は10に記載の手術システム。
【請求項12】
前記望ましくない向きの運動を考慮するように前記送り速度の変更に応答して、前記少なくとも1つのコントローラが、
前記エネルギーアプリケータ以外の前記運動連鎖の前記1つまたは複数の構成要素が前記望ましくない向きの動きをもはや経験していないまたはもはや経験しないであろうことを識別し、それに応じて、前記送り速度の変更後に計画された前記送り速度を再開する
ように構成される、請求項1~11のいずれか1項に記載の手術システム。
【請求項13】
前記望ましくない向きの運動が、前記エネルギーアプリケータ以外の前記運動連鎖の任意の1つまたは複数の構成要素によって経験されるまたは経験されるであろう角速度、角加速度、または角躍度のうちの望ましくない1つまたは複数としてさらに定義される、請求項1~12のいずれか1項に記載の手術システム。
【請求項14】
エネルギーアプリケータを含む手術ツールと、ベースと複数のリンク及び関節とを含み、前記手術ツールを支持するマニピュレータであって、運動連鎖が、前記マニピュレータの前記ベースと複数のリンク及び関節を含む構成要素と、前記エネルギーアプリケータを含む前記手術ツールとによって規定される前記マニピュレータと、少なくとも1つのコントローラとを含む手術システムを操作する方法であって、
前記少なくとも1つのコントローラは、
前記エネルギーアプリケータがツールパスに沿って半自律モードで前進する速度として定義される送り速度を決定することと、
前記送り速度に従って前記ツールパスに沿って複数の指令位置に前記エネルギーアプリケータを前進させるように前記半自律モードで前記マニピュレータを制御することと、
前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が、前記送り速度に従った前記ツールパスに沿った前記エネルギーアプリケータの前進中に生じる望ましくない向きの運動を経験しているまたは経験するであろうことを識別することと、
前記望ましくない向きの運動を考慮するように前記送り速度を変更することと、
を行う、方法。
【請求項15】
前記望ましくない向きの運動を考慮するように前記送り速度を変更することが、
前記少なくとも1つのコントローラが、前記エネルギーアプリケータ以外の前記運動連鎖の前記1つまたは複数の構成要素によって経験されるまたは経験されるであろう前記望ましくない向きの運動の大きさに相関される因子によって前記送り速度を低減することを行うことを含み、
前記変更された送り速度は、前記送り速度の変更前の既存の前記送り速度の速度よりも小さい非ゼロ速度である、請求項14に記載の方法。
【請求項16】
前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が前記望ましくない向きの運動を経験しているまたは経験するであろうことを識別することは、前記少なくとも1つのコントローラが、
前記望ましくない向きの運動を閾値または範囲と比較することと、
前記望ましくない向きの運動が前記閾値または範囲を満たすことに応答して、前記望ましくない向きの運動を考慮するように前記送り速度を変更することと、
を行うことを含む、請求項14又は15に記載の方法。
【請求項17】
前記少なくとも1つのコントローラが、
前記送り速度に従った前記ツールパスに沿った前記複数の指令位置への前記エネルギーアプリケータの前進中に前記運動連鎖の順運動学測定値を取得することと、
前記順運動学測定値を評価して、前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が前記望ましくない向きの運動を経験しているまたは経験するであろうことを識別することと、
を行うことを含む、請求項14~16のいずれか1項に記載の方法。
【請求項18】
前記運動連鎖の前記1つまたは複数の構成要素の前記望ましくない向きの運動を示すシミュレーションデータを記憶した非一時的コンピュータ可読媒体を含み、
前記シミュレーションデータは、前記送り速度に従って前記ツールパスに沿った前記複数の指令位置に前記エネルギーアプリケータを前進させるように前記半自律モードで前記マニピュレータの制御をシミュレーションするための術前シミュレーションから取得され、
前記少なくとも1つのコントローラが、
前記シミュレーションデータを前記非一時的コンピュータ可読媒体から取得することと、
前記シミュレーションデータに基づいて、前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が前記望ましくない向きの運動を経験しているまたは経験するであろうことを識別することと、
を行うことを含む、請求項14~17のいずれか1項に記載の方法。
【請求項19】
1つまたは複数のセンサが前記運動連鎖の任意の1つまたは複数の構成要素に関連する測定値を生成することをさらに含み、
前記少なくとも1つのコントローラが、前記測定値を分析して、前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が前記望ましくない向きの運動を経験しているまたは経験するであろうことを識別すること
を行うことを含む、請求項14~18のいずれか1項に記載の方法。
【請求項20】
前記少なくとも1つのコントローラが、
非一時的コンピュータ可読媒体に前記運動連鎖の任意の1つまたは複数の構成要素の慣性値を記憶することと、
前記記憶された慣性値を利用して、前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が前記望ましくない向きの運動を経験しているまたは経験するであろうことを識別することと
を行うことを含む、請求項14~19のいずれか1項に記載の方法。
【請求項21】
前記半自律モードでの前記ツールパスに沿った前記エネルギーアプリケータの前進中に、前記少なくとも1つのコントローラが、
前記手術ツールの向き変更を有効にすることと、
前記エネルギーアプリケータ以外の前記運動連鎖の前記1つまたは複数の構成要素が、前記手術ツールの向き変更に応答してさらに生じる前記望ましくない向きの運動を経験しているまたは経験するであろうことを識別することと、
前記手術ツールの向き変更に応答してさらに生じる前記望ましくない向きの運動を考慮するように前記送り速度を変更することと、
を行うことを含む、請求項14~20のいずれか1項に記載の方法。
【請求項22】
前記少なくとも1つのコントローラが、
前記運動連鎖の前記1つまたは複数の構成要素に対して1つまたは複数の仮想触覚物体を関連付けることと、
仮想境界を画定することと、
前記1つまたは複数の仮想触覚物体と前記仮想境界との衝突を検出することと、
前記衝突を検出することに応答して、前記仮想触覚物体が関連付けられた前記運動連鎖の前記1つまたは複数の構成要素が前記仮想境界を超えることを抑制するように前記マニピュレータを制御することと、
前記エネルギーアプリケータ以外の前記運動連鎖の前記1つまたは複数の構成要素が、前記衝突を前記検出することに応答して、前記マニピュレータが前記運動連鎖の前記1つまたは複数の構成要素を抑制することに応じてさらに生じる前記望ましくない向きの運動を経験しているまたは経験するであろうことを識別することと、
前記衝突を前記検出することに応答して、前記マニピュレータが前記運動連鎖の前記1つまたは複数の構成要素を抑制することに応じてさらに生じる前記望ましくない向きの運動を考慮するように前記送り速度を変更することと、
を行うことを含む、請求項14~21のいずれか1項に記載の方法。
【請求項23】
前記手術ツールが、シャフトと、前記シャフトの遠位端にある前記エネルギーアプリケータとを含み、
前記少なくとも1つのコントローラが、
前記仮想触覚物体の前記1つまたは複数を、前記遠位端以外の前記シャフト上の位置で前記手術ツールの前記シャフトに対して関連付けることと、
前記手術ツールが相互作用する手術部位に対して前記仮想境界を関連付けることと、
前記シャフトの前記1つまたは複数の仮想触覚物体と前記手術部位の前記仮想境界との前記衝突を検出することに応答して、前記シャフトが前記仮想境界を超えることを抑制するように前記マニピュレータを制御することと、
前記シャフトが前記望ましくない向きの運動を経験しているまたは経験するであろうことを識別することと、
前記シャフトによって経験されるまたは経験されるであろう前記望ましくない向きの運動を考慮するように前記送り速度を変更することと、
を行うことを含む、請求項22に記載の方法。
【請求項24】
前記少なくとも1つのコントローラが、
前記1つまたは複数の仮想触覚物体と前記手術部位の前記仮想境界との間に生じる侵入の値を評価することと、
前記侵入の値を評価することに応じて前記送り速度を変更することと、
を行うことを含む、請求項22~23のいずれか1項に記載の方法。
【請求項25】
前記望ましくない向きの運動を考慮するように前記送り速度を変更した後、前記少なくとも1つのコントローラが、
前記エネルギーアプリケータ以外の前記運動連鎖の前記1つまたは複数の構成要素が前記望ましくない向きの動きをもはや経験していないまたはもはや経験しないであろうことを識別することと、それに応じて、前記送り速度を変更した後に計画された前記送り速度を再開することと、
を行うことを含む、請求項14~24のいずれか1項に記載の方法。
【請求項26】
エネルギーアプリケータを含む手術ツールと、
ベースと複数のリンク及び関節とを含み、前記手術ツールを支持するように構成されているマニピュレータであって、運動連鎖が、前記マニピュレータの構成要素と前記エネルギーアプリケータを含む前記手術ツールとによって規定される、前記マニピュレータと、
少なくとも1つのコントローラと
を含む手術システムであって、
前記少なくとも1つのコントローラは、
前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が望ましくない向きの運動を経験しているまたは経験するであろうことを識別し、且つ、
前記望ましくない向きの運動を考慮するように前記エネルギーアプリケータの送り速度を変更する、
ように構成される、手術システム。
【請求項27】
前記少なくとも1つのコントローラが、
前記エネルギーアプリケータが前進する速度として定義される送り速度を決定し、
前記送り速度に従って1つまたは複数の指令位置に前記エネルギーアプリケータを前進させるように前記マニピュレータを制御し、且つ、
前記送り速度に従った前記エネルギーアプリケータの前進中に生じる望ましくない向きの運動を前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が経験しているまたは経験するであろうことを識別する、
ように構成される、請求項26に記載の手術システム。
【請求項28】
エネルギーアプリケータを含む手術ツールと、ベースと複数のリンク及び関節とを含み、前記手術ツールを支持する前記マニピュレータと、少なくとも1つのコントローラとを含む手術システムを操作する方法であって、運動連鎖が、前記マニピュレータの前記ベースと複数のリンク及び関節を含む構成要素と前記エネルギーアプリケータを含む前記手術ツールとによって規定され、
前記方法は、前記少なくとも1つのコントローラが、
前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が望ましくない向きの運動を経験しているまたは経験するであろうことを識別することと、
前記望ましくない向きの運動を考慮するように前記エネルギーアプリケータの送り速度を変更することと
を行うことを含む、方法。
【請求項29】
前記少なくとも1つのコントローラが、
前記エネルギーアプリケータが前進する速度として定義される送り速度を決定することと、
前記送り速度に従って1つまたは複数の指令位置に前記エネルギーアプリケータを前進させるように前記マニピュレータを制御することと、
前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が、前記送り速度に従った前記エネルギーアプリケータの前進中に生じる望ましくない向きの運動を経験しているまたは経験するであろうことを識別することと、
を行うことを含む、請求項28に記載の方法。
【請求項30】
エネルギーアプリケータを含む手術ツールと、
ベースと複数のリンク及び関節とを含み、前記手術ツールを支持するように構成されているマニピュレータであって、運動連鎖が、前記マニピュレータの構成要素と前記エネルギーアプリケータを含む前記手術ツールとによって規定される、前記マニピュレータと、
少なくとも1つのコントローラと
を含む手術システムであって、
前記少なくとも1つのコントローラは、
前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が望ましくない向きの運動を経験しているまたは経験するであろうことを識別し、且つ、
前記望ましくない向きの運動を考慮するように前記マニピュレータの動作を修正する、
ように構成される、手術システム。
【請求項31】
前記少なくとも1つのコントローラが、前記望ましくない向きの運動を考慮するように前記運動連鎖の任意の1つまたは複数の構成要素の挙動を変更するように構成されることによって、前記マニピュレータの動作を修正する、請求項30に記載の手術システム。
【請求項32】
前記少なくとも1つのコントローラが、関節運動の操作、関節制限の操作、関節姿勢の操作、ゼロ空間内での関節の動きの操作、前記手術ツールの軌道の変更、前記手術ツールが前進するツールパスの修正、仮想境界または他の制約の調整、前記運動連鎖の任意の1つまたは複数の構成要素の挙動の禁止、前記マニピュレータもしくは手術ツールの向き変更の制限、前記マニピュレータのバックドライブの制限、ユーザによる送り速度調節の制限、及び前記マニピュレータの停止のうちの任意の1つまたは複数を予測的にまたは動的に行うようにさらに構成されることによって、前記望ましくない向きの運動を考慮するように前記マニピュレータの動作を修正する、請求項30に記載の手術システム。
【請求項33】
エネルギーアプリケータを含む手術ツールと、ベースと複数のリンク及び関節とを含み、前記手術ツールを支持するマニピュレータと、少なくとも1つのコントローラとを含む手術システムを操作する方法であって、運動連鎖が、前記マニピュレータの前記ベースと複数のリンク及び関節とを含む構成要素と、前記エネルギーアプリケータを含む前記手術ツールとによって規定され、
前記方法は、前記少なくとも1つのコントローラが、
前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が、望ましくない向きの運動を経験しているまたは経験するであろうことを識別することと、
前記望ましくない向きの運動を考慮するように前記マニピュレータの動作を修正することと、
を行うことを含む、方法。
【請求項34】
前記少なくとも1つのコントローラが、前記望ましくない向きの運動を考慮するように前記運動連鎖の任意の1つまたは複数の構成要素の挙動を変更することによって、前記マニピュレータの動作を修正することを行うことを含む、請求項33に記載の方法。
【請求項35】
前記少なくとも1つのコントローラが、関節運動を操作すること、関節制限を操作すること、関節姿勢を操作すること、ゼロ空間内での関節の動きを操作すること、前記手術ツールの軌道を変更すること、前記手術ツールが前進するツールパスを修正すること、仮想境界もしくは他の制約を調整すること、前記運動連鎖の任意の1つまたは複数の構成要素の挙動を制限すること、前記マニピュレータもしくは前記手術ツールの向き変更を制限すること、前記マニピュレータのバックドライブを制限すること、ユーザによる送り速度調整を制限すること、及び前記マニピュレータの動作を停止することのうちの任意の1つまたは複数を予測的または動的にさらに行うことによって、前記マニピュレータの動作を修正することを行うことを含む、請求項33に記載の方法。
【請求項36】
エネルギーアプリケータを含む手術ツールと、
ベースと複数のリンク及び関節とを含み、前記手術ツールを支持するように構成されているマニピュレータであって、運動連鎖が、前記マニピュレータの構成要素と、前記エネルギーアプリケータを含む前記手術ツールとによって規定される、前記マニピュレータと、
前記運動連鎖の1つまたは複数の構成要素の望ましくない向きの運動を示すシミュレーションデータを記憶した非一時的コンピュータ可読媒体を含む少なくとも1つのコントローラと
を含む手術システムであって、
前記シミュレーションデータは、前記複数の指令位置に前記エネルギーアプリケータを前進させるように前記マニピュレータの制御をシミュレートするように構成されたシミュレーションから取得され、
前記少なくとも1つのコントローラは、
前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が、前記望ましくない向きの運動を経験しているまたは経験するであろうことを、前記シミュレーションデータに基づいて識別し、且つ、
前記望ましくない向きの運動を考慮するように前記マニピュレータの動作を修正する、
ように構成される、手術システム。
【請求項37】
エネルギーアプリケータを含む手術ツールと、ベースと複数のリンク及び関節とを含み、前記手術ツールを支持するように構成されているマニピュレータであって、運動連鎖が、前記マニピュレータの構成要素と前記エネルギーアプリケータを含む前記手術ツールとによって規定される、前記マニピュレータと、前記運動連鎖の1つまたは複数の構成要素の望ましくない向きの運動を示すシミュレーションデータを記憶した非一時的コンピュータ可読媒体を含む少なくとも1つのコントローラとを含む手術システムを操作する方法であって、
前記シミュレーションデータは、前記複数の指令位置に前記エネルギーアプリケータを前進させる前記マニピュレータの制御をシミュレートするように構成されたシミュレーションから取得され、
前記方法は、前記少なくとも1つのコントローラが、
前記エネルギーアプリケータ以外の前記運動連鎖の1つまたは複数の構成要素が、前記望ましくない向きの運動を経験しているまたは経験するであろうことを、前記シミュレーションデータに基づいて識別することと、
前記望ましくない向きの運動を考慮するように前記マニピュレータの動作を修正することと、
を行うことを含む、方法。
【請求項38】
シャフトと、前記シャフトの遠位端にあるエネルギーアプリケータとを含む手術ツールと、
ベースと複数のリンク及び関節とを含むマニピュレータであって、前記手術ツールを支持するように構成されている、前記マニピュレータと、
少なくとも1つのコントローラと、
を含む手術システムであって、
前記少なくとも1つのコントローラは、
1つまたは複数の仮想触覚物体を前記シャフト上の位置で、前記手術ツールの前記シャフトに対して関連付け、
前記手術ツールが相互作用する手術部位に対して仮想境界を関連付け、
前記シャフトに関連付けられた前記1つまたは複数の仮想触覚物体と前記手術部位に関連付けられた前記仮想境界との衝突を検出し、且つ、
前記衝突の検出に応答して、前記シャフトが前記仮想境界を超えることを抑制するように前記マニピュレータを制御する、
ように構成される、手術システム。
【請求項39】
シャフトと、前記シャフトの遠位端にあるエネルギーアプリケータとを含む手術ツールと、ベースと複数のリンク及び関節とを含むマニピュレータであって、前記手術ツールを支持するように構成されている前記マニピュレータと、少なくとも1つのコントローラと、
を含む手術システムを操作する方法であって、
前記方法は、前記少なくとも1つのコントローラが、
1つまたは複数の仮想触覚物体を前記シャフト上の位置で、前記手術ツールの前記シャフトに対して関連付けることと、
前記手術ツールが相互作用する手術部位に対して仮想境界を関連付けることと、
前記シャフトに関連付けられた前記1つまたは複数の仮想触覚物体と前記手術部位に関連付けられた前記仮想境界との衝突を検出することと、
前記衝突の検出に応答して、前記シャフトが前記仮想境界を超えることを抑制するように前記マニピュレータを制御することと、
を行うことを含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
主題の国際特許出願は、2020年12月31日出願の米国仮特許出願第63/132,821号の優先権及びすべての利益を主張し、その内容全体は、参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、ロボットの運動連鎖内の構成要素の望ましくない向きの動きの原因を制御するためのロボットシステム及び方法に関する。
【背景技術】
【0003】
手術部位で外科的処置を行うロボットシステムは、ベースと複数のリンク及び関節を有するマニピュレータと、マニピュレータに結合されたエンドエフェクタとを含むことが多い。多くの場合、エンドエフェクタは、手術部位で組織を除去するように設計されたエネルギーアプリケータを備えた手術ツールを含む、または支持する。運動連鎖は、ベース、リンク及び関節、ならびにエネルギーアプリケータを含む手術ツールによって規定される。
【0004】
アドミタンス制御のロボットシステムでは、力が入力として受信され、エネルギーアプリケータの指令位置が出力される。アドミタンス制御の逆運動学的性質により、エネルギーアプリケータの指令位置はタスク空間(x、y、z)座標として出力され、運動連鎖構成要素の各姿勢(位置と向き)が、複雑な連立方程式によって定義された制約を満たす解に従って出力される。
【0005】
エネルギーアプリケータは通常、指令位置に従ってツールパスに沿って移動する。エネルギーアプリケータがツールパスに沿って移動する速度は、エネルギーアプリケータの「送り速度」として一般に知られている。従来のシステムは、送り速度の手動ユーザ選択、組織の特性、エネルギーアプリケータに加えられる力の検知、パスの曲率などの条件または入力を考慮して、送り速度を調整することを企図してきた。従来のアドミタンス制御ロボットシステムにおける送り速度の調整は、ツールパスに沿ったエネルギーアプリケータの動きに直接影響する所望の(または意図した)入力または条件にのみ応答する。しかしながら、送り速度を調整するための従来の技術は、マニピュレータのツールシャフト、関節、またはリンクなど、エネルギーアプリケータ以外の運動連鎖の構成要素(すなわち、非ツールパス構成要素)に発生する望ましくない向きの運動の可能性を考慮していない。このような非ツールパス構成要素は、複雑な逆運動学解に従って運動学的に操作されるときに、急激な角速度、角加速度、または角躍度を経験する場合がある。非ツールパス構成要素のこのような望ましくない向きの運動は、指令位置の不正確さの原因となり得る。例えば、非ツールパス構成要素の慣性によって、運動や方向が想定外に変化し、指令位置からずれる場合がある。さらに、そのような望ましくない向きの運動によって、手術者がそのような運動を警戒し、手術を手動で減速または停止したくなる可能性があるので、手術ワークフローまたはユーザ体験を混乱させ得る。少なくとも前述の欠点に対処する必要性が残っている。
【発明の概要】
【0006】
第1の態様によれば、エネルギーアプリケータを含む手術ツールと、ベースと複数のリンク及び関節とを含み、手術ツールを支持するように構成されているマニピュレータであって、運動連鎖がマニピュレータの構成要素と、エネルギーアプリケータを含む手術ツールとによって規定されるマニピュレータと、少なくとも1つのコントローラとを含む手術システムであって、少なくとも1つのコントローラは、エネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素が望ましくない向きの運動を経験しているまたは経験するであろうことを識別し、且つ望ましくない向きの運動を考慮するようにエネルギーアプリケータの送り速度を変更するように構成される、手術システムが提供される。
【0007】
第2の態様によれば、第1の態様による手術システムを操作する方法が提供される。
【0008】
第3の態様によれば、エネルギーアプリケータを含む手術ツールと、ベースと複数のリンク及び関節とを含み、手術ツールを支持するように構成されているマニピュレータであって、運動連鎖がマニピュレータの構成要素とエネルギーアプリケータを含む手術ツールとによって規定されるマニピュレータと、少なくとも1つのコントローラとを含む手術システムであって、少なくとも1つのコントローラは、エネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素が望ましくない向きの運動を経験しているまたは経験するであろうことを識別し、且つ望ましくない向きの運動を考慮するようにマニピュレータの動作を修正するように構成される、手術システムが提供される。
【0009】
第4の態様によれば、第3の態様による手術システムを操作する方法が提供される。
【0010】
第5の態様によれば、エネルギーアプリケータを含む手術ツールと、ベースと複数のリンク及び関節とを含み、手術ツールを支持するように構成されているマニピュレータであって、運動連鎖がマニピュレータの構成要素とエネルギーアプリケータを含む手術ツールとによって規定されるマニピュレータと、少なくとも1つのコントローラとを含む手術システムであって、少なくとも1つのコントローラは、エネルギーアプリケータが前進する速度として定義される送り速度を決定し、送り速度に従ってエネルギーアプリケータを複数の指令位置に前進させるようにマニピュレータを制御し、エネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素が送り速度に従ってエネルギーアプリケータの前進中に生じる望ましくない向きの運動を経験しているまたは経験するであろうことを識別し、且つ望ましくない向きの運動を考慮するように送り速度を変更するように構成される、手術システムが提供される。
【0011】
第6の態様によれば、第4の態様による手術システムを操作する方法が提供される。
【0012】
第7の態様によれば、エネルギーアプリケータを含む手術ツールと、ベースと複数のリンク及び関節とを含み、手術ツールを支持するように構成されているマニピュレータであって、運動連鎖がマニピュレータのベースと複数のリンク及び関節とを含む構成要素と、エネルギーアプリケータを含む手術ツールとによって規定される、マニピュレータと、少なくとも1つのコントローラとを含む手術システムであって、少なくとも1つのコントローラは、エネルギーアプリケータがツールパスに沿って半自律モードで前進する速度として定義される送り速度を決定し、送り速度に従ってツールパスに沿って複数の指令位置にエネルギーアプリケータを前進させるように半自律モードでマニピュレータを制御し、エネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素が、送り速度に従ったツールパスに沿ったエネルギーアプリケータの前進中に生じる望ましくない向きの運動を経験しているまたは経験するであろうことを識別し、且つ望ましくない向きの運動を考慮するように送り速度を変更するように構成される、手術システムが提供される。
【0013】
第8の態様によれば、第7の態様による手術システムを操作する方法が提供される。
【0014】
第9の態様によれば、少なくとも1つのコントローラを備えた手術システムは、運動連鎖の1つまたは複数の構成要素の望ましくない向きの運動を示すシミュレーションデータを記憶した非一時的コンピュータ可読媒体を備え、シミュレーションデータは、複数の指令位置にエネルギーアプリケータを前進させるようにマニピュレータの制御をシミュレートするように構成されたシミュレーションから取得され、少なくとも1つのコントローラは、非一時的コンピュータ可読媒体からシミュレーションデータを取得し、エネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素が望ましくない向きの運動を経験しているまたは経験するであろうことをシミュレーションデータに基づいて識別し、且つ望ましくない向きの運動を考慮するようにマニピュレータの動作を修正するように構成される。
【0015】
第10の態様によれば、第9の態様による手術システムを操作する方法が提供される。
【0016】
第11の態様によれば、シャフトとシャフトの遠位端にエネルギーアプリケータとを含む手術ツールと、ベースと複数のリンク及び関節とを含むマニピュレータであって、手術ツールを支持するように構成されているマニピュレータと、少なくとも1つのコントローラとを含む手術システムであって、少なくとも1つのコントローラは、シャフト上の位置で手術ツールのシャフトに対して1つまたは複数の仮想触覚物体を関連付け、手術ツールが相互作用する手術部位に対して仮想境界を関連付け、シャフトに関連付けられた1つまたは複数の仮想触覚物体と手術部位に関連付けられた仮想境界との衝突を検出し、衝突の検出に応答して、シャフトが仮想境界を超えることを抑制するようにマニピュレータを制御するように構成される手術システムが提供される。
【0017】
第12の態様によれば、第11の態様による手術システムを操作する方法が提供される。
【0018】
上記の態様のうちのいずれも、部分的または全体的に組み合わせることができる。
【0019】
上記態様のいずれかに関して、以下の実施態様の任意の1つまたは複数が、個別にまたは組み合わせて企図されている。
【0020】
一部の実施態様では、少なくとも1つのコントローラは、エネルギーアプリケータが前進する速度として定義される送り速度を決定するように構成される。
【0021】
一部の実施態様では、少なくとも1つのコントローラは、送り速度に従って複数の指令位置にエネルギーアプリケータを前進させるようにマニピュレータを制御するように構成される。
【0022】
一部の実施態様では、送り速度に従ったエネルギーアプリケータの前進中、望ましくない向きの運動が生じる。
【0023】
一部の実施態様では、マニピュレータは、運動連鎖の一部である複数のリンク及び関節を含む。
【0024】
一部の実施態様では、送り速度は、具体的にはツールパスに沿った指令位置に従ってエネルギーアプリケータを前進させる速度である。
【0025】
一部の実施態様では、送り速度は、具体的には半自律的な動作モードでエネルギーアプリケータを前進させる速度である。
【0026】
一部の実施態様では、少なくとも1つのコントローラは、エネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素が経験しているまたは経験するであろう望ましくない向きの運動の大きさに相関された因子によって送り速度を低減するようにさらに構成されることによって、望ましくない向きの運動を考慮するように送り速度を変更する。一部の実施態様では、変更された送り速度は、送り速度の変更前に存在していた送り速度の速度よりも小さい非ゼロ速度である。
【0027】
一部の実施態様では、少なくとも1つのコントローラは、望ましくない向きの運動を閾値または範囲と比較し、望ましくない向きの運動が閾値または範囲を満たすことに応答して、望ましくない向きの運動を考慮するように送り速度を変更するようにさらに構成されることによって、エネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素が望ましくない向きの運動を経験しているまたは経験するであろうことを識別する。
【0028】
一部の実施態様において、少なくとも1つのコントローラは、送り速度に従ったツールパスに沿った複数の指令位置へのエネルギーアプリケータの前進中、運動連鎖の順運動学測定値を取得し、エネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素が望ましくない向きの運動を経験しているまたは経験するであろうことを識別するために順運動学測定値を評価するように構成される。
【0029】
一部の実施態様では、非一時的コンピュータ可読媒体は、運動連鎖の1つまたは複数の構成要素の望ましくない向きの運動を示すシミュレーションデータを記憶しており、シミュレーションデータは、送り速度に従ってツールパスに沿って複数の指令位置にエネルギーアプリケータを前進させるように半自律モードでマニピュレータの制御をシミュレートするように構成された術前シミュレーションから取得される。一部の実施態様では、少なくとも1つのコントローラは、非一時的コンピュータ可読媒体からシミュレーションデータを取得し、シミュレーションデータに基づいて、エネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素が望ましくない向きの運動を経験しているまたは経験するであろうことを識別するように構成される。
【0030】
一部の実施態様では、1つまたは複数のセンサが、運動連鎖の任意の1つまたは複数の構成要素に関連する測定値を生成するように構成される。一部の実施態様では、1つまたは複数のセンサは、関節の任意の1つまたは複数に結合され、関節位置、関節速度、及び関節加速度の任意の1つまたは複数を検知するように構成されているセンサ、関節の任意の1つまたは複数のアクチュエータによって引き出された電流を検知するように構成された電流センサ、運動連鎖の任意の1つまたは複数の構成要素に結合されたトラッカの状態を検出するように構成されたナビゲーションシステム、ならびに運動連鎖の任意の1つまたは複数の構成要素の運動を検出するように構成された視覚システムのうちの任意の1つまたは複数を含む。一部の実施態様では、少なくとも1つのコントローラは、測定値を分析して、エネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素が望ましくない向きの運動を経験しているまたは経験するであろうことを識別するように構成される。
【0031】
一部の実施態様では、少なくとも1つのコントローラは、運動連鎖の任意の1つまたは複数の構成要素の慣性値を非一時的コンピュータ可読媒体に記憶するように構成され、且つ、一部の実施態様では、記憶した慣性値を利用して、エネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素が望ましくない向きの運動を経験しているまたは経験するであろうことを識別するように構成される。一実装態様では、慣性値は回転慣性値である。一実施態様では、慣性値は並進慣性値または線形慣性値である。
【0032】
一部の実施態様では、半自律モードでツールパスに沿ってエネルギーアプリケータを前進させる間、少なくとも1つのコントローラは、手術ツールの向きの変更を有効にし、エネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素が手術ツールの向き変更に応じてさらに生じる望ましくない向きの運動を経験しているまたは経験するであろうことを識別し、手術ツールの向き変更に応じてさらに生じる望ましくない向きの運動を考慮するように送り速度を変更するようにさらに構成される。一部の実施態様では、向き変更はユーザによって開始される。他の実施態様では、向き変更はシステムによって自動化される。
【0033】
一部の実施態様では、少なくとも1つのコントローラは、運動連鎖の1つまたは複数の構成要素に対して1つまたは複数の仮想触覚物体を関連付け、仮想境界を画定し、1つまたは複数の仮想触覚物体と仮想境界との衝突を検出し、衝突の検出に応答して、仮想触覚物体が関連付けられた運動連鎖の1つまたは複数の構成要素が仮想境界を超えることを抑制するようにマニピュレータを制御し、衝突の検出に応答して運動連鎖の1つまたは複数の構成要素を抑制することに応じてさらに生じる望ましくない向きの運動をエネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素が経験しているまたは経験するであろうことを識別し、且つ衝突の検出に応答して運動連鎖の1つまたは複数の構成要素を抑制することに応じてさらに生じる望ましくない向きの運動を考慮するように送り速度を変更するように構成される。
【0034】
一部の実施態様では、手術ツールは、シャフトと、シャフトの遠位端にエネルギーアプリケータとを含み、少なくとも1つのコントローラは、遠位端以外のシャフト上の位置で仮想触覚物体の1つまたは複数を手術ツールのシャフトに関連付け、手術ツールが相互作用する手術部位に対して仮想境界を関連付け、シャフトの1つまたは複数の仮想触覚物体と手術部位の仮想境界との衝突の検出に応答して、シャフトが仮想境界を超えることを抑制するようにマニピュレータを制御し、シャフトが望ましくない向きの運動を経験しているまたは経験するであろうことを識別し、且つシャフトが経験または経験するであろう望ましくない向きの運動を考慮するように送り速度を変更するように構成される。
【0035】
一部の実施態様では、少なくとも1つのコントローラは、シャフトの1つまたは複数の仮想触覚物体と手術部位の仮想境界との間で生じる侵入を評価するようにさらに構成されることによって、シャフトが望ましくない向きの運動を経験しているまたは経験するであろうことを識別するように構成される。一部の実施態様では、1つまたは複数の仮想触覚物体と仮想境界との間で生じる侵入の値/大きさを評価することができ、この評価に応じて送り速度を調整することができる。
【0036】
一部の実施態様では、望ましくない向きの運動を考慮するための送り速度の変更に応答して、少なくとも1つのコントローラは、エネルギーアプリケータ以外の運動連鎖の1つまたは複数の構成要素がもはや望ましくない向きの運動を経験していないまたはもはや経験しないであろうことを識別し、それに応じて、送り速度の変更前に存在したまたは変更後に計画された送り速度を回復または再開するように構成される。
【0037】
一部の実施態様では、望ましくない向きの運動は、エネルギーアプリケータ以外の運動連鎖の任意の1つまたは複数の構成要素によって経験されるまたは経験されるであろう角速度、角加速度、または角躍度のうちの望ましくない1つまたは複数としてさらに定義される。
【0038】
一部の実施態様では、手術機器は、シャフトと、シャフトの遠位端にあるエネルギーアプリケータとを含み、エネルギーアプリケータは、切断バーとしてさらに規定される。
【0039】
一部の実施態様では、少なくとも1つのコントローラは、手術機器及びエネルギーアプリケータを仮想剛体としてモデル化し、仮想剛体に加えられる仮想力に基づいて、望ましくない向きの運動を考慮するように機器の送り速度を変更するように構成される。
【0040】
一部の実施態様では、少なくとも1つのコントローラは、複数の変数に基づいて送り速度を計算するように構成され、変数は、エネルギーアプリケータが適用される空間の形、エネルギーアプリケータの種類、患者の健康状態、エネルギーアプリケータが適用される組織の性質、及びツールパスのパスセグメントの形状のうちの1つまたは複数を含む。
【0041】
一部の実施態様では、望ましくない向きの運動を考慮して送り速度を変更することに加えて、少なくとも1つのコントローラは、機器の送り速度のユーザ調整、エネルギーアプリケータがさらされる力及びトルク、ツールパスのパスセグメントの曲率、機器の出力、組織温度、及び患者もしくは解剖学的構造のトラッカの動きもしくはそれらに加えられる外力のうちの任意の1つまたは複数に基づいて、決定された機器の送り速度を調整するようにさらに構成される。
【0042】
一部の実施態様では、送り速度の変更中、エネルギーアプリケータは、湾曲していない線形のツールパスのセグメントに沿って前進している。
【0043】
一部の実施態様では、1つまたは複数のコントローラは、送り速度FRの変更に加えて、またはそれに代わる方法でマニピュレータの挙動を変更することによって、望ましくない向きの運動を軽減する。一部の実施態様では、1つまたは複数のコントローラは、例えば、ゼロ空間内で関節運動、関節制限、もしくは関節姿勢を操作、ツールの軌道を変更、ツールパスを修正、仮想境界もしくは他の制約を調整、ユーザによる、向き変更、バックドライブ、もしくは送り速度の調整などのロボット機能の禁止などを予測的または動的に行うことができる。
【0044】
上記の実施態様のいずれかを個別に、または上記態様のいずれかのうちの任意の部分と組み合わせて利用することができる。
【0045】
添付の図面と関連して考えながら以下の詳細な説明を参照することによって、本開示の利点がより良く理解されると、本開示の利点を容易に認識されよう。
【図面の簡単な説明】
【0046】
【
図1】ロボット手術システムの一実施態様の斜視図である。
【
図2】ロボット手術システムのマニピュレータの一実施態様のレイアウトであり、それぞれのリンク、関節、及びエンドエフェクタ、ならびにそれに結合されたツールを示している。
【
図3】ツール及びそのエネルギーアプリケータを含むマニピュレータの構成要素によって形成される運動連鎖の一実施態様の模式図である。
【
図4】一実施態様による、ロボット手術システムを制御するための構成要素及びコントローラを含む制御システムのブロック図である。
【
図5】一実施多様による、ロボット手術システムによって利用されるソフトウェアプログラムの機能ブロック図である。
【
図6】一実施態様による、ソフトウェアプログラムの境界ジェネレータの出力例を示す。
【
図7】一実施態様による、ソフトウェアプログラムのパスジェネレータの出力例を示す。
【
図8】パスジェネレータがエネルギーアプリケータの送り速度を決定するために利用できる変数入力のブロック図である。
【
図9】指令位置の間のツールパスのパスセグメントに沿って前進しているエネルギーアプリケータの一例を示し、エネルギーアプリケータの送り速度はパスセグメントに対して規定される。
【
図10】例えば、定義された送り速度に従ったエネルギーアプリケータの前進に基づいて生じる望ましくない向きの運動を経験している運動連鎖の特定の非ツールパス構成要素の例を模式的に示す。
【
図11】一実施態様による、エネルギーアプリケータが次の指令位置に到達する前に、特定の非ツールパス構成要素の望ましくない向きの運動を軽減するための
図10のエネルギーアプリケータの送り速度の低減を模式的に示す。
【
図12】例えば、定義された送り速度によるエネルギーアプリケータの前進に基づいて生じる、望ましくない向きの運動を経験している運動連鎖の特定の非ツールパス構成要素の別の例を模式的に示す。
【
図13】一実施態様による、エネルギーアプリケータが次の指令位置に到達した後の特定の非ツールパス構成要素の望ましくない向きの運動を軽減するための
図12のエネルギーアプリケータの送り速度の低減を模式的に示す。
【
図14】運動連鎖の非ツールパス構成要素の望ましくない向きの運動の存在または予想される存在に影響を与える因子のブロック図である。
【
図15】仮想触覚物体と仮想境界との衝突に応答して反力が生成される、シャフトに関連付けられた仮想触覚物体を含むツールのシャフトの例を模式的に示す。
【
図16】一実施態様による、境界との衝突による反力に応じた
図15のシャフトが経験する望ましくない向きの運動と、望ましくない向きの運動を軽減するための送り速度の低減を模式的に示す。
【
図17】エネルギーアプリケータが送り速度に従ってツールパスに沿って前進するときのマニピュレータの向き変更の例を模式的に示す。
【
図18】一実施態様による、向き変更に応じて
図17の運動連鎖の特定の非ツールパス構成要素が経験する望ましくない向きの運動と、望ましくない向きの運動を軽減するための送り速度の低減を模式的に示す。
【
図19】現在のまたは予想される望ましくない向きの運動を考慮するようにエネルギーアプリケータの送り速度を変更するためにロボット手術システムによって利用されるアルゴリズムの一実施形態を示すフローチャートである。
【発明を実施するための形態】
【0047】
I.システム概要
【0048】
図1を参照すると、手術システム10が示されている。システム10は、骨または軟組織の治療など、患者12の手術部位または解剖学的体積(A)を治療するのに有用である。
図1では、患者12は外科的処置を受けている。
図1の解剖学的構造は、患者12の大腿骨F及び脛骨Tを含む。外科的処置は、組織の除去または他の治療形態を含み得る。治療は、組織の切断、凝固、損傷、他のin-situでの組織治療などを含み得る。一部の例では、外科的処置は、部分的または完全な膝関節または股関節置換手術、肩関節置換手術、脊椎手術、または足首手術を含む。一部の例では、システム10は、単顆膝関節インプラント、二顆膝関節インプラント、多顆膝関節インプラント、もしくは全膝関節インプラントを含む、股関節インプラント及び膝関節インプラントなどの外科的インプラントにより置き換えられる物質を切除するように設計される。これらの種類のインプラントのうちの一部は、「Prosthetic Implant and Method of Implantation」と題する米国特許出願公開第2012/0330429号に示され、その開示は参照により本明細書に組み込まれる。本明細書に開示されるシステム10及び技術は、外科的または非外科的である他の処置を実行するために使用されてもよく、あるいはロボットシステムを利用する産業用途または他の用途で使用されてもよい。
【0049】
図1~3に示すように、システム10はマニピュレータ14を含む。(
図1に示すように)マニピュレータカート17は、マニピュレータ14がマニピュレータカート17に固定されるようにマニピュレータ14を支持し得る。マニピュレータ14は、ベース16と、複数のリンク18a~18nとを有する。一例では、隣接するリンク18の対が関節Jの1つによって接続されている。リンク18は集合的にマニピュレータ14の1つまたは複数のアーム23を形成する。マニピュレータ14は、直列アーム構成(
図1~3に示される)、並列アーム構成、または任意の他の適切なマニピュレータ構成を有し得る。他の例では、複数のマニピュレータ14が、複数のアーム構成で利用されてよい。一例によれば、マニピュレータ14は、マニピュレータ14に関して少なくとも6自由度(DOF)を実施する6つの関節J1~J6を有する。マニピュレータ14は、任意の数の自由度を有してよく、任意の適切な数の関節Jを有してよく、冗長関節を有してよい。
【0050】
各関節Jには、隣接するリンク18間に配置された関節モータ27などのアクチュエータが存在し得る(
図2参照)。関節モータ27は、リンク18を回転させるように構成される。このように、リンク18の位置は関節モータ27によって設定される。各関節モータ27は、マニピュレータ14の内部の構造フレームに取り付けられてよい。一例では、関節モータ27は、永久磁石ブラシレスモータなどのサーボモータである。関節モータ27は、同期モータ、ブラシ型DCモータ、ステッピングモータ、誘導モータなどの他の構成を有してもよい。
【0051】
関節モータ27は、以下、関節角度と呼ぶ複数の角度位置のうちの1つに配置される。関節角度は、隣接するリンク18間の関節Jの角度である。各関節Jは、関節トルクを受けるように構成されてよい。関節トルクは、関節Jの回転またはねじりの「力」であり、関節Jの枢着点からある長さにかかる力の関数である。トルクセンサは、関節Jの関節トルクを測定するために1つまたは複数の関節モータ27に接続されてよい。あるいは、関節モータ27に印加される電流を表す信号を使用して、関節トルクを測定してよい。
【0052】
1つまたは複数の関節モータ27は、位置センサまたはエンコーダ19を備え得る。簡単にするために、1つの関節エンコーダ19が
図1に示されているが、他の関節エンコーダ19も同様に示されてよい。あるいは、その関節モータ27によって駆動される1つまたは複数のリンク18は、位置センサまたはエンコーダ19を備えてよい。エンコーダ19は、各関節Jの関節角度を測定し得る。一部の実施形態では、関節モータ27に対して1つ、動かされるリンク18に対して1つの2つのエンコーダを使用して、例えば、関節角度と、コンプライアントな伝達による関節モータ27と関節の間の変位とを平均することによって、関節角度を決定することができる。マニピュレータ14は、関節エンコーダ19を必ずしも必要とせず、代わりにまたは追加で、1つまたは複数の関節Jまたは各関節Jの関節モータ27に存在するモータエンコーダを利用してよい。また、マニピュレータ14は、回転関節を必ずしも必要とせず、代わりにまたは追加で、1つまたは複数の直動関節を利用してよい。特定の関節Jは受動的に可動及びロック可能であってよく、他の関節Jは能動的に駆動されてよい。関節の種類の任意の適切な組み合わせが企図される。
【0053】
図1を参照すると、マニピュレータ14のベース16は通常、マニピュレータ14の一部であり、マニピュレータ14または一般的にシステム10の他の構成要素に固定基準座標系を提供する。通常、マニピュレータ座標系MNPLの原点は、ベース16の固定基準に規定される。ベース16は、リンク18のうちの1つまたは複数など、マニピュレータ14の任意の適切な部分に対して規定されてよい。代わりにまたは追加で、マニピュレータ14がマニピュレータカート17に物理的に取り付けられている場合など、ベース16は、マニピュレータカート17に対して規定されてよい。一例では、ベース16は、関節J1の軸と関節J2の軸の交点に規定される。よって、関節J1及び関節J2は実際には可動構成要素であるが、それにもかかわらず関節J1と関節J2の軸の交点は、仮想固定基準姿勢であり、仮想固定基準姿勢は、位置及び向きの両方の固定基準を提供し、マニピュレータ14及び/またはマニピュレータカート17に対して移動しない。他の例では、マニピュレータ14は、ハンドヘルドマニピュレータであってよく、ベース16はツールのベース部分(例えば、ユーザが自由に保持する部分、または定められたリンク機構に結合された部分)であり、ツール先端はベース部分に対して(例えば、半自律的に)可動である。ベース部分は、追跡される基準座標系を有し、ツール先端は、(例えば、モータ及び/または関節エンコーダと順運動学計算を介して)基準座標系に対して計算されるツール先端座標系を有する。パスに対するツール先端の姿勢を決定できるため、ツール先端の動きをパスに追従するように制御することができる。このようなハンドヘルド構成は、「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号に記載されているものと同様であってよく、その内容全体は、参照により本明細書に組み込まれる。
【0054】
ツール20は、マニピュレータ14に結合され、特定のモードで解剖学的構造と相互作用するようにベース16に対して可動である。ツール20は、特定の実施形態では、物理的な手術ツールであり、マニピュレータ14によって支持されるエンドエフェクタ22の一部である、または一部を形成する。ツール20は、ユーザにより把持されてよい。マニピュレータ14及びツール20の1つの可能な配置は、「Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes」と題する米国特許第9,119,655号に記載され、その開示は参照により本明細書に組み込まれる。マニピュレータ14及びツール20は、代替構成で配置されてもよい。ツール20は、2014年3月15日に出願された「End Effector of a Surgical Robotic Manipulator」と題する米国特許出願公開第2014/0276949号に示されるものと同様であってよく、これは、参照により本明細書に組み込まれる。
【0055】
ツール20は、手術部位で患者12の組織に接触するように及び組織を除去するように設計されたエネルギーアプリケータ24を含む。一例では、エネルギーアプリケータ24は、バー25または手術用カッターである。ツール20は、マニピュレータ14に結合された近位端と、エネルギーアプリケータ24が配置される遠位端とを有するツールシャフト33を含み得る。ツールシャフト33は、エネルギーアプリケータ24が組織を操作できるように、切断軸を中心に回転する。バー25は、ほぼ球形であってよく、球形の中心、半径(r)、及び直径を含み得る。あるいは、エネルギーアプリケータ24は、ドリルビット、ソーブレード、または超音波振動先端などであってよい。ツール20及び/またはエネルギーアプリケータ24は、任意の幾何学的特徴、例えば周囲長、円周、半径、直径、幅、長さ、体積、面積、表面/平面、(任意の1つまたは複数の軸に沿った)動作エンベロープ範囲などを含み得る。所望の治療を実行するために、幾何学的特徴を考慮して、手術部位の組織に対してツール20をどのように配置するかを決定してよい。本明細書に記載する実施形態の一部では、ツール中心点(TCP)を有する球形のバーが、便宜上及び説明を容易にするために記載されるが、ツール20をいずれの特定の形態に限定することも意図していない。
【0056】
マニピュレータ14の一例を
図2に示す。この例では、マニピュレータ14は、直列アーム構成を有する。より具体的には、マニピュレータ14は、5つのリンク18a、18b、18c、18d、18eを含み、リンク18aはベース16から最も近位にあり、リンク16eはベース16から最も遠位にある。
図2のマニピュレータ14はまた、J1、J2、J3、J4、J5、J6として識別される6つの関節を含む。関節J1は、ベース16とリンク18aの間に配置される。関節J2は、リンク18aとリンク18bの間に配置される。関節J3は、リンク18bとリンク18cの間に配置される。関節J4は、リンク18cとリンク18dの間に配置される。関節J5は、リンク18dとリンク18eの間に配置される。関節J6は、リンク18eとエンドエフェクタ22の間に配置される。
図2のマニピュレータ14は直列アームなので、任意の1つの関節J1~J6の動きは、下流のすべてのリンク(すなわち、動かされた関節からマニピュレータの遠位端までのすべてのリンク)への動きを引き起こす。
【0057】
各関節J1~J6は、それ自体の個々の軸A1、A2、A3、A4、A5、A6を中心にそれぞれ回転するように構成される。6つの関節J1~J6を有することにより、マニピュレータ14は、6自由度(DOF)で自由に動く。すなわち、マニピュレータ14は、3つの垂直軸に沿って並進的に前後、上下、及び左右に自由に移動できる。マニピュレータ14はまた、ピッチ、ヨー、及びロールと呼ばれることが多い3つの垂直軸を中心とした回転運動によって向きを自由に変えることができる。マニピュレータ14が、ツール20をそれ自体の軸を中心に回転させる必要があるかどうかなどの因子に応じて、5DOFで移動を実施し得ることを当業者は理解する。例えば、バーリング時、マニピュレータ14は、バーが別々に回転するので、5DOFで動作し得る。このような場合、関節の数が必要な自由度の数よりも多いため、冗長性がある。ソーイングの際、マニピュレータ14は6DOFで動作し得る。
【0058】
ベース16に位置する関節J1は、腰の回転に似た動きをする。軸A1を中心に回転することにより、関節J1は、マニピュレータ14が左から右に回転することを可能にする。関節J2は、肩の回転のような動きをする。軸A2を中心に回転することにより、関節J2は、マニピュレータ14が前後に伸びることを可能にする。関節J3は、肘を曲げるような動きをする。軸A3を中心に回転することにより、関節J3は、マニピュレータ14を上げ下げすることを可能にする。関節J4は、手首をひねるような動きをする。軸A4を中心に回転することにより、関節J4は、マニピュレータ14が上部リンク18d、18eを円運動で回転させ、それによってツール20の向きを変えることを可能にする。関節J5は、手首を曲げるような動きをする。軸A5を中心に回転することにより、関節J5は、リンク18e及び手術ツール20が上下に傾斜することを可能にし、ピッチ及びヨー運動を担当する。J4と同様に、関節J6は手首をひねるような動きをする。関節J6は軸A6を中心に回転し、ツール20のより正確な制御を可能にする。
【0059】
図3を参照すると、運動連鎖KCは、ベース16と複数のリンク18及び関節Jなど、堅固に取り付けられた任意の構成要素を含むマニピュレータ14と、シャフト33(該当する場合)及びエネルギーアプリケータ24を含むツール20とによって形成される。エンドエフェクタ22もまた、運動連鎖KCの一部であってよい。さらに、マニピュレータ14とエンドエフェクタ22との間に結合された任意の取り付けシステムまたは無菌界面は、運動連鎖KCの一部であってよい。運動連鎖KCの一部となり得る取り付けシステム及び/または無菌界面機構の一例は、「Mounting System With Sterile Barrier Assembly For Use In Coupling Surgical Components」と題された米国特許出願公開第2020/0170724A1号に記載され、その全内容は、参照により本明細書に組み込まれる。本明細書で使用される場合、「運動連鎖」という用語は、関節によって接続された剛体のアセンブリであり、本体の剛性により制約された運動が可能になり、それによって、剛体の運動学が決定され、数学モデルを使用した連鎖で他の剛体に関連付けることができる。
図3の例では、運動連鎖KCは、少なくとも1つのリンクが機械的に接地されているため、さらに「機構」を形成する。
【0060】
図2に示すように、力/トルクセンサなどのセンサSは、遠位リンク18eとエンドエフェクタ22との間に取り付けられてよい。力/トルクセンサSは、エンドエフェクタ22及び/またはツール20がさらされる力及び/またはトルクの関数として可変信号を出力するように構成される。そうすることによって、力/トルクセンサSは、ユーザによってエンドエフェクタ22及び/またはツール20に加えられた入力された力を検知することを可能にする。入力された力を利用してマニピュレータ14の動きを制御し、ユーザが加えた力/トルクをエミュレートすることができる。力/トルクセンサSはまた、エネルギーアプリケータ24に加えられる外力を検知し得る。一実施態様では、力/トルクセンサSは6DOFセンサであり、力/トルクセンサSは、3つの相互に直交する力と、ツール20に加えられる直交する力の軸の周りの3つのトルクとを表す信号を出力するように構成される。追加でまたは代わりに、エンドエフェクタ22及び/またはツール20に加えられる入力された力は、関節トルクまたは関節モータ27上の電流センサを使用して決定されてよい。
【0061】
図1を参照すると、マニピュレータ14及び/またはマニピュレータカート17は、マニピュレータコントローラ26、または他の種類の制御ユニットを収容してよい。マニピュレータコントローラ26は、1つまたは複数のコンピュータ、またはマニピュレータ14の運動を指示する任意の他の適切な形態のコントローラを含み得る。マニピュレータコントローラ26は、中央処理装置(CPU)及び/または他のプロセッサと、メモリ(図示せず)と、ストレージ(図示せず)とを有し得る。マニピュレータコントローラ26には、後述されるソフトウェアがロードされる。プロセッサは、マニピュレータ14の動作を制御する1つまたは複数のプロセッサを含み得る。プロセッサは、任意の種類のマイクロプロセッサ、マルチプロセッサ、及び/またはマルチコア処理システムであってよい。マニピュレータコントローラ26は、追加でまたは代わりに、1つまたは複数のマイクロコントローラ、フィールドプログラマブルゲートアレイ、システムオンチップ、ディスクリート回路、及び/または本明細書で記載されている機能を実行することができる他の適切なハードウェア、ソフトウェア、もしくはファームウェアを含み得る。プロセッサという用語は、いずれの実施態様も単一のプロセッサに限定することを意図するものではない。マニピュレータ14はまた、1つまたは複数のディスプレイ及び/または入力デバイス(例えば押しボタン、キーボード、マウス、マイクロホン(音声起動)、ジェスチャ制御デバイス、タッチスクリーンなど)を備えたユーザインタフェースUIを含み得る。
【0062】
ツール20は、ツール(例えば、ツール20の回転モータ)への電力を制御、ツール20の動きを制御、ツール20の洗浄/吸引の制御など、ツール20の動作を制御するためのツールコントローラ21を含み得る。ツールコントローラ21は、マニピュレータコントローラ26または他の構成要素と通信し得る。ツール20はまた、1つまたは複数のディスプレイ及び/または入力デバイス(例えば押しボタン、キーボード、マウス、マイクロホン(音声起動)、ジェスチャ制御デバイス、タッチスクリーンなど)を備えたユーザインタフェースUIを含み得る。マニピュレータコントローラ26は、マニピュレータ座標系MNPLなどの座標系に対してツール20(例えばTCP)の状態(位置及び/または向き)を制御する。マニピュレータコントローラ26は、(直線または角)速度、加速度、またはツール20の運動の他の導関数を制御することができる。
【0063】
ツール中心点(TCP)は、一例では、エネルギーアプリケータ24に規定された所定の基準点である。TCPは、他の座標系に対して既知の、または計算可能な(すなわち必ずしも静的ではない)姿勢を有する。エネルギーアプリケータ24の形状は、TCP座標系において既知である、またはTCP座標系に対して規定される。一点のみが追跡されるように、TCPは、ツール20のバー25の球形中心に位置してよい。TCPは、エネルギーアプリケータ24の構成に応じて、様々な方法で規定されてよい。マニピュレータ14は、関節/モータエンコーダ、または任意の他の非エンコーダ位置検知方法を使用して、TCPの姿勢を決定することができる。マニピュレータ14は、関節測定値を使用してTCP姿勢を決定してよい、及び/またはTCP姿勢を直接測定する技術を採用してよい。ツール20の制御は、中心点に限定されない。例えば、任意の適切なプリミティブ、メッシュなどを使用して、ツール20を表すことができる。
【0064】
図1に示すように、システム10はさらに、ナビゲーションシステム32を含み得る。ナビゲーションシステム32の一例は、2013年9月24日に出願された「Navigation System Including Optical and Non-Optical Sensors」と題する米国特許第9,008,757号に記載され、これは、参照により本明細書に組み込まれる。ナビゲーションシステム32は、様々な物体の動きを追跡する。このような物体には、例えば、マニピュレータ14、ツール20、及び解剖学的構造、例えば、大腿骨F及び脛骨Tが含まれる。ナビゲーションシステム32は、これらの物体を追跡して、(ナビゲーション)ローカライザ座標系LCLZに対する物体の状態情報を収集する。ローカライザ座標系LCLZの座標は、変換を使用して、マニピュレータ座標系MNPLに、及び/またはその逆に変換されてよい。
【0065】
ナビゲーションシステム32は、ナビゲーションコントローラ36、及び/または他の種類の制御ユニットを収容するカートアセンブリ34を含む。ナビゲーションユーザインタフェースUIは、ナビゲーションコントローラ36と術中に通信する。ナビゲーションユーザインタフェースは、1つまたは複数のディスプレイ38を含む。ナビゲーションシステム32は、1つまたは複数のディスプレイ38を使用して、追跡対象物体の相対的な状態のグラフィック表現を、ユーザに表示することができる。ナビゲーションユーザインタフェースUIはさらに、ナビゲーションコントローラ36に情報を入力するための、あるいはナビゲーションコントローラ36の特定の態様を選択/制御するための、1つまたは複数の入力デバイスを含む。このような入力デバイスには、インタラクティブなタッチスクリーンディスプレイが含まれる。入力デバイスは、押しボタン、キーボード、マウス、マイクロホン(音声起動)、ジェスチャ制御デバイスなどのうちの任意の1つまたは複数を含み得る。
【0066】
ナビゲーションシステム32はまた、ナビゲーションコントローラ36に結合されたナビゲーションローカライザ44を含む。一例では、ローカライザ44は、光学ローカライザであり、カメラユニット46を含む。カメラユニット46は、1つまたは複数の光学センサ50を収容する外側筐体48を有する。ローカライザ44は、それ自体のローカライザコントローラ49を含んでよく、さらにビデオカメラVCを含み得る。
【0067】
ナビゲーションシステム32は、1つまたは複数のトラッカを含む。一例では、トラッカは、ポインタトラッカPT、1つまたは複数のマニピュレータトラッカ52A、52B、第1の患者トラッカ54、及び第2の患者トラッカ56を含み得る。
図1に示される例では、マニピュレータトラッカ(すなわちトラッカ52A)は、ツール20にしっかりと取り付けられ、第1の患者トラッカ54は、患者12の大腿骨Fにしっかりと固定され、第2の患者トラッカ56は、患者12の脛骨Tにしっかりと固定される。この例では、患者トラッカ54、56は、骨の一部にしっかりと固定される。ポインタトラッカPTは、解剖学的構造をローカライザ座標系LCLZに登録するために使用されるポインタPにしっかりと固定される。マニピュレータトラッカ52A、52Bは、ツール20に加えて、またはツール20以外に、ベース16などマニピュレータ14の任意の適切な構成要素に(すなわちトラッカ52B)、またはマニピュレータ14の任意の1つまたは複数のリンク18に固定されてよい。トラッカ52A、52B、54、56、PTは、任意の適切な方法で各構成要素に固定されてよい。例えば、トラッカは、各トラッカとそれが関連付けられている物体との関係(測定値)を決定するのに適切な(補足的な)方法がある限り、堅固に固定されていても、柔軟に接続されていても(光ファイバ)、または物理的にまったく接続されていなくても(超音波)よい。
【0068】
トラッカのうちの任意の1つまたは複数は、アクティブマーカ58を含み得る。アクティブマーカ58は、発光ダイオード(LED)を含み得る。あるいは、トラッカ52A、52B、54、56、PTは、カメラユニット46から放出された光を反射する反射器などのパッシブマーカを有し得る。本明細書に具体的に記載されていない他の適切なマーカが利用されてもよい。
【0069】
ローカライザ44は、トラッカ52A、52B、54、56、PTを追跡して、トラッカ52A、52B、54、56、PTの状態を判断し、これらの状態は、トラッカがそれぞれ取り付けられた物体の状態にそれぞれ対応する。ローカライザ44は、既知の三角測量技術を実行して、トラッカ、52、54、56、PT及び関連付けられた物体の状態を判断し得る。ローカライザ44は、トラッカ52A、52B、54、56、PTの状態を、ナビゲーションコントローラ36に提供する。一例では、ナビゲーションコントローラ36は、トラッカ52A、52B、54、56、PTの状態を判断し、マニピュレータコントローラ26に通信する。本明細書で使用される場合、物体の状態は、追跡対象物体の位置及び/または向き、あるいは位置及び/または向きの均等物/導関数を定義するデータを含み得るが、これらに限定されない。例えば、状態は、物体の姿勢であってよく、直線速度データ及び/または角速度データなどを含み得る。
【0070】
ナビゲーションコントローラ36は、1つまたは複数のコンピュータ、または任意の他の適切な形態のコントローラを含み得る。ナビゲーションコントローラ36は、中央処理装置(CPU)及び/または他のプロセッサと、メモリ(図示せず)と、ストレージ(図示せず)とを有する。プロセッサは、任意の種類のプロセッサ、マイクロプロセッサ、またはマルチプロセッサシステムであってよい。ナビゲーションコントローラ36には、ソフトウェアがロードされる。ソフトウェアは、例えば、ローカライザ44から受信した信号を、追跡されている物体の位置及び向きを表すデータに変換する。ナビゲーションコントローラ36は、追加でまたは代わりに、1つまたは複数のマイクロコントローラ、フィールドプログラマブルゲートアレイ、システムオンチップ、ディスクリート回路、及び/または本明細書に記載される機能を実行することができる他の適切なハードウェア、ソフトウェア、もしくはファームウェアを含み得る。プロセッサという用語は、単一のプロセッサに限定することを意図するものではない。
【0071】
物体の状態を決定するために三角測量技術を使用するナビゲーションシステム32の一例が示されるが、ナビゲーションシステム32は、マニピュレータ14、ツール20、及び/または患者12を追跡するための任意の他の適切な構成を有し得る。別の例では、ナビゲーションシステム32及び/またはローカライザ44は、超音波ベースである。例えば、ナビゲーションシステム32は、ナビゲーションコントローラ36に結合された超音波撮像デバイスを含み得る。超音波撮像デバイスは、上述の物体のうちのいずれか、例えばマニピュレータ14、ツール20、及び/または患者12を撮像し、超音波画像に基づいてナビゲーションコントローラ36への状態信号を生成する。超音波画像は、2D、3D、または両方の組み合わせであってよい。ナビゲーションコントローラ36は、ほぼリアルタイムで画像を処理し、物体の状態を決定してよい。超音波撮像デバイスは、任意の適切な構成を有してよく、
図1に示されるカメラユニット46とは異なってよい。
【0072】
別の例では、ナビゲーションシステム32及び/またはローカライザ44は、無線周波数(RF)ベースである。例えば、ナビゲーションシステム32は、ナビゲーションコントローラ36に結合されたRFトランシーバを含み得る。マニピュレータ14、ツール20、及び/または患者12は、それらに取り付けられたRFエミッタまたはトランスポンダを含み得る。RFエミッタまたはトランスポンダは、受動的であってもよく、能動的に通電されてもよい。RFトランシーバは、RF追跡信号を送信し、RFエミッタから受信したRF信号に基づいて、ナビゲーションコントローラ36への状態信号を生成する。ナビゲーションコントローラ36は、受信したRF信号を分析して、RF信号に相対的状態を関連付けてよい。RF信号は、任意の適切な周波数であってよい。RFトランシーバは、RF信号を効果的に使用して物体を追跡するために、任意の適切な位置に配置されてよい。さらに、RFエミッタまたはトランスポンダは、
図1に示されるトラッカ52A、52B、54、56、PTとは大きく異なり得る任意の適切な構造的構成を有し得る。
【0073】
さらに別の例では、ナビゲーションシステム32及び/またはローカライザ44は、電磁ベースである。例えば、ナビゲーションシステム32は、ナビゲーションコントローラ36に結合されたEMトランシーバを含み得る。マニピュレータ14、ツール20、及び/または患者12は、任意の適切な磁気トラッカ、電磁トラッカ、誘導トラッカなどのEM構成要素を含み得る。トラッカは、受動的であってもよく、能動的に通電されてもよい。EMトランシーバは、EMフィールドを生成し、トラッカから受信したEM信号に基づいて、ナビゲーションコントローラ36への状態信号を生成する。ナビゲーションコントローラ36は、受信したEM信号を分析して、EM信号に相対的状態を関連付けてよい。この場合も、このようなナビゲーションシステム32の例は、
図1に示されるナビゲーションシステム32の構成とは異なる構造的構成を有し得る。
【0074】
ナビゲーションシステム32は、本明細書に具体的に記載されていない任意の他の適切な構成要素または構造を有し得る。さらに、示されるナビゲーションシステム32に関して前述した技術、方法、及び/または構成要素のうちのいずれも、本明細書で記載されるナビゲーションシステム32の他の例のうちのいずれに対しても実施または提供されてよい。例えば、ナビゲーションシステム32は、慣性追跡のみ、または追跡技術の任意の組み合わせを利用してよく、追加でまたは代わりに、光ファイバベース追跡、マシンビジョン追跡などを含み得る。
【0075】
図4を参照すると、システム10は、制御システム60を含み、制御システム60は、他の構成要素の中でも特に、マニピュレータコントローラ26、ナビゲーションコントローラ36、及びツールコントローラ21を含む。制御システム60は、
図5に示す1つまたは複数のソフトウェアプログラム及びソフトウェアモジュールをさらに含む。ソフトウェアモジュールは、マニピュレータコントローラ26、ナビゲーションコントローラ36、ツールコントローラ21、またはこれらの任意の組み合わせにおいて、データを処理してシステム10の制御を支援するように動作する1つまたは複数のプログラムの一部であってよい。ソフトウェアプログラム及び/またはモジュールは、マニピュレータコントローラ26、ナビゲーションコントローラ36、ツールコントローラ21、またはこれらの組み合わせ上の非一時的メモリ64に記憶されたコンピュータ可読命令を含み、これは、コントローラ21、26、36の1つまたは複数のプロセッサ70により実行される。メモリ64は、RAM、不揮発性メモリなどの任意の適切な構成のメモリであってよく、ローカルで、またはリモートデータベースから実施されてよい。さらに、ユーザにプロンプト表示及び/または通信を行うためのソフトウェアモジュールは、1つまたは複数のプログラムの一部を形成してよく、マニピュレータコントローラ26、ナビゲーションコントローラ36、ツールコントローラ21、またはこれらの任意の組み合わせのメモリ64に記憶された命令を含み得る。ユーザは、ナビゲーションユーザインタフェースUIまたは他のユーザインタフェースUIの入力デバイスのうちのいずれかとインタラクトして、ソフトウェアモジュールと通信してよい。ユーザインタフェースソフトウェアは、マニピュレータコントローラ26、ナビゲーションコントローラ36、及び/またはツールコントローラ21とは別個のデバイスで実行されてよい。
【0076】
制御システム60は、本明細書に記載される機能及び方法を実行するのに適した任意の適切な構成の入力デバイス、出力デバイス、及び処理デバイスを含み得る。制御システム60は、マニピュレータコントローラ26、ナビゲーションコントローラ36、もしくはツールコントローラ21、またはこれらの任意の組み合わせを含み得る、あるいはこれらのコントローラのうちの1つのみを含み得る。これらのコントローラは、
図4に示す有線バスもしくは通信ネットワークを介して、無線通信を介して、またはその他の方法で通信し得る。制御システム60は、コントローラとも称されてよい。制御システム60は、1つまたは複数のマイクロコントローラ、フィールドプログラマブルゲートアレイ、システムオンチップ、ディスクリート回路、センサ、ディスプレイ、ユーザインタフェース、インジケータ、及び/または本明細書に記載の機能を実行することができる他の適切なハードウェア、ソフトウェア、もしくはファームウェアを含み得る。
【0077】
図5を参照すると、制御システム60によって使用されるソフトウェアは、境界ジェネレータ66を含む。
図6に示すように、境界ジェネレータ66は、ツール20の動き及び/または動作を制約するための仮想境界71を生成するソフトウェアプログラムまたはモジュールである。仮想境界71は、1次元、2次元、3次元であってよく、点、線、軸、軌道、平面、または複雑な形状を含む他の形を含み得る。一部の実施形態では、仮想境界71は、三角形メッシュによって画定される表面である。このような仮想境界71は、仮想物体と呼ばれてもよい。仮想境界71は、3D骨モデルなどの解剖学的モデルAMに対して画定されてよい。
図6の例では、仮想境界71は、全膝インプラントの5つの平面を描写する平面境界であり、大腿骨頭Fの3Dモデルに関連付けられる。解剖学的モデルAMは、仮想境界71が解剖学的モデルAMと関連付けられるように、1つまたは複数の患者トラッカ54、56に登録される。仮想境界71は、インプラント固有であってよく、例えば、インプラントのサイズ、形状、体積などに基づいて画定されてよい、及び/または患者に固有であってよく、例えば、患者の解剖学的構造に基づいて画定されてよい。仮想境界71は、術前、術中、またはそれらの組み合わせで作成される境界であってよい。換言すれば、仮想境界71は、外科的処置が始まる前、外科的処置中(組織除去中を含む)、またはそれらの組み合わせで画定されてよい。いずれの場合でも、制御システム60は、仮想境界71をメモリ内に記憶/メモリから検索することと、メモリから仮想境界71を取得することと、術前に仮想境界71を作成することと、術中に仮想境界71を作成することとなどによって仮想境界71を取得する。
【0078】
マニピュレータコントローラ26及び/またはナビゲーションコントローラ36は、仮想境界71に対するツール20の状態を追跡する。一例では、ツール20が仮想境界71と望ましい位置関係にある(例えば、仮想境界を越えて移動しない)ように仮想シミュレーションを介して仮想の剛体モデルに加える触覚力を決定する目的で、仮想境界71に対するTCPの状態が測定される。仮想シミュレーションの結果は、マニピュレータ14に命令される。制御システム60は、物理的な境界/障壁の存在下で物理的なハンドピースが応答する方法をエミュレートする方法で、マニピュレータ14を制御/位置決めする。境界ジェネレータ66は、マニピュレータコントローラ26に実装されてよい。代わりに、境界ジェネレータ66は、ナビゲーションコントローラ36などの他の構成要素に実装されてよい。
【0079】
図5及び7を参照すると、パスジェネレータ68は、制御システム60によって実行される別のソフトウェアプログラムまたはモジュールである。一例では、パスジェネレータ68は、マニピュレータコントローラ26によって実行される。パスジェネレータ68は、インプラントを受容するために解剖学的構造の部分を除去するためなどに、ツール20が横断するためのツールパスTPを生成する。ツールパスTPは、複数のパスセグメントPSを含み得る、または単一のパスセグメントPSを含み得る。パスセグメントPSは、直線セグメント、曲線セグメント、それらの組み合わせなどであってよい。ツールパスTPはまた、解剖学的モデルAMに対して規定されてよい。ツールパスTPは、インプラント固有であってよい、例えば、インプラントのサイズ、形状、体積などに基づいて規定されてよい、及び/または患者固有であってよい、例えば、患者の解剖学的構造に基づいて規定されてよい。
【0080】
本明細書に記載される1つのバージョンでは、ツールパスTPは、組織除去経路として定められるが、他のバージョンでは、ツールパスTPは、組織除去以外の治療に使用されてよい。本明細書に記載される組織除去経路の一例は、ミリングパス72を含む。「ミリングパス」という用語は一般に、解剖学的構造をミリングするための標的部位付近のツール20の経路を指し、ツール20が経路の全期間にわたって解剖学的構造を動作可能にミリングすることを必要とすることを意図するものではない。例えば、以下でさらに詳細に理解されるように、ミリングパス72は、ツール20がある位置から別の位置にミリングせずに移行する部分またはセグメントを含み得る。さらに、組織焼灼など、ミリングパス72に沿った他の形態の組織除去を採用してよい。ミリングパス72は、術前、術中、またはそれらの組み合わせで作成される所定の経路であってよい。換言すれば、ミリングパス72は、外科的処置が始まる前、外科的処置中(組織除去中を含む)、またはそれらの組み合わせで規定されてよい。いずれの場合でも、制御システム60は、ミリングパス72をメモリに記憶/メモリから検索すること、メモリからミリングパス72を取得すること、ミリングパス72を術前に作成すること、ミリングパス72を術中に作成することなどによって、ミリングパス72を取得する。ミリングパス72は、円形、らせん/コルクスクリュー、直線、曲線、及びそれらの組み合わせなど、任意の適切な形状、または形状の組み合わせを有し得る。
【0081】
仮想境界71及び/またはミリングパス72を生成するためのシステム及び方法の一例は、「Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes」と題する米国特許第9,119,655号に記載されており、その開示は、参照により本明細書に組み込まれる。一部の例では、仮想境界71及び/またはミリングパス72は、マニピュレータコントローラ26またはナビゲーションコントローラ36上ではなく、オフラインで生成されてよい。その後、仮想境界71及び/またはミリングパス72は、マニピュレータコントローラ26によって実行時に利用されてよい。
【0082】
図5を参照すると、2つの追加のソフトウェアプログラムまたはモジュールが、マニピュレータコントローラ26及び/またはナビゲーションコントローラ36で実行される。1つのソフトウェアモジュールが挙動制御74を実行する。挙動制御74は、エネルギーアプリケータ24の次の指令位置CP及び/またはツール20の向き(例えば姿勢)を示すデータを計算するプロセスである。場合によっては、TCPの位置が挙動制御74から出力されるが、他の場合には、ツール20の位置及び向きが出力される。境界ジェネレータ66、パスジェネレータ68、及び力/トルクセンサSからの出力は、挙動制御74への入力として供給されて、エネルギーアプリケータ24の次の指令位置CP及び/またはツール20の向きを決定し得る。挙動制御74は、これらの入力を、以下でさらに記載する1つまたは複数の仮想制約とともに処理して、指令姿勢を決定してよい。
【0083】
第2のソフトウェアモジュールは、運動制御76を実行する。運動制御の1つの側面は、マニピュレータ14の制御である。運動制御76は、挙動制御74から次の指令姿勢を規定するデータを受信する。これらのデータに基づいて、運動制御76は、(例えば、逆運動学及びヤコビ計算機によって)マニピュレータ14の関節Jの関節角度の次の位置を決定し、その結果、マニピュレータ14は、ツール20を、例えば指令姿勢で、挙動制御74によって指令されたようにツール20を配置することができる。換言すれば、運動制御76は、デカルト空間で定義され得る指令姿勢をマニピュレータ14の関節角度に処理し、その結果、マニピュレータコントローラ26は、それに応じて関節モータ27に命令して、マニピュレータ14の関節Jをツール20の指令姿勢に対応する指令関節角度にするように動かすことができる。1つのバージョンでは、運動制御76は、関節Jの関節角度を調整し、関節モータ27が関連する関節Jを指令関節角度まで確実に駆動するように、関節モータ27が出力するトルクを可能な限り厳密に調整する。
【0084】
境界ジェネレータ66、パスジェネレータ68、挙動制御74、及び運動制御76のいずれも、ソフトウェアプログラム78のサブセット、またはそれらの任意の組み合わせで別個及び/または独立して動作するソフトウェアプログラムであってよい。「ソフトウェアプログラム」という用語は、本明細書では、記載された技術的解決策の様々な機能を実行するように構成されたコンピュータ実行可能命令を記述して使用される。簡単にするために、「ソフトウェアプログラム」という用語は、境界ジェネレータ66、パスジェネレータ68、挙動制御74、及び/または運動制御76のうちの任意の1つまたは複数を少なくとも包含することを意図している。ソフトウェアプログラム78は、マニピュレータコントローラ26、ナビゲーションコントローラ36、もしくはそれらの任意の組み合わせで実装することができる、または制御システム60によって任意の適切な方法で実装されてよい。
【0085】
ユーザインタラクションを処理するために、臨床アプリケーション80が提供されてよい。臨床アプリケーション80は、ユーザインタラクションの多くの側面を処理し、術前計画、インプラント配置、登録、骨準備の視覚化、及びインプラント適合の術後評価などを含む手術ワークフローを調整する。臨床アプリケーション80は、ディスプレイ38に出力するように構成される。臨床アプリケーション80は、それ自体の別個のプロセッサ上で実行されてよい、またはナビゲーションコントローラ36と一緒に実行されてよい。一例では、臨床アプリケーション80は、インプラント配置がユーザによって設定された後、境界ジェネレータ66及び/またはパスジェネレータ68とインタフェースし、次に、境界ジェネレータ66及び/またはパスジェネレータ68によって返信された仮想境界71及び/またはツールパスTPを、実行のためにマニピュレータコントローラ26に送信する。マニピュレータコントローラ26は、本明細書で記載されるようにツールパスTPを実行する。マニピュレータコントローラ26はさらに、機械加工を開始または再開するときに、生成されたツールパスTPにスムーズに戻るために、特定のセグメント(例えば、引き込みセグメント)を作成することができる。マニピュレータコントローラ26はまた、仮想境界71を処理して、以下でさらに記載するように、対応する仮想制約を生成してよい。
【0086】
システム10は、参照により本明細書に組み込まれる米国特許第9,119,655号に記載されているような手動モードで動作し得る。ここで、ユーザは手動で指示し、マニピュレータ14は、手術部位でツール20及びそのエネルギーアプリケータ24の動きを実行する。ユーザは、ツール20に物理的に接触して、手動モードでツール20を動かす。1つのバージョンでは、マニピュレータ14は、ツール20を位置決めするために、ユーザによってツール20に加えられる力及びトルクを監視する。例えば、マニピュレータ14は、ユーザによって加えられた力及びトルクを検出し、制御システム60によって使用される対応する入力(例えば、1つまたは複数の対応する入力/出力信号)を生成する力/トルクセンサSを含み得る。
【0087】
マニピュレータコントローラ26及び/またはナビゲーションコントローラ36は、力/トルクセンサSからの入力(例えば、信号)を受信する。ユーザによって加えられた力及びトルクに応答して、マニピュレータ14は、ユーザによって加えられた力及びトルクに基づいて発生したであろう動きをエミュレートする様式でツール20を動かす。手動モードでのツール20の動きはまた、境界ジェネレータ66によって生成された仮想境界71に対して制約されてよい。一部のバージョンでは、力/トルクセンサSによって取得された測定値は、力/トルクセンサSの力/トルク座標系FTから、仮想シミュレーションがツール20の仮想剛体モデルにおいて実行される仮想質量座標系などの別の座標系に変換され、その結果、仮想シミュレーションで仮想剛体に仮想的に力及びトルクを適用して、以下に記載するように、(他の入力の中でも特に)これらの力及びトルクが仮想剛体の動きにどのように影響するかを最終的に決定することができる。
【0088】
システム10はまた、マニピュレータ14がミリングパス72に沿ってツール20を移動させる半自律モードで動作してよい(例えば、マニピュレータ14のアクティブ関節Jは、ユーザからのツール20への力/トルクを必要とせずにツール20を移動させるように動作する)。半自律モードでの動作の例は、参照により本明細書に組み込まれた米国特許第9,119,655号にも記載されている。一部の実施形態では、マニピュレータ14が半自律モードで動作するとき、マニピュレータ14は、ユーザの支援無しでツール20を動かすことができる。ユーザ支援が無いということは、ユーザがツール20を動かすためにツール20に物理的に接触しないことを意味し得る。代わりに、ユーザは何らかの形態のリモコンを使用して、動きの開始と停止を制御してよい。例えば、ユーザはリモコンのボタンを押したままにしてツール20の動きを開始し、ボタンを放してツール20の動きを停止してよい。
【0089】
マニピュレータコントローラ26及び挙動コントローラ74を含む制御システム60は、仮想シミュレーションにおいてツール20のダイナミクスをシミュレートするように構成される。仮想シミュレーションは、エネルギーアプリケータ24を伴うまたは伴わないツール20に基づいてよい。一例では、仮想シミュレーションは、剛体のダイナミクスをシミュレートするコンピュータソフトウェアである物理エンジンを使用して実施される。仮想シミュレーションは、実行可能プログラムが記憶された非一時的コンピュータ可読記憶媒体64を有するコンピューティングデバイスで実施されてよい。仮想シミュレーションは、ツール20のそのようなダイナミクスがマニピュレータ14によって物理的に実行される前に、ツール20のダイナミクスをシミュレートする。制御システム60は、動的物体である仮想剛体としてツール20をモデル化する。したがって、制御システム60は、ツール20の剛体ダイナミクスを効果的にシミュレートする。仮想剛体は、仮想シミュレーションに従ってデカルトタスク空間で6DOFに従って自由に動くことができる。仮想剛体は、単一の点としてモデル化されてよく、単一の点は、ツール20上、ツール20内、またはツール20を超えてよい。質量/慣性マトリクスは、6DOFの仮想質量を定義する。一例では、仮想剛体は、ツール20の重心に対応する。ここで、「質量中心」は、ツール20の別の点に力が加えられ、ツール20が拘束されていなければ、すなわち、マニピュレータ14によって拘束されていなければ、ツール20がその周りを回転する点であると理解される。仮想剛体の質量中心は、ツール20の実際の質量中心に近くてよいが、同じである必要はない。仮想剛体の質量中心は、経験的に決定することができる。ツール20がマニピュレータ14に取り付けられると、個々の施術者の好みに対応するように質量中心の位置をリセットすることができる。他の実施形態では、仮想剛体は、重心など、ツール20の他の特徴に対応し得る。
【0090】
この仮想剛体は、仮想質量を有すると見なされる。仮想質量は、関節Jの少なくとも1つについて慣性を有する。場合によっては、仮想質量は、関節(J1~J6)のそれぞれについて慣性を有する。慣性は、速度の変化に応答して仮想質量が示す抵抗の尺度である。慣性は、仮想質量の特性であると理解されてよい。したがって、仮想質量は、仮想剛体の質量と慣性の両方を指してよい。仮想剛体の仮想質量は典型的には、ツール20の実際の質量と同じ桁内にある。仮想質量は、ツール20の実際の質量よりも大きくまたは小さく設計されてもよい。
【0091】
一例では、仮想剛体は、仮想シミュレーションの各反復の開始時に第1の姿勢にある。制御システム60は、力/トルクセンサSからユーザが加えた入力された力及び/または他の制約としてモデル化された他の入力された力を受信してよい。仮想剛体が第1の姿勢にあるときに、仮想シミュレーションで入力された力が仮想剛体に加えられる。入力された力により、仮想剛体は、仮想パスに沿ってデカルト空間内の異なる位置と異なる向きを有する第2の姿勢に進む。仮想シミュレーションに基づいて仮想剛体の第2の姿勢を知ると、制御システム60は、仮想シミュレーションに従って関節Jの動作を命令する。すなわち、制御システム60は、デカルト空間における仮想剛体のダイナミクスを変換して、マニピュレータ14の運動を指示し、関節空間におけるツール20の向きを制御する。第2の姿勢をもたらす力が、ヤコビ計算機に適用され、ヤコビ計算機は、デカルト空間内の運動を関節空間内の運動に関連付けるヤコビ行列を計算する。
【0092】
仮想シミュレーションは、仮想剛体の視覚的またはグラフィカルな表現無しに計算で実行されてよい。仮想シミュレーションが仮想剛体のダイナミクスを仮想的に表示することは必要ない。換言すれば、仮想剛体は、処理ユニット上で実行されるグラフィックアプリケーション内でモデル化される必要はない。場合によっては、実際のツール20まで追跡される仮想ツールの動きを手術部位に表示して、処置の操作中に視覚的な支援を提供し得る。このような場合、表示されるツールは仮想シミュレーションの直接の結果ではない。
【0093】
II.送り速度の決定
【0094】
エネルギーアプリケータ24がパスに沿って前進する速さまたは速度は、送り速度FRと呼ばれる。一実施態様では、そのような前進は、半自律モードでの前進、より具体的にはツールパスTPに沿った前進であってよい。このセクションでは、処置の前または最中に送り速度FRを決定する技術を記載する。このセクションで記載するように、送り速度FRは、様々な条件及び/または変数に基づいて設定及び変更することができる。次のセクションに記載するように、送り速度FRを動的に変更して、運動連鎖KCの非ツールパス構成要素の望ましくない向きの運動を考慮することができる。送り速度FRは、「Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes」と題する米国特許第9,119,655号に記載される技術によって計算され、その開示は参照により本明細書に組み込まれる。
【0095】
一実施態様による送り速度FRを決定するために、パスジェネレータ68は、1つまたは複数の変数を計算する。これらの変数の1つは、仮想剛体に適用されたときにエネルギーアプリケータ24の前進をもたらす力とトルクである。別の変数は、ツール20の向きを向きの許容範囲内に維持するために仮想剛体に加えられる力及びトルクである。
【0096】
一例では、パスジェネレータ68は、
図5及び8に見られるように、送り速度計算機82であるサブモジュールを含む。送り速度計算機82は、エネルギーアプリケータ24がツールパスTPの個々のパスセグメントPSに沿って移動するときに動くべき送り速度FRを決定する(
図9参照)。送り速度計算機82への入力は、定義された送り速度(DEFINED F.R.)とすることができる。その最も基本的な形では、定義された送り速度FRはスカラ値である。実際には、マニピュレータコントローラ26には、複数の定義された送り速度FRが提供されてよい。これらの定義された送り速度は、デフォルトの送り速度を設定するために使用することができ、以下に記載するように、様々な変数に従ってスケーリングまたは修正することができる。定義された送り速度は、エネルギーアプリケータ24が前進する実際の送り速度FRに常に対応する必要はない。さらに、定義された送り速度をデフォルトとして設定することは必ずしも必要ではない。代わりに、システム10は、定義された送り速度で開始することなく、以下の変数の任意の1つまたは複数に基づいて実際の送り速度FRを動的に決定することができる。換言すれば、実際の送り速度FRは、事前に決定されたデフォルトまたは定義された送り速度なしに、「オンザフライ」で事前に決定または決定することができる。
【0097】
図9を参照すると、一例では、特定の定義された送り速度FR1…FRNが、各パスセグメントPS1…PSNに割り当てられてよい。この送り速度FRの割り当ては、術前または術中に行われてよい。次に、送り速度FRは、処置の開始時または処置中に調整することができる。2つ以上の連続するパスセグメントPSに、同じまたは異なる定義された送り速度FRが割り当てられてよい。これらの送り速度FRは、空隙の形状、エネルギーアプリケータ24の種類、患者の健康;状態、エネルギーアプリケータ24が適用される組織の性質、及びパスセグメントPSの形状などであるが、これらに限定されない変数に基づいて生成することができる。実際には、定義された送り速度FRは通常、5~400mm/秒である。送り速度は、状況に応じてこの範囲よりも大きくても小さくてもよい。一実施態様によれば、送り速度FRは、手術計画、システム設定、及び/または外科医の好みに基づいて予め決定される。代わりにまたは追加で、送り速度FRは、術中条件に基づいて決定及び修正することができる。エネルギーアプリケータ24が次のパスセグメントPSに到達するとき、またはその前の任意の時点で、送り速度をパスセグメントPSに割り当てることもできる。
【0098】
図9に示すように、パスジェネレータ68及び送り速度計算機82を含むマニピュレータコントローラ26を含むがこれらに限定されない1つまたは複数のコントローラは、送り速度FRに従ってエネルギーアプリケータ24を複数の指令位置CP1~CPNに前進させるようにマニピュレータ14を制御するように構成される。指令位置CPは、半自律モードでツールパスTPに対して規定されることが多いが、必ずしもそうではない。一実施態様では、ツールパスTPのセグメントPSは、後続の指令位置PSの間で規定される。あるいは、指令位置CPは、手動モードでシステム10によってエミュレートされるユーザが開始した非ツールパス運動に従って決定されてもよい。
【0099】
図8を参照すると、送り速度計算機82は、定義された送り速度を調整して、送り速度FRを生成することができる。1つのバージョンでは、この調整は、定義された送り速度FRに任意の数の係数を掛けることによって実行される。各係数は0から1.0の間であってよい。係数は1.0を超える値を有する場合もある。これらの係数の各々は、送り速度計算機82にも適用される変数の関数として変化することができる。
【0100】
これらの変数の第1の変数は、
図8に示されるように、送り速度FRのユーザ調整(USER ADJUST)であってよい。これは、処置が進行するにつれて、施術者がリアルタイムで実行する送り速度FRの調整である。施術者は、
図1に示されるペンダント88などを用いて、遠隔制御によって、この送り速度調整を行うことができる。ペンダントの例は、「Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes」と題した米国特許第9,119,655号に記載されているものと同様であってよく、その開示は参照により本明細書に組み込まれる。送り速度計算機82は、施術者が入力したコマンドの関数として係数を出力して、送り速度FRを増加または減少させる。
【0101】
定義された送り速度FRを選択的にスケーリングするために使用できる第2の変数は、
図8に示すように、エネルギーアプリケータ24がさらされる力及びトルク(SNSD F/T)である。エネルギーアプリケータ24は、エンドエフェクタ22に固く取り付けることができるツール20に固く取り付けられる。したがって、力/トルクセンサSによって出力される信号は、エネルギーアプリケータ24がさらされる力及びトルクを表す信号である。送り速度計算機82は、マニピュレータ14がツール20及びエネルギーアプリケータ24に加える力/トルクの量と、機器の前進速度との間に関係があるという原理に基づいて、送り速度FRを設定することができる。一般に、除去対象ではない組織の加熱を最小限に抑えることが、現代の医療行為の目標である。この目標の理由の1つは、この不必要な加熱が組織に引き起こし得る付随的な損傷を最小限に抑えることである。したがって、マニピュレータ14は、相当量の力及び/またはトルクが機器またはエネルギーアプリケータ24に加えられると判断されると、パスセグメントPSの送り速度FRを遅くするように構成される。
【0102】
送り速度FRのこの調整が有用である一例は、エネルギーアプリケータ24が皮質骨と海綿骨の両方を通ってパスセグメントPSを横切って移動する場合である。外側の骨である皮質骨は比較的硬い。内側の骨である海綿骨は、皮質骨よりも多孔質であり、除去に対する耐性が低い。したがって、エネルギーアプリケータ24が両方のタイプの骨を一定速度で横断する場合、皮質骨を横切ってアプリケータを移動させるために、海綿骨より多くの力/トルクを加える必要がある。これは、送り速度FRを調整しないと、皮質骨が海綿骨の隣接部分よりも損傷を誘発する加熱を受ける可能性が高くなることを意味する。マニピュレータ14のこの特徴によって、力/トルクセンサSがエネルギーアプリケータ24を前進させるのに必要な力/トルクの量の増加を示す信号を提供するのに応答して、送り速度FRを遅くすることによって、この望ましくない加熱の可能性を最小限に抑える。
【0103】
エネルギーアプリケータ24が皮質骨から海綿骨の切断へと移動すると、機器を前進させるのに必要な力/トルクが減少する。この状況では、エネルギーアプリケータ24が適用される骨が加熱される程度をあまり増加させることなく、送り速度FRを増加させることができる。これにより、患者の処置にかかる時間が短くなる。これにより、患者の処置にかかる時間を最小限に抑えるという現代の外科手術の目標が促進される。このことは、患者の内部組織が露出して感染にさらされる時間を短縮し、外科医の疲労の可能性と患者を麻酔下に置かなければならない時間を短縮する。
【0104】
送り速度計算機82は、(1)個々の力及びトルク成分からなる6成分ベクトルの大きさ、(2)個々の力成分からなる3成分ベクトルの大きさ、及び(3)個々の力及び/またはトルク成分の任意の組み合わせからなるベクトルの大きさのうちの1つ、2つ、または3つに基づいて、力/トルク調整係数を決定する。あるいは、係数は、最大の力またはトルク成分の1つまたは複数に基づく。これらの変数の1つまたは複数に基づいて、送り速度計算機82は、関連するルックアップテーブル84内のデータを参照することによって、力/トルク調整係数を決定することができる。
【0105】
送り速度FRを調節することに加えて、エネルギーアプリケータ24の回転切断速度も変化させてよい。より具体的には、エネルギーアプリケータ24がバーである場合、バーの切削歯の速度を調整及び最適化して、組織除去の精度を改善し、組織での発熱を最小限に抑えてよい。バー切削歯の最適な速度は、カッター回転速度とカッター直径という因子であり、これらは、歯の形状と除去する材料の種類に基づいて最適化される。
【0106】
定義された送り速度を調整して送り速度FRを生成することができる第3の変数は、
図8に示すように、パスセグメントの曲率(PATH CRVTR)である。エネルギーアプリケータ24が位置を指令され、湾曲したパスセグメントPSに沿って移動されるとき、運動量によってエネルギーアプリケータ24をツールパスTPまたはパスセグメントPSから離れるように移動させるほど高速でエネルギーアプリケータ24が移動されないことを保証するために、この調整が行われる。一部の例では、パスセグメントPSが直線であるか、または比較的小さな曲率を有する場合、送り速度FRは曲率に基づいて調整されない。送り速度計算機82が、エネルギーアプリケータ24が比較的大きな曲率または小さな半径を有するパスセグメントPSに沿って移動しているという指示を受信すると、送り速度計算機82は、送り速度FRを生成するために、この変数に基づいて、定義された送り速度FRを下方に調整することができる。
【0107】
送り速度計算機82は、パスジェネレータ68の別のサブモジュール構成要素であり得る曲率計算機から、エネルギーアプリケータ24が移動しているパスの曲率、PATH CRVTR変数の指示を受信する。この入力変数に基づいて、送り速度計算機82はルックアップテーブル84の1つを参照して、送り速度FRが調整されるべき程度を反映する係数を決定することができる。1つまたは複数のパスセグメントPSが線形である、またはゼロに近い曲率を有する場合、定義された送り速度FRは曲率に基づいて調整されなくてもよく、係数は1.0またはそれに近い。送り速度計算機82が、エネルギーアプリケータ24が比較的大きな曲率を有するパスセグメントPSに沿って移動しているという指示を受信すると、送り速度計算機82は、送り速度FRを生成するために、この変数に基づいて、定義された送り速度を下方に調整する。取得された係数は1から減少する。一部のバージョンでは、曲率が0.05mm-1以下の場合、送り速度計算機82は、エネルギーアプリケータ24が前進しているセグメントPDの曲率に基づいて送り速度FRを減衰させない。曲率計算機は、間隔を置いてフィルタリングされた複数の標的位置を規定するデータに基づいて、現在のフィルタリングされたパスの曲率を決定する。この曲率を表すデータは、送り速度計算機82にPATH CRVTR変数として転送される。
【0108】
パスセグメントPSの曲率を考慮するように送り速度FRを変更することは、エネルギーアプリケータ24や運動連鎖KCの他のいずれの構成要素の向きの運動(例えば、角速度、角加速度、角躍度)に関係なく、ツールパスTPに対するエネルギーアプリケータ24の位置の指令された(x,y,z)または予想の位置に基づく。
【0109】
定義された送り速度を調整して送り速度FRを生成することができる第4の変数は、
図8に示されるように、機器電力(INST POWER)である。この変数は、ツール20及び/またはエネルギーアプリケータ24が患者に加える電力量である。一般に、機器が組織に加える電力が増加すると、組織がこの電力によって加熱される程度も増加するため、送り速度FRを調整するための入力変数として機器電力が使用される。上述のように、組織が潜在的に損傷を与える加熱にさらされる程度を最小限に抑えることは有益である。機器による電力の大きな出力が、送り速度FRが低減されない場合にエネルギーアプリケータ24の性能が低下する状態にマニピュレータ14が入っていることを示す状況もあり得る。例えば、バー25に大量の電力を印加する必要がある場合、この電力の増加は、バー25が除去すべき材料を除去するのが困難な状態に入っている可能性があることを示している場合がある。バー25が期待どおりに機能することを確実にするために、バー25の前進速度を下げることが有益である。これにより、材料を除去する精度を向上させることができる。組織除去の精度を向上させると、バー25を適用した後に残る組織の表面仕上げと表面鮮明度が向上する。したがって、ツール20及び/またはエネルギーアプリケータ24によって加えられる電力が増加しているという指示がある場合、送り速度計算機82は送り速度FRを低減する。
【0110】
ツール20が電動ツールである構造では、電力変数は、ツールモータによって出力されるトルクの量であってよい。一般に、ツール20に印加される電流とツール20によって出力されるトルクとの間に正比例関係がある。したがって、ツール20によって引き出される電流の尺度が、機器の電力変数として採用される。この変数を表す機器電力信号は、ツールコントローラ21によって生成され、マニピュレータコントローラ26に適用される。より具体的には、ツールコントローラ21の回路は、ツール20によって引き出される電流を監視し、ツール20によって引き出される電流を表す信号を出力することができる。この信号は、送り速度計算機82に適用されるアナログまたはデジタルのINST POWER信号のいずれかが生成されるルート信号である。送り速度計算機82は、INST POWER信号に基づいて、及びルックアップテーブル84の1つを参照することによって、送り速度FRを決定するために、機器電力に基づいて定義された送り速度をスケーリングすべき程度を示す係数を決定する。
【0111】
定義された送り速度を調整して送り速度FRを生成するための因子として使用できる第5の変数は、
図8に示すように、組織温度(TISSUE TEMP.)である。これは、患者の切断されない組織が加熱される程度を最小限に抑えるという、現代の外科手術の上記の目標によるものである。温度センサを利用して、組織温度(TISSUE TEMP)を示すことができる。温度センサは、ツール20に取り付けることができる。ここでも、温度センサによる信号出力は、組織の温度またはエネルギーアプリケータ24の温度を表し得る。温度センサによる信号出力は、ツールコントローラ21を介してマニピュレータコントローラ26にルーティングすることができる。切断されていない組織の温度に加えて、定義された送り速度を調整するための別の因子は、エネルギーアプリケータ24によって除去されたチップの温度を含み得る。除去されたチップ及び材料は、「スラリ」と呼ばれることが多い。スラリの温度は、温度センサを含む任意の適切な方法で測定されてよい。送り速度計算機82は、TISSUE TEMP信号によって表される温度に基づいて、及びルックアップテーブル84の1つを参照することによって、適切な組織温度送り速度調整係数を決定する。TISSUE TEMP信号が組織温度が許容範囲内にあることを示す場合、この係数は1.0またはそれに近くてよい。あるいは、組織またはエネルギーアプリケータ24の温度が組織に相当の損傷を与え得るレベルに近づいているか、またはそのレベルを超えていることをTISSUE TEMP信号が示す場合、取得された係数は、1から減少し得る。
【0112】
定義された送り速度を調整して送り速度FRを生成するために送り速度計算機82によって採用できる第6の変数は、
図8に示すように、計算された力(CMPTD FORCE)である。以下で説明するように、この計算された力は、仮想剛体に加えられる力である。この力に応答して、運動制御プロセスは、ツールパスTPに沿ってエネルギーアプリケータ24を前進させる。計算された力は、挙動制御プロセスソフトウェアモジュールの別の1つによって計算される。トルク成分を含むことができるこの計算された力は、エネルギーアプリケータ24の指令位置が決定される入力変数として機能する。送り速度計算機82は、計算された力と送り速度FRとの間に反比例関係が存在するように、送り速度FRを生成する。エネルギーアプリケータ24の前進を実施するために計算された力が増加される場合、送り速度計算機82は送り速度FRを低減する。送り速度FRのこの低減によって、エネルギーアプリケータ24の組織への適用の精度が悪影響を受ける速度を超える速度でマニピュレータがエネルギーアプリケータ24を前進させる可能性が減少する。一部のバージョンでは、送り速度計算機82は、計算された力の大きさとルックアップテーブル84の1つへの参照に基づいて、係数を決定する。この係数は、定義された送り速度が計算された力の大きさの関数としてスケーリングされるべき程度を表す。
【0113】
定義された送り速度を調整して送り速度FRを生成するために送り速度計算機82によって採用できる第7の変数は、
図8に示すように、仮想境界71の衝突(VB COLLISION)に基づくことができる。エネルギーアプリケータ24またはツール20が仮想境界71を超える場合、定義された送り速度FRを調整することができる。衝突は、複数の因子、イベント、または条件によって発生する可能性がある。一例では、衝突は、マニピュレータ14の指令された運動により(例えば、半自律モードまたは手動モード中に)発生する。例えば、手動モードでは、ユーザは入力された力をエンドエフェクタに加える場合があり、エンドエフェクタは、境界71を超える指令位置になる。さらに、または代わりに、衝突は、マニピュレータ14の外部の原因により発生する可能性がある。そのような原因は、患者の解剖学的構造、患者の動き、患者トラッカ(複数可)54、56の動きなどに対する変化であり得る。例えば、患者トラッカ(複数可)54、56のうちの1つまたは複数が、その現在位置から別の位置に移動する場合がある。患者トラッカ54、56(複数可)の動きは、患者の解剖学的構造の動きが原因の場合がある。患者の動きは、スタッフが患者の体位を変えたことが原因である場合もあれば、解剖学的構造との衝突が原因である場合もある。例えば、ロボットマニピュレータまたはエネルギーアプリケータ24は、患者の解剖学的構造と衝突し、患者の解剖学的構造を押す場合がある。他の例では、解剖学的構造の操作中、エネルギーアプリケータ24は、解剖学的構造を物理的に押す可能性がある。スタッフの不注意で解剖学的構造に衝突する場合がある。患者トラッカ(複数可)54、56の動きは、患者トラッカ(複数可)54、56が取り付けられている骨/解剖学的構造に対してであってよい。換言すれば、解剖学的構造への患者トラッカ(複数可)54、56の堅固な固定は、外れたり、ずれたり、緩んだりする可能性がある。一例では、患者トラッカ(複数可)54、56の動きは、患者トラッカ(複数可)54、56が取り付けられる対応する解剖学的構造に登録される仮想境界71の対応する動きを引き起こす。仮想境界71の動きは、マニピュレータ14またはエネルギーアプリケータ24と衝突する可能性がある。別の例では、患者トラッカ(複数可)54、56の動きにより、ツールパスTPまたはそのセグメントの再生成または更新を引き起こすことができる。エネルギーアプリケータ24が存在する再生成または更新されたツールパスTPまたはセグメントは、患者トラッカ(複数可)54、56の移動前に存在していた最後の送り速度と比較して、異なる定義された送り速度を有し得る。仮想境界71との衝突は、本明細書に記載するシナリオのいずれでも発生する場合があり、本明細書で具体的に記載していない他の条件に基づいて発生する場合もある。
【0114】
定義された送り速度FRは、任意の衝突条件に応答して調整することができる。調整は事前対応的または遡及的であってよく、送り速度FRは増加または減少させることができる。調整は、予防措置として(例えば、エネルギーアプリケータまたはツールの速度を落とすため)、または衝突の現在の/予想される影響を軽減するために行うことができる。送り速度FRを調整することで、衝突に抵抗したり、対応したり、回避したりできる。送り速度FRは、エネルギーアプリケータ24から離れるように移動する解剖学的構造に到達するために増加させることができ、または送り速度FRは、解剖学的構造がエネルギーアプリケータ24に向かって移動することに応答して低減することができる。エネルギーアプリケータ24/ツール20による仮想境界71の衝突に応答して送り速度FRを調整する他の方法が企図される。
【0115】
定義された送り速度を調整して送り速度FRを生成するために送り速度計算機82によって採用できる2つの追加の入力変数は、
図8に示すように、実際の望ましくない向きの運動(Actual UOM)及び予想される望ましくない向きの運動(Expected UOM)である。これらの入力は、後続のセクションで詳細に記載するが、運動連鎖KCの1つまたは複数の非ツールパス構成要素の実際のまたは予想される望ましくない向きの運動を決定、識別、または監視できる制御アルゴリズムによって提供される。望ましくない向きの運動の影響を軽減するために、これらの変数を入力して送り速度FRを能動的または事前対応的に変更することができる。望ましくない向きの運動を識別、計算、監視する技術については、次のセクションに記載する。
【0116】
送り速度計算機82は、定義された送り速度に上記の係数を乗算することができる。このプロセスの積は、エネルギーアプリケータ24が現在のパスセグメントに沿って前進すべき実際の速度である送り速度FRである。
【0117】
送り速度計算機82への追加の入力は、パスジェネレータ68の構成要素でもある力オーバーライドモジュール(
図8)からアサートされた信号であってよい。エネルギーアプリケータ24の半自律的な前進中に、外科医がツール20の位置を変えようとする条件が発生する場合がある。この行動をとるとき、施術者は不注意でペンダント88の引き金を放さない場合がある。このイベントが発生すると、ツール20をツールパスTPから遠ざけようとする施術者の試みに応答して、力/トルクセンサSは比較的高い力及びトルクにさらされる。これらの力とトルクは、力オーバーライドモジュールによって維持される力/トルクの上限を超える。力オーバーライドモジュールは、マニピュレータ14を上記の半自律モードから手動モードに移行させる信号を出力するように構成される。力オーバーライド装置はまた、力/トルクセンサSの出力を評価して、これらの力/トルクが、指定された期間よりも長い時間、上限値を超えたかどうかを判断する。上記の評価テストが真である場合、力オーバーライド装置は、機器電力生成ユニットの非アクティブ化をもたらすコマンドをアサートする。力オーバーライド装置は、エネルギーアプリケータ24の半自律的な前進を停止させるコマンドをアサートすることもできる。力オーバーライド装置からの信号のアサートに応答して、送り速度計算機82はゼロ速度の送り速度FRを出力する。多くの場合、送り速度計算機82は、機器をゼロ速度の送り速度にする。施術者からの他のコマンドの入力に基づいて、力オーバーライド装置が送り速度計算機82への信号のアサートを停止すると、送り速度計算機82は非ゼロ速度の送り速度FRの出力に戻る。
【0118】
パス補間器(PATH INTRPLTR)は、
図8に示されているように、パスジェネレータ68の別のサブモジュール構成要素である。パス補間器86は、エネルギーアプリケータ24の座標系の標的位置を決定する。エネルギーアプリケータ24の遠位端の姿勢は、エネルギーアプリケータ24の座標系に対して固定されていると理解される。これらの標的位置は、エネルギーアプリケータ24の遠位端がタスクを実行するために移動する点である。パス補間器86への入力は、パスセグメントPSの起点及び終点を定義するデータと、セグメントPSが直線か曲線か、曲線である場合は曲線の特性を示すデータとを含むが、これらに限定されない。パス補間器86への別の入力は、送り速度計算機82からの送り速度FRである。これは、送り速度計算機82によって決定されるように、機器がパスセグメントに沿って移動すべき速度である。上記の入力変数に基づいて、パス補間器86は、一実施態様による次のステップに従って、エネルギーアプリケータ24の遠位端の標的位置を決定する。すなわち、1)エネルギーアプリケータ24の座標系の起点が開始位置と仮定する。最初の位置は、エネルギーアプリケータ24が移動すべきパスセグメントPSに沿った位置である。エネルギーアプリケータ24がセグメントPSの始点にある場合、この点はエネルギーアプリケータ24の座標系の最初の位置である。最初の位置と標的位置はどちらも骨座標系の点である。2)送り速度FRに基づいて、エネルギーアプリケータ24が単一のタイムフレームでセグメントPSに沿って移動する距離が計算される。一部のバージョンでは、タイムフレームの期間は0.1~2ミリ秒である。3)最初の位置、計算された距離の長さ、及びセグメント終点の位置に基づいて、パス補間器86は、標的位置を定義するデータを生成する。標的位置を決定するために使用されるさらなる変数は、パスセグメントの特性(直線または曲線)、曲線の場合は、曲率半径を記述するツールパスジェネレータからのデータである。4)座標系EAPPがパスセグメントの終点に到達したと判断されるまで、ステップ1~3が繰り返される。セグメント原点から離れた第1の標的位置の計算後、各フレームで計算された標的位置は、次のフレームの標的位置の計算の基礎となる最初の位置として採用される。5)標的位置がパスセグメントPSの終点位置に等しくなると、パス補間器86は、ステップ1~4を繰り返して、新しいセグメントに沿って位置する標的位置のセットを生成する。
【0119】
単一フレームの期間中、エネルギーアプリケータ24が移動できる距離は、現在のセグメントの終点位置までの距離よりも長くなる場合がある。パス補間器86が、エネルギーアプリケータ24がこの状態にあると判断する場合、補間器は、エネルギーアプリケータ24が現在のパスセグメント終点にあると判断される時に開始する時点に対して、エネルギーアプリケータ24がそのフレームの端部の次のパスセグメントに沿った位置にあるべき場所を示すデータを生成する。
【0120】
施術者がツール20の半自律的な前進を開始する準備が整うと、施術者は、
図1に示されるように、リモコンまたはペンダント88を利用する。施術者は、ペンダント88のボタン90a、90bを押すことができる。一部のバージョンでは、ボタン90の押下に基づいて、1つまたは複数のコントローラが、送り速度FRのユーザ調整を表す係数を出力する。一部のバージョンでは、係数は0.0、0.25、0.40、0.70、または1.0である。これは、
図8に示すように、USER ADJUST入力として送り速度計算機82に適用される係数である。ペンダントボタン90aを押すたびに、送り速度係数が次の高いレベルまで再調整される。ペンダントボタン90bを押すたびに、送り速度係数が1レベル下がるように再調整される。1つまたは複数のコントローラは、ペンダント88を監視して、ボタン90のいずれかが押されているかどうかを判断する。機器の前進を開始するコマンドは、USER ADJUST係数を0より上にリセットするコマンドであってよい。
【0121】
すべてのバージョンにおいて、送り速度計算機82が常に変数の瞬時値に基づいて送り速度FRを計算する必要はない。一部のバージョンでは、これらの入力変数がフィルタリングされる場合がある。同様に、任意の変数が送り速度FRに影響を与える程度を確立するために、乗数として使用される係数を変更する理由があり得る。特定の変数の適用が遅らされる場合がある。係数の変化は、係数の大きさの変化の影響をブレンドイン/ブレンドアウトするためにフィルタリングまたは増減(ramp)されてよい。このフィルタリングまたはブレンディングにより、ツール20の前進が滑らかになる。機器の前進をこのように滑らかにすることで、機器の位置が急速に変化するためにマニピュレータが不安定になったり、標的位置をオーバーシュートしたりする可能性を低減し得る。任意の変数の影響は、選択的に無視されてよい。例えば、最小または最大の係数のいずれかに基づいて送り速度FRを生成し、他の係数を無視することが望ましい場合がある。
【0122】
一部のバージョンでは、送り速度計算機82への2つ以上の変数が組み合わされてよい。この組み合わせは、加算、乗算、平均、または除算によって行われてよい。同様に、計算された係数を加算、乗算、平均、または除算して、定義された送り速度に基づいて送り速度FRを確立するために使用される最終係数を提供し得る。同様に、係数が変数対係数送り速度表のみに基づいて決定され得るという要件はない。これらの係数を決定する他の手段は、変数を式への入力変数として使用することに基づいており、その結果は送り速度FRを確立するために使用される係数である。方程式は、多項方程式または非線形方程式であってよい。
【0123】
同様に、機器の電流引き込み以外のデータは、機器の電力の指標として機能する送り速度計算機82によるデータとして使用されてよい。これらのデータは、一定の出力を維持するために機器に印加する必要がある電圧またはデューティサイクルを含む。この出力は速さまたは温度であってよい。閉ループのエネルギー出力デバイスの場合、出力の測定値は、機器の電力の指標として機能し得る。より具体的には、出力の低下は、機器の電力の変化の指標として機能し得る。例えば、検知されたパラメータがモータ速度である場合、速度の低下は、機器の電力需要が増加したことを示す。電力需要が変化したというこの推論的指示に基づいて、送り速度計算機82に適用されるINST POWER係数が調整される。
【0124】
III.運動連鎖の非ツールパス構成要素の望ましくない向きの動きを考慮するように送り速度を変更する技術
【0125】
前のセクションに記載したように、送り速度FRは、様々な条件及び/または変数に基づいて設定及び変更することができる。このセクションに記載するように、運動連鎖KCの非ツールパス構成要素の望ましくない向きの運動を考慮するように送り速度FRを動的に変更することができる。ここで、非ツールパス構成要素は、マニピュレータ14、ベース16、リンク18、関節J、エンドエフェクタ22、ツールシャフト33(該当する場合)、取り付けシステム、及び/または無菌界面機構など、ツールパスTP上に無い(離れて位置する)運動連鎖KCの構成要素を表すために使用される用語である。換言すれば、非ツールパス構成要素は、ツールパスTP上に位置するエネルギーアプリケータ24を除く運動連鎖KCの任意の構成要素を含む。軽減されるべき望ましくない向きの運動は運動連鎖KCの非ツールパス構成要素のものであるため、エネルギーアプリケータ24が前進しているツールパスTPのセグメントPSが線形であるときでさえ、望ましくない向きの運動を考慮する送り速度FRの変更は生じ得る。以下に記載するように、望ましくない向きの運動の存在または予想される存在に影響を与える様々な状況があり、そのような状況は、軽減時にツールパスTPが直線であるか曲線であるかに関係なく、存在する可能性がある。
【0126】
1つまたは複数のコントローラ26、68、82は、エネルギーアプリケータ24以外の運動連鎖KCの1つまたは複数の構成要素(運動連鎖KCの非ツールパス構成要素)が望ましくない向きの運動を経験しているまたは経験するであろうことを識別するように構成される。換言すれば、1つまたは複数のコントローラ26、68、82は、望ましくない向きの運動が能動的に及び現在発生しているまたは発生することが予想されると判断することができる。いずれのシナリオでも、1つまたは複数のコントローラ26、68、82は、それに応じて、望ましくない向きの運動を考慮するようにエネルギーアプリケータ24の送り速度FRを変更する。
【0127】
A.望ましくない向きの運動と影響
【0128】
運動の向きに関する「望ましくない」という用語は、そのような運動が、意図的なものであるか否かに関わらず、システム性能またはユーザ体験に関する理由で望ましくないため、システム10によって除去または軽減されるべきであるとシステム10が判断または識別するように構成される非ツールパスの運動学的運動を説明する。運動に関する「向き」という用語は、事実上は角度、例えば非ツールパス構成要素の回転運動として理解することができる。向きの運動は、円形のパスに沿ってよいが、必ずしもそうである必要はない。代わりに、望ましくない向きの運動は、2次元または3次元の任意の曲線パスに沿った運動であり得る。ここで、「パス」は、運動連鎖KCの非ツールパス構成要素がたどる動きのパスを説明するだけであり、運動の事前定義されたパスを必ずしも意味するわけではない(が、含み得る)。向きに関する「運動」という用語は、エネルギーアプリケータ24以外の運動連鎖KCの任意の1つまたは複数の構成要素によって経験されるまたは経験されるであろう角速度、角加速度、または角躍度のうちの1つまたは複数の望ましくないものとして定義することができる。「運動」という用語は、非ツールパス構成要素の静的位置または変位を除外するが、代わりに、時間の経過に伴う位置の変化率、またはその任意の導関数を含む。
【0129】
本明細書に記載の非ツールパス構成要素はエネルギーアプリケータ24を除外するので、本明細書に記載の望ましくない向きの運動は、切断軸を中心とした切断バー25の回転など、エネルギーアプリケータ24の回転を明示的に除外する。向きの運動は、運動連鎖KCの非ツールパス構成要素の直線運動を除外する。向きの運動はまた、少なくとも何らかの向きによって命令される運動(例えば、x、y、z軸を中心とした回転)と比較して、厳密に位置(x、y、z)によって命令される運動を除外する。この向きの運動は、位置指令運動に追加することも、除外することもできる。例えば、指令位置CPは、ツールパスTPに対するTCPの(x、y、z)位置を定義し、向きの姿勢は逆運動学解によって決定されるため、非ツールパス構成要素の向きの姿勢も動きも定義しない。したがって、ツールパスTPに沿ったエネルギーアプリケータ24の指令された位置決めは、パスセグメントPSが直線であるか曲線であるかに関係なく、所望の位置運動であり、望ましくない向きの運動ではない。
【0130】
望ましくない向きの運動を考慮するということは、一部の実施態様では、望ましくない向きの運動の影響を軽減するように送り速度FRが変更されることを意味する。例えば、望ましくない向きの運動は、エネルギーアプリケータ24以外の運動連鎖KCの1つまたは複数の構成要素に急激な回転運動をさせる可能性がある。場合によっては、急激な回転動作により、非ツールパス構成要素と別の物体との間で意図しない衝突が発生する可能性が増加し得る。送り速度FRを変更することにより、望ましくない向きの運動を軽減すると、このような衝突の可能性を減らすことができる。さらに、非ツールパス構成要素の急激な回転運動は、マニピュレータ14の意図しない振動を引き起こす可能性があり、これにより、ツールパスTPまたは手術部位に対するエネルギーアプリケータ24の指令位置が不正確になる可能性がある。送り速度FRを変更することにより、望ましくない向きの運動を軽減すると、このような不正確さの可能性を減らすことができる。さらに、急激な回転運動は、視覚的に問題があるように施術者に見える場合がある。送り速度FRを変更することで、望ましくない向きの運動を軽減することで、非ツールパス構成要素の運動がより滑らかで一貫したものになり、ユーザ体験が向上する。
【0131】
B.望ましくない向きの運動を考慮するように送り速度を変更
【0132】
望ましくない向きの運動を考慮するように送り速度FRを変更することは、1つまたは複数のコントローラ26、68、82が、前のセクションに記載したように、実際の送り速度FRまたは定義された送り速度を変更することによって生じ得る。
図8の変数(実際のUOM)及び(予想されるUOM)は、パス補間器86に送り速度FRを出力するために、他の変数のいずれかと共に送り速度計算機82に直接入力することができる。
【0133】
別の実施態様では、変数(実際のUOM)及び(予想されるUOM)からの入力は、送り速度計算機82を迂回し、代わりにパス補間器86に入力され、それによって、
図8の破線で示されるように、送り速度計算機82によって出力される送り速度をオーバーライドすることができる。このオーバーライドは、他の送り速度変数が別のように指示する可能性がある状況などで、望ましくない向きの運動が軽減されることを保証するのに有益な場合がある。望ましくない向きの運動が識別された場合、そのような送り速度のオーバーライドは、デフォルト設定または特定の状況のための例外であってよい。1つまたは複数のコントローラ26、68、82は、望ましくない向きの運動に関する閾値(例えば、大きさ、方向、期間)を超えること、外科的処置の段階、望ましくない向きの運動の許容範囲に関する外科医の好み、望ましくない向きの運動を引き起こし得る任意の条件の存在の識別(
図14に示す)、ツールパスTPもしくはセグメントに関連する任意の因子、送り速度計算機82によって出力される送り速度の値、または送り速度の計算に使用される上記の変数のうちのいずれかの入力値などであるが、これらに限定されない任意の適切な基準または条件に基づいて、送り速度オーバーライド条件が存在する場合を判断することができる。
【0134】
一部の実施態様では、1つまたは複数のコントローラ26、68、82は、ツール20及びエネルギーアプリケータ24を仮想剛体としてモデル化し、仮想剛体に加えられた仮想力に基づいて、望ましくない向きの運動を考慮するように送り速度FRを変更するように構成される。そのため、望ましくない向きの運動に関連するパラメータ、または変数(実際のUOM)及び(予想UOM)からの入力は、上記の計算された力(CMPTD FORCE)変数であり得る仮想力に含めることができる。
【0135】
一部の実施態様では、1つまたは複数のコントローラ26、68、82は、送り速度FRを低減するようにさらに構成されることによって、望ましくない向きの運動を考慮するように送り速度FRを変更する。一例では、送り速度FRは、エネルギーアプリケータ24以外の運動連鎖KCの1つまたは複数の構成要素によって経験されるまたは経験されるであろう望ましくない向きの運動の大きさ及び/または方向に相関する因子によって低減される。一部の実施態様では、変更された送り速度FRは、送り速度の変更前に存在していた送り速度の速度よりも小さい非ゼロ速度である。換言すれば、既存の送り速度FRは、望ましくない向きの運動を軽減するように低減することができる。変更または低減は、漸進的または衝動的であってよく、望ましくない向きの運動を軽減するために必要な1つまたは複数のコントローラ26、68、82によって決定される持続時間など、任意の持続時間にわたって、または任意の持続時間の間、発生する可能性がある。
【0136】
場合によっては、1つまたは複数のコントローラ26、68、82は、追加でまたは代わりに、送り速度FRを増加させるか、増加することになっていた既存の/所定の送り速度FRを意図的に維持することによって、望ましくない向きの運動を軽減することができる。例えば、1つまたは複数のコントローラ26、68、82は、送り速度FRを急速に低減し、次に送り速度FRを増加させて、望ましくない向きの運動を軽減し得る。
【0137】
運動連鎖KCの非ツールパス構成要素の望ましくない向きの運動の一例を、
図10及び11に示す。この例では、望ましくない向きの運動を経験する運動連鎖KCの非ツールパス構成要素は、ツール20のシャフト33と、マニピュレータ14の1つの関節Jである。
図10では、エネルギーアプリケータ24は、指令位置CP1とCP2との間の曲線パスセグメントPS1に沿って進められる。この運動中、1つまたは複数のコントローラ26、68、82は、ツールシャフト33及び関節J6が、送り速度FR1に従った前進の結果として望ましくない向きの運動UOM1を経験するまたは経験するであろうことを識別または予測する。関節J6とツールシャフト33の状態は、タイムステップT1では破線で、その後のタイムステップT2では実線で表されている。望ましくない向きの運動UOM1は、T1とT2の間で、ツールシャフト33及び関節J6の突然の回転(矢印で示される)をもたらす。一例では、ツールシャフト33及び関節Jの望ましくない向きの運動UOM1は、構成要素のそれぞれの以前の位置に対する、及び/またはマニピュレータ14の任意の他の構成要素に対する、シャフト33及び関節Jの角運動を評価することを含む、本明細書に記載の方法のいずれかを使用して、決定することができる。エネルギーアプリケータ24、ツールパスTP及び/または指令位置PSなどの望ましくない向きの運動を経験する場合も経験しない場合もあるデータム基準に対して、望ましくない向きの運動を識別することもできる。
【0138】
図11において、望ましくない向きの運動を軽減するために、1つまたは複数のコントローラ26、68、82は、送り速度FR1を異なる送り速度FR2に変更する。
図11において、ツールシャフト33の状態は、タイムステップT2において破線で表され、その後のタイムステップT3において実線で表される。送り速度FR2は、エネルギーアプリケータ24が同じパスセグメントPS1を横切る間に変更される。送り速度をFR2に意図的に変更すると、指令位置CP2に到達する前に、ツールシャフト33と関節J6の両方の望ましくない向きの運動UOM2が低減または排除される。
【0139】
図10及び11の前の例では、送り速度FRは、エネルギーアプリケータ24が1つのパスセグメントPSを横断するプロセスで望ましくない向きの運動UOMを考慮するように変更された。
図12及び13において、エネルギーアプリケータがパスセグメントPS1の横断を完了し、次の指令位置CP2に到達した後、送り速度FRを変更することによって、望ましくない向きの運動UOMを軽減する別の例が示されている。換言すれば、望ましくない向きの運動は、CP1とCP2との間のパスセグメントPS1で発生するが、FR1からFR2への送り速度の変更により、CP2とCP3の間の次のパスセグメントで軽減される。次の指令位置CPNは、送り速度FRを変更する前または変更した後に決定されてよい。
【0140】
これらの例は、望ましくない向きの運動が発生した後に発生する送り速度FRの反応調整を示している。望ましくない向きの運動を考慮するような送り速度FRの修正は、あるいは予測的であってよく、そうすると、運動連鎖KCの非ツールパス構成要素は、システム10が事前対応的に望ましくない向きの運動を軽減するので、望ましくない向きの運動を経験(または完全には経験)しない。
【0141】
C.望ましくない向きの運動-影響因子と例
【0142】
図14を参照すると、望ましくない向きの運動(UOMで示される)は、1つまたは複数の現在または予想される外部条件、シナリオ、または行動に応じて、それらの間に、またはそれらに基づいて、発生する、または発生することが予想される。このような因子は、マニピュレータ14自体、手術環境、またはユーザが原因で発生する可能性がある。個別に、または組み合わせで、そのような条件、シナリオ、または行動は、望ましくない向きの運動の存在または予想される存在に影響を与える直接的または間接的な因子であり得る。
【0143】
一実施態様では、現在または予想される任意の外部条件、シナリオ、または行動について、
図14の100に示すように、半自律モードでエネルギーアプリケータ24を前進させる間に、望ましくない向きの運動が発生するまたは発生することが予想される。これは、システム10が通常、半自律モードで制御された送り速度を実施して、エネルギーアプリケータ24をツールパスTPに沿って移動させるという理解に基づいている。手動モードなどの他の動作モードで、望ましくない向きの運動が発生する可能性がある。例えば、マニピュレータ14及び/またはエンドエフェクタ22は、ユーザが、例えば挿入軸に沿ってツールの送り速度を手動で制御できるようにする送り速度コントローラインタフェースまたはペンダントを備えることができる。このようなシナリオでは、ユーザが手動モードなどで送り速度を手動で制御する場合でも、望ましくない向きの運動が発生し得る。手動送り速度制御の一例は、「Robotic Surgical System and Methods Utilizing a Cutting Bur for Bone Penetration and Cannulation」と題する米国特許出願公開第2020/0289133A1号に記載されており、その内容は参照によりその全体が本明細書に組み込まれる。
【0144】
i.決定された送り速度と変数
【0145】
望ましくない向きの運動の存在または予想される存在に影響を与える可能性のある1つの因子は、送り速度FR、または
図14の104で示される送り速度FRの計算に使用される変数に従ったエネルギーアプリケータ24の前進であり、これは、前のセクションに記載したとおりである。このシナリオでは、1つまたは複数のコントローラ26、68、82は、エネルギーアプリケータ24を、送り速度FRに従ってツールパスTPに沿って指令位置CPまで前進させる。この送り速度の前進により、逆運動学的解が、運動連鎖KCの非ツールパス構成要素の1つまたは複数に望ましくない向きの運動を経験させる可能性があると考えられる。望ましくない向きの運動の存在または予想される存在は、例えば、ペンダント88を使用することによる送り速度FRに対するユーザ調整106(USER ADJUST)、パス曲率108(PATH CRVTR)、組織温度110(TISSUE TEMP)、機器電力112(INST.POWER)、及び/または仮想境界113との衝突(VB COLLISION)のいずれかによって、そのような送り速度調整係数が非ツールパス構成要素の向きの運動に影響を与えるという理解に基づいて、影響を受ける可能性がある。
図10及び11ならびに
図12及び13に示す例は、それぞれ、送り速度FRまたは送り速度FRの計算に利用される変数に従ったエネルギーアプリケータ24の前進に基づいて発生する望ましくない向きの運動を示すと見なすことができる。
【0146】
ii.制約
【0147】
望ましくない向きの運動の存在または予想される存在に影響を与える可能性のある別の因子は、システム10上またはシステム10の制約(114で示される)である。そのような制約は、運動連鎖KCの任意の構成要素に関連する機械的制約及び/または仮想制約であってよい。これらの制約は、個別に、または組み合わせで、望ましくない向きの運動に影響を与える可能性がある。
【0148】
望ましくない向きの運動の存在または予想される存在に影響を与える可能性のある1つの制約は、
図14の116で示される作業空間制限という制約である。マニピュレータコントローラ26によって実行される運動制御プロセスの一部として、エネルギーアプリケータ24が画定された作業空間の境界に到達しているかどうかを判断するために、作業空間制限が評価される。この作業空間制限は、座標系MNPLの原点から離れており、この座標系を参照して定義される。作業空間は、リンク18がそれらの運動範囲を完全伸展したところまで移動することができる場合、エネルギーアプリケータ24が移動することができる容積内である。この作業空間は、「器用な作業空間」と呼ばれることもあり、マニピュレータ14は、エネルギーアプリケータ24がこの作業空間外に前進することを妨げる。作業空間制限は、任意の形状を有してよく、例えば、施術者がエンドエフェクタ22の向きをそのように変更する少なくともある程度の能力を確実に有するように、通常、マニピュレータ14の運動の全範囲内の空間の容積よりも小さい。この作業空間制限を尊重するプロセスにおいて、運動連鎖KCの非ツールパス構成要素の1つまたは複数が、修正のための向き変更によって望ましくない向きの運動を経験することが考えられる。
【0149】
望ましくない向きの運動の存在または予想される存在に影響を与える可能性のある別の制約は、
図14の118で示される干渉限界制約である。ここで、マニピュレータコントローラ26は、マニピュレータ14を制御して、リンク18間、またはマニピュレータ14の任意の構造部材間の衝突を回避する。これらの衝突を防止する理由の1つは、リンク18間にピンチポイントが形成される可能性があるリンク18の相対的な動きを防止することである。これらの衝突を防ぐことで、そのような衝突による損傷も回避する。実際の関節角度の表現に基づいて、マニピュレータコントローラ26は、衝突する可能性のあるリンク18の対の間の最小距離を決定する。この決定を行うために、マニピュレータコントローラ26は、順運動学データを使用して、関節Jの姿勢、ならびに衝突する可能性のあるリンク18の対の間の共通の法線距離及び最小距離を決定することができる。マニピュレータコントローラ26は、衝突する可能性のあるリンク18の対の最小距離とリンク18の対の境界距離との間の差を計算する。この境界距離は、それ以下ではリンク18が互いに向かって移動することが望ましくない距離である。この干渉限界を尊重するプロセスにおいて、運動連鎖KCの非ツールパス構成要素の1つまたは複数が、修正のための向き変更によって望ましくない向きの運動を経験することが考えられる。
【0150】
望ましくない向きの運動の存在または予想される存在に影響を与える可能性のある別の制約は、特異点回避に関連する制約であり、これも
図14の118に示されている。特異点とは、2つ以上のロボットリンクまたは関節Jが同一線上に配置されているために発生する状態であり、ロボットの運動や速度が予測不能になる。軸または関節Jが特異点に配置されている場合、TCPの同じ位置を達成するための逆運動学の方法が無数にある。この状態を回避するために、マニピュレータコントローラ26は、多くの制御技術のうちの1つを実施することができる。一例では、上述の干渉限界を実施することができる。別の例では、ロボットの組み立てまたはキャリブレーション中に特異点分析を実行することができる。分析は、マニピュレータコントローラ26に記憶される特異点回避データを生み出すことができる。接近する特異点に応答して、マニピュレータコントローラ26は、特定の関節Jを特異なまっすぐな姿勢から事前対応的に回転させるなどの修正行動を取るようにマニピュレータ14に命令することができる。TCP位置を変更せずに関節Jを動かすことができるゼロ空間内で関節Jの位置を変更することによっても、修正行動を実行することができる。エンドエフェクタ22の軌道または向きもまた、特異点を回避するために修正することができる。特異点を回避するプロセスにおいて、運動連鎖KCの非ツールパス構成要素の1つまたは複数が、修正行動によって望ましくない向きの運動を経験することが考えられる。
【0151】
望ましくない向きの運動の存在または予想される存在に影響を与える可能性のある別の制約は、
図14の120で示される仮想制約である。例えば、仮想制約は、境界ジェネレータ66によって実施することができ、境界ジェネレータ66は、ツール20、エネルギーアプリケータ24、及び/またはマニピュレータ14の動き及び/または動作を制約するために、例えば、仮想物体または境界71を画定し得る。前のセクションに記載したように、このような仮想境界71は、3D骨モデルなどの解剖学的モデルAMに対して画定されてよい。マニピュレータコントローラ26及び/またはナビゲーションコントローラ36は、仮想境界71に関連するツール20の状態を追跡する。一例では、TCPの状態は、各運動構成要素が仮想境界71に対して望ましい位置関係にある(例えば、仮想境界を越えて移動しない)ように、仮想シミュレーションを介して仮想剛体モデルに加えられる触覚力を決定する目的で、仮想境界71に対して測定される。仮想シミュレーションの結果は、マニピュレータ14に命令される。このような仮想境界71を尊重するプロセスにおいて、運動連鎖KCの非ツールパス構成要素の1つまたは複数が、修正のための触覚力または反力によって望ましくない向きの運動を経験することが考えられる。
【0152】
図15及び16は、制約衝突からの修正のための触覚力または反力によって望ましくない運動を経験する運動連鎖KCの非ツールパス構成要素の例を示す。より具体的には、この例では、非ツールパス構成要素は、ツール20のシャフト33であり、制約は仮想境界71である。この例における仮想境界71は、解剖学的モデルAMと関連付けることができ、例えば全股関節手術のための大腿骨骨幹軸と関連付けることができる。仮想境界71は、除去されるべきではない大腿骨の領域から、エネルギーアプリケータ24を用いたミリングによって除去される大腿骨骨幹軸の体積を描いたものである。エネルギーアプリケータ24は、仮想境界71内でツールパスTPをたどる。具体的には、エネルギーアプリケータ24は、第1の送り速度FR1に従ってツールパスTPに沿って進められる。
【0153】
1つまたは複数のコントローラ26、68、82は、1つまたは複数の仮想触覚物体VOを、運動連鎖KCの1つまたは複数の構成要素に対して関連付けることができる。この例では、仮想触覚物体VOはシャフト33に関連付けられているが、運動連鎖KCの任意の他の構成要素に関連付けることができる。仮想触覚物体VOは、シャフト33上に視覚的及び物理的に存在するのではなく、仮想的である、すなわち、シャフト33の形状に計算的に関連付けられる。
【0154】
一部の実施態様では、1つまたは複数のコントローラ26、68、82は、第1の構成要素上の第1の位置で、運動連鎖KCの第1の構成要素に対して第1の仮想触覚物体VOを関連付けることができる。1つまたは複数のコントローラ26、68、82はまた、第1の位置から離れた第1の構成要素上の第2の位置で、運動連鎖KCの第1の構成要素に対して第2の仮想触覚物体VOを関連付けてよい。仮想触覚物体VOは、1つまたは複数のリンク18、関節J、ベース16、エンドエフェクタ22、シャフト33等に対してなど、運動連鎖KCの任意の構成要素上に位置することができる。一例では、
図15に示すように、仮想触覚物体VOは、シャフト33の近位端の近くに配置される。これは、シャフト33の望ましくない向きの運動の可能性が、エネルギーアプリケータ24が位置しているシャフト33の遠位端よりもシャフト33の近位端の近くで大きいからである。
【0155】
図15に示すように、1つまたは複数のコントローラ26、68、82は、1つまたは複数の仮想触覚物体VOと仮想境界71との衝突を検出することができる。一実施態様では、衝突検出は、上述のように、ナビゲーションシステムによる解剖学的構造及びツール20の追跡に基づくことができる。衝突の大きさ及び/または方向は、仮想触覚物体(複数可)VOと仮想境界71のメッシュの多角形要素との交点に基づいて、仮想触覚物体の境界71への侵入の深さなどの任意の適切な技術を使用して検出及び測定することができる。あるいは、衝突は、「Robotic Surgical System and Method for Producing Reactive Forces to Implement Virtual Boundaries」と題される米国特許出願公開第2018/0353253A1号に記載される射影弧または射影面積法を使用するなどして、メッシュ多角形要素の幾何学的形状に対する仮想体積境界の幾何学的形状の関数である侵入因子に基づいて計算することができる。この出願公開の内容は参照により本明細書に組み込まれる。衝突に応答して、1つまたは複数のコントローラ26、68、82は、シャフト33が仮想境界71を超えることを抑制するようにマニピュレータ14を制御する。具体的には、計算された衝突の大きさ及び/または方向に基づく反力RFが、マニピュレータ14に命令される。反力RF及びそのそれぞれの方向は、衝突位置の近くの矢印によって
図15に示されている。
【0156】
図16において、例は、衝突を回避/軽減するための反力RFに従ったマニピュレータ14の命令された運動が、シャフト33の望ましくない向きの運動UOMを引き起こすことを示している。この場合も、1つまたは複数のコントローラ26、68、82は、シャフト33が望ましくない向きの運動UOMを現在経験しているまたは経験するであろうことを識別することができる。1つまたは複数のコントローラ26、68、82は、衝突の検出に応答してシャフト33を抑制することに応じて発生する望ましくない向きの運動UOMを考慮するように送り速度をFR1からFR2に変更する。
【0157】
図15及び16に示す例は、運動連鎖KCの非ツールパス構成要素が制約による望ましくない向きの運動をどのように経験するか、または1つまたは複数のコントローラ26、68、82がそのような望ましくない向きの運動をどのように考慮できるかに関して、記載した範囲に限定することを意図していない。例えば、シャフト33以外の非ツールパス構成要素は、上述のものなど、任意の種類の制約を受ける可能性がある。制約はまた、仮想触覚物体VOなどとの衝突を必ずしも必要とすることはなく、代わりに、運動制限の計算制御に基づく場合がある。例えば、シャフト33は、仮想触覚物体VOが存在しない状態で仮想境界71と衝突することがある。1つまたは複数のコントローラ26、68、82は、シャフト33の既知の物理的形状のモデルに基づいて衝突を検出することができる。
【0158】
iii.ツールの向き変更
【0159】
望ましくない向きの運動の存在または予想される存在に影響を与える可能性のある別の因子は、
図14の122で示される、手術ツール20及び/またはエンドエフェクタ22の向き変更である。このような向き変更は、ツールパスTPに沿ったエネルギーアプリケータ24の前進中に生じ得るか、またはエネルギーアプリケータ24が静止しているときに生じ得る。
【0160】
一例では、手術ツール20及び/またはエンドエフェクタ22の向き変更は、システム10によって開始することができる。例えば、124で示すように、向き変更は、マニピュレータコントローラ26によって実行される自動の向き変更であってよい。一例における自動の向き変更は、外科手術の所与のシナリオ、条件、または段階に対して最適または好ましいとシステム10によって決定された好ましい向きへの向き変更であってよい。エネルギーアプリケータ24がTPに沿って前進する場合、自動の向き変更は、手術部位に接近するためのシステム設定、及び/または手術部位の近くの障害物によって手術ツール20及び/またはエネルギーアプリケータ24に加えられる向き変更による力及びトルクに応答して生じる可能性がある。実際には、パスセグメントPSに沿ったエネルギーアプリケータ24の前進を妨げる障害物が存在する場合がある。この障害物は、突き出た組織または手術ツール機器であり得る。障害物がエネルギーアプリケータ24の前進を妨げるのを防止するために、ツール20は、異なる向き、または通常の向きの範囲外の向きをとることが必要な場合がある。
【0161】
一実施態様において、自動の向き変更は以下のように実施することができる。ツール20の実際の姿勢を知ることによって、マニピュレータコントローラ26の向き調整器は、エネルギーアプリケータ24の上(例えば、5~20cm上)に位置する基準面(例えば、平面)を定義することができ、基準面は、ツール20の縦軸に対して垂直である。次に、向き調整器は、ツール20の縦軸が基準面と交差する点を中心とする基準面内の開口(例えば、円)を画定する。開口は、ツール20の通常の向きの制限を画定することができる。向き調整器は、ツール20の向きが動いたこと、または開口制限内もしくは開口制限を超える姿勢に移動する必要があり得ると判断する場合がある。これに応答して、マニピュレータコントローラ26は、開口内でまたは開口を超えてツールの向きを変更するような力をマニピュレータ14に命令することができる。自動の向き変更を実施するプロセスにおいて、運動連鎖KCの非ツールパス構成要素の1つまたは複数が、望ましくない向きの運動を経験することが考えられる。
【0162】
別の例では、手術ツール20及び/またはエンドエフェクタ22の向き変更は、
図14の126で示されるように、ユーザによって開始することができる。一例では、施術者は、エネルギーアプリケータ24がツールパスTPに沿って進められている間に、ツール20の向きのリセットを決定してよい。ツールパスTPの近くにある可能性がある組織または別の機器との接触を回避するように、ツール20をそのように向き変更することが望ましい場合がある。施術者がツール20の向きを変えたい場合、エンドエフェクタ22で入力を作動させる。あるいは、施術者は、コマンドを入力せずに、力によってツール20の向き変更の実施を試みてもよい。マニピュレータコントローラ26は、例えば、ユーザ入力の持続時間を監視することによって、または力/トルクセンサSによって検出された力に基づいて、このユーザ入力を監視することができる。いずれの場合でも、マニピュレータコントローラ26は、対応するユーザ入力をエミュレートする方法で、ツール20の向きを変えるようにマニピュレータ14に命令することができる。手動の向き変更を実施するプロセスにおいて、運動連鎖KCの非ツールパス構成要素の1つまたは複数が、望ましくない向きの運動を経験することが考えられる。ツールの向き変更の自動または手動のロボット制御の例は、「Surgical Manipulator Capable of Controlling a Surgical Instrument in Multiple Modes」と題する米国特許番号第9,119,655号、及び「System and Method of Controlling a Surgical Tool During Autonomous Movement of the Surgical Tool」と題する米国特許番号第9,937,014号に記載されたものと類似していてよく、それらのそれぞれの開示は、参照により本明細書に組み込まれる。
【0163】
図17及び18は、マニピュレータ14、より具体的にはツール20の向き変更に応答して望ましくない向きの運動を経験する運動連鎖KCの非ツールパス構成要素の例を示す。より具体的には、この例における向き変更は、施術者が遠位関節(J)に(図示のように)力を加えることによって、またはエンドエフェクタ22(図示せず)に対するユーザ入力を作動させることによって開始することができる。
図17に示す向き変更行動の間、エネルギーアプリケータ24は、第1の送り速度FR1に従ってツールパスTPに沿って進められる。
図17において、例は、向き変更コマンドに従ったマニピュレータ14の運動が、シャフト33及び関節Jの望ましくない向きの運動UOMを引き起こすことを示している。ここでも、1つまたは複数のコントローラ26、68、82は望ましくない向きの運動UOMを現在経験しているまたは経験するであろうことを識別することができる。1つまたは複数のコントローラ26、68、82は、向き変更に応答して発生する望ましくない向きの運動UOMを考慮するように送り速度をFR1からFR2に変更する。
【0164】
図16及び17に示す例は、運動連鎖KCの非ツールパス構成要素が向きの変更によって望ましくない向きの運動をどのように経験するか、または1つまたは複数のコントローラ26、68、82がそのような望ましくない向きの運動をどのように考慮できるかに関して、記載した範囲に限定することを意図していない。
【0165】
iv.外力
【0166】
望ましくない向きの運動の存在または予想される存在に影響を与える可能性のあるさらなる別の因子は、
図14の122で示される外力またはトルクである。このような外力は、ツールパスTPに沿ったエネルギーアプリケータ24の前進中に生じ得るか、またはエネルギーアプリケータ24が静止しているときに生じ得る。これらの外力及びトルクは、ツール20の前進に対する組織の抵抗、及び例えば施術者もしくは環境によって運動連鎖KCの任意の1つまたは複数の構成要素に加えられる外力及びトルクを含み得る。運動制御モジュールは、マニピュレータ14の状態を監視して、マニピュレータ14またはツール20に外力/トルクが加えられているか、または物体が接触しているかどうかを検出することができる。
【0167】
望ましくない向きの運動の存在または予想される存在に影響を与える可能性のある外力/トルクの一例は、130で示される、ツール20に加えられる外力/トルクである。一例では、この外力/トルクは、上述のように、また
図17及び18に示されるように、施術者が力またはユーザ入力によってツール20を手動で向き変更することによってツール20に加えられる。このような外力は、力/トルクセンサSによって検出することができる。マニピュレータコントローラ26はまた、力/トルクセンサSによって検知された力とトルクを表す信号を監視して、過剰な外力がツール20またはエネルギーアプリケータ24に加えられているかどうかを判断することができる。エネルギーアプリケータ24が適用される組織の通常の抵抗の結果として、ツール20の前進に対していくらかの抵抗がある。ツール20の半自律的な前進中、力/トルクセンサSは、組織抵抗の適用に応答して、センサがかなりの制限を超えるレベルの力及びトルクにさらされていることを示す信号を出力し得る。マニピュレータ14にツール20に対する外力/トルクを考慮するように命令するプロセスにおいて、運動連鎖KCの非ツールパス構成要素の1つまたは複数が望ましくない向きの運動を経験することが考えられる。
【0168】
外力/トルクの別の例は、132で示されるマニピュレータ14のバックドライブである。バックドライブトルクは、マニピュレータ14、ツール20及び/またはエネルギーアプリケータ24にかかる外力及びトルクに応答して、関節モータ27によって出力される。バックドライブトルクは、慣性及び重力に打ち勝つのに必要なトルクを超える関節モータ27によって出力されるトルクである。マニピュレータ14、ツール20、及び/またはエネルギーアプリケータ24が外力及びトルクを受けると、これらの力及びトルクは、命令された姿勢へのツール20の前進を一時的に妨害する。これにより、関節Jのうちの1つまたは複数のそれらの命令された関節角度への前進が一時的に妨害される。外力及びトルクが加えられるのと同時に、制御ループは、関節モータ27によって出力されるトルクを調整して、これらの外力及びトルクを補償する。バックドライブトルクを計算するために、マニピュレータコントローラ26は、外力及びトルクが存在しない場合に関節モータ27が出力すべきトルクを決定することができる。マニピュレータコントローラ26は、エンコーダから測定された関節角度、及び順運動学分析から計算された関節角度を利用することができる。バックドライブトルクを決定することができるさらなる変数は、関節モータ27がリンク18に加えて、ツール20、ひいてはエネルギーアプリケータ24を命令された姿勢に向かって前進させる実際のトルクである。実際のトルクを得る1つの方法は、関節モータ27、より正確には減速ギアによって出力されるトルクを測定することである。別の方法は、トルクセンサまたは関節モータ27の消費電流を測定するセンサによって測定される関節モータ27が出力するトルクを監視することである。バックドライブ力を考慮するようにマニピュレータ14を制御するプロセスにおいて、運動連鎖KCの非ツールパス構成要素の1つまたは複数が望ましくない向きの運動を経験することが考えられる。ロボットマニピュレータのバックドライブ制御の例は、「Robotic System and Method for Backdriving the Same」と題する米国特許第10,327,849号に記載されているものと同様であり、その開示は参照により本明細書に組み込まれる。
【0169】
1つまたは複数のコントローラ26、68、82は、マニピュレータ14のバックドライブに応答して運動連鎖KCの非ツールパス構成要素によって経験されるまたは経験されるであろう望ましくない向きの運動を考慮する。バックドライブ動作中(意図的に発生するか、衝突によって発生するかにかかわらず)、エネルギーアプリケータ24は、第1の送り速度FR1に従ってツールパスTPに沿って進められている。バックドライブコマンドに従ったマニピュレータ14の反動運動は、シャフト33及び関節Jの望ましくない向きの運動UOMを引き起こす。1つまたは複数のコントローラ26、68、82は、バックドライブに応答して発生する望ましくない向きの運動UOMを考慮するように送り速度をFR1からFR2に変更する。
【0170】
外力/トルクの別の例は、134に示されるように、患者または患者トラッカ(複数可)54、56に加えられるものである。患者に加えられるとき、外力/トルクは、患者の体位変換によって発生したり、解剖学的構造との衝突によって発生したりする可能性がある。例えば、ロボットマニピュレータまたはエネルギーアプリケータ24は、患者の解剖学的構造と衝突し、解剖学的構造を押す可能性がある。他の例では、解剖学的構造の操作中、エネルギーアプリケータ24は、解剖学的構造を物理的に押す可能性がある。他の例では、スタッフまたは他の手術機器によって解剖学的構造に不注意にぶつかる場合がある。患者トラッカ(複数可)54、56に適用されると、多くの同じ理由により、外力/トルクが発生する可能性がある。ここで、患者トラッカ(複数可)54、56のうちの1つまたは複数が、外/力に応答して、その現在の位置から異なる位置に移動する。患者トラッカ(複数可)54、56に加えられる外力/トルクは、患者の解剖学的構造の動きによる可能性がある。外力/トルクは、患者トラッカ(複数可)54、56を、患者トラッカ(複数可)54、56が取り付けられている骨/解剖学的構造に対して移動させ得る。換言すれば、解剖学的構造への患者トラッカ(複数可)54、56の堅固な固定は、外れたり、ずれたり、緩んだりする可能性がある。これらのシナリオのいずれにおいても、患者トラッカ(複数可)54、56は移動する可能性が高く、これはマニピュレータ14の動作に影響を与え得る。一例では、患者トラッカ(複数可)54、56の動きは、患者トラッカ(複数可)54、56が取り付けられる対応する解剖学的構造に登録される仮想境界71の対応する動きの原因となる。仮想境界71の動きによって、マニピュレータ14またはエネルギーアプリケータ24と衝突し得る。このようなシナリオは、患者の仮想境界71によって抑制されたマニピュレータ14が、境界71によってツールに加えられた反力のために患者を押し続ける「暴走」エラー状態を引き起こす可能性がある。しかしながら、そのような押しに応答して、同じ境界71が、(現在)動いている解剖学的構造との登録のために動かされる。この暴走状態は、マニピュレータ14の動作(例えば、向き、送り速度、指令位置など)を調整することによって、抵抗、適合、または回避することができる。この状態を軽減するために、マニピュレータ14が制御される制約を調整することができる。暴走状態を軽減するために本明細書に記載の技術によって使用できる制御システムの一例は、2020年1月10日に出願された「Surgical Systems and Methods for Guiding Robotic Manipulators」と題する国際特許出願番号第PCT/US2020/053803号に記載されており、その全開示は参照により組み込まれる。別の例では、外/力による患者トラッカ(複数可)54、56の移動により、異なる軌道、ツールパスTP、またはそのセグメントの再生成/更新を引き起こし得る。マニピュレータ14の動作は、新しいツールパスTPまたは軌道に適応するように調整することができる。
【0171】
患者及び/または患者トラッカ(複数可)54、56に加えられた外力を考慮するようにマニピュレータ14を制御するプロセスにおいて、または「暴走」状態の軽減において、運動連鎖KCの非ツールパス構成要素の1つまたは複数は、望ましくない向きの運動を経験することが考えられる。1つまたは複数のコントローラ26、68、82は、これらの外力/トルクに応答して運動連鎖KCの非ツールパス構成要素によって経験されるまたは経験されるであろう望ましくない向きの運動を考慮する。修正行動中(意図的に発生するか、衝突によって発生するかにかかわらず)、エネルギーアプリケータ24は、第1の送り速度FR1に従ってツールパスTPに沿って進められる。修正動作に応じたマニピュレータ14の反応運動は、非ツールパス構成要素のいずれかの望ましくない向きの運動UOMを引き起こす。1つまたは複数のコントローラ26、68、82は、修正行動に応答して発生する望ましくない向きの運動UOMを考慮するように送り速度をFR1からFR2に変更する。
【0172】
D.望ましくない向きの運動を考慮するためのアルゴリズムの例
【0173】
図19を参照すると、望ましくない向きの運動を考慮するための方法200の一実施態様が記載されている。方法200は、後述するように、1つまたは複数のコントローラ26、68、82、及びロボット手術システムの任意の補助的構成要素によって実施されるアルゴリズムを記載する。
図19に示す方法200は、ステップは追加または省略可能であり、ステップが存在する場合は、示されているものとは異なる順序で実行できるため、範囲を限定するものではない。
【0174】
一実施態様では、方法200はステップ202で始まり、ここで送り速度FRが決定される。送り速度FRは、前のセクションに記載し、
図8に示した技術と変数に従って、送り速度計算機82によって決定することができる。この送り速度FRは、エネルギーアプリケータ24が移動するように命令される速度である。したがって、ステップ204で、1つまたは複数のコントローラ26、68、82が、送り速度FRに従ってエネルギーアプリケータ24を前進させるようにマニピュレータ14に命令する。このような前進は、例えば、半自律モードでのツールパスTPに沿ったエネルギーアプリケータ24の位置制御された前進である。システムの他の制約を尊重しながら、エネルギーアプリケータ24が指令位置に移動できるようにするために、運動連鎖KCの他の構成要素の向き及び位置制御もステップ204で行うことができる。
【0175】
ステップ206で、1つまたは複数のコントローラ26、68、82が、運動連鎖KCの非ツールパス運動構成要素(複数可)の望ましくない向きの運動を識別、分析及び/または監視する。ここで、1つまたは複数のコントローラ26、68、82は、実際に発生している望ましくない向きの運動(実際のUOM)、または発生すると予想される望ましくない向きの運動(予想UOM)を識別することができる。いずれの場合でも、1つまたは複数のコントローラ26、68、82は、以下の構成要素、技術、またはアルゴリズムのうちの任意の1つまたは複数を使用して、実際のまたは予想される望ましくない向きの運動を識別することができる。次のいずれかを個別に、または組み合わせて利用することができる。実際のまたは予想される望ましくない向きの運動の識別は、
図14に示され、前述した実際のまたは予想される望ましくない向きの運動の存在に影響を与える因子、イベント、または条件のいずれかに応答してであってよい。
【0176】
ステップ208で、1つまたは複数のコントローラ26、68、82は、マニピュレータ14の順(FWD)運動学的測定値をオプションで採用して、望ましくない向きの運動を識別、分析及び/または監視することができる。ここで、1つまたは複数のコントローラ26、68、82は、関節Jの角度の関数であるTCPのデカルト終点位置を計算する運動学プロセスを実施する。順運動学プロセスは、マニピュレータ14の関節Jの位置センサ(エンコーダ)から入力を受信する。この入力に基づいて、順運動学プロセスは、ベース16に対するTCPの位置を計算する。ツール20とエネルギーアプリケータ24との間の既知の幾何学的関係に基づいて、ベース16に対するエネルギーアプリケータ24の位置を次に計算することができる。位置センサは関節位置を監視するため、変換は定期的に更新されて、マニピュレータ14の運動を反映することができる。順運動学計算は、逆運動学制御に従って実行されるエネルギーアプリケータ24の命令された運動の任意の所与の時間ステップ後に更新することができる。順運動学計算のプロセスにおいて、1つまたは複数のコントローラ26、68、82は、エネルギーアプリケータ24の様々な位置についての順運動学パラメータ値を非一時的メモリ64に記憶することができる。エネルギーアプリケータ24は、順運動学データが捕捉されているとき、送り速度FRに従って進められてよい。1つまたは複数のコントローラ26、68、82は、ある期間にわたって順運動パラメータ値を分析して、望ましくない向きの運動を示す範囲、閾値、または条件と比較することができる条件、パターン、または傾向を識別することができる。これについては、後のステップ216で説明する。1つまたは複数のコントローラ26、68、82はまた、順運動学データを分析して、運動構成要素と、環境物体または他の運動構成要素などの他の物体との間で発生する衝突を識別することができる。このような技術により、1つまたは複数のコントローラ26、68、82は、関節エンコーダ以外のセンサまたは検知システムを使用することなく、望ましくない向きの運動を決定することができる。
【0177】
ステップ210で、1つまたは複数のコントローラ26、68、82は、代わりにまたは追加で、任意の所与の数のセンサまたは検知システムを使用して、実際のまたは予想される望ましくない向きの運動を識別、分析及び/または監視することができる。1つまたは複数のセンサは、エネルギーアプリケータ24を含む、運動連鎖KCの任意の1つまたは複数の構成要素に関連する測定値を生成するように構成される。一例では、1つまたは複数のセンサまたは検知システムは、ナビゲーションシステム32またはその任意の構成、例えば、光学、電磁気、無線周波数、慣性、超音波、または運動構成要素KCを追跡できるマシンビジョンベースの位置特定システムであってよい。1つまたは複数のセンサは、関節Jまたはリンク18の任意の1つまたは複数に結合されたセンサを含んでよく、センサは、関節もしくはリンクの位置、関節もしくはリンクの速度、及び関節もしくはリンクの加速度のうちの任意の1つまたは複数を検知するように構成される。そのようなセンサは、慣性センサ、ナビゲーションシステム32と共に利用される追跡要素などであってよい。別の例では、1つまたは複数のセンサは、関節Jのうちの任意の1つまたは複数のモータ27によって引き出される電流を検知するように構成された電流センサを含み得る。そのような電流検知は、関節トルクを示すことができ、1つまたは複数のコントローラ26、68、82は、関節トルクから望ましくない向きの運動を推測することができる。望ましくない向きの運動を識別するために、上で具体的に記載したもの以外のセンサまたは検知システムを使用することが考えられる。1つまたは複数のコントローラ26、68、82及び/またはナビゲーションシステム32は、エネルギーアプリケータ24以外の運動連鎖KCの1つまたは複数の構成要素が望ましくない向きの運動を経験しているまたは経験するであろうことを識別するために、所与の期間にまたは任意の期間にわたって、上記の測定値のいずれかを分析するように構成される。
【0178】
ステップ212で、1つまたは複数のコントローラ26、68、82は、代わりにまたは追加で慣性値を使用して、実際のまたは予想される望ましくない向きの運動を識別、分析及び/または監視することができる。具体的には、1つまたは複数のコントローラ26、68、82は、非一時的コンピュータ可読媒体64に、エネルギーアプリケータ24を含む運動連鎖KCの任意の1つまたは複数の構成要素の慣性値を記憶するように構成される。一例では、慣性値は回転慣性値である。回転慣性値は、慣性モーメント、質量慣性モーメント、角質量値とも呼ばれる。このような値は、回転軸を中心とした指定された角運動に必要なトルクを決定するスカラ量である。別の実施態様では、慣性値は並進慣性値または線形慣性値であってよい。そのような値を記憶することによって、1つまたは複数のコントローラ26、68、82は、エネルギーアプリケータ24以外の運動連鎖KCの1つまたは複数の構成要素が望ましくない向きの運動を経験しているか、または経験するであろうかどうかを識別するために、より適切に装備される。
【0179】
ステップ214で、1つまたは複数のコントローラ26、68、82は、代わりにまたは追加でシミュレーションを利用して、実際のまたは予想される望ましくない向きの運動を識別、分析及び/または監視することができる。ここで、術前または術中のシミュレーションを実行して、マニピュレータ14及び各運動構成要素の運動をシミュレートすることができる。そのようなシミュレートされた運動は、例えば、ツールパスTPに沿ったエネルギーアプリケータ24の前進であるか、またはオプションで、半自律モードに従う前進のシミュレーションであってよい。マニピュレータコントローラ26及び挙動コントローラ74を含む制御システム60は、上記の仮想シミュレーションでマニピュレータ14のダイナミクスをシミュレートすることができ、またはベース16、リンク18、関節J、エンドエフェクタ22、ツール20、及び/またはエネルギーアプリケータ24の剛体のダイナミクスをシミュレートする物理エンジンを使用した他のシミュレーションスキームをシミュレートすることができる。シミュレーションは、実行時にマニピュレータ14を制御するために制御システム60によって利用されるものであってもよいし、それとは別個に実施されてもよい。シミュレーションは、ディスプレイ上に視覚的またはグラフィカルに表示することもでき、またはユーザには表示されないデータによって純粋に具現化することもできる。一例では、シミュレーションは、自動化された外科的処置のすべての部分についてマニピュレータ14の動きを実行し得る。
【0180】
シミュレーションは、マニピュレータ14の制御に関連する任意またはすべての因子を考慮することができ、これには、セットアップもしくは好ましい姿勢、導入経路もしくは導出経路の動き、部位からのマニピュレータ14の後退、マニピュレータ14の向きの変更、送り速度の変更、システム上の制約などが含まれる。さらに、シミュレーションは、マニピュレータ14に関連する他のタスク、イベント、またはコマンドに関連するデータを提供することができる。例えば、シミュレーションは、マニピュレータ14の構成要素のいずれかの運動学的姿勢を定義するロボットデータ、またはログもしくはコマンドデータ(例えば、エネルギーアプリケータ24の指令位置)を含み得る。シミュレーションは、マニピュレータ14の任意の構成要素と1つまたは複数の仮想境界71との衝突のログ、境界71の衝突の侵入の大きさ/方向、及び/または制約衝突を修正するために適用される各反力のパラメータ/値を含み得る。シミュレーションは、前述し、
図14に示したうちのいずれかなど、望ましくない向きの運動の存在に影響を与える可能性がある、または実際に影響を与える因子のいずれかに関連するデータを取得することができる。追加でまたは代わりに、シミュレーションは、処置の仮想トレイルラン中に施術者によって部分的に実行することができる。ここで、施術者は、シミュレーションにおいてマニピュレータ14及び手術部位を視覚化することができる場合がある。望ましくない向きの運動の存在に影響を与える上記の因子のいずれも、このシミュレーション中に考慮することができる。例えば、外的因子または施術者が開始した因子の結果として、または自動化されたロボット制御の結果として発生するシミュレートされた外力、制約、衝突、バックドライブ、向き変更などがあってよい。
【0181】
別の実施態様では、制御システム60は、術前または術中に実行できる機械学習アルゴリズムを採用し得る。機械学習アルゴリズムは、ロボット及びナビゲーションシステムの過去のデータに対して現在のロボットの運動を分析して、望ましくない向きの運動を能動的に予測することができる。このような予測は、例えば、予想される望ましくない向きの運動の数秒または数ミリ秒前に行うことができる。ニューラルネットワークは、望ましくない向きの運動を予測するために、以前のロボット手術または同様の性質のシミュレーションでトレーニングすることができる。トレーニングデータは、患者データ、インプラントデータ、処置の種類、及び/または外科医の好みも含み得る。現在の処置に対して、トレーニングされたニューラルネットワークを適用して、処置の過程で予測される望ましくない向きの運動を考慮するように(送り速度の調整を含む)マニピュレータ14のコマンドを自動的に修正することができる。外科医は、入力デバイスを利用して、処置前にマニピュレータ14の運動に対する機械学習予測及びそれぞれの修正の影響を視覚的に検討することが可能であってよい。外科医はまた、マニピュレータ14の運動に対する予測修正を受け入れることも拒否することも可能であってよい。
【0182】
シミュレーションまたは機械学習アルゴリズムの結果には、とりわけ、望ましくない向きの運動を示す予測実行時イベントの時間ログを含むデータを含み得る。そのようなデータは、制御システム60に記憶または送信することができる。処置の前または最中に、1つまたは複数のコントローラ26、68、82は、メモリからシミュレーションまたは機械学習データを取得し、ロボットシステムのシミュレーションデータ及び実際の実行時データに基づいて、望ましくない向きの運動が発生することが予想されることを識別するように構成される。次に、制御システム60は、将来の望ましくない向きの運動の存在を排除するか、またはその予想される影響を低減するようにマニピュレータ14の運動を自動的に修正することができる。本明細書に記載のシミュレーションまたは機械学習技術は、上述のように、任意の他のタイプの検知を使用して実施することができる。さらに、そのようなシミュレーションまたは機械学習は、本明細書に具体的に記載されていない方法に従って、例えば、代替形態の人工知能及びプランニングソフトウェアを使用して実行できることが企図される。採用できるシミュレーション技術の例は、「Patient-specific Preoperative Planning Simulation Techniques」と題する米国特許出願公開番号第2019/0142520A1号に記載されており、その内容は参照によりその全体が本明細書に組み込まれる。
【0183】
ステップ216で、1つまたは複数のコントローラ26、68、82は、オプションで、実際のまたは予測される望ましくない向きの運動を制限、閾値、または範囲と比較する。この機能は、望ましくない向きの運動から通常のまたは望ましい向きの運動を描くために実行することができる。制限、閾値、または範囲は、システム10の望ましくない向きの運動の識別の感度を定義することができる。実際には、このような感度のバランスは、処置とユーザ体験の最適化に役立つ。過度の数のイベントが望ましくないと識別された場合、送り速度の低減により処置時間を延ばしてよい。望ましくないとして識別されるイベントが少なすぎる場合、向きの運動の望ましくない影響は、ユーザ体験やシステム精度を含み得る。施術者は、該当する場合、処置前、処置中、またはシミュレーション段階中にこの感度を調整可能であってよい。閾値または範囲は、運動学的成分の角速度、加速度、または躍度の大きさ、方向、頻度、持続時間、または過度の値のうちの任意の1つまたは複数を定義し得る。閾値または範囲との比較は、術前、術中、シミュレーション中、シミュレーションに応答して、または将来の望ましくない向きの運動を示す条件の識別に応答して行うことができる。
【0184】
非限定的な一例では、ステップ216での実際のまたは予測の向きの運動の評価は、特定の値(例えば、0.2rad/s)未満の下限(例えば、角速度に関して)を定義することによって行うことができる。実際のまたは予測の向きの運動がこの下限を下回る場合、1つまたは複数のコントローラ26、68、82は、無視できる、正常である、及び/または望ましいなどと見なし、送り速度FRを変更するための行動をとらない。実際のまたは予測の向きの運動がこの下限(例えば、0.2rad/s)以上であるが、第1の閾値(例えば、0.4rad/s)以下である場合、1つまたは複数のコントローラ26、68、82は、望ましくないものと見なし、本明細書に記載の技術に従って送り速度FRを変更する行動を取ることができる。一例では、下限と第1の閾値との間の範囲内で、向きの運動の値に対応するマッピングによって送り速度FRを変更することができる。向きの運動に関連する値に対するマッピング値は、メモリ内のルックアップテーブルに記憶することができる。マッピングは連続的または離散的であってよく、線形関数、ステップ関数、指数関数、対数関数、カスタマイズされた(平滑化)関数、または任意の他のタイプの関数に従って定義することができる。例えば、線形マッピングの場合、スケーリングは、下限での向きの運動の値の場合は1(既存の/元の/最後の送り速度を維持するために1でスケーリング)で、第1の閾値での向きの運動の値の場合は0(FRを低減するために0でスケーリング)であってよい。下限と第1の閾値またはその間で、向きの運動値と送り速度の間に線形相関が存在する可能性がある(例えば、下限と第1の閾値の中間で0.5ずつスケーリングして、既存のFRを半分に減らす)。第1の閾値を超える実際のまたは予測の望ましくない向きの運動値については、送り速度FRを変更して、実際のまたは予測の望ましくない向きの運動の値を即座に減少させるかゼロ設定することができる。換言すれば、1つまたは複数のコントローラ26、68、82は、ゼロトレランスの望ましくない向きの運動などを考慮することができる。
【0185】
追加でまたは代わりに、ユーザは、例えば臨床アプリケーションを使用して、好みまたは手術計画に基づいて、これらの制限、閾値、範囲、またはスケーリング値のいずれかを設定または調整することができる。例えば、スケーリング(0~1)または制限をデフォルト値の50%以上に減らし、150%以上に増やすことができる。上記の制限と閾値の例は、考えられる多くの異なる構成の1つである。範囲と値は、記載したものやこの例とは異なる場合がある。
【0186】
制限、閾値または範囲、及びスケーリング/マッピングは、実際のまたは予測される望ましくない向きの運動を引き起こす条件またはイベントに固有であり、様々な条件またはイベント(例えば、
図14の任意のそのようなイベント/条件)に対して個別に定義することができる。制限、閾値、及び範囲は、具体的に向きの運動の値(例えば、角速度)に関してである必要はなく、実際のまたは予測の向きの運動と間接的/直接的に相関させることができる他のパラメータ/測定値からの値であってよい。例えば、仮想境界71(120、
図14)との衝突に応答して発生する実際のまたは予測の望ましくない向きの運動について、閾値または範囲及びスケーリング/マッピングは、侵入パラメータの値に依存し得る。例えば、侵入値が0.1mm未満の場合、送り速度FRのスケーリングは0であってよい。侵入値が0.1mm以上で0.2mm未満の場合、送り速度FRのスケーリングは0と1の間であってよい。侵入値が0.2mmより大きい場合、送り速度FRのスケーリングは0であってよい。ここでも、これらの閾値とスケーリング値は単なる例であり、条件/イベント及び所望の応答に応じて記載したものと異なってよい。
【0187】
ステップ220で、1つまたは複数のコントローラ26、68、82は、実際のまたは予想される望ましくない向きの運動の存在を満たす条件が発生するかどうかを判断する。条件の充足は、ステップ216で閾値または範囲の充足に応答して発生する。条件の充足は、いつでも発生する可能性がある。一例では、条件の充足は、エネルギーアプリケータ24の指令位置の時点で識別することができる。そのような場合、生の運動学的またはローカライザ44の値に基づいて、フィルタリングなしで、リアルタイムまたはほぼリアルタイムで条件を満足させる可能性がある。あるいは、条件の充足は、フィルタリングされたロボットのまたはローカライザ44の値に基づいて識別することができ、データは一定時間(例えば、50~150ms)にわたってフィルタリングすることができる。このフィルタリングされたデータに基づいて、実際のまたは予想される望ましくない向きの運動を計算/測定することができる。条件が満たされない場合、1つまたは複数のコントローラ26、68、82は、ステップ202で送り速度FRを維持または再開することができる。
【0188】
ステップ218で、1つまたは複数のコントローラ26、68、82は、実際のまたは予想される望ましくない向きの運動の存在を識別する。この場合も、望ましくない向きの運動の識別はいつでも発生する可能性がある。識別は、ステップ220での閾値または範囲の充足に応答して行われる場合があるが、必ずしもそうである必要はない。あるいは、外力、制約、向き変更、もしくは送り速度のイベントの識別(
図14に示す)などの上記因子のいずれかの分析に基づいて、またはステップ206でのセンサ、検知システム、慣性値、もしくはシミュレーションからの非ツールパス運動構成要素(複数可)の実際の/予想される向きの運動を識別もしくは監視することからの分析に基づいて、自動識別が発生し得る。
【0189】
ステップ222で、望ましくない向きの運動を識別した後、1つまたは複数のコントローラ26、68、82は、実際のまたは予想される望ましくない向きの運動を十分に評価し、その後、適切な修正行動のパラメータを決定する。1つまたは複数のコントローラ26、68、82は、送り速度FRをどのように変更して望ましくない向きの運動を考慮するかを決定する。これは、例えば、ステップ216で記載した評価方法のいずれかに従って実行することができる。一実施態様では、上記の影響因子または条件(
図14に示される)の存在または予想される存在の検出は、望ましくない向きの運動を考慮して送り速度FRをどのように変更するかを定量化するために使用できる変数及び係数によって定義されてよい。これは、
図8に示す変数に基づいて送り速度を計算するために使用される前のセクションに記載された技術と同様の方法で実行することができる。例えば、望ましくない向きの運動に影響を与える適用可能な各因子に関連する各係数は、0と1.0の間にあってよい。係数の変化は、係数の大きさの変化の影響をブレンドイン/ブレンドアウトするためにフィルタリングまたは増減(ramp)されてよい。このフィルタリングまたはブレンディングを実行すると、望ましくない向きの運動をスムーズに軽減することができる。任意の変数の影響は、選択的に無視されてよい。例えば、最小または最大の係数のいずれかに基づいて送り速度FRへの変更を決定し、他の係数を無視することが望ましい場合がある。送り速度計算機82への2つ以上の変数は、例えば、加算、乗算、平均、または除算によって組み合わされてよい。同様に、計算された係数を加算、乗算、平均、または除算して、送り速度FRを変更する方法を決定するために使用される最終係数を提供してよい。
【0190】
ステップ224で、1つまたは複数のコントローラ26、68、82が送り速度FRの変更を実行する。これは、決定された送り速度を変更するか、決定された送り速度をオーバーライドすることによって実行することができる。実際には、望ましくない向きの運動の悪影響を軽減するために、送り速度FRを低減することが多い。送り速度FRの修正は、望ましくない向きの運動の発生に反応してであってよい。あるいは、送り速度FRの修正は、事前対応的に実施することができ、それによって、システム10は予想される望ましくない向きの運動を事前対応的に軽減するので、運動連鎖KCの非ツールパス構成要素は、予想される望ましくない向きの運動を予想される望ましくない向きの運動を経験しない(または完全に経験しない)。場合によっては、1つまたは複数のコントローラ26、68、82は、追加でまたは代わりに、増加するはずであった既存の/所定の送り速度FRを意図的に維持することによって、望ましくない向きの運動を軽減することができる。例えば、1つまたは複数のコントローラ26、68、82は、送り速度FRを急速に低減し、次に送り速度FRを増加させて、望ましくない向きの運動を軽減し得る。送り速度FRは、経験されたまたは経験されるであろう望ましくない向きの運動の大きさ及び/または方向に相関する因子によって低減することができる。送り速度の変化または減少は、漸進的であっても衝動的であってもよく、望ましくない向きの運動を軽減するために必要な1つまたは複数のコントローラ26、68、82によって決定される持続時間など、任意の持続時間にわたって、または任意の持続時間の間、発生する可能性がある。これらのシナリオのいずれにおいても、ステップ204に戻るように移行することによって、送り速度の変更を実行することができ、ここで、1つまたは複数のコントローラ26、68、82は、望ましくない向きの運動を考慮するように計算された送り速度FRに従ってエネルギーアプリケータ24を前進させるようにマニピュレータ14に命令する。
【0191】
望ましくない向きの運動を考慮するような送り速度FRの変更に応答して、1つまたは複数のコントローラ26、68、82は、エネルギーアプリケータ24以外の運動連鎖KCの1つまたは複数の構成要素が望ましくない向きの運動をもはや経験していないまたはもはや経験しないであろうことを識別するように構成することができる。この識別は、ステップ220で条件が満たされているかどうかを再評価することによって、またはステップ206で非ツールパス構成要素を再評価することによって実行することができる。ステップ216、220で記載したように、閾値/制限または範囲が満たされているかどうかに基づいて識別を実施することもできる。例えば、望ましくない向きの運動について比較された値が下限を下回った場合、送り速度FRを最後の/前の/デフォルトの/元の値に回復または再開することができる。他の例では、ルックアップテーブルに記憶された値を利用する代わりに、1つまたは複数のコントローラ26、68、82が、PID制御ループなどの制御ループを実行することができる。例えば、設定点は、下限以下の数値など、向きの運動の許容値であってよい。制御ループは、上述の技術のいずれかから実際の向きの運動の検出値の入力を受信することができる。制御ループを介して、1つまたは複数のコントローラ26、68、82は、向きの運動の設定点と実際の値との間の差として誤差を計算し、次に、実際の向きの運動の検出値が設定点を満たすまで誤差を最小限にするような項(例えば、P、I、D)を取得するように補正を適用することができる。これは、1つまたは複数の非ツールパス構成要素が望ましくない向きの運動をもはや経験していないまたはもはや経験しないであろうことを識別するために利用できる制御ループの一例である。他のタイプの制御ループが企図される。1つまたは複数のコントローラ26、68、82はまた、予測分析またはシミュレーションに基づいて、望ましくない向きの運動の予想持続時間を知ることができ、望ましくない向きの運動が発生する/発生したであろう時間が経過したと推測することができる。これらのシナリオのいずれかに応答して、1つまたは複数のコントローラ26、68、82は、望ましくない向きの運動を考慮した送り速度の変更前の既存のまたは変更後に計画された202での送り速度を回復または再開することができる。
【0192】
IV.望ましくない向きの運動を考慮するための他の例
【0193】
上述の技術は、望ましくない向きの運動を考慮して送り速度を変更することに焦点を当てている。上述の技術のいずれも、送り速度FRを変更する以外にマニピュレータ14の挙動を変更することによって望ましくない向きの運動を軽減するために、1つまたは複数のコントローラ26、68、82によって利用することができる。例えば、1つまたは複数のコントローラ26、68、82は、予測的または動的に、例えば、ゼロ空間内で、関節Jの運動、制限、または姿勢を操作し、ツール20の軌道を変更し、ツールパスTPを修正し、仮想境界71もしくは他の制約を調整し、ツールもしくはアームの向きの変更、アームのバックドライブ、送り速度調整など、ユーザによるロボット機能を禁止することができる。
【0194】
前述の説明では、いくつかの実施形態について説明してきた。本明細書で論じられる実施形態は、網羅的であることを意図しておらず、いずれかの特定の形態に限定することも意図していない。使用された用語は、限定ではなく、説明のための言葉の性質を有することが意図される。上記の教示に照らして、多くの修正形態及び変形形態が可能であり、本発明は、具体的に記載されているものとは別様に実施されてもよい。さらに、本書類で使用されている見出しは、参照と読みやすさのみを目的として導入されており、見出しの主題のみによってセクションの内容を制限するものと理解されるべきではない。
【国際調査報告】