(57)【特許請求の範囲】
【請求項１】
手術ロボットのロボットアームにおける自動化された移動のためにコンピュータに実装される作動方法であって、前記ロボットアームは、自動動作モードの下で及びマスタ・スレーブモードの下での移動のために構成されており、前記方法は、コンピュータシステムで制御される少なくとも以下のステップを備える：
（ａ）少なくとも一つの自動化されたロボットアーム移動の指定を受け取ること、ここで前記自動化されたロボットアーム移動は、動作可能なように前記ロボットアームに関連付けられた道具のためのプログラムされた開始位置と、前記道具のためのプログラムされた終了位置とを備えている；
（ｂ）前記道具の位置の座標を受け取ること；
（ｃ）前記自動化されたロボットアーム移動を実行するための命令を受け取ること；そして
（ｄ）もし近接条件を満足する場合には、前記自動化されたロボットアーム移動を実行すること、ここで前記近接条件は、前記道具の位置が前記プログラムされた開始位置から規定距離内にあるときに満足されるものであり、さらにここで、前記自動化されたロボットアーム移動の実行は、前記道具を、前記プログラムされた終了位置に移動させるものであり、あるいは、
もし前記近接条件を満足しない場合には、前記近接条件が満足されるであろう境界を特定する図的表示を備える出力を生成して、これにより、前記マスタ・スレーブモードの下で前記ロボットアームについてのユーザ案内による移動のための目標を提供して、前記近接条件が満足されるようにすること。
【請求項２】
請求項１に記載の方法であって、前記プログラムされた開始位置は、前記道具の先端に関して特定されており、かつ、前記近接条件は、前記プログラムされた開始位置に対する前記道具の先端の位置に関連している。
【請求項３】
請求項１又は２に記載の方法であって、ここで、マスタ・ハンド・コントローラ上のボタンあるいはレバーの作動は、前記ステップ（ｃ）における前記命令を生成するものとなっている。
【請求項４】
請求項１〜３のいずれか１項に記載の方法であって、少なくとも以下のステップをさらに備えている：
（ｅ）前記ロボットアームによる移動であって前記プログラムされた終了位置から離れるものを含む第２の自動化されたロボットアーム移動を実行するための命令を受け取ること；そして
（ｆ）第２の近接条件を満足する場合には、前記第２の自動化されたロボットアーム移動を実行すること、ここで前記第２の近接条件は、前記道具の位置が前記プログラムされた終了位置から規定距離内にあるときに満足されるものであり、ここで、前記自動化された移動の実行は、前記道具を、前記プログラムされた終了位置から離れるように移動させるようになっている。
【請求項５】
請求項１〜４のいずれか１項に記載の方法であって、少なくとも以下のステップをさらに備える：
前記自動化されたロボットアーム移動を中断する命令を受け取ること；及び
前記自動化されたロボットアーム移動を停止すること。
【請求項６】
請求項１〜５のいずれか１項に記載の方法であって、前記プログラムされた終了位置は、道具交換場所に対応している。
【請求項７】
請求項１〜６のいずれか１項に記載の方法であって、
前記ステップ（ａ）は、複数の自動化されたロボットアーム移動の指定を受け取ることを含んでおり、それぞれの自動化されたロボットアーム移動は、前記道具のためのプログラムされた開始位置と、前記道具のためのプログラムされた終了位置とを少なくとも含む；そして
前記ステップ（ｃ）は、前記複数の自動化されたロボットアーム移動のうちの一つを実行するための命令を受け取ることを含む。
【請求項８】
請求項７に記載の方法であって、前記方法は、二つあるいはそれ以上のロボットアームを持つ手術ロボットにおけるロボットアームにおける自動化された移動のためのものであり、それぞれのロボットアームは、自動動作モードの下で及びマスタ・スレーブモードの下での移動のために構成されており、そして前記方法は以下をさらに備える：
前記自動化されたロボットアーム移動の実行のために前記ロボットアームの一つを選択する指令を受け取ること。
【請求項９】
請求項７又は８に記載の方法であって、以下のステップをさらに含む：
以下を少なくとも可能にする一つまたはそれ以上のデータエントリ要素を有するグラフィカルユーザインタフェースを表示すること：
（ｉ）自動化されたロボットアーム移動のそれぞれのための前記プログラムされた開始位置と前記プログラムされた終了位置とを少なくとも特定することによって、前記複数の自動化されたロボットアーム移動のそれぞれを特定すること、及び
（ｉｉ）前記複数の自動化されたロボットアーム移動の一つまたはそれ以上を実行するために、前記手術ロボットにおけるロボットアームを選択すること。
【請求項１０】
請求項１〜９のいずれか１項に記載の方法であって、以下をさらに含む：
前記プログラムされた開始位置のための第１のデータセットを指定することと、前記プログラムされた終了位置のための第２のデータセットを指定することとによって、前記プログラムされた開始位置と、前記プログラムされた終了位置とを特定すること。
【請求項１１】
請求項１０に記載の方法であって、ここで、操作可能なように前記ロボットアームに関連付けられた前記道具は、長手方向軸を有しており、前記第１のデータセットと第２のデータセットとは、前記道具の先端の位置と前記道具の前記長手方向軸の向きとについての決定を可能にするに十分なデータを含む。
【請求項１２】
請求項１１に記載の方法であって、ここで、前記自動化されたロボットアーム移動の実行は、前記道具の前記長手方向軸とは一致しない軸に沿う前記道具の移動を含む。
【請求項１３】
請求項１〜１２のいずれか１項に記載の方法であって、少なくとも以下のステップをさらに備える：
前記自動化された移動の実行が完了した後の前記自動化された移動の反転を実行するために指令を受け取ること；そして
前記ロボットアームが前記プログラムされた終了位置から離れて前記プログラムされた開始位置に向かうように、前記自動化された移動の反転を実行すること。
【請求項１４】
請求項９に記載の方法であって、ここで、前記グラフィカルユーザインタフェースにおける前記一つ又はそれ以上のデータエントリ要素は、少なくとも以下をさらに可能にする：
前記複数の自動化されたロボットアーム移動を特定するためのシミュレーションモードを選択すること；
ここで、前記方法は、少なくとも以下のステップをさらに備える：
前記ロボットアームについての図的表示を前記グラフィカルユーザインタフェース上に表示すること、及び
入力装置の動きに対応して、前記ロボットアームの実際の移動を生じさせずに、前記図的表示を動かすこと。
【請求項１５】
請求項９又は１４に記載の方法であって、ここで、前記グラフィカルユーザインタフェースにおける前記一つ又はそれ以上のデータエントリ要素は、少なくとも以下をさらに可能にする：
前記選択されたロボットアームに動作可能なように関連付けられるべき前記道具を選択すること。
【請求項１６】
請求項９又は１４に記載の方法であって、少なくとも以下のステップをさらに備える：
前記手術ロボットにおける一つまたは二つのロボットアームについての図的表示を前記グラフィカルユーザインタフェース上に表示すること；
所定のロボットアームに関連付けられた入力装置から指令を受け取ること；そして
前記グラフィカルユーザインタフェースが、当該ロボットアームの移動についての前記入力装置の操作の効果を表すように、前記グラフィカルユーザインタフェース上の、当該ロボットアームについての前記図的表示を、前記入力装置の操作に応答して動かすこと。
【請求項１７】
請求項１６に記載の方法であって、少なくとも以下のステップをさらに備える：
被験者の頭部についての図的表示を前記グラフィカルユーザインタフェース上に表示すること。
【請求項１８】
請求項１６又は１７に記載の方法であって、少なくとも以下のステップをさらに備える：
所定のロボットアームに関連付けられた前記入力装置から不能化指令を受け取って、前記入力装置の操作と、前記グラフィカルユーザインタフェース上における当該ロボットアームについての前記図的表示の動きとを分離すること。
【請求項１９】
請求項９、１４、１５、１６、１７、１８のいずれか１項に記載の方法であって、少なくとも以下のステップをさらに備える：
前記自動化されたロボットアーム移動についての前記プログラムされた開始位置と前記プログラムされた終了位置とによって特定される経路を、前記グラフィカルユーザインタフェース上に表示すること。
【請求項２０】
請求項１９に記載の方法であって、ここで、前記グラフィカルユーザインタフェースにおける前記一つ又はそれ以上のデータエントリ要素は、少なくとも以下をさらに可能にする：
自動化されたロボットアーム移動についての前記プログラムされた開始位置と前記プログラムされた終了位置との間における一つ又はそれ以上の中間位置を特定すること；
さらに、前記方法は、少なくとも以下のステップをさらに備える：
前記自動化されたロボットアーム移動についての、前記プログラムされた開始位置と、前記一つ又はそれ以上の中間位置と、前記プログラムされた終了位置とにより特定される経路を表示すること。
【請求項２１】
請求項１〜２０のいずれか１項に記載の方法であって、ここで、前記近接条件は、前記道具が既定の領域内にあるときに満たされるものであり、前記既定の領域は、前記プログラムされた開始位置を囲んでいる。
【請求項２２】
請求項２１に記載の方法であって、ここで、前記既定の領域は、患者の身体の外側の場所に対応している。
【請求項２３】
請求項１〜１９、２１、２２のいずれか１項に記載の方法であって、ここで、前記自動化されたロボットアーム移動は、前記プログラムされた開始位置と前記プログラムされた終了位置との間における一つ又はそれ以上のプログラムされた経由点をさらに備える。
【請求項２４】
請求項１〜２３のいずれか１項に記載されたステップを少なくとも実行するための機械読み取り可能な命令を格納しているコンピュータ可読媒体。
【請求項２５】
手術ロボットにおけるロボットアームの移動を制御するために構成されたコンピュータシステムであって、前記システムは、以下を備える：
手術ロボットにおけるロボットアーム、ここで前記ロボットアームは、自動動作モードの下で及びマスタ・スレーブモードの下での移動のために構成されており、
前記手術ロボットに動作可能なように関連付けられており、かつ、ロボットアームについての自動化された移動のための請求項１〜２３のいずれか１項による方法を実装するように構成された計算装置、
前記自動化されたロボットアーム移動に少なくとも関係する指令を入力するために、前記計算装置に動作可能なように関連付けられた一つ又はそれ以上の入力装置、そして
前記ロボットアームについての図的表示と、前記自動化されたロボットアーム移動に関係するデータとを少なくとも表示するために、前記計算装置に動作可能なように関連付けられたグラフィカルユーザインタフェース。
【発明の詳細な説明】
【関連出願への相互参照】
【０００１】
本出願は、２００７年４月１６日に出願されたシリアル番号６０／９１２１４２号の米国仮特許出願による優先権を主張しており、その内容は、参照により組み込まれる。
【背景技術】
【０００２】
この方法、装置、及びシステムは、外科用のロボット工学（robotics）に一般的に関連しており、より詳しくは、一つ又は複数の自動的なロボットアーム（robotic arm）の動きを作りだし、そして実行させること、例えば、ある位置に向かうあるいはそこから離れる経路に沿ってロボットアームを動かすことに関連している。そこでは、ロボットアームにより保持された道具（tool）あるいは器具（例えば外科用具）が交換可能であり、あるいは、初回の操作のために、道具の挿入が可能である。本方法、装置、及びシステムが関係する手順において使用可能な外科用ロボットの例が、米国特許第７１５５３１６号（「３１６」特許）において開示されている。その内容は、参照によってここに組み込まれる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第７１５５３１６号公報
【発明の概要】
【０００４】
広い観点では、本技術は、操作というよりもむしろ、医学的な手順の間にロボットアームが移動できる経路のプログラミングに関係する。このようにプログラムされた経路は、ここでの開示においては、自動化されたロボットアームの動き（automated robotic arm movement）、自動移動（automated movement）、あるいは短縮して自動動作（automove）として参照されることがある。そして、そのような動きは、所定のロボットアームについての、一つの、いくらかの、あるいは全てのジョイントによる動きを含みうる。そして、ジョイントは、ベースジョイント（base joint）（例えばショルダージョイント）を含む。経路は、様々な目的のために使用されうるけれども、ある実施形態では、経路は、手術地点から安全な距離だけ離れたところで始まり、そして、ロボットアームで保持された外科用具（これは医学用又は外科用の器具として特徴付けられる）が、例えば看護師によって交換できるところで終了する。経路は、ロボットアームにおける二つ又はそれ以上の道具先端位置（例えば、ロボットアームにより保持され又はこれと組み合わされた道具の、デカルト座標空間中の道具先端位置）と、道具に関連した道具軸の二つ又はそれ以上の方向とによって特定可能である。既定のロボットアームは、マニピュレータとして参照されることがある。特定は、指示又はコマンドであって、それを、ハンドコントローラあるいは他の適宜な入力装置を用いて入力する操作者から受け取ったものの結果として生じることがある。そのようなハンドコントローラは、ロボットアームを用いたマスタ−スレーブ関係におけるマスタであり得る。しかしながら、ハンドコントローラの方向は、関係する道具の方向とは独立である。この自動化された動きのいずれかを実行する外科医は、ハンドコントローラを使ってリアルタイムで動きを実行することから解放される。
【０００５】
したがって、本装置のいくつかの実施形態は、コンピュータ可読媒体の形態を取りうるのであり、それは、機械により読み取りうる命令を含む。この命令は、自動化されたロボットアーム動作における開始位置のための第１のデータセットを受け取り；そして、自動化されたロボットアーム動作における第２の位置のための第２のデータセットを受け取るためのものであり；ここで、自動化されたロボットアーム動作は、手術の用途のために構成されたロボットアームの動きに関連する。ある実施形態では、第１のデータセットは、以下についての決定を可能とするに十分なデータを備える。すなわち、（ａ）ロボットアームに保持され又はこれに組み合わされた道具の先端の位置、ここで道具は長手方向軸を有しており、そして（ｂ）道具の長手方向軸の方向である。ある実施形態では、第２のデータセットは、以下の決定を可能とするに十分なデータを備える。すなわち、（ａ）道具の先端についての第２の位置、そして（ｂ）道具の長手方向軸についての第２の向きである。データセットは、命令を実行しているコンピュータシステムに格納されかつアクセス可能である他のデータが決定のために使用されている場合であっても以下の決定を可能とするに十分なデータを備える。すなわち、（ａ）既定の道具についての先端の位置、そして（ｂ）道具の長手方向軸についての向きである。例えば、データセットは、ロボットアームのジョイント角度（joint angles）を含むデータを備えることができ、そして、命令を実行するコンピュータシステムは、それが順運動学（forward kinematics）を実行して決定を行うことを可能にする他のデータ（例えばロボットアームのリンク長さ（link lengths））にアクセスするように構成される。さらに、そのような自動化されたロボットアームの動きは、第１及び第２のデータセットの世代（the generation of the first and second datasets）で使われた道具とは異なるものを用いて、コンピュータシステムによって実行されうる（そのため、異なる道具は、道具先端位置を通り、そして、運動を規定する道具軸方向において移動する。これは、異なる道具を保持し、あるいはこれと一体化しているロボットアームが、各道具先端位置において、当初に規定された方向と同じ方向にあるかどうかに拘わらない。）。ここで、コンピュータシステムは、逆運動学（inverse kinetics）の解を見つけるための命令を実行し、ロボットにおけるジョイント角度の適切なセットを決定する。ある実施形態では、決定される道具の位置は、道具における道具先端以外の部分の位置でありうる。
【０００６】
ある実施形態では、一つ又はそれ以上の自動化されたロボットアームの動きがプログラムされて格納された後、あるものが、手術中の使用のために、選択されうる（この選択は、手術の手順の前に、又はその間に行うことが可能である）。そしてその一つは、当該手順の間に開始されても良い。この開始の命令は、適宜な手段を介して入力されうる。それは例えば、ロボットアームの動きを制御するために使用されるハンドコントローラである。そして、動きの開始については、ロボットアームの部分、あるいは、ロボットアームに保持された構造物（例えば、より具体的な例では、ロボットアームに保持された外科用具の先端）による条件付けが可能である。すなわち、これらが、既定の領域内、例えばプログラムされた動きの開始地点から所定の距離の範囲内（例えば、開始地点を囲む領域）、もしくは、開始地点から特定の距離よりも大きくなる範囲、もしくは、開始地点に交差しない境界の外側の範囲にあることを条件とできる。集合的には、これらの条件は、「近接条件（proximity condition）」の例である。ある実施形態では、この装置及びシステムは、進行中の自動的な動作を停止するための命令あるいは指令を認識し、そして、その動きを再開するための一つ又はそれ以上の命令又は指令を受け取ることができる。ある実施形態では、自動化された動きが終わった後、本装置及びシステムは、その動きの逆を実行するための命令を認識する。これにより、例えば、新しく交換した道具を、目的位置から開始位置に戻すことができ、これにより、操作者（例えば外科医）は、医学的な手順を続けることができる。
【０００７】
本技術におけるある実施形態は、使用者によって変更可能、あるいは完全に変更可能なことによって特徴付けられる。このことが意味することは、カスタマイズされた自動的な動作を作り出すことができるように本システムが構成されていることであり、これは、システムの電源投入時に存在し、かつ使用者が変更できない一つを選択しなければならないものとは異なる。
【０００８】
本装置及びシステムを用いてプログラムされ得る自動移動は、道具（例えばロボットアームが保持する道具あるいはそれと一体化した道具）が、道具の長手方向軸とは一致しないライン（又は経路）に沿って動くようにする所定のロボットアームによる動きを引き起こす。例えば、所定の自動化された動きは、プログラムされて、ロボットアームが横方向に、道具を交換する看護師に向けて、そして、患者から離れるように動くようにする。このとき、道具は、横でない方向において、ロボットアームに保持される。
【０００９】
本コンピュータシステムにおけるある実施形態は、所定の自動化された動きについての衝突チェックを実行するように構成され、これにより、例えば、自動化された動きが既定の非侵入ゾーン（no-go zones）や、ロボットアームにおけるジョイントあるいは速度限界などに違反しないかどうか決定し、そして、いずれか一つあるいはそれ以上の違反を特定する適切な表示を、使用者が観察するためのＧＵＩ上で、行うことができる。
【００１０】
本方法、装置（例えばコンピュータ可読媒体）及びシステム（例えばコンピュータシステム）についての各実施形態は、備える／含む／包含する／有するというよりもむしろ、記載された機能、ステップ及び／又は特徴からなる又は本質的になることができる。したがって、各請求項において、用語「からなる」あるいは「から本質的になる」は、前記した開放された関連動詞（open-ended linking verbs）のいずれかと置換可能であり、これにより、開放された関連動詞を使った場合と比較して、請求項の範囲を変更できる。
【図面の簡単な説明】
【００１１】
以下の図面は、単に例として記載されており、制約ではない。同一の参照符号は、必ずしも、同一の構造、システム、あるいはディスプレイを示すものではない。むしろ、同じ参照符号は、類似の特徴あるいは類似の機能を持つ特徴を示すものとして使用されうる。各実施形態における全ての特徴が、その実施形態を示す全ての図において常に符号付けされている訳ではなく、これによって、図面を明瞭としている。図に示されたハンドコントローラ、マニピュレータ、及び道具は、ある縮尺で描かれており、このことは、記載された要素のサイズが、相対的には正確であることを意味する。
【図１】図１は、本技術と共に使用できる二つの入力装置（ハンドコントローラ）についての一実施形態における斜視図である。
【図２】図２は、自動化された動きを計画するために使用できるワークステーションの斜視図である。
【図３】図３は、遠隔制御される医療用ロボットシステムの部分であり、かつ、医学上の（例えば外科的な）手順に使用されている二つのロボットアームの斜視図である。被験者（subject）についての概略的な描写は、両側に人（概略的に示されている）がいる手術台（operating table）の上に配置されて表されている。台の遠方側にいる人は、道具を交換する看護師を表しており、そして、台の手前側にいる人は、補助外科医を示している。
【図４】図４は、図３に示された配置についての平面図である。
【図５】図５は、図３に示された配置についての斜視図であり、ここでは、右のロボットアームに保持された道具が、道具を交換する位置にあり、道具を交換する看護師に近付いている。
【図６】図６は、図５に示された配置についての平面図である。
【図７】図７は、図３に示された配置についての斜視図である。ここでは、左のロボットアームに保持された道具（より一般的にはロボットアーム自体）は、患者の頭部の外側における「安全」位置にあり、かつ、前記概要で説明したタイプの近接条件を満足する位置にある。
【図８】図８は、図７に示された配置についての、上方から見た斜視図である。
【図９】図９は、図７に示された配置についての斜視図である。ここでは、左のロボットアームは、道具を交換する看護師に近い道具交換位置に移動している。
【図１０】図１０は、図３〜９に示された両ロボットアームが道具交換位置に移動した状態における平面図である。
【図１１】図１１は、自動化された動きをプログラムするために使用できるグラフィカルユーザインタフェース（ＧＵＩ）を示している。この図におけるＧＵＩは、設定モード（Setup mode）にあり、「モード制御（Mode controls）」タブの下にある「手術タイプ（Surgery Type）」が、「顕微鏡手術（Microsurgery）」に選択されている。このＧＵＩは、この開示において、コマンドステータスディスプレイ（ＣＳＤ）ＧＵＩとして参照されることがある。
【図１２】図１２は、使用者が「自動動作（Automove）」ボタンを（スクリーン接触を介して）選択した後のCSD GUIを示している。この状態では、使用者は、「モード制御（Mode Controls）」タブ内の「アーム選択（Arm Select）」ボックスの下で、自動化された動きを定義したいアームを選択できる。
【図１３】図１３は、自動移動におけるCSD GUIを示しており、ここでは、右のアームが選択されている。そして、ユーザには、右のアームのための道具を選択するためのオプションが与えられ、ここでは、「モード制御（Mode controls）」タブの下にある「道具選択（Tool Select）」ドロップダウンメニューを用いる。
【図１４】図１４は、「自動動作（Automove）」の状態にあるCSD GUIを示している。さらにこの図が示すのは、四つの点（開始点（Start Point）、経由点１（Waypoint 1）、経由点２（Waypoint 2）、及び目標点（Destination Point））を含む自動移動が選択されており、スクリーン上で連結されて表示されている。
【図１５】図１５は、「シミュレート（Simulate）」ボタンを押した結果を示している。その結果、右アームについての図的表示が、図示された四つの点によって定義された経路を辿っている。このモードでは、開始点から目標点に移動している右アームが強調されており、そしてそれは、実際のマニピュレータの位置を示す非強調バージョンの右アームと重畳している。
【図１６】図１６は、図１４及び１５に示される自動動作をユーザが指定し、そして、それを、「保存（Save）」ボタンを押すことによってメモリに保存した結果を示す。
【図１７】図１７は、ユーザが「マスタ／スレーブ（Master/Slave）モードを選択した後のCSD GUIを示している。ここでは、アームは、自動移動モード（これはプログラミングモードに対応する）から抜け出ている。さらにこの図は、選択された自動移動を速度において「速く（Fast）」するためにユーザがラジオボタンを選択したことを示している。
【図１８】図１８は、適用できる近接条件が満足されない自動移動を実行しようとするユーザの誤った試みの後のCSD GUIを示している。
【発明を実施するための形態】
【００１２】
（図示された実施形態の説明）
「備える（comprise）」（及び備えるの様々な形態、例えば「備える（comprises）」及び「備えている（comprising）」）、「有する（have）」（及び有するの様々な形態、例えば「有する（has）」及び「有している（having）」）、「含む（contain）」（及び含むの様々な形態、例えば「含む（contains）」及び「含んでいる（containing）」）、並びに、「含める（include）」（及び「含めるの様々な形態、例えば「含める（includes）」及び「含めている（including）」）という用語は、開放されたリンク動詞（open-ended linking verbs）である。その結果、列記された一つ又はそれ以上のステップ又は要素を「備える」、「有する」、「含む」あるいは「含める」方法、装置、あるいはシステムは、それらの列記されたステップ又は要素を備えるけれども、それらのステップ又は要素のみを備えることに限定されるわけではない。それは、特定されていない要素又はステップを備える（すなわち及ぶ）ことができる。同様に、一つ又はそれ以上の列記された特徴を「備える」、「有する」、「含む」又は「含める」方法、装置又はシステムの要素は、その特徴を有するが、それらの特徴のみを有する訳ではない。それは、列記されていない特徴を有することもできる。同様に、あるステップを実行するための、機械が読み取り可能な命令を「備える」（あるいは「エンコードされる（encoded with）」）コンピュータ可読媒体は、列記されたステップを少なくとも実装するための、機械が読み取り可能な命令を有するコンピュータ可読媒体であるだけでなく、追加的な、列記されていないステップを実装するための、機械が読み取り可能な命令を有する媒体に及ぶ。さらに、ある機能を少なくとも実行するように構成されたコンピュータシステムは、列記された機能だけを実行することに限定されるものではない。もし、そのシステムが、列記された機能を実行するように構成されているのであれば、そのシステムは、特定されていない方式で構成されていてもよい。
【００１３】
用語「一つの（a）」及び「一つの（an）」は、この開示が明確に特定している場合を除いて、一つ又は複数として定義される。用語「他の（another）」は、第２あるいはそれ以上のものを少なくとも示す。用語「実質的に（substantially）」は、与えられた値又は状態に近い（及び含む）こと（好ましくはその１０％以内、より好ましくは１％以内、さらに好ましくは０．１％以内）を示す。当業者には理解されるべきこととして、与えられた自動移動を規定する位置へ移動する道具は、移動先である各位置とユーザが指定した位置とが実質的に同一である場合には、その自動移動に従っていることになる。
【００１４】
本発明の技術が適用される装置は、ある実施形態においては、ハンドコントローラのようなマスタの入力装置により命令されるスレーブのロボットアームを含む。医学用（例えば外科用）の二つの異なるロボットアームをそれぞれ制御するために使用できる一組の入力装置（ハンドコントローラの形式において）の例が、図１に示される。相互に鏡像のように配置されている入力装置１０は、それぞれ、以下を含む。すなわち、長いペンのように保持されるスタイラス１２と、スレーブのロボットアームに一体化され又はそれに保持された道具が動作するようにスタイラス１２に向けて押しつけられたレバー１４（例えば、レバー１４は、鉗子（forceps）を閉じることができる）と、そして、本コンピュータシステムに様々なコマンドを送るために様々な方法で押し下げられうる可能／不能（able/disable）ボタン１６であり、この押し下げは、例えば、入力装置と所定のＧＵＩ上に表示された仮想的なマニピュレータ及び／又は実際のマニピュレータ（コンピュータシステムがシミュレーションモードにあるかどうかに依存する）との間のリンクを有効化又は無効化させるための命令を送るための短い押し下げと、入力装置がリンクしたマニピュレータに関連した所定の自動移動を実行する命令を送るための、押し下げ及び短い間の（例えば数秒の）保持とを含む。所定の入力デバイス１０を保持する一つの方法は、スタイラス１２を握ることであり、これにより、レバー１４は、人差し指によって把持され、そして、ボタン１６を親指で触れるようになる。
【００１５】
図２は、図示されているロボットアームによる使用のために自動移動の準備を行うワークステーション１００の斜視図を示す。ある実施形態では、ワークステーション１００は、ロボットアームの動きを実際に及び仮想的に制御するための、図１に示される入力装置１０を備える。ワークステーション１００は、テーブル（図示の通り）を含み、それに対して、入力装置が、一連の表示スクリーンと同様にして、備え付けられており、そのいずれかまたは二つ以上のものは、所定のロボットアームのための自動移動の準備において使用できるグラフィカルユーザインタフェース（ＧＵＩ）を提供できる。好ましい実施形態では、本システムの一つ（例えば本コンピュータシステムの一つ）は、表示スクリーン１１０に、一つ又はそれ以上のデータエントリ要素（例えばボタン、ラジオボタン、ドロップダウンメニュー、タブ、スライダバー、テキストエントリ欄など）を含むＧＵＩを表示させるように構成される。ここで、ユーザは、適宜な入力手段（例えば、スクリーンにさわること、マウスを使うこと、及び／又はキーボードを使うこと）を使用して、以下のような様々な機能のいずれかを実行できる。この機能は以下を含む。すなわち、一つ又はそれ以上の自動移動を定義して保存する（例えば、道具先端位置及び道具軸方向のような、二つ又はそれ以上の道具位置及び方向（図１２参照。これは、道具を保持しているロボットアームのエンドエフェクタの道具ホルダの軸（好ましい実施例におけるもの）でもある道具の長手方向軸の例を示しており、これにより、道具軸方向は、エンドエフェクタ位置から決定できる。それは、ロボットアームのジョイント値から知ることができる。）を選択することによって）ために要素を選択することであり、動きを特定する中で、使用されるロボットアームと道具とを選択することであり、保存された自動移動を、選択されたロボットアームによる実行のために選択すること（これは、ロボットアームと所定の自動移動とを関連させる一手法である）であり、保存された自動移動を編集することであり、そして、保存された自動移動を削除することである。本コンピュータシステムは、本開示中で議論された他の機能を実行するように構成されていてもよい。
【００１６】
図３〜１０は、本技術にしたがってプログラムされる自動移動についての様々な側面を描写するためのものである。図３及び４では、患者の概略的表示４００について実行されている医学的（例えば外科的、あるいはより具体的には顕微鏡手術的）な手順が示されている。道具交換の看護師４１０についての概略的表示は、患者の一側であって、患者の頭部及び医学的ロボットシステムの近くに示されている。そして、補助外科医４２０の概略的表示は、患者の他側であって、患者の頭部及び医学的ロボットシステムの近くに示されている。左及び右のロボットアーム２００Ｌ及び２００Ｒは、それぞれ、可動ベースステーション１５０（これは、その位置を固定可能とするレバー１５２を有する）に据え付けられた状態で表示されている。この可動ベースステーション１５０に対して、デジタイジングアーム１６０（これは、一つ又は両方のロボットアームの物理的な登録を患者の一部分の画像について行うために使用される）及びフィールドカメラ１７０（調整可能なスタンドを介して）が据え付けられている。（ここで、「左」及び「右」の指定は、図示された道具／設備を容易に区別するためのみに使用されるのであり、それらはいずれも、どちらのロボットアームでも使用可能である）。手術テーブル１８０の上面の形態となっている患者支持表面の上に配置された患者４００が示されており、そして、患者の頭部は、頭部クランプ１９０のピンを用いて固定されている。左のロボットアーム２００Ｌは、道具（これは設備としても特徴付けが可能である）３００Ｌを保持しており、それは、鉗子のペアとして描写されている。そして、右のロボットアーム２００Ｒは道具３００Ｒを保持している。これは、針として描写されている。他の実施形態では、道具は、ロボットアームと一体化される。道具は、頭蓋穿孔（burr hole）あるいは開頭挿入孔（craniotomy entry hole）を表す開口を介して患者の頭部に挿入された状態で表示されている。
【００１７】
図５及び図６は、患者頭部の外側であってかつ道具交換位置に配置された右の道具３００Ｒを示す。この位置は、本技術の実施形態に従ってプログラム可能な自動移動における目標点に対応する。この方向においては、道具を交換する看護師４１０は、右の道具３００Ｒを右ロボットアーム２００Ｒから取り外すことができ、さらに、看護師は、それを、他の道具に交換し、当該ロボットアームに取り付けることができる。表示されている左の道具３００Ｌは、患者頭部の場所に止まっている。
【００１８】
図７及び８は、患者の頭部に配置された右の道具３００Ｒを示す。一方で、左の道具３００Ｌは、患者頭部の外側における安全な位置に配置されている。この安全な位置は、本技術における自動移動の実行のための必要条件として機能しうる近接条件の一つを満足することができる。近接条件の一例は、道具先端が患者頭部の外側になければならないということである。外科医は、彼又は彼女が自動移動を開始したいときに、左の道具３００Ｌを、図７及び８に示される位置に移動させることができる。この自動移動とは、例えば、左のロボットアーム２００Ｌにより、道具３００Ｌを、道具交換位置まで移動させるというようなものである。もし、左の道具３００Ｌ（より具体的には、道具３００Ｌの先端）の位置が、適用可能な近接条件を満足する（例えば、患者４００の頭部の外側における安全な距離にある）場合、自動移動は、外科医による、関連する入力装置１０上のボタンの押し下げ及び保持の後に始まることができる。
【００１９】
図９は、命令された自動動作の実行結果を示す。なぜなら、左の道具３００Ｌは、道具交換位置（例えば、それは、所定の自動移動のための目標点となりうる）にあるからである。図１０は、二つの自動移動についての実行結果を示す。ここでは、両ツールが道具交換位置にある。この位置は、自動移動のための目標点に対応しうるものである。
【００２０】
（一般的な自動移動）
本自動移動についてのいくつかの実施形態は、顕微鏡手術の位置から道具交換位置にマニピュレータを移動させ、そして、戻すために使用できる。このとき、この技術においては、操作者は、関連するハンドコントローラを使った動作を実行しなくてもよい。いくつかの自動移動は、本コンピュータシステムの実施形態を用いて予めプログラムされそして保存されることができる。開始に際しては、操作者（例えば外科医）は、プログラムされた動きのうちで、動作させたいもの（例えば道具交換の自動移動）を選択する。コンピュータシステムは、選択された自動移動を、関連するハンドコントローラ上のボタン１６に結びつけるように構成されており、これにより、操作者は、自動動作ＧＵＩページ（以下に議論されかつ示されている）に行かずに、あるいは、彼の手を関連のハンドコントローラから離さずに、動作を命令することができる。
【００２１】
本自動移動は、二つ又はそれ以上の指示点（taught points）（例えば使用者が設定又は選択した点）を備えている。所定の自動移動は、開始及び終了（つまり終端）の点を少なくとも備えている。これは、２点間における直線の動きを定義する。もし、例えば衝突の可能性を避けるために、非直線の動きが必要であれば、一つ又はそれ以上の中間値（例えば経由点）を設定することができる。結果としての経路は、開始点と終了点との間における各経由点を通る動きを含むものとなる。
【００２２】
（自動移動の生成）
本コンピュータシステムについてのある実施形態は、下記の機能のいくつかあるいは全てを実行するように構成される。この開示の利益を受ける当業者は、コード（機械読み取り可能な命令であり、それは、ソフトウエア、ハードウエア、ファームウエアあるいはそれらの二つ又はそれ以上の組み合わせを介して実装されうる）を書くことができるはずであって、下記及び図面に示した特徴及び機能（グラフィカルユーザインタフェースを含む）を完成するために過大な実験を行うことは不要である。
【００２３】
自動移動は、図１２に例示されたCSD GUI上の「自動動作（Automove）」ページ内で作成できる。図１１〜１７は、例えばディスプレイ１１０上に表示されうるCSD GUIの状態についての例を示す。コンピュータシステムは、シミュレーションモード（例えば図１７参照）となることができ、あるいは、マニピュレータの動きのために十分な構成とされることもできる。左及び右のロボットアームのために異なる自動移動を生成することもできる。これは例えば図３〜１０に示されている。このことは、構成、操作、及び機能において、前記の３１６特許での開示と同一か、あるいは少なくとも類似とすることが可能である。後述の一連のステップ、及び、後述において実行される機能は、自動移動を生成し、選択し、そして実行するための本方法、装置及びシステム（例えばコンピュータシステム）の実施形態に対応する。所定の自動移動は、所定のマニピュレータにおける一つの、いくつかの、あるいは全てのジョイントによる動きを含んでおり、ジョイントは、ベースジョイント（例えばショルダージョイント）を含む。
【００２４】
第１に、コンピュータシステムモードは、図１１に示されているように、「モード制御（Mode Controls）」タブ上の「手術タイプ（Surgery Type）」ボックスの下にあるＧＵＩの「設定（Setup）」ページ上の「顕微鏡手術」に設定される。コンピュータシステムは、この時点では、ロボットアームについての灰色の（強調されない）バージョンのみを表示するように構成され、このことは、どれにも動力が与えられていないことを示している。スクリーン上におけるロボットアームの表示はグラフィカル（つまり、アームの実際の画像でないことを意味する）であるが、実際の図面における場合と同様に縮尺が行われている。
【００２５】
つぎに、使用者は、ＧＵＩの左側にある「自動動作（Automove）」ボタンを選択できる。その結果、ＧＵＩは、図１２に示されたものと同様なスクリーンを表示できる。ここでは、被験者（例えば患者）の頭部の描画的表示（ワイヤフレームの球として）が、図示された頭部の中心としてのインジケータ（例えば着色されたボール）と共に示されており、さらに、ロボットアーム及びそれらのための道具についての描画的表示も行われており、これにより、ユーザは、被験者の頭部に関連して、それらの位置を見ることができる。
【００２６】
「モード制御（Mode Controls）」タブの下の「アーム選択（Arm Select）」ボックスの下で、使用者は、使用者が所定の自動移動を定義したいアーム（「左アーム」又は「右アーム」）を選択できる（図１２参照）。コンピュータシステムは、次のように構成されうる。すなわち、もし、アームに動力が与えられれば（例えばオン／オフボタン（図１１参照）が、それらのアームのために「オン」に設定されれば）、ディスプレイは、マニピュレータについての現在位置を表示する。使用者は、図１３に示される「モード制御（Mode Controls）」タブの下の「道具選択（Tool Select）」ドロップダウンメニューの下で、道具を選択することができ、これにより、特定の道具を、選択されたロボットアームに関連付けることができる。
【００２７】
次に、使用者は、コンピュータシステム（これは、命令を受け取るものとして特徴付けられる）に命令を送ることができる。このことは、所定のハンドコントローラの動きの結果であり、これは、関連するロボットアームの描画的な表示についてのＧＵＩ上の仮想的な動きを生成する。これは、以下の動作による。すなわち、選択されたロボットアームに対応するハンドコントローラ（例えば右のロボットアーム２００Ｒのための右のハンドコントローラ１０）を持ち上げること、起動ボタン（例えばボタン１６であり、これは、スタイラス起動ボタンとして特徴付けられる）を押すこと、そして、起動されたハンドコントローラを所望の位置に動かして、所望の自動移動における出発点のために、仮想的なマニピュレータを動かすことによる。所望の位置に到達したら、使用者は、命令をコンピュータシステムに送り、ハンドコントローラと選択されたロボットアームとの関係を遮断することができる。これにより、ハンドコントローラのその後の動きは、ロボットアームの動き（ＧＵＩ上に反映されたものとして）を生成しなくなる。これは、同じボタン（例えばボタン１６）を再び押し下げることにより実行できる。ある実施形態では、使用者は、このとき、ハンドコントローラの不能化／遮断（disable/disengage）をする必要がない。「モード制御（Mode Controls）」タブ上の「教示（Teach）」ボックスの下で、使用者は、「開始点（Start Point）」エントリを選択する（スクリーンをさわることで強調する）ことができ、そして、「ポイント設定（Set Point）」ボタンを選択して、コンピュータシステムに命令を送り、自動移動のための開始位置（図１３参照）を決定することができる。この命令の結果としてコンピュータシステムが受け取るデータセット（命令は例えば入力であり、そしてこれは、定義過程で使用される各ポイント／位置の実施形態におけるセットのためにも妥当する）は、以下を設定するのに十分なデータを備えることもできる。すなわち、（ａ）あらゆる適宜な座標系（例えば、ロボットアームの座標系）におけるＸ，Ｙ及びＺデカルト座標上の道具先端の位置（ここでこの位置は、いくつかの図面（例えば磁気共鳴画像空間）に示されるような仮想的な道具の重畳を生成する目的のために画像空間（例えば磁気共鳴画像空間）に投影されうるものである）、及び（ｂ）道具の長手方向軸の方向（そのような軸を描写するための図１２を参照）をコンピュータシステムが決定するために十分なデータを備えうる。コンピュータシステムによりアクセス可能なデータ、例えば、ロボットアームのリンク長が、この決定のために使用されてもよい。
【００２８】
プログラムされた自動移動における必要な中間の経由点の各々のために、ハンドコントローラは、もし不能化又は遮断（disabled/disengaged）されていた場合は、上記されたように可能化（enabled）され、そして、仮想化されたマニピュレータを所望の場所に動かすために使用される。所望の位置に到達したら、使用者は、彼が選択すれば、ハンドコントローラを前記のように不能化し、そして、「モード制御（Mode Controls）」タブ上の「教示（Teach）」ボックスの下で「追加（Add）」を選択して、経由点を生成できる。その後、「ポイント設定（Set Point）」ボタンを選択することにより、命令をコンピュータシステムに送り、自動移動における所望の経由点を特定することができる。これは、自動移動における各経由点のために繰り返して行ってもよい。コンピュータシステムは、次のように構成されることができる。すなわち、各経由点が特定された後、スクリーン上の線が、新しい点と、以前に特定された点との間に引かれ、プログラムされた経路を記述することができる（図１４参照）。
【００２９】
ユーザは、自動移動のための終点又は目的の位置を、同様のやり方で特定することができる。例えば、ユーザは、ハンドコントローラが可能化されていることを確かめ、仮想的なマニピュレータを、終点のための所望の位置まで動かし、必要ならハンドコントローラを不能化し、そして、「モード制御（Mode Controls）」上の「教示（Teach）」ボックスの下で、「目標点（Destination Point）」エントリを選択する（例えばスクリーンを触ることで強調する）。そして、「ポイント設定（Set Point）」ボタンを選択肢、命令をコンピュータシステムに送り、自動移動のための目標点を特定することができる。コンピュータシステムは、開始点から、特定された各経由点（もしあれば）を通って、目標点までの間で、一つ又はそれ以上のラインセグメントをＣＳＤスクリーンが表示する（図１４及び１５参照）ように構成されている。
【００３０】
（自動移動の検証）
コンピュータシステムは、次のように構成されていても良い。すなわち、自動移動が前記のように特定された後、自動移動はシミュレートされ、これにより、操作者は、プログラムされた動きが想定通りであるかどうかを検証できる。このような検証を行うために、ＧＵＩ上に表示された仮想的マニピュレータは、選択された自動移動における開始又は終端の点についての有効範囲内にあるべきである（例えばそれは、本近接条件の一つを満たすべきである）。使用者は、「モード制御（Mode Controls）」タブの「教示（Teach）」ボックス内の「シミュレート（Simulate）」ボタン（図１５参照）を押す。これにより、仮想的なマニピュレータを自動移動における一端から他端まで動かすことができる。図１５に示されているように、仮想的なマニピュレータについての強調されたバージョンが、非強調バージョンのマニピュレータに重畳した状態で動く様子を表示するように構成されうる。ここで、非強調バージョンのマニピュレータは、実際のマニピュレータの姿勢を維持している。
【００３１】
コンピュータシステムは、このシミュレーションモードにおいて衝突を検知する構成であっても良い。さらに、このシステムは、自動移動の実行によって生じる単独のあるいは複数の衝突が検出された場合に、あるいは、経路に沿ってセクションを通る動きがロボットアームのジョイント限界若しくは速度限界を超える場合に、エラーメッセージを表示する構成であっても良い。コンピュータシステムは、次のように構成されても良い。すなわち、仮想的なマニピュレータは、開始及び終端の点に到達できるけれども、実際のマニピュレータが、物理的に到達できない領域を通過しなければならない場合には、自動移動全体を有効でないものとすることができる。この例では、自動移動は、下記のように編集でき、そして、それについての再度のシミュレーションを行うことができる。
【００３２】
（選択されたロボットアームと保存された自動移動との関連付け）
コンピュータシステムを次のように構成することもできる。すなわち、ユーザは、いくつかの自動移動をプログラム（及び保存）できるが、ただ一つの自動移動（例えば道具交換の自動移動）を、所定のマニピュレータによる実行のために選択できる。自動動作ページ（Automove page）においては、「モード制御（Mode Controls）」タブの「実行（Execute）」ボタンのすぐ上に、実行する自動移動をロボットアームと関連付けるために、「道具交換として設定（Set As Tool Exchg）」と名付けられたチェックボックスが存在する。所定のロボットアームのための道具交換の自動移動として使用者が特定することを望む自動移動のために、使用者は、その自動移動の名前を、「自動動作（Automove）」ボックスの下のリスト中で強調し、「読み込み（Load）」ボタンを押し、そして、「道具交換として設定」ボックスをチェックすることができる。図１６参照。
【００３３】
（自動移動の保存、読み込み、及び編集）
コンピュータシステムは、左及び右のロボットアームのために、独立に、多数の自動移動を保存するように構成されていても良い。
【００３４】
コンピュータシステムを次のように構成することもできる。すなわち、自動移動が定義された後に（そして、もし検証が実行されるときは、それが検証された後に）、それを保存するために、使用者は、「モード制御」タブの「自動移動」ボックス内の「自動移動の名称（Automove Name）」の下でテキストエントリの欄を選択できる。これにより、スクリーン上のキーボード（onscreen keyboard）を出現させることもできる（図示せず）。使用者は、特定された自動移動のための名称をタイプし、そして、キーボードによって表示された「ＯＫ」ボタンを押すことができる。次に、使用者は、「モード制御」タブの「自動動作」ボックス内のＧＵＩ上の「保存（Save）」ボタンを動かすことができる（図１６参照）。コンピュータシステムは、自動移動がエラー無く保存されたかどうかを示す状況メッセージを提供するように構成されていても良い（図１３〜１６の上部にある、ACKボタンの隣のボックスを参照）。
【００３５】
コンピュータシステムは、自動移動が保存された後に、ユーザにより自動移動を読み込む構成であってもよい。例えば、「自動動作」設定ページ内の「モード制御」タブの「自動動作」ボックスの下で、リストボックスは、選択されたロボットアームのために以前に定義された自動移動の全てを含む。使用者は、彼が読み込みたい自動移動を強調することができ、そして、「読み込み（Load）」ボタンを押すことができる。もし、使用者が、この、読み込まれた自動移動を、選択されたロボットアームのための道具交換動作として使いたいときは、彼は、上に記載したステップを行うことによって、そのようにすることができる。もし使用者が、読み込まれた自動移動の編集又は置換を望む場合は、彼は、自動移動中の一つ又は複数のポイントを、「教示（Teach）」ボックス中に示されたポイントのリスト中における関連ポイントを強調して「除去」を押すことによって除去することができ（最高でも全部までであり、これによって、ユーザはやり直すことができる）、そして、例えば前記した技術を用いて、単数又は複数のポイントを、自動移動に追加することができる。編集が完了し、そして、必要な検証ステップが実行されたら、使用者は、「自動動作（Automove）」ボックス内の「保存（Save）」ボタンを押すことによって、編集を保存することができる。図１６を参照。コンピュータシステムは、ポップアップボックスを介してユーザに問い合わせを行って、上書きを確認するために「保存」ボタンが二度押されるべきであることを確認する構成であっても良い。コンピュータシステムは、ユーザが状況メッセージをチェックして、編集された／新しい自動移動がエラー無く保存されたことを確認できるように構成されていても良い。
【００３６】
使用者は、リストボックス中の自動移動の名称が強調された後に、「読み込み」ボタンの代わりに「除去（Remove）」ボタンをクリックすることにより、保存された自動移動を削除することもできる。図１６参照。
【００３７】
（自動移動の実行）
本コンピュータシステムは、複数の方法で自動移動を実行するように構成されていても良い。例えば、命令は、ＧＵＩとハンドコントローラのいずれから送られてもよい。
【００３８】
ＧＵＩから：
CSD GUIの自動動作ページから、図１２〜１６で例示されているように、使用者は次のことができる：ロボットアームを（上記したように）選択すること、保存された自動移動を（上記したように）読み込むこと、若しくは、自動移動の生成を（上記したように）完了すること、ロボットアームが（上記したように）起動されていること及び読み込まれ若しくはちょうど生成された自動移動と関連付けられていることを保障すること、関連するロボットアームが自動移動の開始又は終端の点の近くにあることを保障すること、並びに、「モード制御」タブ上のＧＵＩの右手下部にある「実行」ボタンを選択する（例えば押す）こと。結果として、ロボットアームは、読み込まれた／完了された自動移動を実行できる。さらに、コンピュータシステムは、「実行」ボタンを再び押すことが、以前に実行された自動移動を逆転させるように構成されても良い。好ましい実施形態では、コンピュータシステムは、「実行」ボタンが押された後、ハンドコントローラ上の可能化ボタンが押し下げられ、そして、保持されることを要求する構成とされる。これにより、実際のマニピュレータ動作が生じるときに、作業者がハンドコントローラを保持していることを一層確実に保障することができる。そのような実施形態では、コンピュータシステムは、可能化ボタンの再度の押し下げが動作を停止させ、引き続く押し下げ及び保持が、動作を逆転させるように構成することもできる。
【００３９】
入力装置から：
使用者は次のことが可能である：自動移動を（上記したように）読み込み、そして、それを道具交換動作として（上記したように）特定すること；顕微鏡手術モードを（上記したように）指定すること；関連する入力装置を用いて、ＧＵＩ左側の「マスタ／スレーブ」ボタン（図１７参照）を選択する（押す）こと；ロボットアームを道具交換の自動移動における始点又は終点に近い位置に動かすこと；そして、迅速なクリック（sharp click）とその後の入力装置上のボタン（例えば入力装置１０のスタイラス１２上のボタン１６）の保持動作（例えば２秒）とを適用すること。ここで、コンピュータシステムは、延長された保持を、オペレータが道具交換を望む命令として認識するように構成されている。もし関連する近接条件が満足されるのであれば、道具交換動作（tool exchange motion）として特定された自動移動（automated movement）が次に行われる。この点に関して、近接条件は、マニピュレータに保持された道具の先端（例えば末端）が自動移動の始点又は終点に十分に近いかどうかについてのチェックを含む。そうでなければ、コンピュータシステムは、プログラムされたそれぞれのゾーンのための球を、CSD GUI上に表示し、受け入れ可能な境界を特定することができる。図１８参照。使用者は、CSD GUIを使って、ロボットアームを動かし、それによって、道具先端を領域内に入れ、さらに、上記した方法で自動移動を再開させることができる。
【００４０】
コンピュータシステムは、自動移動前におけるスタイラス可能化ボタンの解放が、自動移動を実行させないように構成されていても良い。あるいは、自動移動が開始されたとき、使用者は、可能化ボタンを解放することができ、そして、動作は、経路を通って目標点まで続く。コンピュータシステムは、前方への自動移動が完了したときに、自動移動開始の場合と同様の方法における入力装置上の可能化ボタンの押圧及び保持によって、自動移動が反転する構成であっても良い。反転の自動移動が始まったときは、ボタンは解放され、そして、反転する経路が完了するまで、この動きが開始されて続行される。コンピュータシステムは、ユーザが、ハンドコントローラの可能化ボタンを押すことによって、自動移動の実行中に自動移動をいつでも中断できるように構成されてもよい。同じボタンの素早い押圧は、ロボットの動きを停止させる。他のクリック及び保持は、道具を、自動移動のための開始点まで戻し、そして、帰路の途中、もし使用者が当初の動きの継続を望むなら、彼は、可能化ボタンをさらにもう一度押して、ロボットアームを停止させることができる。他のクリック及び保持により、アームは、当初の中断された動きを再び続ける。
【００４１】
道具を交換する看護師は、道具交換位置（例えば自動移動における目標地）において、現在の道具からロボットアームを取り外し、新しい道具をロボットアームに取り付け、そして、マトリックスリーダ（matrix reader）を用いて、ロボットアームが停止しているか動作している間に、新しい道具をスキャンする。コンピュータシステムは、二つのアームに保持された二つの道具をスキャンできるように構成されていても良い。
【００４２】
（自動移動のための実行速度）
コンピュータシステムは、記載した実施形態のように、実行時において、遅い、中間、及び速いという三つの速度を提供するように構成されても良い。コンピュータシステムは、記載した実施形態のように、選択された速度が、実行のために引き続いて選択されたそれぞれの自動移動に、速度変更の選択がなされるまで、適用されるように構成されても良い。
【００４３】
速度を選択するために、使用者は、図１７に示されるように、自動動作（Automove）ページ上の「使用者設定（User Settings）」タブを選択できる。使用者は、このタブの「選択肢（Options）」ボックスの下のラジオボタンを用いて、所望の速度（「速い」、「中間」、あるいは「遅い」）を選択できる。
【００４４】
（設定の考慮（Setup Considerations））
所定の被験者（例えば患者）に使用する自動移動を生成する前に、訓練／模擬あるいはその他のものを介して、一つ又は両方のロボットアームが、一つ又はそれ以上の二次元画像（例えば、磁気共鳴画像（ＭＲＩ）装置のような３Ｄ画像処置（3D imaging modality））で取得された被験者（例えば患者）の画像についての３Ｄデータセットの２Ｄ画像）として登録される。しかしながら、自動移動は、そのような登録なしで生成及び実行されても良い。これは、例えば、移動禁止ゾーン（no-go zone）（例えば、患者の頭部領域、あるいは、顕微鏡、ＭＲＩ装置のボア（bore）若しくはカメラなどの、操作地域に近い構造物を特定する）との衝突が起きないことの安全チェックを介して行うことができる。そのような登録を、物理的登録及び画像空間に関する登録を含むプロセスを介して完了するための適宜な技術が、同時係属中の国際出願PCT/US08/60538に開示されており、これは、参照によってここに組み込まれる。
【００４５】
（ソフトウエアアルゴリズム）
本装置及びコンピュータシステムについてのある実施形態においては、上記した機能を達成するためにソフトウエアが記述され、それは、３Ｄ可視化、経路生成、及び経路実行という三つの部分を備えることができる。
【００４６】
（３Ｄ可視化）
自動移動についての生成／決定段階の間において、所定の仮想的ロボットアームを、適宜なＧＵＩ上で可視化する（例えば図１１〜１８参照）ことは、OpenGL（登録商標）グラフィックスで描写されたロボットアーム機構要素についての工業的なコンピュータ補助デザイン（ＣＡＤ）に基づく仮想現実モデリング言語（VRML）モデルの使用に基づいて行うことができる。このVRMLモデルは、OpenGLコールリストにコンパイルされ、そして、ロボット運動学計算（Robot kinematics calculations）を用いて、３Ｄ空間内に配置される。この運動学のルーチンは、アームジョイント角又はエンドエフェクタ姿勢に与えられる、それぞれのロボットアームセグメントについての位置と方向（ｘ、ｙ、ｚ、ピッチ、ヨー、ロール）を提供する。
【００４７】
（経路生成）
ある実施形態では、所定の自動移動は、二つ又はそれ以上の、使用者が特定した点のリストを持つことができる。それは、それぞれ、デカルト座標の完全な道具姿勢（ｘ、ｙ、ｚ、ピッチ、ロール、ヨー）を記述するものである。これらの点は、自動移動の経路を生成するための基礎を形成する。この経路は、使用者が定義した各一対の点の間において、直線のセグメントに沿って中間点を補間することができる。中間の経路の点（使用者が特定していないもの）は、１０ミリセカンドの動きに対応する間隔を保って配置されることができ、そしてそれは、ジョイント空間（joint space）において表現されうる。自動移動が実行されるべきであり、そして、それが、ロボットアームの６自由度を用いて設定された時には、経路に沿った各点（ユーザが特定したもの及び補間されたもの）は、六つのジョイント角のセット（ショルダーヨー、ショルダーロール、エルボーヨー、エルボーロール、リストピッチ、道具ロール）を備えるのであり、これは、添付の図面に示され、さらには、前記の３１６特許に記載された通りである。使用者が特定したデカルト座標上の経路点の間に、それぞれ、多数の補間された経路点があってもよい。
【００４８】
経路計算の間に、経路に沿うジョイント角の各セットを、直線的に補間されたデカルト座標上の姿勢から、逆運動学を介して得ることができる。逆運動学は、クローズドフォームの絶対的な運動方程式が六つのジョイント角のうちの五つをもたらすアプローチを用いることができ、ここで、第６のもの（道具のロール）は、一次元の数値的最小化プロセス（関数ｙ＝ｆ（ｘ）の結果を最小化するアルゴリズムのタイプであり、これは当業者にはよく知られている）で得ることができる。このプロセスは、黄金分割探索（golden section search）とその後のパラボリック補間との組み合わせを用いる。据え付けられたロボットアーム部品から測定された較正パラメータを考慮しなければ、正確性は乏しい。このパラメータは、運動ヤコビアン行列（当業者にはよく知られたアルゴリズム）を用いて、所望の正確性が達成されるまで、相互的な洗練ループ中に適用できる。
【００４９】
計算された経路に沿う各点は、既知の障害物（顕微鏡、患者の頭部領域、外科用テーブル）及び他のアーム（もしあれば）への衝突についてチェックされうる。衝突チェックは、操作中において、一つのロボットアームあたり１００Ｈｚの周波数で実行されることができる。しかし、自動移動の計算中においては、より高い周波数も可能である。これには、多数のポリゴン状オブジェクトを操作するために効率的なポリゴン干渉アルゴリズムであるVCollideのような、当業者にとって利用可能な適宜な衝突検知アルゴリズムを使用できる。VCollideは、アービトラリモデルについての作品と入力構造についての推定を行わないのであり、これは、「ポリゴンスープ（polygon soups）」としても知られている。VCollideは、３段階の衝突検知アーキテクチャを使用するものであり、オブジェクトの組の衝突可能性を見いだすためのN-bodyテスト、三角形の組の衝突可能性を見いだすための階層的な指向による領域ボックステスト、及び三角形の組が実際に重畳しているか否かを決定する抽出テストにより特徴付けられる。
【００５０】
当業者が理解することとして、クローズドフォームの絶対的運動方程式は、ロボットアームの物理的構造についての十分な詳細−例えば寸法、ジョイント間の有効リンク長など−が知られており、そして、クローズドフォームの解が存在しうるときに使用できるものである。図面及び３１６特許に示されたアームの場合には、例えばクローズドフォームの解を提供するために、ロボットアームのリストヨージョイント（７番目のジョイント）が除去されたときに、クローズドフォームの絶対運動方程式を使うことができる。
【００５１】
（経路の実行）
自動移動の実行は、自動移動の経路に沿う順次のポイントに、１０ミリセカンド（ms）間隔で、ロボットハードウエアが移動するように命令することを含む。経路は、ジョイント空間（joint space）で表現されているので、逆運動学を再計算する必要はない。実行中においては、もし、シーンオブジェクト（scene objects）の位置が変更されたり、あるいは、命令された経路をロボットアームが正確には辿っていない場合には、安全のために、衝突検知を繰り返すことができる。滑らかな動きを達成するために、意図された目標点の一つ先のポイントは、２０ｍｓの命令の間隔でジョイントモーション・コントローラに実際に命令されたものである。１０ｍｓが経過した後、目標は、やはり２０ｍｓ先にある新しい目標点と交換される。
【００５２】
本技術の実施形態は、本装置を構成するために、適宜なコンピュータ可読媒体上（例えば、有形なコンピュータ可読媒体）に保存されるソフトウエアとしてコード化されうる。例えば、この媒体としては、メモリ、またはデータ保存装置の適宜な形態であり、それは、ハードドライブ媒体、光学媒体、RAM、SRAM、DRAM、SDRAM、ROM、EPROM、EEPROM、テープ媒体、カートリッジ媒体、フラッシュメモリ、メモリスティックなどを含むが、これらに限られない。有形のコンピュータ可読媒体は、情報を保存あるいは転送できるような、あらゆる物理的媒体を含む。そのような実施形態は、コンピュータで実行可能な（例えば機械で読み取り可能な）、あるステップを実行するための命令を有する（あるいはそれでコード化された）有形のコンピュータ可読媒体として特徴付けることができる。用語「有形のコンピュータ可読媒体（tangible computer readable medium）」は、搬送波のような無線伝送媒体を含まない。用語「コンピュータ可読媒体」は、しかしながら、無線伝送媒体に及ぶ。そして、本方法のある実施形態は、前記のようなコンピュータ可読命令を運ぶ無線伝送媒体を含む。ソフトウエアは、業界において知られている技術に従って記載される。例えば、ソフトウエアを、各種のコンピュータ言語（例えば、アセンブリ、PASCAL、FORTRAN、BASIC、C、C++、C#、JAVA（登録商標）、Perl、Python）の一つ又はそれ以上で記載することができる。あるいはこれを、Matlab（登録商標）、R、S-plus（登録商標）、及びSAS（登録商標）のような科学的なパッケージを用いて記載することができる。コードは、各種の一般的なプラットフォーム（例えばマイクロソフト（登録商標）、Lunux（登録商標）、Apple Macintosh（登録商標）、OS X、Unix（登録商標））上でコンパイルされるかもしれない。さらに、OpenGLのような、既に確立されている、プラットフォーム縦断的なライブラリを使って、本方法、装置及びシステムの実施形態を実行することも可能である。マルチスレッド化（Multi-threading）を使うことができるのであれば、これを使って、現在のシングル及びマルチプロセッサをベースとしたハードウエアプラットフォーム上での計算時間を低減させることもできる。前記され、そして図面に示されたように、ソフトウエアは、ソフトウエア実行時において使用者に直感的な感覚を与えることができるＧＵＩを含むことができる。スクリーンへの接触、マウス及び／又はキーボードにより、異なる欄をアクセスすることが可能である。警報、合図などは、ポップアップウインド、警告音、及び他の知られた技術を介して実現することができる。
【００５３】
前記の内でいくつかの（最大で全部の）機能は、プロセッサ（例えば一つ又はそれ以上の集積回路）を有するコンピュータを用いて実装することができ、それは、ファームウエア及び／又は実行されるソフトウエアによってプログラムにされている。前記の内でいくつかの（最大で全部の）機能を、コンピュータシステムの一例である分散計算環境（distributed computing environment）を用いて実装することができる。分散計算環境では、多数のコンピュータを用いることができ、それらは、例えば、適宜な数の連結媒体（例えば局地ネットワーク（LAN）、広域ネットワーク（WAN）、あるいは他のネットワークであり、これは、イーサネット（登録商標）、企業規模（enterprise-wide）コンピュータネットワーク、イントラネット、及びインターネットを含むがこれらに限定されない。そして、コンピュータ間の接続は、有線でも無線でも良い）によって連結される。さらに、適宜なコンピュータシステムの実施形態を、特定用途集積回路（ASICs）あるいは大規模集積回路（VLSI）上に実装することができ、それはさらに（あるいは代替的に）、資源の仮想化（virtualization of resources）、仮想コンピューティング、及び又はクラウドコンピューティングを使って特定の機能を達成するように構成されても良い。実際、当業者は、この開示に対応するコンピュータシステムによって上記機能を達成するための論理操作を実行できる適宜な構成を実現することができる。
【００５４】
よく知られた処理技術、要素、及び装置の記述については、本発明の方法、装置及びシステムが不要に詳細となることによって理解困難となることを避けるために、省略されている。本方法、装置及びシステムの記載は例示であり、非制限的（non-limiting）である。本請求項の範囲に含まれるけれどもこの記載に明示されていない置換、変形、追加、及び／又は再構成は、当業者にとっては、この記載に基づけば、明らかであろう。例えば、上の「自動移動生成（Automated Movement Creation）」のセクションは、所定の自動移動における点がＧＵＩを用いてどのように生成されるかを説明しているけれども、本技術についての他の実施形態（例えばコンピュータ可読媒体、コンピュータシステム、あるいは方法（コンピュータに実装されたもの）の形態において）を構成して、使用者が、例えばレバー１４を押し下げることによって、関連するロボットアームにリンクされたハンドコントローラを操作するときに、特定されるべき自動移動における所定の点を特定することができる。さらに、理解されるべきこととして、実用的な実施形態の開発においては、開発者の特有のゴール、例えばシステム関連及びビジネス関連の制約条件との整合を達成するために、実装に特有な多数の決定がなされなければならず、それらは、ある実装から他のものに変わるにつれて変化するであろう。そのような開発努力は複雑で時間を消費するものであるけれども、この開示の利益を受ける当業者にとっては日常的な仕事である。
【００５５】
添付の請求項は、所定の請求項における限定が明示的に「ための手段（means for）」及び／又は「ための方法（step for）」という句をそれぞれ明示的に用いていない限り、機能付き手段（means-plus-function）の限定を含むものとして解釈されるべきではない。
【図１】
0005784670.tif 000002
【図２】
0005784670.tif 000003
【図３】
0005784670.tif 000004
【図４】
0005784670.tif 000005
【図５】
0005784670.tif 000006
【図６】
0005784670.tif 000007
【図７】
0005784670.tif 000008
【図８】
0005784670.tif 000009
【図９】
0005784670.tif 000010
【図１０】
0005784670.tif 000011
【図１１】
0005784670.tif 000012
【図１２】
0005784670.tif 000013
【図１３】
0005784670.tif 000014
【図１４】
0005784670.tif 000015
【図１５】
0005784670.tif 000016
【図１６】
0005784670.tif 000017
【図１７】
0005784670.tif 000018
【図１８】
0005784670.tif 000019