(57)【要約】一局面では、本発明は、一態様において、1次プロキシ位置を定義する段階と、2次プロキシ位置を定義する段階と、HIP位置を定義する段階と、1次プロキシ位置およびHIP位置に応じて第1の力を生成する段階と、2次プロキシ位置およびHIP位置に応じて第2の力を生成する段階とを含む、ハプティックペナルティ力を生成する方法に関する。2009524149.tif 000026
2009524149.tif 000002
【特許請求の範囲】
【請求項１】
1次プロキシ位置を定義する段階；
2次プロキシ位置を定義する段階；
HIP位置を定義する段階；
HIPが1次プロキシ位置から所定の値以下の侵入深さに位置しているときに、1次プロキシ位置およびHIP位置に応じて第1の力を生成する段階；ならびに
2次プロキシ位置が1次プロキシ位置から所定の値より大きい侵入深さに位置付けられているときに、2次プロキシ位置およびHIP位置に応じて第2の力を生成する段階
を含む、ハプティックペナルティ力を生成するための方法。
【請求項２】
所定の値が所望のハプティックオフセットである、請求項1記載の方法。
【請求項３】
第1の力が零である、請求項1記載の方法。
【請求項４】
第2の力が2次プロキシ位置とHIP位置との間の距離の関数である、請求項1記載の方法。
【請求項５】
第1の力が少なくとも部分的に1次プロキシ位置とHIP位置との間の距離に応じて決定される、請求項1記載の方法。
【請求項６】
2次プロキシ位置が少なくとも部分的にHIPと仮想ハプティック物体との間の相互作用に応じて決定される、請求項1記載の方法。
【請求項７】
侵入深さが1次プロキシ位置とHIP位置との間の距離である、請求項1記載の方法。
【請求項８】
1次プロキシ位置を定義する1次プロキシ位置ロケータ、
2次プロキシ位置を定義する2次プロキシ位置ロケータ、
HIP位置を定義するHIP位置ロケータ、ならびに
HIPが1次プロキシ位置から所定の値以下の侵入深さに位置しているときに1次プロキシ位置およびHIP位置に応じて第1の力を発生し、2次プロキシ位置が1次プロキシ位置から所定の値より大きい侵入深さに位置付けられているときに2次プロキシ位置およびHIP位置に応じて第2の力を発生する力発生器
を含む、ハプティック力を発生する装置。
【請求項９】
第2の力が少なくとも部分的に2次プロキシ位置とHIP位置との間の距離に応じて決定される、請求項8記載の装置。
【請求項１０】
第1の力が少なくとも部分的に1次プロキシ位置とHIP位置との間の距離に応じて決定される、請求項8記載の装置。
【請求項１１】
2次プロキシ位置が少なくとも部分的にHIPと仮想ハプティック物体との間の相互作用に応じて決定される、請求項8記載の装置。
【請求項１２】
a)複数のボクセル要素を含むボクセル空間を定義する段階、
b)複数のポリゴンレンダリング要素を含むポリゴン空間を定義する段階、
c)各ボクセル要素およびそのそれぞれのポリゴンレンダリング要素のデータ構造を生成する段階、
d)ハプティック空間内で点の位置を見つける段階、
e)その点を対応するボクセル要素にマッピングする段階、ならびに
f)データ構造中で少なくとも1個のポリゴンレンダリング要素を選択する段階
を含む、ハプティック空間内で位置をマッピングするための方法。
【請求項１３】
ポリゴンレンダリング要素が三角形である、請求項12記載の方法。
【請求項１４】
各ボクセル要素が軸並列ボックスである、請求項12記載の方法。
【請求項１５】
データ構造がルックアップテーブルである、請求項12記載の方法。
【請求項１６】
点を対応するボクセル要素へマッピングした後、HIPで近傍ポリゴンを探索する、請求項12記載の方法。
【請求項１７】
プロキシ位置とHIP位置との間の距離に応じてばね力を計算する段階；
ばね力に応じてジョイント空間ばねトルクを計算する段階；
ジョイント速度に応じてジョイント空間減衰トルクを計算する段階；ならびに
ジョイント空間減衰トルクとジョイント空間ばねトルクを加算する段階
を含む、複数のトランスミッションメカニズムおよび複数のジョイントを有するシステムにおいてハプティック安定性を増大させるための方法。
【請求項１８】
ばね力が直交座標で計算される、請求項17記載の方法。
【請求項１９】
ばね力がプロキシ位置とHIP位置との間の差の関数である、請求項18記載の方法。
【請求項２０】
ジョイント空間ばねトルクがばね力の転置ヤコビアンから計算される、請求項17記載の方法。
【請求項２１】
ジョイント空間減衰トルクがジョイント速度の関数である、請求項17記載の方法。
【請求項２２】
ジョイント空間減衰トルクがジョイント速度に線形比例し、比例定数がジョイント空間減衰利得行列の対角項に応じて計算される、請求項21記載の方法。
【請求項２３】
HIPがどの位置から境界に接近しているかを決定する段階、および、HIPが第1の方向から境界を通過し、第2の方向から境界を通過しないようにさせる段階を含む、ユニフェーズハプティック壁を形成する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明はロボットシステムにおけるレンダリングに関し、特にハプティックシステムにおけるレンダリングに関する。
【０００２】
関連出願
本出願は、2006年2月21日に出願され、2006年6月29日に公開された米国特許出願第11/357,197号の一部継続出願であり、第11/357,197号出願は、2003年3月6日に出願され、2004年2月5日に公開された米国特許出願第10/384,072号の一部継続出願、2003年3月6日に出願され、2004年2月19日に公開された米国特許出願第10/384,077号の一部継続出願、および、2003年3月6日に出願され、2004年2月19日に公開された米国特許出願第10/384,194号の一部継続出願であり、これらの各出願は2002年3月6日に出願された米国特許仮出願第60/362,368号に基づく優先権を主張する。第11/357,197号出願は、2003年7月16日に出願され、2004年6月3日に公開された米国特許出願第10/621,119号の一部継続出願でもあり、第10/621,119号出願は、2002年3月6日に出願された米国特許仮出願第60/362,368号に基づく優先権を主張する2003年3月6日に出願され、2004年2月19日に公開された米国特許出願第10/384,078号の一部継続出願である。第11/357,197号出願は、2005年2月22日に出願された米国特許仮出願第60/655,642号、および、2006年1月17日に出願された米国特許仮出願第60/759,186号に基づく優先権をさらに主張する。上記に参照した公開出願のそれぞれは、参照によりその全体が本明細書に組み入れられる。
【背景技術】
【０００３】
背景
ハプティックインターフェイスは、ユーザが仮想環境またはハプティック環境内で接触の感覚を感知することを可能にする。このようなインターフェイスは、仮想現実ゲーム中に、および、仮想的に映像化されるタスクを実行する際に受け入れられている。タスクを実行するユーザを助けるために仮想画像を使用する一つの領域は、コンピュータ支援外科手術である。
【０００４】
コンピュータ支援外科では、ハプティックインターフェイスは、外科医にハプティックガイダンスを提供するために使用することができる。たとえば、外科医が実空間内で外科用器具を動かすとき、外科医が外科用器具を操作する能力を制限する拘束がハプティックインターフェイスを介して外科医に加えられる。この拘束は、たとえば、仮想空間内の仮想器具とハプティック物体との間の所望の関係に基づきうる。手術中に、外科医はハプティックインターフェイスを使用してロボット的に外科用器具を操作する。仮想器具とハプティック物体との間の所望の関係を維持するために十分な力を外科医に加える拘束フィードバックがハプティックインターフェイスを介して外科医に与えられる。
【０００５】
たとえば、ハプティック物体は、解剖学的構造に対する仮想保護境界でありうる。仮想境界は患者の解剖学的構造と位置合わせされ（または相互に関連付けられ）、仮想器具は現実の外科用器具と位置合わせされる（または相互に関連付けられる）。外科医がハプティックインターフェイスを介して仮想環境と相互作用できるようにするため、ハプティックレンダリングアルゴリズムが利用される。ハプティックレンダリングは、仮想物体とのユーザ相互作用に応じて力を計算し印加するプロセスである。ハプティックレンダリングアルゴリズムを使用して、ハプティックインターフェイスは、仮想器具が仮想境界に接近するときに外科医が受ける力が増加されるように構成されうる。この力の増加は、外科医が対象となる構造に接近しているので、構造への不要な侵入および損傷を防止するため（たとえば、ドリルビットが骨の奥深くまで入ることを阻止するため）注意深く取りかかるべきであることを外科医に警告する。
【発明の開示】
【０００６】
本発明は改良されたハプティックレンダリングプロセスの必要性を解決する。
【０００７】
発明の概要
一局面では、本発明はハプティックペナルティ力を生成する方法に関する。一態様では、本方法は、1次プロキシ位置を定義する段階、2次プロキシ位置を定義する段階、HIP位置を定義する段階、HIPが1次プロキシ位置から所定の値以下の侵入深さに位置しているときに1次プロキシ位置およびHIP位置に応じて第1の力を生成する段階、および2次プロキシ位置が1次プロキシ位置から所定の値より深い侵入深さに位置付けられているときに2次プロキシ位置およびHIP位置に応じて第2の力を生成する段階を含む。一態様では、所定の値は所望のハプティックオフセットである。別の態様では、第1の力は零である。さらに別の態様では、第2の力は2次プロキシ位置とHIP位置との間の距離の関数である。さらに別の態様では、第1の力は1次プロキシ位置とHIP位置との間の距離の関数である。別の態様では、2次プロキシ位置は、少なくとも部分的にHIPと仮想ハプティック物体との間の相互作用に応じて決定される。別の態様では、侵入深さは1次プロキシ位置とHIP位置との間の距離である。
【０００８】
別の局面では、本発明はハプティック力を発生する装置に関する。一態様では、本装置は、1次プロキシ位置を定義する1次プロキシ位置ロケータ、2次プロキシ位置を定義する2次プロキシ位置ロケータ、HIP位置を定義するHIP位置ロケータ、ならびにHIPが1次プロキシ位置から所定の値以下の侵入深さに位置しているときに1次プロキシ位置およびHIP位置に応じて第1の力を発生し、2次プロキシ位置が1次プロキシ位置から所定の値より深い侵入深さに位置付けられているときに2次プロキシ位置およびHIP位置に応じて第2の力を発生する力発生器を含む。別の態様では、第2の力は2次プロキシ位置とHIP位置との間の距離の関数である。さらに別の態様では、第1の力は1次プロキシ位置とHIP位置との間の距離の関数である。さらに別の態様では、2次プロキシ位置は、少なくとも部分的にHIPと仮想ハプティック物体との間の相互作用に応じて決定される。
【０００９】
本発明のさらに別の局面は、ハプティック空間内で位置をマッピングする方法である。一態様では、本方法は、a)複数のボクセル要素を含むボクセル空間を定義する段階、b)複数のポリゴンレンダリング要素を含むポリゴン空間を定義する段階、c)各ボクセル要素およびそのそれぞれのポリゴンレンダリング要素のデータ構造を生成する段階、d)ハプティック空間内で点の位置を見つける段階、e)その点を対応するボクセル要素にマッピングする段階、およびf)データ構造中で少なくとも1個のポリゴンレンダリング要素を選択する段階を含む。
【００１０】
一態様では、ポリゴンレンダリング要素は三角形である。別の態様では、各ボクセル要素は軸並列ボックス（axis aligned box）である。さらに別の態様では、データ構造はルックアップテーブル（lookup table）である。
【００１１】
さらに別の局面では、本発明は、複数のトランスミッションメカニズムおよび複数のジョイントを有するシステムにおいてハプティック安定性を増大させる方法に関する。一態様では、本方法は、プロキシ位置とHIP位置との間の距離に応じてばね力を計算する段階、ばね力に応じてジョイント空間ばねトルクを計算する段階、ジョイント速度に応じてジョイント空間減衰トルクを計算する段階、およびジョイント空間減衰トルクとジョイント空間ばねトルクを加算する段階を含む。
【００１２】
別の態様では、ばね力は直交座標で計算される。さらに別の態様では、ばね力はプロキシ位置とHIP位置との間の差の関数である。さらに別の態様では、ジョイント空間ばねトルクはばね力の転置ヤコビアンから計算される。別の態様では、ジョイント空間減衰トルクはジョイント速度の関数である。さらに別の態様では、ジョイント空間減衰トルクはジョイント速度に線形比例し、比例定数はジョイント空間減衰利得行列の対角項（diagonal term）に応じて計算される。本発明の別の局面は、HIPがどの位置から境界に接近しているかを決定する段階と、HIPが第1の方向から境界を通過し、第2の方向から境界を通過しないようにさせる段階とを含む、ユニフェーズ(uniphase)ハプティック壁を形成する方法に関係する。
【００１３】
本明細書において図の参照は、本発明の方法および装置の理解をよりよくするために意図されているが、本発明の範囲を具体的に表された態様に制限することは意図されていない。図面は、必ずしも正しい縮尺ではなく、代わりに本発明の原理を明らかにすることに重点が置かれている。各図中の類似した参照文字は通常対応する部品を示している。
【００１４】
詳細な説明
概要としては、図1は本発明による外科システム10の態様を表している。外科システム10は、コンピューティングシステム20と、ハプティックロボット装置30と、トラッキング（またはローカライジング）システム40とを含む。操作中に、外科システム10は、包括的な手術中の外科計画を可能にする。外科システム10はさらに、ユーザ（たとえば、外科医）が外科的処置を行うときに、ユーザにハプティックガイダンスを提供し、および/または、ユーザによるハプティック装置30の操作を制限する。
【００１５】
コンピューティングシステム20は、外科システム10の操作および制御のためのハードウェアおよびソフトウェアを含む。図1に示されるように、コンピューティングシステム20は、コンピュータ21、表示装置23、および入力装置25を含む。
【００１６】
コンピュータ21は、いかなる公知のコンピューティングシステムであってもよいが、好ましくは、プログラム可能なプロセッサベースのシステムである。たとえば、コンピュータ21は、マイクロプロセッサ、ハードドライブ、ランダムアクセスメモリ（RAM）、リードオンリーメモリ（ROM）、入力/出力（I/O）回路、および、任意のその他の周知のコンピュータコンポーネントを含みうる。コンピュータ21は、好ましくは、たとえば、携帯型ドライブ、磁気記憶装置（たとえば、フロッピーディスク）、固体記憶装置（たとえば、フラッシュメモリカード）、光学記憶装置（たとえば、コンパクトディスク、すなわちCD）、および/またはネットワーク/インターネット型記憶装置のような種々のタイプの記憶装置（永久式および着脱式）とともに使用するために適合されている。コンピュータ21は、1台または複数の独立型またはネットワーク型コンピュータ、たとえば、Windows、MS-DOS、UNIX、またはその他の適当なオペレーティングシステムの下で動作し、好ましくは、グラフィックスユーザインターフェイス（GUI）を含む、パーソナルコンピュータ（たとえば、IBM-PC互換コンピュータ）、または、ワークステーション（たとえば、SUNまたはシリコングラフィックスのワークステーション）を含みうる。一態様では、コンピュータ21は、MAKO SURGICAL CORP（商標）、Fort Lauderdale、Floridaから市販されているNavigation Moduleを含む。
【００１７】
表示装置23は、コンピューティングシステム20とユーザとの間の視覚インターフェイスである。表示装置23はコンピュータ21に接続され、テキスト、画像、グラフィックス、および/または、その他の視覚出力を表示するため適しているいかなる装置であってもよい。たとえば、表示装置23は、標準的なディスプレイスクリーン（たとえば、LCD、CRT、プラズマなど）、タッチスクリーン、ウェアラブルディスプレイ（たとえば、めがねまたはゴーグルのようなアイウェア）、プロジェクションディスプレイ、ヘッドマウント型ディスプレイ、ホログラフィックディスプレイ、および/または、任意のその他の視覚出力装置を含みうる。表示装置23はコンピュータ21の上、もしくはコンピュータ21の付近に配置され得、またはコンピュータ21から遠く離れて、ユーザの観察を簡単にするため適切な任意の場所にあってもよい。表示装置23は、従来のイメージング技術、グラフィカルモデル（たとえば、インプラント、器具、解剖構造などのCADモデル）、追跡された物体（たとえば、解剖構造、ツール、インプラントなど）のグラフィカル表現、デジタルまたはビデオ画像、位置合わせ情報、キャリブレーション情報、患者データ、ユーザデータ、測定データ、ソフトウェアメニュー、選択ボタン、状態情報等々を使用して取得された画像データセットから生成された解剖構造の画像を含むが、それに限定されるわけではない、医療処置のために役立つ任意の情報を表示するため使用されうる。
【００１８】
表示装置23に加えて、コンピューティングシステム20は、ユーザに聴覚フィードバックを提供する音響装置（図示せず）を含みうる。音響装置はコンピュータ21に接続され、音を発生するいかなる装置であってもよい。たとえば、音響装置は、スピーカーおよびサウンドカードと、一体化されたオーディオサポート付きのマザーボードと、および/または、外部サウンドコントローラとを含みうる。動作中に、音響装置は情報をユーザに伝達するために適合させうる。たとえば、コンピュータ21は、外科処置の1ステップが完了したことを知らせるために、音声合成された口頭指示「完了」のような音を発生させるため音響装置に信号を送るようにプログラムされうる。同様に、音響装置は、外科用切除ツールが軟組織の重要部分に接近していることを知らせるためビープ音を生成するように、注意を払うべき状況をユーザに警告するために使用されうる。
【００１９】
コンピューティングシステム20の入力装置25は、ユーザが外科システム10と通信できるようにする。入力装置25はコンピュータ21に接続され、ユーザがコンピュータに入力を与えることを可能にさせる任意の装置を含みうる。たとえば、入力装置25は、キーボード、マウス、トラックボール、タッチスクリーン、タッチパッド、音声認識ハードウェア、ダイヤル、スイッチ、ボタン、追跡可能なプローブ、フットペダル、リモートコントロール装置、スキャナ、カメラ、マイクロホン、および/または、ジョイスティックのような公知の入力装置であってもよい。
【００２０】
コンピューティングシステム20は、外科システム10が、外科計画、ナビゲーション、画像ガイダンス、および/またはハプティックガイダンスに関係した種々の機能を実行できるように適合される。たとえば、コンピュータ21は、汎用演算、データ記憶および検索、コンピュータ支援外科（CAS）、アプリケーション、ハプティック制御、および/または任意のその他の適当な機能に関係した、アルゴリズム、プログラミング、ならびにソフトウェアユーティリティを含みうる。一態様では、コンピューティングシステム20はNavigation Moduleで使用されるソフトウェアを含む。
【００２１】
汎用演算に関係したユーティリティは、外科システム10の動作全般を可能にさせ、かつ、サポートする基本演算機能を提供するように構成される。汎用演算ユーティリティは、たとえば、高速グラフィックス処理のための機能、入力/出力（I/O）装置をサポートする機能、病院ネットワークへ接続する機能、データベースライブラリ（たとえば、インプラントデータベースおよび器具データベース）を管理する機能、システムセキュリティ（たとえば、ログイン機能、アクセス制限など）のための機能、および/または外科システム10の動作全般をサポートするため役立つ任意のその他の機能のような周知の特徴を含みうる。
【００２２】
データ記憶および検索に関係したユーティリティは、画像データ（たとえば、x線、コンピュータ断層撮影（CT）、磁気共鳴（MR）、陽電子放射断層撮影（PET）、単一光子放射断層撮影（SPECT）、超音波などのような任意の適当なイメージングモダリティを使用して取得された2次元または3次元画像データセット）、アプリケーションデータ、インプラントデータ、器具データ、解剖学的モデルデータ、患者データ、ユーザ嗜好データなどのような種々の形式のデータの記憶およびアクセスを可能にさせるように構成される。データ記憶および検索ユーティリティは、関連するデータを記憶し取り扱うため適切な任意の機能を含みうる。
【００２３】
コンピュータ支援外科に関係したユーティリティは、外科計画、ナビゲーション、および、基本的な画像ガイド付き外科能力を可能にさせるように構成される。たとえば、周知のように、CASユーティリティは、画像データセットから画像を生成し表示する機能、外科用器具の先端の位置および軸の方向を決定する機能、ならびに患者および画像データセットをトラッキングシステム40の座標系に位置合わせする機能を含みうる。これらの機能は、たとえば、コンピューティングシステム20が患者の解剖構造の1つまたは複数の画像に重畳された追跡対象の外科用器具の仮想表現を表示装置23に表示することを可能にさせ、外科処置中に追跡対象の器具の仮想表現をリアルタイムで更新することを可能にさせる。画像データセットから生成された画像は2次元でもよく、3次元画像データセットの場合、たとえば、画像データセットのセグメンテーションに基づく3次元再構成であってもよい。1枚より多い画像が表示装置23に表されるとき、コンピューティングシステム20は、好ましくは、様々な画像の間で追跡対象の器具の表現を統一させる。画像データセットから生成された画像に加えて、または、画像データセットから生成された画像に代えて、コンピューティングシステム20は、解剖学的モデル（たとえば、CADモデル、線画、スケッチ、漫画、芸術家のようなレンダリング、包括的なデータセットまたは変形されたデータセットなどに基づく）を使用しうる。
【００２４】
外科システム10のアプリケーションに関係したユーティリティは、外科計画およびナビゲーションでユーザを支援するように構成されたアプリケーション固有のプログラムを含む。アプリケーションユーティリティに関連付けられたプログラムは、種々の医療処置で使用されるように構成され得、および/または、特定の処置のためカスタム化されうる。たとえば、アプリケーションユーティリティは、従来の材料のインプラントと、オーソバイオロジクス、ドラッグデリバリーインプラント、および、セルデリバリーインプラントのようなより非標準的なインプラントとを含む、たとえば、人工膝関節置換術、部分的な人工膝関節置換術、人工股関節置換術、人工肩関節置換術、人工肘関節置換術、人工手関節置換術、人工足関節置換術、脊椎外科、ならびに/または、整形外科インプラントおよび/もしくは筋骨格系インプラントの取り付けのような一つまたは複数の整形外科処置に関係したプログラムを含みうる。アプリケーションユーティリティは、術前、術中、および、術後の取り組みを含む、外科計画およびナビゲーションの種々の局面を対象としうる。たとえば、アプリケーションユーティリティは、たとえば、システム初期化プロセス、計画プロセス、可視化プロセス、画像診断プロセス、位置合わせプロセス、およびキャリブレーションプロセスのような計画ならびにセットアップを対象にするプログラムまたはプロセスを含みうる。アプリケーションユーティリティは、たとえば、座標変換プロセスと、補間プロセスと、ツールおよび電力制御プロセスと、解剖構造位置決めプロセスと、モード制御プロセスと、安全プロセスと、オクルージョン検出アルゴリズムと、順運動学アルゴリズムのような物体トラッキングおよびシステム制御を対象にするプログラムまたはプロセスを含むこともある。アプリケーションユーティリティは、たとえば、ハプティック力計算プロセス、ハプティック力マッピングプロセス、ハプティック物体を生成するプロセス、および、ハプティックレンダリングアルゴリズムのようなハプティック装置30に関係したプログラムまたはプロセスを含みうる。アプリケーションユーティリティは、たとえば、外科処置の特定のステップに対応するページまたは画像を表示するソフトウェア、ユーザがある特定のタスクを実行することを促進するソフトウェア、およびフィードバック（たとえば、視覚フィードバック、聴覚フィードバック、触覚フィードバック、および/または力フィードバック）を行うソフトウェアのような外科処置中にユーザと通信するプログラムおよびプロセスを含むこともある。
【００２５】
ハプティック制御に関係したユーティリティは、ハプティック装置30の制御、性能、安定性、および/または安全性に関係した種々の機能を実行するように構成されている。たとえば、ハプティック制御ユーティリティは、リアルタイムオペレーティングシステム（RTOS）と、動き制御ソフトウェアと、ハプティック装置30の制御の高頻度の更新を生成するハードウェアおよびソフトウェアと、ハプティック装置30のフェイルセーフ動作（たとえば、ブレーキの制御、冗長なセンサの監視など）を保証するソフトウェアと、ならびに/または、ハプティック装置30の性能、安全性、および/もしくは安全性を改善または促進に適合する任意の他のユーティリティとを含むことがある。コンピュータ21がハプティック制御ユーティリティの動作要件をサポートするために十分な演算アーキテクチャを有するならば、ハプティック制御ユーティリティはコンピューティングシステム20のコンピュータ21上で実行されうる。コンピュータ21は、自立型でもよく、ロボットスタンドまたはアームに組み込まれていてもよい。たとえば、ハプティック制御と関連付けられたプロセスは、典型的に、コンピュータ21上で動く他のプロセスより高い動作周波数要件を有する。一態様では、ハプティック制御プロセスは、約2kHzの周波数で動作する。別の態様では、ハプティック制御プロセスは、約0.1kHzから約10kHzの範囲内の周波数で動作する。さらに別の態様では、ハプティック制御プロセスは、約500Hzから約2,400Hzの範囲内の周波数で動作する。別の態様では、コンピュータ21は、ハプティック制御プロセスによって要求された動作周波数（たとえば、約2kHz）を取得するため適した制御情報を供給する。好ましい態様では、コンピュータ31は、ハプティック装置30と一体化されるか、または、ハプティック装置30が埋め込まれている。コンピュータ21がハプティック制御プロセスの動作をサポートするために十分なアーキテクチャを有さないならば、コンピューティングシステム20は、ハプティック制御ユーティリティの実行用の補助的なコンピュータ31を含みうる。
【００２６】
コンピュータ31（図1に示されている）は、コンピュータ21と類似していてもよいが、好ましくは、たとえば、ハプティック装置30の動作周波数で制御情報を提供する必要性のようなハプティック装置30の固有の動作要件を満たすように構成される。コンピュータ31は、1つまたは複数の独立型またはネットワーク型コンピュータをさらに含みうる。一態様では、コンピュータ31は、少なくとも1.6GHzのプロセッサクロック速度と、少なくとも2GByteの不揮発性記憶装置（たとえば、ハードディスクドライブ、コンパクトフラッシュなど）と、少なくとも256MBのRAMと、400MHz以上のフロントサイドバスと、少なくとも1MByteのレベル2キャッシュメモリと、リアルタイムオペレーティングシステムとを備えたIntel互換x86 3U CompactPCIシングルボードコンピュータである。このような市販されている一態様は、QNX Software Systems Ltd. (Ottawa, Ontario, Canada)製のQNX6.1（またはそれ以降の）オペレーティングシステムと共に使用されるInova Computers GmbH (Kaufbeuren, Germany)製のICP-PM-1004-DG-8Aコンピュータを含む。
【００２７】
ハプティック制御ユーティリティに加えて、コンピュータ31は、ハプティック装置30がトラッキングシステム40からのデータを利用できるようにするプログラムを含みうる。たとえば、トラッキングシステム40は、追跡された物体ポーズ（たとえば、位置および方向）データを周期的に生成しうる。一態様では、物体ポーズデータは約30Hzで生成される。他の態様では、物体ポーズデータは、たとえば、約500Hz以上のように、より頻繁に生成される。物体ポーズデータは（たとえば、インターフェイス100bを介して）トラッキングシステム40からコンピュータ31へ転送され、たとえば、周知のようなノイズフィルタを使用するような任意の従来の方式で条件付けられうる。さらに、トラッキングシステム40がハプティック制御プロセスより低い周波数で動作する態様では、物体ポーズデータは、周知のような補間フィルタを使用して条件付けられうる。補間フィルタは、物体ポーズデータがより高い周波数のハプティック制御プロセスで使用できるようにするため離散的なデータサンプルの間のギャップを埋めることにより物体ポーズデータを平滑化する。コンピュータ31は、空間的アラインメントまたは対応を実現するために、一方の空間における座標を別の空間における座標にマッピング（または変換）する座標変換プロセスを含むこともある。たとえば、外科システム10は、追跡された物体の位置（たとえば、外科用ツール、患者の解剖構造など）を、コンピュータ31および/またはコンピュータ21上で動くプロセスによって使用される座標系にマップするために座標変換プロセスを使用しうる。周知のように、座標変換プロセスは、たとえば、剛体変換、非剛体変換、アフィン変換などのような任意の適当な変換技術を含みうる。
【００２８】
複数台のコンピュータ（たとえば、コンピュータ21およびコンピュータ31）をコンピューティングシステム20に組み入れることの1つの利点は、各コンピュータが独立に構成されうることである。したがって、コンピュータ21は外科計画およびナビゲーションのためカスタム化され得、コンピュータ31はハプティック装置30の性能、安定性、および/または安全性を制御するためカスタム化されうる。たとえば、コンピュータ31は、ハプティック制御システムへの信頼できる更新と、ハプティック装置30の安定した動作プラットフォームとを維持するため、リアルタイムオペレーティングシステム（RTOS）を含みうる。その一方、コンピュータ21は、コンピューティングシステム20がハプティック装置30と同じ程度の安定性を要求しないことがあるので、非RTOSを含みうる。したがって、コンピュータ21は、その代わりに、たとえば、グラフィックスプロセッシングのような外科ナビゲーションの特定の要件を満たすようにカスタム化されることがある。
【００２９】
別個の演算アーキテクチャを有する複数台のコンピュータの別の利点は、ハプティックシステムについての知識が限定されているソフトウェア開発者が、多種多様なハプティック装置と併せて使用され得る、コンピュータ21のためのCASユーティリティを作成し得ることである。同様に、CASについての知識が限定されているソフトウェア開発者が、特定のハプティック装置の性能、安定性、および/または安全性を高めることに重点が置かれたハプティックユーティリティを作成可能である。別々のコンピュータへの代替案として、ハプティック装置30およびコンピューティングシステム20の演算機能が、たとえば、単一コンピュータ、イメージング装置（たとえば、CT装置、MRI装置、蛍光透視装置など）のコンピューティングシステム、および/または、病院ネットワーク型コンピューティングシステムに組み込まれることがある。
【００３０】
図1に示されるように、コンピューティングシステム20はインターフェイス100aを介してハプティック装置30に連結されている。インターフェイス100aは物理インターフェイスおよびソフトウェアインターフェイスを含む。物理インターフェイスは、たとえば、有線インターフェイス（たとえば、シリアル、USB、イーサネット、CANバス、および/または、その他のケーブル通信インターフェイス）、および/または、無線インターフェイス（たとえば、無線イーサネット、無線シリアル、赤外線、および/または、その他の無線通信システム）などのいかなる公知のインターフェイスであってもよい。ソフトウェアインターフェイスは、コンピュータ21および/またはコンピュータ31に常駐することがあり、コンピューティングシステム20がハプティック装置30と通信し、ハプティック装置30の動作を制御することを可能にさせる。一態様では、ソフトウェアインターフェイスは、コンピューティングシステム20がコマンドをハプティック装置30へ発行することを可能にさせるユーティリティを含む。たとえば、コンピュータ21は、ハプティック装置30が特定のモード（たとえば、アプローチモード、ハプティックモード、フリーモード、入力モード、ホールドモード）に入ることを要求するコマンドをコンピュータ31へ送信することがある。これに応じて、コンピュータ31は、要求されたモードへ入ることが安全であるか、さもなければ、許容可能であることを検証するために、種々のパラメータをチェックし、ハプティック装置30を要求されたモードに入れるか、または、適切なエラーメッセージを返すようにプログラムされることがある。
【００３１】
ハプティック装置30は、患者に処置を実行するため外科用ツール50を移動させるユーザによって操作されるように構成された外科装置である。処置中に、コンピューティングシステム20は、たとえば、患者の解剖構造と、外科用ツール50の一部分の位置、方向、速度、および/または、加速度との間の関係に基づいて、ハプティック装置30を制御する制御パラメータを実施する。一態様では、ハプティック装置30は、（たとえば、ハプティック装置30を物理的に操作するユーザの能力を制限することにより）装置のユーザ操作に制限を加えるために制御される。別の態様では、ハプティック装置30は、ハプティックガイダンス（すなわち、触覚フィードバックおよび/または力フィードバック）をユーザに提供するため制御される。触覚フィードバックは、一般に、たとえば、振動のような触覚感覚を含み、一方、力フィードバックは、力（たとえば、運動に対する抵抗）および/またはトルクの形式のフィードバックを指す（「レンチ」としても知られている）。レンチは、たとえば、力、トルク、または、力とトルクの組み合わせの形式のフィードバックを含む。
【００３２】
コンピュータ支援外科（CAS）に連結されたハプティック装置30からのガイダンスは、外科医が積極的かつ正確に外科処置（たとえば、骨切除術）および局部的な治療（たとえば、脳内における）の実施を制御することを可能にさせる。たとえば、コンピューティングシステム20は、患者の解剖構造（たとえば、術前CT画像データ、超音波データ）を表すデータ、解剖構造と関連付けられた（または解剖構造に位置合わせされた）仮想（またはハプティック）物体、解剖構造に関するパラメータ（たとえば、解剖構造の一部分に関して定義された深さ）、および/または解剖構造に基づいて制御パラメータを決定するようにプログラムされうる。コンピューティングシステム20は、仮想物体と相対的なツール50の位置、パラメータ、および/または解剖構造に基づいて、力、トルク、および/または振動を生成するためにハプティック装置30を制御可能である。たとえば、ツール50は、解剖構造の表現と関連付けられた仮想境界への侵入に対して拘束され、および/または、解剖構造の表現に関して定義されたパラメータの超過に対して拘束されうる。したがって、動作中に、外科医がツール50を移動させるためにハプティック装置30を操作するとき、仮想経路はツール50を特定のターゲットへガイドするために使用され、仮想境界は切除形状を定義するため、またはツール50が重要な組織に接触することを阻止するために使用され得、所定のパラメータがツール50の移動を（たとえば、所定の深さに）制限するために使用されうる。
【００３３】
コンピューティングシステム20は、処置中に物理的な解剖構造の運動に応じて制御パラメータを調整するようにプログラムされることもある（たとえば、物理的な解剖構造の検出された運動を監視し、その後、検出された運動に応じて仮想物体を調整することによる）。このようにして、外科システム10は、外科部位の直接的な可視化を補完するか、または、置き換え、外科医のありのままの触覚感覚および物理的な器用さを増強し、従来のサイズの門脈（たとえば、長さが12インチ以上）から約1mm程度の小さい径を有する門脈を介して、身体内の種々の構造のターゲッティング、修理、および交換を容易化することが可能である。
【００３４】
整形外科アプリケーションでは、たとえば、ハプティック装置30は、骨開削プロセスにおける外科医の深い関与を維持した状態で、骨の適当な切削で外科医を支援することにより骨開削における不正確、予測不可能、および非再現性の問題に適用され、それにより正確な、再現可能な骨切除を可能にする。さらに、ハプティック装置30は骨切除術において外科医をハプティック的にガイドするので、外科医の技能レベルの重要性は小さい。その結果、様々な程度の技能および経験を備えた外科医が、正確で再現性のある骨切除を実行可能である。一態様では、たとえば、外科用ツールはハプティック装置30に連結されている。外科医は、ツールを握り動かすことにより、および/または、ツールを動かすためハプティック装置30を握り操作することにより、骨を開削するためツールを操作することが可能である。外科医が切除手術を実行しているとき、外科システム10は（トラッキングシステム40を用いて）ツールの位置を追跡し、殆どの場合に、外科医が作業空間内でツールを自由に動かすことを可能にさせる。しかし、ツールが患者に関する位置合わせの際に仮想境界に近接しているときは、外科システム10は、外科医がツールで仮想境界に侵入することを制約するのに役立つハプティックガイダンスを行うためハプティック装置30を制御する。たとえば、仮想境界はハプティック物体によって定義されることができ、ハプティックガイダンスは、ハプティック物体にマッピングされ、仮想境界の方向へのさらなるツールの動きに対する抵抗力として外科医によって体験される出力レンチ（すなわち、力および/またはトルク）を含みうる。したがって、外科医は、あたかもツールが壁のような物理的な物体に衝突したかのように感じうる。このようにして、仮想境界は仮想切除ガイドとして機能する。したがって、ハプティック装置30は、仮想境界と相対的なツールの位置に関する情報を外科医に通信し、実際の切除プロセスにおいて物理的なガイダンスを行う。ハプティック装置30は、たとえば、本発明の譲受人に所有され、参照によりその全体が本明細書に組み入れられる米国特許出願第10/470,314号（公開番号US2004/0128026）に記載されるように、外科用ツールを操作するユーザの能力を制限するように構成されることもある。
【００３５】
ハプティック装置30は、触覚フィードバック（たとえば、振動）、および/または力フィードバック（たとえば、レンチ）をユーザに伝達するため適合した機械的または電気機械的装置を含みうる。ハプティック装置30は、ロボットシステムでもよく、非ロボットシステムでもよく、または、ロボットシステムと非ロボットシステムの組み合わせであってもよい。たとえば、ハプティック装置30は、2003年3月6日に出願され、2004年2月5日に公開された米国特許出願第10/384,072号、2003年3月6日に出願され、2004年2月19日に公開された米国特許出願第10/384,077号、2003年3月6日に出願され、2004年2月19日に公開された米国特許出願第10/384,078号、2003年3月6日に出願され、2004年2月19日に公開された米国特許出願第10/384,194号、2003年7月16日に出願され、2004年6月3日に公開された米国特許出願第10/621,119号、および/または、2005年2月22日に出願された米国特許仮出願第60/655,642号に記載されているようなハプティック装置を含みうる。上記の公開された各出願は本出願の譲受人によって所有され、参照により全体として本明細書に組み入れられる。
【００３６】
動作中に、コンピューティングシステム20、ハプティック装置30、およびトラッキングシステム40は、外科システム10が外科処置中にハプティックガイダンスをユーザに提供することを可能にするため協働する。外科システム10は、ユーザが仮想環境と相互作用できるように、力フィードバックハプティックインターフェイス（すなわち、ハプティック装置30）を使用して人の触覚システムをシミュレーションすることによりハプティックガイダンスを提供する。ハプティック装置30は、仮想環境のそのままの感触の感覚、および、仮想環境内の仮想（またはハプティック）物体の感覚をユーザに伝達するためコンピュータ制御された力を生成する。コンピュータ制御された力は、仮想物体の触覚感覚をユーザに感じさせるためユーザに表示される（すなわち、反映されるか、または伝達される）。たとえば、ユーザがツール50を操作するとき、外科システム10はツール50の位置および方向を判定する。仮想環境内でツール50の仮想表現と仮想物体との衝突が検出される。衝突が発生するならば、外科システム10は、仮想物体への仮想ツールの侵入深さに基づいてハプティック反作用力を計算する。計算された反作用力は、仮想物体面の全体にマッピングされ、適切な力ベクトルがハプティック装置30を介してユーザへフィードバックされる。
【００３７】
本明細書において使用されるように、「仮想物体」（または「ハプティック物体」）という用語は、様々な物体を参照するために使用され得る。たとえば、仮想物体は、インプラントまたは外科用ツールのような物理的な物体の表現であってもよい。あるいは、仮想物体は、解剖構造から除去されるべき物質、解剖構造に残されるべき物質、および/または、ツール50との接触が回避されるべき解剖構造（またはその他の物体）を表現することがある。仮想物体は、通路、ガイドワイヤ、境界、輪郭、または、その他の限界若しくは区分を表現することもある。
【００３８】
ユーザが仮想環境と相互作用できるようにするため、外科システム10はハプティックレンダリングプロセスを利用する。ハプティックレンダリングは、仮想物体とのユーザの相互作用に応じて力を計算し印加するプロセスである。一態様では、このようなプロセスを実行するデータフローが図2に図式的に表現されている。動作中に、一般に、ハプティック装置30（ブロック2500）の位置センサ（ブロック2502）はデータをソフトウェアモジュール、すなわち、順運動学プロセス（ブロック2504）に供給する。順運動学プロセスの出力は座標変換プロセス（ブロック2506）に入力される。ハプティックレンダリングアルゴリズム（ブロック2508）は、座標変換プロセスからデータを受信し、力マッピングプロセス（ブロック2510）に入力を供給する。力マッピングプロセスの結果に基づいて、ハプティック装置30のアクチュエータ（ブロック2512）は適切なハプティックレンチ（すなわち、力および/またはトルク）をユーザへ伝達するために作動させられる。ブロック2502の位置センサおよびブロック2512のアクチュエータは、図1中のハプティック装置30のアーム33と関連して上述されている。ブロック2504の順運動学プロセスおよびブロック2506の座標変換プロセスは図5のステップS708に関連してより詳細に後述される。ブロック2508のハプティックレンダリングアルゴリズムおよびブロック2510の力マッピングプロセスは後述されている。
【００３９】
ハプティックレンダリングプロセスは、たとえば、それぞれが参照により全体として本明細書に組み入れられる、米国特許第6,111,577号；C.B. Zilles & J.K. Salisbury, “A constraint-based god-object method for haptic display”, Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, Vol.3, pp.146-51, 1995；T.V. Thompson II, D.E. Johnson & E. Cohen, “Direct haptic rendering of sculptured models”, Proceedings of the Symposium on Interactive 3D Graphics, pp. 167-76, 1997；K. Salisbury & C. Tar, “Haptic rendering of surfaces defined by implicit functions”, Proceedings of the ASME Dynamic Systems and Control Division, DSC-Vol.61, pp.61-67, 1997；および/またはJ.E. Colgate, M.C. Stanley & J.M. Brown, “Issues in the haptic display of tool use”, Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, Vol.3, pp,140-45, 1995に記載されているようなハプティックレンダリングプロセスのような任意の適当なハプティックレンダリングプロセスを含みうる。
【００４０】
ハプティックレンダリングプロセスによって作成された仮想環境は、ツール50の仮想表現と相互作用する仮想（またはハプティック）物体を含む。仮想物体とツール50の仮想表現との間の相互作用は点ベースまたは線ベースであってもよい。好ましい態様では、外科システム10は、仮想点またはハプティック相互作用点（HIP）のみが仮想環境内の仮想物体と相互作用する、点ベースのハプティック相互作用を利用する。HIPは、たとえば、ツール50の先端のようなハプティック装置30の物理的な点に対応する。HIPは仮想ばね/ダンパーモデルによって物理的なハプティック装置30上の物理的な点と連結されている。HIPが相互作用する仮想物体は、たとえば、表面707およびハプティック力法線ベクトルFnを有するハプティック物体705（図3に示されている）でありうる。侵入深さdiは、HIPと表面707上の最短点との間の距離である。侵入深さdiは、ハプティック物体705内部へのHIPの侵入の深さを表現し、ハプティック装置のユーザによって感じられる力Fnを部分的に決定する。
【００４１】
仮想（またはハプティック）物体は、たとえば、3Dジオメトリックプリミティブ物体、3Dポリゴン物体、数学的な式、コンピュータモデル、サーフェスモデル、および/または、ボクセルアレイを使用してモデル化され得る。ハプティック物体は、静的、準静的、動的、連続性、不連続性、時変性、および/または、ある時点に限られる存在でありうる。一態様では、ハプティック物体は、ツール位置、方向、速度、および/または加速度のうちの一つまたは複数の関数を使用してモデル化される。したがって、外科的骨切除術の場合、ハプティックレンダリングプロセスは、出力レンチ対ツール位置のマッピングを生成しうる。マッピングは、ユーザへフィードバックされた出力レンチが仮想物体への仮想ツール（またはHIP）のさらなる侵入を妨害するため十分であるように構成されうる。このようにして、仮想切除境界が確立される。この仮想切除境界は、患者の物理的な解剖構造、解剖構造の画像、および/または、その他の対象となる座標系と関連付けられる（たとえば、位置合わせされる）。ハプティックレンダリングプロセスによって表現されたハプティック物体は、経路（たとえば、ガイドワイヤ）として機能することがあり、反発的であることがあり（たとえば、ツール50がハプティック物体の内部に入ることに反発するように構成されることがあり）、容器として機能することがあり（たとえば、ツール50をハプティック物体の内部に維持するために）、ならびに/または、反発する部分および収容する部分を有することがある。
【００４２】
図4に示されるように、複数のハプティック物体701は、各ハプティック物体701からの力ベクトルFが合成ハプティック力ベクトルFvを生じるため合成されるように重ね合わせされうる。一態様では、各ハプティック物体701からの出力は、慣性座標系に関して、線形特性を有するカルテシアン（Cartesian）力ベクトルを含む。ハプティック物体の最大数は計算コストに基づいて決定されうる。
【００４３】
ハプティック物体は、たとえば、解剖学的に外形が合わされたインプラント形状、敏感な構造（たとえば、関節内解剖構造）のための保護境界、画像から生成された腫瘍境界、および、インプラントコンポーネントのインビボアセンブリのための仮想固定具のような、任意の所望の形状を含むようにカスタム化されうる。一態様では、ハプティック物体は患者の疾病状態に合うように独自の外形が定められうる。たとえば、ハプティック物体は、病的な骨だけを取り囲む仮想切除境界を定義しうる。したがって、ハプティック物体は、健康な周囲の骨を残しながら病的な骨を除去する際にユーザをガイドするため使用されうる。このようにして、外科システム10は、ユーザが、従来の切除治具および鋸ガイドでは不可能である複雑な幾何形状および曲線を含むカスタム化された様式で骨を削ることを可能にする。その結果として、外科システム10は、サイズがより小型であり、かつ、患者の独自の疾病状態に適合した、骨保存外科処置およびインプラント設計を容易化する。
【００４４】
ハプティック物体は、表示装置23に図式的に提示されうる、関連する空間的または幾何学的表現を有しうる。図式的表現は、役に立つ情報をユーザに伝達するように選択されうる。たとえば、図1に示されるように、ツール50を外科部位にガイドする際にユーザを支援するように構成されたハプティック物体300は、漏斗形状のボリューム（volume）として図式的に表現されうる。物理的なツール50に対応する仮想ツールが進み、ハプティック物体300と相互作用するとき、ツール50が外科部位へガイドされるようにハプティック力がユーザに反映させられる。あるいは、ハプティック物体はガイドワイヤとして図式的に表現されることもある。仮想ツールが進み、ハプティック物体と相互作用するとき、ツール50がガイドワイヤに沿って外科部位へ直接的にガイドされるようにハプティック力がユーザに反映させられる。一態様では、インプラントのための仮想切除境界を定義するハプティック物体は、インプラントの形状に実質的に対応する形状を有する図式的画像として表示装置23に描かれうる。したがって、大腿骨コンポーネントの仮想切除境界を定義するハプティック物体は、対応する図式的表現を有することになる。同様に、脛骨コンポーネントの仮想切除境界を定義するハプティック物体は、異なった対応する図式的表現を有することになる。
【００４５】
単純なボリュームを有するハプティック物体は、好ましくは、平面、球体、錐体、円柱体などのような、3D暗示サーフェス物体の組み合わせを用いてモデル化される。たとえば、図3に示されているハプティック物体705は球体である。ハプティック物体705の表面は連続的に滑らかであり、侵入深さ（di）および物体の表面に垂直なハプティック力ベクトル（Fn）への解は、ハプティック相互作用点（HIP）に基づいてコンパクトな数学的サーフェス関数から、高くない固定計算コストで得ることができる。より複雑な物体では、ポリゴンベースのハプティックレンダリング技術が使用されうる。
【００４６】
図5は、本発明によるポリゴンベースのハプティックレンダリングプロセスの態様を示している。ステップS702において、ユーザが相互作用し得る仮想環境が、たとえば、コンピュータ支援設計（CAD）ソフトウェアを使用して生成される。仮想環境は、たとえば、明示サーフェスモデルを使用して作成されることもある。一態様では、仮想環境は、複数のポリゴンサーフェス物体を含む3D仮想（またはハプティック）物体を含む。図6に示されるように、各サーフェス物体は好ましくは三角形であり、3個のノード（または頂点）v0、v1、およびv2と、法線ベクトルnとによって表現される。仮想物体は、たとえば、ツール50の半径分だけ仮想物体の壁をオフセットさせることにより、ツール50の物理的な径を補償するため再成形されうる。リアルタイムアプリケーションにおいて重要である計算性能を改善するため、ポリゴンサーフェス物体は、たとえば、所望の空間解像度より小さいポリゴンを除去するために、再メッシュ化されることがある。仮想物体が閉じた空洞であるとき、CADシステムを使用した仮想物体の作成は、外側物体面と内側空洞面の2つの表面を有する仮想物体を生成することにより簡略化されうる。しかし、内側空洞面だけを使用すると、レンダリングのための所要ボリュームおよびポリゴン物体（たとえば、三角形、多角形など）の数を有利に削減できる可能性がある。さらに、裏面のない（unifaced）閉じた仮想空洞が、CADシステムを使用して仮想ソリッド物体を作成し、サーフェスメッシュを作成し、各ポリゴン物体の法線ベクトルが内側を向くように面を反転することによって生成されうる。一態様では、レンダリングプロセスは、閉じた仮想物体への一方向性の入場動作だけをサポートすることが可能であり、HIPは外側から内側へ移動する場合に限って仮想物体を通過することを許可される。
【００４７】
図5に戻って、ステップS704において、ハプティックレンダリングプロセスは、仮想環境内のポリゴンサーフェス物体のボクセルマップを作成する。ボクセルマップを作成するため、仮想環境内の仮想物体は、ポリゴンサーフェス物体の数を削減し、不必要な衝突検出チェックを回避するため、より小さいセルまたは体積要素（ボクセル）へ空間的に区分される。図7に示されるように、仮想物体はni×nj×nkのグリッドに分割される。グリッドは、規則的に間隔があいていてもよく、解像度が変化してもよい。各ボクセルは、ボクセルを占領するか、またはボクセルと交差するポリゴンへのポインタを有する。ポリゴンの組が与えられると、以下の段階によってボクセルルックアップテーブルが構築される：対象となるポリゴンのポリゴンデータ（すなわち、頂点v0、v1、およびv2のxyz成分）を取り出し；ポリゴンの周りに有界ボックスを作成し；ポリゴンの一意のアイデンティティ番号を有界ボックス内にあるボクセルに加え；ボクセルを占めるポリゴンの総数を増加させる。これらの段階は、最後のポリゴンが処理されるまで繰り返される。図6（ポリゴン基準フレーム）および図7（ボクセル基準フレーム）に示されるように、ポリゴンフレーム中の点（p）は、sがボクセルサイズであるとして、式vijk=(int)floor(p/s)を使用してボクセルフレームに変換される。ボクセルルックアップテーブルおよびポリゴンルックアップテーブルの例は、それぞれ図8および9に示されている。
【００４８】
図5のステップS706において、ハプティックレンダリングプロセスは、ターゲット点またはターゲット領域へのガイドラインを作成する。ガイドラインは、HIPを特定の場所へガイドする経路または仮想ガイドワイヤとして機能する。ガイドラインは、たとえば、ツール50が重要な解剖構造を避けるように、ユーザによる物理的なツール50の動きをガイドするために役立つ。ガイドラインは、ユーザが横切ることができない閉じたハプティックボリュームにも役立つ。ガイドラインの実施は、仮想球体720を示す図10を参照して説明する。
【００４９】
球体720は、球体720の中心721および半径722によって定義されるアクティブゾーンを含む。HIPがアクティブゾーンの外側であるとき、ユーザはハプティック装置30を自由に動かすことが可能である。HIPがアクティブゾーンに入るとき、ハプティック装置30は、半径722に沿ってガイドラインセグメントが作成されるアプローチモードに移される。ガイドラインセグメント722は、たとえば、球体720の面上の入射点（Pe）723からターゲット点（Pt）721まで延びる。通常、球体720の中心はターゲット点と一致する（または、少なくともターゲット領域の範囲内にある）。ガイドラインセグメント722が始動されると、HIPはガイドラインセグメント723に沿って自由に移動可能である。ガイドラインセグメント722から逸れるHIPの動き（たとえば、ガイドラインセグメント722と直交する動きの試みによる）は、ユーザへフィードバックされる抵抗力を生じさせる。HIPがターゲット点へ接近すると、HIPの現在位置からターゲット点までの距離が監視される。この距離が限界半径より小さいとき、HIPの動作は、たとえば、一方向に拘束された仮想限界球体724を実施することにより、制限される。限界球体724の半径は、HIPが移動してターゲット点により接近するにつれ縮小される。HIPからターゲット点までの距離が切り替え半径より小さいとき（図10において切り替え球体725によって表される）、仮想物体のハプティックレンダリングが始まる。
【００５０】
図5のステップS708において、ハプティックレンダリングプロセスは物理的なHIP（たとえば、ツール50の先端）を仮想空間にマッピングする。たとえば、図2の順運動学プロセス（ブロック2504）は、慣性基準フレーム（Ri）に関して物理的なHIPのカルテシアン位置を計算する。図2の座標変換プロセス（ブロック2506）は、図11に示されるように、慣性基準フレーム（Ri）と、ポリゴンフレーム（Rp）（ポリゴン仮想物体に付随した基準フレーム）と、ボクセルフレーム（Rv）（ボクセルアレイに付随した基準フレーム）との間で座標変換を実行する。ハプティックレンダリングプロセスがポリゴン物体基準フレーム（Rp）に関してHIPの位置を決定すると、ハプティックレンダリングプロセスはステップS710へ進み、占領されたボクセルおよび近傍ボクセルを調べることにより候補ポリゴン物体を探索する。ステップS712において、ハプティックレンダリングプロセスは、衝突（たとえば、最後のレンダリングサイクルのときから、HIPがポリゴン物体を通過したこと）をチェックし、所望の仮想プロキシ挙動（図12、13に関連して後述されているような）に基づいて仮想プロキシ点位置（たとえば、仮想物体の面に沿ったHIPの拘束位置）を決定する。ステップS714において、ツール座標において予め定められた所望の剛性行列および減衰行列が慣性基準フレーム座標に変換される。ステップS716において、ハプティック装置30を介してユーザへフィードバックされるべきハプティック力は、HIPをハプティック装置30に連結する仮想ばねおよび減衰力によって定められた仮想面の所望の硬さに基づいて計算される。ステップS718において、計算されたハプティック力がハプティック装置30を介してユーザに表示されるか、または反映される。
【００５１】
図12および13に示されるように、初期仮想プロキシ点の位置は、現在の時点tのHIPの位置（HIP(t))と、前の時点(t-1)のHIPの位置（HIP(t-1))とに基づいて決定されうる。たとえば、HIPが仮想物体の外側であるとき、ハプティックレンダリングプロセスは、仮想物体と、位置HIP(t)と位置HIP(t-1)との間に延びるラインセグメント(L)とを含むポリゴンサーフェス物体間の交差を検出することにより、HIPと仮想物体の面との間の初期接触をチェックする。初期仮想プロキシ点の位置VPtの位置は、ラインセグメント(L)とポリゴンサーフェス物体との交点として計算される。
【００５２】
図14は、本発明によるポリゴンサーフェス物体に基づくハプティックレンダリングアルゴリズム（図2のブロック2508）の態様を詳しく説明するフローチャートを示している。ステップS100において、HIP(t)の位置は更新され、ポリゴン基準フレームに変換される。ステップS101において、アルゴリズムは、衝突検出フラグ(t-1)の値が1であるかどうか、すなわち、衝突が検出されたかどうかを判定する。衝突検出フラグがセットされていないならば、すなわち、衝突が(t-1)で検出されていないならば、ステップS103において、アルゴリズムはHIP(t)をボクセル座標へマッピングする。ステップS105において、アルゴリズムは、HIP(t)がボクセル有界ボックスの内側であるかどうかを判定する。もし内側でないならば、衝突はこの時点で検出されず、アルゴリズムはステップS115へ進み、ユーザによって感知されるハプティック力は零にセットされ、ステップS117へ進み、衝突検出フラグ(t)が零にセットされ、ステップS119へ進み、時刻がt=t+1へ進む。ステップS105でHIP(t)がボクセル有界ボックスの内側であると判定されるならば、アルゴリズムはステップS107へ進み、ボクセルルックアップテーブルからHIP(t)のラインセグメントに沿って候補ポリゴンを探索する。ステップS109において、アルゴリズムはポリゴンルックアップテーブルからポリゴン情報を取得する。ステップS111において、アルゴリズムはHIP(t)のラインセグメントとポリゴンとの交差をテストし、ステップS113において、初期衝突が検出されたかどうかを判定する。衝突が検出されないならば、アルゴリズムは、上述されるように、ステップS115、S117、およびS119へ進む。衝突が検出されるならば、アルゴリズムはステップS132へ進む（後述）。
【００５３】
これに対して、ステップS101において、衝突検出フラグ(t-1)の値が1であるならば、アルゴリズムはフローチャートの右側の分岐を辿る。ステップS102において、アルゴリズムはHIP(t)をボクセル座標へマッピングする。ステップS104において、アルゴリズムはボクセルルックアップテーブルからHIP(t)での近傍ポリゴンを探索する。ステップS106において、アルゴリズムはポリゴンルックアップテーブルからポリゴン情報を取得する。ステップS108において、各近傍ポリゴンは、HIP(t-1)からHIP(t)へのラインセグメントと交差しているかどうかを判定するためにテストされる。ステップS110において、アルゴリズムは、HIP(t)がポリゴンから抜け出たかどうかを判定するためにこの情報を使用する。もし抜け出たならば、HIPはもうハプティック物体に侵入しておらず、アルゴリズムは、上述のように、ステップS115、S117、およびS119へ進む。
【００５４】
ステップS110において、HIPがポリゴンから抜け出ていないことが判定されるならば、アルゴリズムはステップS112へ進み、アルゴリズムは、ポリゴンの対応する面の法線ベクトルに沿って、各近傍ポリゴンにHIP(t)を投影する。図15を参照すると、投影されたHIP(t)がポリゴン内であるならば、アルゴリズムは、ポリゴンをオン状態ポリゴン（On-Polygon）としてセットし、交点を保存する。そうでなければ、アルゴリズムは、投影された（ポリゴンの平面内のすべてのうち）HIP(t)に最も近いポリゴンの境界上の点を見つけ、この点を保存する。このプロセスは近傍ポリゴン毎に繰り返される。次に、アルゴリズムは、前の時間サイクルからのアクティブポリゴンAP(t-1)がステップ22においてオン状態ポリゴンとしてセットされていたかどうか、および、単一のポリゴンだけが現在のサイクルにおいてオン状態ポリゴンとしてセットされているかどうかに基づく判定点を有する。それぞれの場合は後述されるように取り扱われる。
【００５５】
ステップS114において、アルゴリズムは、前のアクティブポリゴン（仮想プロキシ点が接触していた）が依然としてオンポリゴン状態であるかどうかを判定する。もしそうであるならば、ステップS124（アクティブポリゴン優先）において、このポリゴンサーフェスは、他のポリゴンがオン状態ポリゴンとして同定されているとしても、優先してアクティブポリゴンである。したがってAP(t)は維持され、仮想プロキシ点VP(t)はアクティブポリゴン面上の最短点にセットされる。この仮想プロキシ点（時点(t)でのVP(t)）は、HIP(t)から最も近いアクティブポリゴン面に法線を引くことによって決定される。
【００５６】
たとえば、図15aは、2個の隣接している面540および542によって定義された仮想物体の凸型部を示している。t-1におけるHIPが位置544であったとき、面540はオン状態ポリゴンであり、542はオン状態ポリゴンではない。t-1における仮想プロキシ点位置は位置548にある。HIPが位置546へ移動するならば、面540および542の両方がオン状態ポリゴンであり、位置550および552がプロキシ点位置の候補である。この状況において、面540はアクティブポリゴンとして選択され、プロキシ点位置は位置550で更新される。このようにして前のアクティブポリゴン優先権を認めると、プロキシ点に位置552を選択することが阻止され、プロキシ点位置と、結果として得られるユーザが経験するハプティック相互作用力に、不自然なジャンプが生じる。すなわち、HIPがHIP(t-1)における位置544からHIP(t)546へ移動するとき、ユーザによって感じられる力は面540に対し垂直であるべきであり、面542と垂直になるように方向を非連続的に変更すべきでない。
【００５７】
ステップS114において、前のアクティブポリゴンがオン状態ポリゴンではないと判定されると、アルゴリズムは、単一のオン状態ポリゴンが検出されるかどうかを判定するためにステップS116へ進む。単一のオン状態ポリゴンがステップS116において検出されないと、アルゴリズムはステップS120において再度チェックを行う。単一のオン状態ポリゴンがステップS116において検出されると、アルゴリズムはステップS118へ進み、ステップS120において単一のオン状態ポリゴンを再度チェックする前に、凹型コーナーのオン状態ポリゴンを増大させる。単一のオン状態ポリゴンがステップS120において検出された場合、アルゴリズムはステップS126へ進み、後述されるように新しいポリゴンでアクティブポリゴンを更新する。単一のオン状態ポリゴンがステップS120において検出されない場合、アルゴリズムはステップS122へ進み、複数のオン状態ポリゴンが検出されるかどうかを判定する。複数のオン状態ポリゴンが検出されると、アルゴリズムはステップS128へ進み、後述されるような力ベクトル偏差規準に基づいてアクティブポリゴンを選択する。そうでなければ、アルゴリズムはステップS130へ進み、後述されるような最小力規準に基づいてアクティブポリゴンを選択する。
【００５８】
ステップS126（オン状態ポリゴン優先）において、AP(t)は新しいオン状態ポリゴンで更新され、VP(t)はアクティブポリゴン面上の最短点にセットされる。たとえば、図16に示されるように、仮想物体は2つの隣接した面554および556を有する。時点(t-1)で、HIPは位置558にあり、プロキシ点は位置562にある。HIPが位置558から位置560へ移動するにつれて、HIPが面境界線564を越えると、面556がオン状態ポリゴンになり、位置566が新しいプロキシ点位置になる。したがって、新しい単一のオン状態ポリゴンが検出されると、その新しい単一のオン状態ポリゴンがアクティブポリゴンとなる。
【００５９】
ステップS128（連続面優先）において、AP(t)は力ベクトル偏差規準に基づいて選択され、VP(t)はアクティブポリゴン面上の最短点にセットされる。アルゴリズムは、3つの面568、570、および572によって定義された仮想物体の凸型部を表している図17に示されるように、複数の新しいオン状態ポリゴンを検出する。HIPが位置574から位置578へ移動すると、アルゴリズムは2個の新しいオン状態ポリゴン面570および572を検出する。したがって、位置580および582は新しい仮想プロキシ点位置の候補である。この状況において、アルゴリズムは、減衰成分を除いて、力ベクトルの可能な候補を計算し、前の力ベクトル偏差からの力ベクトル偏差を比較する。アルゴリズムは、以下の目標関数を最小化するようにアクティブポリゴンを決定する：
2009524149.tif 000003
式中、fsi,tはHIPの現在位置とi番目のポリゴン上の仮想プロキシ点の可能な位置とによって定義されたばね力ベクトルの単位ベクトルを表し、ft-1は前の時点で表示されたハプティック力の単位ベクトルを表す。一態様では、面570が新しいアクティブポリゴンであり、位置580が新しいプロキシ点位置である。
【００６０】
ステップS130（最小力優先）において、AP(t)は最小力規準に基づき、VP(t)はアクティブポリゴン面上の最短点にセットされる。図18に示されるように、HIPは、オン状態ポリゴンが検出され得ない位置にある。図18は、3つの面584、586、および588によって定義される仮想物体の凹型部を示している。HIPが位置590から位置594へ移動するとき、オン状態ポリゴンである面は存在しない。位置596が面586および584への最短点であり、位置598が面588への最短点である。この状況において、アルゴリズムは、現在のHIPと可能なプロキシ点位置との間の距離を計算し、以下の目標関数を最小化するために仮想プロキシ位置を決定する：
2009524149.tif 000004
式中、xi,vpはi番目のポリゴン上の可能な仮想プロキシ点の位置を表し、xhipは現在のハプティックインターフェイス点の位置を表している。この状況では、アルゴリズムは、オン状態ポリゴンとして、処理順序に応じて面584または面586のいずれかをセットし、位置596がプロキシ点位置となる。
【００６１】
ステップS132（接触ポリゴン優先）において、AP(t)は交差したポリゴンで更新され、VP(t)はアクティブポリゴン面上の最短点にセットされる。ハプティックインターフェイス点が、アルゴリズムが1つのオン状態ポリゴン物体および複数の凹面を検出した凹型コーナーにあるとき、アルゴリズムはオン状態ポリゴン物体を増大させる。この状況では、アプリケーションは、連続的なハプティックレンダリングが凹型コーナーで行えるように、凹型ポリゴン面をオン状態ポリゴンにセットする。図19および20は、3つの面500、502、および504によって表された凹型コーナー部を示している。図19はコーナーのx-y平面図であり、図20はコーナーのy-z平面図である。ハプティックインターフェイス点が位置506（プロキシ点位置508を伴う）から、図19の紙面へ入るか、または紙面から出る、位置510（図20）へ移動するとき、面504は唯一のオン状態ポリゴン物体になる。アルゴリズムがオン状態ポリゴン優先動作によって面504をアクティブポリゴン面としてセットし、位置514をプロキシ点位置として選択する状況を避けるために、アルゴリズムは、2個の凹面500および502をオン状態ポリゴン物体に追加する。その結果として、位置512は連続面優先動作に従ってプロキシ点位置になる。
【００６２】
ステップS134において、定数パラメータとしてツール座標で定義された剛性行列および減衰行列が慣性座標フレームに変換される。物理的なハプティックシステム30が、ケーブル駆動式トランスミッションおよび直動式トランスミッションのような様々な伝達装置を有するとき、物理的なシステムは異なる方向に異なる動態特性を有するので、等方性の空間的な剛性利得および減衰利得は不安定性を引き起こす可能性がある。この理由のため、ツール座標に関して定義されうる空間的な剛性行列および減衰行列は、慣性座標フレームに変換する必要がある。アルゴリズムは、現在の回転行列および並進行列に基づいて随伴変換行列を計算し、空間的な剛性行列および減衰行列を変換する。TKsおよびIKsがそれぞれツールフレームおよび慣性フレームにおいて測定された剛性行列を示すことにする。Adgが、
2009524149.tif 000005
として与えられた随伴変換行列を示すことにする。
【００６３】
ベクトルp=(px,py,pz)Tとすると、
2009524149.tif 000006
は、行列-ベクトル積としてクロス乗積を表現するため使用される反対称行列：
2009524149.tif 000007
を示し、ここで、Rは回転行列であり、pは並進ベクトルである。
【００６４】
アルゴリズムは慣性フレームで剛性行列：
2009524149.tif 000008
を計算する。
【００６５】
ステップS136において、アルゴリズムは、フックの法則に従って、ハプティックインターフェイス点位置および仮想プロキシ点位置に基づいて、ばねハプティック力ベクトル：
2009524149.tif 000009
を計算し、ここで、xvpは現在の仮想プロキシ点の位置を表し、xhipは現在のハプティックインターフェイス点の位置を表す。
【００６６】
ステップS138において、アルゴリズムは、ハプティックインターフェイス点と仮想プロキシ点との間の相対運動に基づいて減衰ハプティック力ベクトル：
2009524149.tif 000010
を計算し、ここで、
2009524149.tif 000011
は仮想プロキシ点の速度を表し、
2009524149.tif 000012
はハプティックインターフェイス点の速度を表し、IKDは慣性フレームにおける空間的な減衰行列を表す。
【００６７】
ステップS140において、減衰力とばね力の和が、所望の力出力として物理的なハプティック装置30へ送られる（図5のステップS718）。力フィードバックを出力するためにハプティック装置30のアクチュエータ（図2のブロック2512）を制御する前に、力マッピングプロセス（図2のブロック2510）は所望の力Fdesiredをジョイントトルクτに変換する：
2009524149.tif 000013
式中、JTは転置ヤコビアンである。その後、コンピューティングシステム20はジョイントトルクτを出力するためにハプティック装置30のアクチュエータを制御する。
【００６８】
ステップS142において、衝突検出フラグ(t)は1にセットされる。ステップS144において、時刻(t)が(t+1)へ進む。
【００６９】
ハプティック装置ドライブ（たとえばモーター）と位置出力（たとえばジョイント）との間のコンプライアンス、バックラッシ、ヒステリシス、または非線形性を伴うトランスミッションが存在する可能性がある場合、トランスミッションのドライブ端と負荷端の両方に位置センサを組み込むことが有利である。実際の値を最も正確に反映することより、負荷端センサが、すべてのジョイント位置および端点位置を計算するため使用される。ドライブ端センサは、上記のF減衰のような任意の減衰計算において速度を計算するため使用され、トランスミッションのダイナミクスを励起することを避けるために役立つ。
【００７０】
一態様によれば、ハプティック装置30の所望の力フィードバック（または出力レンチ）は、解剖構造の表現と関連付けられた仮想（またはハプティック）境界に対するハプティック装置30の一部（たとえばツール50）の近接性に基づいて決定される。したがって、ツール50がハプティック境界から十分な距離に配置されているならば、コントローラはハプティック力を命令することがなく、ユーザは、何もない空間を探るかのように、ツール50を自由に動かすことができる。
【００７１】
しかし、ツール50がハプティック境界に接近または接触すると、コントローラは、適切なレンチをユーザの手に加えるように、モーターへトルクを命令する。好ましくは、力フィードバックの大きさは、ツール50が仮想境界に接近するにつれて増加し、発振または望ましくない振動を誘発するかもしれない不連続的な段差を与えない。たとえば、ツール50がハプティック境界に接近するとき、ハプティック装置30は、ツール50の移動を減速および/または停止する反発力または反作用力をユーザが知覚するように、ユーザによるツール50の移動方向と逆向きに力を加えうる。一態様では、ツール50がハプティック境界へ向かって移動し続けるときの力の増加率は、たとえば5N/mmから50N/mmまでの範囲に入ることがある。別の態様では、力の増加率は約20N/mmであってもよい。このようにして、ユーザはハプティック境界に深く侵入し過ぎないように拘束される。
【００７２】
ツール50がハプティック境界と接触するとき、力は、あたかもツール50が壁のような物理的な物体と衝突したかのようにユーザが感じるような力であってもよい。力の大きさは、ユーザがハプティック境界に侵入することを阻止することがあるが（たとえば約100N以上の大きさ）、好ましくは、ユーザが所望であればハプティック境界を破ることができるようにセットされる（たとえば約20Nから約60Nの範囲の大きさ）。したがって、コンピューティングシステム20は、ユーザが力フィードバックに打ち勝ち、ハプティック装置30を所望の位置へ動かすことを許容するようにプログラムされうる。このようにして、ハプティック装置30はハプティック境界を不注意で侵害しないようにユーザを拘束するが、ユーザには、ハプティック装置30にまさって、外科処置を完全に制御し続けるという選択肢がある。
【００７３】
一態様では、外科システム10は、特有のユーザのためハプティック物体の力フィードバック機能をカスタム化するハプティックチューニング機構を含む。このような機構は、各ユーザが独自の外科技術を有するので有利である。したがって、異なるユーザは、ツール50を操作するときに異なる大きさの力を使用することがある。たとえば、軽いタッチでツール50を操作するユーザは、より重いタッチのユーザより早くハプティックフィードバックを感知することがある。より重いタッチのユーザにハプティックフィードバックを十分に感じるようにその人の外科技術を変えることを要求するのではなく、ハプティックチューニング機構は、力フィードバック機能が各特定のユーザを受け入れるように調整されることを可能にする。力フィードバック機能を調整（またはチューニング）することにより、ユーザは自分の好みの程度の力でツール50を操作し、それでもなお、ハプティック装置30によって与えられたハプティックフィードバックを十分に知覚することが可能である。その結果として、ハプティック境界内にツールを維持するユーザの能力が改善される。たとえば、力フィードバック曲線は、力Fを距離dに関係させる関数F(d)を含む。関数F(d)は、たとえば、ハプティック物体、カップリング剛性、もしくは剛性関数の結果として生じるか、または積でありうる。一態様では、Fiはユーザ（またはユーザのグループ）の典型的なハプティック相互作用力であり、diは侵入深さまたは距離（たとえば、ハプティック物体へのツール50の侵入）であり、ここで、Fi=F(di)は真である。たとえば、diによって関数F(d)を左へシフトまたはオフセットさせると、ツールがハプティック境界に接近するとき、より早く（すなわち、侵入距離が零ではなく、-diという侵入距離で始まる）力Fを印加させる力フィードバック関数F(d+di）が得られる。同様に、関数F(d)を右へシフトまたはオフセットさせると、ツールがハプティック境界へ接近するとき、力Fがより遅く印加されるようになる。
【００７４】
したがって、力強い外科技術を備えたユーザの場合、ユーザが極端にハプティック境界の中へ不注意に押し込むことを防止するため、関数F(d)を左へオフセットさせる方が有利である。したがって、ハプティックチューニングは、ハプティック装置30を制御する力フィードバック曲線を所望の値でオフセットさせることによって実現されうる。ハプティックチューニングは、ハプティック物体のサイズを変えることによっても実現され得る。たとえば、反発性のハプティック物体のサイズは増加させられ、結果としてハプティック物体になることができる。同様に、ハプティック装置30に連結された外科用ツールの表現のサイズが変えられてもよい。たとえば、ハプティック物体と相互作用する仮想ツールの先端の半径のサイズは増加させられ、結果として仮想ツールになりうる。容器としての役目を果たすハプティック物体の場合、チューニングは、たとえば、ハプティック物体のサイズを縮小することにより実現され得る。
【００７５】
図21を参照すると、骨1000は、インプラントが骨除去によって形成された空洞にセメント固定されることを可能にするために領域が除去される。この空洞は、ユーザが骨1000から骨物質を除去するときにハプティックインターフェイスが適切な力を生成するように、理想的な予想切除面1002によって定められる。1次プロキシ面1004と呼ばれる第2の面は、予想切除面1002から所定の一定距離(x)に定義される。
【００７６】
予想切除面1002と1次プロキシ面1004との間に、2次プロキシ面1010と呼ばれる第3の面が定義される。この第2のプロキシ面1010は、予想切除面1002と1次プロキシ面1004との間で1次プロキシ面1004から所望のオフセット距離(a)に配置される。
【００７７】
図21および21aをさらに参照すると、点に力が生成されるこのハプティック表現内の位置はHIP1020である。1次プロキシ面1004に垂直に投影されたHIP1020の位置に対応する1次プロキシ面1004上の位置は1次プロキシPi1024と呼ばれる。2次プロキシ面1010に垂直に投影されたHIP1020の位置に対応する2次プロキシ面1010上の位置は2次プロキシSi1026と呼ばれる。
【００７８】
HIP1020に加えられる力は、部分的に、ハプティック空間内の2次プロキシ1026と相対的なHIP1020の位置によって決定される。侵入深さ(d)が所望のオフセット距離(a)未満であるならば、力は1次プロキシ1024の方へ向けられ、HIP1020と1次プロキシ1024との間の距離の第1の関数である。一態様では、力は定数値、たとえば0である。
【００７９】
骨が除去され、HIP1020が予想切除面1002へ向かって移動するとき、HIP1020は2次プロキシ面1010の位置に達する。この位置で、新しい力が元の力を置き換えるため計算される。この新しい力は2次プロキシ1026の方へ向けられ、部分的にHIP1020と2次プロキシ1026との間の距離によって決定された大きさを有する。一態様では、力は2次プロキシと理想的な位置との間の距離に線形比例する。
【００８０】
したがって、外科医は、骨の中の所定の深さに達するまで、抵抗力を感知することなく骨を除去することが可能である。この時点で、ツールが予想切除面に接近すると共に大きくなる抵抗力が生成される。このとき、アルゴリズムの段階は、オフセット(a)を定義し、この時点でのHIP1020と1次プロキシ1024との間の絶対値として侵入深さ(d)を計算することになる。
d=||(Pi-HIP)||
【００８１】
次に、単位力ベクトル
2009524149.tif 000014
が次式から決定される。
2009524149.tif 000015
【００８２】
次に、2次プロキシ(Si)が、1次プロキシ、力ベクトル、および侵入深さによって定義される。
2009524149.tif 000016
【００８３】
印加されるばね力は、部分的に、次式に従うばね定数(Kp）によって決定される。
もし、d＜aであるならば、F=定数  たとえば0である。
そうでなければ、Kp(Si-HIP)である。
【００８４】
各ユーザが力フィードバック関数を調節できるようにするため、コンピューティングシステム20は、好ましくは、表示装置23に表示され得るグラフィカル選択インターフェイスを可能にするプログラミングを含む。たとえば、グラフィカル選択インターフェイスは、ユーザがチューニング値、たとえば0.0〜1.0をセットできるようにさせるグラフィカルインターフェイス、および/または、ユーザが、たとえば、「軽い」タッチ、「中間」タッチ、もしくは、「重い」タッチのチューニングを選択できるようにさせるグラフィカルインターフェイスであってもよい。コンピューティングシステム20は、ユーザが外科システム10の毎回の使用の前にチューニング設定を選択しなくても済むように、チューニング設定の所望の値を保存し、所望の値を特定のユーザと関連付ける（たとえば、ユーザ嗜好データファイルと関連したユーザIDを使用して）ようにプログラムされることもある。
【００８５】
図1を再度参照すると、図示されているような典型的なハプティックロボットは、エンドエフェクタを空間内の任意の点へ移動させ、触覚フィードバックをユーザへ提供するようにすべてが設計されたある程度の数のジョイントおよびドライブを含む。図1のロボットは、ベースの回転、肩ジョイント、肘ジョイント、および手首ジョイントを含む複数の自由度を有する。各ジョイントは、種々の態様において、プーリーの向こう側へ向けられた2本のケーブルまたは直動モーターを含む、トランスミッションによって駆動される。カルテシアンハプティック空間内の点の上/点における力は、
2009524149.tif 000017
によって与えられる。ここで、xhipはハプティック相互作用点であり、xproxyはHIP位置に対応する面上の位置であり、Kpは復元ばね力定数であり、
2009524149.tif 000018
はハプティック相互作用点の速度であり、
2009524149.tif 000019
はプロキシの速度であり、Kdは減衰力定数である。ある位置へジョイントを移動するため、または、ある位置でジョイントを保持するために必要なジョイント上のトルクは、カルテシアン空間内の位置を移動するために必要な力に転置ヤコビアンを適用することによって計算され得る。
2009524149.tif 000020
【００８６】
ハプティックフィードバックの安定性、すなわち、一態様では意図された位置における発振の回避は、関数：
ハプティック安定性=f(α1,α2,α3,α4)
によって与えられ、ここで、α1はサンプリング時間（たとえば1KHz）の関数であり、α2はセンサ分解能の関数であり、α3はトランスミッションのばね定数Kpと減衰定数Kdの関数であり、α4は物理的減衰（たとえば摩擦）の関数である。
【００８７】
HIPに印加されるべき減衰力(Fd)は式：
Fd=Kd(dx/dtHIP-dx/dtproxy)
によって与えられ、式中、dx/dt=Jdθi/dt、かつ、
dθ/dt=[dθ1c/dt, dθ2c/dt, dθ3c/dt, dθ4c/dt, dθ5d/dt]T
である。
【００８８】
ここで、dθc/dtはケーブル駆動式ジョイントのジョイント速度であり、dθd/dtは直動ジョイントの速度である。ケーブル駆動式ジョイントはトランスミッションコンプライアンスを有する。ジョイントとモーターとの間のトランスミッションコンプライアンスは、ジョイント速度計算中に直動ジョイントより大きい位相遅延を導入する。ダイレクトドライブとトランスミッションドライブの両方を含む混合式ドライブシステムでは、直動ジョイントがいずれのケーブル駆動式ジョイントからのジョイント速度計算の位相遅延によっても影響されないように、ジョイント空間内で減衰動作を実施すると有利である。これを行うためには、ジョイント空間のばねおよび減衰力方式またはカルテシアン空間の力およびジョイント空間の減衰の方法の2つのアプローチが存在する。
【００８９】
ジョイント空間のばねおよび減衰の方法では、最初に、HIPおよびプロキシのジョイント角が次式によって定義される。
θproxy=逆運動学(pi)  および
θHIP=逆運動学(hi)
式中、pおよびhはそれぞれプロキシ位置およびHIP位置である。
【００９０】
一態様では、その後、ジョイント空間の剛性係数および減衰係数が以下の式によってθのヤコビアンの対角部（diagonal）から取得される。
2009524149.tif 000021
【００９１】
他の態様では、ジョイント空間の剛性係数Kpjおよび減衰係数Kdjは、所定の固定値を設定する、スケジューリングを行うなどの他の方法で取得される。
【００９２】
最後に、トルクが角度および角速度から計算される。
τ=Kpj(θproxy-θHIP)-Kdjdθ/dt
【００９３】
カルテシアン空間のばねおよびジョイント空間の減衰の方法では、カルテシアンばね力は、
Fばね=Kpx(pi-hi)
によって定義される。
式中、Kpxはカルテシアンばね力定数であり、(pi-hi)はプロキシ点の位置(p)とHIPの位置(h)との間の距離である。ばね力と等価である対応するジョイントトルク(τばね)は、このとき次の通りである。
τばね=JTFばね
【００９４】
一態様では、減衰トルク(τ減衰)が次に計算される。ユーザが面に沿って移動するとき、ジョイント空間の減衰アルゴリズムは引張力を生じる。面に沿ったこの摩擦力を除去するため、以下の手順が実行される。
【００９５】
最初に、力/モーメントのペアであるレンチベクトルF6が形成される。
2009524149.tif 000022
式中、F6は一般化力（レンチ）ベクトルF6∈R6であり、F∈R3はカルテシアン力ベクトルを表し、F∈R3はカルテシアンモーメントベクトルを表す。
【００９６】
次に、レンチ方向ベクトル
2009524149.tif 000023
が計算される。
【００９７】
レンチ方向ベクトルは対応するジョイント空間ベクトルにマッピングされる。
v=JT(θ)u
【００９８】
重み係数
2009524149.tif 000024
|v|∞=max{|v|i}, i=1,...,n
が次に計算される。
【００９９】
同様に、式：
2009524149.tif 000025
に従って減衰力が計算される。
【０１００】
最後に2つのジョイントトルクが合成される。
τ=(τ減衰)+(τばね)
【０１０１】
本発明の種々の態様の上記の説明は、当業者が本発明および本発明の態様を構成し使用することを可能にさせるために記載されている。これらの態様への種々の変更が可能であり、本明細書に記載されている一般的な原理は他の態様に同様に適用されることがある。
【０１０２】
本発明はある例示的な好ましい態様に関して記載されているが、本発明がそれに限定されることはなく、好ましい態様への多数の追加、削除、および変更が特許請求の範囲に記載されているような本発明の範囲内で行えることが当業者によって容易に理解され認められる。したがって、本発明の範囲は添付の請求項の範囲のみによって限定される。
【図面の簡単な説明】
【０１０３】
【図１】本発明による外科システムの態様の斜視図である。
【図２】本発明によるハプティックレンダリングプロセスの態様のブロック図である。
【図３】本発明による3Dジオメトリックハプティック物体の態様の表現である。
【図４】重ね合わされた複数のハプティック物体の表現である。
【図５】本発明によるポリゴンベースハプティックレンダリングプロセスの態様のフローチャートである。
【図６】本発明によるポリゴン面物体の態様の表現である。
【図７】本発明によるボクセルマップの態様の表現である。
【図８】本発明によるボクセルルックアップテーブルの態様の表現である。
【図９】本発明によるポリゴンルックアップテーブルの態様の表現である。
【図１０】本発明による仮想ガイドラインの態様の導入を説明する。
【図１１】座標変換の図解である。
【図１２】仮想プロキシ点位置の説明である。
【図１３】仮想プロキシ点位置の説明である。
【図１４】本発明によるハプティックレンダリングアルゴリズムの態様のフローチャートである。
【図１５】HIP投影付きの複数のポリゴンの絵的表現である。
【図１５ａ】アクティブポリゴン優先動作の絵的表現である。
【図１６】オンポリゴン優先動作の絵的表現である。
【図１７】連続面優先動作の絵的表現である。
【図１８】最小力優先動作の絵的表現である。
【図１９】凹型コーナー増大動作のx-y平面図の絵的表現である。
【図２０】凹型コーナー増大動作のy-z平面図の絵的表現である。
【図２１】骨に適用された二重プロキシハプティックレンダリングの態様の図である。
【図２１ａ】HIP上の力ベクトルの図である。
【図１】
2009524149.tif 000027
【図２】
2009524149.tif 000028
【図３】
2009524149.tif 000029
【図４】
2009524149.tif 000030
【図５】
2009524149.tif 000031
【図６】
2009524149.tif 000032
【図７】
2009524149.tif 000033
【図８】
2009524149.tif 000034
【図９】
2009524149.tif 000035
【図１０】
2009524149.tif 000036
【図１１】
2009524149.tif 000037
【図１２】
2009524149.tif 000038
【図１３】
2009524149.tif 000039
【図１４】
2009524149.tif 000040
【図１５】
2009524149.tif 000041
【図１５ａ】
2009524149.tif 000042
【図１６】
2009524149.tif 000043
【図１７】
2009524149.tif 000044
【図１８】
2009524149.tif 000045
【図１９】
2009524149.tif 000046
【図２０】
2009524149.tif 000047
【図２１】
2009524149.tif 000048
【図２１ａ】
2009524149.tif 000049
【手続補正書】
【提出日】平成20年9月18日(2008.9.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
1次プロキシ位置を定義する段階；
HIP位置を定義する段階；
HIP位置が1次プロキシ位置から所定の値以下の距離に位置しているときに、第1の力を生成する段階；ならびに
HIP位置が1次プロキシ位置から所定の値より大きい距離に位置しているときに、第2の力を生成する段階
を含む、ハプティックペナルティ力を生成するための方法。
【請求項２】
1次プロキシ位置から所定の値と同じ距離に位置する2次プロキシ位置を定義する段階をさらに含む、請求項1記載の方法。
【請求項３】
第1の力が零である、請求項1記載の方法。
【請求項４】
第2の力が2次プロキシ位置とHIP位置との間の距離の関数である、請求項2記載の方法。
【請求項５】
第1の力が少なくとも部分的に1次プロキシ位置とHIP位置との間の距離に応じて決定される、請求項1記載の方法。
【請求項６】
1次プロキシ位置が少なくとも部分的にHIPと仮想ハプティック物体との間の相互作用に応じて決定される、請求項1記載の方法。
【請求項７】
1次プロキシ位置が1次プロキシ面に沿って拘束される、請求項1記載の方法。
【請求項８】
1次プロキシ位置を定義する1次プロキシ位置ロケータ、
HIP位置を定義するHIP位置ロケータ、ならびに
HIP位置が1次プロキシ位置から所定の値以下の距離に位置しているときに第1の力を発生し、HIP位置が1次プロキシ位置から所定の値より大きい距離に位置しているときに第2の力を発生する、力発生器
を含む、ハプティック力を発生する装置。
【請求項９】
第2の力が少なくとも部分的に2次プロキシ位置とHIP位置との間の距離に応じて決定される、請求項8記載の装置。
【請求項１０】
第1の力が少なくとも部分的に1次プロキシ位置とHIP位置との間の距離に応じて決定される、請求項8記載の装置。
【請求項１１】
1次プロキシ位置が少なくとも部分的にHIPと仮想ハプティック物体との間の相互作用に応じて決定される、請求項8記載の装置。
【請求項１２】
a)複数のボクセル要素を含むボクセル空間を定義する段階、
b)複数のポリゴンレンダリング要素を含むポリゴン空間を定義する段階、
c)各ボクセル要素およびそのそれぞれのポリゴンレンダリング要素のデータ構造を生成する段階、
d)ハプティック空間内で点の位置を見つける段階、
e)その点を対応するボクセル要素にマッピングする段階、ならびに
f)データ構造中で少なくとも1個のポリゴンレンダリング要素を選択する段階
を含む、ハプティック空間内で位置をマッピングするための方法。
【請求項１３】
点を対応するボクセル要素へマッピングした後、HIPで近傍ポリゴンを探索する、請求項12記載の方法。
【請求項１４】
プロキシ位置とHIP位置との間の距離に応じてばね力を計算する段階；
ばね力に応じてジョイント空間ばねトルクを計算する段階；
ジョイント速度に応じてジョイント空間減衰トルクを計算する段階；ならびに
ジョイント空間減衰トルクとジョイント空間ばねトルクを加算する段階
を含む、複数のトランスミッションメカニズムおよび複数のジョイントを有するシステムにおいてハプティック安定性を増大させるための方法。
【請求項１５】
HIPがどの位置から境界に接近しているかを決定する段階、および、HIPが第1の方向から境界を通過し、第2の方向から境界を通過しないようにさせる段階を含む、ユニフェイス（uniface）ハプティック壁を形成する方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００７９
【補正方法】変更
【補正の内容】
【００７９】
骨が除去され、HIP1020が予想切除面1002へ向かって移動するとき、HIP1020は2次プロキシ面1010の位置に達する。この位置で、新しい力が元の力を置き換えるため計算される。この新しい力は2次プロキシ1026の方へ向けられ、部分的にHIP1020と2次プロキシ1026との間の距離によって決定された大きさを有する。一態様では、力は2次プロキシとHIPとの間の距離に線形比例する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００８２
【補正方法】変更
【補正の内容】
【００８２】
次に、2次プロキシ(Si)が、1次プロキシ(Pi)、単位力ベクトル
2009524149.tif 000050
、およびオフセット（a）によって定義される。
2009524149.tif 000051
【国際調査報告】
2009524149.tif 000052
2009524149.tif 000053
2009524149.tif 000054
2009524149.tif 000055
2009524149.tif 000056