以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.ロボットアーム制御システムの構成
2.キャリブレーション方法
3.キャリブレーション方法の具体例
4.適用例
4−1.医療用ロボットアーム装置についての検討
4−2.本開示の一実施形態
4−2−1.ロボットアーム装置の外観
4−2−2.一般化逆動力学について
4−2−2−1.仮想力算出処理
4−2−2−1.実在力算出処理
4−2−3.理想関節制御について
4−2−4.ロボットアーム制御システムの構成
4−2−5.運動目的の具体例
4−3.ロボットアーム制御方法の処理手順
4−4.医療用ロボットアーム装置についてのまとめ
5.ハードウェア構成
6.補足
本明細書では、まず、<1.ロボットアーム制御システムの構成>において、本開示の好適な一実施形態に係るロボットアーム制御システムの構成について説明する。<1.ロボットアーム制御システムの構成>では、本実施形態に係るロボットアーム制御システムの中でも、ロボットアーム装置の駆動制御に関する部分ではなく、内部モデルのキャリブレーションに関する機能について主に説明を行う。更に、<2.キャリブレーション方法>及び<3.キャリブレーション方法の具体例>では、内部モデルのキャリブレーション方法の詳細や、具体的な手順等について説明する。
その後、<4.適用例>において、本実施形態に係るキャリブレーション方法が適用され得るロボットアーム装置の一例として、全身協調制御と呼ばれる制御方式によってその駆動が制御される医療用ロボットアーム装置について説明する。<4.適用例>では、主に、ロボットアーム装置の制御に関する事項について説明を行う。
なお、<4.適用例>も含めて、以下の説明では、本開示の好適な一実施形態として、主に医療用に用いられるロボットアーム装置を例に挙げて説明を行う。ただし、本実施形態はかかる例に限定されず、例えば工業用等、他の分野に対しても適用可能である。
<1.ロボットアーム制御システムの構成>
まず、図1を参照して、本開示の一実施形態に係るロボットアーム制御システムの構成について説明する。図1は、本開示の一実施形態に係るロボットアーム制御システムの機能構成を示す機能ブロック図である。
図1を参照すると、本実施形態に係るロボットアーム制御システム2は、ロボットアーム装置10及び制御装置20を備える。本実施形態においては、制御装置20によって、ロボットアーム装置10の駆動を制御するための各種の演算が行われ、当該演算結果に基づいてロボットアーム装置10のアーム部の駆動が制御される。また、ロボットアーム装置10のアーム部には後述する撮像部140が設けられており、例えば、撮像部140によって撮影された画像が表示装置(図示せず。)の表示画面に表示される。例えば、ロボットアーム装置10が手術等の医療行為に用いられる場合であれば、撮像部140によって患者の術部が撮影され、操作者(術者)は、撮影された画像が表示されている表示装置の表示画面を観察しながら、各種の処置を行うことができる。
ここで、本実施形態に係るロボットアーム制御システム2は、その特徴的な構成の一つとして、ロボットアーム装置10の駆動を制御する際に用いられる内部モデルのキャリブレーションを行う機能を有する。従って、以下の説明では、図1を参照して、ロボットアーム装置10及び制御装置20の構成の中でも、主に内部モデルのキャリブレーションに関する機能について詳細に説明することとする。そのため、図1では、ロボットアーム装置10の駆動制御についての各種の演算等を行う機能についてはその図示を省略し、専らキャリブレーションを行うための各種の機能について図示している。実際には、本実施形態に係るロボットアーム装置10及び制御装置20は、例えば図11を参照して後述するような、ロボットアーム装置10の駆動制御に係る各種の構成を有し得る。ロボットアーム装置10の駆動制御に関する各種の機能については、下記<4.適用例>で改めて詳細に説明する。なお、本実施形態に係る内部モデルのキャリブレーション方法が適用され得るロボットアーム装置10の制御方式は任意であってよく、下記<4.適用例>で説明する方式に限定されない。本実施形態に係るキャリブレーション方法は、一般的に内部モデルの概念を用いて駆動が制御されるロボット装置であれば、あらゆるロボット装置に対して適用することが可能である。
ロボットアーム装置10は、複数のリンクが複数の関節部によって連結されて構成される多リンク構造体であるアーム部を有し、当該アーム部を可動範囲内で駆動させることにより、当該アーム部の先端に設けられる先端ユニット(本実施形態では撮像部)の位置及び姿勢の制御を行う。
図1を参照すると、ロボットアーム装置10はアーム部120を備える。また、ロボットアーム装置10は、図示しない制御部(例えば、後述する図11に示すアーム制御部110)を更に備えてもよい。当該制御部は、例えばCPU(Central Processing Unit)等の各種のプロセッサによって構成され、ロボットアーム装置10の動作を統合的に制御するとともに、アーム部120の駆動を制御する機能を有する。制御装置20によって算出されたロボットアーム装置10の駆動を制御するための制御量に基づいて、当該制御部によってアーム部120を構成する各関節部の駆動が制御されることにより、アーム部120全体の駆動が制御されることとなる。なお、当該制御部は、各関節部にそれぞれ設けられ、各関節部の駆動をそれぞれ制御してもよい。
アーム部120は、複数のリンクが複数の関節部によって連結されて構成される多リンク構造体であり、上述した制御部からの制御によりその駆動が制御される。アーム部120は、関節部130及び撮像部140を有する。なお、アーム部120が有する複数の関節部130の機能及び構成は互いに同様であるため、図1では、それら複数の関節部130を代表して1つの関節部130の構成を図示している。
関節部130は、アーム部120においてリンク間を互いに回動可能に連結するとともに、上述した制御部からの制御によりその回転駆動が制御されることによりアーム部120を駆動する。関節部130は関節状態検出部132を有する。
関節状態検出部132は、関節部130の状態を検出する。ここで、関節部130の状態とは、関節部130の運動の状態を意味していてよい。例えば、関節部130の状態には、関節部130の回転角度、回転角速度、回転角加速度、発生トルク等の情報が含まれる。本実施形態においては、関節状態検出部132は、例えばエンコーダ及びトルクセンサ等の各種のセンサによって構成されており、関節部130の回転角度、並びに、関節部130の発生トルク及び外トルクを検出することができる。関節状態検出部132は、検出した関節部130の状態を制御装置20に送信する。
なお、図1では図示を省略しているが、関節部130は、関節部130を駆動させる機能を有する関節駆動部を更に有してもよい。当該関節駆動部は、関節部130に設けられるアクチュエータを構成するモータ等の駆動機構である。当該関節駆動部が所定の制御量に従って駆動することにより関節部130が回転駆動することとなる。関節駆動部は、上述した制御部によってその駆動が制御される。例えば、当該制御部からの指令に応じた電流量によって、関節駆動部を構成するモータが駆動されることとなる。
撮像部140は、アーム部120の先端に設けられる先端ユニットの一例であり、撮影対象の画像を取得する。具体的には、撮像部140は、カメラや顕微鏡、内視鏡等の各種の撮像装置によって構成される。例えば、撮像部140は、デジタルビデオカメラによって構成されており、撮影対象の画像を表す画像信号を取得することができる。撮像部140は、取得した画像信号を制御装置20に送信する。なお、撮像部140が取得した画像信号が、ディスプレイ等の表示装置(図示せず。)に送信され、当該画像信号に基づいて、当該表示装置に撮像部140によって撮影された撮像画像が表示されてもよい。
なお、ロボットアーム装置10では、例えば、撮像部140はアーム部120の先端に設けられる。図1では、撮像部140が複数の関節部130及び複数のリンクを介して最終段のリンクの先端に設けられる様子を、関節部130と撮像部140との間にリンクを模式的に図示することにより表現している。ただし、本実施形態はかかる例に限定されず、撮像部140はアーム部120のいずれかの部位に設けられればよく、その配置位置は必ずしも先端に限定されない。
以上、ロボットアーム装置10の機能及び構成について説明した。次に、制御装置20の機能及び構成について説明する。図1を参照すると、制御装置20は、記憶部220及び制御部230を有する。
記憶部220は、例えば磁気記憶装置や半導体記憶装置等のストレージ装置によって構成され、制御装置20によって処理される各種の情報を記憶する。本実施形態においては、記憶部220は、ロボットアーム装置10の内部モデルを記憶している。ここで、内部モデルとは、ロボットアーム装置10の駆動制御に用いられる制御モデルであり、制御対象であるアーム部120の位置及び姿勢を表す情報(幾何情報)を含むものである。また、本実施形態では、ロボットアーム装置10の内部モデルは、アーム部120の幾何情報とともに、撮像部140の焦点位置についての情報(焦点位置情報)を含んでいる。つまり、本実施形態では、内部モデルのキャリブレーションを行う際に、アーム部120の位置及び姿勢だけでなく、撮像部140の焦点位置まで含めたキャリブレーションが行われることとなる。
内部モデルでは、アーム部120の位置及び姿勢、並びに、撮像部140の焦点位置が、当該内部モデルにおける座標系(以下、第1の座標系とも呼称する。)に基づいて表現されており、アーム部120及び撮像部140の駆動は当該第1の座標系に従って記述されることとなる。従って、第1の座標系と実空間における座標系(以下、第2の座標系とも呼称する。)との間にずれが生じていると、例えばアーム部120が所望の位置に移動しなかったり、撮像部140の焦点位置が所望の点に位置しなかったりといった不都合が生じる可能性がある。内部モデルのキャリブレーションとは、第1の座標系と第2の座標系とのずれを補正する処理に対応している。
制御部230は、例えばCPU等の各種のプロセッサによって構成され、制御装置20の動作を統合的に制御するとともに、ロボットアーム装置10の内部モデルのキャリブレーションのための各種の処理を行う。また、制御装置20は、関節状態検出部132によって検出された関節部130の状態に基づいて、ロボットアーム装置10のアーム部120の駆動を制御するための各種の演算を行うことができる。ここでは、制御部230の機能の中でも、内部モデルのキャリブレーションに関する機能について詳しく説明する。
制御部230は、内部モデル情報取得部260及び内部モデル更新部270を有する。
内部モデル情報取得部260は、アーム部120及び撮像部140が所定の位置及び姿勢にある状態において、内部モデルを規定するための内部モデル情報を取得する。ここで、内部モデル情報は、内部モデルを規定し得る情報であり、例えばアーム部120の幾何情報や、撮像装置の焦点位置情報を含む。また、所定の位置及び姿勢とは、例えば撮像部140が実空間上の所定の点である基準点に向けられた状態であってよい。
内部モデル情報取得部260は、アーム部120及び撮像部140の位置及び姿勢が互いに異なる複数の状態において、互いに異なる複数の内部モデル情報を取得することができる。ここで、アーム部120及び撮像部140の位置及び姿勢が互いに異なる状態とは、例えば、特定の基準点に撮像部140が向けられた状態で、アーム部120及び撮像部140の位置及び姿勢が変化されることにより実現されてもよいし、互いに異なる複数の基準点に対して撮像部140が向けられることにより実現されてもよい。後述するが、本実施形態では、内部モデルのキャリブレーションを行う際に、内部モデル情報に基づいて、内部モデルを記述する所定の数式(内部モデル式)が作成される。当該内部モデル式は、第1の座標系と第2の座標系とのずれ量を未知数として含んでおり、アーム部120及び撮像部140の位置及び姿勢に対応した複数の内部モデル情報が取得されることにより、複数の内部モデル式によって形成される連立方程式が作成される。当該連立方程式を解き、その解を内部モデル式に代入することにより、内部モデルが更新される(キャリブレーションされる)こととなる。
内部モデル情報についてより具体的に説明する。本実施形態では、内部モデル情報として、アーム部120の幾何情報、撮像部140の焦点位置情報及び撮像部140の視野領域の位置ずれ量についての位置ずれ情報が取得される。ここで、撮像部140の視野領域の位置ずれ量とは、第1の座標系と第2の座標系との幾何的な位置ずれ量を示す指標であり、撮像部140の視野領域の、実空間における対応する領域との3次元的な位置ずれ量のことであってよい。本実施形態では、撮像部140が第2の座標系における所定の点である基準点に向けられた状態における内部モデル情報が取得される。撮像部140の視野領域は、第1の座標系に従って記述されるアーム部120及び撮像部140の位置及び姿勢に基づいて決定されるものであるから、例えば、撮像部140の視野領域の中心が基準点を向くようにアーム部120及び撮像部140の位置及び姿勢を調整した際の、撮像部140の視野領域の中心と基準点とのずれ量が、第1の座標系と第2の座標系との幾何的な位置ずれ量を示していると言える。
内部モデル情報取得部260は、上述したような各種の内部モデル情報を取得可能に構成される。例えば、内部モデル情報取得部260は、アーム状態取得部241、焦点位置情報取得部262及び位置ずれ情報取得部263を有する。
アーム状態取得部241は、アーム部120のアーム状態を取得することにより、アーム部120の幾何情報を取得する。ここで、アーム状態とは、アーム部120の運動の状態を意味しており、例えば、アーム状態には、アーム部120の位置、姿勢、速度、加速度、力等の情報が含まれる。アーム状態取得部241は、関節状態検出部132によって検出された関節部130の状態に基づいて、アーム部120のアーム状態を取得することができる。本実施形態では、アーム状態取得部241は、撮像部140が実空間上の所定の点である基準点に向けられた状態におけるアーム状態を取得し、当該アーム状態に含まれるアーム部120の幾何情報を、内部モデル情報として取得することができる。
焦点位置情報取得部262は、撮像部140の焦点位置情報を取得する。本実施形態では、焦点位置情報取得部262は、撮像部140が実空間上の所定の点である基準点に向けられた状態における撮像部140の焦点位置情報を、内部モデル情報として取得することができる。例えば、撮像部140の焦点位置情報は、撮像部140の焦点距離に基づいて取得され得る。本実施形態では、撮像部140から撮像部140の焦点距離についての情報が焦点位置情報取得部262に送信されることにより、撮像部140の焦点位置情報が取得されてよい。なお、当該焦点距離は、例えば、撮像部140の焦点を基準点に合わせた際における、撮像部140内の光学系の状態(例えば焦点調整用のレンズの位置等)に基づいて、撮像部140によって算出され得る。あるいは、撮像部140は、合焦時の光学系の状態についての情報を焦点位置情報取得部262に送信し、当該焦点距離の算出は焦点位置情報取得部262によって行われてもよい。
位置ずれ情報取得部263は、撮像部140の視野領域の位置ずれ量についての位置ずれ情報を取得する。本実施形態では、位置ずれ情報取得部263は、撮像部140が実空間上の所定の点である基準点に向けられた状態における撮像部140の視野領域の位置ずれ情報を、内部モデル情報として取得することができる。例えば、撮像部140の視野領域の位置ずれ情報は、撮像部140によって撮影される撮像画像に基づいて取得され得る。本実施形態では、撮像部140から撮像部140によって撮影された撮像画像についての情報が位置ずれ情報取得部263に送信されることにより、位置ずれ情報が取得されてよい。具体的には、位置ずれ情報取得部263は、撮像画像に対して適宜画像解析処理を行うことにより、例えば当該撮像画像の中心(すなわち視野領域の中心)と基準点との3次元的なずれ量を算出し、当該ずれ量を位置ずれ情報として取得することができる。なお、当該画像解析処理は、必ずしも位置ずれ情報取得部263によって行われなくてもよく、撮像部140によって行われてもよいし、他の任意の構成によって行われてもよい。
上述したように、内部モデル情報取得部260は、アーム部120及び撮像部140の位置及び姿勢が互いに異なる複数の状態において、互いに異なる複数の内部モデル情報を取得することができる。つまり、本実施形態では、アーム状態取得部241、焦点位置情報取得部262及び位置ずれ情報取得部263は、アーム部120及び撮像部140の位置及び姿勢が互いに異なる複数の状態において、アーム部120の幾何情報、撮像部140の焦点位置情報及び撮像部140の視野領域の位置ずれ情報を、それぞれ取得することができる。内部モデル情報取得部260(アーム状態取得部241、焦点位置情報取得部262及び位置ずれ情報取得部263)は、取得した内部モデル情報を、内部モデル更新部270に提供する。
内部モデル更新部270は、内部モデル情報取得部260によって取得された内部モデル情報を用いて内部モデルを更新する。具体的には、内部モデル更新部270は、まず、取得された内部モデル情報を、内部モデル式として表現する。上述したように、当該内部モデル式は、内部モデルを記述する式であり、第1の座標系と第2の座標系とのずれ量を未知数として含んだ方程式として表現されている。ここで、例えば、内部モデル情報が取得される際の基準点は、その座標(第2の座標系における座標)が既知の点として設定されており、当該基準点の座標についての情報は例えば記憶部220等の内部モデル更新部270によってアクセス可能な記憶領域に予め記憶されている。内部モデル更新部270は、当該基準点の座標についての情報に基づいて、第1の座標系と第2の座標系とのずれ量を未知数として含む内部モデル式を作成することができる。また、本実施形態では、内部モデル情報取得部260によって複数の内部モデル情報が取得され得るため、内部モデル更新部270は、複数の内部モデル式によって形成される連立方程式を作成することができる。
ここで、内部モデル式における未知数は、アーム部120の駆動軸に応じた数だけ存在し得る。具体的には、アーム部120を構成する各関節部130について、互いに直交する3方向(例えばx軸方向、y軸方向及びz軸方向)及びそれらの軸周りの回転方向に対応する6つの未知数が設定され得る。また、アーム部120に対する撮像部140の姿勢が制御可能に構成されていれば、撮像部140の駆動軸である互いに直交する3方向に対応する3つの未知数が設定され得る。更に、各リンクのx軸方向、y軸方向及びz軸方向へのたわみも未知数として設定されてもよい。具体的な内部モデル式の形や、未知数の数は、対象としている内部モデルに応じて決定され得る。本実施形態では、内部モデル情報取得部260は、アーム部120の構成に応じて、内部モデル式における未知数を求めるために必要な数(すなわち未知数の数以上)の内部モデル式を作成可能なだけの内部モデル情報を取得する。これにより、内部モデル更新部270は、未知数について解くことが可能なだけの数の内部モデル式に作成し、連立方程式を立てることができ、当該未知数を解析的に又は数値計算により近似的に算出することができる。
内部モデル更新部270は、算出した未知数(連立方程式から得られた解)を用いて、内部モデルを更新する。具体的には、内部モデル式の未知数に連立方程式から得られた解を代入し、当該内部モデル式によって内部モデルを構築する。連立方程式から得られる解は、内部モデルにおける第1の座標系と実空間における第2の座標系との位置ずれ量を表すものであるため、当該解を用いて内部モデルを更新することにより、内部モデルにおける位置ずれ量を補正すること、すなわちキャリブレーションを行うことが可能となる。
以上、図1を参照して、本開示の一実施形態に係るロボットアーム制御システムの構成について説明した。以上説明したように、本実施形態では、ロボットアーム装置10の内部モデルとして、撮像部140の焦点位置情報まで含んだ内部モデルが用意される。そして、その内部モデルをキャリブレーションする際に、当該焦点位置情報まで含めてキャリブレーションが行われる。従って、ロボットアーム装置単体ではなく、撮像部140が内包し得る幾何的な誤差まで含めて、内部モデルをキャリブレーションすることができるため、撮像部の焦点位置をより高精度に制御することが可能となる。また、ロボットアーム装置10と撮像部140とが同一の内部モデルとして表現されており、内部モデルをキャリブレーションする際には、これらが一体的にキャリブレーションされることとなるため、例えばキャリブレーション時に撮像部140をロボットアーム装置10から取り外す等の作業を行う必要がなく、より効率的にキャリブレーションを行うことが可能となる。
なお、上記の実施形態では、駆動部としてアーム部120を備えるロボットアーム装置10を例に挙げて説明を行ったが、本実施形態はかかる例に限定されない。本実施形態は、駆動部に撮像部が設けられる構成を有するロボット装置において、当該駆動部の構成だけでなく、撮像部の焦点位置まで含んだ内部モデルを構築し、撮像部の焦点位置まで含めて当該内部モデルのキャリブレーションを行うものである。従って、本実施形態における内部モデルのキャリブレーションの手法は、撮像部を有し、内部モデルの概念を用いてその駆動が制御されるロボット装置であれば、あらゆるロボット装置に対して適用可能である。
また、本実施形態に係るロボットアーム装置10は、その用途も例えば医療用に限定されない。本実施形態では、撮像部の焦点位置まで含めて内部モデルのキャリブレーションを行うことにより、駆動制御時に撮像装置の焦点位置を高精度に制御することが可能となる。従って、例えば工業分野において、製品の検品や外観検査等を行うために、当該製品を詳細に観察する作業に用いられるロボットアーム装置等、他の分野において用いられるロボット装置に対しても、本実施形態における内部モデルのキャリブレーションの手法は、好適に適用され得る。
なお、以上説明した、本実施形態に係るロボットアーム制御システム2の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
また、上述のような本実施形態に係るロボットアーム制御システム2の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
<2.キャリブレーション方法>
次に、図2を参照して、本実施形態に係るキャリブレーション方法の処理手順について説明する。図2は、本実施形態に係るキャリブレーション方法の処理手順の一例を示すフロー図である。なお、図2のフロー図に示す各処理は、例えば図1に示すロボットアーム制御システム2の機能構成によって実行され得る。
図2を参照すると、本実施形態に係るキャリブレーション方法では、まず、アーム部120が移動され、撮像部140が実空間上の所定の点である基準点に向けられる。そして、撮像部140の焦点位置が、基準点に合わせられる(ステップS101)。アーム部を移動させる処理は、例えば所定の表示装置に表示される撮像部140によって撮影された画像を参照しながら、操作者の手作業によって行われてもよいし、所定の制御プログラムに従ってアーム部120が駆動されることにより行われてもよい。また、例えば、撮像部140の焦点位置を基準点に合わせる処理は、撮像部140によって撮影された画像を参照しながら操作者の手作業によって行われてもよいし、撮像部140がオートフォーカス(AF)機能を有する場合であれば、当該AF機能を利用して行われてもよい。
次に、撮像部140が基準点に向けられた状態で、アーム部120の幾何情報、撮像部140の焦点位置情報及び撮像部140の視野領域の位置ずれ情報が取得される(ステップS103)。当該処理は、例えば図1に示す内部モデル情報取得部260(アーム状態取得部241、焦点位置情報取得部262及び位置ずれ情報取得部263)によって行われる処理に対応している。
次に、取得された内部モデル情報に基づいて、内部モデルを記述する内部モデル式が作成される(ステップS105)。当該内部モデル式は、内部モデルにおける第1の座標系と、実空間における第2の座標系とのずれ量を未知数として含み得る。ステップS101及びステップS103において、アーム部120及び撮像部140の位置及び姿勢が互いに異なる複数の状態において、互いに異なる複数の内部モデル情報が取得されている場合には、これら複数の内部モデル情報に基づいて、複数の内部モデル式からなる連立方程式が作成されることとなる。
次に、作成された内部モデル式が、例えば記憶部220等の所定の記憶装置に保存される。また、当該記憶装置が参照され、これまでに作成された方程式(内部モデル式)の数が確認される(ステップS107)。
次に、確認された方程式の数に対して、所定の数の方程式が作成されたかが判定される(ステップS109)。ここで、所定の数とは、方程式を解くために必要なだけの数(すなわち、方程式に含まれる未知数の数以上の任意の数)であってよい。方程式の数が足りない場合には、ステップS101に戻り、ステップS101〜ステップS107までの処理が繰り返し行われる。これにより、互いに異なる複数のアーム部120及び撮像部140の位置及び姿勢に対応する複数の内部モデル情報が取得され、これら複数の内部モデル情報に対応する複数の内部モデル式が作成されることとなる。
ステップS109において、所定の数の方程式が作成されたと判定された場合には、ステップS111に進み、これらの方程式からなる連立方程式の解が算出される。当該処理は、連立方程式を解く際に用いられる各種の公知のアルゴリズムを用いて、解析的に又は数値解析的に行われてよい。
最後に、得られた解が内部モデル式に代入されることにより、第1の座標系と第2の座標系とのずれ量をなくすように内部モデルが更新され、内部モデルがキャリブレーションされることとなる(ステップS113)。なお、ステップS105〜ステップS113に示す処理は、例えば図1に示す内部モデル更新部270によって行われてよい。
以上、図2を参照して、本実施形態に係るキャリブレーション方法の処理手順について説明した。
<3.キャリブレーション方法の具体例>
次に、本実施形態に係るキャリブレーション方法の具体例について説明する。上述したように、内部モデル情報を取得する際に撮像部140が向けられる基準点は、座標が既知である実空間上の所定の点として設定され得る。当該基準点は、ロボットアーム装置10との位置関係が明確な点であればどのように設定されてもよい。
内部モデルをキャリブレーションする際には、アーム部120及び撮像部140の位置及び姿勢を変えながら、複数の内部モデル情報が取得され得る。例えば、ロボットアーム装置10の周囲の空間上に複数の基準点を設定しておき、撮像部140をそれらの点に順次向けながら、各基準点に対して内部モデル情報を取得することも可能である。しかしながら、このような方法では、事前に基準点を設定する際の手間が大きく、内部モデル情報を取得する際のアーム部120の操作量も大きいため、作業の負荷が高くなってしまう可能性がある。ここでは、より効率的にキャリブレーションを行う方法の一例として、所定の冶具を用いて当該基準点を設定する方法について説明する。
なお、以下に説明する具体例においては、本実施形態に係るロボットアーム装置10の駆動制御によって実現される動作の一つである、ピボット動作と呼ばれる動作を利用している。ピボット動作は、アーム部120に設けられた撮像部140が、3次元空間上の所定の点(以下、ピボット中心点とも呼称する。)を向いた状態で、当該ピボット中心点を頂点とした円錐体面上を移動する動作である。また、ピボット動作では、ピボット中心点と撮像部140との距離を固定することにより、撮像部140がピボット中心点を中心とした半球上を移動するように動作させることも可能である。更に、ピボット動作では、ピボット中心点を撮像装置の光軸上に固定したまま、ピボット中心点と撮像装置との光軸方向の距離だけを変化させる動作を行うことも可能となる。ピボット動作を用い、ピボット中心点をキャリブレーションの基準点とすることにより、内部モデル情報をより効率的に取得することが可能となる。なお、このようなピボット動作を実現するための具体的なロボットアーム装置の制御方法については、下記<4.適用例>で詳しく説明するため、ここでは詳細な説明を省略する。
(3−1.アーム部に取り付けられる冶具を用いたキャリブレーション方法)
図3及び図4を参照して、アーム部に取り付けられる冶具(取り付け冶具)を用いたキャリブレーション方法について説明する。図3及び図4は、アーム部に取り付けられる冶具を用いたキャリブレーション方法について説明するための説明図である。
当該具体例におけるキャリブレーション方法では、図3に示すように、ロボットアーム装置310のアーム部320の先端に冶具331が設けられる。冶具331は、所定の方向に突出した形状を有しており、冶具331の先端332までの長さは、アーム部320の先端に設けられる撮像装置330の所定の焦点距離における差動距離(WD:Work Distance)と略一致している。ここでは、一例として、冶具331の先端332までの長さが、焦点距離が200(mm)における撮像装置330のWD(焦点距離200のWD)と一致するように調整されているとする。また、冶具331は、その先端332の位置が、撮像装置330の視野領域の中心340と略一致するように、アーム部320に取り付けられている。つまり、内部モデルのキャリブレーションが適切に行われた状態で、撮像装置330の焦点距離が200(mm)に合わせられた場合には、その焦点位置が、冶具331の先端332と一致することとなる。
ここで、撮像装置330と冶具331とは、ともにアーム部320の先端に取り付けられるが、冶具331は、撮像装置330に取り付けられるのではなく、あくまでアーム部320に取り付けられることが好ましい。冶具331が撮像装置330に取り付けられると、冶具331が取り付けられたこと自体が撮像装置330の駆動や光学系に影響を及ぼす可能性があり、正確な内部モデル情報が取得されない恐れがあるからである。ただし、撮像装置330の筐体に十分な強度があり、冶具331が撮像装置330の駆動や光学系に及ぼす影響が十分小さい場合には、冶具331は撮像装置330に取り付けられてもよい。
ロボットアーム装置310は、基台であるベース部350と、ベース部350から延伸するアーム部320を備える。また、アーム部320は、複数のリンク322が複数の関節部321によって連結されて構成される。アーム部320、リンク322及び関節部321は、図1に示すアーム部120、リンク及び関節部130に対応するものである。図3に示す例では、ロボットアーム装置310のアーム部320は、6つの関節部321を有し、6自由度を有するように構成されている。図3では、各関節部321が有する6軸の運動方向(互いに直交する3軸方向及びこれら3軸周りの回転方向)を模式的に矢印で図示している。また、本実施形態では、冶具331の先端332も、その姿勢を3軸方向に変化させることができる。
冶具331を用いたキャリブレーション方法では、まず、アーム部320の先端に冶具331が取り付けられた状態で、アーム部320の幾何情報及び冶具331の先端332の位置を示す幾何情報を取得する。例えば、冶具331の先端332を他の冶具を用いて空間上の所定の点に固定した状態(これにより、当該他の冶具を用いてピボット動作が実現されることとなる)で、アーム部320の位置及び姿勢を変化させながら、複数組のアーム部320の幾何情報及び冶具331の先端332の位置を示す幾何情報を取得する。これらの情報の取得は、例えば上述した図1に示すアーム状態取得部241によって行われてよい。これにより、アーム部320の各関節部321の6軸分の座標と、冶具331の先端332の座標が算出され得る。
ここで、上述したように、例えば冶具331の先端332までの長さは、撮像装置330における焦点距離200(mm)におけるWDに対応するように調整されている。そこで、撮像装置330の焦点距離を200(mm)に合わせた状態で、撮像装置330の焦点位置情報と、視野領域の中心340と冶具331の先端332との位置ずれ情報と、が取得される。当該位置ずれ情報は、例えば、撮像装置330によって撮影された撮像画像に対する画像解析から取得することができる。撮像装置330の視野領域の中心340と冶具331の先端332との位置ずれ量は、内部モデルにおける撮像装置330の焦点距離200(mm)での焦点を原点とする座標系(焦点座標(WD200))と、実空間における冶具331の先端332を原点とする座標系との位置ずれ量であると言える。これらの情報の取得は、例えば上述した図1に示す焦点位置情報取得部262及び位置ずれ情報取得部263によって行われてよい。なお、撮像装置330の焦点距離を200(mm)に合わせた場合、当該焦点距離に対応するWDと、冶具331の先端332までの長さとの間には微小なずれが存在し得る。WDの微小なずれは撮像装置330のAF機能によって補正可能であるため、当該AF機能を用いて冶具331の先端332に焦点を合わせた状態で、撮像装置330の焦点位置情報と、視野領域の中心340と冶具331の先端332との位置ずれ情報と、が取得されてもよい。
取得したこれらの情報に基づいて、ロボットアーム装置10は、焦点距離200(mm)の状態での内部モデルのキャリブレーションを行うことができる。当該処理は、例えば上述した図1に示す内部モデル更新部270によって行われてよい。
ここで、当該キャリブレーションにより、焦点距離200(mm)の状態では撮像装置330の焦点位置と冶具331の先端332との位置ずれは補正されることとなるが、撮像装置330の焦点距離を変化させた場合に、必ずしも撮像装置330の光軸上に冶具331の先端332が位置するとは限らない。そこで、撮像装置330の焦点距離を変化させ、他の焦点距離においても光軸の位置ずれ量の補正を行う。
具体的には、アーム部320から冶具331を取り外し、冶具331の先端332が存在していた点(これは、キャリブレーション実行後における焦点距離200(mm)の状態での撮像装置330の焦点位置(視野領域の中心340)でもある。)をピボット動作のピボット中心点として設定する。このとき、実空間上のピボット中心点に対応する点には、その位置を示す目印となる冶具である測定基準子334を配置しておく(図4(a))。図4(a)に示す状態では、キャリブレーションが行われたことにより、ピボット中心点と測定基準子334とは一致している。
この状態で、撮像装置330にピボット動作を行わせるように、アーム部320の駆動を制御し、ピボット中心点を撮像装置330の光軸上に固定したまま、ピボット中心点と撮像装置330との光軸方向の距離を所定の焦点距離の分だけ変化させる。図4は、一例として、焦点距離が400(mm)に対応する位置まで撮像装置330を移動させた場合を図示している(図中(b))。理想的には、撮像装置330を移動させた後にも、測定基準子334が撮像装置330の光軸上に位置することが望ましいが、実際には、光軸と測定基準子334との間にはずれが生じ得る。また、同じく、理想的には、移動後の撮像装置330によって測定基準子334に焦点を合わせた際の焦点距離は400(mm)であることが望ましいが、実際には、設定値である400(mm)と移動後の焦点距離との間にはずれが生じ得る。図4では、これらのずれを、測定基準子334に基づく座標系(固定座標)と焦点座標(WD400)とのずれ量として模式的に図示している。図4(b)に示す状態で、例えば撮像装置330によって撮影された撮像画像を解析することにより、視野領域の中心340と測定基準子334との位置ずれ量と、撮像装置330の焦点距離についての情報と、を取得することができる。ロボットアーム装置10は、取得した位置ずれ量についての情報と、焦点距離についての情報とを、撮像装置330の光軸のずれ量を表すパラメータとして用いることにより、焦点距離400(mm)の状態での内部モデルのキャリブレーション(光軸のずれの補正)を行うことができる。
同様の手順により、ピボット動作を用いて撮像装置330を光軸方向に移動させながら、他の焦点距離においても内部モデルのキャリブレーションを行うことができる。図4では、一例として、焦点距離が600(mm)に対応する位置まで撮像装置330を移動させた場合において、同様に、撮像装置330の視野領域の中心340と測定基準子334との位置ずれ量が取得される様子を図示している(図中(c))。そして、同様に、取得した位置ずれ量についての情報を、撮像装置330の光軸のずれ量を表すパラメータとして用いることにより、焦点距離600(mm)の状態での内部モデルのキャリブレーション(光軸のずれの補正)を行うことができる。
図3及び図4に示す例では、焦点距離が200(mm)、400(mm)、600(mm)のときについてのみ図示しているが、実際には、使用中に撮像装置330が取り得る焦点距離に対応する範囲内において撮像装置330が適宜移動され、範囲内のいくつかの焦点距離に対して同様の処理が適宜行われてよい。これにより、撮像装置330の焦点位置(光軸のずれ)まで含めたロボットアーム装置10のキャリブレーションが行われることとなる。
以上、図3及び図4を参照して、アーム部に取り付けられる冶具を用いたキャリブレーション方法について説明した。
(3−2.平板状の冶具を用いたキャリブレーション方法)
図5を参照して、平板状の冶具(平板冶具)を用いたキャリブレーション方法について説明する。図5は、平板状の冶具を用いたキャリブレーション方法について説明するための説明図である。
当該具体例におけるキャリブレーション方法では、図5に示すように、ロボットアーム装置のアーム部360の先端に設けられた撮像装置370によって、平板冶具380を撮影することにより、キャリブレーションが行われる。平板冶具380の平面内の一点には、測定の基準となる測定基準子381が、撮像装置370によって視覚的に認識され得る目印として設けられている。平板冶具380は、実空間上の所定の位置に固定されており、すなわち、測定基準子381は実空間上の基準点として設定され得る。
図5では、簡単のため、ロボットアーム装置の構成のうち、アーム部360のみを主に図示している。図5では図示を省略しているが、実際には、基台等の台座の上にアーム部360が設置されることによりロボットアーム装置が構成され得る。ロボットアーム装置のアーム部360は、複数のリンク362が複数の関節部361によって連結されて構成される。アーム部360、リンク362及び関節部361は、図1に示すアーム部120、リンク及び関節部130に対応するものである。
図5を参照して、平板冶具380を用いたキャリブレーション方法の詳細について説明する。当該キャリブレーション方法では、まず、撮像装置370が平板冶具380の測定基準子381を向くようにアーム部360の位置及び姿勢が調整される。そして、撮像装置370の焦点位置を測定基準子381に合わせた状態で、測定基準子381をピボット中心点として設定し、撮像装置370にピボット動作を行わせる。ピボット動作によれば、理想的には、常に撮像装置370の光軸上にピボット中心点である測定基準子381が位置している(すなわち、視野領域の中心と測定基準子381とが一致している)はずであるが、実際には、キャリブレーションが行われていない場合には、内部モデルとして認識されているピボット中心点と、実空間上での測定基準子381との間にずれが生じており、撮像装置370の視野領域の中心と測定基準子381との間にずれが生じ得る。
従って、キャリブレーションを行うために、ピボット動作を行い、アーム部360及び撮像装置370の位置及び姿勢を変化させながら、内部モデル情報(アーム部360の幾何情報、撮像装置370の焦点位置情報及び撮像装置370の視野領域の位置ずれ情報)を順次取得する。当該内部モデル情報の取得の処理は、例えば上述した図1に示す内部モデル情報取得部260によって行われてよい。
ここで、撮像装置370の視野領域の位置ずれ情報は、撮像装置370によって撮影された撮像画像を解析することにより取得され得る。図5では、一例として、互いに異なる2つの姿勢(第1の姿勢、第2の姿勢)における、撮像装置370によって撮影された撮像画像の様子を模式的に図示している。図5に示すように、撮像画像には、平板冶具380及び測定基準子381が写り込んでいるため、当該撮像画像に基づいて、視野領域371の中心372と、平板冶具380の測定基準子381との3次元的な位置ずれ量が測定され得る。
キャリブレーションを行うために必要な数だけの内部モデル情報が取得されるまで(すなわち、所定の数の方程式(内部モデル式)が作成されるまで)、アーム部360及び撮像装置370の位置及び姿勢を様々に変えながら、内部モデル情報の取得が行われる。そして、取得された内部モデル情報に基づいて、ロボットアーム装置の内部モデルのキャリブレーションが行われる。当該処理は、例えば上述した図1に示す内部モデル更新部270によって行われてよい。
以上、図5を参照して、平板状の冶具(平板冶具)を用いたキャリブレーション方法について説明した。
以上説明したように、冶具331、380を用いるとともに、ピボット動作を用いることにより、例えば空間上に位置する任意の点を基準点としてキャリブレーションを行う場合に比べて、操作者の負担がより少なく、より容易にキャリブレーションを行うことが可能となる。従って、より効率的なキャリブレーション作業が実現され得る。
<4.適用例>
本実施形態では、以上説明した手法によってキャリブレーションが行われた内部モデルを用いて、ロボットアーム装置10の駆動制御が行われ得る。以下では、本実施形態に係るロボットアーム装置10の駆動を制御するための、ロボットアーム制御システムの構成や、ロボットアーム制御方法の処理手順について説明する。ここで、本実施形態に係るロボットアーム装置10は、医療用のロボットアーム装置として好適に適用することが可能である。そこで、以下では、医療用ロボットアーム装置を例に挙げて、ロボットアーム装置10の駆動制御の一実施形態について説明を行う。
(4−1.医療用ロボットアーム装置についての検討)
まず、本開示をより明確なものとするために、本発明者らが以下に説明する実施形態に想到するに至った背景について説明する。
近年、工業分野においては、より正確により素早く作業を行うために、ロボット装置が広く用いられている。ここで、ロボット装置及び各関節部の制御方式としては、位置制御と力制御とが知られている。位置制御では、関節部のアクチュエータに、例えば角度等の指令値が与えられ、当該指令値に追随するように関節部の駆動が制御される。一方、力制御では、ロボット装置全体として作業対象に加えるべき力の目標値が与えられ、当該目標値が示す力を実現するように関節部の駆動(例えば関節部によって発生されるトルク)が制御される。
一般的に、制御上の簡便さやシステムの構成のしやすさから、位置制御によって駆動されるロボット装置が広く用いられている。しかしながら、位置制御は、外力に柔軟に応じることが困難であるため、俗に「硬い制御」と呼ばれることがあり、多様な外界との物理インタラクション(例えば、対人物理インタラクション)を行いながらタスクを遂行するロボット装置には適していない。一方、力制御は、システム構成は複雑化する反面、力オーダーでの「柔らかい制御」が実現できるため、特に対人物理インタラクションを行うロボット装置に適した制御方法であり、よりユーザビリティに優れた制御方法と言える。
例えば、力制御が適用されたロボット装置の一例としては、本願出願人と同一出願人による先行出願である「特開2010−188471号公報」を参照することができる。当該特許文献には、対向する2輪の車輪からなる移動機構と複数の関節部を有する腕部を備えたロボット装置において、当該車輪及び当該関節部の駆動を全体として協調させて制御する(全身協調制御を行う)ロボット装置が開示されている。
一方、近年、医療分野においては、各種の施術(例えば、手術や検査)を行う際に、アーム部の先端に様々な医療用のユニット(先端ユニット)が設けられたバランス型アーム(支持アームとも呼称する。)を用いる試みが行われている。例えば、バランス型アームのアーム部の先端に顕微鏡や内視鏡、カメラ等の撮像機能を有する様々な撮像装置を設け、施術者(ユーザ)が当該撮像装置によって撮影された術部の画像を観察しながら各種の施術を行う方法が提案されている。
しかしながら、バランス型アームは、アーム部を移動させた際の力の均衡を取るためのカウンターバランス用ウェイト(カウンターウェイト又はバランサーとも呼称する。)を備える必要があるため、装置が大型化する傾向がある。施術時の作業空間の確保の観点からは、施術に用いられる装置にはより一層の小型化が求められており、一般的に提案されているバランス型アームではこのような要請に応えることが困難であった。また、バランス型アームにおいては、アーム部の駆動の一部のみ、例えば先端ユニットを平面上(2次元上)で移動させるための2軸の駆動のみが電動駆動となっており、アーム部及び先端ユニットの移動には施術者自身や周囲の医療スタッフによる手動での位置決めが必要となる。従って、一般的なバランス型アームでは、撮影時の安定性(例えば先端ユニットの位置決めの精度や制振等)の確保や、例えば視点を患者の体の所定の部位に固定した状態で様々な方向から観察する等の観察の自由度の確保が困難であった。
特に、アーム部に取り付けられた撮像装置によって術部を観察する際には、視点を術部に固定したまま、異なる距離や異なる角度から当該術部を観察したいという要望がある。このような観察は、撮像装置にピボット動作を行わせることにより実現され得るが、バランス型アームによってピボット動作を行うためには、上記特許文献1に記載されているような複雑な機械的構成が必要となり、高い操作性を得ることは難しい。
このような状況に鑑みて、バランス型アームに代わる装置として、位置制御によって駆動が制御される医療用のロボットアーム装置も提案されている。しかしながら、施術の更なる効率化及びユーザの負担軽減のために、ロボットアーム装置の駆動制御には、ユーザによってアーム部及び先端ユニットとして設けられる撮像ユニットの位置や姿勢をより直感的に制御することができる、より高い操作性が求められていた。位置制御によって駆動が制御されるロボットアーム装置では、このようなユーザの要望に応えることが困難であった。
そこで、より安定性が高く、より操作性の高いアーム部の駆動制御を行うことが可能なロボットアーム装置を実現することにより、ユーザの負担をより軽減することが望まれていた。また、医療用に用いられるという観点から、ロボットアーム装置には、以下のような性能が求められる。
図6を参照して、本開示の一実施形態に係るロボットアーム装置が医療用に用いられる場合の一適用例について説明するとともに、医療用ロボットアーム装置に求められる諸性能について説明する。図6は、本開示の一実施形態に係るロボットアーム装置が医療用に用いられる場合の一適用例について説明するための説明図である。
図6は、本実施形態に係るロボットアーム装置を用いた施術の様子を模式的に表している。具体的には、図6を参照すると、施術者(ユーザ)520である医師が、例えばメス、鑷子、鉗子等の手術用の器具521を使用して、施術台530上の施術対象(患者)540に対して手術を行っている様子が図示されている。なお、以下の説明においては、施術とは、手術や検査等、ユーザ520である医師が施術対象540である患者に対して行う各種の医療的な処置の総称であるとする。また、図6に示す例では、施術の一例として手術の様子を図示しているが、ロボットアーム装置510が用いられる施術は手術に限定されず、他の各種の施術、例えば内視鏡を用いた検査等であってもよい。
施術台530の脇には本実施形態に係るロボットアーム装置510が設けられる。ロボットアーム装置510は、基台であるベース部511と、ベース部511から延伸するアーム部512を備える。アーム部512は、複数の関節部513a、513b、513cと、関節部513a、513bによって連結される複数のリンク514a、514bと、アーム部512の先端に設けられる撮像ユニット515を有する。図6に示す例では、簡単のため、アーム部512は3つの関節部513a〜513c及び2つのリンク514a、514bを有しているが、実際には、アーム部512及び撮像ユニット515の位置及び姿勢の自由度を考慮して、所望の自由度を実現するように関節部513a〜513c及びリンク514a、514bの数や形状、関節部513a〜513cの駆動軸の方向等が適宜設定されてよい。
関節部513a〜513cは、リンク514a、514bを互いに回動可能に連結する機能を有し、関節部513a〜513cの回転が駆動されることにより、アーム部512の駆動が制御される。ここで、以下の説明においては、ロボットアーム装置510の各構成部材の位置とは、駆動制御のために規定している空間における位置(座標)を意味し、各構成部材の姿勢とは、駆動制御のために規定している空間における任意の軸に対する向き(角度)を意味する。また、以下の説明では、アーム部512の駆動(又は駆動制御)とは、関節部513a〜513cの駆動(又は駆動制御)、及び、関節部513a〜513cの駆動(又は駆動制御)を行うことによりアーム部512の各構成部材の位置及び姿勢が変化される(変化が制御される)ことをいう。
アーム部512の先端には先端ユニットとして各種の医療用器具が接続される。図6に示す例では、先端ユニットの一例としてアーム部512の先端に撮像ユニット515が設けられている。撮像ユニット515は、撮影対象の画像(撮影画像)を取得するユニットであり、例えば動画や静止画を撮影できるカメラ等である。図6に示すように、アーム部512の先端に設けられた撮像ユニット515が施術対象540の施術部位の様子を撮影するように、ロボットアーム装置510によってアーム部512及び撮像ユニット515の姿勢や位置が制御される。なお、アーム部512の先端に設けられる先端ユニットは撮像ユニット515に限定されず、各種の医療用器具であってよい。当該医療用器具としては、例えば、内視鏡や顕微鏡、上述した撮像ユニット515等の撮像機能を有するユニットや、各種の施術器具、検査装置等、施術に際して用いられる各種のユニットが挙げられる。このように、本実施形態に係るロボットアーム装置510は、医療用器具を備えた医療用ロボットアーム装置であると言える。また、アーム部512の先端に、2つの撮像ユニット(カメラユニット)を有するステレオカメラが設けられ、撮像対象を3次元画像(3D画像)として表示するように撮影が行われてもよい。なお、先端ユニットとして、施術部位を撮影するための撮像ユニット515や当該ステレオカメラ等のカメラユニットが設けられるロボットアーム装置510のことをビデオ顕微鏡用ロボットアーム装置とも呼称する。
また、ユーザ520と対向する位置には、モニタやディスプレイ等の表示装置550が設置される。撮像ユニット515によって撮影された施術部位の撮影画像は、表示装置550の表示画面に表示される。ユーザ520は、表示装置550の表示画面に表示される施術部位の撮影画像を見ながら各種の処置を行う。
このように、本実施形態においては、医療分野において、ロボットアーム装置510によって施術部位の撮影を行いながら手術を行うことが提案される。ここで、手術を含む各種の施術においては、より施術を効率的に行うことにより、ユーザ520及び患者540の疲労や負担を軽減することが求められる。このような要求を満たすために、ロボットアーム装置510には、例えば以下のような性能が求められると考えられる。
まず、1点目として、ロボットアーム装置510には、手術における作業空間を確保することが求められる。ユーザ520が施術対象540に対して各種の処置を行っている最中に、アーム部512や撮像ユニット515が施術者の視界を妨げたり、処置を行う手の動きを妨げたりすると、手術の効率の低下につながる。また、図6では図示していないが、実際の手術現場では、ユーザ520に器具を渡したり、患者540の各種のバイタルサインを確認したりといった、様々なサポート作業を行う複数の他の医師や看護師等がユーザ520及び患者540の周囲にいることが一般的であり、また、当該サポート作業を行うための他の装置等が存在するため、手術環境は煩雑である。従って、ロボットアーム装置510は、より小型であることが望ましい。
次いで、2点目として、ロボットアーム装置510には、撮像ユニット515を移動させる際の高い操作性が求められる。例えば、手術を行う部位や手術の内容によっては、ユーザ520には、施術部位に対して処置を行っている最中に、同じ施術部位を様々な位置、角度から観察したいという要求がある。施術部位を観察する角度を変えるには、撮像ユニット515の施術部位に対する角度を変更する必要があるが、その際、撮像ユニット515の撮影方向は施術部位に固定されたまま(すなわち、同一の部位を撮影したまま)、撮影する角度だけが変化することがより望ましい。従って、例えば、撮像ユニット515の撮影方向が施術部位に固定された状態で、撮像ユニット515が施術部位を頂点とした円錐の面内を移動する、当該円錐の軸を旋回軸とした旋回動作(ピボット動作)のような、より自由度の高い操作性がロボットアーム装置510に求められていた。なお、撮像ユニット515の撮影方向が所定の施術部位に固定されることから、ピボット動作はポイントロック動作とも呼ばれる。
また、撮像ユニット515の位置及び角度を変化させるためには、例えばユーザ520が手動でアーム部512を動かすことによって、撮像ユニット515を所望の位置及び角度に動かす方法が考えられる。従って、撮像ユニット515の移動や上述したピボット動作等が、例えば片手でも容易に行える操作性があることが望ましい。
また、手術時には、例えばユーザ520が両手で処置を行いながら、撮像ユニット515によって撮影される撮影画像の撮影中心を、処置を行っている部位から別の部位(例えば次の処置を行う部位)に移動させたいという要求も考えられる。従って、撮像ユニット515の位置及び姿勢を変化させる際に、上述したような手動によってアーム部512の駆動を制御する方法だけではなく、例えばペダル等の入力部からの操作入力によってアーム部512の駆動を制御する方法のような、多様なアーム部512の駆動方法が求められる。
このように、2点目の性能として、ロボットアーム装置510には、例えば上述したピボット動作や手動による容易な移動を実現する、よりユーザ520の直感や要望に合った高い操作性が求められる。
最後に、3点目として、ロボットアーム装置510には、アーム部512の駆動制御における安定性が求められる。アーム部512の駆動制御に対する安定性とは、アーム部512を駆動した際の先端ユニットの位置及び姿勢の安定性のことであってよい。また、アーム部512の駆動制御に対する安定性には、アーム部512を駆動した際の先端ユニットのスムーズな移動や振動の抑制(制振)も含まれる。例えば、図6に示す例のように先端ユニットが撮像ユニット515である場合に、もしも撮像ユニット515の位置や姿勢が安定しないと、表示装置550の表示画面に表示される撮影画像が安定せず、ユーザに不快感を与えかねない。特に、ロボットアーム装置510が手術に用いられる際には、先端ユニットとして2つの撮像ユニット(カメラユニット)を有するステレオカメラが設けられ、当該ステレオカメラによる撮影画像に基づいて生成される3次元画像(3D画像)が表示装置550に表示される使用方法が想定され得る。このように3D画像が表示される場合に、当該ステレオカメラの位置や姿勢が不安定であると、ユーザのいわゆる3D酔いを誘発する可能性がある。また、手術を行う部位や手術の内容によっては、撮像ユニット515によって撮影される観察範囲はφ15mm程度にまで拡大されることがある。このように撮像ユニット515が狭い範囲を拡大して撮影している場合には、撮像ユニット515の僅かな振動が撮像画像の大きな揺れやブレとなって表れる。従って、アーム部512及び撮像ユニット515の駆動制御には、許容範囲1mm程度の高い位置決め精度が要求される。このように、アーム部512の駆動制御においては、高精度の応答性と高い位置決め精度が求められる。
本発明者らは、上記の3つの性能の観点から、一般的な既存のバランス型アームや位置制御によるロボットアーム装置について検討を行った。
まず、1点目の手術の作業空間の確保に関しては、一般的なバランス型アームでは、通常、アーム部を移動させた際の力の均衡を取るためのカウンターバランス用ウェイト(カウンターウェイト又はバランサーとも呼称する。)がベース部の内部等に設けられるため、バランス型アームの装置の大きさを小型化することが難しく、当該性能を満たしているとは言い難い。
また、2点目の高い操作性に関しては、一般的なバランス型アームでは、アーム部の駆動の一部のみ、例えば撮像ユニットを平面上(2次元上)で移動させるための2軸の駆動のみが電動駆動となっており、アーム部及び撮像ユニットの移動には手動による位置決めが必要となるため、高い操作性が実現できるとは言い難い。また、一般的な位置制御によるロボットアーム装置において、アーム部の駆動の制御、すなわち撮像ユニットの位置及び姿勢の制御に用いられる位置制御は、外力に柔軟に応じることが困難であるため、俗に「硬い制御」と呼ばれることがあり、要求されているようなユーザの直感に合った操作性を実現するには適していない。
また、3点目のアーム部の駆動制御における安定性に関しては、一般的に、アーム部の関節部には、摩擦や慣性等のモデル化することが困難な因子が存在する。一般的なバランス型アームや位置制御によるロボットアーム装置においては、関節部の駆動制御においてこれらの因子が外乱となって表れてしまうことにより、理論上適切な制御値(例えば関節部のモータに印加する電流値)を与えた場合であっても所望の駆動(例えば関節部のモータにおける所望の角度の回転)が実現しないことがあり、要求されているようなアーム部の駆動制御における高い安定性を実現することは困難である。
以上説明したように、本発明者らは、医療用に用いられるロボットアーム装置について検討した結果、ロボットアーム装置に関して、上述したような3点の性能に対する要求が存在するとの知見を得た。しかしながら、一般的な既存のバランス型アームや位置制御によるロボットアーム装置では、これらの性能を満たすことは困難であると考えられる。本発明者らは、上述した3点の性能を満たす構成について検討した結果、以下に説明する実施形態に係るロボットアーム装置、ロボットアーム制御システム、ロボットアーム制御方法及びプログラムに想到した。以下では、本発明者らが想到した一実施形態について詳細に説明する。
(4−2.本開示の一実施形態)
以下では、本開示の一実施形態に係るロボットアーム制御システムについて説明する。本実施形態に係るロボットアーム制御システムにおいては、ロボットアーム装置に設けられる複数の関節部の駆動を、一般化逆動力学を用いた全身協調制御により制御する。更に、外乱の影響を補正することにより指令値に対する理想的な応答を実現する理想関節制御を当該関節部の駆動制御に適用する。
以下の本実施形態の説明では、まず、(4−2−1.ロボットアーム装置の外観)で、本実施形態に係るロボットアーム装置の外観を示すとともに、ロボットアーム装置の概略構成について説明する。次いで、(4−2−2.一般化逆動力学について)及び(4−2−3.理想関節制御について)で、本実施形態に係るロボットアーム装置の制御に用いられる一般化逆動力学と理想関節制御の概要について説明する。次いで、(4−2−4.ロボットアーム制御システムの構成)で、本実施形態に係るロボットアーム装置を制御するためのシステムの構成について機能ブロック図を用いて説明する。最後に、(4−2−5.運動目的の具体例)で、本実施形態に係るロボットアーム装置における、一般化逆動力学を用いた全身協調制御の具体例について説明する。
なお、以下の説明では、本開示の一実施形態として、ロボットアーム装置のアーム部の先端ユニットが撮像ユニットであり、図6に示すように手術時に当該撮像ユニットによって施術部位を撮影する場合について説明するが、本実施形態はかかる例に限定されない。本実施形態に係るロボットアーム制御システムは、他の先端ユニットを有するロボットアーム装置が他の用途に用いられる場合であっても適用可能である。
(4−2−1.ロボットアーム装置の外観)
まず、図7を参照して、本開示の一実施形態に係るロボットアーム装置の概略構成について説明する。図7は、本開示の一実施形態に係るロボットアーム装置の外観を示す概略図である。
図7を参照すると、本実施形態に係るロボットアーム装置400は、ベース部410及びアーム部420を備える。ベース部410はロボットアーム装置400の基台であり、ベース部410からアーム部420が延伸される。また、図7には図示しないが、ベース部410内には、ロボットアーム装置400を統合的に制御する制御部が設けられてもよく、アーム部420の駆動が当該制御部によって制御されてもよい。当該制御部は、例えばCPU(Central Processing Unit)やDSP(Digital Signal Processor)等の各種の信号処理回路によって構成される。
アーム部420は、複数の関節部421a〜421fと、関節部421a〜421fによって互いに連結される複数のリンク422a〜422cと、アーム部420の先端に設けられる撮像ユニット423を有する。
リンク422a〜422cは棒状の部材であり、リンク422aの一端が関節部421aを介してベース部410と連結され、リンク422aの他端が関節部421bを介してリンク422bの一端と連結され、更に、リンク422bの他端が関節部421c、421dを介してリンク422cの一端と連結される。更に、撮像ユニット423が、アーム部420の先端、すなわち、リンク422cの他端に、関節部421e、421fを介して連結される。このように、ベース部410を支点として、複数のリンク422a〜422cの端同士が、関節部421a〜421fによって互いに連結されることにより、ベース部410から延伸されるアーム形状が構成される。
撮像ユニット423は撮影対象の画像を取得するユニットであり、例えば動画、静止画を撮影するカメラ等である。アーム部420の駆動が制御されることにより、撮像ユニット423の位置及び姿勢が制御される。本実施形態においては、撮像ユニット423は、例えば施術部位である患者の体の一部領域を撮影する。ただし、アーム部420の先端に設けられる先端ユニットは撮像ユニット423に限定されず、アーム部420の先端には先端ユニットとして各種の医療用器具が接続されてよい。このように、本実施形態に係るロボットアーム装置400は、医療用器具を備えた医療用ロボットアーム装置であると言える。
ここで、以下では、図7に示すように座標軸を定義してロボットアーム装置400の説明を行う。また、座標軸に合わせて、上下方向、前後方向、左右方向を定義する。すなわち、床面に設置されているベース部410に対する上下方向をz軸方向及び上下方向と定義する。また、z軸と互いに直交する方向であって、ベース部410からアーム部420が延伸されている方向(すなわち、ベース部410に対して撮像ユニット423が位置している方向)をy軸方向及び前後方向と定義する。更に、y軸及びz軸と互いに直交する方向をx軸方向及び左右方向と定義する。
関節部421a〜421fはリンク422a〜422cを互いに回動可能に連結する。関節部421a〜421fはアクチュエータを有し、当該アクチュエータの駆動により所定の回転軸に対して回転駆動される回転機構を有する。各関節部421a〜421fにおける回転駆動をそれぞれ制御することにより、例えばアーム部420を伸ばしたり、縮めたり(折り畳んだり)といった、アーム部420の駆動を制御することができる。ここで、関節部421a〜421fは、下記(4−2−2.一般化逆動力学について)で後述する全身協調制御及び下記(4−2−3.理想関節制御について)で後述する理想関節制御によってその駆動が制御される。また、上述したように、本実施形態に係る関節部421a〜421fは回転機構を有するため、以下の説明において、関節部421a〜421fの駆動制御とは、具体的には、関節部421a〜421fの回転角度及び/又は発生トルク(関節部421a〜421fが発生させるトルク)が制御されることを意味する。
本実施形態に係るロボットアーム装置400は、6つの関節部421a〜421fを有し、アーム部420の駆動に関して6自由度が実現されている。具体的には、図7に示すように、関節部421a、421d、421fは、接続されている各リンク422a〜422cの長軸方向及び接続されている撮像ユニット473の撮影方向を回転軸方向とするように設けられており、関節部421b、421c、421eは、接続されている各リンク422a〜422c及び撮像ユニット473の連結角度をy−z平面(y軸とz軸とで規定される平面)内において変更する方向であるx軸方向を回転軸方向とするように設けられている。このように、本実施形態においては、関節部421a、421d、421fは、いわゆるヨーイングを行う機能を有し、関節部421b、421c、421eは、いわゆるピッチングを行う機能を有する。
このようなアーム部420の構成を有することにより、本実施形態に係るロボットアーム装置400ではアーム部420の駆動に対して6自由度が実現されるため、アーム部420の可動範囲内において撮像ユニット423を自由に移動させることができる。図7では、撮像ユニット423の移動可能範囲の一例として半球を図示している。半球の中心点が撮像ユニット423によって撮影される施術部位の撮影中心であるとすれば、撮像ユニット423の撮影中心を半球の中心点に固定した状態で、撮像ユニット423を半球の球面上で移動させることにより、施術部位を様々な角度から撮影することができる。
ここで、図8を参照して、図7に示す関節部421a〜421fの構成についてより詳細に説明する。なお、ここでは、図8を参照して、関節部421a〜421fの構成のうち、関節部421a〜421fの回転駆動に主に関係する構成であるアクチュエータの構成について説明する。
図8は、本開示の一実施形態に係る関節部421a〜421fのアクチュエータを、回転軸を通る断面で切断した様子を模式的に示す断面図である。なお、図8では、関節部421a〜421fの構成のうち、アクチュエータのみを図示しているが、関節部421a〜421fは、他の構成を有してもよい。例えば、関節部421a〜421fは、図8に図示する構成以外にも、アクチュエータの駆動を制御するための制御部や、リンク422a〜422c及び撮像ユニット423を接続、支持するための支持部材等、アーム部420の駆動に必要な各種の構成を有する。なお、ここまでの説明及び以下の説明において、アーム部の関節部の駆動とは、関節部におけるアクチュエータの駆動を意味していてもよい。
なお、上述したように、本実施形態においては、関節部421a〜421fは、下記(4−2−3.理想関節制御について)で後述する理想関節制御によってその駆動が制御される。従って、図8に示す関節部421a〜421fのアクチュエータは、理想関節制御に対応した駆動を行えるように構成されている。具体的には、関節部421a〜421fのアクチュエータは、当該関節部421a〜421fにおける回転角度及び回転駆動に伴うトルクを調整できるように構成されている。また、関節部421a〜421fのアクチュエータは、回転運動に対する粘性抵抗係数を任意に調整できるように構成されており、例えば外部から加えられる力に対して回転しやすい(すなわち、アーム部420を手動で移動しやすい)状態や回転し難い(すなわち、アーム部420を手動で移動し難い)状態を実現することができる。
図8を参照すると、本実施形態に係る関節部421a〜421fのアクチュエータ430は、モータ424、モータドライバ425、減速機426、エンコーダ427、トルクセンサ428及び駆動軸429を有する。図8に示すように、エンコーダ427、モータ424、減速機426及びトルクセンサ428は、駆動軸429に対して直列にこの順で連結される。
モータ424は、アクチュエータ430における原動機であり、駆動軸429をその軸周りに回転させる。例えば、モータ424は、ブラシレスDCモータ等の電動モータである。本実施形態においては、モータ424は電流を供給されることによってその回転駆動が制御される。
モータドライバ425は、モータ424に電流を供給することによりモータ424を回転駆動させるドライバ回路(ドライバIC(Integrated Circuit))であり、モータ424に供給する電流量を調整することにより、モータ424の回転数を制御することができる。また、モータドライバ425は、モータ424に供給する電流量を調整することにより、上述したようなアクチュエータ430の回転運動に対する粘性抵抗係数を調整することができる。
減速機426は、駆動軸429に接続され、モータ424によって生じた駆動軸429の回転速度を所定の減速比で減速することにより、所定の値を有する回転駆動力(すなわち、トルク)を発生させる。減速機426には、バックラッシレス型の高性能減速機が用いられる。例えば、減速機426は、ハーモニックドライブ(登録商標)であってもよい。減速機426によって生成されたトルクは、減速機426の出力軸に接続されたトルクセンサ428を介して、後段の出力部材(図示せず。例えばリンク422a〜422cや撮像ユニット423等の連結部材)に伝達される。
エンコーダ427は、駆動軸429に接続され、駆動軸429の回転数を検出する。エンコーダによって検出された駆動軸429の回転数と、減速機426の減速比との関係に基づいて、関節部421a〜421fの回転角度、回転角速度及び回転角加速度等の情報を得ることができる。
トルクセンサ428は、減速機426の出力軸に接続され、減速機426によって生成されたトルク、すなわち、アクチュエータ430によって出力されるトルクを検出する。以下の説明では、アクチュエータ430によって出力されるトルクのことを単に発生トルクとも呼称する。
このように、アクチュエータ430においては、モータ424に供給する電流量を調整することにより、モータ424の回転数を調整することがでる。ここで、減速機426における減速比は、ロボットアーム装置400の用途に応じて適宜設定可能であってよい。従って、減速機426の減速比に応じて、モータ424の回転数を適宜調整することにより、発生トルクを制御することができる。また、アクチュエータ430においては、エンコーダ427によって検出された駆動軸429の回転数に基づいて、関節部421a〜421fの回転角度、回転角速度及び回転角加速度等の情報を得ることができ、トルクセンサ428によって、関節部421a〜421fにおける発生トルクを検出することができる。
また、トルクセンサ428は、アクチュエータ430による発生トルクだけでなく、外部から加えられる外トルクも検出することができる。従って、トルクセンサ428によって検出された外トルクに基づいて、モータドライバ425がモータ424に供給する電流量を調整することにより、上述したような回転運動に対する粘性抵抗係数を調整することができ、例えば外部から加えられる力に対して回転しやすい状態や回転し難い状態を実現することができる。
ここで、図9A及び図9Bを参照して、トルクセンサ428の構成について詳細に説明する。図9Aは、図8に示すトルクセンサ428を、駆動軸429の軸方向から見た様子を模式的に示す概略図である。
図9Aを参照すると、トルクセンサ428は、外輪部431、内輪部432、梁部433a〜433d及び歪み検出素子434a〜434dを有する。図9Aに示すように、外輪部431及び内輪部432は同心円状に配置される。本実施形態では、内輪部432が入力側、すなわち、減速機426からの出力軸と接続され、外輪部431が出力側、すなわち、後段の出力部材(図示せず。)と接続される。
4本の梁部433a〜433dは、同心円状に配置された外輪部431と内輪部432との間に配設され、外輪部431と内輪部432とを互いに接続する。図9Aに示すように、梁部433a〜433dは、隣り合う梁部433a〜433d同士が互いに90度の角度となるように、外輪部431と内輪部432との間に介設される。
梁部433a〜433dのうち、互いに向かい合う、すなわち、互いに180度の角度で設けられる2本には、歪み検出素子434a〜434dが設けられる。歪み検出素子434a〜434dによって検出された梁部433a〜433dの変形量に基づいて、アクチュエータ430の発生トルク及び外トルクを検出することができる。
図9Aに示す例では、梁部433a〜433dのうち、梁部433aに歪み検出素子434a、434bが、梁部433cに歪み検出素子434c、434dが設けられる。また、歪み検出素子434a、434bは梁部433aを挟むように設けられ、歪み検出素子434c、434dは梁部433cを挟むように設けられる。例えば、歪み検出素子434a〜434dは歪みゲージであり、梁部433a、433cの表面に貼り付けられることにより、梁部433a、433cの幾何的な変形量を電気抵抗の変化に基づいて検出する。図9Aに示すように4ヶ所に歪み検出素子434a〜434dが設けられることにより、検出素子434a〜434dがいわゆるホイートストンブリッジを構成する。従って、いわゆる4ゲージ法を用いて歪みを検出することができるため、歪みを検出する軸以外の他軸の干渉や駆動軸429の偏心、温度ドリフト等の影響を低減することができる。
このように、梁部433a〜433dは、歪みを検出するための起歪体の役割を果たす。なお、本実施形態に係る歪み検出素子434a〜434dの種類は歪みゲージに限定されず、他の素子が用いられてもよい。例えば、歪み検出素子434a〜434dは、磁気特性の変化に基づいて梁部433a〜433dの変形量を検出する素子であってもよい。
また、図8及び図9Aには図示しないが、トルクセンサ428による発生トルク及び外トルクの検出精度を向上させるために、以下に示す構成が適用されてもよい。例えば、梁部433a〜433dの外輪部431と接続する部位を他の部位よりも薄肉化することにより、支持モーメントが解放されるため、検出される変形量の線形性が向上されるとともにラジアル荷重による影響が低減される。また、外輪部431及び内輪部432をともにベアリングを介してハウジングで支持することにより、入力軸及び出力軸の双方からの他軸力、モーメントの作用を排除することができる。また、外輪部431に作用する他軸モーメントを低減するために、図8に示すアクチュエータ430の他端、すなわちエンコーダ427が配設される部位に両持ち支持用ベアリングが配設されてもよい。
以上、図9Aを参照して、トルクセンサ428の構成について説明した。以上説明したように、図9Aに示すトルクセンサ428の構成により、アクチュエータ430の発生トルク及び外トルクの検出において、高精度な検出が可能となる。
ここで、本実施形態においては、トルクセンサ428の構成は図9Aに示す構成に限定されず、他の構成であってもよい。アクチュエータ430に適用されるトルクセンサについて、トルクセンサ428以外の他の構成の一例を、図9Bを参照して説明する。
図9Bは、図8に示すアクチュエータ430に適用されるトルクセンサの他の構成例を示す概略図である。図9Bを参照すると、本変形例に係るトルクセンサ428aは、外輪部441、内輪部442、梁部443a〜443d及び歪み検出素子444a〜444dを有する。なお、図9Bでは、図9Aと同様、トルクセンサ428aを駆動軸429の軸方向から見た様子を模式的に示している。
トルクセンサ428aにおいて、外輪部441、内輪部442、梁部443a〜443d及び歪み検出素子444a〜444dの機能及び構成は、図9Aを参照して説明したトルクセンサ428の外輪部431、内輪部432、梁部433a〜433d及び歪み検出素子434a〜434dの機能及び構成とほぼ同様である。本変形例に係るトルクセンサ428aは、梁部443a〜443dと外輪部441との接続部分の構成が異なる。従って、図9Bに示すトルクセンサ428aについては、図9Aに示すトルクセンサ428との相違点である梁部443a〜443dと外輪部441との接続部位の構成について主に説明を行い、重複する構成については説明を省略する。
図9Bを参照すると、トルクセンサ428aの全体図と併せて、梁部443bと外輪部441との接続部位が拡大して図示されている。なお、図9Bでは、梁部443a〜443dと外輪部441との4ヶ所の接続部位のうちの1ヶ所である梁部443bと外輪部441との接続部位のみを拡大して図示しているが、他の3ヶ所である梁部443a、443c、443dと外輪部441との接続部位も同様の構成を有している。
図9Bにおける拡大図を参照すると、梁部443bと外輪部441との接続部位においては、外輪部441に係合凹部が設けられており、梁部443bの先端が係合凹部に係合されることにより両者が接続される。また、当該梁部443bと外輪部441との間には、間隙G1、G2が設けられる。間隙G1は梁部443bが外輪部441に向かって延伸する方向における両者の間隙を表しており、間隙G2は当該方向とは直交する方向における両者の間隙を表している。
このように、トルクセンサ428aにおいては、梁部443a〜443dと外輪部441とが、所定の間隙G1、G2を有して分離して配設される。すなわち、トルクセンサ428aにおいては、外輪部441と内輪部442とが分離している。従って、内輪部442が外輪部441に対して拘束されず動きの自由度を有するため、例えばアクチュエータ430の駆動に際して振動が生じたとしても、振動による歪み成分を内輪部442と外輪部441との間の空隙G1、G2によって吸収することができる。よって、トルクセンサ428aをアクチュエータ430のトルクセンサとして適用することにより、より高精度な発生トルク及び外トルクの検出が実現される。
なお、図8、図9A及び図9Bに示すような、理想関節制御に対応するアクチュエータ430の構成については、例えば、本願出願人による先行特許出願である特開2009−269102号公報や特開2011−209099号公報を参照することができる。
以上、図7、図8、図9A及び図9Bを参照して、本実施形態に係るロボットアーム装置400の概略構成について説明した。次に、本実施形態に係るロボットアーム装置400におけるアーム部420の駆動、すなわち、関節部421a〜421fの駆動を制御するための全身協調制御及び理想関節制御について説明する。
(4−2−2.一般化逆動力学について)
次に、本実施形態におけるロボットアーム装置400の全身協調制御に用いられる一般化逆動力学の概要について説明する。
一般化逆動力学は、複数のリンクが複数の関節部によって連結されて構成される多リンク構造体(例えば本実施形態においては図7に示すアーム部420)において、各種の操作空間(Operation Space)における様々な次元に関する運動目的を、各種の拘束条件を考慮しながら、複数の当該関節部に生じさせるトルクに変換する、多リンク構造体の全身協調制御における基本演算である。
操作空間は、ロボット装置の力制御における重要な概念である。操作空間は、多リンク構造体に作用する力と多リンク構造体の加速度との関係を記述するための空間である。多リンク構造体の駆動制御を位置制御ではなく力制御によって行う際に、多リンク構造体と環境との接し方を拘束条件として用いる場合に操作空間という概念が必要となる。操作空間は、例えば、多リンク構造体が属する空間である、関節空間、デカルト空間、運動量空間等である。
運動目的は、多リンク構造体の駆動制御における目標値を表すものであり、例えば、駆動制御によって達成したい多リンク構造体の位置、速度、加速度、力、インピーダンス等の目標値である。
拘束条件は、多リンク構造体の形状や構造、多リンク構造体の周囲の環境及びユーザによる設定等によって定められる、多リンク構造体の位置、速度、加速度、力等に関する拘束条件である。例えば、拘束条件には、発生力、優先度、非駆動関節の有無、垂直反力、摩擦錘、支持多角形等についての情報が含まれる。
一般化動力学においては、数値計算上の安定性と実時間処理可能な演算効率とを両立するため、その演算アルゴリズムは、第1段階である仮想力決定プロセス(仮想力算出処理)と、第2段階である実在力変換プロセス(実在力算出処理)によって構成される。第1段階である仮想力算出処理では、各運動目的の達成に必要な、操作空間に作用する仮想的な力である仮想力を、運動目的の優先度と仮想力の最大値を考慮しながら決定する。第2段階である実在力算出処理では、非駆動関節、垂直反力、摩擦錘、支持多角形等に関する拘束を考慮しながら、上記で得られた仮想力を関節力、外力等の実際の多リンク構造体の構成で実現可能な実在力に変換する。以下、仮想力算出処理及び実在力算出処理について詳しく説明する。なお、以下の仮想力算出処理、実在力算出処理及び後述する理想関節制御の説明においては、理解を簡単にするために、具体例として、図7及び図8に示した本実施形態に係るロボットアーム装置400のアーム部420の構成を例に挙げて説明を行う場合がある。
(4−2−2−1.仮想力算出処理)
多リンク構造体の各関節部におけるある物理量によって構成されるベクトルを一般化変数qと呼ぶ(関節値q又は関節空間qとも呼称する。)。操作空間xは、一般化変数qの時間微分値とヤコビアンJとを用いて、以下の数式(1)で定義される。
本実施形態では、例えば、qはアーム部420の関節部421a〜421fにおける回転角度である。操作空間xに関する運動方程式は、下記数式(2)で記述される。
ここで、fは操作空間xに作用する力を表す。また、Λ−1は操作空間慣性逆行列、cは操作空間バイアス加速度と呼ばれるものであり、それぞれ下記数式(3)、(4)で表される。
なお、Hは関節空間慣性行列、τは関節値qに対応する関節力(例えば関節部421a〜421fおける発生トルク)、bは重力、コリオリ力、遠心力を表す項である。
一般化逆動力学においては、操作空間xに関する位置、速度の運動目的は、操作空間xの加速度として表現できることが知られている。このとき、上記数式(1)から、運動目的として与えられた目標値である操作空間加速度を実現するために、操作空間xに作用するべき仮想力fvは、下記数式(5)のような一種の線形相補性問題(LCP:Linear Complementary Problem)を解くことによって得られる。
ここで、LiとUiはそれぞれ、fvの第i成分の負の下限値(−∞を含む)、fvの第i成分の正の上限値(+∞を含む)とする。上記LCPは、例えばIterative法、Pivot法、ロバスト加速度制御を応用する方法等を用いて解くことができる。
なお、操作空間慣性逆行列Λ−1、バイアス加速度cは、定義式である上記数式(3)、(4)の通り算出すると計算コストが大きい。従って、多リンク構造体の一般化力(関節力τ)から一般化加速度(関節加速度)を得る準動力学計算(FWD)を応用することにより、操作空間慣性逆行列Λ−1の算出処理をより高速に算出する方法が提案されている。具体的には、操作空間慣性逆行列Λ−1、バイアス加速度cは、順動力学演算FWDを用いることにより、関節空間q、関節力τ、重力g等の多リンク構造体(例えば、アーム部420及び関節部421a〜421f)に作用する力に関する情報から得ることができる。このように、操作空間に関する順動力学演算FWDを応用することにより、関節部の数Nに対してO(N)の計算量で操作空間慣性逆行列Λ−1を算出することができる。
ここで、運動目的の設定例として、絶対値Fi以下の仮想力fviで操作空間加速度の目標値(xの2階微分に上付きバーを付して表す)を達成するための条件は、下記数式(6)で表現できる。
また、上述したように、操作空間xの位置、速度に関する運動目的は、操作空間加速度の目標値として表すことができ、具体的には下記数式(7)で表現される(操作空間xの位置、速度の目標値を、x、xの1階微分に上付きバーを付して表す)。
その他、分解操作空間の考え方を用いることにより、他の操作空間の線形和で表される操作空間(運動量、デカルト相対座標、連動関節等)に関する運動目的を設定することもできる。なお、競合する運動目的間には優先度を与える必要がある。優先度毎かつ低優先度から順に上記LCPを解き、前段のLCPで得られた仮想力を次段のLCPの既知外力として作用させることができる。
(4−2−2−2.実在力算出処理)
一般化逆動力学の第2段階である実在力算出処理では、上記(2−2−1.仮想力決定プロセス)で得られた仮想力fvを、実在の関節力と外力で置換する処理を行う。仮想力による一般化力τv=Jv Tfvを関節部に生じる発生トルクτaと外力feとで実現するための条件は、下記数式(8)で表現される。
ここで、添え字aは駆動関節部の集合(駆動関節集合)を表し、添え字uは非駆動関節部の集合(非駆動関節集合)を表す。すなわち、上記数式(8)の上段は非駆動関節部による空間(非駆動関節空間)の力の釣り合いを表しており、下段は駆動関節部による空間(駆動関節空間)の力の釣合いを表している。Jvu、Jvaは、それぞれ、仮想力fvが作用する操作空間に関するヤコビアンの非駆動関節成分、駆動関節成分である。Jeu、Jeaは、外力feが作用する操作空間に関するヤコビアンの非駆動関節成分、駆動関節成分である。Δfvは仮想力fvのうち、実在力で実現不能な成分を表す。
上記数式(8)の上段は不定であり、例えば下記数式(9)に示すような2次計画問題(QP:Quadratic Programing Problem)を解くことで、fe及びΔfvを得ることができる。
ここで、εは上記数式(8)の上段の両辺の差であり、数式(8)の等式誤差を表す。ξはfeとΔfvとの連結ベクトルであり、変数ベクトルを表す。Q1及びQ2は、最小化の際の重みを表す正定値対称行列である。また、上記数式(9)の不等式拘束は、垂直反力、摩擦錐、外力の最大値、支持多角形等、外力に関する拘束条件を表現するのに用いられる。例えば、矩形の支持多角形に関する不等式拘束は、下記数式(10)のように表現される。
ここで、zは接触面の法線方向を表し、x及びyはzに垂直な直交2接線方向を表す。(Fx,Fy,Fz)及び(Mx,My,Mz)は、接触点に作用する外力及び外力モーメントである。μt及びμrは、それぞれ並進、回転に関する摩擦係数である。(dx,dy)は支持多角形のサイズを表している。
上記数式(9)、(10)から、最小ノルム又は最小誤差の解fe、Δfvが求められる。上記数式(9)から得られたfe、Δfvを上記数式(8)の下段に代入することにより、運動目的を実現するために必要な関節力τaを得ることができる。
基底が固定され、非駆動関節が無い系の場合は、関節力のみで全ての仮想力を置換可能であり、上記数式(8)において、fe=0、Δfv=0とすることができる。この場合、上記数式(8)の下段から、関節力τaについて以下の数式(11)を得ることができる。
以上、本実施形態に係る一般化逆動力学を用いた全身協調制御について説明した。上記のように、仮想力算出処理及び実在力算出処理を順に行うことにより、所望の運動目的を達成するための関節力τaを得ることができる。すなわち、逆に言えば、算出された関節力τaを関節部421a〜421fの運動における理論モデルに反映することにより、関節部421a〜421fが、所望の運動目的を達成するように駆動される。
なお、ここまで説明した一般化逆動力学を用いた全身協調制御について、特に、仮想力fvの導出過程や、上記LCPを解き仮想力fvを求める方法、QP問題の解法等の詳細については、例えば、本願出願人による先行特許出願である特開2009−95959号公報や特開2010−188471号公報を参照することができる。
(4−2−3.理想関節制御について)
次に、本実施形態に係る理想関節制御について説明する。各関節部421a〜421fの運動は、下記数式(12)の二次遅れ系の運動方程式によってモデル化される。
ここで、Iaは関節部における慣性モーメント(イナーシャ)、τaは関節部421a〜421fの発生トルク、τeは外部から各関節部421a〜421fに作用する外トルク、νaは各関節部421a〜421fにおける粘性抵抗係数である。上記数式(12)は、関節部421a〜421fにおけるアクチュエータ430の運動を表す理論モデルとも言える。
上記(4−2−2.一般化逆動力学について)で説明したように、一般化逆動力学を用いた演算により、運動目的及び拘束条件を用いて、当該運動目的を実現するために各関節部421a〜421fに作用させるべき実在力であるτaを算出することができる。従って、理想的には、算出された各τaを上記数式(12)に適用することにより、上記数式(12)に示す理論モデルに従った応答が実現する、すなわち、所望の運動目的が達成されるはずである。
しかし、実際には、様々な外乱の影響により、関節部421a〜421fの運動と上記数式(12)に示すような理論モデルとの間には誤差(モデル化誤差)が生じる場合がある。モデル化誤差は、多リンク構造体の重量、重心、慣性テンソル等のマスプロパティに起因するものと、関節部421a〜421f内部における摩擦や慣性等に起因するものとに大別することができる。このうち、前者のマスプロパティに起因するモデル化誤差は、CAD(Computer Aided Design)データの高精度化や同定手法の適用によって、理論モデル構築時に比較的容易に低減することが可能である。
一方、後者の関節部421a〜421f内部の摩擦や慣性等に起因するモデル化誤差は、例えば関節部421a〜421fの減速機426における摩擦等、モデル化が困難な現象に起因しており、理論モデル構築時に無視できないモデル化誤差が残留し得る。また、上記数式(12)におけるイナーシャIaや粘性抵抗係数νaの値と、実際の関節部421a〜421fにおけるこれらの値との間に誤差が生じている可能性がある。これらのモデル化が困難な誤差は、関節部421a〜421fの駆動制御において外乱となり得る。従って、このような外乱の影響により、実際には、関節部421a〜421fの運動は、上記数式(12)に示す理論モデル通りには応答しない場合がある。よって、一般化逆動力学によって算出された関節力である実在力τaを適用しても、制御目標である運動目的が達成されない場合が生じる。本実施形態では、各関節部421a〜421fにアクティブな制御系を付加することで、上記数式(12)に示す理論モデルに従った理想応答を行うよう、関節部421a〜421fの応答を補正することを考える。具体的には、本実施形態では、関節部421a〜421fのトルクセンサ428、428aを用いた摩擦補償型のトルク制御を行うに留まらず、要求される発生トルクτa、外トルクτeに対して、イナーシャIa及び粘性抵抗係数νaに至るまで理論値に従った理想応答を行うことが可能となる。
本実施形態では、このように、ロボットアーム装置400の関節部421a〜421fが上記数式(12)に示すような理想的な応答を行うように関節部の駆動を制御することを、理想関節制御と呼称する。ここで、以下の説明では、当該理想関節制御によって駆動が制御されるアクチュエータのことを、理想的な応答が行われることから仮想アクチュエータ(VA:Virtualized Actuator)とも呼称する。以下、図10を参照して、本実施形態に係る理想関節制御について説明する。
図10は、本開示の一実施形態に係る理想関節制御について説明するための説明図である。なお、図10では、理想関節制御に係る各種の演算を行う概念上の演算器をブロックで模式的に図示している。
図10を参照すると、アクチュエータ610は、図8に示すアクチュエータ430の機構を模式的に表しており、モータ(Motor)611、減速機(Reduction Gear)612、エンコーダ(Encoder)613及びトルクセンサ(Torque Sensor)614は、それぞれ、図8に示すモータ424、減速機426、エンコーダ427及びトルクセンサ428(又は図9Bに示すトルクセンサ428a)に対応している。
ここで、アクチュエータ610が上記数式(12)で表される理論モデルに従った応答を行なうことは、上記数式(12)の右辺が与えられたときに、左辺の回転角加速度が達成されることに他ならない。また、上記数式(12)に示すように、理論モデルには、アクチュエータ610に作用する外トルク項τeが含まれている。本実施形態では、理想関節制御を行うために、トルクセンサ614によって外トルクτeを測定する。また、エンコーダ613によって測定されたアクチュエータ610の回転角度qに基づいて外乱に起因するトルクの推定値である外乱推定値τdを算出するために、外乱オブザーバ620を適用する。
ブロック631は、上記数式(12)に示す関節部421a〜421fの理想的な関節モデル(Ideal Joint Model)に従った演算を行う演算器を表している。ブロック631は、発生トルクτa、外トルクτe、回転角速度(回転角度qの1階微分)を入力として、上記数式(12)の左辺に示す回転角加速度目標値(回転角目標値qrefの2階微分)を出力することができる。
本実施形態では、上記(4−2−2.一般化逆動力学について)で説明した方法によって算出された発生トルクτaと、トルクセンサ614によって測定された外トルクτeが、ブロック631に入力される。一方、微分演算を行う演算器を表すブロック632に、エンコーダ613によって測定された回転角度qが入力されることにより、回転角速度(回転角度qの1階微分)が算出される。上記発生トルクτa及び外トルクτeに加えて、ブロック632によって算出された回転角速度がブロック631に入力されることにより、ブロック631によって回転角加速度目標値が算出される。算出された回転角加速度目標値は、ブロック633に入力される。
ブロック633は、アクチュエータ610の回転角加速度に基づいてアクチュエータ610に生じるトルクを算出する演算器を表す。本実施形態においては、具体的には、ブロック633は、回転角加速度目標値にアクチュエータ610における公称イナーシャ(ノミナルイナーシャ)Jnを乗じることにより、トルク目標値τrefを得ることができる。理想の応答においては、アクチュエータ610に当該トルク目標値τrefを生じさせることにより、所望の運動目的が達成されるはずであるが、上述したように、実際の応答には外乱等の影響が生じる場合がある。従って、本実施形態においては、外乱オブザーバ620によって外乱推定値τdを算出し、外乱推定値τdを用いて当該トルク目標値τrefを補正する。
外乱オブザーバ620の構成について説明する。図10に示すように、外乱オブザーバ620は、トルク指令値τと、エンコーダ613によって測定された回転角度qから算出される回転角速度に基づいて、外乱推定値τdを算出する。ここで、トルク指令値τは、外乱の影響が補正された後の、最終的にアクチュエータ610に生じさせるトルク値である。例えば、外乱推定値τdが算出されていない場合には、トルク指令値τはトルク目標値τrefとなる。
外乱オブザーバ620は、ブロック634とブロック635とから構成される。ブロック634は、アクチュエータ610の回転角速度に基づいてアクチュエータ610に生じるトルクを算出する演算器を表す。本実施形態においては、具体的には、エンコーダ613によって測定された回転角度qから、ブロック632によって算出された回転角速度がブロック634に入力される。ブロック634は、伝達関数Jnsによって表される演算を行うことにより、すなわち、当該回転角速度を微分することにより回転角加速度を求め、更に算出された回転角加速度にノミナルイナーシャJnを乗じることにより、実際にアクチュエータ610に作用しているトルクの推定値(トルク推定値)を算出することができる。
外乱オブザーバ620内では、当該トルク推定値とトルク指令値τとの差分が取られることにより、外乱によるトルクの値である外乱推定値τdが推定される。具体的には、外乱推定値τdは、前周の制御におけるトルク指令値τと、今回の制御におけるトルク推定値との差分であってよい。ブロック634によって算出されるトルク推定値は実際の測定値に基づくものであり、ブロック633によって算出されたトルク指令値τはブロック631に示す関節部421a〜421fの理想的な理論モデルに基づくものであるため、両者の差分を取ることによって、上記理論モデルでは考慮されていない外乱の影響を推定することができるのである。
また、外乱オブザーバ620には、系の発散を防ぐために、ブロック635に示すローパスフィルター(LPF:Low Pass Filter)が設けられる。ブロック635は、伝達関数g/(s+g)で表される演算を行うことにより、入力された値に対して低周波成分のみを出力し、系を安定化させる。本実施形態では、ブロック634によって算出されたトルク推定値とトルク指令値τrefとの差分値は、ブロック635に入力され、その低周波成分が外乱推定値τdとして算出される。
本実施形態では、トルク目標値τrefに外乱オブザーバ620によって算出された外乱推定値τdを加算するフィードフォワード制御が行われることにより、最終的にアクチュエータ610に生じさせるトルク値であるトルク指令値τが算出される。そして、トルク指令値τに基づいてアクチュエータ610が駆動される。具体的には、トルク指令値τが対応する電流値(電流指令値)に変換され、当該電流指令値がモータ611に印加されることにより、アクチュエータ610が駆動される。
以上、図10を参照して説明した構成を取ることにより、本実施形態に係る関節部421a〜421fの駆動制御においては、摩擦等の外乱成分があった場合であっても、アクチュエータ610の応答を目標値に追従させることが可能となる。また、関節部421a〜421fの駆動制御について、理論モデルが仮定するイナーシャIa及び粘性抵抗係数νaに従った理想応答を行うことが可能となる。
なお、以上説明した理想関節制御の詳細については、例えば、本願出願人による先行特許出願である特開2009−269102号公報を参照することができる。
以上、本実施形態において用いられる一般化逆動力学について説明するとともに、図10を参照して本実施形態に係る理想関節制御について説明した。以上説明したように、本実施形態においては、一般化逆動力学を用いることにより、アーム部420の運動目的を達成するための各関節部421a〜421fの駆動パラメータ(例えば関節部421a〜421fの発生トルク値)を、拘束条件を考慮して算出する、全身協調制御が行われる。また、図10を参照して説明したように、本実施形態においては、上記一般化逆動力学を用いた全身協調制御により算出された発生トルク値に対して外乱の影響を考慮した補正を行うことにより、関節部421a〜421fの駆動制御において理論モデルに基づいた理想的な応答を実現する、理想関節制御が行われる。従って、本実施形態においては、アーム部420の駆動について、運動目的を達成する高精度な駆動制御が可能となる。
(4−2−4.ロボットアーム制御システムの構成)
次に、上記(4−2−2.一般化逆動力学について)及び上記(4−2−3.理想関節制御について)で説明した全身協調制御や理想関節制御がロボットアーム装置の駆動制御に適用された、本実施形態に係るロボットアーム制御システムの構成について説明する。
図11を参照して、本開示の一実施形態に係るロボットアーム制御システムの一構成例について説明する。図11は、本開示の一実施形態に係るロボットアーム制御システムの一構成例を示す機能ブロック図である。なお、図11に示すロボットアーム制御システムでは、ロボットアーム装置のアーム部の駆動の制御に関わる構成について主に図示している。
図11を参照すると、本開示の一実施形態に係るロボットアーム制御システム1は、ロボットアーム装置10、制御装置20及び表示装置30を備える。本実施形態においては、制御装置20によって、上記(4−2−2.一般化逆動力学について)で説明した全身協調制御及び上記(4−2−3.理想関節制御について)で説明した理想関節制御における各種の演算が行われ、その演算結果に基づいてロボットアーム装置10のアーム部の駆動が制御される。また、ロボットアーム装置10のアーム部には後述する撮像部140が設けられており、撮像部140によって撮影された画像が表示装置30の表示画面に表示される。以下、ロボットアーム装置10、制御装置20及び表示装置30の構成について詳細に説明する。なお、図11に示すロボットアーム制御システム1は、図1を参照して説明したロボットアーム制御システム2に対応するものであり、ロボットアーム制御システム2に対して、図1では図示を省略していた、ロボットアーム装置10の駆動制御に関する機能構成を改めて詳細に図示したものである。
ロボットアーム装置10は、複数の関節部と複数のリンクから構成される多リンク構造体であるアーム部を有し、当該アーム部を可動範囲内で駆動させることにより、当該アーム部の先端に設けられる先端ユニットの位置及び姿勢の制御を行う。ロボットアーム装置10は、図7に示すロボットアーム装置400に対応している。
図11を参照すると、ロボットアーム装置10は、アーム制御部110及びアーム部120を有する。また、アーム部120は、関節部130及び撮像部140を有する。
アーム制御部110は、ロボットアーム装置10を統合的に制御するとともに、アーム部120の駆動を制御する。アーム制御部110は、図7を参照して説明した制御部(図7には図示せず。)に対応している。具体的には、アーム制御部110は駆動制御部111を有し、駆動制御部111からの制御によって関節部130の駆動が制御されることにより、アーム部120の駆動が制御される。より具体的には、駆動制御部111は、関節部130のアクチュエータにおけるモータに対して供給される電流量を制御することにより、当該モータの回転数を制御し、関節部130における回転角度及び発生トルクを制御する。ただし、上述したように、駆動制御部111によるアーム部120の駆動制御は、制御装置20における演算結果に基づいて行われる。従って、駆動制御部111によって制御される、関節部130のアクチュエータにおけるモータに対して供給される電流量は、制御装置20における演算結果に基づいて決定される電流量である。ただし、当該制御部は、各関節部にそれぞれ設けられ、各関節部の駆動をそれぞれ制御してもよい。
アーム部120は、複数の関節部と複数のリンクから構成される多リンク構造体であり、アーム制御部110からの制御によりその駆動が制御される。アーム部120は、図7に示すアーム部420に対応している。アーム部120は、関節部130及び撮像部140を有する。なお、アーム部120が有する複数の関節部の機能及び構成は互いに同様であるため、図11では、それら複数の関節部を代表して1つの関節部130の構成を図示している。
関節部130は、アーム部120においてリンク間を互いに回動可能に連結するとともに、アーム制御部110からの制御によりその回転駆動が制御されることによりアーム部120を駆動する。関節部130は、図7に示す関節部421a〜421fに対応している。また、関節部130は、アクチュエータを有し、当該アクチュエータの構成は、例えば図8、図9A及び図9Bに示す構成と同様である。
関節部130は、関節駆動部131及び関節状態検出部132を有する。
関節駆動部131は、関節部130のアクチュエータにおける駆動機構であり、関節駆動部131が駆動することにより関節部130が回転駆動する。関節駆動部131は、駆動制御部111によってその駆動が制御される。例えば、関節駆動部131は、図8に示すモータ424及びモータドライバ425に対応する構成であり、関節駆動部131が駆動することは、モータドライバ425が駆動制御部111からの指令に応じた電流量でモータ424を駆動することに対応している。
関節状態検出部132は、関節部130の状態を検出する。ここで、関節部130の状態とは、関節部130の運動の状態を意味していてよい。例えば、関節部130の状態には、関節部130の回転角度、回転角速度、回転角加速度、発生トルク等の情報が含まれる。本実施形態においては、関節状態検出部132は、関節部130の回転角度を検出する回転角度検出部133及び関節部130の発生トルク及び外トルクを検出するトルク検出部134を有する。なお、回転角度検出部133及びトルク検出部134は、図8に示すアクチュエータ430のエンコーダ427及び図9A及び図9Bに示すトルクセンサ428、428aに、それぞれ対応している。関節状態検出部132は、検出した関節部130の状態を制御装置20に送信する。
撮像部140は、アーム部120の先端に設けられる先端ユニットの一例であり、撮影対象の画像を取得する。撮像部140は、図7に示す撮像ユニット423に対応している。具体的には、撮像部140は、撮影対象を動画や静止画の形式で撮影することのできるカメラ等である。より具体的には、撮像部140は、2次元上に配列された複数の受光素子を有し、当該受光素子における光電変換により、撮影対象の画像を表す画像信号を取得することができる。撮像部140は、取得した画像信号を表示装置30に送信する。
なお、図7に示すロボットアーム装置400において撮像ユニット423がアーム部420の先端に設けられていたように、ロボットアーム装置10においても、実際には撮像部140がアーム部120の先端に設けられている。図11では、撮像部140が複数の関節部130及び複数のリンクを介して最終段のリンクの先端に設けられる様子を、関節部130と撮像部140との間にリンクを模式的に図示することにより表現している。
なお、本実施形態においては、アーム部120の先端には先端ユニットとして各種の医療用器具が接続され得る。当該医療用器具としては、例えば、メスや鉗子等の各種の施術器具や、超音波検査装置の探触子等の各種の検査装置の一ユニット等、施術に際して用いられる各種のユニットが挙げられる。また、本実施形態では、図11に示す撮像部140や、内視鏡、顕微鏡等の撮像機能を有するユニットも医療用器具に含まれてよい。このように、本実施形態に係るロボットアーム装置10は、医療用器具を備えた医療用ロボットアーム装置であると言える。同様に、本実施形態に係るロボットアーム制御システム1は、医療用ロボットアーム制御システムであると言える。なお、図11に示すロボットアーム装置10は、撮像機能を有するユニットを先端ユニットとして備えるビデオ顕微鏡用ロボットアーム装置であるとも言える。また、アーム部120の先端に、2つの撮像ユニット(カメラユニット)を有するステレオカメラが設けられ、撮像対象を3D画像として表示するように撮影が行われてもよい。
以上、ロボットアーム装置10の機能及び構成について説明した。次に、制御装置20の機能及び構成について説明する。図11を参照すると、制御装置20は、入力部210、記憶部220及び制御部230を有する。
制御部230は、制御装置20を統合的に制御するとともに、ロボットアーム装置10におけるアーム部120の駆動を制御するための各種の演算を行う。具体的には、制御部230は、ロボットアーム装置10のアーム部120の駆動を制御するために、全身協調制御及び理想関節制御における各種の演算を行う。以下、制御部230の機能及び構成について詳しく説明するが、全身協調制御及び理想関節制御については、上記(4−2−2.一般化逆動力学について)及び上記(4−2−3.理想関節制御について)で既に説明しているため、ここでは詳しい説明は省略する。
制御部230は、全身協調制御部240、理想関節制御部250、内部モデル情報取得部260及び内部モデル更新部270を有する。
全身協調制御部240は、一般化逆動力学を用いた全身協調制御に関する各種の演算を行う。本実施形態では、全身協調制御部240は、関節状態検出部132によって検出された関節部130の状態に基づいてアーム部120の状態(アーム状態)を取得する。また、全身協調制御部240は、当該アーム状態と、アーム部120の運動目的及び拘束条件と、に基づいて、操作空間におけるアーム部120の全身協調制御のための制御値を、一般化逆動力学を用いて算出する。なお、操作空間とは、例えばアーム部120に作用する力とアーム部120に発生する加速度との関係を記述するための空間である。
全身協調制御部240は、アーム状態取得部241、演算条件設定部242、仮想力算出部243及び実在力算出部244を有する。ここで、上述した図1では、説明のため、便宜的に、アーム状態取得部241を、内部モデル情報取得部260に含まれる一機能として図示していたが、これらは同様の機能を有するものである。
アーム状態取得部241は、関節状態検出部132によって検出された関節部130の状態に基づいて、アーム部120の状態(アーム状態)を取得する。ここで、アーム状態とは、アーム部120の運動の状態を意味していてよい。例えば、アーム状態には、アーム部120の位置、速度、加速度、力等の情報が含まれる。上述したように、関節状態検出部132は、関節部130の状態として、各関節部130における回転角度、回転角速度、回転角加速度、発生トルク等の情報を取得している。また、後述するが、記憶部220は、制御装置20によって処理される各種の情報を記憶するものであり、本実施形態においては、記憶部220には、アーム部120に関する各種の情報(アーム情報)、例えばアーム部120を構成する関節部130及びリンクの数や、リンクと関節部130との接続状況、リンクの長さ等の情報が格納されていてよい。アーム状態取得部241は、記憶部220から当該アーム情報を取得することができる。従って、アーム状態取得部241は、関節部130の状態とアーム情報とに基づいて、複数の関節部130、複数のリンク及び撮像部140の空間上の位置(座標)(すなわち、アーム部120の形状や撮像部140の位置及び姿勢)や、各関節部130、リンク及び撮像部140に作用している力等の情報をアーム状態として取得することができる。アーム状態取得部241は、取得したアーム情報を演算条件設定部242に送信する。
演算条件設定部242は、一般化逆動力学を用いた全身協調制御に関する演算における演算条件を設定する。ここで、演算条件とは、運動目的及び拘束条件であってよい。運動目的は、アーム部120の運動に関する各種の情報であってよい。具体的には、運動目的は、撮像部140の位置及び姿勢(座標)、速度、加速度並びに力等の目標値であったり、アーム部120の複数の関節部130及び複数のリンクの位置(座標)、速度、加速度及び力等の目標値であったりしてもよい。また、拘束条件は、アーム部120の運動を制限(拘束)する各種の情報であってよい。具体的には、拘束条件は、アーム部の各構成部材が移動不可能な領域の座標や、移動不可能な速度、加速度の値、発生不可能な力の値等であってよい。また、拘束条件における各種の物理量の制限範囲は、アーム部120の構造的に実現することが不可能であることから設定されてもよいし、ユーザによって適宜設定されてもよい。また、演算条件設定部242は、アーム部120の構造についての物理モデル(例えば、アーム部120を構成するリンクの数や長さ、リンクの関節部130を介した接続状況、関節部130の可動範囲等がモデル化されたもの。上記<1.ロボットアーム制御システムの構成>、<2.キャリブレーション方法>及び<3.キャリブレーション方法の具体例>で説明した内部モデルに対応する。)を有し、当該物理モデルに、所望の運動条件及び拘束条件が反映された制御モデルを生成することにより、運動条件及び拘束条件を設定してもよい。
本実施形態においては、運動目的及び拘束条件を適切に設定することにより、アーム部120に所望の動作を行わせることが可能となる。例えば、運動目的として、撮像部140の位置の目標値を設定することにより撮像部140をその目標の位置に移動させることはもちろんのこと、アーム部120が空間上の所定の領域内に侵入しないようにする等、拘束条件によって移動の制約を設けてアーム部120を駆動させることも可能である。
運動目的の具体例として、例えば、運動目的は、撮像部140の撮影方向が施術部位に固定された状態で、撮像部140が施術部位を頂点とした円錐の面内を移動する、当該円錐の軸を旋回軸とした旋回動作である、ピボット動作であってもよい。また、当該ピボット動作においては、撮像部140と円錐の頂点に当たる点との距離が一定に保たれた状態で旋回動作が行われてもよい。このようなピボット動作を行うことにより、観察部位を等距離からかつ異なる角度から観察できるようになるため、手術を行うユーザの利便性を向上させることができる。
また、他の具体例として、運動目的は、各関節部130における発生トルクを制御する内容であってもよい。具体的には、運動目的は、アーム部120に作用する重力を打ち消すように関節部130の状態を制御するとともに、更に外部から与えられた力の方向へのアーム部120の移動をサポートするように関節部130の状態を制御するパワーアシスト動作であってもよい。より具体的には、パワーアシスト動作においては、アーム部120の各関節部130における重力による外トルクを打ち消す発生トルクを各関節部130に生じさせるように各関節部130の駆動が制御されることにより、アーム部120の位置及び姿勢が所定の状態で保持される。この状態で更に外部から(例えばユーザから)外トルクが加えられた場合に、与えられた外トルクと同じ方向の発生トルクを各関節部130に生じさせるように各関節部130の駆動が制御される。このようなパワーアシスト動作を行うことにより、ユーザが手動でアーム部120を動かす場合に、ユーザはより小さい力でアーム部120を移動させることができるため、あたかも無重力下でアーム部120を動かしているような感覚をユーザに対して与えることができる。また、上述したピボット動作と当該パワーアシスト動作とを組み合わせることも可能である。
ここで、本実施形態において、運動目的とは、全身協調制御において実現されるアーム部120の動作(運動)を意味していてもよいし、当該動作における瞬時的な運動目的(すなわち、運動目的における目標値)を意味していてもよい。例えば上記のピボット動作であれば、撮像部140がピボット動作を行うこと自体が運動目的であるが、ピボット動作を行っている最中においては、当該ピボット動作における円錐面内での撮像部140の位置や速度等の値が、瞬時的な運動目的(当該運動目的における目標値)として設定されている。また例えば上記のパワーアシスト動作であれば、外部から加えられた力の方向へのアーム部120の移動をサポートするパワーアシスト動作を行うこと自体が運動目的であるが、パワーアシスト動作を行っている最中においては、各関節部130に加えられる外トルクと同じ方向への発生トルクの値が、瞬時的な運動目的(当該運動目的における目標値)として設定されている。本実施形態における運動目的は、瞬時的な運動目的(例えばある時間におけるアーム部120の各構成部材の位置や速度、力等の目標値)と、瞬時的な運動目的が連続的に達成された結果、経時的に実現されるアーム部120の各構成部材の動作の、双方を含む概念である。全身協調制御部240における全身協調制御のための演算における各ステップでは瞬時的な運動目的がその都度設定され、当該演算が繰り返し行われることにより、最終的に所望の運動目的が達成される。
なお、本実施形態においては、運動目的が設定される際に、各関節部130の回転運動における粘性抵抗係数も適宜設定されてよい。上述したように、本実施形態に係る関節部130は、アクチュエータ430の回転運動における粘性抵抗係数を適宜調整できるように構成される。従って、運動目的の設定に際して各関節部130の回転運動における粘性抵抗係数も設定することにより、例えば外部から加えられる力に対して回転しやすい状態や回転し難い状態を実現することができる。例えば上述したパワーアシスト動作であれば、関節部130における粘性抵抗係数が小さく設定されることにより、ユーザがアーム部120を移動させる際に要する力がより小さくてよく、ユーザに与えられる無重力感がより助長される。このように、各関節部130の回転運動における粘性抵抗係数は、運動目的の内容に応じて適宜設定されてよい。
なお、運動目的の具体例については、下記(4−2−5.運動目的の具体例)で改めて詳しく説明する。
ここで、本実施形態においては、後述するように、記憶部220には、全身協調制御に関する演算において用いられる運動目的や拘束条件等の演算条件に関するパラメータが格納されていてもよい。演算条件設定部242は、記憶部220に記憶されている拘束条件を、全身協調制御の演算に用いる拘束条件として設定することができる。
また、本実施形態においては、演算条件設定部242は、複数の方法によって運動目的を設定することができる。例えば、演算条件設定部242は、アーム状態取得部241から送信されるアーム状態に基づいて運動目的を設定してもよい。上述したように、アーム状態には、アーム部120の位置の情報やアーム部120に対して作用する力の情報が含まれる。従って、例えばユーザがアーム部120を手動で移動させようとしている場合には、アーム状態取得部241によって、ユーザがアーム部120をどのように移動させようとしているか、に関する情報もアーム状態として取得される。従って、演算条件設定部242は、取得されたアーム状態に基づいて、ユーザがアーム部120を移動させた位置や速度、力等を瞬時的な運動目的として設定することができる。このように運動目的が設定されることにより、アーム部120の駆動は、ユーザによるアーム部120の移動を追随し、サポートするように制御される。
また、例えば、演算条件設定部242は、入力部210からユーザによって入力される指示に基づいて運動目的を設定してもよい。後述するが、入力部210は、ユーザが制御装置20にロボットアーム装置10の駆動制御に関する情報や命令等を入力するための入力インターフェースであり、本実施形態においては、ユーザによる入力部210からの操作入力に基づいて、運動目的が設定されてもよい。具体的には、入力部210は、例えばレバー、ペダル等のユーザが操作する操作手段を有し、当該レバー、ペダル等の操作に応じて、アーム部120の各構成部材の位置や速度等が、演算条件設定部242によって瞬時的な運動目的として設定されてもよい。
更に、例えば、演算条件設定部242は、記憶部220に記憶されている運動目的を、全身協調制御の演算に用いる運動目的として設定してもよい。例えば、空間上の所定の点で撮像部140が静止するという運動目的であれば、当該所定の点の座標を運動目的として予め設定することができる。また、例えば、撮像部140が空間上において所定の軌跡上を移動するという運動目的であれば、当該所定の軌跡を表す各点の座標を運動目的として予め設定することができる。このように、運動目的が予め設定できるものである場合には、当該運動目的が予め記憶部220に記憶されていてもよい。また、例えば上述したピボット動作であれば、運動目的は円錐の面内における位置や速度等を目標値とするものに限られるし、パワーアシスト動作であれば、運動目的は力を目標値とするものに限られる。このように、ピボット動作やパワーアシスト動作のような運動目的が予め設定されている場合には、これらの運動目的における瞬時的な運動目的として設定され得る目標値の範囲や種類等に関する情報が、記憶部220に記憶されていてもよい。演算条件設定部242は、このような運動目的に関する各種の情報も含めて、運動目的として設定することができる。
なお、演算条件設定部242が、上記のいずれの方法で運動目的を設定するかは、ロボットアーム装置10の用途等に応じてユーザによって適宜設定可能であってよい。また、演算条件設定部242は、また、上記の各方法を適宜組み合わせることにより、運動目的及び拘束条件を設定してもよい。なお、記憶部220に格納されている拘束条件の中に運動目的の優先度が設定されていてもよく、複数の互いに異なる運動目的が存在する場合には、演算条件設定部242は、当該拘束条件の優先度に応じて運動目的を設定してもよい。演算条件設定部242は、アーム状態並びに設定した運動目的及び拘束条件を仮想力算出部243に送信する。
仮想力算出部243は、一般化逆動力学を用いた全身協調制御に関する演算における仮想力を算出する。仮想力算出部243が行う仮想力の算出処理は、例えば、上記(4−2−2−1.仮想力算出処理)で説明した一連の処理であってよい。仮想力算出部243は、算出した仮想力fvを実在力算出部244に送信する。
実在力算出部244は、一般化逆動力学を用いた全身協調制御に関する演算における実在力を算出する。実在力算出部244が行う実在力の算出処理は、例えば、上記(4−2−2−2.実在力算出処理)で説明した一連の処理であってよい。実在力算出部244は、算出した実在力(発生トルク)τaを理想関節制御部250に送信する。なお、本実施形態においては、実在力算出部244によって算出された発生トルクτaのことを、全身協調制御における関節部130の制御値という意味で、制御値又は制御トルク値とも呼称する。
理想関節制御部250は、理論モデルに基づいた理想的な応答を実現する理想関節制御に関する各種の演算を行う。本実施形態では、理想関節制御部250は、実在力算出部244によって算出された発生トルクτaに対して外乱の影響を補正することにより、アーム部120の理想的な応答を実現するトルク指令値τを算出する。なお、理想関節制御部250によって行われる演算処理は、上記(4−2−3.理想関節制御について)で説明した一連の処理に対応している。
理想関節制御部250は、外乱推定部251及び指令値算出部252を有する。
外乱推定部251は、トルク指令値τと、回転角度検出部133によって検出された回転角度qから算出される回転角速度に基づいて、外乱推定値τdを算出する。なお、ここでいうトルク指令値τは、最終的にロボットアーム装置10に送信されるアーム部120での発生トルクを表す指令値である。このように、外乱推定部251は、図10に示す外乱オブザーバ620に対応する機能を有する。
指令値算出部252は、外乱推定部251によって算出された外乱推定値τdを用いて、最終的にロボットアーム装置10に送信されるアーム部120に生じさせるトルクを表す指令値であるトルク指令値τを算出する。具体的には、指令値算出部252は、上記数式(12)に示す関節部130の理想モデルから算出されるτrefに外乱推定部251によって算出された外乱推定値τdを加算することにより、トルク指令値τを算出する。例えば、外乱推定値τdが算出されていない場合には、トルク指令値τはトルク目標値τrefとなる。このように、指令値算出部252の機能は、図10に示す外乱オブザーバ620以外の機能に対応している。
以上説明したように、理想関節制御部250においては、外乱推定部251と指令値算出部252との間で繰り返し情報のやり取りが行われることにより、図10を参照して説明した一連の処理が行われる。理想関節制御部250は算出したトルク指令値τをロボットアーム装置10の駆動制御部111に送信する。駆動制御部111は、送信されたトルク指令値τに対応する電流量を、関節部130のアクチュエータにおけるモータに対して供給する制御を行うことにより、当該モータの回転数を制御し、関節部130における回転角度及び発生トルクを制御する。
本実施形態に係るロボットアーム制御システム1においては、ロボットアーム装置10におけるアーム部120の駆動制御は、アーム部120を用いた作業が行われている間継続的に行われるため、ロボットアーム装置10及び制御装置20における以上説明した処理が繰り返し行われる。すなわち、ロボットアーム装置10の関節状態検出部132によって関節部130の状態が検出され、制御装置20に送信される。制御装置20では、当該関節部130の状態と、運動目的及び拘束条件とに基づいて、アーム部120の駆動を制御するための全身協調制御及び理想関節制御に関する各種の演算が行われ、演算結果としてのトルク指令値τがロボットアーム装置10に送信される。ロボットアーム装置10では、当該トルク指令値τに基づいてアーム部120の駆動が制御され、駆動中又は駆動後の関節部130の状態が、再び関節状態検出部132によって検出される。
内部モデル情報取得部260は、アーム部120及び撮像部140が所定の位置及び姿勢にある状態において、内部モデルを規定するための内部モデル情報を取得する。また、内部モデル更新部270は、内部モデル情報取得部260によって取得された内部モデル情報を用いて内部モデルを更新する。ここで、内部モデル情報取得部260及び内部モデル更新部270の機能については、上記<1.ロボットアーム制御システムの構成>で詳しく説明しているため、ここでは、その詳細な説明は省略する。内部モデル更新部270によって更新された、すなわち、キャリブレーションが行われた内部モデルを用いて、例えば演算条件設定部242によって運動目的及び拘束条件が設定され、仮想力算出部243及び実在力算出部244によって、設定された運動目的及び拘束条件に基づく制御値が算出されることとなる。
制御装置20が有する他の構成についての説明を続ける。
入力部210は、ユーザが制御装置20にロボットアーム装置10の駆動制御に関する情報や命令等を入力するための入力インターフェースである。本実施形態においては、ユーザによる入力部210からの操作入力に基づいて、ロボットアーム装置10のアーム部120の駆動が制御され、撮像部140の位置及び姿勢が制御されてもよい。具体的には、上述したように、ユーザによって入力部210から入力されたアームの駆動の指示に関する指示情報が演算条件設定部242に入力されることにより、演算条件設定部242が当該指示情報に基づいて全身協調制御における運動目的を設定してもよい。このように、ユーザが入力した指示情報に基づく運動目的を用いて全身協調制御が行われることにより、ユーザの操作入力に応じたアーム部120の駆動が実現される。
具体的には、入力部210は、例えばマウス、キーボード、タッチパネル、ボタン、スイッチ、レバー及びペダル等のユーザが操作する操作手段を有する。例えば入力部210がペダルを有する場合、ユーザは当該ペダルを足で操作することによりアーム部120の駆動を制御することができる。従って、ユーザが患者の施術部位に対して両手を使って処置を行っている場合であっても、足によるペダルの操作によって撮像部140の位置及び姿勢、すなわち、施術部位の撮影位置や撮影角度を調整することができる。
記憶部220は、制御装置20によって処理される各種の情報を記憶する。本実施形態においては、記憶部220は、制御部230によって行われる全身協調制御及び理想関節制御に関する演算において用いられる各種のパラメータを記憶することができる。例えば、記憶部220は、全身協調制御部240による全身協調制御に関する演算において用いられる運動目的及び拘束条件を記憶していてもよい。記憶部220が記憶する運動目的は、上述したように、例えば撮像部140が空間上の所定の点で静止することのような、予め設定され得る運動目的であってよい。また、拘束条件は、アーム部120の幾何的な構成やロボットアーム装置10の用途等に応じて、ユーザによって予め設定され、記憶部220に格納されていてもよい。また、記憶部220には、アーム状態取得部241がアーム状態を取得する際に用いるアーム部120に関する各種の情報が記憶されていてもよい。更に、記憶部220には、制御部230による全身協調制御及び理想関節制御に関する演算における演算結果や演算過程で算出される各数値等が記憶されてもよい。このように、記憶部220には、制御部230によって行われる各種の処理に関するあらゆるパラメータが格納されていてよく、制御部230は、記憶部220と相互に情報を送受信しながら各種の処理を行うことができる。
以上、制御装置20の機能及び構成について説明した。なお、本実施形態に係る制御装置20は、例えばPC(Personal Computer)やサーバ等の各種の情報処理装置(演算処理装置)によって構成することができる。次に、表示装置30の機能及び構成について説明する。
表示装置30は、各種の情報を表示画面上にテキスト、イメージ等様々な形式で表示することにより、当該情報をユーザに対して視覚的に通知する。本実施形態においては、表示装置30は、ロボットアーム装置10の撮像部140によって撮影された画像を表示画面上に表示する。具体的には、表示装置30は、撮像部140によって取得された画像信号に各種の画像処理を施す画像信号処理部(図示せず。)や処理された画像信号に基づく画像を表示画面上に表示させる制御を行う表示制御部(図示せず。)等の機能及び構成を有する。なお、表示装置30は、上記の機能及び構成以外にも、一般的に表示装置が有する各種の機能及び構成を有してもよい。表示装置30は、図6に示す表示装置550に対応している。
以上、図11を参照して、本実施形態に係るロボットアーム装置10、制御装置20及び表示装置30の機能及び構成について説明した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
以上説明したように、本実施形態によれば、ロボットアーム装置10における多リンク構造体であるアーム部120が、少なくとも6自由度以上の自由度を有するとともに、当該アーム部120を構成する複数の関節部130のそれぞれの駆動が駆動制御部111によって制御される。そして、当該アーム部120の先端には医療用器具が設けられる。このように、各関節部130の駆動が制御されることにより、より自由度の高いアーム部120の駆動制御が実現され、よりユーザにとって操作性の高い医療用のロボットアーム装置10が実現される。
より具体的には、本実施形態によれば、ロボットアーム装置10において、関節状態検出部132によって関節部130の状態が検出される。そして、制御装置20において、当該関節部130の状態と、運動目的及び拘束条件とに基づいて、アーム部120の駆動を制御するための一般化逆動力学を用いた全身協調制御に関する各種の演算が行われ、演算結果としてのトルク指令値τが算出される。更に、ロボットアーム装置10において、当該トルク指令値τに基づいてアーム部120の駆動が制御される。このように、本実施形態においては、一般化逆動力学を用いた全身協調制御により、アーム部120の駆動が制御される。従って、力制御によるアーム部120の駆動制御が実現され、よりユーザにとって操作性の高いロボットアーム装置が実現される。また、本実施形態では、全身協調制御において、例えばピボット動作やパワーアシスト動作といった、よりユーザの利便性を向上させる各種の運動目的を実現する制御が可能となる。更に、本実施形態においては、例えばアーム部120を手動で移動させたり、ペダルからの操作入力により移動させたりといった、多様な駆動手段が実現されるため、ユーザの利便性の更なる向上が実現される。
また、本実施形態においては、アーム部120の駆動制御について、全身協調制御と併せて理想関節制御が適用される。理想関節制御においては、関節部130内部の摩擦や慣性等の外乱成分を推定し、推定した外乱成分を用いたフィードフォワード制御が行われる。従って、摩擦等の外乱成分がある場合であっても、関節部130の駆動について理想的な応答を実現することができる。よって、アーム部120の駆動制御において、振動等の影響がより少ない、高精度の応答性と高い位置決め精度や安定性が実現される。
更に、本実施形態においては、アーム部120を構成する複数の関節部130のそれぞれが、例えば図8に示すような、理想関節制御に適合した構成を有し、各関節部130における回転角度、発生トルク及び粘性抵抗係数を電流値によって制御することができる。このように、各関節部130の駆動が電流値によって制御され、また、全身協調制御により各関節部130の駆動がアーム部120全体の状態を把握しながら制御されるため、カウンターバランスが不要となり、ロボットアーム装置10の小型化が実現される。
(4−2−5.運動目的の具体例)
次に、本実施形態に係る運動目的の具体例について説明する。上記(4−2−4.ロボットアーム制御システムの構成)で説明したように、本実施形態においては、全身協調制御によって各種の運動目的が実現される。ここでは、本実施形態に係る運動目的の具体例として、パワーアシスト動作と、ピボット動作について説明する。なお、以下の運動目的の具体例についての説明では、図11に示す機能ブロック図における参照番号を用いて、本実施形態に係るロボットアーム制御システムの構成部材を表す。
パワーアシスト動作は、アーム部120に作用する重力を打ち消すように関節部130の状態を制御するとともに、更に外部から与えられた力の方向へのアーム部120の移動をサポートするように関節部130の状態を制御する動作である。具体的には、ユーザがアーム部120を手動で動かす際に、ユーザによって加えられた力をサポートするようにアーム部120の駆動を制御する動作である。より具体的には、パワーアシスト動作を実現するために、まず、重力以外の力がアーム部120に作用していない状態における外トルクがトルク検出部134によって検出され、検出された外トルクを打ち消す発生トルクを各関節部130に生じさせるように、瞬時的な運動目的が設定される。この段階で、アーム部120の位置及び姿勢が所定の状態で保持される。この状態で更に外部から(例えばユーザから)外トルクが加えられた場合に、追加的に与えられた外トルクがトルク検出部134によって検出され、検出された追加的な外トルクと同じ方向の発生トルクを各関節部130に生じさせるという瞬時的な運動目的が更に設定される。このような瞬時的な運動目的に従って各関節部130の駆動が制御されることによりパワーアシスト動作が実現される。パワーアシスト動作により、ユーザはより小さい力でアーム部を移動させることができるため、あたかも無重力下でアーム部120を動かしているような感覚を得ることができ、ユーザによるアーム部120の操作性が向上する。
ピボット動作は、アーム部120の先端に設けられる先端ユニットが、当該先端ユニットの向きが空間上の所定の点に固定された状態で、当該所定の点を頂点とした円錐の面上を移動する、当該円錐の軸を旋回軸とした旋回動作である。具体的に先端ユニットが撮像部140である場合であれば、ピボット動作は、アーム部120の先端に設けられる撮像部140が、撮像部140の撮影方向が空間上の所定の点に固定された状態で、当該所定の点を頂点とした円錐の面上を移動する、当該円錐の軸を旋回軸とした旋回動作である。ピボット動作における円錐の頂点に当たる点としては、例えば施術部位が選択される。また、ピボット動作においては、先端ユニット又は撮像部140と円錐の頂点に当たる点との距離が一定に保たれた状態で旋回動作が行われてもよい。なお、先端ユニットの向き又は撮像部140の撮影方向が空間上の所定の点(例えば施術部位)に固定されることから、ピボット動作はポイントロック動作とも呼ばれる。
ピボット動作について、図12及び図13を参照してより詳細に説明する。図12は、本開示の一実施形態に係るアーム動作の一具体例であるピボット動作について説明するための説明図である。図13は、図12に示すピボット動作を実現するための運動目的及び拘束条件について説明するための説明図である。
図12を参照すると、患者750上における施術部位がピボット動作における頂点に設定されている。当該頂点をピボット点Piと呼称する。図12では、簡単のため、本実施形態に係るロボットアーム装置10のうち、図11における撮像部140に対応するユニットである撮像ユニット713のみを図示している。図12に示すように、ピボット動作においては、撮像ユニット713が円錐Aの底面の円周上に限り移動することができるように、すなわち、撮像ユニット713とピボット点Piとの距離が一定に保たれた状態で撮像ユニット713が円錐Aの面内を移動するように、運動目的及び拘束条件が設定されてもよい。また、円錐Aの形状、すなわち、円錐Aの頂点の角度θや、ピボット点Piと撮像ユニット713との距離は、ユーザによって適宜設定されてよい。例えば、ピボット点Piと撮像ユニット713との距離は撮像ユニット713における光学系の焦点距離に調整される。このようなピボット動作を適用することにより、施術部位を等距離からかつ異なる角度から観察できるようになるため、手術を行うユーザの利便性を向上させることができる。
また、ピボット動作においては、円錐A及び円錐Bのように、ピボット点Piを固定したまま撮像ユニット713が移動可能な円錐の位置を移動させることができてもよい。図12に示す例では、円錐Aの旋回軸は施術部位に対して略垂直であり、円錐Bの旋回軸は施術部位に対して略水平である。このように、例えばピボット動作を行う円錐を、円錐A、Bのように、ピボット点Piを固定したまま略90度回転できるように、運動目的及び拘束条件が設定されてもよい。このようなピボット動作を適用することにより、施術部位を更に多くの方向から観察できるようになるため、ユーザの利便性を更に向上させることができる。
なお、図12に示す例では、撮像ユニット713が円錐Aの底面の円周上に限り移動することができるように運動目的及び拘束条件が設定される例を示しているが、本実施形態に係るピボット動作はかかる例に限定されない。例えば、ピボット点Piの位置及び円錐A、Bの頂点の角度θは固定したまま、ピボット点Piと撮像ユニット713との距離は自由に移動できるように、運動目的及び拘束条件が設定されてもよい。このようなピボット動作を適用することにより、角度は固定したまま撮像ユニット713と施術部位との距離だけを変えることができるようになるため、撮像ユニット713の焦点距離(フォーカス)を適宜調整することにより施術部位を拡大又は縮小して観察する等、よりユーザの要求に応える施術部位の観察が可能となる。
次に、図13を参照して、図12に示したようなピボット動作を実現するための運動目的及び拘束条件について詳しく説明する。図13を参照すると、撮像ユニット713を有するアーム部710がピボット点Piを基点としてピボット動作を行っている様子が図示されている。なお、図13では、撮像ユニット713とピボット点Piとの距離が一定に保たれた状態でのピボット動作を例に挙げて説明を行う。アーム部710は、複数の関節部711a、711b、711cと複数のリンク712a、712b、712cを有し、本実施形態に係る全身協調制御及び理想関節制御によってその駆動が制御されているとする。例えば、アーム部710及びその構成部材は、図7に示した本実施形態に係るアーム部420及びその構成部材と同様の構成を有する。
ここで、アーム部710の支点である原点OAを零点とするアーム座標系と、空間上の原点OSを零点とする空間座標系を考える。アーム部710の運動はアーム座標系で管理されている。なお、アーム座標系及び空間座標系は、相互の座標系への座標変換が可能であるように定義される。
空間座標系から見た撮像中心をPwとする。また、アーム座標系において、撮像ユニット713とリンク712cとを接続する関節部711cから、撮像ユニット713自体の長さDと撮像ユニット713の焦点距離fだけ離れた位置をピボット点Piとする。
この状態で、ピボット点Piと撮像中心Pwとが一致した状態でアーム部710が駆動されるように、運動目的及び拘束条件を設ける。すなわち、アーム座標系におけるピボット点Piを空間座標系における撮像中心Pwに固定するような拘束をアーム座標系において設ける。また、運動目的として、撮像ユニット713がピボット点Pi(すなわち撮像中心Pw)を頂点とする円錐の面上に位置するような座標や、撮像ユニット713がピボット点Piを向くような撮像ユニット713の姿勢が設定される。このような拘束条件及び運動目的の下で全身協調制御が行われることにより、アーム部710の動作によって撮像ユニット713の位置及び姿勢が変化したとしても、撮像ユニット713の向きは常に撮像中心Pw(すなわち、ピボット点Pi)を向いたまま、かつ、撮像ユニット713と撮像中心Pwとの距離が焦点距離fに保たれたままとなる。従って、撮像ユニット713と撮像中心Pwとの距離が一定に保たれた状態でのピボット動作が実現される。撮像ユニット713と撮像中心Pw(又はピボット点Pi)との距離を変化させながらピボット動作を行う際には、上述したピボット点Piの設定方法を変更すればよい。具体的には、例えば、アーム座標系において、関節部711cから撮像ユニット713自体の長さDと任意の距離だけ離れた位置をピボット点Piとし、当該任意の距離を可変なパラメータとすればよい。
なお、上述したピボット動作とパワーアシスト動作とが組み合わされて用いられてもよい。ピボット動作とパワーアシスト動作とが組み合わされて用いられる場合、例えばユーザが手動で撮像部140を移動させる際に、ユーザは無重力下で撮像部140を移動させているような感覚でより少ない力で撮像部140を移動させることができるとともに、撮像部140の移動位置は円錐の面内に制限される。従って、ピボット動作時における撮像部140の移動の操作性が向上する。
以上、本実施形態に係る運動目的の具体例として、パワーアシスト動作及びピボット動作について説明した。なお、本実施形態に係る運動目的はかかる例に限定されない。本実施形態では、例えば以下のような運動目的も実現可能である。
例えば、撮像部140の位置が所定の点で固定されるように、撮像部140の座標が運動目的として設定されてもよい。この場合、例えばアーム部120の撮像部140以外の構成部材に外部から力が与えられた際に、関節部130及びリンクも所定の位置で固定され移動しないように運動目的及び拘束条件を設定することも可能であるし、関節部130及びリンクは与えられた外力に応じて移動するものの撮像部140の位置は固定されるように運動目的及び拘束条件を設定することも可能である。後者の場合、例えば、アーム部120が作業の妨げとなり移動させようとする際に、撮像部140による撮影画像は固定されたままアーム部120の他の構成部材の位置及び姿勢を移動させるといった、より自由度の高い制御が実現される。
また、例えば、駆動中にアーム部120がヒトやモノとの接触を検出した場合に、即座にアーム部120の駆動を停止する動作が実現されるように、運動目的及び拘束条件が設定されてもよい。このような動作を行うことにより、アーム部120がヒトやモノに衝突する際の危険性を低減することができる。なお、アーム部120がヒトやモノと接触したことは、例えば関節状態検出部132によって関節部130に加えられた外トルクの変化によって検出されてもよい。
また、例えば、撮像部140が空間上において所定の軌跡上を移動するように運動目的が設定されてもよい。具体的には、当該所定の軌跡を表す各点の座標が運動目的として設定されてもよい。このように運動目的が設定されることにより、撮像部140の移動可能範囲が当該軌跡上に制限される。更に、当該軌跡を表す各点の座標と併せて、撮像部140の速度や各点を通過する時間等が運動目的として設定されることにより、撮像部140が所定の軌跡上を所定のタイミングで自動的に移動するオートメーション化された駆動を行うこともできる。このような運動設定に従った駆動制御は、例えばロボットアーム装置10が所定の作業を自動的に繰り返し行う場合に有効である。
また、例えば、空間上の所定の領域内にアーム部120が侵入しない動作が実現されるように、運動目的及び拘束条件が設定されてもよい。図6を参照して説明したように、本実施形態においてはユーザが表示画面を見ながら手術を行う。従って、ユーザと表示画面との間の領域にアーム部120が位置すると、ユーザの視界を遮ることとなり、手術の効率低下につながる恐れがある。従って、例えばユーザと表示画面の間の領域をアーム部120の侵入禁止領域として設定することにより、手術の効率化を図ることができる。
ここで、このようにアーム部120に侵入禁止領域を設定する場合には、アーム部120の自由度が6自由度よりも多いことが好ましい。何故ならば、6自由度よりも多い自由度を冗長自由度として利用することができるため、6自由度の駆動を確保しつつ、上記のような侵入禁止領域等にも対応できるからである。このような6自由度よりも多い自由度を有するアーム部を備えるロボットアーム装置の構成について、図14を参照して詳しく説明する。
図14は、本開示の一実施形態に係るロボットアーム装置における冗長自由度を有する変形例の外観を示す概略図である。なお、図14においても、図7で定義した方向と同一の座標軸を図示している。
図14を参照すると、本変形例に係るロボットアーム装置450は、ベース部460及びアーム部470を備える。また、アーム部470は、複数の関節部471a〜471gと、関節部471a〜471gによって互いに連結される複数のリンク472a〜472dと、アーム部470の先端に設けられる撮像ユニット473を有する。ここで、図14に示すロボットアーム装置450は、図7を参照して説明したロボットアーム装置400に対してアーム部470の自由度が1つ増加した構成に対応している。従って、ベース部460、個々の関節部471a〜471g及びリンク472a〜472d、並びに、撮像ユニット473の機能及び構成は、図7を参照して説明したロボットアーム装置400のベース部410、個々の関節部421a〜421f及びリンク422a〜422c、並びに、撮像ユニット423の機能及び構成と同様であるため、詳細な説明は省略する。以下では、ロボットアーム装置400との相違点であるアーム部470の構成について主に説明する。
本実施形態に係るロボットアーム装置450は、7つの関節部471a〜471gを有し、アーム部470の駆動に関して7自由度が実現されている。具体的には、リンク472aの一端がベース部460と連結され、リンク472aの他端が関節部421aを介してリンク472bの一端と連結される。また、リンク422bの他端が関節部471b、471cを介してリンク472cの一端と連結される。更に、リンク472cの他端が関節部471d、471eを介してリンク472dの一端と連結され、472dの他端が関節部471f、471gを介して撮像ユニット473と連結される。このように、ベース部460を支点として、複数のリンク472a〜472dの端同士が、関節部471a〜471gによって互いに連結されることにより、ベース部460から延伸されるアーム部470が構成される。
また、図14に示すように、関節部471a、471c、471e、471gは、接続されている各リンク472b〜472dの長軸方向及び接続されている撮像ユニット473の撮影方向を回転軸方向とするように設けられており、関節部471b、471d、471fは、接続されている各リンク472c〜472d及び撮像ユニット473の連結角度をy−z平面内において変更する方向であるx軸方向を回転軸方向とするように設けられている。このように、本変形例においては、関節部471a、471c、471e、471gは、いわゆるヨーイングを行う機能を有し、関節部471b、471d、471fは、いわゆるピッチングを行う機能を有する。
このようなアーム部470の構成を有することにより、本実施形態に係るロボットアーム装置450ではアーム部470の駆動に対して7自由度が実現されるため、アーム部470の可動範囲内において撮像ユニット473を空間内で自由に移動させることができるとともに、冗長自由度を有する。図14では、図7と同様に、撮像ユニット473の移動可能範囲の一例として半球を図示している。半球の中心点が撮像ユニット473によって撮影される施術部位の撮影中心であるとすれば、撮像ユニット473の撮影中心を半球の中心点に固定した状態で、撮像ユニット473を半球の球面上で移動させることにより、施術部位をあらゆる角度から撮影することができる。本実施形態に係るロボットアーム装置450は、更に1つの冗長自由度を有することにより、このような撮像ユニット473の半球上の移動とともに、アーム部470の軌道を制限することができ、上述した侵入禁止領域のような拘束条件にも容易に対応することができる。侵入禁止領域を設定することにより、例えば、撮像ユニット473によって撮影された画像が表示されるモニタと施術者及びスタッフとの間にアーム部470が存在しないようにアーム部470の駆動を制御することができ、施術者及びスタッフによるモニタの視認が妨げられることを防ぐことができる。また、侵入禁止領域を設定することにより、施術者及びスタッフや周囲の他の機器との干渉(接触)を避けてアーム部470が移動するようにアーム部470の駆動を制御することが可能となる。
(4−3.ロボットアーム制御方法の処理手順)
次に、図15を参照して、本開示の一実施形態に係るロボットアーム制御方法の処理手順について説明する。図15は、本開示の一実施形態に係るロボットアーム制御方法の処理手順を示すフロー図である。なお、以下では、図11に示すロボットアーム制御システム1の構成によって本実施形態に係るロボットアーム制御方法が実現される場合を例に挙げて説明を行う。従って、本実施形態に係るロボットアーム制御方法は医療用ロボットアーム制御方法であると言える。なお、以下の本実施形態に係るロボットアーム制御方法の処理手順についての説明において、図11に示すロボットアーム制御システム1の各構成の機能については、上記(4−2−4.ロボットアーム制御システムの構成)で既に説明しているため、詳細な説明は省略する。
図15を参照すると、本実施形態に係るロボットアーム制御方法では、まず、ステップS801で、関節状態検出部132によって関節部130の状態が検出される。ここで、関節部130の状態とは、例えば関節部130における回転角度、発生トルク及び/又は外トルクである。
次にステップS803で、ステップS801で検出された関節部130の状態に基づいて、アーム状態取得部241によってアーム状態が取得される。アーム状態とは、アーム部120の運動の状態のことであり、例えばアーム部120の各構成部材の位置、速度、加速度やアーム部120の各構成部材に作用する力等であってよい。
次にステップS805で、ステップS803で取得されたアーム状態に基づいて、演算条件設定部242によって全身協調制御における演算で用いられる運動目的及び拘束条件が設定される。なお、演算条件設定部242はアーム状態に基づいて運動目的を設定しなくてもよく、例えば、入力部210からユーザによって入力されるアーム部120の駆動についての指示情報に基づいて運動目的を設定してもよいし、記憶部220に予め格納されている運動目的を用いてもよい。更に、上記の各方法を適宜組み合わせることにより、運動目的を設定してもよい。また、演算条件設定部242は記憶部220に予め格納されている拘束条件を用いてもよい。
次にステップS807で、アーム状態、運動目的及び拘束条件に基づいて、一般化逆動力学を用いた全身協調制御についての演算が行われ、制御値τaが算出される。なお、ステップS807で行われる処理は、図11に示す仮想力算出部243及び実在力算出部244における一連の処理、すなわち、上記(4−2−2.一般化逆動力学について)で説明した一連の処理であってよい。
次にステップS809で、外乱推定値τdが算出され、当該外乱推定値τdを用いて、理想関節制御についての演算が行われ、制御値τaから指令値τが算出される。なお、ステップS809で行われる処理は、図11に示す理想関節制御部250における一連の処理、すなわち、上記(4−2−3.理想関節制御について)で説明した一連の処理であってよい。
最後にステップS811で、指令値τに基づいて、駆動制御部111によって関節部130の駆動が制御される。
以上、図15を参照して、本実施形態に係るロボットアーム制御方法の処理手順について説明した。なお、本実施形態においては、図15に示すステップS801〜ステップS811における処理が、アーム部120を用いた作業が行われている間繰り返し行われる。従って、本実施形態においては、アーム部120を用いた作業が行われている間、アーム部120の駆動制御が継続的に行われる。
(4−4.医療用ロボットアーム装置についてのまとめ)
以上説明したように、本実施形態においては、以下の効果を得ることができる。
以上説明したように、本実施形態によれば、ロボットアーム装置10における多リンク構造体であるアーム部120が、少なくとも6自由度以上の自由度を有するとともに、当該アーム部120を構成する複数の関節部130のそれぞれの駆動が駆動制御部111によって制御される。そして、当該アーム部120の先端には医療用器具が設けられる。このように、各関節部130の駆動が制御されることにより、より自由度の高いアーム部120の駆動制御が実現され、よりユーザにとって操作性の高い医療用のロボットアーム装置10が実現される。
具体的には、本実施形態によれば、ロボットアーム装置10において、関節状態検出部132によって関節部130の状態が検出される。そして、制御装置20において、当該関節部130の状態と、運動目的及び拘束条件とに基づいて、アーム部120の駆動を制御するための一般化逆動力学を用いた全身協調制御に関する各種の演算が行われ、演算結果としてのトルク指令値τが算出される。更に、ロボットアーム装置10において、当該トルク指令値τに基づいてアーム部120の駆動が制御される。このように、本実施形態においては、一般化逆動力学を用いた全身協調制御により、アーム部120の駆動が制御される。従って、力制御によるアーム部120の駆動制御が実現され、よりユーザにとって操作性の高いロボットアーム装置が実現される。また、本実施形態では、全身協調制御において、例えばピボット動作やパワーアシスト動作といった、よりユーザの利便性を向上させる各種の運動目的を実現する制御が可能となる。更に、本実施形態においては、例えばアーム部120を手動で移動させたり、ペダルからの操作入力により移動させたりといった、多様な駆動手段が実現されるため、ユーザの利便性の更なる向上が実現される。
また、本実施形態においては、アーム部120の駆動制御について、全身協調制御と併せて理想関節制御が適用される。理想関節制御においては、関節部130内部の摩擦や慣性等の外乱成分を推定し、推定した外乱成分を用いたフィードフォワード制御が行われる。従って、摩擦等の外乱成分がある場合であっても、関節部130の駆動について理想的な応答を実現することができる。よって、アーム部120の駆動制御において、振動等の影響がより少ない、高精度の応答性と高い位置決め精度や安定性が実現される。
更に、本実施形態においては、アーム部120を構成する複数の関節部130のそれぞれが、例えば図8に示すような、理想関節制御に適合した構成を有し、各関節部130における回転角度、発生トルク及び粘性抵抗係数を電流値によって制御することができる。このように、各関節部130の駆動が電流値によって制御され、また、全身協調制御により各関節部130の駆動がアーム部120全体の状態を把握しながら制御されるため、カウンターバランスが不要となり、ロボットアーム装置10の小型化が実現される。
このように、本実施形態によれば、上記(4−1.医療用ロボットアーム装置についての検討)で説明したロボットアーム装置に求められる性能を全て満たすことができる。従って、本実施形態に係るロボットアーム装置を用いた各種の施術において、より効率的に施術を行うことができ、ユーザや患者の疲労や負担をより軽減することが実現される。
また、本実施形態では、力制御によってロボットアーム装置10のアーム部120が駆動されることにより、万が一駆動中にアーム部120が施術者やスタッフ等に干渉(接触)したとしても、アーム部120が必要以上の力を発生せず、アーム部120が安全に停止する。そして、当該干渉から解放されれば、設定された運動目的に従って所望の位置までアーム部120が移動し、施術が継続される。このように、本実施形態では、ロボットアーム装置10の駆動制御に力制御が用いられることにより、駆動中におけるアーム部120と周囲の物体との干渉に対して、より高い安全性が確保される。
なお、例えば、上記実施形態では、ロボットアーム装置のアーム部の先端ユニットが撮像ユニットであり、図6に示すように手術時に当該撮像ユニットによって施術部位を撮影する場合について説明したが、本実施形態はかかる例に限定されない。本実施形態に係るロボットアーム制御システム1は、他の先端ユニットを有するロボットアーム装置が他の用途に用いられる場合であっても適用可能である。例えば、先端ユニットは内視鏡や腹腔鏡であってもよいし、超音波検査器や胃カメラ等、他の検査機器であってもよい。
例えば、腹腔鏡を用いた施術では、患者の体内に腹腔鏡を挿入し、当該腹腔鏡によって撮影された映像を観察しながら、別途挿入される鉗子や電気メス等の術具を用いて各種の処置が行われる。このような施術方法においては、例えば腹腔鏡をロボットアームによって操作しながら、処置用の術具を施術者が直接操作することができれば、1人のユーザによって施術を行うことができ、より効率的な施術が可能となる。しかしながら、一般的な既存のバランス型アームにおいては、操作性の観点から、1人のユーザが、自身の手による術具の操作とロボットアームによる腹腔鏡の操作とを同時に行うことは困難であった。よって、既存の方法では、複数名のスタッフが必要であり、1人の施術者がロボットアームによって腹腔鏡を操作しながら、他の者が術具を用いた処置を行うことが一般的であった。しかし、本実施形態に係るロボットアーム装置では、上述したように、全身協調制御による高い操作性が実現される。また、理想関節制御により、振動等の影響がより少ない、高精度の応答性と高い安定性が実現される。従って、本実施形態によれば、ロボットアーム装置による観察用の腹腔鏡の操作と、自身の手による術具の操作とを、施術者1人で容易に行うことが可能となる。
また、本実施形態に係るロボットアーム装置は、医療以外の用途に用いられてもよい。本実施形態に係るロボットアーム装置では、理想関節制御により、高精度の応答性と高い安定性が実現されるため、例えば高い精度が求められる工業部品の加工や組み立て等の作業にも対応可能である。
また、上記実施形態では、ロボットアーム装置の関節部が回転機構を有し、当該回転機構の回転駆動が制御されることによってアーム部の駆動が制御される場合について説明したが、本実施形態はかかる例に限定されない。例えば、本実施形態に係るロボットアーム装置においては、アーム部を構成するリンクがリンクの延伸方向に伸縮する機構(例えば油圧で駆動するものやボールねじを駆動するもの等)を有し、リンクの長さが可変であってもよい。リンクの長さが可変である場合、例えば関節部における回転に加えてリンクの伸縮も考慮した全身協調制御によって、所望の運動目的を達成するようにアーム部の駆動が制御される。
また、上記実施形態では、ロボットアーム装置におけるアーム部の自由度が6自由度以上である場合について説明したが、本実施形態はかかる例に限定されない。また、ロボットアーム装置におけるアーム部を構成する複数の関節部が全て理想関節制御に対応するアクチュエータを有する場合について説明したが、本実施形態はかかる例に限定されない。本実施形態においては、ロボットアーム装置の用途に応じて多様な運動目的が設定され得る。従って、設定された運動目的が達成可能であれば、アーム部は、6自由度よりも低い自由度を有してもよいし、アーム部を構成する複数の関節部のうちの一部が一般的な関節機構を有する関節部であってもよい。このように、本実施形態においては、アーム部の構成は、運動目的を達成可能であるように構成されればよく、ロボットアーム装置の用途に応じて適宜構成されてよい。
<5.ハードウェア構成>
次に、図16を参照しながら、図1及び図11に示す、本実施形態に係るロボットアーム装置10及び制御装置20のハードウェア構成について、詳細に説明する。図16は、本開示の一実施形態に係るロボットアーム装置10及び制御装置20のハードウェア構成の一構成例を示す機能ブロック図である。
ロボットアーム装置10及び制御装置20は、主に、CPU901と、ROM903と、RAM905と、を備える。また、ロボットアーム装置10及び制御装置20は、更に、ホストバス907と、ブリッジ909と、外部バス911と、インターフェース913と、入力装置915と、出力装置917と、ストレージ装置919と、ドライブ921と、接続ポート923と、通信装置925とを備える。
CPU901は、演算処理装置及び制御装置として機能し、ROM903、RAM905、ストレージ装置919又はリムーバブル記録媒体927に記録された各種プログラムに従って、ロボットアーム装置10及び制御装置20内の動作全般又はその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM905は、CPU901が使用するプログラムや、プログラムの実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバス等の内部バスにより構成されるホストバス907により相互に接続されている。CPU901は、本実施形態においては、例えば、図11に示すアーム制御部110及び制御部230に対応している。
ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。また、外部バス911には、インターフェース913を介して、入力装置915、出力装置917、ストレージ装置919、ドライブ921、接続ポート923及び通信装置925が接続される。
入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、レバー及びペダル等、ユーザが操作する操作手段である。また、入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール手段(いわゆる、リモコン)であってもよいし、ロボットアーム装置10及び制御装置20の操作に対応した携帯電話やPDA等の外部接続機器929であってもよい。さらに、入力装置915は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などから構成されている。ロボットアーム装置10及び制御装置20のユーザは、この入力装置915を操作することにより、ロボットアーム装置10及び制御装置20に対して各種のデータを入力したり処理動作を指示したりすることができる。入力装置915は、本実施形態においては、例えば、図11に示す入力部210に対応する。また、本実施形態においては、入力装置915を介したユーザによる操作入力により、アーム部120の駆動における運動目的が設定され、当該運動目的に従って全身協調制御が行われてもよい。
出力装置917は、取得した情報をユーザに対して視覚的又は聴覚的に通知することが可能な装置で構成される。このような装置として、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置及びランプ等の表示装置や、スピーカ及びヘッドホン等の音声出力装置や、プリンタ装置等がある。出力装置917は、例えば、ロボットアーム装置10及び制御装置20が行った各種処理により得られた結果を出力する。具体的には、表示装置は、ロボットアーム装置10及び制御装置20が行った各種処理により得られた結果を、テキスト又はイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。本実施形態においては、アーム部120の駆動制御に関する各種の情報が、あらゆる形式で出力装置917から出力されてよい。例えば、アーム部120の駆動制御における、アーム部120の各構成部材の移動の軌跡が、グラフの形式で出力装置917の表示画面に表示されてもよい。なお、例えば、図11に示す表示装置30は、出力装置917の表示装置としての機能及び構成と、当該表示装置の駆動を制御するための制御部等の構成を備える装置であってもよい。
ストレージ装置919は、ロボットアーム装置10及び制御装置20の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD(Hard Disk Drive)等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等により構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ等を格納する。ストレージ装置919は、本実施形態においては、例えば、図1及び図11に示す記憶部220に対応する。また、本実施形態においては、ストレージ装置919は、一般化逆動力学を用いた全身協調制御に関する演算における演算条件(運動目的及び拘束条件)を記憶することができ、ロボットアーム装置10及び制御装置20はストレージ装置919に記憶されているこれらの演算条件を用いて全身協調制御に関する演算を行ってもよい。
ドライブ921は、記録媒体用リーダライタであり、ロボットアーム装置10及び制御装置20に内蔵、あるいは外付けされる。ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク又は半導体メモリ等のリムーバブル記録媒体927に記録されている情報を読み出して、RAM905に出力する。また、ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク又は半導体メモリ等のリムーバブル記録媒体927に記録を書き込むことも可能である。リムーバブル記録媒体927は、例えば、DVDメディア、HD−DVDメディア又はBlu−ray(登録商標)メディア等である。また、リムーバブル記録媒体927は、コンパクトフラッシュ(登録商標)(CF:CompactFlash)、フラッシュメモリ又はSDメモリカード(Secure Digital memory card)等であってもよい。また、リムーバブル記録媒体927は、例えば、非接触型ICチップを搭載したICカード(Integrated Circuit card)又は電子機器等であってもよい。本実施形態においては、アーム部120の駆動制御に関する各種の情報が、ドライブ921によって、各種のリムーバブル記録媒体927から読み出され、又は各種のリムーバブル記録媒体927に書き込まれてよい。
接続ポート923は、機器をロボットアーム装置10及び制御装置20に直接接続するためのポートである。接続ポート923の一例として、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)ポート等がある。接続ポート923の別の例として、RS−232Cポート、光オーディオ端子、HDMI(登録商標)(High−Definition Multimedia Interface)ポート等がある。この接続ポート923に外部接続機器929を接続することで、ロボットアーム装置10及び制御装置20は、外部接続機器929から直接各種のデータを取得したり、外部接続機器929に各種のデータを提供したりする。本実施形態においては、アーム部120の駆動制御に関する各種の情報が、接続ポート923を介して、各種の外部接続機器929から読み出され、又は各種の外部接続機器929に書き込まれてよい。
通信装置925は、例えば、通信網(ネットワーク)931に接続するための通信デバイス等で構成された通信インターフェースである。通信装置925は、例えば、有線若しくは無線LAN(Local Area Network)、Bluetooth(登録商標)又はWUSB(Wireless USB)用の通信カード等である。また、通信装置925は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ又は各種通信用のモデム等であってもよい。この通信装置925は、例えば、インターネットや他の通信機器との間で、例えばTCP/IP等の所定のプロトコルに則して信号等を送受信することができる。また、通信装置925に接続される通信網931は、有線又は無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信又は衛星通信等であってもよい。本実施形態においては、アーム部120の駆動制御に関する各種の情報が、通信装置925によって、通信網931を介して外部の他の機器との間で相互に送受信されてもよい。
以上、本開示の実施形態に係るロボットアーム装置10及び制御装置20の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。なお、図16では図示しないが、ロボットアーム装置10は、図1及び図11に示すアーム部120に対応する各種の構成を当然備える。
なお、上述のような本実施形態に係るロボットアーム装置10、制御装置20及び表示装置30の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
<6.補足>
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)複数のリンクが関節部によって連結されて構成され、撮像部を接続可能なアーム部、を備え、少なくとも前記アーム部の幾何情報及び前記撮像部の焦点位置情報を含む内部モデルが、前記撮像部が実空間上の基準点に向けられた状態において取得される内部モデル情報を用いて更新される、ロボットアーム装置。
(2)前記内部モデル情報は、前記アーム部の幾何情報、前記撮像部の焦点位置情報及び前記撮像部の視野領域の位置ずれ量を表す位置ずれ情報を含む、前記(1)に記載のロボットアーム装置。
(3)前記アーム部及び前記撮像部の位置及び姿勢が互いに異なる複数の状態において、互いに異なる複数の前記内部モデル情報が取得され、前記内部モデルは、取得された複数の内部モデル情報を用いて更新される、前記(1)又は(2)に記載のロボットアーム装置。
(4)前記内部モデル情報は、互いに異なる複数の基準点に対してそれぞれ取得され、前記内部モデルは、当該複数の基準点に対応する複数の内部モデル情報を用いて更新される、前記(1)〜(3)のいずれか1項に記載のロボットアーム装置。
(5)複数の前記内部モデル情報に基づいて、前記内部モデルにおける座標系と実空間における座標系とのずれ量を未知数として含む、前記内部モデルを記述する複数の内部モデル式が作成され、前記複数の内部モデル式を用いて前記内部モデルが更新される、前記(3)又は(4)に記載のロボットアーム装置。
(6)前記基準点は、実空間上における座標が既知の点として設定される、前記(1)〜(5)のいずれか1項に記載のロボットアーム装置。
(7)前記基準点は、前記アーム部に取り付けられる冶具上の所定の点として設定される、前記(1)〜(5)のいずれか1項に記載のロボットアーム装置。
(8)前記関節部の状態に基づいて前記関節部の駆動を制御する駆動制御部、を更に備え、前記駆動制御部は、複数の前記関節部の状態に基づいて取得される前記アーム部の状態に基づく、前記アーム部の協調制御のための制御値に基づいて前記関節部の駆動を制御する、前記(1)〜(7)のいずれか1項に記載のロボットアーム装置。
(9)前記駆動制御部は、検出された複数の前記関節部の状態に基づいて取得される前記アーム部の状態と、前記アーム部の運動目的及び拘束条件と、を用いた一般化逆動力学による前記アーム部の全身協調制御のための制御値、に基づいて前記関節部の駆動を制御する、前記(8)に記載のロボットアーム装置。
(10)前記制御値は、前記アーム部に作用する力と前記アーム部に発生する加速度との関係を記述する操作空間において前記運動目的を達成するために作用される仮想力と、前記拘束条件に基づいて前記仮想力が前記関節部を駆動するための実在力と、に基づいて算出される、前記(9)に記載のロボットアーム装置。
(11)前記駆動制御部は、前記制御値に対して外乱の影響を補正することにより算出される指令値に基づいて前記関節部の駆動を制御する、前記(8)又は(9)に記載のロボットアーム装置。
(12)前記指令値は、検出された前記関節部の状態に基づいて推定される前記関節部の駆動に対する外乱の影響を表す外乱推定値を用いて、前記制御値を補正することにより算出される、前記(11)に記載のロボットアーム装置。
(13)前記駆動制御部は、前記撮像部の光軸上に実空間上の所定の点が位置するという拘束条件に基づいて前記関節部の駆動を制御することにより、前記撮像部が前記所定の点を向いた状態で前記所定の点を頂点とするピボット動作を行うように、前記アーム部の駆動を制御する、前記(9)〜(12)のいずれか1項に記載のロボットアーム装置。
(14)前記駆動制御部は、前記撮像部の光軸上の所定の点である第1の点が実空間上の所定の点である第2の点に固定されるという拘束条件に基づいて前記関節部の駆動を制御することにより、前記撮像部が前記第2の点を向いた状態で前記第2の点を中心とするピボット動作を行うように、前記アーム部の駆動を制御する、前記(9)〜(12)のいずれか1項に記載のロボットアーム装置。
(15)複数の前記関節部は、前記関節部の状態を検出する関節状態検出部を有し、前記関節状態検出部は、前記関節部での発生トルク及び前記関節部に外部から加えられる外トルクを検出するトルク検出部と、前記関節部の回転角度を検出する回転角度検出部と、を少なくとも有する、前記(1)〜(14)のいずれか1項に記載のロボットアーム装置。
(16)前記制御値は、前記関節部での発生トルクである、前記(8)〜(14)のいずれか1項に記載のロボットアーム装置。
(17)前記撮像部は顕微鏡である、前記(1)〜(16)のいずれか1項に記載のロボットアーム装置。
(18)前記ロボットアーム装置は医療行為に用いられる、前記(1)〜(17)のいずれか1項に記載のロボットアーム装置。
(19)複数のリンクが関節部によって連結されて構成されるアーム部に設けられる撮像部が実空間上の基準点に向けられた状態において、少なくとも前記アーム部の幾何情報及び前記撮像部の焦点位置情報を含む内部モデルを規定するための内部モデル情報を取得することと、取得した前記内部モデル情報を用いて、前記内部モデルを更新することと、を含む、キャリブレーション方法。
(20)コンピュータのプロセッサに、複数のリンクが関節部によって連結されて構成されるアーム部に設けられる撮像部が実空間上の基準点に向けられた状態において、少なくとも前記アーム部の幾何情報及び前記撮像部の焦点位置情報を含む内部モデルを規定するための内部モデル情報を取得する機能と、取得した前記内部モデル情報を用いて、前記内部モデルを更新する機能と、を実現させる、プログラム。