<実施の形態の概要>
マウンティングアームと、マウンティングアームに装着されるガイドチューブ、及びそれぞれエンドエフェクタを有し、ガイドチューブから分岐して出る複数のツールを含み、マウンティングアーム、ガイドチューブ及び複数のツールが連動して動作するように制御するロボットにおいて、近位部(身中心部、proximal end)、すなわちマウンティングアーム及びガイドチューブの自由度によって発生する冗長自由度(redundancy)を活用することによって、ツールの活動領域(workspace)を拡張させ、通常的なツール制御方式では不可能な作業を行うことができるロボット及びその制御方法を提案する。
また、マウンティングアームと、マウンティングアームに装着されるガイドチューブ、及びそれぞれエンドエフェクタを有し、ガイドチューブから分岐して出る複数のツールを含み、マウンティングアーム、ガイドチューブ及び複数のツールが連動して動作するように制御するロボットにおいて、近位部、すなわちマウンティングアーム及びガイドチューブの自由度によって発生する冗長自由度を活用することによって、ツールの関節別必要剛性を最小化し、ツールと周辺障害物間の衝突可能性を最小化することができるロボット及びその制御方法を提案する。
また、マウンティングアームと、マウンティングアームに装着されるガイドチューブ、及びそれぞれエンドエフェクタを有し、ガイドチューブから分岐して出る複数のツールを含み、マウンティングアーム、ガイドチューブ及び複数のツールが連動して動作するように制御するロボットにおいて、近位部、すなわちマウンティングアーム及びガイドチューブの自由度によって発生する冗長自由度を活用することによって、ツールの必要自由度を最小化し、従来に不可能であった複合的な作業(complex task)を行うことができるロボット及びその制御方法を提案する。
ロボットは、ガイドチューブと、ガイドチューブと連動して動作し、ガイドチューブから分岐する複数のツールとを有するマルチツールモジュールであって、冗長自由度を有するマルチツールモジュールと;複数のツールの末端部に対する作業空間でのモーション命令情報に基づいてマルチツールモジュールに対する関節空間でのモーションに関する制御信号を生成し、且つ冗長自由度を活用して制御信号を生成する制御部と;を含み、冗長自由度は、関節空間でのマルチツールモジュールの自由度の数が作業空間での自由度の数より大きい場合を表す。
また、ガイドチューブ及び複数のツールそれぞれは、複数のリンク及び複数の関節を含み、複数のツールの各末端部には、エンドエフェクタが装着される。
また、制御部は、複数のツールの末端部に対する作業空間でのモーション命令情報に対応するヤコビアン行列を算出し、複数のツールの末端部に対する作業空間でのモーション命令情報及び算出されたヤコビアン行列に基づいて冗長自由度を活用してマルチツールモジュールに対する関節空間でのモーションに関する制御信号を生成する。
また、制御部は、制御信号の生成過程でロボットの目的関数を算出し、且つ目的関数は、複数の個別目的関数の加重和で表現される。
また、個別目的関数は、それぞれのツールと器具的限界(joint limit)との間の距離の逆数、それぞれのツールと特異姿勢(singular pose)との間の距離の逆数、各関節のトルク二乗の和及びそれぞれのツールと周辺障害物との間の距離の逆数を含む。
また、制御部は、算出されたロボットの目的関数を最適化又は次善化する(optimize or suboptimize)関節空間でのモーションに関する制御信号を生成する。
また、ヤコビアン行列算出時に必要とするアルゴリズム及びロボットの運動学的構造に関する情報、目的関数算出時に必要とする複数の個別目的それぞれを達成するための複数の個別目的関数、ロボットが行う作業に応じて各個別目的関数に乗算される加重値を格納する格納部をさらに含む。
また、制御部は、前記複数のツールの末端部に対する作業空間でのモーション命令情報に優先順位が設定されているとき、優先順位が高い作業空間でのモーション命令情報及び優先順位が低い作業空間でのモーション命令情報に対応するヤコビアン行列を算出し、優先順位が設定された作業空間でのモーション命令情報及び算出されたヤコビアン行列に基づいて冗長自由度を活用し、マルチツールモジュールに対する関節空間でのモーションに関する前記制御信号を生成する。
また、制御部は、制御信号の生成過程でロボットの目的関数を算出し、且つ目的関数は、複数の個別目的関数の加重和で表現される。
また、個別目的関数は、それぞれのツールと器具的限界(joint limit)との間の距離の逆数、それぞれのツールと特異姿勢(singular pose)との間の距離の逆数、各関節のトルク二乗の和及びそれぞれのツールと周辺障害物との間の距離の逆数を含む。
また、制御部は、算出されたロボットの目的関数を最小化する関節空間でのモーションに関する制御信号を生成する。
また、複数のツールの末端部に対する作業空間でのモーション命令情報に設定された優先順位、ヤコビアン行列算出時に必要とするアルゴリズム及びロボットの運動学的構造に関する情報、目的関数算出時に必要とする複数の個別目的それぞれを達成するための複数の個別目的関数、ロボットが行う作業に応じて各個別目的関数に乗算される加重値を格納する格納部をさらに含む。
ロボットの制御方法は、ガイドチューブと、ガイドチューブと連動して動作し、ガイドチューブから分岐する複数のツールとよりなるマルチツールモジュールを含むロボットの制御方法において、マルチツールモジュールは、冗長自由度を有し、複数のツールの末端部に対する作業空間でのモーション命令情報を生成し;生成された作業空間でのモーション命令情報に基づいてマルチツールモジュールに対する関節空間でのモーションに関する制御信号を生成し、且つ冗長自由度を活用して制御信号を生成し、冗長自由度は、関節空間でのマルチツールモジュールの自由度の数が作業空間での自由度の数より大きい場合を表す。
また、ガイドチューブ及び複数のツールそれぞれは、複数のリンク及び複数の関節を含んでなり、複数のツールの各末端部には、エンドエフェクタが装着される。
また、冗長自由度を活用してマルチツールモジュールに対する関節空間でのモーションに関する制御信号を生成することは、複数のツールの末端部に対する作業空間でのモーション命令情報に対応するヤコビアン行列を算出し、複数のツールの末端部に対する作業空間でのモーション命令情報及び算出されたヤコビアン行列に基づいて制御信号を生成することである。
また、冗長自由度を活用して前記マルチツールモジュールに対する関節空間でのモーションに関する前記制御信号を生成することは、制御信号の生成過程で前記ロボットの目的関数を算出することであって、目的関数は、複数の個別目的関数の加重和で表現される。
また、冗長自由度を活用してマルチツールモジュールに対する関節空間でのモーションに関する制御信号を生成することは、ロボットの目的関数を算出し、算出されたロボットの目的関数を最適化又は次善化する(optimize or suboptimize)関節空間でのモーションに関する制御信号を生成することである。
また、個別目的関数は、それぞれのツールと器具的限界(joint limit)との間の距離の逆数、それぞれのツールと特異姿勢(singular pose)との間の距離の逆数、各関節のトルク二乗の和及びそれぞれのツールと周辺障害物との間の距離の逆数を含む。
また、冗長自由度を活用してマルチツールモジュールに対する関節空間でのモーションに関する制御信号を生成することは、複数のツールの末端部に対する作業空間でのモーション命令情報に優先順位が設定されているとき、優先順位が高い作業空間でのモーション命令情報及び優先順位が低い作業空間でのモーション命令情報に対応するヤコビアン行列を算出し、優先順位が設定された作業空間でのモーション命令情報及び算出されたヤコビアン行列に基づいて冗長自由度を活用してマルチツールモジュールに対する関節空間でのモーションに関する制御信号を生成する。
また、冗長自由度を活用して前記マルチツールモジュールに対する関節空間でのモーションに関する前記制御信号を生成することは、制御信号の生成過程で前記ロボットの目的関数を算出することであり、目的関数は、複数の個別目的関数の加重和で表現される。
また、冗長自由度を活用してマルチツールモジュールに対する関節空間でのモーションに関する制御信号を生成することは、ロボットの目的関数を算出し、算出されたロボットの目的関数を最適化又は次善化する(optimize or suboptimize)関節空間でのモーションに関する制御信号を生成することである。
また、個別目的関数は、それぞれのツールと器具的限界(joint limit)との間の距離の逆数、それぞれのツールと特異姿勢(singular pose)との間の距離の逆数、各関節のトルク二乗の和及びそれぞれのツールと周辺障害物との間の距離の逆数を含む。
本実施形態のロボット及びその制御方法によれば、マウンティングアームと、マウンティングアームに装着されるガイドチューブ、及びそれぞれエンドエフェクタを有し、ガイドチューブから分岐して出る複数のツールを含み、マウンティングアーム、ガイドチューブ及び複数のツールが連動して動作するように制御するロボットにおいて、近位部、すなわちマウンティングアーム及びガイドチューブの自由度によって発生する冗長自由度を活用することによって、ツールの活動領域(workspace)を増加させ、通常的なツール制御方式では不可能な作業を行うことができる。
また、本実施形態のロボット及びその制御方法によれば、マウンティングアーム、マウンティングアームに装着されるガイドチューブ、及びそれぞれエンドエフェクタを有し、ガイドチューブから分岐して出る複数のツールを含み、マウンティングアーム、ガイドチューブ及び複数のツールが連動して動作するように制御するロボットにおいて、近位部、すなわちマウンティングアーム及びガイドチューブの自由度によって発生する冗長自由度を活用することによって、ツールの関節別必要剛性を最小化し、ツールと周辺障害物との間の衝突可能性を最小化することができる。
また、本実施形態のロボット及びその制御方法によれば、マウンティングアーム、マウンティングアームに装着されるガイドチューブ、及びそれぞれエンドエフェクタを有し、ガイドチューブから分岐して出る複数のツールを含み、マウンティングアーム、ガイドチューブ及び複数のツールが連動して動作するように制御するロボットにおいて、近位部、すなわちマウンティングアーム及びガイドチューブの自由度によって発生する冗長自由度を活用することによって、ツールの必要自由度を最小化し、従来不可能であった複合的な作業を行うことができる。
<実施の形態の詳細な説明>
以下では、添付の図面を参照して実施例を詳細に説明する。
図1は、手術ロボットの全体構造を示す斜視図であり、図2は、図1に示す“A”部分の内部構造を示す図である。特に、図1は、末端部に手術道具(surgical tool)が装着された複数の手術器具を1つの切開孔を通じて患者の体内に進入させて、人体内多様な場所で手術を可能にするシングルポート手術ロボットを示している。シングルポート手術ロボットを利用した手術では、以下で説明するさまざまな要件が必要である。第一に、複数の手術器具が1つの切開孔を通じて体内に進入した後、手術作業のために任意の位置に移動可能ではなければならないので、手術器具の作業領域が広くなければならない。第二に、手術器具が高い自由度を有し、多様な作業が可能ながらも、腹腔壁などで人体組職との衝突を最小化しなければならない。第三に、手術器具が体内に進入するときには、柔軟ではなければならないし、手術作業を行うときには、高い剛性を有しなければならない。すなわち、シングルポート手術ロボットを利用した手術時には、手術器具が自由に移動することができる広い作業領域と高自由度(high degreeof freedom)、高剛性(high rigidity)及び柔軟性を同時に満たすことができる手術器具が確保されなければならない。
ここで、自由度(Degree of Freedom、DOF)とは、運動学(Kinematics)または逆運動学(Inverse Kinematics)での自由度を言う。器具の自由度とは、器具の独立的な運動の数または各リンク間の相対位置の独立した運動を決定する変数の数を言う。例えば、x軸、y軸、z軸よりなる3次元空間上の物体は、物体の空間的な位置(position)を決定するための3自由度(各軸での位置)と、物体の空間的な姿勢(orientation)を決定するための3自由度(各軸に対する回転角度)のうち1つ以上の自由度を有する。もし物体がそれぞれの軸に沿って移動可能であり、それぞれの軸を基準として回転可能であるとすれば、この物体は、6自由度を有するものと理解することができる。
図1に示されたように、手術ロボットは、手術台に横になっている患者に手術を行うスレーブロボット200と、スレーブロボット200を操作者(主として医者)が遠隔操縦するマスター装置100とを含んでなる。マスター装置100は、操作者(主として医者)の操作による制御信号を生成し、スレーブロボット200に伝送する。一方、スレーブロボット200は、マスター装置100から制御信号を受信し、受信した制御信号によって移動し、手術に必要な操作を患者に加える。ここで、マスター装置100とスレーブロボット200が必ず物理的に独立した別途の装置に分離されなければならないものではなく、1つに統合されて一体型で構成されてもよい。
図1に示されたように、スレーブロボット200は、マウンティングアーム202及び円筒状のケーシング208を含むことができる。
スレーブロボット200のマウンティングアーム202は、多自由度を持って駆動するように具現することができる。マウンティングアーム202は、複数のリンク(図3Aの206a、206b、206c参照)及び複数の関節(図3Aの204a、204b、204c参照)よりなる。
また、マウンティングアーム202の上部には、円筒状のケーシング208が連結される。ケーシング208には、内部に複数のツール214a、214b及び/または内視鏡216を含むガイドチューブ212と、複数のツール214a、214b及び/または内視鏡216とガイドチューブ212の駆動のための駆動部(図3Bの270参照)が内蔵されることができる。ここで、ガイドチューブ212は、マウンティングアーム202に連結して設置される。スレーブロボット200が手術を行わないときには、ガイドチューブ212がケーシング208内に内蔵されていて、スレーブロボット200が手術を行うときには、図1及び図2に示されたようにケーシング208内に内蔵されているガイドチューブ212が外に出て、患者の体内に挿入される。ガイドチューブ212が患者の体内に挿入され、手術作業を行う様子、すなわち図1に示す“A”部分の内部様子をさらに詳細に説明すれば、図2に示されたように、ガイドチューブ212が患者の皮膚に形成された切開孔Iを通じて体内に進入した後、手術しようとする部位(手術部位)に接近するようになれば、ガイドチューブ212から複数のツール214a、214bと内視鏡216が分岐して出て、手術作業を行う。ここで、ガイドチューブ212、複数のツール214a、214b及び内視鏡216は、マウンティングアーム202と同様に、複数のリンク及び複数の関節よりなり、多自由度を持って駆動するように具現することができる。複数のツール214a、214bそれぞれの末端部(distal end)には、腹腔内で臓器と接触し、切って縫う直接的な施術作業を行うフォーセップス(forceps)、ジョー(jaw)、グラスパー(grasper)、はさみ(scissors)、ステープラー(stapler)、焼灼器(cautery)、ニードル(needle)などの手術道具、すなわちエンドエフェクタ218a、218bが装着される。
内視鏡216は、広い意味でガイドチューブ212から分岐して出る複数のツール214a、214bのうち1つとして見られるが、以下では、手術ロボットの特性を考慮して末端部に手術部位に対する切開、縫合などの直接的な手術動作を行うエンドエフェクタ218a、218bが設けられる複数のツール214a、214bと、手術部位に対して直接的な動作を行うことなく、エンドエフェクタ218a、218bの動作を補助するための多関節を有する内視鏡216を別に分けて説明する。
ここで、内視鏡216としては、ロボット手術で主に使用される腹腔鏡(laparoscope)以外に、胸腔鏡(thoracoscopy)、関節鏡(arthroscope)及び鼻鏡(rhinoscope)など多様な手術用内視鏡が使用されることができる。
一方、マスター装置100は、マスター操作機112L、112R、クラッチペダル114L、114R及び表示部116を含むことができる。マスター装置100は、操作者が両手にそれぞれ把持して操作することができるようにマスター操作機112L、112Rを具備する。操作者は、マスター操作機112L、112Rを通じてスレーブロボット200のマウンティングアーム202、ガイドチューブ212、複数のツール214a、214b及び内視鏡216の位置及び機能を操作する。マスター操作機112L、112Rは、3次元空間上でマウンティングアーム202などのx軸、y軸、z軸の並進運動及びロール(roll)方向、ピッチ(pitch)方向、ヨー(yaw)方向の回転運動を制御するために6自由度を有するように具現されることができる。マスター操作機112L、112Rは、図1に示されたように、2つのハンドルで具現されることができ、操作者のハンドル操作による制御信号がスレーブロボット200に伝送され、マウンティングアーム202などを含むスレーブロボット200の動作が制御される。操作者のハンドル操作によってマウンティングアーム202、ガイドチューブ212、複数のツール214a、214b及び内視鏡216の並進運動及び回転運動、このような動きを用いた実質的な手術作業(例:縫合、配管挿入など)が行われることができる。
また、マスター装置100は、マスター操作機112L、112Rの操作機能を拡張するために操作者が両足でそれぞれ踏んだり押して操作することができるように、2つのペダルセンサー114L、114Rを含む。
図1に示す2つのハンドルよりなるマスター操作機112L、112Rと2つのペダルセンサー114L、114Rを利用してマウンティングアーム202などの動作を制御する方式を具体的な例を取って説明すれば、まず、左側ハンドル112Lを利用してマウンティングアーム202の位置及び動作を制御し、右側ハンドル112Rを利用してガイドチューブ212の位置及び動作を制御することができる。また、マスター装置100に設けられたモードスイッチ(図示せず)またはボタン(図示せず)が操作された状態では、左側ハンドル112Lを利用して第1ツール214aの位置及び動作を制御し、右側ハンドル112Rを利用して第2ツール214bの位置及び動作を制御することができる。これに加えて(モードスイッチまたはボタンが操作された後)、左側ペダルセンサー114Lが操作された状態では、左側ハンドル112Lを利用して内視鏡216の位置及び動作を制御することができる。また、モードスイッチまたはボタンが操作された後、右側ペダルセンサー114Rが操作された状態で、右側ハンドル112Rを利用して内視鏡216の位置及び動作を制御することができるように具現することも可能である。
図1では、マスター装置100に2つのマスター操作機(ハンドル)が装着された場合を例に取って説明したが、ハンドルをさらに追加し、同時に複数の手術装備(例えば、ガイドチューブ、複数のツール)をリアルタイムで操作することができるように具現することも可能である。ここで、ハンドル112L、112Rは、その操作方式に従って多様な器具的構成を有することができ、例えば、ジョイスティックなど3次元的な動きを有することができ、スレーブロボット200のマウンティングアーム202、ガイドチューブ212及び複数のツール214a、214bなどを作動させるための多様な入力手段が利用されることができる。マスター操作機112L、112Rには、複数のリンク及び複数の関節(リンクとリンクの連結部位)が連結される。マスター操作機112L、112Rに連結される複数の関節それぞれには、マスター操作機112L、112Rに連結される各関節の回転角度を検出する回転角センサー(例えば、エンコーダー)が装着されることができる。
マスター装置100の表示部116には、内視鏡(図2の216参照)及び/または超音波プローブ(図示せず)によって入力される映像が画像イメージとして表示される。表示部116は、1つ以上のモニターで構成されることができ、各モニターに手術時に必要な情報が個別的に表示されるようにすることができる。図1には、表示部116が3つのモニターを含む場合が例示されたが、モニターの数は、表示を必要とする情報の類型や種類などによって多様に決定されることができる。
マスター装置100とスレーブロボット200は、有線通信網または無線通信網を通じて相互結合され、制御信号、内視鏡216を通じて入力された内視鏡映像及び超音波プローブ(図示せず)を通じて入力された超音波映像などが相手(スレーブロボットまたはマスター装置)に伝送されることができる。もし、マスター装置100に設けられた2つのマスター操作機(ハンドル)による2つの制御信号、例えば、ガイドチューブ212から分岐した第1ツール214aの位置調整のための制御信号とガイドチューブ212から分岐した第2ツール214bの位置調整のための制御信号が同時にまたは近接した時点で伝送される必要がある場合、各制御信号は、相互独立的にスレーブロボット200に伝送されることができる。ここで、各制御信号が“独立的に”伝送されるということは、制御信号の間に互いに干渉を与えず、いずれか1つの制御信号が他の1つの信号に影響を及ぼさないことを意味する。このように、複数の制御信号が互いに独立的に伝送されるようにするためには、各制御信号の生成段階で各制御信号に対するヘッダー情報を付加して伝送させるか、または各制御信号がその生成手順によって伝送されるようにするか、または各制御信号の伝送手順に関してあらかじめ優先順位を定め、それによって伝送されるようにするなど多様な方式が利用されることができる。この場合、各制御信号が伝送される伝送経路が独立的に具備されるようにすることによって、各制御信号の間に干渉が根本的に防止されるようにすることもできる。
図3Aは、手術ロボットを成すスレーブロボットの外観斜視図であり、図3Bは、ケーシング内に内蔵されるマルチツールモジュール及び駆動部の構造を示す図であり、図3Cは、図3Bに示す“B”部分(ガイドチューブ212の末端部)で複数のツールと1つの内視鏡が展開された様子を示す図である。
図3Aに示されたように、スレーブロボット200は、胴体201、複数のリンク及び関節よりなるマウンティングアーム202及び円筒状のケーシング208を含むことができる。
スレーブロボット200の胴体201は、手術作業を行うマウンティングアーム202を設置及び支持するための構成部であって、胴体201の下端には、スレーブロボット200の位置移動のための複数のキャスター(caster)201aが装着される。それぞれのキャスター201aには、キャスター201aの動作状態を変更するためのレバー(図示せず)が設けられることができる。操作者は、このレバーの位置を調節し、キャスター201aの動作状態を変更させることができる。キャスター201aの動作状態としては、制動(brake)、自由旋回(free swivel)及び方向固定、旋回固定(directional lock、swivel lock)などを挙げることができる。
スレーブロボット200のマウンティングアーム202は、3つのリンク第1〜第3リンク、206a〜206c及び3つの関節第1〜第3関節、204a〜204cを含んでなる。
マウンティングアーム202を成す第1リンク206aは、直線型の柱形状を有し、胴体201と垂直する方向に設けられる。
マウンティングアーム202を成す第1関節204aは、胴体201と第1リンク206aの連結部位に設けられる。第1関節204aは、x、y、z軸のうち指定された軸に沿って移動する直動関節(prismatic joint)で具現することができる。第1関節204aは、患者の体内に挿入されるガイドチューブ212に対する制限的な動作制御のためのRCM(Remote Center of Motion)のx、y、z座標調節のためのものなので、3自由度を有することができる。具体的に、第1関節204aは、x軸並進運動、y軸並進運動及びz軸並進運動を含む3自由度を有する。このために、第1関節204aには、x軸駆動部(図示せず)、y軸駆動部(図示せず)及びz軸駆動部(図示せず)が設けられることができる。
第1リンク206aの先端には、第2リンク206bが機械的に連結される。第2リンク206bは、図3Aに示されたように、曲線形状を有する。具体的に、第2リンク206bは、円弧の一部のような形状を有する。
第2関節204bは、第1リンク206aと第2リンク206bの連結部位に設けられる。第2関節204bは、x、y、z軸のうち指定された軸を基準として回転する回転関節(revolute joint)で具現することができる。このような第2関節204bは、ガイドチューブ212などが内蔵されるケーシング208の回転運動のための部分であって、2自由度を有することができる。具体的に、第2関節204bは、ケーシング208のロール(roll)方向回転及びピッチ(pitch)方向回転を含む2自由度を有する。このために、第2関節204bには、ロール駆動部(図示せず)及びピッチ駆動部(図示せず)が設けられることができる。
第2リンク206bの先端には、第3リンク206cが機械的に連結される。第3リンク206cは、図3Aに示されたように、リング(ring)形状で形成される。第3リンク206cの上部には、円筒状のケーシング208が設けられる。
円筒状のケーシング208内には、マウンティングアーム202に連結されるガイドチューブ212と、その内部に設けられる複数のツール214a、214b及び内視鏡216よりなるマルチツールモジュール210、及びマルチツールモジュール210を成す構成要素(ガイドチューブ、複数のツール及び内視鏡)を駆動させる駆動部270が内蔵されることができる(図3B参照)。スレーブロボット200が手術を行わないときには、図3Aに示されたように、マルチツールモジュール210、すなわち内部に複数のツール214a、214bと内視鏡216を含むガイドチューブ212が円筒状のケーシング208内に内蔵されているので、ガイドチューブ212が外部に露出しない。このようなガイドチューブ212などが内蔵されたケーシング208は、第3リンク206cと機械的に分離することができるように具現することができる。このようにガイドチューブ212などが内蔵されるケーシング208が第3リンク206cから分離される場合、手術に使用されたガイドチューブ212を交替するか、または消毒することが容易になる。
第3関節204cは、第2リンク206bと第3リンク206cの連結部位に設けられる。第3関節204cは、x、y、z軸のうち指定された軸を基準として回転する回転関節(revolute joint)で具現することができる。このような第3関節204cは、ガイドチューブ212などが内蔵されるケーシング208の回転運動のための部分であって、1自由度を有することができる。具体的に、第3関節204cは、ケーシング208のヨー(yaw)方向回転を含む1自由度を有する。このために、第3関節204cには、ヨー駆動部(図示せず)が設けられることができる。
前述したように、スレーブロボット200が手術を行わないときには、円筒状のケーシング208内に、図3Bに示されたようなガイドチューブ212及びその内部に設けられる複数のツール214a、214bと内視鏡216を含んでなるマルチツールモジュール210、そしてマルチツールモジュール210に連結され、マルチツールモジュール210を成す構成要素それぞれを駆動させるためのモーターなどのアクチュエータを含む駆動部270が内蔵される。
一方、ガイドチューブ212とその内部に設けられる複数のツール214a、214b及び内視鏡216よりなるマルチツールモジュール210を利用したロボット手術過程は、大きく、マルチツールモジュール210の挿入(insertion)段階、マルチツールモジュール210の位置選定(positioning)段階及びマルチツールモジュール210を利用した手術作業(operation)段階を含む。
スレーブロボット200が手術を行うときには、ケーシング208内に内蔵されているマルチツールモジュール210、さらに厳密には、ガイドチューブ212がケーシング208の外に出て、患者の皮膚に形成された切開孔Iを通じて体内に挿入される。ガイドチューブ212が体内に挿入される段階(insertion)では、図3Bに示された“B”部分のように、複数のツール214a、214bと内視鏡216がガイドチューブ212から分岐されて出る前の状態、すなわち複数のツール214a、214bと内視鏡216がガイドチューブ212の内部空間に折り畳まれている(folded)状態のマルチツールモジュール210が患者の体内に進入するようになる。
体内に挿入されたガイドチューブ212を手術しようとする部位(手術部位)に位置させる位置選定(positioning)段階を経てガイドチューブ212が手術部位に接近すれば、図3Cに示されたように、ガイドチューブ212からそれぞれ末端部に手術作業のためのエンドエフェクタ218a、218bが装着された複数のツール214a、214bと1つの内視鏡216が分岐して出て、手術作業を行うようになる。図3Cは、ガイドチューブ212の末端部(図3Bに示す“B”部分)から2つのツール(第1及び第2ツール、214a、214b)と1つの内視鏡216が展開された様子を例示している。
本発明は、図3A〜図3Cに示されたように、マウンティングアーム202、マウンティングアーム202に連結設置されるガイドチューブ212、及びガイドチューブ212内に設けられ、手術作業時にガイドチューブ212から分岐して出る複数のツール214a、214b及び1つの内視鏡216を含むスレーブロボット200を備えた手術ロボットにおいて、各構成要素、すなわちマウンティングアーム202、ガイドチューブ212、複数のツール214a、214b及び1つの内視鏡216の関節空間(joint space)での自由度の和が作業空間(task space)での自由度(作業に必要な自由度)の和より大きい場合、すなわち手術ロボット(特に、スレーブロボット)が冗長自由度(冗長性)を有する場合、この冗長自由度を活用してスレーブロボット200を成す各構成要素の動作を統合的に制御する方法に関する発明である。
前述した冗長自由度の概念をさらに詳しく説明するために、まず、図3A〜図3Cで例示したマウンティングアーム202、マウンティングアーム202に連結設置されるガイドチューブ212、手術作業時にガイドチューブ212から分岐して出る2つのツール214a、214b及び1つの内視鏡216を含むスレーブロボット200において、マウンティングアーム202、ガイドチューブ212、2つのツール214a、214b及び1つの内視鏡216それぞれは、複数のリンク及び複数の関節を含んでなるという点を前提する。また、マウンティングアーム202とガイドチューブ212が互いに連動して動作し、ガイドチューブ212とそれぞれのツール214a、214bが互いに連動して動作し、ガイドチューブ212と1つの内視鏡216が互いに連動して動作するものと前提する。ここで、マウンティングアーム202の関節空間での自由度aを6(x、y、z軸方向の並進自由度3とロール、ピッチ、ヨー方向の回転自由度3の和)で、ガイドチューブ212の関節空間での自由度bを6(2個の曲げ(bending)自由度2と挿入方向の自由度1とロール方向の回転自由度1の和)で、第1及び第2ツール214a、214bそれぞれの関節空間での自由度c、dを6で、内視鏡216の関節空間での自由度eを3(ロール、ピッチ、ヨー方向の回転自由度3)で具現してスレーブロボット200を製作する場合、前述した構成要素をすべて含むスレーブロボット200の関節空間での自由度Nは、27になる(N=a+b+c+d+e=6+6+6+6+3=27)。
一方、x軸、y軸、z軸よりなる3次元空間で複数の関節よりなる器具部(例えば、ツールまたは内視鏡)が任意の作業を行うのに必要な作業空間での自由度は、x、y、z軸方向の並進自由度3とロール、ピッチ、ヨー方向の回転自由度3の和である6になる。
図3A〜図3Cで例示した2つのツール214a、214bと1つの内視鏡216を含むスレーブロボット200において、第1及び第2ツール214a、214bそれぞれの作業空間での自由度f、g、すなわち手術作業のために作業空間で必要とする自由度を6とし、内視鏡216の作業空間での自由度hを3(ロール、ピッチ、ヨー方向の回転自由度だけが必要)というとき、2つのツール214a、214bと1つの内視鏡216を含むスレーブロボット200の作業空間での自由度Mは、15になる(M=f+g+h=6+6+3=15)。
多関節ロボットの関節空間での自由度Nが作業空間での自由度Mより大きいとき、冗長自由度が発生したと言い、先立って例示したスレーブロボット200の関節空間での自由度(N=27)が作業空間での自由度(M=15)より大きいので、例示したスレーブロボット200は、冗長自由度を有するシステムと見なすことができる。本発明は、この冗長自由度を活用してさまざまな目的を達成することができるようにするスレーブロボット200を成す各構成要素、すなわちマウンティングアーム202、ガイドチューブ212、ガイドチューブ212から分岐して出る複数のツール214a、214b及び内視鏡216それぞれの関節空間での解(solution)を求める過程に関するものである。ここで、スレーブロボット200を成すマウンティングアーム202、ガイドチューブ212、複数のツール214a、214b及び内視鏡216それぞれの関節空間での解というのは、手術作業を行うために各制御周期ごとに算出されるマウンティングアーム202を成す複数の関節それぞれの目標回転角度、ガイドチューブ212を成す複数の関節それぞれの目標回転角度、複数のツール214a、214bを成す複数の関節それぞれの目標回転角度及び内視鏡216を成す複数の関節それぞれの目標回転角度を意味する。
図4は、手術ロボットの制御ブロック図である。図4に示されたように、手術ロボットは、マスター装置100A及びスレーブロボット200Aを含んでなる。
本実施例では、スレーブロボット200Aを成すマウンティングアーム202、ガイドチューブ212、複数のツール214a、214b及び内視鏡216それぞれが複数のリンク及び複数の関節を含んでなるという点を前提する。また、本実施例では、マウンティングアーム202とガイドチューブ212が互いに連動して動作し、ガイドチューブ212とそれぞれのツール214a、214bが互いに連動して動作し、ガイドチューブ212と1つの内視鏡216が互いに連動して動作するものと前提する。しかも、本実施例では、スレーブロボット200Aが冗長自由度(redundancy)を有する場合、すなわちスレーブロボット200Aの関節空間での自由度Nが作業空間での自由度Mより大きい場合(N>M)を前提する。
マスター装置100Aは、位置/姿勢検出部120A、速度検出部125A、格納部130A、メイン制御部140A、通信部150A及び表示部116Aを含むことができる。
位置/姿勢検出部120Aは、操作者によって操作されるマスター操作機112L、112Rの位置及び姿勢(方向)を検出する。マスター操作機112L、112Rが6自由度を有するように具現された場合、マスター操作機112L、112Rの位置情報は、x’、y’、z’で表現することができ、マスター操作機112L、112Rの姿勢情報は、α’、β’、γ’で表現することができる。位置/姿勢検出部120Aは、マスター操作機112L、112Rに連結される複数の関節それぞれに装着され、各関節の回転角度を検出する回転角センサー(図示せず)と、回転角センサーを通じて検出された各関節の回転角度をマスター操作機112L、112Rの順運動学式に代入して、マスター操作機112L、112Rの3次元空間上での位置及び姿勢情報を算出する演算モジュールよりなる。回転角センサーとしては、エンコーダー(encoder)、ポテンショメータ(potentiometer)などを利用することができる。ここでは、回転角センサーと演算モジュールよりなる位置/姿勢検出部120Aを例に取って説明したが、その他、マスター操作機112L、112Rの位置及び姿勢に対する情報を検出することができる装置なら、どんな装置でも位置/姿勢検出部120Aとして使用可能であることは勿論である。
速度検出部125Aは、マスター操作機112L、112Rに連結される複数の関節それぞれに装着され、マスター操作機112L、112Rの速度、より詳細には、マスター操作機112L、112Rに連結される各関節の回転速度を検出する。速度検出部125Aとしては、タコメーター(tachometer)などを利用することができる。本実施例では、マスター操作機112L、112Rの速度を速度検出部125Aを利用して検出する場合を例に取って説明したが、別途の速度検出部(速度センサー)を利用すことなく、位置/姿勢検出部120Aを成す回転角センサー(例えば、エンコーダー)の出力値を微分し、マスター操作機112L、112Rの速度を算出し、算出された速度情報を利用することも可能である。
格納部130Aは、スレーブロボット200Aの冗長自由度を活用して関節空間での解、すなわちマウンティングアーム202、ガイドチューブ212、複数のツール214a、214b及び内視鏡216を成す各関節の目標回転角度を算出するのに必要な情報及びアルゴリズムなどが格納されるメモリであって、格納部130A内には、マスター装置100Aのマスター操作機112L、112Rの動作とスレーブロボット200Aの末端部(複数のツール及び内視鏡)の動作との間の動作スケーリング(motion scaling)時に適用されるスケーリングファクター、ヤコビアン行列算出時に必要とするアルゴリズム及びスレーブロボット200Aの運動学的構造に関する情報、目的関数算出時に必要とする複数の個別目的それぞれを達成するための複数の個別目的関数、手術作業を成す複数の動作に対する学習結果及び手術作業がどんなものであるかによって各個別目的関数に乗算される加重値などが格納される。
また、格納部130Aは、手術以前に撮影されたX線映像、コンピューター断層撮映(CT)映像及び磁気共鳴映像(MRI)などの多様な参照映像などを格納することができる。
メイン制御部140Aは、手術ロボットの全般的な動作を制御するためのプロセッサであって、メイン制御部140Aは、さらに、変換部141A、冗長自由度逆運動学解析部142A及び映像処理部147Aを含む。
変換部141Aは、位置/姿勢検出部120Aを通じて検出されたマスター操作機112L、112Rの位置及び姿勢情報x’、y’、z’、α’、β’、γ’をスレーブロボット200Aの作業空間でのモーション命令情報、すなわち操作者が所望のスレーブロボット200Aの末端部(複数のツールの各末端部及び内視鏡の末端部)の位置及び姿勢情報x、y、z、α、β、γに変換する。変換部141Aは、マスター装置100Aのマスター操作機112L、112Rの動作とスレーブロボット200Aの末端部(複数のツール及び内視鏡)の動作との間の動作スケーリング(motion scaling)を通じてマスター操作機112L、112Rの位置及び姿勢情報x’、y’、z’、α’、β’、γ’をスレーブロボット200Aの作業空間でのモーション命令情報x、y、z、α、β、γに変換することができる。すなわち変換部141Aは、マスター操作機112L、112Rの位置及び姿勢情報x’、y’、z’、α’、β’、γ’に動作スケーリング時に適用されるスケーリングファクター(scaingfactor)を乗算し、スレーブロボット200Aの作業空間でのモーション命令情報x、y、z、α、β、γを算出することができる。
冗長自由度逆運動学解析部142Aは、スレーブロボット200Aの冗長自由度を活用してスレーブロボット200Aを成す各構成要素(マウンティングアーム、ガイドチューブ、複数のツール及び内視鏡)の動作を統合的に制御するための制御信号(各構成要素を成す複数の関節それぞれの目標回転角度)を生成する構成部であって、冗長自由度逆運動学解析部142Aは、さらに、ヤコビアン行列算出部144A、目的関数算出部145A及び冗長自由度活用部146Aを含んでなる。
冗長自由度逆運動学解析部142Aを成すそれぞれの構成部に対する詳細な説明に先立って、以下では、まず、順運動学及び逆運動学の概念と冗長自由度を有するスレーブロボット200Aでの逆運動学解析について説明する。
一般的に、ロボットシステムでの順運動学(Forward Kinematics)は、一連の関節角(関節変数、q)が与えられたとき、ロボット末端部の直交座標系上の位置及び姿勢(作業変数、p)を求める問題であって、逆運動学に比べて相対的に簡単であり、均質変換(Homogeneous Transform)を利用して順運動学の解を求めることができる。一方、逆運動学(Inverse kinematics)は、順運動学と反対に、ロボット末端部の直交座標系上の位置及び姿勢(作業変数、p)が与えられたとき、関節角(関節変数、q)を求める問題、すなわち作業空間(task space)で定義された作業を関節空間(joint space)の動きで表現するものであって、運動学的方程式が超越関数よりなる非線形方程式なので、順運動学に比べて解を求めることが相対的に難しいか、または可能でないことがある。また、解が存在しないことがあり、または多数の解が存在することがある。
先立って前提したように、冗長自由度を有するスレーブロボット200Aの場合、ヤコビアンの疑似逆行列を利用して数値解析的に逆運動学解析をすることができる。以下では、冗長自由度の逆運動学解析についてさらに詳細に説明する。
逆運動学は、マニピュレーター末端部の位置及び姿勢(ここで、姿勢は、オイラー角(Eulerangles)で表現される)が与えられる場合、これに対応する関節の回転角を決定する過程である。位置水準では、逆運動学的解を求めるための特別な方法が存在せず、与えられたロボットの関節構造によって幾何的関係式を利用するか、または直観に依存して解を求めなければならない。関節の数が多い手術ロボットやヒューマノイドロボットのような場合には、位置水準で逆運動学的解を捜すことが不可能なことがある。このような場合には、速度水準でのヤコビアン関係式を利用してリアルタイムで逆行列を算出し、各関節の速度を求めた後、これを数値積分する方式で逆運動学的解を決定するようになる。
前述したスレーブロボット200Aのように、冗長自由度を有するシステムにおいて、ロボット末端部(複数のツールの各末端部及び内視鏡の末端部)の直交座標系上の位置及び姿勢、すなわち作業変数(task variable)pと関節空間での一連の関節角、すなわち関節変数(joint variable)qとの間の関係は、下記の数式(1)のように示すことができる。
p=f(q) (1)
ここで、p∈RM、q∈RN、M<Nであり、Nは、冗長自由度を有するスレーブロボット200Aの関節空間での自由度を示し、Mは、冗長自由度を有するスレーブロボット200Aの作業空間での自由度を示す。
この際、p∈RMは、作業変数pをM×1行列で示すことができるということを意味する。例えば、作業空間で6自由度を有する第1ツール214aの末端部の位置情報x1、y1、z1及び姿勢情報α1、β1、γ1と、作業空間で6自由度を有する第2ツール214bの末端部の位置情報x2、y2、z2及び姿勢情報α2、β2、γ2と、作業空間で3自由度を有する内視鏡216の末端部の姿勢情報α3、β3、γ3を作業変数pとするとき(作業空間での自由度M=6+6+3=15)、作業変数pは、以下のような15×1行列で示すことができる。
また、q∈R
Nは、関節変数qをN×1行列で示すことができるということを意味する。例えば、関節空間で6自由度を有するマウンティングアーム202を成す6個の関節の回転角度情報q
1、q
2、q
3、q
4、q
5、q
6と、関節空間で6自由度を有するガイドチューブ212を成す6個の関節の回転角度情報q
7、q
8、q
9、q
10、q
11、q
12と、関節空間で6自由度を有する第1ツール214aを成す6個の関節の回転角度情報q
13、q
14、q
15、q
16、q
17、q
18と、関節空間で6自由度を有する第2ツール214bを成す6個の関節の回転角度情報q
19、q
20、q
21、q
22、q
23、q
24と、関節空間で3自由度を有する内視鏡216を成す3個の関節の回転角度情報q
25、q
26、q
27を関節変数qとするとき(関節空間での自由度N=6+6+6+6+3=27)、関節変数qは、下記のような27×1行列で示すことができる。
前述した数式(1)を時間について微分すれば、下記の数式(2)のような微分運動学方程式(differential kinematic sequation)を算出することができる。
ここで、J(q)は、f(q)のヤコビアン行列(Jacobian Matrix)である。
逆運動学解析を通じて求めようとするものは、関節変数qなので、前述した数式(2)を関節の速度ベクトル
に関する式で整理すれば、下記の数式(3)のように示すことができる。
関節空間での自由度Nが作業空間での自由度Mと同一である場合(N=M)、すなわちシステムが冗長自由度を有しない場合には、ヤコビアン行列J(q)の逆行列J
−1(q)を算出し、これを数式(3)に代入し、各関節の速度(関節の速度ベクトル
を算出した後、これを積分し、各関節の回転角(関節変数qの元素、すなわちq
1、q
2、…)を算出することができる。
一方、関節空間での自由度Nが作業空間での自由度Mより大きい場合(N>M)、すなわち前述したスレーブロボット200Aのようにシステムが冗長自由度を有する場合には、ヤコビアン行列J(q)の列の数が行の数より多くて、ヤコビアン行列の逆行列J−1(q)を算出することができないので、無限な逆運動学的解が存在するようになる。
したがって、システムが冗長自由度を有する場合には、ヤコビアン行列J(q)の疑似逆行列(Pseudo−inverse Matrix)J#(q)を利用して逆運動学的解を算出する。ヤコビアン行列J(q)の疑似逆行列J#(q)を利用して関節空間での各関節の速度
を算出する式は、下記の数式(4)のように示すことができ、ヤコビアン行列J(q)の疑似逆行列J
#(q)は、下記の数式(5)のように示すことができる。
J
#=J
T(JJJ
T)
−1 (5)
ここで、I
nは、n×n単位行列(unit matrix、identity matrix)であり、rは、任意のベクトルであり、(I
n−J
#J)は、ベクトルrの零空間(null space)である。
冗長自由度を活用するために任意のベクトルr(q)を定義する多様な方法があり、例えば、下記の数式(6)のように定義することができる。
ここで、kは、定数であり、wは、目的関数(performance index)または評価関数(evaluation function)である。
目的関数wは、システムの目的(本実施例では、ツールの作業領域増加、ツールと周辺障害物との間の衝突可能性の最小化など)をすべての条件を考慮して定量的に設定したものであって、システムの最適化問題や目的達成状況の定量的な評価において重要な基準になる。すなわち目的関数wは、制御系と工業システムの設計・操作・運転で、そのシステムの適否を定量的に評価するために設定される関数(システムを評価する関数)であり、システムの最適設計や最適制御を定量的に行うためには、システムモデルを満足する解(本実施例では関節空間での解、マウンティングアーム202、ガイドチューブ212、複数のツール214a、214b及び内視鏡216を成す複数の関節それぞれの目標回転角度ベクトルq)のうち設定された目的関数値を最大または最小にする解(複数の関節それぞれの目標回転角度)を捜し出さなければならない。
本実施例では、目的関数wを最小化する関節空間での解を捜し出せば、スレーブロボット200Aの冗長自由度を活用したシステム(手術ロボット)の最適制御を行うことができるようになる。このような目的関数w(以下ではwをシステム全体の目的関数と定義する)は、複数の目的関数w1〜wn(以下ではw1〜wnを個別目的関数と定義する)の加重和(weighted sum)で示すことができる。個別目的関数の例としては、それぞれのツール214a、214bと器具的関節限界(joint limit)との間の距離の逆数(inverse number)、それぞれのツール214a、214bと特異姿勢(singular pose)との間の距離の逆数、各関節のトルク二乗の和(joint torque square sum)、それぞれのツール214a、214bと周辺障害物との間の距離の逆数などを挙げることができる。
以下では、図5〜図9を参照して本発明によって達成しようとする多様な目的(または本発明によって達成される多様な効果)についてさらに詳細に説明する。
図5は、本発明によって達成されるツール(内視鏡を含む)の作業領域拡張を説明するための概念図である。図5の左側に示す図は、従来ツール制御方式に従って手術作業を行う様子を示しており、図5の右側に示す図は、本発明のツール制御方式に従って手術作業を行う様子を示している。
従来、柔軟性がない(rigid、inflexible)固定式ガイドチューブまたは棒(rod)型ガイドチューブを使用して手術作業を行うか、または図5の左側に示すように、柔軟性があり(flexible)、多自由度を有するガイドチューブ22を使用して手術作業を行う場合にも、ガイドチューブ22とガイドチューブ22から展開され、その末端部にエンドエフェクタ28a28bが装着されるそれぞれのツール(第1ツール24a、第2ツール24b)が独立的に動作し、ガイドチューブ22とガイドチューブ22から展開される内視鏡26が独立的に動作するので、手術作業の実行途中にそれぞれのツール24a、24b及び/または内視鏡216が関節限界(joint limit)に到逹するか、または特異姿勢(singular pose)に該当し、複数のツール24a、24bを所望の位置や姿勢に動くことができない状態(ロック)が発生する問題点がある。すなわち、それぞれのツール24a、24bが及び/または内視鏡216が関節限界に到逹するか、特異姿勢に該当すれば、ツールの作業領域の限界によって具現が不可能な動作が発生するようになる。図5の左側で、矢印で表示した地点が第1ツール24a及び第2ツール24bの目標姿勢(desired pose)であり、点線で表示したものが第2ツール24bをその目標姿勢に移動させた場合を示すものとするとき、第2ツール24bが関節限界に到逹するか、または特異姿勢に該当する場合には、第2ツール24bを目標姿勢に動くことができない(第2ツールを点線で表示した領域に動くことができない)。
一方、本発明では、図5の右側に示すように、柔軟性があり(flexible)、多自由度を有するガイドチューブ212を使用して手術作業を行い、ガイドチューブ212と、ガイドチューブ212から展開され、その末端部にエンドエフェクタ218a、218bが装着されるそれぞれのツール(第1ツール214a、第2ツール、214b)が互いに連動して動作し、ガイドチューブ212と、ガイドチューブ212から展開される内視鏡216が互いに連動して動作し、スレーブロボット200Aの冗長自由度を活用してスレーブロボット200Aを成す各構成要素の動作を統合的に制御するので、従来、ガイドチューブとツールの制御方式(独立的な動作制御)を適用するとき、ツール(内視鏡を含む)の作業領域の限界によって具現が不可能な動作も行うことができるようになる。図5の右側で矢印で表示した地点を第1ツール214a及び第2ツール214bの目標姿勢とするとき、本発明では、ガイドチューブ212と第2ツール214bが互いに連動して動作するので、第2ツール214bを目標姿勢に移動させるために、第2ツール214bが目標姿勢に該当する方向(右側方向)に動くように制御すると同時に、ガイドチューブ212も第2ツール214bが目標姿勢に容易に到逹することができるようにする方向に動くように制御する(ガイドチューブが第2ツールの目標姿勢に該当する方向である右側方向に曲がる)。
図5を参照して説明したツールの作業領域増加という個別目的を達成するための個別目的関数をw1とするとき、個別目的関数w1は、それぞれのツール214a、214bと器具的関節限界との間の距離または内視鏡216と器具的関節限界との間の距離d1の逆数1/d1で定義するか(w1=1/d1)、またはそれぞれのツール214a、214bと特異姿勢との間の距離または内視鏡216と特異姿勢との間の距離d2の逆数1/d2で定義することができる(w1=1/ d2)。また、個別目的関数w1をそれぞれのツール214a、214bと器具的関節限界との間の距離の逆数1/d1とそれぞれのツール214a、214bと特異姿勢との間の距離の逆数1/d2の単純和や加重和で定義することも可能である。この際、それぞれのツール214a、214bと器具的関節限界との間の距離d1またはそれぞれのツール214a、214bと特異姿勢との間の距離d2を最大化するとき、ツールの作業領域を最大に拡張させることができる。これを個別目的関数w1の観点から見れば、個別目的関数w1を最小化するとき、ツールの作業領域を最大に拡張させることができる。
図6は、本発明によって達成されるツール(内視鏡を含む)の関節別必要剛性の最小化を説明するための概念図である。図6の上側に示す絵は、従来のツール制御方式に従って手術作業を行う様子を示しており、図6の下側に示す絵は、本発明のツール制御方式に従って手術作業を行う様子を示している。
従来、柔軟性がない(rigid、inflexible)固定式ガイドチューブまたは棒(rod)型ガイドチューブを使用して手術作業を行うか、または図6の上側に示すように、柔軟性があり(flexible)、多自由度を有するガイドチューブ22を使用して手術作業を行う場合にも、ガイドチューブ22と、ガイドチューブ22から展開され、その末端部にエンドエフェクタ28a、28bが装着されるそれぞれのツール(第1ツール24a、第2ツール24b)が独立的に動作し、ガイドチューブ22と、ガイドチューブ22から展開される内視鏡26が独立的に動作するので、手術作業の実行途中にそれぞれのツール24a、24b及び内視鏡26を成す複数の関節のうち一部の関節に過度なペイロード(payload)が印加され、複数のツール24a、24b及び内視鏡26を成す各関節が必要とする剛性関(節別必要剛性)が増加する問題点がある。図6の上側に示す円筒形状の物体を複数のツール24a、24b及び内視鏡26に印加されるペイロードとするとき、図6の上側では、このペイロードが第2ツール24bの末端部に印加されているので、複数のツール24a、24b及び内視鏡26を成す各関節別必要剛性が増加するようになる。
一方、本発明では、図6の下側に示すように、柔軟性があり(flexible)、多自由度を有するガイドチューブ212を使用して手術作業を行い、ガイドチューブ212と、ガイドチューブ212から展開され、その末端部にエンドエフェクタ218a、218bが装着されるそれぞれのツール(第1ツール214a、第2ツール、214b)が互いに連動して動作し、ガイドチューブ212と、ガイドチューブ212から展開される内視鏡216が互いに連動して動作し、スレーブロボット200Aの冗長自由度を活用してスレーブロボット200Aを成す各構成要素の動作を統合的に制御するので、ペイロードの分配を通じて複数のツール214a、214b及び内視鏡216を成す各関節別必要剛性を減少させることができる。
図6を参照して説明したツールの関節別必要剛性の最小化という個別目的を達成するための個別目的関数をw2とするとき、個別目的関数w2は、複数のツール214a、214b及び内視鏡216を成す各関節のトルク二乗τ1 2、τ2 2、τ3 2、…の和(joint tor(q)ue square sum)で定義することができる(w2=τ1 2+τ2 2+τ3 2+…)。この際、複数のツール214a、214b及び内視鏡216を成す各関節のトルク二乗τ12、τ2 2、τ3 2、…の和、すなわち個別目的関数w2を最小化するとき、複数のツール214a、214b及び内視鏡216を成す各関節別必要剛性を最小化させることができる。
図7は、本発明によって達成されるツール(内視鏡を含む)と周辺障害物との間の衝突可能性の最小化を説明するための概念図である。図7の左側に示す絵は、従来のツール制御方式に従って手術作業を行う様子を示しており、図7の右側に示す絵は、本発明のツール制御方式に従って手術作業を行う様子を示している。
従来、柔軟性がない(rigid、inflexible)固定式ガイドチューブまたは棒(rod)型ガイドチューブを使用して手術作業を行うか、または図7の左側に示すように、柔軟性があり(flexible)、多自由度を有するガイドチューブ22を使用して手術作業を行う場合にも、ガイドチューブ22と、ガイドチューブ22から展開され、その末端部にエンドエフェクタ28a、28bが装着されるそれぞれのツール(第1ツール24a、第2ツール24b)が独立的に動作し、ガイドチューブ22と、ガイドチューブ22から展開される内視鏡26が独立的に動作するので、手術作業の実行途中にそれぞれのツール24a、24b及び/または内視鏡26が目標姿勢に動くために、周辺障害物(人体組職や他のツール)との衝突が不可避になる問題点がある。図7の左側で、第2ツール24bに装着されたエンドエフェクタ28bが向かう方向を目標姿勢とするとき、第2ツール24bが目標姿勢に移動するためには、周辺障害物との衝突を伴うようになる。
一方、本発明では、図7の右側に示すように、柔軟性があり(flexible)、多自由度を有するガイドチューブ212を使用して手術作業を行い、ガイドチューブ212と、ガイドチューブ212から展開され、その末端部にエンドエフェクタ218a、218bが装着されるそれぞれのツール(第1ツール214a、第2ツール214b)が互いに連動して動作し、ガイドチューブ212と、ガイドチューブ212から展開される内視鏡216が互いに連動して動作し、スレーブロボット200Aの冗長自由度を活用してスレーブロボット200Aを成す各構成要素の動作を統合的に制御するので、それぞれのツール214a、214bと周辺障害物との間の衝突及び/または内視鏡216と周辺障害物との間の衝突を回避するか、または周辺障害物との衝突可能性を減少させることができるようになる。図7の右側で第2ツール214bに装着されたエンドエフェクタ218bが向かう方向を目標姿勢と言うとき、本発明では、ガイドチューブ212と第2ツール214bが互いに連動して動作するので、第2ツール214bと周辺障害物との間の衝突を回避するために、第2ツール214bが周辺障害物から遠くなる方向(左側方向)に動くように制御すると同時に、ガイドチューブ212は、第2ツール214bが周辺障害物から容易に遠くなることができるようにする方向に動くように制御する(ガイドチューブが第2ツールと周辺障害物との間の衝突を防止することができるようにS字形状に曲がる)。
図7を参照して説明したツールと周辺障害物との間の衝突可能性の最小化という個別目的を達成するための個別目的関数をw3とするとき、個別目的関数w3は、それぞれのツール214a、214bと周辺障害物との間の距離または内視鏡216と周辺障害物との間の距離d3の逆数1/d3で定義することができる(w3=1/d3)。この際、それぞれのツール214a、214bと周辺障害物との間の距離または内視鏡216と周辺障害物との間の距離d3を最大化するとき、ツールと周辺障害物との間の衝突可能性を最小化させることができる。これを個別目的関数w3の観点から見れば、個別目的関数w3を最小化するとき、ツールと周辺障害物との間の衝突可能性を最小化させることができる。
図8は、本発明によって達成されるツールの必要自由度の最小化を説明するための概念図である。図8の上側に示す絵は、従来のツール制御方式に従って手術作業を行う様子を示しており、図8の下側に示す絵は、本発明のツール制御方式に従って手術作業を行う様子を示している。
従来、柔軟性がない(rigid、inflexible)固定式ガイドチューブまたは棒(rod)型ガイドチューブを使用して手術作業を行うか、または図8の上側に示すように、柔軟性があり(flexible)、多自由度を有するガイドチューブ22を使用して手術作業を行う場合にも、ガイドチューブ22と、ガイドチューブ22から展開され、その末端部にエンドエフェクタ28a、28bが装着されるそれぞれのツール(第1ツール24a、第2ツール24b)が独立的に動作し、ガイドチューブ22と、ガイドチューブ22から展開される内視鏡26が独立的に動作するので、手術作業を行うためには、それぞれのツール24a、24b及び内視鏡26がすべて6自由度を有するように具現される必要がある。
一方、本発明では、図8の下側に示されたように、柔軟性があり(flexible)、多自由度を有するガイドチューブ212を使用して手術作業を行い、ガイドチューブ212と、ガイドチューブ212から展開され、その末端部にエンドエフェクタが装着されるそれぞれのツール(第1ツール214a、第2ツール214b)が互いに連動して動作し、ガイドチューブ212と、ガイドチューブ212から展開される内視鏡216が互いに連動して動作し、スレーブロボット200の近位部、すなわちガイドチューブ212及びガイドチューブ212が連結設置されるマウンティングアーム202の自由度によって発生する冗長自由度を活用してスレーブロボット200を成す各構成要素の動作を統合的に制御するので、6自由度未満の自由度(例えば、4自由度)を有するように具現されたそれぞれのツール214a、214b及び内視鏡216を通じて6自由度の動作を行うことができるようになる。
図9は、本発明によって達成される複合的な作業実行を説明するための概念図である。図9の左側に示す絵は、従来ツール制御方式に従って手術作業を行う様子を示しており、図9の右側に示す絵は、本発明のツール制御方式に従って手術作業を行う様子を示している。
従来、柔軟性がない(rigid、inflexible)固定式ガイドチューブまたは棒(rod)型ガイドチューブを使用して手術作業を行うか、または図9の左側に示すように、柔軟性があり(flexible)、多自由度を有するガイドチューブ22を使用して手術作業を行う場合にも、ガイドチューブ22と、ガイドチューブ22から展開され、その末端部にエンドエフェクタ28a、28bが装着されるそれぞれのツール(第1ツール24a、第2ツール24b)が独立的に動作し、ガイドチューブ22と、ガイドチューブ22から展開される内視鏡26が独立的に動作するので、それぞれのツール24a、24bを通じて行われる手術作業は単純な作業(例:パス(passing)及びランニング(running))に限定される問題点がある。
一方、本発明では、図9の右側に示すように、柔軟性があり(flexible)、多自由度を有するガイドチューブ212を使用して手術作業を行い、ガイドチューブ212と、ガイドチューブ212から展開され、その末端部にエンドエフェクタ218a、218bが装着されるそれぞれのツール(第1ツール214a、第2ツール214b)が互いに連動して動作し、ガイドチューブ212と、ガイドチューブ212から展開される内視鏡216が互いに連動して動作し、スレーブロボット200Aの冗長自由度を活用してスレーブロボット200Aを成す各構成要素の動作を統合的に制御するので、ツールの作業領域の拡張(図5参照)、ツールの関節別必要剛性の最小化(図6参照)及びツールと周辺障害物との間の衝突可能性の最小化(図7参照)を達成することができ、このような多様な個別目的をすべて組み合わせることによって、従来のツール制御方式では不可能な複合的な作業(例えば、auto−suturing)を行うことができるようになる。
図9を参照して説明した複合的な作業実行というシステム全体の目的を達成するためのシステム全体の目的関数をwとするとき、システム全体の目的関数wは、先立って図5〜図7と関連した説明で前述した複数の個別目的関数w1、w2、w3の加重和(weighted sum)として定義することができる(w=aw1+bw2+cw3)。すなわち、システム全体の目的関数wは、それぞれのツール214a、214bと器具的関節限界との間の距離または内視鏡216と器具的関節限界との間の距離d1の逆数1/d1として定義される個別目的関数w1と、複数のツール214a、214b及び内視鏡216を成す各関節のトルク二乗τ1 2、τ2 2、τ3 2、…の和τ1 2+τ2 2+τ3 2+…として定義される個別目的関数w2と、それぞれのツール214a、214bと周辺障害物との間の距離または内視鏡216と周辺障害物との間の距離d3の逆数1/d3として定義される個別目的関数w3の加重和で示すことができる。この際、システム全体の目的関数w(w=aw1+bw2+cw3)は、時間の流れによって変化するようになる。すなわち、スレーブロボット200が行う手術作業がどんなものであるかによって各個別目的関数に乗算される加重値の値が変わる。例えば、スレーブロボット200が行う手術作業が配管挿入(cannulation)の場合、ツールの作業領域の拡張やツールの関節別必要剛性の最小化という個別目的よりは、ツールと周辺障害物との間の衝突可能性の最小化という個別目的の重要性がさらに大きいので、ツールと周辺障害物との間の衝突可能性の最小化という個別目的を達成するための個別目的関数w3に乗算される加重値cが他の個別目的関数w1及びw2にそれぞれ乗算される加重値a及びbよりさらに大きい値として決定される。
さらに、図4に対する説明に戻って、冗長自由度逆運動学解析部142Aを成すそれぞれの構成部について詳細に説明する。
ヤコビアン行列算出部144Aは、作業変数pと関節変数qとの間の関係を示す数式(1)、すなわちp=f(q)を時間に関して微分して獲得する数式(2)、すなわち微分運動学方程式
に乗算されるヤコビアン行列J(q)を算出する。この際、ヤコビアン行列算出部144Aは、ヤコビアン行列を算出するためのアルゴリズムにスレーブロボット200Aの運動学的構造に関する情報(例えば、関節と関節との間を連結するリンクの長さ情報など)を入力してf(q)のヤコビアン行列J(q)を算出する。
目的関数算出部145Aは、冗長自由度を有するスレーブロボット200Aでヤコビアン行列J(q)の疑似逆行列J#(q)を利用して関節空間での各関節の速度
に記載した任意のベクトルr(q)を表現する数式(6)、すなわち
に記載した目的関数wを算出する。このような目的関数(w、システム全体の目的関数)は、複数の個別目的関数w
1〜w
nの加重和(weighted sum)で示すことができる(w=aw
1+bw
2+cw
3+…)。個別目的関数の例としては、それぞれのツール214a、214bと器具的関節限界との間の距離の逆数、複数のツール214a、214b及び内視鏡216を成す各関節のトルク二乗の和、それぞれのツール214a、214bと周辺障害物との間の距離の逆数などを挙げることができる。この際、システム全体の目的関数wは、時間の流れによって変化するようになる。すなわち、スレーブロボット200が行う手術作業がどんなものであるかによって各個別目的関数に乗算される加重値a、b、c、…が変わる。目的関数算出部145Aは、スレーブロボット200が行う手術作業がどんなものであるかによって各個別目的関数に乗算される加重値a、b、c、…を決定する。目的関数算出部145Aは、位置検出部120A及び速度検出部125Aを通じて検出されたマスター操作機112L、112Rの動作に関する情報(マスター操作機の位置情報及び速度情報)及び格納部130Aに既格納された手術作業を成す複数の動作に対する学習結果を利用して操作者が行おうとする手術作業を予測する。ここで、手術作業は、縫合(suturing)、パス(passing)、ランニング(running)及び配管挿入(cannulation)のうちいずれか1つであり、手術作業を成す複数の動作は、オリエント(orient)、プッシ(push)及びプール(pull)のうち少なくとも1つを含む。これを通じて、目的関数算出部145Aは、スレーブロボット200が行う手術作業がどんなものであるかを判断し、当該判断結果に基づいて各個別目的関数に乗算される加重値a、b、c、…を決定した後、決定された各加重値を各個別目的関数に乗算し、システム全体の目的関数wを算出する。
冗長自由度活用部146Aは、システム全体の目的関数wを最小化する関節空間での解、すなわちマウンティングアーム202、ガイドチューブ212、複数のツール214a、214b及び内視鏡216を成す各関節の目標回転角度qを算出する。冗長自由度活用部146Aは、目的関数算出部145Aで算出された目的関数wを前述した数式(6)に代入し、目的関数wが代入された数式(6)を前述した数式(4)に代入した後、目的関数wを最小化する関節空間での各関節の速度
を算出する。冗長自由度活用部146Aは、算出された関節空間での各関節の速度
を積分し、最終的な関節空間での解であるマウンティングアーム202、ガイドチューブ212、複数のツール214a、214b及び内視鏡216を成す各関節の目標回転角度qを算出するようになる。
映像処理部147Aは、スレーブロボット200Aの映像情報獲得部220A、例えば内視鏡216及び/または超音波プローブ(図示せず)から入力された映像を画像イメージに出力するために入力された映像に対する処理を行う。ここで、映像処理の例としては、撮影された映像の拡大、縮小、回転、移動、編集及びフィルタリングなどを挙げることができる。
通信部150Aは、有線通信網または無線通信網を通じてメイン制御部140A及びスレーブロボット200Aの通信部250Aに連結され、データを送受信する通信回路であって、冗長自由度活用部146Aを通じて生成された制御信号(関節の目標回転角度、q)をスレーブロボット200Aに送信するか、または映像情報獲得部220Aを通じて獲得された映像情報(内視鏡映像情報及び/または超音波映像情報)などをスレーブロボット200Aから受信することができる。
表示部116Aは、スレーブロボット200の内視鏡216から伝達された内視鏡映像に相当する画像イメージ、スレーブロボット200の超音波プローブ(図示せず)から伝達された超音波映像に相当する画像イメージまたは格納部130Aに格納されている手術以前に撮影されたX線映像、コンピューター断層撮映(CT)映像及び磁気共鳴映像(MRI)などの多様な参照映像などを視覚的情報として出力する。
スレーブロボット200Aは、マスター装置100Aから受信した制御信号によってマウンティングアーム202、ガイドチューブ212及び複数のツール214a、214b、216を動作させて、直接患者に対して手術に必要な操作を行う。このようなスレーブロボット200Aは、図4に示されたように、映像情報獲得部220A、格納部230A、スレーブ制御部240A、通信部250A、サーボ制御部260A及び駆動部270Aを含むことができる。
映像情報獲得部220Aは、患者の体内に挿入されて移動しながら内臓臓器や体腔内部を撮影し、手術部位の映像情報を獲得する。映像情報獲得部220Aは、内視鏡216及び超音波プローブ(図示せず)などで具現されることができる。映像情報獲得部220Aを通じて獲得された映像情報は、スレーブ制御部240A内の映像処理部247Aに伝達され、映像処理過程を経るか、または映像処理過程なしに通信部250Aを通じてマスター装置100Aに伝送されることができる。
格納部230Aは、スレーブロボット200Aの動作を制御するのに必要な情報及びアルゴリズム、スレーブロボット200A側で獲得した情報などを格納する。例えば、格納部230A内には、映像情報獲得部220Aを通じて獲得された手術部位に対する映像情報が格納される。
スレーブ制御部240Aは、スレーブロボット200を成す各種構成要素を連結し、スレーブロボット200の動作を制御するためのプロセッサであって、映像情報獲得部220Aで獲得された手術部位の映像情報を通信部250Aを通じてマスター装置100Aに伝送するか、またはメイン制御部140A内の冗長自由度活用部146Aで生成された制御信号(各関節の目標回転角度)を通信部250Aを通じて受信し、サーボ制御部260Aに伝達する役目を行う。また、スレーブ制御部240Aは、映像情報獲得部220Aを通じて獲得された手術部位の映像に対する処理を行う映像処理部247Aを含むことができる。ここで、映像処理の例としては、撮影された映像の拡大、縮小、回転、移動、編集及びフィルタリングなどを挙げることができる。スレーブ制御部240A内で行われる映像処理過程は、場合によって省略されることもできる。
通信部250Aは、有線通信網または無線通信網を通じてスレーブ制御部240A及びマスター装置100Aの通信部150Aに連結され、データを送受信する通信回路であって、マスター装置100Aから冗長自由度を活用して生成された制御信号(各関節の目標回転角度)を受信するか、または映像情報獲得部220Aを通じて獲得された映像情報(内視鏡映像情報及び/または超音波映像情報)などをマスター装置100Aに送信することができる。
サーボ制御部260Aは、メイン制御部140A内の冗長自由度活用部146Aから伝達された各関節の目標回転角度qを追従するための関節トルクτを算出し、算出された関節トルクτに対応するトルク制御信号を生成し、マウンティングアーム202、ガイドチューブ212、それぞれのツール214a、214b及び内視鏡216を成す各関節を回転駆動する駆動部270Aに出力する。
駆動部270Aは、マウンティングアーム202、ガイドチューブ212、それぞれのツール214a、214b及び内視鏡216を成す複数の関節それぞれに電気または油圧による動力を伝達するためのモーターなどのアクチュエータであって、サーボ制御部260Aから伝達されたトルク制御信号によってマウンティングアーム202、ガイドチューブ212、それぞれのツール214a、214b及び内視鏡216を成す各関節を回転駆動する。先立って図3A〜図3Cで例示したマウンティングアーム202、マウンティングアーム202に連結設置されるガイドチューブ212、手術作業時にガイドチューブ212から分岐して出る2つのツール214a、214b及び1つの内視鏡216を含むスレーブロボット200において、マウンティングアーム202、ガイドチューブ212、各ツール214a、214bの関節空間での自由度は、6であり、内視鏡216の関節空間での自由度は3であるから、スレーブロボット200側には、全体27個の回転関節が設けられる。したがって、この回転関節を駆動するために、全体27個のアクチュエータを必要とするようになる。
図10は、手術ロボットの制御方法を示す流れ図である。
本実施例の動作説明のための初期条件として、スレーブロボット200Aは、冗長自由度を有し、マウンティングアーム202、ガイドチューブ212、2つのツール214a、214b及び1つの内視鏡216それぞれは、複数のリンク及び複数の関節を含んでなるという点を前提する。また、マウンティングアーム202とガイドチューブ212が互いに連動して動作し、ガイドチューブ212とそれぞれのツール214a、214bが互いに連動して動作し、ガイドチューブ212と1つの内視鏡216が互いに連動して動作するものと前提する。また、格納部130Aには、マスター装置100Aのマスター操作機112L、112Rの動作とスレーブロボット200Aの末端部(複数のツール及び内視鏡)の動作との間の動作スケーリング(motion scaling)時に適用されるスケーリングファクター、ヤコビアン行列算出時に必要とするアルゴリズム及びスレーブロボット200Aの運動学的構造に関する情報、目的関数算出時に必要とする複数の個別目的それぞれを達成するための複数の個別目的関数、手術作業を成す複数の動作に対する学習結果及び手術作業がどんなものであるかによって各個別目的関数に乗算される加重値などがあらかじめ格納されていることを前提する。
まず、手術が始まって、マスター操作機112L、112Rの操作者(手術ロボットを使用する医者)が手術作業のためにマスター操作機112L、112Rを通じて一定の動作を取れば、マスター装置100Aの位置/姿勢検出部120Aは、マスター操作機112L、112Rの位置情報x’、y’、z’及び姿勢情報α’、β’、γ’を検出し、検出されたマスター操作機112L、112Rの位置情報x’、y’、z’及び姿勢情報α’、β’、γ’をメイン制御部140Aに伝送する(310)。
次に、メイン制御部140A内の変換部141Aは、位置/姿勢検出部120Aから獲得したマスター操作機112L、112Rの位置及び姿勢情報x’、y’、z’、α’、β’、γ’をスレーブロボット200Aの作業空間でのモーション命令情報すなわち、操作者が所望のスレーブロボット200Aの末端部(複数のツールの各末端部及び内視鏡の末端部)の位置及び姿勢情報x、y、z、α、β、γに変換する(320)。この際、変換部141Aは、マスター操作機112L、112Rの位置及び姿勢情報x’、y’、z’、α’、β’、γ’にマスター装置100Aのマスター操作機112L、112Rの動作とスレーブロボット200Aの末端部(複数のツール及び内視鏡)の動作との間の動作スケーリング時にスケーリングファクター(scaing factor)を乗算し、スレーブロボット200Aの作業空間でのモーション命令情報x、y、z、α、β、γを算出することができる。
その後、メイン制御部140Aの冗長自由度逆運動学解析部142A内のヤコビアン行列算出部144Aは、格納部130Aに既格納されているヤコビアン行列を算出するためのアルゴリズム及びスレーブロボット200Aの運動学的構造に関する情報(例えば、関節と関節の間を連結するリンクの長さ情報など)を利用して前述した数式(2)、すなわち微分運動学方程式
に乗算されるヤコビアン行列J(q)を算出する(330)。
次に、メイン制御部140Aの冗長自由度逆運動学解析部142A内の目的関数算出部145Aは、スレーブロボット200Aが行う手術作業がどんなものであるかを判断し、当該判断結果に基づいて各個別目的関数に乗算される加重値a、b、c、…を決定した後、決定された各加重値を各個別目的関数に乗算し、システム全体の目的関数wを算出する(340)。この際、目的関数算出部145Aは、位置/姿勢検出部120A及び速度検出部125Aを通じて検出されたマスター操作機112L、112Rの動作に関する情報(マスター操作機の位置情報及び速度情報)及び格納部130Aに既格納されている手術作業を成す複数の動作に対する学習結果を利用して操作者が行おうとする手術作業、すなわちスレーブロボット200Aが行う手術作業がどんなものであるかを予測し、予測された手術作業(例えば、配管挿入)によって各個別目的関数に乗算される加重値a、b、c、…を格納部130Aから検索した後、検索された各加重値a、b、c、…を各個別目的関数に乗算し、システム全体の目的関数wを算出することができる。
その後、メイン制御部140Aの冗長自由度逆運動学解析部142A内の冗長自由度活用部146Aは、スレーブロボット200Aの冗長自由度を活用してマウンティングアーム202、ガイドチューブ212、複数のツール214A、214b及び内視鏡216を成す各関節の目標回転角度qを算出する(350)。この際、冗長自由度活用部146Aは、目的関数算出部145Aを通じて算出されたシステム全体の目的関数wを最小化する関節空間での各関節の速度
を積分し、最終的な関節空間での解であるマウンティングアーム202、ガイドチューブ212、複数のツール214a、214b及び内視鏡216を成す各関節の目標回転角度qを算出するようになる。
次に、メイン制御部140Aは、冗長自由度活用部146Aで算出した各関節の目標回転角度qを通信部150Aを通じてスレーブロボット200A側のスレーブ制御部240Aに伝送し、スレーブ制御部240Aは、メイン制御部140Aから伝送された各関節の目標回転角度qをサーボ制御部260Aに伝送する(360)。
その後、スレーブロボット200A側サーボ制御部260Aは、メイン制御部140A内の冗長自由度活用部146Aから伝達された各関節の目標回転角度qを追従するための関節トルクτを算出し、算出された関節トルクτに対応するトルク制御信号を生成する(370)。
次に、サーボ制御部260Aは、生成されたトルク制御信号をマウンティングアーム202、ガイドチューブ212、それぞれのツール214a、214b及び内視鏡216を成す各関節を回転駆動する駆動部270Aに伝送する(380)。
このような過程を通じてスレーブロボット200Aの冗長自由度を活用して多様な個別目的(ツールの作業領域の拡張、ツールの関節別必要剛性の最小化、ツールと周辺障害物との間の衝突可能性の最小化、ツールの必要自由度の最小化及び複合的な作業実行)を達成しながらスレーブロボット200Aを成す各構成要素(マウンティングアーム、ガイドチューブ、複数のツール及び内視鏡)の動作を統合的に制御することができるようになる。
図11は、手術ロボットの制御ブロック図である。図11に示す手術ロボットは、図4に示す手術ロボットと比較して見れば、マスター装置100Bのメイン制御部140Bの冗長自由度逆運動学解析部142B内に優先順位決定部143Bが追加された点で図4に示す手術ロボットと異なる。
ここでは、同一の名称と同一の参照符号を使用している構成要素については、説明を省略し(但し、参照符号において符号の後方に併記されたA、Bは、各実施例を区別するためのものである)、図11に追加的に示す優先順位決定部143Bの構成及びこの優先順位決定部143Bによってその機能が変化される格納部130B及びメイン制御部140B内の冗長自由度逆運動学解析部142Bの構成のみについて説明する。
図11に示す格納部130Bは、スレーブロボット200Bの冗長自由度を活用して関節空間での解、すなわちマウンティングアーム202、ガイドチューブ212、複数のツール214a、214b及び内視鏡216を成す各関節の目標回転角度を算出するのに必要な情報及びアルゴリズムなどが格納されるメモリであって、格納部130B内には、マスター装置100Bのマスター操作機112L、112Rの動作とスレーブロボット200Bの末端部(複数のツール及び内視鏡)の動作との間の動作スケーリング(motion scaling)時に適用されるスケーリングファクター、作業変数p、すなわち複数のツール214a、214bの位置/姿勢情報及び内視鏡216の姿勢情報に設定された優先順位(例えば、複数のツール214a、214bの位置及び姿勢情報と内視鏡216の姿勢情報のうち複数のツール214a、214bの位置及び姿勢情報にさらに高い優先順位が設定されるか、または第1ツール214aの末端部の位置情報x1、y1、z1と姿勢情報α1、β1、γ1のうち位置情報x1、y1、z1にさらに高い優先順位が設定される)、ヤコビアン行列算出時に必要とするアルゴリズム及びスレーブロボット200Bの運動学的構造に関する情報、目的関数算出時に必要とする複数の個別目的それぞれを達成するための複数の個別目的関数、手術作業を成す複数の動作に対する学習結果及び手術作業がどんなものであるかによって各個別目的関数に乗算される加重値などが格納される。
また、格納部130Bは、手術以前に撮影されたX線映像、コンピュータ断層撮映(CT)映像及び磁気共鳴映像(MRI)などの多様な参照映像などを格納することができる。
図11に示されたように、メイン制御部140B内の冗長自由度逆運動学解析部142Bは、スレーブロボット200Bの冗長自由度を活用してスレーブロボット200Bを成す各構成要素(マウンティングアーム、ガイドチューブ、複数のツール及び内視鏡)の動作を統合的に制御するための制御信号(各構成要素を成す複数の関節それぞれの目標回転角度)を生成する構成部で、冗長自由度逆運動学解析部142Bは、さらに、優先順位決定部143B、ヤコビアン行列算出部144B、目的関数算出部145B及び冗長自由度活用部146Bを含んでなる。
冗長自由度逆運動学解析部142Bを成すそれぞれの構成部に対する詳細な説明に先立って、以下では、まず、冗長自由度を有するスレーブロボット200Bで作業変数pに優先順位が設定されたときの逆運動学解析について説明する。
システムが冗長自由度を有する場合には、ヤコビアン行列J(q)の疑似逆行列(Pseudo−inverse Matrix)J#(q)を利用して逆運動学的解を算出するという点は、先立って言及したことがある。
この際、作業変数pに優先順位を設定する場合、例えば、作業変数pを優先順位によってp1、p2に分けて、p1にさらに高い優先順位を設定するとき、ヤコビアン行列の疑似逆行列を利用して関節空間での各関節の速度
を算出する式は、下記の数式(7)のように示すことができ、数式(7)に記載された
は、下記の数式(8)のように定義することができる。
ここで、p
1とp
2は、作業変数pを優先順位によって分類したサブベクトル(sub vector)であり、J
1とJ
2は、それぞれp
1とp
2に対応するヤコビアン行列であり、I
nは、n×n単位行列(unit matrix、identity matrix)であり、rは、任意のベクトルである。
作業変数pに優先順位を付与する方式について例を取って説明すれば、複数のツール214a、214bの位置及び姿勢情報と内視鏡216の姿勢情報(内視鏡がroll、pitch、yaw方向の回転3自由度を有する場合)のうち複数のツール214a、214bの位置及び姿勢情報にさらに高い優先順位を設定するか(互いに異なるツールの位置/姿勢情報の間に優先順位が異なる場合)、または第1ツール214aの末端部の位置情報x1、y1、z1と姿勢情報α1、β1、γ1のうち位置情報x1、y1、z1にさらに高い優先順位を設定することもできる(1つのツール内で位置情報と姿勢情報の優先順位が異なる場合)。
作業変数pを優先順位によって分類した場合にも、冗長自由度を活用するために任意のベクトルr(q)を定義し、個別目的関数w1〜wn及びシステム全体の目的関数wを定義する内容は、数式(6)及び図5〜図9に関連した説明部分に記載した内容と同一なので、ここでは詳細な説明を省略する。
さらに図11に対する説明に戻って、冗長自由度逆運動学解析部142Bを成すそれぞれの構成部について詳細に説明する。
優先順位決定部143Bは、変換部141Bを通じて変換されたスレーブロボット200Bの末端部(複数のツールの各末端部及び内視鏡の末端部)の位置及び姿勢情報x、y、z、α、β、γをあらかじめ設定された優先順位によって分類する。ここで、スレーブロボット200Bの末端部の位置及び姿勢情報、すなわち作業変数pを優先順位によってp1、p2に分類し、且つp1に設定された優先順位がp2に設定された優先順位より高いと前提する。例えば、複数のツール214a、214bの位置及び姿勢情報と内視鏡216の姿勢情報のうち複数のツール214a、214bの位置及び姿勢情報にさらに高い優先順位が設定されている場合(互いに異なるツールの位置/姿勢情報の間に優先順位が異なる場合)、優先順位決定部143Bは、複数のツール214a、214bの位置及び姿勢情報をp1に決定し、内視鏡216の姿勢情報をp2に決定する。また、例えば、第1ツール214aの末端部の位置情報x1、y1、z1と姿勢情報α1、β1、γ1のうち位置情報x1、y1、z1にさらに高い優先順位が設定されている場合(1つのツール内で位置と姿勢の優先順位が異なる)場合、優先順位決定部143Bは、第1ツール214aの末端部の位置情報x1、y1、z1をp1に決定し、第1ツール214aの末端部の姿勢情報α1、β1、γ1をp2に決定する。
ヤコビアン行列算出部144Bは、ヤコビアン行列を算出するためのアルゴリズムにスレーブロボット200Bの運動学的構造に関する情報(例えば、関節と関節の間を連結するリンクの長さ情報など)を入力し、作業変数pのうち優先順位が高いp1に対応するヤコビアン行列J1(q)と作業変数のうち相対的に優先順位が低いp2に対応するヤコビアン行列J2(q)を算出する。
目的関数算出部145Bは、冗長自由度を有するスレーブロボット200Bから作業変数pのうち優先順位が高いp1に対応するヤコビアン行列J1(q)の疑似逆行列J1 #(q)及び作業変数pのうち優先順位が低いp2に対応するヤコビアン行列J2(q)の疑似逆行列J2 #(q)を利用して関節空間での各関節の速度
に記載した任意のベクトルr(q)を表現する数式(6)、すなわち
に記載した目的関数wを算出する。このような目的関数(w、システム全体の目的関数)は、複数の個別目的関数w
1〜w
nの加重和(weighted sum)で示すことができる(w=aw
1+bw
2+cw
3+…)。個別目的関数の例としては、それぞれのツール214a、214bと器具的関節限界との間の距離の逆数、複数のツール214a、214b及び内視鏡216を成す各関節のトルク二乗の和、それぞれのツール214a、214bと周辺障害物との間の距離の逆数などを挙げることができる。この際、システム全体の目的関数wは、時間の流れによって変化するようになる。すなわち、スレーブロボット200が行う手術作業がどんなものであるかによって各個別目的関数に乗算される加重値a、b、c、…が変わる。目的関数算出部145Bは、スレーブロボット200Bが行う手術作業がどんなものであるかによって各個別目的関数に乗算される加重値a、b、c、…を決定する。目的関数算出部145Bは、位置/姿勢検出部120B及び速度検出部125Bを通じて検出されたマスター操作機112L、112Rの動作に関する情報(マスター操作機の位置情報及び速度情報)及び格納部130Bに既格納された手術作業を成す複数の動作に対する学習結果を利用して操作者が行おうとする手術作業を予測する。ここで、手術作業は、縫合(suturing)、パス(passing)、ランニング(running)及び配管挿入(cannulation)のうちいずれか1つであり、手術作業を成す複数の動作は、オリエント(orient)、プッシュ(push)及びプル(pull)のうち少なくとも1つを含む。これを通じて、目的関数算出部145Bは、スレーブロボット200が行う手術作業がどんなものであるかを判断し、当該判断結果に基づいて各個別目的関数に乗算される加重値a、b、c、…を決定した後、決定された各加重値を各個別目的関数に乗算し、システム全体の目的関数wを算出する。
冗長自由度活用部146Bは、システム全体の目的関数wを最小化する関節空間での解、すなわちマウンティングアーム202、ガイドチューブ212、複数のツール214a、214b及び内視鏡216を成す各関節の目標回転角度qを算出する。冗長自由度活用部146Bは、目的関数算出部145Bで算出された目的関数wを前述した数式(6)に代入し、目的関数wが代入された数式(6)を前述した数式(7)に代入した後、目的関数wを最小化する関節空間での各関節の速度
を算出する。冗長自由度活用部146Bは、算出された関節空間での各関節の速度
を積分し、最終的な関節空間での解であるマウンティングアーム202、ガイドチューブ212、複数のツール214a、214b及び内視鏡216を成す各関節の目標回転角度qを算出するようになる。
図12は、手術ロボットの制御方法を示す流れ図である。
本実施例の動作説明のための初期条件として、スレーブロボット200Bは、冗長自由度を有し、マウンティングアーム202、ガイドチューブ212、2つのツール214a、214b及び1つの内視鏡216それぞれは、複数のリンク及び複数の関節を含んでなるという点を前提する。また、マウンティングアーム202とガイドチューブ212が互いに連動して動作し、ガイドチューブ212とそれぞれのツール214a、214bが互いに連動して動作し、ガイドチューブ212と1つの内視鏡216が互いに連動して動作するものと前提する。また、格納部130Bには、マスター装置100Bのマスター操作機112L、112Rの動作とスレーブロボット200Bの末端部(複数のツール及び内視鏡)の動作との間の動作スケーリング(motion scaling)時に適用されるスケーリングファクター、作業変数pすなわち複数のツール214a、214bの位置/姿勢情報及び内視鏡216の姿勢情報に設定された優先順位、ヤコビアン行列算出時い必要とするアルゴリズム及びスレーブロボット200Bの運動学的構造に関する情報、目的関数算出時に必要とする複数の個別目的それぞれを達成するための複数の個別目的関数、手術作業を成す複数の動作に対する学習結果及び手術作業がどんなものであるかによって各個別目的関数に乗算される加重値などがあらかじめ格納されていることを前提する。
まず、手術が始まって、マスター操作機112L、112Rの操作者(手術ロボットを使用する医者)が手術作業のためにマスター操作機112L、112Rを通じて一定の動作を取れば、マスター装置100Bの位置/姿勢検出部120Aは、マスター操作機112L、112Rの位置情報x’、y’、z’及び姿勢情報α’、β’、γ’を検出し、検出されたマスター操作機112L、112Rの位置情報x’、y’、z’及び姿勢情報α’、β’、γ’をメイン制御部140Bに伝送する(410)。
次に、メイン制御部140B内の変換部141Bは、位置/姿勢検出部120Bから獲得したマスター操作機112L、112Rの位置及び姿勢情報x’、y’、z’、α’、β’、γ’をスレーブロボット200Bの作業空間でのモーション命令情報、すなわち操作者が所望のスレーブロボット200Bの末端部(複数のツールの各末端部及び内視鏡の末端部)の位置及び姿勢情報x、y、z、α、β、γに変換する(420)。この際、変換部141Bは、マスター操作機112L、112Rの位置及び姿勢情報x’、y’、z’、α’、β’、γ’にマスター装置100Bのマスター操作機112L、112Rの動作とスレーブロボット200Bの末端部(複数のツール及び内視鏡)の動作との間の動作スケーリング時にスケーリングファクター(scaing factor)を乗算し、スレーブロボット200Bの作業空間でのモーション命令情報x、y、z、α、β、γを算出することができる。
その後、メイン制御部140Bの冗長自由度逆運動学解析部142B内の優先順位決定部143Bは、変換部141Bを通じて変換されたスレーブロボット200Bの末端部(複数のツールの各末端部及び内視鏡の末端部)の位置及び姿勢情報x、y、z、α、β、γ、すなわち作業変数pをあらかじめ設定された優先順位によって分類する(430)。作業変数pを優先順位によってp1、p2に分類し、且つp1に設定された優先順位がp2に設定された優先順位より高いと前提するとき、例えば、複数のツール214a、214bの位置及び姿勢情報と内視鏡216の姿勢情報のうち複数のツール214a、214bの位置及び姿勢情報にさらに高い優先順位が設定されている場合、優先順位決定部143Bは、複数のツール214a、214bの位置及び姿勢情報をp1に決定し、内視鏡216の姿勢情報をp2に決定する。
次に、メイン制御部140Bの冗長自由度逆運動学解析部142B内のヤコビアン行列算出部144Aは、格納部130Bに既格納されているヤコビアン行列を算出するためのアルゴリズム及びスレーブロボット200Bの運動学的構造に関する情報(例えば、関節と関節の間を連結するリンクの長さ情報など)を利用して作業変数pのうち優先順位が高いp1に対応するヤコビアン行列J1(q)と作業変数のうち相対的に優先順位が低いp2に対応するヤコビアン行列J2(q)を算出する(440)。
その後、メイン制御部140Bの冗長自由度逆運動学解析部142B内の目的関数算出部145Bは、スレーブロボット200Bが行う手術作業がどんなものであるかを判断し、当該判断結果に基づいて各個別目的関数に乗算される加重値a、b、c、…を決定した後、決定された各加重値を各個別目的関数に乗算し、システム全体の目的関数wを算出する(450)。この際、目的関数算出部145Bは、位置/姿勢検出部120B及び速度検出部125Bを通じて検出されたマスター操作機112L、112Rの動作に関する情報(マスター操作機の位置情報及び速度情報)及び格納部130Bに既格納されている手術作業を成す複数の動作に対する学習結果を利用して操作者が行おうとする手術作業、すなわちスレーブロボット200Bが行う手術作業がどんなものであるかを予測し、予測された手術作業(例えば、配管挿入)によって各個別目的関数に乗算される加重値a、b、c、…を格納部130Aで検索した後、検索された各加重値a、b、c、…を各個別目的関数に乗算し、システム全体の目的関数wを算出することができる。
次に、メイン制御部140Bの冗長自由度逆運動学解析部142A内の冗長自由度活用部146Bは、スレーブロボット200Bの冗長自由度を活用してマウンティングアーム202、ガイドチューブ212、複数のツール214A、214b及び内視鏡216を成す各関節の目標回転角度qを算出する(460)。この際、冗長自由度活用部146Bは、目的関数算出部145Bを通じて算出されたシステム全体の目的関数wを最小化する関節空間での各関節の速度
を積分し、最終的な関節空間での解であるマウンティングアーム202、ガイドチューブ212、複数のツール214a、214b及び内視鏡216を成す各関節の目標回転角度qを算出するようになる。
その後、メイン制御部140Bは、冗長自由度活用部146Bで算出した各関節の目標回転角度qを通信部150Bを通じてスレーブロボット200B側スレーブ制御部240Bに伝送し、スレーブ制御部240Bは、メイン制御部140Bから伝送された各関節の目標回転角度qをサーボ制御部260Bに伝送する(470)。
次に、スレーブロボット200B側のサーボ制御部260Bは、メイン制御部140B内の冗長自由度活用部146Bから伝達された各関節の目標回転角度qを追従するための関節トルクτを算出し、算出された関節トルクτに対応するトルク制御信号を生成する(480)。
その後、サーボ制御部260Bは、生成されたトルク制御信号をマウンティングアーム202、ガイドチューブ212、それぞれのツール214a、214b及び内視鏡216を成す各関節を回転駆動する駆動部270Bに伝送する(490)。
このような過程を通じてスレーブロボット200Bの冗長自由度を活用して多様な個別目的(ツールの作業領域の拡張、ツールの関節別必要剛性の最小化、ツールと周辺障害物との間の衝突可能性の最小化、ツールの必要自由度の最小化及び複合的な作業実行)を達成しながらスレーブロボット200Bを成す各構成要素(マウンティングアーム、ガイドチューブ、複数のツール及び内視鏡)の動作を統合的に制御することができるようになる。
図13は、ヒューマノイドロボットの外観構成図である。図13に示されたように、ヒューマノイドロボット500は、人間と同様に、2つの脚518L、518Rによって直立移動する二足歩行ロボットであって、頭502、胴体503、腕504L、504Rよりなる上部ボディー501と、2つの脚518L、518Rよりなる下部ボディー517を備える。
ヒューマノイドロボット500の上部ボディー501は、胴体503と、胴体503の上部に首505を通じて連結された頭502と、胴体503の上部両側に肩506L、506Rを通じて連結された2つの腕504L、504Rと、この2つの腕504L、504Rの末端にそれぞれ連結された手507L、507Rよりなる。頭502で人間の目の形状を有する器具部には、移動空間の周囲を撮影するためのカメラ511が装着される。
2つの腕504L、504Rは、多自由度を持って駆動するように具現することができる。2つの腕504L、504Rは、複数のリンク及び複数の関節よりなる。特に、図13に示されたように、左側腕504Lの末端部、すなわち左側手507Lには、ガイドチューブ512及びそれぞれエンドエフェクタ516a、516b、516cを有し、ガイドチューブ512から分岐して出る複数のツール514a、514b、514cよりなるマルチツールモジュール510が連結される。ヒューマノイドロボット500が作業を行わないときには、複数のツール516a、516b、516cがガイドチューブ512内に内蔵されていて、ヒューマノイドロボット500が作業を行うときには、図13に示されたように、ガイドチューブ512内に内蔵されている複数のツール514a、514b、514cが外に出て、ユーザの命令による作業(例えば、掃除作業)を行う。以下では、ガイドチューブ512及び複数のツール514a、514b、514cよりなるマルチツールモジュール510が連結される左側腕504Lを特にマウンティングアーム504Lとして定義する。
ここで、ガイドチューブ512、複数のツール514a、514b、514cは、マウンティングアーム504Lと同様に、複数のリンク及び複数の関節よりなり、多自由度を持って駆動するように具現することができる。図13に示す例で、複数のツール514a、514b、514cそれぞれの末端部(distal end)には、直接的な掃除作業を行うごみを取り上げるためのやっとこ、空気中のほこりを集める集塵機、汚い所を拭き上げる雑巾などの掃除道具、すなわちエンドエフェクタ516a、516b、516cが装着される。
ヒューマノイドロボット500の下部ボディー517は、上部ボディー501の胴体503の下部両側に連結された2つの脚518L、518Rと、2つの脚518L、518Rの末端にそれぞれ連結された足519L、519Rよりなる。
参照符号において、“R”と“L”は、それぞれヒューマノイドロボット500の左側(left)と右側(right)を示す。
図14は、ヒューマノイドロボットの制御ブロック図である。
まず、本実施例では、ヒューマノイドロボット500の左側の腕部分を成すマウンティングアーム504L、ガイドチューブ512、複数のツール514a、514b、514cそれぞれが複数のリンク及び複数の関節を含んでなるという点を前提する。また、本実施例では、マウンティングアーム504Lとガイドチューブ512が互いに連動して動作し、ガイドチューブ512とそれぞれのツール514a、514b、514cが互いに連動して動作するものと前提する。同時に、本実施例では、ヒューマノイドロボット500Aが冗長自由度(redundancy)を有する場合、すなわちヒューマノイドロボット500Aの関節空間での自由度Nが作業空間での自由度Mより大きい場合(N>M)を前提する。
図14に示されたように、ヒューマノイドロボット500Aは、入力部520A、映像情報獲得部525A、格納部530A、制御部540A、サーボ制御部550A、駆動部560A及び位置/姿勢検出部570Aを含むことができる。
入力部520Aは、ユーザがヒューマノイドロボット500Aの動作命令(例えば、歩行命令、作業命令など)を入力するためのものであって、ユーザインターフェースUIや遠隔操作機などで構成することができる。
映像情報獲得部525Aは、被写体から反射する光を検出し、これをデジタル信号に変換及び処理し、移動空間周辺の映像を獲得する。このために、映像情報獲得部525Aは、移動空間の周囲を撮影するカメラ511と、カメラ511の出力を受信し、2次元イメージ映像及び3次元距離情報を生成する映像処理モジュールよりなる。カメラ511としては、CCD(charge−coupled device)カメラ、CMOS(complementary metal oxide)カメラ、TOF(Time of Flight)カメラなどが利用されることができ、その他、ヒューマノイドロボット500が歩行する経路上に位置する物体に対する映像情報を獲得することができる装置なら、どんな装置でも使用可能であることは勿論である。
格納部530Aは、ヒューマノイドロボット500Aの冗長自由度を活用して関節空間での解、すなわちマウンティングアーム504L、ガイドチューブ512及び複数のツール514a、514b、514cを成す各関節の目標回転角度を算出するのに必要な情報及びアルゴリズムなどが格納されるメモリであって、格納部530A内には、ヤコビアン行列算出時に必要とするアルゴリズム及びヒューマノイドロボット500Aの運動学的構造に関する情報、目的関数算出時に必要とする複数の個別目的それぞれを達成するための複数の個別目的関数、行う作業がどんなものであるかによって各個別目的関数に乗算される加重値などが格納される。
また、格納部530Aは、ヒューマノイドロボット500Aの位置認識結果及びSLAMアルゴリズムを利用して作成される移動空間に対する地図などを格納することができる。
制御部540Aは、ヒューマノイドロボット500Aの全般的な動作を制御するためのプロセッサであって、制御部540Aは、さらに、モーション命令生成部541A、冗長自由度逆運動学解析部542A及び位置推定部547Aを含む。
モーション命令生成部541Aは、入力部520Aから伝送されたユーザ命令信号、映像情報獲得部525Aから伝送された移動空間周辺の映像信号及び位置/姿勢検出部570Aから伝送された複数のツール514a、514b、514cの各末端部の3次元空間上での位置及び姿勢情報に基づいて複数のツール514a、514b、514cに対する作業空間でのモーション命令x、y、z、α、β、γを生成する。ここでは、モーション命令生成部541Aを通じて生成された作業空間でのモーション命令x、y、z、α、β、γが前述した作業変数pになる。
本実施例では、位置/姿勢フィードバック(feedback)制御のために作業空間でのモーション命令生成時に位置/姿勢検出部570Aから伝送された複数のツール514a、514b、514cの各末端部の3次元空間上での位置及び姿勢情報を反映する場合を例に取って説明したが、オープンループ(open−loop)制御時には、複数のツール514a、514b、514cの各末端部の3次元空間上での位置及び姿勢情報を反映せず、入力部520Aから伝送されたユーザ命令信号及び映像情報獲得部525Aから伝送された移動空間周辺の映像信号に基づいて複数のツール514a、514b、514cに対する作業空間でのモーション命令を生成するようになる。
冗長自由度逆運動学解析部542Aは、ヒューマノイドロボット500の冗長自由度を活用してヒューマノイドロボット500Aを成す各構成要素(マウンティングアーム、ガイドチューブ、複数のツール)の動作を統合的に制御するための制御信号(各構成要素を成す複数の関節それぞれの目標回転角度)を生成する構成部であって、冗長自由度逆運動学解析部542Aは、さらに、ヤコビアン行列算出部544A、目的関数算出部545A及び冗長自由度活用部546Aを含んでなる。
ヤコビアン行列算出部544Aは、作業変数pと関節変数qとの間の関係を示す数式(1)、すなわちp=f(q)を時間に関して微分して獲得する数式(2)、すなわち微分運動学方程式
に乗算されるヤコビアン行列J(q)を算出する。この際、ヤコビアン行列算出部544Aは、ヤコビアン行列を算出するためのアルゴリズムにヒューマノイドロボット500の運動学的構造に関する情報(例えば、関節と関節の間を連結するリンクの長さ情報など)を入力し、f(q)のヤコビアン行列J(q)を算出する。
目的関数算出部545Aは、冗長自由度を有するヒューマノイドロボット500でヤコビアン行列J(q)の疑似逆行列J#(q)を利用して関節空間での各関節の速度
に記載した任意のベクトルr(q)を表現する数式(6)、すなわち
に記載した目的関数wを算出する。このような目的関数w、システム全体の目的関数は、複数の個別目的関数w
1〜w
nの加重和(weighted sum)で示すことができる(w=aw
1+bw
2+cw
3+…)。個別目的関数の例としては、それぞれのツール514a、514b、514cと器具的関節限界との間の距離の逆数、複数のツール514a、514b、514cを成す各関節のトルク二乗の和、それぞれのツール514a、514b、514cと周辺障害物との間の距離の逆数などを挙げることができる。この際、システム全体の目的関数wは、時間の流れによって変化するようになる。すなわち、ヒューマノイドロボット500Aが行う作業がどんなものであるかによって各個別目的関数に乗算される加重値a、b、c、…が変わる。目的関数算出部545Bは、ヒューマノイドロボット500Aが行う作業がどんなものであるかを判断し、当該判断結果に基づいて各個別目的関数に乗算される加重値a、b、c、…を決定した後、決定された各加重値を各個別目的関数に乗算し、システム全体の目的関数wを算出する。
冗長自由度活用部546Aは、システム全体の目的関数wを最小化する関節空間での解、すなわちマウンティングアーム504L、ガイドチューブ512及び複数のツール514a、514b、514cを成す各関節の目標回転角度qを算出する。冗長自由度活用部546Aは、目的関数算出部545Aで算出された目的関数wを前述した数式(6)に代入し、目的関数wが代入された数式(6)を前述した数式(4)に代入した後、目的関数wを最小化する関節空間での各関節の速度
を算出する。冗長自由度活用部546Aは、算出された関節空間での各関節の速度
を積分し、最終的な関節空間での解であるマウンティングアーム504L、ガイドチューブ512及び複数のツール514a、514b、514cを成す各関節の目標回転角度qを算出するようになる。
位置推定部547Aは、映像情報獲得部525Aを通じて獲得された映像情報及びヒューマノイドロボット500Aを成す各リンクの運動学情報(長さ情報)と各回転関節の回転角度情報に基づいて算出されたオドメトリ情報にSLAM(Simultaneous Localization And Mapping)アルゴリズムを適用してヒューマノイドロボット500自分の位置を推定すると同時に、移動空間に対応する地図を作成する。SLAMアルゴリズムは、特徴点(feature)の位置とヒューマノイドロボット500の位置情報及び姿勢情報を1つの状態変数(state)に設定し、確率的なフィルタ技法を通じて同時に推定するようになり、その過程は、予測(Prediction)段階、情報連合{れんごう}(Data Association)段階及び更新(Update)段階で成り立って繰り返し的に行われる。この時、確率フィルタとしては、拡張カルマンフィルタ(Extended KalmanFilter)、粒子フィルタ(Particle Filter)などが使用されることができる。
サーボ制御部550Aは、制御部540A内の冗長自由度活用部546Aから伝達された各関節の目標回転角度qを追従するための関節トルクτを算出し、算出された関節トルクτに対応するトルク制御信号を生成し、マウンティングアーム504L、ガイドチューブ512及びそれぞれのツール514a、514b、514cを成す各関節を回転駆動する駆動部560Aに出力する。
駆動部560Aは、マウンティングアーム504L、ガイドチューブ512及びそれぞれのツール514a、514b、514cを成す複数の関節それぞれに電気または油圧による動力を伝達するためのモーターなどのアクチュエータであって、サーボ制御部550Aから伝達されたトルク制御信号によってマウンティングアーム504L、ガイドチューブ512及びそれぞれのツール514a、514b、514cを成す各関節を回転駆動する。ここで、マウンティングアーム504L、ガイドチューブ512及び各ツール514a、514b、514cの関節空間での自由度がそれぞれ6である場合、ヒューマノイドロボット500の左側の腕部分には、全体30個の回転関節が設けられる。したがって、この回転関節を駆動するために、全体30個のアクチュエータを必要とする。
位置/姿勢検出部570Aは、ヒューマノイドロボット500Aの末端部(複数のツールの各末端部)の位置(position)及び姿勢(方向、orientation)を検出する。位置/姿勢検出部570Aは、複数のツール514a、514b、514cを成す複数の関節それぞれに装着されて各関節の回転角度を検出する回転角センサー(図示せず)と、回転角センサーを通じて検出された各関節の回転角度を複数のツール514a、514b、514cの順運動学式に代入して、複数のツール514a、514b、514cの各末端部の3次元空間上での位置及び姿勢情報を算出する演算モジュールよりなる。回転角センサーとしては、エンコーダー(encoder)、ポテンショメータ(potentiometer)などを利用することができる。ここでは、回転角センサーと演算モジュールよりなる位置/姿勢検出部570Aを例に取って説明したが、その他、複数のツール514a、514b、514cの各末端部の位置及び姿勢に対する情報を検出することができる装置なら、どんな装置でも位置/姿勢検出部570Aとして使用可能であることは勿論である。
図15は、ヒューマノイドロボットの制御方法を示す流れ図である。
本実施例の動作説明のための初期条件として、ヒューマノイドロボット500A、特に図13に示す左側の腕部分は、冗長自由度を有し、マウンティングアーム504L、ガイドチューブ512、3つのツール514a、514b、514cそれぞれは、複数のリンク及び複数の関節を含んでなるという点を前提する。また、マウンティングアーム504Lとガイドチューブ512が互いに連動して動作し、ガイドチューブ512とそれぞれのツール514a、514b、514cが互いに連動して動作するものと前提する。また、格納部530Aには、ヤコビアン行列算出時に必要とするアルゴリズム及びヒューマノイドロボット500の運動学的構造に関する情報、目的関数算出時に必要とする複数の個別目的それぞれを達成するための複数の個別目的関数、行う作業がどんなものであるかによって各個別目的関数に乗算される加重値などがあらかじめ格納されていることを前提する。
入力部520Aを通じてユーザからヒューマノイドロボット500Aの作業命令(例えば、掃除命令)が入力されれば、ヒューマノイドロボット500Aの作業が始まる。
まず、ヒューマノイドロボット500Aの作業が始まれば、制御部540Aは、位置/姿勢検出部570Aから複数のツール514a、514b、514cの各末端部の3次元空間上での位置及び姿勢情報を周期的に入力されながら作業を行う(610)。
次に、制御部540A内のモーション命令生成部541Aは、入力部520Aから伝送されたユーザ命令信号、映像情報獲得部525Aから伝送された移動空間周辺の映像信号及び位置/姿勢検出部570Aから伝送された複数のツール514a、514b、514cの各末端部の3次元空間上での位置及び姿勢情報に基づいて複数のツール514a、514b、514cに対する作業空間でのモーション命令x、y、z、α、β、γを生成する620。この際、モーション命令生成部541Aを通じて生成された作業空間でのモーション命令x、y、z、α、β、γが作業変数pになる。
その後、制御部540Aの冗長自由度逆運動学解析部542A内のヤコビアン行列算出部544Aは、格納部530Aに既格納されているヤコビアン行列を算出するためのアルゴリズム及びヒューマノイドロボット500Aの運動学的構造に関する情報(例えば、関節と関節の間を連結するリンクの長さ情報など)を利用して前述した数式(2)、すなわち微分運動学方程式
に乗算されるヤコビアン行列J(q)を算出する(630)。
次に、制御部540Aの冗長自由度逆運動学解析部542A内の目的関数算出部545Aは、ヒューマノイドロボット500Aが行う作業がどんなものであるか判断し、当該判断結果に基づいて各個別目的関数に乗算される加重値a、b、c、…を決定した後、決定された各加重値を各個別目的関数に乗算し、システム全体の目的関数wを算出する(640)。
その後、制御部540Aの冗長自由度逆運動学解析部542A内の冗長自由度活用部546Aは、ヒューマノイドロボット500Aの冗長自由度を活用してマウンティングアーム504L、ガイドチューブ512及び複数のツール514A、514b、514cを成す各関節の目標回転角度qを算出する(650)。この際、冗長自由度活用部546Aは、目的関数算出部545Aを通じて算出されたシステム全体の目的関数wを最小化する関節空間での各関節の速度
を積分し、最終的な関節空間での解であるマウンティングアーム504L、ガイドチューブ512及び複数のツール514A、514b、514cを成す各関節の目標回転角度qを算出するようになる。
次に、制御部540Aは、冗長自由度活用部546Aで算出した各関節の目標回転角度qをサーボ制御部550Aに伝送する(660)。
その後、サーボ制御部550Aは、制御部540A内の冗長自由度活用部546Aから伝達された各関節の目標回転角度qを追従するための関節トルクτを算出し、算出された関節トルクτに対応するトルク制御信号を生成する(670)。
次に、サーボ制御部550Aは、生成されたトルク制御信号をマウンティングアーム504L、ガイドチューブ512及び複数のツール514a、514b、514cを成す各関節を回転駆動する駆動部560Aに伝送する(680)。
このような過程を通じてヒューマノイドロボット500の冗長自由度を活用して多様な個別目的(ツールの作業領域の拡張、ツールの関節別必要剛性の最小化、ツールと周辺障害物との間の衝突可能性の最小化、ツールの必要自由度の最小化及び複合的な作業実行)を達成しながらヒューマノイドロボット500を成す各構成要素(マウンティングアーム、ガイドチューブ、複数のツール)の動作を統合的に制御することができるようになる。
図16は、ヒューマノイドロボットの制御ブロック図である。図16に示すヒューマノイドロボット500Bは、図14に示すヒューマノイドロボット500Aと比較してみるとき、制御部540Bの冗長自由度逆運動学解析部542B内に優先順位決定部543Bが追加された点で、図14に示すヒューマノイドロボット500Aと異なる。
ここでは、同一の名称と同一の参照符号を使用している構成要素については説明を省略し(、但し、参照符号において番号の後方に併記されたA、Bは、各実施例を区別するためのものである)、図16に追加的に示す優先順位決定部543Bの構成及びこの優先順位決定部543Bによってその機能が変化する格納部530B及び制御部540B内の冗長自由度逆運動学解析部542Bの構成のみについて説明する。
図16に示す格納部530Bは、ヒューマノイドロボット500Bの冗長自由度を活用して関節空間での解、すなわちマウンティングアーム504L、ガイドチューブ512及び複数のツール514A、514b、514cを成す各関節の目標回転角度を算出するのに必要な情報及びアルゴリズムなどが格納されるメモリであって、格納部530B内には、作業変数p、すなわち複数のツール514A、514b、514cの位置/姿勢情報に設定された優先順位(例えば、複数のツール514A、514b、514cの位置及び姿勢情報のうち第1ツール514aの位置及び姿勢情報にさらに高い優先順位が設定されるか、または第1ツール514aの末端部の位置情報x1、y1、z1と姿勢情報α1、β1、γ1のうち位置情報x1、y1、z1にさらに高い優先順位が設定される)、ヤコビアン行列算出時に必要とするアルゴリズム及びヒューマノイドロボット500Bの運動学的構造に関する情報、目的関数算出時に必要とする複数の個別目的それぞれを達成するための複数の個別目的関数、行う作業がどんなものであるかによって各個別目的関数に乗算される加重値などが格納される。
また、格納部530Bは、ヒューマノイドロボット500Bの位置認識結果及びSLAMアルゴリズムを利用して作成される移動空間に対する地図などを格納することができる。
図16に示されたように、制御部540B内の冗長自由度逆運動学解析部542Bは、ヒューマノイドロボット500Bの冗長自由度を活用してヒューマノイドロボット500Bを成す各構成要素(マウンティングアーム、ガイドチューブ、複数のツール)の動作を統合的に制御するための制御信号(各構成要素を成す複数の関節それぞれの目標回転角度)を生成する構成部であって、冗長自由度逆運動学解析部542Bは、さらに、優先順位決定部543B、ヤコビアン行列算出部544B、目的関数算出部545B及び冗長自由度活用部546Bを含んでなる。
冗長自由度逆運動学解析部542Bを成すそれぞれの構成部に対する詳細な説明に先立って、以下では、まず、冗長自由度を有するヒューマノイドロボット500Bで作業変数pに優先順位が設定されたときの逆運動学解析について説明する。
システムが冗長自由度を有する場合には、ヤコビアン行列J(q)の疑似逆行列(Pseudo−inverse Matrix)J#(q)を利用して逆運動学的解を算出するという点は先立って言及した事がある。
この際、作業変数pに優先順位を設定する場合、例えば作業変数pを優先順位によってp1、p2に分け、p1にさらに高い優先順位を設定するとき、ヤコビアン行列の疑似逆行列を利用して関節空間での各関節の速度
を算出する式は、下記の数式(7)のように示すことができ、数式(7)に記載した
は、下記の数式(8)のように定義することができる。
ここで、p
1とp
2は、作業変数pを優先順位によって分類したサブベクトル(subvector)であり、J
1とJ
2は、それぞれp
1とp
2に対応するヤコビアン行列であり、Inは、n×n単位行列(unit matrix、identity matrix)であり、rは、任意のベクトルである。
作業変数pに優先順位を付与する方式について例を取って説明すれば、複数のツール514A、514b、514cの位置及び姿勢情報のうち第1ツール514aの位置及び姿勢情報にさらに高い優先順位を設定するか(互いに異なるツールの位置/姿勢情報の間に優先順位が異なる場合)、第1ツール514aの末端部の位置情報x1、y1、z1と姿勢情報α1、β1、γ1のうち位置情報x1、y1、z1にさらに高い優先順位を設定することもできる(1つのツール内で位置情報と姿勢情報の優先順位が異なる場合)。
作業変数pを優先順位によって分類した場合にも、冗長自由度を活用するために、任意のベクトルr(q)を定義し、個別目的関数w1〜wn及びシステム全体の目的関数wを定義する内容は、数式(6)及び図5〜図9に関連した説明部分に記載した内容と同一なので、ここでは、詳細な説明を省略する。
さらに図16に対する説明に戻って、冗長自由度逆運動学解析部542Bを成すそれぞれの構成部について詳細に説明する。
優先順位決定部543Bは、モーション命令生成部541Bを通じて生成されたヒューマノイドロボット500Bの末端部(複数のツールの各末端部)の位置及び姿勢情報x、y、z、α、β、γをあらかじめ設定された優先順位によって分類する。ここで、ヒューマノイドロボット500Bの末端部の位置及び姿勢情報、すなわち作業変数pを優先順位によってp1、p2に分類し、且つp1に設定された優先順位がp2に設定された優先順位より高いと前提する。例えば、複数のツール514A、514b、514cの位置及び姿勢情報のうち第1ツール514aの位置及び姿勢情報にさらに高い優先順位が設定されている場合(互いに異なるツールの位置/姿勢情報の間に優先順位が異なる)場合に、優先順位決定部543Bは、第1ツール514aの位置及び姿勢情報をp1に決定し、第2及び第3ツール514b、514cの姿勢情報をp2に決定する。また、例えば、第1ツール514aの末端部の位置情報x1、y1、z1と姿勢情報α1、β1、γ1のうち位置情報x1、y1、z1にさらに高い優先順位が設定されている場合(1つのツール内で位置と姿勢の優先順位が異なる場合)、優先順位決定部543Bは、第1ツール514aの末端部の位置情報x1、y1、z1をp1に決定し、第1ツール514aの末端部の姿勢情報α1、β1、γ1をp2に決定する。
ヤコビアン行列算出部544Bは、ヤコビアン行列を算出するためのアルゴリズムにヒューマノイドロボット500Bの運動学的構造に関する情報(例えば、関節と関節の間を連結するリンクの長さ情報など)を入力し、作業変数pのうち優先順位が高いp1に対応するヤコビアン行列J1(q)と作業変数のうち相対的に優先順位が低いp2に対応するヤコビアン行列J2(q)を算出する。
目的関数算出部545Bは、冗長自由度を有するヒューマノイドロボット500Bで作業変数pのうち優先順位が高いp1に対応するヤコビアン行列J1(q)の疑似逆行列J1 #(q)及び作業変数pのうち優先順位が低いp2に対応するヤコビアン行列J2(q)の疑似逆行列J2 #(q)を利用して関節空間での各関節の速度
に記載した任意のベクトルr(q)を表現する数式(6)、すなわち
に記載した目的関数wを算出する。このような目的関数w、システム全体の目的関数は、複数の個別目的関数w
1〜w
nの加重和(weighted sum)で示すことができる(w=aw
1+bw
2+cw
3+…)。個別目的関数の例としては、それぞれのツール514a、514b、514cと器具的関節限界との間の距離の逆数、複数のツール514A、514b、514cを成す各関節のトルク二乗の和、それぞれのツール514a、514b、514cと周辺障害物との間の距離の逆数などを挙げることができる。この際、システム全体の目的関数wは、時間の流れによって変化する。すなわち、ヒューマノイドロボット500Bが行う作業がどんなものであるかによって各個別目的関数に乗算される加重値a、b、c、…が変わる。目的関数算出部545Bは、ヒューマノイドロボット500Bが行う作業がどんなものであるかを判断し、当該判断結果に基づいて各個別目的関数に乗算される加重値a、b、c、…を決定した後、決定された各加重値を各個別目的関数に乗算し、システム全体の目的関数wを算出する。
冗長自由度活用部546Bは、システム全体の目的関数wを最小化する関節空間での解、すなわちマウンティングアーム504L、ガイドチューブ512及び複数のツール514A、514b、514cを成す各関節の目標回転角度qを算出する。冗長自由度活用部546Bは、目的関数算出部545Bで算出された目的関数wを前述した数式(6)に代入し、目的関数wが代入された数式(6)を前述した数式(7)に代入した後、目的関数wを最小化する関節空間での各関節の速度
を算出する。冗長自由度活用部546Bは、算出された関節空間での各関節の速度
を積分し、最終的な関節空間での解であるマウンティングアーム504L、ガイドチューブ512及び複数のツール514A、514b、514cを成す各関節の目標回転角度qを算出するようになる。
図17は、ヒューマノイドロボットの制御方法を示す流れ図である。
本実施例の動作説明のための初期条件として、ヒューマノイドロボット500B、特に図13に示す左側の腕部分は、冗長自由度を有し、マウンティングアーム504L、ガイドチューブ512、3つのツール514a、514b、514cそれぞれは、複数のリンク及び複数の関節を含んでなるという点を前提する。またマウンティングアーム504Lとガイドチューブ512が互いに連動して動作し、ガイドチューブ512とそれぞれのツール514a、514b、514cが互いに連動して動作するものと前提する。また、格納部530Bには、作業変数p、すなわち複数のツール514A、514b、514cの位置/姿勢情報に設定された優先順位、ヤコビアン行列算出時に必要とするアルゴリズム及びヒューマノイドロボット500Bの運動学的構造に関する情報、目的関数算出時に必要とする複数の個別目的それぞれを達成するための複数の個別目的関数、行う作業がどんなものであるかによって各個別目的関数に乗算される加重値などがあらかじめ格納されていることを前提する。
入力部520Bを通じてユーザからヒューマノイドロボット500Bの作業命令(例えば、掃除命令)が入力されれば、ヒューマノイドロボット500Bの作業が始まる。
まず、ヒューマノイドロボット500Bの作業が始まれば、制御部540Bは、位置/姿勢検出部570Aから複数のツール514a、514b、514cの各末端部の3次元空間上での位置及び姿勢情報を周期的に入力されながら作業を行う(710)。
次に、制御部540B内のモーション命令生成部541Bは、入力部520Bから伝送されたユーザ命令信号、映像情報獲得部525Bから伝送された移動空間周辺の映像信号及び位置/姿勢検出部570Bから伝送された複数のツール514a、514b、514cの各末端部の3次元空間上での位置及び姿勢情報に基づいて複数のツール514a、514b、514cに対する作業空間でのモーション命令x、y、z、α、β、γを生成する(720)。この際、モーション命令生成部541Bを通じて生成された作業空間でのモーション命令x、y、z、α、β、γが作業変数pになる。
その後、制御部540Bの冗長自由度逆運動学解析部542B内の優先順位決定部543Bは、モーション命令生成部541Bを通じて生成されたヒューマノイドロボット500Bの末端部複数のツールの各末端部の位置及び姿勢情報x、y、z、α、β、γ、すなわち作業変数pをあらかじめ設定された優先順位によって分類する(730)。作業変数pを優先順位によってp1、p2に分類し、且つp1に設定された優先順位がp2に設定された優先順位より高いと前提するとき、例えば、複数のツール514a、514b、514cの位置及び姿勢情報のうち第1ツール514aの位置及び姿勢情報にさらに高い優先順位が設定されている場合に、優先順位決定部543Bは、第1ツール214aの位置及び姿勢情報をp1に決定し、第2及び第3ツール214b、214cの姿勢情報をp2に決定する。
次に、制御部540Bの冗長自由度逆運動学解析部542B内のヤコビアン行列算出部544Bは、格納部530Bに既格納されているヤコビアン行列を算出するためのアルゴリズム及びヒューマノイドロボット500Bの運動学的構造に関する情報(例えば、関節と関節の間を連結するリンクの長さ情報など)を利用して作業変数pのうち優先順位が高いp1に対応するヤコビアン行列J1(q)と作業変数のうち相対的に優先順位が低いp2に対応するヤコビアン行列J2(q)を算出する(740)。
その後、制御部540Bの冗長自由度逆運動学解析部542B内の目的関数算出部545Bは、ヒューマノイドロボット500Bが行う作業がどんなものであるかを判断し、当該判断結果に基づいて各個別目的関数に乗算される加重値a、b、c、…を決定した後、決定された各加重値を各個別目的関数に乗算し、システム全体の目的関数wを算出する(750)。
次に、制御部540Bの冗長自由度逆運動学解析部542B内の冗長自由度活用部546Bは、ヒューマノイドロボット500Bの冗長自由度を活用してマウンティングアーム504L、ガイドチューブ512及び複数のツール514A、514b、514cを成す各関節の目標回転角度qを算出する(760)。この際、冗長自由度活用部546Bは、目的関数算出部545Bを通じて算出されたシステム全体の目的関数wを最小化する関節空間での各関節の速度
を積分し、最終的な関節空間での解であるマウンティングアーム504L、ガイドチューブ512及び複数のツール514A、514b、514cを成す各関節の目標回転角度qを算出するようになる。
その後、制御部540Bは、冗長自由度活用部546Bで算出した各関節の目標回転角度qをサーボ制御部550Bに伝送する(770)。
次に、サーボ制御部550Bは、制御部540B内の冗長自由度活用部546Bから伝達された各関節の目標回転角度qを追従するための関節トルクτを算出し、算出された関節トルクτに対応するトルク制御信号を生成する(780)。
その後、サーボ制御部550Bは、生成されたトルク制御信号をマウンティングアーム504L、ガイドチューブ512及び複数のツール514a、514b、514cを成す各関節を回転駆動する駆動部560Bに伝送する(790)。
このような過程を通じてヒューマノイドロボット500Bの冗長自由度を活用して多様な個別目的(ツールの作業領域の拡張、ツールの関節別必要剛性の最小化、ツールと周辺障害物との間の衝突可能性の最小化、ツールの必要自由度の最小化及び複合的な作業実行)を達成しながらヒューマノイドロボット500Bを成す各構成要素(マウンティングアーム、ガイドチューブ、複数のツール)の動作を統合的に制御することができるようになる。
前述した実施例では、複数のツールを有するロボットとして手術ロボット及びヒューマノイドロボットを例に取って説明したが、その他、ガイドチューブから複数のツールが分岐して出る形態の多様なロボットシステムに本発明が適用されることができる。