以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.アクチュエータの構成
1−1.全体構成
1−2.エンコーダの構成
2.回転角度検出システムの構成
3.回転角度検出方法の処理手順
4.故障の検出について
5.医療用ロボットアーム装置への適用
6.適用例
6−1.医療用ロボットアーム装置についての検討
6−2.本開示の一実施形態
6−2−1.ロボットアーム装置の外観
6−2−2.一般化逆動力学について
6−2−2−1.仮想力算出処理
6−2−2−2.実在力算出処理
6−2−3.理想関節制御について
6−2−4.ロボットアーム制御システムの構成
6−2−5.運動目的の具体例
6−3.ロボットアーム制御方法の処理手順
6−4.ハードウェア構成
6−5.医療用ロボットアーム装置についてのまとめ
7.補足
<1.アクチュエータの構成>
まず、本開示の一実施形態に係るアクチュエータの構成について説明する。以下では、まず、(1−1.全体構成)で、本実施形態に係るアクチュエータの全体構成について説明する。次に、(1−2.エンコーダの構成)で、本実施形態に係るアクチュエータに搭載される絶対角度エンコーダの一構成例について説明する。なお、以下では、本開示に係る一実施形態として、本開示に係るアクチュエータがロボットアームの関節部に適用される場合を例に挙げて説明を行う。ただし、本開示に係るアクチュエータが適用され得る対象はかかる例に限定されず、当該アクチュエータは、例えば、手術に用いられる電動術具、自動車の電動ステアリング、遊園地等に設置される電動の遊具等、安全性の観点から高精度な角度の検出が求められる装置に対して好適に適用され得る。また、本開示に係るアクチュエータは、例えば自動車のハンドルを模したゲーム用又はシミュレータ用のコントローラ等、操作性の観点から高精度な角度の検出が求められる装置に対して適用されてもよい。
(1−1.全体構成)
まず、図1を参照して、本実施形態に係るアクチュエータの全体構成について説明する。図1は、本実施形態に係るアクチュエータの全体構成を示す分解斜視図である。
図1を参照すると、本実施形態に係るアクチュエータ300は、モータ310と、減速機320と、2つのロータリエンコーダ330、340(エンコーダ330、340)と、出力軸350と、ハウジング360と、を備える。アクチュエータ300では、モータ310の回転軸の回転が減速機320によって所定の減速比で減速され、出力軸350を介して後段の他の部材に伝達されることにより、当該他の部材が駆動されることとなる。また、エンコーダ330、340によって、モータ310の回転軸の回転角度及び出力軸350の回転軸の回転角度がそれぞれ検出される。
ここで、モータ310の回転角度は、減速機320の入力軸における回転角度でもあるため、以下の説明では、モータ310の回転角度及び回転速度のことを、それぞれ、入力軸の回転角度及び回転速度とも呼称する。また、出力軸350における回転軸の回転角度及び回転速度のことを、それぞれ、出力軸の回転角度及び回転速度とも呼称する。本実施形態は、減速機320を介して入力軸及び出力軸の双方に絶対角度エンコーダを配置することにより、出力軸の回転角度を高精度に検出するとともに、安全上求められる各種の要件を満たすことを実現するものである。
モータ310は、所定の制御値(電流値)が与えられた場合に、当該制御値に対応する回転速度で回転軸を回転させることにより、駆動力を生み出す駆動機構である。本実施形態では、モータ310としてブラシレスモータが用いられる。一般的に、モータでは、内部に設けられる回転子の回転に応じてコイルに流れる電流の向きを切り換え、磁界の方向を変化させる必要がある。ブラシレスモータでは、当該電流の向きの切り換えが、ブラシを用いて機械的に行われるのではなく、ブラシの代わりに半導体スイッチ等を用いて電気的に行われる。
モータ310の回転軸には、減速機320が連結される。減速機320は、連結されたモータ310の回転軸の回転速度(すなわち、入力軸の回転速度)を、所定の減速比で減速させて出力軸350に伝達する。本実施形態では、減速機320の構成は特定のものに限定されず、減速機320としては各種の公知の種類の減速機が用いられてよい。ただし、減速機320としては、例えばハーモニックドライブ(登録商標)等の、高精度に減速比が設定可能なものが用いられることが好ましい。減速機320の具体的な構成は、アクチュエータ300の構成に応じて、所望の回転速度及びトルクを出力軸350の後段に接続される部材に伝達するように、適宜設計され得る。
エンコーダ330は、入力軸の回転角度(すなわち、モータ310の回転角度)を検出する。本実施形態では、エンコーダ330は、絶対角度エンコーダであり、入力軸の絶対的な角度位置を検出することができる。以下では、エンコーダ330のことを入力軸エンコーダ330又は絶対角度エンコーダ330とも呼称する。エンコーダ330の具体的な構成については、下記(1−2.エンコーダの構成)で説明するため、ここでは詳細な説明は省略する。ただし、本実施形態では、エンコーダ330は絶対角度エンコーダであればよく、その構成は下記(1−2.エンコーダの構成)で説明する構成に限定されず、任意であってよい。
ここで、上述したように、モータ310はブラシレスモータであるため、電流の向きを切り換えるために、回転子の回転を検出するセンサ(例えばモータ駆動用ホールセンサ)が必要となる。当該回転子の回転は、入力軸の回転に対応しているため、本実施形態では、入力軸に設けられるエンコーダ330が、当該モータ駆動用ホールセンサの機能を兼ねることができる。このように、本実施形態では、エンコーダ330によって検出された入力軸の回転角度に基づいてモータ310が駆動されてよく、モータ駆動用ホールセンサは設けられなくてもよい。これにより、構成部材を減らすことができるため、アクチュエータ300の小型化、低コスト化を図ることができる。
また、入力軸にエンコーダ330が設けられることにより、減速機320の減速比を介している分、出力軸の回転角度を高精度に検出することが可能となる。例えば、減速比が1:100であれば、入力軸の回転角度が0(度)〜360(度)の間で検出されたとき、出力軸の回転角度は0(度)〜3.6(度)の間で変化していることになる。つまり、入力軸の回転角度を検出することは、出力軸の回転角度を減速比の分だけ拡大して検出していることに対応している。従って、エンコーダ330による入力軸の回転角度の検出値に基づいて、出力軸の回転角度を検出することにより、出力軸の回転角度を高分解能で検出することができる。なお、このような、入力軸の回転角度の検出値に基づいて、出力軸の回転角度を検出する具体的な方法については、下記<2.回転角度検出システムの構成>で詳しく説明する。
エンコーダ340は、出力軸の回転角度を検出する。本実施形態では、エンコーダ340は、絶対角度エンコーダであり、出力軸の絶対的な角度位置を検出することができる。以下では、エンコーダ340のことを出力軸エンコーダ340又は絶対角度エンコーダ340とも呼称する。なお、エンコーダ340は、エンコーダ330と同様の構成であってよく、例えば、エンコーダ340としては、下記(1−2.エンコーダの構成)で説明する構成が好適に適用され得る。ただし、本実施形態はかかる例に限定されず、エンコーダ340は絶対角度エンコーダであればよく、その構成は任意であってよい。
ハウジング360は、略円筒形の形状を有し、各構成部材が内部に格納される。ハウジング360内に各構成部材が格納された状態で、下記<6.適用例>で説明するロボットアーム装置の関節部等の、回転駆動を伴う各部位を駆動するアクチュエータとして組み込まれることとなる。
以上、図1を参照して、本実施形態に係るアクチュエータ300の全体構成について説明した。なお、アクチュエータ300は、図示した構成以外の他の構成を更に備えてもよい。例えば、アクチュエータ300は、モータ310に電流を供給することによりモータ310を回転駆動させるドライバ回路(ドライバIC(Integrated Circuit))や、出力軸350でのトルク(すなわち、アクチュエータ300の出力トルク(発生トルク))を検出するトルクセンサ等、一般的なアクチュエータが有し得るあらゆる部材を更に備えてもよい。
(1−2.エンコーダの構成)
次に、図2及び図3を参照して、エンコーダ330、340の一構成例について説明する。図2は、本実施形態に係るエンコーダ330、340の一構成例を示す概略図である。図3は、本実施形態に係るエンコーダ330、340による角度の検出原理について説明するための説明図である。
図2に示すように、エンコーダ330、340は、2極が着磁された磁石331と、2つのホール素子332、333と、が組み合わされて構成される磁気式エンコーダである。磁石331は略円環形状を有し、当該円環形状の一端がN極、他端がS極となるような極性を帯びている。ホール素子332、333は、当該磁石331の周囲において、磁石331の円環形状の中心軸周りの回転に対して90(度)回転した位置にそれぞれ設けられる。
磁石331は、その円環形状の中心軸を回転軸として、検出対象である回転軸(本実施形態では、入力軸又は出力軸)とともに回転するように接続される。磁石331が回転することにより、ホール素子332、333によって検出される磁界は、周期的に変化することとなる。
図3では、横軸に磁石331の回転角度θ(すなわち、検出対象である回転軸の回転角度θ)を取り、縦軸にホール素子332、333の出力を取り、両者の関係性をプロットしている。ここで、ホール素子332、333は、磁石331の周囲に90(度)回転した位置に配設されているため、図3に示すように、ホール素子332、333の出力は、90(度)だけ位相がずれた波形となる。すなわち、一方のホール素子332によってサインカーブ(sinθ)が取得され、他方のホール素子333によってコサインカーブ(cosθ)が取得されることとなる。従って、回転角度θは、ホール素子332、333の出力から、下記数式(1)によって算出され得る。
例えば、規格化されたホール素子332による出力が1(これはsinθ=1に対応する)であり、規格化されたホール素子333による出力が0(これはcosθ=0に対応する)であれば、上記数式(1)からθ=arctan(1/0)≒∞≒90(度)と求めることができる。
このように、エンコーダ330、340では、2つのホール素子332、333の出力に応じて、磁石331の回転角度(すなわち検出対象である回転軸の回転角度)を、0(度)〜360(度)の範囲で一意に決定することができる。従って、例えば一旦電源が遮断され、再度起動した瞬間であっても、起動時のホール素子332、333の出力を検出することにより、回転軸の回転角度を即座に検出することが可能となる。
以上、図2及び図3を参照して、エンコーダ330、340の一構成例について説明した。なお、本実施形態では、エンコーダ330、340の構成はかかる例に限定されず、絶対角度エンコーダであれば各種のエンコーダが適用されてよい。ただし、図2に示すような磁石331及びホール素子332、333からなる絶対角度エンコーダは、構成が比較的簡易であるため、小型化が可能であり、コストの面でも優れている。従って、エンコーダ330、340として、図2に例示する構成を有する絶対角度エンコーダを用いることにより、アクチュエータ300を、より小型に、より安価に構成することが可能となる。しかしながら、その反面、図2に例示する構成を有する絶対角度エンコーダは、その角度の検出精度はそれほど高くないことが知られている。本実施形態では、上述したように、入力軸及び出力軸の双方にエンコーダ330、340を配置し、エンコーダ330による入力軸の回転角度の検出値に基づいて、出力軸の回転角度を検出することにより、図2に例示するような安価な絶対角度エンコーダを用いた場合であっても、出力軸の回転角度を高精度に検出することを可能としている。
<2.回転角度検出システムの構成>
次に、図4を参照して、本実施形態に係る回転角度検出システムの概略構成について説明する。図4は、本実施形態に係る回転角度検出システムの概略構成を示す機能ブロック図である。本実施形態では、図4に例示する構成によって、出力軸の回転角度が高精度に検出され得る。
図4を参照すると、本実施形態に係る回転角度検出システム3は、アクチュエータ300と、アクチュエータ300のエンコーダ330、340の検出値に基づいて所定の処理を行う制御部370と、を備える。制御部370は、例えばCPU(Central Processing Unit)等の各種のプロセッサによって構成されてよく、制御部370が所定のプログラムに従って動作することにより、所定の処理が実行され得る。本実施形態では、制御部370は、エンコーダ330による入力軸の回転角度の検出値に基づいて、出力軸の回転角度を算出することができる。なお、制御部370は、他の各処理を行ってもよく、例えば下記<4.故障の検出について>で説明するような、アクチュエータ300の故障を検出する処理を行ってもよい。制御部370は、アクチュエータ300と一体的に構成されてもよいし、アクチュエータ300とは別途の部材として設けられ、アクチュエータ300から送信される各種の情報に基づいて各種の処理を行ってもよい。
図4では、説明のため、アクチュエータ300の構成の一部を概略的に図示している。図示される入力軸エンコーダ330、ブラシレスモータ310、減速機320及び出力軸エンコーダ340は、図1に示すエンコーダ330、モータ310、減速機320及びエンコーダ340に対応するものであるため、ここでは詳細な説明は省略する。
制御部370は、その機能として、出力軸角度情報取得部371、モータ累積回転数算出部372、入力軸角度情報取得部373、入力軸累積動作角度算出部374及び出力軸角度算出部375を有する。なお、以下の制御部370の説明では、理解を容易にするために、具体的な数値を例に挙げて説明を行う。具体的には、一例として、減速機320の減速比が1:100であり、入力軸エンコーダ330の検出値が181(度)であり、出力軸エンコーダ340の検出値が19.6(度)である場合について、制御部370の各機能について説明を行う。ただし、これらの数値はあくまで一例であり、本実施形態では、減速機320の減速比や各エンコーダ330、340での検出値が他の値である場合であっても、同様の処理により出力軸の回転角度を算出することができる。
また、以下の説明では、例えば、本実施形態に係るアクチュエータ300がロボットアーム装置のアーム部に設けられる関節部に適用された場合を想定し、アクチュエータ300の出力軸は0(度)〜360(度)の範囲内において回転すると仮定する。ロボットアーム装置のアーム部の駆動では、360(度)以上(すなわち1回転以上)関節部が回転することは考えにくいため、このような仮定をしても大きな問題とはならない。従って、出力軸エンコーダ340の検出値も、出力軸が1回転以上している状態での角度θ(すなわち、360(度)を超えて0(度)にリセットされた後の角度)を検出しているのではなく、出力軸の累積回転数が1回転未満の状態での、出力軸の角度を表していると言える。
出力軸角度情報取得部371は、出力軸エンコーダ340から、出力軸の回転角度についての情報(出力軸角度情報)を取得する。出力軸角度情報は、出力軸エンコーダ340によって検出される出力軸の回転角度の検出値についての情報であってよい。例えば、出力軸角度情報取得部371は、出力軸角度情報として、出力軸エンコーダ340による検出値が19.6(度)である旨の情報を取得する。出力軸角度情報取得部371は、取得した出力軸角度情報をモータ累積回転数算出部372に提供する。
モータ累積回転数算出部372は、出力軸角度情報に基づいて、ブラシレスモータ310の累積回転数を算出する。ブラシレスモータ310の累積回転数は、出力軸の回転角度の検出値を、ブラシレスモータ310が1回転したときの回転角度である360(度)を減速比で割ったもので更に割ることにより算出され得る。上述した具体的な数値例の場合であれば、ブラシレスモータ310の累積回転数は、下記数式(2)のように算出され得る。
上記数式(2)に示すように、上述した数値例では、ブラシレスモータ310の回転数は5.44(回転)と算出される。本実施形態では、モータ累積回転数算出部372は、小数点以下は切り捨て、整数値としてブラシレスモータ310の累積回転数を算出する。上記の例では、モータ累積回転数算出部372は、出力軸における回転数の検出値に基づいて、ブラシレスモータ310の累積回転数を5(回転)と算出することができる。モータ累積回転数算出部372は、算出したブラシレスモータの累積回転数についての情報を、入力軸累積動作角度算出部374に提供する。
入力軸角度情報取得部373は、入力軸エンコーダ330から、入力軸の回転角度についての情報(入力軸角度情報)を取得する。入力軸角度情報は、入力軸エンコーダ330によって検出される入力軸の回転角度の検出値についての情報であってよい。例えば、入力軸角度情報取得部373は、入力軸角度情報として、入力軸エンコーダ330による検出値が181(度)である旨の情報を取得する。入力軸角度情報取得部373は、取得した入力軸角度情報を入力軸累積動作角度算出部374に提供する。
入力軸累積動作角度算出部374は、入力軸角度情報及びブラシレスモータ310の累積回転数についての情報に基づいて、入力軸の累積動作角度を算出する。ここで、入力軸の累積動作角度は、ブラシレスモータ310が回転を始めてからの入力軸の累積回転角度のことである。入力軸の累積動作角度は、ブラシレスモータ310の累積回転数を回転角度に換算したもの(すなわち、360(度)を乗じたもの)に、入力軸の回転角度の検出値を加えることにより算出され得る。上述した具体的な数値例の場合であれば、入力軸の累積動作角度は、下記数式(3)のように算出され得る。
入力軸累積動作角度算出部374は、算出した入力軸の累積動作角度についての情報を、出力軸角度算出部375に提供する。
出力軸角度算出部375は、入力軸の累積動作角度についての情報に基づいて、出力軸の回転角度を算出する。出力軸の回転角度の計算値は、入力軸の累積動作角度を減速比で割ることにより算出され得る。上述した具体的な数値例の場合であれば、出力軸の回転角度は、下記数式(4)のように算出され得る。
出力軸角度算出部375は、算出した出力軸の回転角度についての情報を、最終的な出力軸の回転角度の検出値として、アクチュエータ300が設けられている駆動部の駆動を制御する制御装置(例えば後述する図11の制御装置20)に送信する。当該制御装置では、受信した出力軸の回転角度の計算値に基づいて、各駆動部の状態を認識し、各駆動部を駆動するための制御量を演算することとなる。
以上、図4を参照して、本実施形態に係る回転角度検出システム3の概略構成について説明した。以上説明したように、本実施形態では、出力軸エンコーダ340の検出値を用いてモータ310の累積回転数を算出し、算出したモータ310の累積回転数を入力軸の累積動作角度に換算して入力軸エンコーダ330の検出値を加えることにより、出力軸の回転角度を算出する。
ここで、上述したように、入力軸に設けられるエンコーダ330の検出値は、減速比を介している分、出力軸の回転角度を高分解能で検出したものと考えることができる。従って、入力軸エンコーダ330による検出値(181(度))から減速比を介して換算される出力軸の回転角度は、出力軸エンコーダ340による検出値(19.6(度))よりも、より精度良く出力軸の回転角度を表していると言える。
ただし、入力軸エンコーダ330による検出値(181(度))は、入力軸が何回転した状態での「181(度)」であるか定かではない。一方、出力軸エンコーダ340による検出値(19.6(度))は、上述したように、アクチュエータ300がロボットアーム装置のアーム部に設けられる関節部に適用された場合を想定すれば、0(度)〜360(度)の間における角度であると判断して差し支えない。従って、本実施形態では、出力軸エンコーダ340による検出値から、モータ310の累積回転数を算出することにより、入力軸エンコーダ330による検出値(181(度))が、入力軸(モータ310)が何回転した状態での「181(度)」であるかを判断しているのである。これにより、入力軸の累積回転動作角度を算出することができるため、より高精度に出力軸の回転角度を表していると考えられる入力軸の回転角度に基づいて、出力軸の回転角度を検出することが可能となる。
ここで、上述したように、例えば図2に示すような磁石331及びホール素子332、333からなる絶対角度エンコーダは、構成が簡易でコストの面で優れる反面、その角度の検出精度はそれほど高くないことが知られている。しかしながら、本実施形態では、上述したような出力軸の回転角度の算出処理を行うことにより、このような比較的検出精度の低い絶対角度エンコーダを用いた場合であっても、高精度に出力軸の回転角度を算出することが可能となる。従って、出力軸の回転角度の検出精度を高精度に保ったまま、アクチュエータ300をより小型に、より安価に構成することが可能となる。
また、上記処理では、出力軸エンコーダ340による検出値は、モータ310の累積回転数を算出することのみに用いられており、累積回転数を求めた後の0(度)〜360(度)の間の角度を表す端数に当たる部分(例えば、上記数式(2)における「0.44」の部分)は、出力軸の回転角度の算出には用いられない。従って、本実施形態では、出力軸エンコーダ340では、モータ310の回転数を算出できるだけの誤差が許容できることとなる。例えば、減速機320の減速比が1:100であれば、モータ310の1回転に対応する出力軸の回転角度は3.6(度)であるため、出力軸エンコーダ340は、レンジで3.6(度)、すなわち、±1.8(度)の精度を有していればよいことになる。従って、出力軸エンコーダ340として、格段に精度の高いエンコーダを用いる必要がなく、例えば図2に例示したような比較的安価なものを適用することが可能となる。
なお、本実施形態では、入力軸エンコーダ330と併せて、入力軸の累積回転数を保持するカウンタが設けられてもよい。当該カウンタを設けることにより、上述したような、出力軸エンコーダ340による検出値からモータ310の累積回転数(すなわち、入力軸の累積回転数)を算出する処理を行う必要がなく、カウンタの値を参照して出力軸の回転角度を算出することができるため、制御部370の信号処理負荷を軽減することができる。ただし、例えば一旦電源が遮断され、再度電源が投入された場合には、当該カウンタの値はリセットされてしまうため、電源投入直後には、上述した出力軸エンコーダ340による検出値からモータ310の累積回転数を算出する処理が行われる必要がある。
<3.回転角度検出方法の処理手順>
次に、図5及び図6を参照して、本実施形態に係る回転角度検出方法の処理手順について説明する。図5は、本実施形態に係る回転角度検出方法において行われる、入力軸の誤差を考慮した入力軸の累積動作角度の算出処理について説明するための説明図である。図6は、本実施形態に係る回転角度検出方法の処理手順の一例を示すフロー図である。
まず、本実施形態に係る回転角度検出方法の処理手順について詳細に説明する前に、図5を参照して、入力軸の誤差を考慮した入力軸の累積動作角度の算出処理について説明する。上記図4を参照して説明したように、出力軸の回転角度を算出する処理では、入力軸累積動作角度算出部374によって、上記数式(3)に示すように、入力軸の累積回転数を累積動作角度に換算し、入力軸エンコーダ330の検出値を加える処理がなされる。ここで、上記の説明では、入力軸累積動作角度算出部374は、入力軸の累積回転数である5(回転)をそのまま用いて入力軸の累積動作角度を算出していた。しかしながら、入力軸エンコーダ330の検出値の誤差が大きい場合には、入力軸累積動作角度算出部374によるこのような処理は、必ずしも適切ではない可能性がある。
図5を参照して、累積動作角度の算出処理について詳細に説明する。図5では、入力軸の回転角度と出力軸の回転角度とを、模式的に数直線で示している。また、ここでは、一例として、減速機320の減速比が1:100であるとして説明を行う。
入力軸エンコーダ330は、入力軸が1回転する間に、0(度)〜360(度)までのいずれかの数値を検出する。一方、減速比との関係から、出力軸エンコーダ340は、入力軸が1回転する間に、0(度)〜3.6(度)までのいずれかの数値を検出することとなる。従って、入力軸エンコーダ330の検出値は、出力軸エンコーダ340の検出値から累積回転数分の回転角度を差し引いた1回転未満の回転角度(すなわち、0(度)〜3.6(度))に対応していることとなる。
今、一例として、出力軸エンコーダ340の検出値から累積回転数分の回転角度を差し引いた値が、0.9(度)であったとする。この場合、理想的には、入力軸エンコーダ330の検出値は、90(度)であるはずだが、実際には、入力軸エンコーダ330及び出力軸エンコーダ340の検出誤差に応じたずれが生じ得る。
例えば、入力軸エンコーダ330の検出値が300(度)であったとする。この場合、検出値である当該300(度)は、90(度)に対して+210(度)ずれた値である可能性もあれば、−150(度)ずれた値である可能性もある。より厳密に考えれば、入力軸エンコーダ330の検出値である300(度)は、90(度)に対して+210(度)+m×360(度)ずれた値である可能性もあれば、−150(度)+m×(−360)(度)ずれた値である可能性もある(mは任意の正の数)。
また、この場合、入力軸エンコーダ330の検出値が、出力軸エンコーダ340の検出値から換算された入力軸の回転角度に対して、プラス方向とマイナス方向のどちらにずれているかに応じて、入力軸の累積動作角度の算出方法を変化させる必要がある。具体的には、例えば、入力軸エンコーダ330の検出値である300(度)が、90(度)に対して+210(度)ずれた値である場合には、入力軸の累積回転数をそのまま用いて入力軸の累積動作角度を算出することができる。一方、入力軸エンコーダ330の検出値である300(度)が、90(度)に対して−150(度)ずれた値である場合には、当該300(度)は、1回転前の入力軸の回転角度を表すものであるから、入力軸の累積回転数を−1回転させてから入力軸の累積動作角度を算出する必要がある。つまり、出力軸エンコーダ340の検出値から換算された入力軸の回転角度に基づいて、入力軸の累積回転数を補正する処理が行われる。
このように、累積動作角度を算出する際には、出力軸エンコーダ340の検出値から換算された入力軸の回転角度に対して、入力軸エンコーダ330の検出値に誤差が含まれる場合に、入力軸エンコーダ330の検出値としてどの範囲を信用するかが問題となる。そこで、本実施形態では、累積動作角度を算出する際に、出力軸エンコーダ340の検出値から換算された入力軸の回転角度に対して、入力軸エンコーダ330の検出値として信用する範囲を定め、当該範囲内に含まれる入力軸エンコーダ330の検出値を信用できる検出値として選択する処理が行われ得る。
本実施形態では、入力軸エンコーダ330の性能から、入力軸エンコーダ330の検出値と、出力軸エンコーダ340の検出値から換算された入力軸の回転角度とが、入力軸1回転分以上(すなわち、360(度)以上)ずれていることは極稀であると考えられる。従って、例えば、入力軸エンコーダ330の検出値として信用する範囲として、360(度)幅(±180(度))の範囲を設定する。
図5に示す例であれば、出力軸エンコーダ340の検出値から換算された入力軸の回転角度である90(度)に対して、±180(度)の範囲に含まれる入力軸エンコーダ330の検出値を信用することになる。当該範囲は、図示するように、1回転前の270(度)以上、270(度)未満の範囲となり、この範囲に含まれる入力軸エンコーダ330の検出値が、信用できる検出値として採用されることとなる。上述した入力軸エンコーダ330の検出値が300(度)である例であれば、この範囲に含まれる、1回転前の300(度)(−150(度)ずれた値である300(度))が信用できる検出値として採用されることとなる。
ここで、入力軸エンコーダ330の検出値として信用する範囲を示す数直線上において、出力軸エンコーダ340の検出値から換算された入力軸の回転角度と、入力軸エンコーダ330の検出値との間に0(度)が含まれる場合には、累積動作角度を算出する際に、入力軸の累積回転数を調整する必要が生じる。例えば、上述した300(度)の場合のように、入力軸エンコーダ330の検出値が0(度)よりも数直線上左側に位置する場合には、入力軸の累積回転数を−1回転させてから入力軸の累積動作角度を算出する必要がある。一方、入力軸エンコーダ330の検出値が0(度)よりも数直線上右側に位置する場合には、入力軸の累積回転数を+1回転させてから入力軸の累積動作角度を算出する必要がある。
以上、図5を参照して、入力軸の誤差を考慮した入力軸の累積動作角度の算出処理について説明した。以下に図6を参照して説明する本実施形態に係る回転角度検出方法の処理手順は、このような、入力軸の誤差を考慮した入力軸の累積動作角度の算出処理を含む処理手順である。
図6を参照すると、本実施形態に係る回転角度検出方法では、まず、入力軸及び出力軸の角度情報が取得される(ステップS101)。当該処理は、例えば、図4に示す入力軸角度情報取得部373及び出力軸角度情報取得部371によって、エンコーダ330、340の検出値についての情報が取得される処理に対応している。
次に、出力軸角度情報に基づいて、モータ310の累積回転数が算出される(ステップS103)。当該処理は、例えば、図4に示すモータ累積回転数算出部372によって、出力軸角度情報に基づいて、モータ310の累積回転数が算出される処理に対応している。当該処理は、具体的には、下記数式(5)の関係性を満たす整数nの最大値を求める処理であってよい。ここで、xは減速機320の減速比であり、nはモータの累積回転数であり、θoutは、出力軸の回転角度の検出値である。
次に、モータ310の累積回転数と、出力軸角度情報と、に基づいて、出力軸角度情報(すなわち、出力軸エンコーダ340の検出値)から推定される入力軸の回転角度が算出される(ステップS105)。当該処理は、図5を参照して説明した、出力軸エンコーダ340の検出値から累積回転数分の回転角度を差し引くことにより、出力軸エンコーダ340の検出値から換算された入力軸の回転角度を算出する処理に対応している。当該処理は、具体的には、下記数式(6)によって表現される。ここで、θout−inは、出力軸角から推定される入力軸の回転角度である。
次に行われるステップS107〜ステップS111に示す処理は、図5を参照して説明した、出力軸エンコーダ340の検出値から換算された入力軸の回転角度に対して、入力軸エンコーダ330の検出値として信用する範囲として±180(度)の範囲を定め、当該範囲内に含まれる入力軸エンコーダ330の検出値を信用できる検出値として選択する処理に対応している。具体的には、まず、ステップS107において、算出されたθout−inが、下記数式(7)を満たすかどうかが判断される。
ステップS107でθout−inが上記数式(7)を満たす場合には、ステップS109において、入力軸の回転角度の検出値であるθinと、出力軸の回転角度の検出値から換算された入力軸の回転角度であるθout−inとの関係性が、下記数式(8)を満たすかどうかが更に判断される。
また、ステップS107でθout−inが上記数式(7)を満たさない場合には、ステップS111において、入力軸の回転角度の検出値であるθinと、出力軸の回転角度の検出値から換算された入力軸の回転角度であるθout−inとの関係性が、下記数式(9)を満たすかどうか更に判断される。
上記数式(7)を満たし、かつ、上記数式(8)を満たす場合には、信用できる範囲内に含まれる入力軸の回転角度の検出値θinは、θout−inよりもマイナス側に位置し、かつ0(度)よりも左側に位置すると判断できる。従って、この場合、ステップS113に進み、nを−1回転させてから(すなわち、nをn−1に置き換えてから)、下記数式(10)に示す演算が行われ、出力軸の回転角度の計算値であるθout−cが算出される。
また、上記数式(7)を満たし、かつ、上記数式(8)を満たさない場合には、信用できる範囲内に含まれる入力軸の回転角度の検出値θinは、θout−inよりもプラス側に位置し、かつ0(度)よりも左側に位置する(360(度)を超えない)と判断できる。従って、この場合、ステップS115に進み、nはそのままで、上記数式(10)に示す演算が行われ、出力軸の回転角度の計算値であるθout−cが算出される。
また、上記数式(7)を満たさず、かつ、上記数式(9)を満たす場合には、同様に、信用できる範囲内に含まれる入力軸の回転角度の検出値θinは、θout−inよりもプラス側に位置し、かつ0(度)よりも左側に位置する(360(度)を超えない)と判断できる。従って、この場合も、同様に、ステップS115に進み、nはそのままで、上記数式(10)に示す演算が行われ、出力軸の回転角度の計算値であるθout−cが算出される。
また、上記数式(7)を満たさず、かつ、上記数式(9)を満たさない場合には、信用できる範囲内に含まれる入力軸の回転角度の検出値θinは、θout−inよりもプラス側に位置し、かつ0(度)よりも右側に位置する(360(度)を超える)と判断できる。従って、この場合、ステップS117に進み、nを+1回転させてから(すなわち、nをn+1に置き換えてから)、上記数式(10)に示す演算が行われ、出力軸の回転角度の計算値であるθout−cが算出される。
なお、上記数式(10)に示す演算は、例えば、上記図4に示す構成で言えば、入力軸累積動作角度算出部374及び出力軸角度算出部375によって行われる処理に対応している。
ステップS113、ステップS115又はステップS117に示す処理において算出された出力軸の回転角度θout−cについての情報が、最終的な出力軸の回転角度の検出値として、アクチュエータ300が設けられている駆動部の駆動を制御する制御装置(例えば後述する図11の制御装置20)に送信されることとなる。そして、当該制御装置において、当該θout−cに基づいて各駆動部の状態が認識され、各駆動部を駆動するための制御量が演算されることとなる。
以上、図5及び図6を参照して、本実施形態に係る回転角度検出方法の処理手順について説明した。以上説明したように、本実施形態では、出力軸の回転角度の検出値θoutを用いて、モータ310の累積回転数nが算出され、算出されたモータ310の累積回転数nを入力軸の累積動作角度に換算して入力軸の回転角度の検出値θinを加えることにより、出力軸の回転角度の計算値θout−cが算出される。このように、より高分解能である出力軸の回転角度の検出値θoutを用いて入力軸の累積動作角度を算出し、当該入力軸の累積動作角度を用いて出力軸の回転角度θout−cを算出することにより、出力軸の回転角度をより高精度に求めることができる。
また、本実施形態では、出力軸の回転角度の検出値θoutから換算された入力軸の回転角度θout―cに対して、入力軸の回転角度の検出値θinとして信用する範囲を定め、当該範囲内に含まれる入力軸の回転角度の検出値θinを信用できる検出値として選択する処理が行われることにより、入力軸の検出誤差を考慮した、入力軸の累積動作角度の算出処理が行われることとなる。従って、出力軸の回転角度を更に高精度に求めることが可能となる。
<4.故障の検出について>
図1に示すように、本実施形態に係るアクチュエータ300は、その入力軸及び出力軸の双方にエンコーダ330、340を備える。本実施形態では、このような構成を利用して、アクチュエータ300の故障を検出することができる。
ここで、一般的なアクチュエータにおいても、例えばモータを駆動させているにもかかわらず出力軸の回転角度が検出されない等、出力軸の回転角度の検出値に応じて、アクチュエータの故障を検出することは可能である。一方、本実施形態では、アクチュエータ300の故障を検出することができるだけではなく、アクチュエータ300のどの構成部材が故障しているかまで検出することが可能となる。
具体的には、本実施形態に係るアクチュエータ300では、その構成上、入力軸エンコーダ330の検出値と出力軸エンコーダ340の検出値とは、減速機320の減速比を介した比例関係にある。従って、当該比例関係が観察されなくなった場合には、アクチュエータ300のいずれかの構成部材が故障していると判断することができる。また、入力軸エンコーダ330及び出力軸エンコーダ340の検出値の変化を観察することにより、どの構成部材が故障しているかを判断することができる。このように、本実施形態では、入力軸エンコーダ330及び出力軸エンコーダ340の検出値をモニタすることにより、アクチュエータ300の故障及び故障している構成部材を検出することが可能となる。
下記表1を参照して、本実施形態に係るアクチュエータ300における故障の検出について詳しく説明する。下記表1では、本実施形態において検出され得る故障の一例として、入力軸エンコーダ330及び出力軸エンコーダ340の検出値と、想定される故障部位との関係性がまとめられている。
上記表1に示すように、例えば、入力軸エンコーダ330の検出値は変動していないが、出力軸エンコーダ340の検出値は変動している場合には、モータ310は駆動しているにもかかわらず、入力軸エンコーダ330の検出値が変化しない状態であると考えられる。従って、この場合には、入力軸エンコーダ330が故障していることが想定される。
また、例えば、入力軸エンコーダ330の検出値は変動しているが、出力軸エンコーダ340の検出値は変動していない場合には、モータ310は駆動しているにもかかわらず、出力軸エンコーダ340の検出値が変化しない状態であると考えられる。従って、この場合には、減速機320が故障し、モータ310の回転が出力軸まで正常に伝達されていない(すなわち、減速機320において入力軸が空転している又は出力軸がロックされている)か、又は、出力軸エンコーダ340が故障していることが想定される。
また、例えば、入力軸エンコーダ330の検出値及び出力軸エンコーダ340の検出値がともに変動していない場合には、モータ310が故障し、駆動していないことが想定される。あるいは、減速機320の入力軸及び出力軸がロックされており、モータ310を駆動しようとしているにもかかわらず、モータ310の駆動が妨げられていることが想定される。
また、例えば、入力軸エンコーダ330の検出値及び出力軸エンコーダ340の検出値がともに変動しているにもかかわらず、両者の間に比例関係がない場合には、モータ310、入力軸エンコーダ330及び出力軸エンコーダ340は正常に駆動しているものの、減速機320が故障し、モータ310の回転が出力軸に正常に(所定の減速比で)伝達されていないことが想定される。
以上、本実施形態に係るアクチュエータ300における、故障の検出機能について説明した。以上説明したように、本実施形態では、入力軸エンコーダ330及び出力軸エンコーダ340の検出値をモニタすることにより、アクチュエータ300の故障を検出することができる。更に、入力軸エンコーダ330及び出力軸エンコーダ340の検出値の変動具合から、アクチュエータ300内のどの構成部材が故障しているのかまで検出することが可能である。従って、複数のアクチュエータ300によって構成されるシステムにおいて故障が発生した場合に、どのアクチュエータ300のどの構成部材に故障が発生したのかを迅速に検出することができる。よって、例えば、故障が検出されたアクチュエータ300のみを停止させ、他のアクチュエータ300によってシステムとしての駆動を維持する等の、システム全体を停止させないような処置を講じることが可能となる。
<5.医療用ロボットアーム装置への適用>
本実施形態に係るアクチュエータ300は、医療用ロボットアーム装置の関節部を駆動するアクチュエータとして好適に適用可能である。以下では、まず、医療用ロボットアーム装置のアクチュエータに求められる要件について説明する。次に、それらの要件を満足するかどうかといった観点から、一般的な公知のアクチュエータと、本実施形態に係るアクチュエータ300との比較を行う。
まず、医療用ロボットアーム装置のアクチュエータに求められる要件について説明する。医療用ロボットアーム装置では、例えば、そのアーム部の先端に、各種の術具や、内視鏡、顕微鏡、カメラ等の撮像装置が取り付けられる。術者は、アーム部を操作することにより、例えば術具によって患者の術部に対して各種の処置を施したり、撮像装置によって術部の観察を行ったりしながら、手術や検査等の各種の施術を行う。従って、施術を円滑に行うために、また、患者を意図せず傷付けることがないように、アーム部の駆動は、高精度に制御される必要がある。
アーム部は、複数のリンクが複数の関節部によって連結された構成を有しており、各関節部に設けられるアクチュエータを駆動させることにより、アーム部全体が駆動することとなる。アクチュエータにおける出力軸の回転角度に応じて、アーム部の各関節部の角度が制御されるため、アーム部の駆動を高精度に制御するためには、各関節部の回転角度、すなわちアクチュエータの出力軸の回転角度を高精度に検出することが求められる。
また、医療用ロボットアーム装置では、例えば停電や故障等が発生した非常時における駆動制御が重要となる。例えば、手術の最中に医療用ロボットアーム装置に何らかの故障が発生した場合であっても、可能な限り手術が続行可能な構成が求められる。
例えば、停電等により医療用ロボットアーム装置の電源が一旦遮断され、再度電源が投入される場合について考える。このような場合、例えば、相対角度エンコーダのような、基準位置からの相対的な角度によって回転軸の回転角度を検出するエンコーダでは、一旦電源が遮断されると基準位置との相対的な位置関係がリセットされてしまうため、電源復旧時に角度を即座に検出することができない。そのため、基準位置に対応する位置まで関節部を駆動させ、相対角度エンコーダを基準位置まで戻す、原点出しの処理を初期動作として行う必要が生じる。例えば、医療用ロボットアーム装置を用いて手術を行っている最中に停電が発生し、電源を投入した場合に、このような初期動作が行われると、アーム部が術者が意図しない動きをすることとなるため、患者に危害が加えられる危険性がある。従って、医療用ロボットアーム装置に用いられるアクチュエータには、このような初期動作を要さず、電源投入後即座に出力軸の回転角度を検出可能な構成が求められる。
また、例えば、医療用ロボットアーム装置を用いて手術を行っている最中に、アーム部のいずれかの関節部のアクチュエータが故障し、正常な動作が行われなくなった場合について考える。このような場合であっても、手術の内容によっては、即座に手術を中断できるとは限らず、何らかの手段によって手術を継続する必要がある。従って、医療用ロボットアーム装置では、例えば故障した関節部のみ駆動を停止させ、他の正常な関節部の駆動を制御することによって、可能な限りアーム部を駆動させるような制御が行われることが求められる。このような制御を行うためには、故障を検出する際に、故障が発生しているアクチュエータを特定することができるとともに、その故障によってアクチュエータのどの機能が実行不可能になったのかを検出することが可能な構成が求められる。
以上、医療用ロボットアーム装置のアクチュエータに求められる要件について説明した。以上説明した内容をまとめると、医療用ロボットアーム装置のアクチュエータには、以下の要件が求められる。すなわち、出力軸の回転角度を高精度に検出すること(以下、「回転角度の検出要件」と略記する。)、電源投入時の初期動作が不要であること(以下、「初期動作要件」と略記する。)、及び、故障の発生を自己的に(アクチュエータごとに)検出可能であること(以下、「故障検出要件」と略記する。)である。以下では、一般的な公知なアクチュエータの構成と、上述した本実施形態に係るアクチュエータ300の構成とを比較し、これらの要件を満たし得るかどうかについて説明する。
まず、構成(A)−(E)として、一般的なアクチュエータの構成について説明する。なお、上記の各要件を満たすかどうかは、アクチュエータの構成の中でも、エンコーダの配置や種類によるところが大きい。そこで、以下の説明では、一般的なアクチュエータを、エンコーダの構成に注目して(A)−(E)に分類している。構成(A)−(E)として説明する一般的なアクチュエータにおいても、モータや減速機としては、例えば図1に示すような、本実施形態と同様のブラシレスモータ及び減速機が用いられてよい。
(A.入力軸:モータ駆動用ホールセンサ/出力軸:絶対角度エンコーダ)
構成(A)は、入力軸にモータ駆動用ホールセンサが設けられ、出力軸に絶対角度エンコーダが設けられる構成である。当該構成(A)は、一般的なアクチュエータにおいてに広く用いられている構成である。モータ駆動用ホールセンサは、ブラシレスモータを駆動するために設けられ、ブラシレスモータの回転子の回転を検出する機能を有する。ただし、エンコーダのように、回転子(又は入力軸)の回転角度を0(度)〜360(度)の数値として検出するものではない。一方、構成(A)では、絶対角度エンコーダにより、出力軸の回転角度が検出される。
ここで、絶対角度エンコーダでは、電源投入時に原点出しの初期動作を行う必要がなく、即座に回転軸の回転角度を検出することができる。しかしながら、その検出値は0(度)〜360(度)の範囲内であるため、例えば1回転以上(360(度)以上)回転軸が回転している場合には、例えばカウンタ等の累積回転数を保持する構成と組み合わせないと、正確な回転角度を検出することができない。電源が遮断された場合には、カウンタの情報もリセットされ得るため、絶対角度エンコーダであっても、回転軸が1回転以上回転している場合には、電源投入時に原点出しの初期動作を行う必要が生じる。
一方、ここで対象としている医療用ロボットアーム装置に用いられるアクチュエータでは、出力軸の回転角度は0〜360(度)以内であることが想定される。ただし、入力軸の回転角度が所定の減速比を介して出力軸に伝達される構成であるため、入力軸の回転角度はこの範囲以上(すなわち、1回転分以上)になり得る。従って、医療用ロボットアーム装置のアクチュエータとして「初期動作要件」を満たすためには、出力軸に絶対角度エンコーダが設けられることが求められる。この点、構成(A)では、「初期動作要件」は満たされていることになる。
また、構成(A)では、出力軸にエンコーダが設けられることにより、例えばモータを駆動しているのにもかかわらず出力軸の回転角度が検出されない等、アクチュエータ自体の故障を検出することができる。すなわち、「故障検出要件」も満たされている。
しかしながら、構成(A)では、入力軸にエンコーダが設けられていないため、上記<2.回転角度検出システムの構成>や上記<3.回転角度検出方法の処理手順>で説明した、本実施形態のような出力軸の回転角度の算出処理を行うことができない。従って、「回転角度の検出要件」を満たすためには、出力軸に設けられる絶対角度エンコーダとして、高精度に回転角度を検出可能なものを用いる必要がある。このような高精度な絶対角度エンコーダは、比較的大型であり、また、高価である。従って、構成(A)によって「回転角度の検出要件」を満たそうとする場合には、アクチュエータの構成が大型化し、コストも増加する可能性がある。
(B.入力軸:モータ駆動用ホールセンサ/出力軸:パルス型エンコーダ(相対角度エンコーダ))
構成(B)は、入力軸にモータ駆動用ホールセンサが設けられ、出力軸にパルス型エンコーダが設けられる構成である。入力軸にモータ駆動用ホールセンサが設けられる点は、上記構成(A)と同様である。一方、出力軸に設けられるパルス型エンコーダは、放射状にスリットが形成された円板を回転させ、当該円板に光(レーザ等)を照射して、スリットを通過した光を検出することにより、当該円板の回転角度を回転軸の回転角度として検出するものである。パルス型エンコーダは、円板の所定の位置を基準位置として、当該基準位置からの相対的な回転角度が検出される、相対角度エンコーダの一種である。
構成(B)では、構成(A)と同様に、出力軸にエンコーダが設けられることにより、例えばモータを駆動しているのにもかかわらず出力軸の回転角度が検出されない等、アクチュエータ自体の故障を検出することができる。すなわち、「故障検出要件」は満たされている。
一方、パルス型エンコーダでは、円板の回転に伴ってスリットを通過した光の検出回数がカウンタによって保持されることにより、その回転角度が検出される。従って、電源が遮断され、当該カウンタの情報がリセットされた場合には、原点出しの初期動作を行う必要がある。このように、構成(B)では、「初期動作要件」は満たされない。
更に、構成(B)でも、構成(A)と同様に、入力軸にエンコーダが設けられていないため、本実施形態のような出力軸の回転角度の算出処理を行うことができない。従って、「回転角度の検出要件」を満たすためには、出力軸に設けられる絶対角度エンコーダとして、高精度に回転角度を検出可能なものを用いる必要があるため、アクチュエータの構成が大型化し、コストも増加する可能性がある。
(C.入力軸:モータ駆動用ホールセンサ及びパルス型エンコーダ/出力軸:なし))
構成(C)は、入力軸にモータ駆動用ホールセンサ及びパルス型エンコーダが設けられ、出力軸にはエンコーダが設けられない構成である。このように、入力軸にエンコーダを設けることにより、減速比を介している分、出力軸の回転角度を高精度に(高分解能に)検出することが可能となる。従って、構成(C)では、「回転角度の検出要件」はある程度満たされていると言える。
しかしながら、構成(C)では、構成(B)と同様に、パルス型エンコーダが用いられることにより、電源が遮断された場合には、原点出しの初期動作を行う必要がある。このように、構成(C)では、「初期動作要件」は満たされない。
また、構成(C)では、出力軸にはエンコーダが設けられない。従って、例えばモータが駆動していない等の入力軸の回転状態から判断され得る故障は検出できるが、出力軸の回転角度が検出されないため、出力軸の回転状態から判断され得る減速機以降の故障を検出することができない。従って、構成(C)では、「故障検出要件」は十分に満たされているとは言えない。
(D.入力軸:絶対角度エンコーダ/出力軸:なし))
構成(D)は、入力軸に絶対角度エンコーダが設けられ、出力軸にはエンコーダが設けられない構成である。構成(D)では、絶対角度エンコーダがモータ駆動用ホールセンサの役割を兼ねることができる。また、構成(C)と同様に、入力軸にエンコーダが設けられることにより、減速比を介している分、出力軸の回転角度を高精度に(高分解能に)検出することが可能となる。従って、構成(D)では、「回転角度の検出要件」はある程度満たされていると言える。
しかしながら、上述したように、入力軸の回転角度は所定の減速比を介して出力軸に伝達されるため、出力の回転角度の変化の範囲が0(度)〜360(度)である場合であっても、入力軸の回転角度はこの範囲以上(すなわち、1回転分以上)になり得る。従って、入力軸の絶対角度エンコーダは、累積回転数を保持するためのカウンタと併用される必要がある。従って、電源が遮断され、当該カウンタの情報がリセットされた場合には、原点出しの初期動作を行う必要がある。このように、構成(D)では、「初期動作要件」は満たされない。
また、構成(D)では、構成(C)と同様に、出力軸にエンコーダが設けられないため、減速機以降の出力軸の回転状態から判断され得る故障を検出することができない。従って、構成(D)では、「故障検出要件」は十分に満たされているとは言えない。
(E.入力軸:絶対角度エンコーダ及びギア式回転カウンタ/出力軸:なし)
構成(E)は、入力軸に絶対角度エンコーダ及びギア式回転カウンタが設けられ、出力軸にはエンコーダが設けられない構成である。構成(E)は、構成(D)に対して、入力軸にギア式回転カウンタが追加されたものに対応している。構成(E)では、構成(D)と同様に、絶対角度エンコーダがモータ駆動用ホールセンサの役割を兼ねることができる。また、構成(D)と同様に、入力軸にエンコーダが設けられることにより、減速比を介している分、出力軸の回転角度を高精度に(高分解能に)検出することが可能となる。従って、構成(E)では、「回転角度の検出要件」はある程度満たされていると言える。
ここで、構成(E)において追加されたギア式回転カウンタは、機械式で動作可能なカウンタであり、電気的な入力がなくても情報を保持することができる。従って、当該ギア式回転カウンタでは、電源が遮断された場合であっても、当該カウンタの情報がリセットされることがない。よって、当該ギア式回転カウンタを絶対角度エンコーダと併用し、当該ギア式回転カウンタによって入力軸の累積回転数を保持することにより、電源遮断時であっても原点出しの初期動作を行う必要がない。従って、電源投入時に即座に回転角度を検出することができる。このように、構成(E)では、「初期動作要件」は満たされることとなる。
しかしながら、構成(E)では、構成(C)、(D)と同様に、出力軸にエンコーダが設けられないため、減速機以降の出力軸の回転状態から判断され得る故障を検出することができない。従って、構成(E)では、「故障検出要件」は十分に満たされているとは言えない。
また、ギア式カウンタは、その機構上、そのカウンタ値に上限が存在する。従って、入力軸の累積回転数にも自ずと限界があることとなる。これは、減速比を所定の値以上に設定できないことを意味しており、アクチュエータを設計する際の自由度が低下することとなる。また、ギア式カウンタを設ける分、構成部材が増加するため、アクチュエータが大型化することも懸念される。
以上、一般的なアクチュエータの一構成例として、構成(A)−(E)について説明するとともに、これらの構成において、医療用ロボットアーム装置のアクチュエータに求められる要件(「回転角度の検出要件」、「初期動作要件」及び「故障検出要件」)が満たされるかどうかについて説明した。以上説明したように、構成(A)−(E)では、これらの要件を全て満たすことは難しいと言える。
ここで、本実施形態に係るアクチュエータ300によって、上記の各要件が満たされるかどうかについて考察する。本実施形態に係るアクチュエータ300は、例えば図1に示すように、入力軸及び出力軸の双方に絶対角度エンコーダ330、340が設けられた構成を有する。当該構成によれば、入力軸に設けられる絶対角度エンコーダ330が、モータ駆動用ホールセンサの役割を兼ねることができるため、アクチュエータ300を小型化することができる。また、入力軸に絶対角度エンコーダ330が設けられることにより、減速比を介している分、出力軸の回転角度を高精度に(高分解能に)検出することが可能となる。従って、アクチュエータ300では、「回転角度の検出要件」は満たされている。
また、アクチュエータ300では、出力軸に絶対角度エンコーダ340が設けられることにより、電源が遮断された場合であっても、復旧時に原点出しの初期動作を行う必要がない。従って、電源投入時に即座に回転角度を検出することができる。このように、アクチュエータ300では、「初期動作要件」は満たされている。
更に、アクチュエータ300では、入力軸及び出力軸の双方に絶対角度エンコーダ330、340が設けられることにより、モータが駆動していない等の入力軸の回転状態から判断され得る故障を検出することができるとともに、減速機の異常等、出力軸の回転状態から判断され得る故障も検出することができる。また、入力軸エンコーダ330及び出力軸エンコーダ340の検出値の比例関係や、当該検出値の変動をモニタすることにより、上記<4.故障の検出について>で説明したような、故障している構成部材を検出することも可能となる。このように、アクチュエータ300では、「故障検出要件」は満たされている。
以上説明したように、本実施形態によれば、医療用ロボットアーム装置のアクチュエータに求められる要件(「回転角度の検出要件」、「初期動作要件」及び「故障検出要件」)を全て満たすアクチュエータ300が提供される。これにより、より高精度でより安全なロボットアーム装置の駆動制御が実現される。
なお、上記では、医療用ロボットアーム装置のアクチュエータに求められる要件として、「回転角度の検出要件」、「初期動作要件」及び「故障検出要件」について説明したが、他の用途であっても、これらの要件、すなわち、高い安全性と高精度での回転角度の検出が求められるものが存在し得る。例えば電子ステアリング等の自動車に用いられるアクチュエータや、遊園地の遊具を駆動するために用いられるアクチュエータ等、ヒトを乗せて運動するものに関しては、やはり、高い安全性と高精度での回転角度の検出が求められる。本実施形態に係るアクチュエータ300は、医療用ロボット装置だけではなく、これら自動車や遊具に対しても、好適に適用され得る。
<6.適用例>
上述したように、本実施形態に係るアクチュエータ300は、医療用ロボットアーム装置の関節部に対して好適に適用可能である。以下では、本実施形態に係るアクチュエータ300の一適用例として、当該アクチュエータ300が適用され得るロボットアーム装置の駆動を制御するための、ロボットアーム制御システムの構成や、ロボットアーム制御方法の処理手順について説明する。
(6−1.医療用ロボットアーム装置についての検討)
まず、本開示をより明確なものとするために、本発明者らが以下に説明する実施形態に想到するに至った背景について説明する。
近年、医療分野や工業分野においては、より正確により素早く作業を行うために、ロボット装置が広く用いられている。ここで、ロボット装置及び各関節部の制御方式としては、位置制御と力制御とが知られている。位置制御では、関節部のアクチュエータに、例えば角度等の指令値が与えられ、当該指令値に追随するように関節部の駆動が制御される。一方、力制御では、ロボット装置全体として作業対象に加えるべき力の目標値が与えられ、当該目標値が示す力を実現するように関節部の駆動(例えば関節部によって発生されるトルク)が制御される。
一般的に、制御上の簡便さやシステムの構成のしやすさから、位置制御によって駆動されるロボット装置が広く用いられている。しかしながら、位置制御は、外力に柔軟に応じることが困難であるため、俗に「硬い制御」と呼ばれることがあり、多様な外界との物理インタラクション(例えば、対人物理インタラクション)を行いながらタスクを遂行するロボット装置には適していない。一方、力制御は、システム構成は複雑化する反面、力オーダーでの「柔らかい制御」が実現できるため、特に対人物理インタラクションを行うロボット装置に適した制御方法であり、よりユーザビリティに優れた制御方法と言える。
例えば、力制御が適用されたロボット装置の一例としては、本願出願人と同一出願人による先行出願である「特開2010−188471号公報」を参照することができる。当該特許文献には、対向する2輪の車輪からなる移動機構と複数の関節部を有する腕部を備えたロボット装置において、当該車輪及び当該関節部の駆動を全体として協調させて制御する(全身協調制御を行う)ロボット装置が開示されている。
一方、近年、医療分野においては、各種の施術(例えば、手術や検査)を行う際に、アーム部の先端に様々な医療用のユニット(先端ユニット)が設けられたバランス型アーム(支持アームとも呼称する。)を用いる試みが行われている。例えば、バランス型アームのアーム部の先端に顕微鏡や内視鏡、カメラ等の撮像機能を有する様々な撮像装置を設け、施術者(ユーザ)が当該撮像装置によって撮影された術部の画像を観察しながら各種の施術を行う方法が提案されている。
しかしながら、バランス型アームは、アーム部を移動させた際の力の均衡を取るためのカウンターバランス用ウェイト(カウンターウェイト又はバランサーとも呼称する。)を備える必要があるため、装置が大型化する傾向がある。施術時の作業空間の確保の観点からは、施術に用いられる装置にはより一層の小型化が求められており、一般的に提案されているバランス型アームではこのような要請に応えることが困難であった。また、バランス型アームにおいては、アーム部の駆動の一部のみ、例えば先端ユニットを平面上(2次元上)で移動させるための2軸の駆動のみが電動駆動となっており、アーム部及び先端ユニットの移動には施術者自身や周囲の医療スタッフによる手動での位置決めが必要となる。従って、一般的なバランス型アームでは、撮影時の安定性(例えば先端ユニットの位置決めの精度や制振等)の確保や、例えば視点を患者の体の所定の部位に固定した状態で様々な方向から観察する等の観察の自由度の確保が困難であった。
特に、アーム部に取り付けられた撮像装置によって術部を観察する際には、視点を術部に固定したまま、異なる距離や異なる角度から当該術部を観察したいという要望がある。このような観察は、撮像装置にピボット動作を行わせることにより実現され得るが、バランス型アームによってピボット動作を行うためには、上記特許文献1に記載されているような複雑な機械的構成が必要となり、高い操作性を得ることは難しい。
このような状況に鑑みて、バランス型アームに代わる装置として、位置制御によって駆動が制御される医療用のロボットアーム装置も提案されている。しかしながら、施術の更なる効率化及びユーザの負担軽減のために、ロボットアーム装置の駆動制御には、ユーザによってアーム部及び先端ユニットとして設けられる撮像ユニットの位置や姿勢をより直感的に制御することができる、より高い操作性が求められていた。位置制御によって駆動が制御されるロボットアーム装置では、このようなユーザの要望に応えることが困難であった。
そこで、より安定性が高く、より操作性の高いアーム部の駆動制御を行うことが可能なロボットアーム装置を実現することにより、ユーザの負担をより軽減することが望まれていた。また、医療用に用いられるという観点から、ロボットアーム装置には、以下のような性能が求められる。
図7を参照して、本開示の一実施形態に係るロボットアーム装置が医療用に用いられる場合の一適用例について説明するとともに、医療用ロボットアーム装置に求められる諸性能について説明する。図7は、本開示の一実施形態に係るロボットアーム装置が医療用に用いられる場合の一適用例について説明するための説明図である。
図7は、本実施形態に係るロボットアーム装置を用いた施術の様子を模式的に表している。具体的には、図7を参照すると、施術者(ユーザ)520である医師が、例えばメス、鑷子、鉗子等の手術用の器具521を使用して、施術台530上の施術対象(患者)540に対して手術を行っている様子が図示されている。なお、以下の説明においては、施術とは、手術や検査等、ユーザ520である医師が施術対象540である患者に対して行う各種の医療的な処置の総称であるとする。また、図7に示す例では、施術の一例として手術の様子を図示しているが、ロボットアーム装置510が用いられる施術は手術に限定されず、他の各種の施術、例えば内視鏡を用いた検査等であってもよい。
施術台530の脇には本実施形態に係るロボットアーム装置510が設けられる。ロボットアーム装置510は、基台であるベース部511と、ベース部511から延伸するアーム部512を備える。アーム部512は、複数の関節部513a、513b、513cと、関節部513a、513bによって連結される複数のリンク514a、514bと、アーム部512の先端に設けられる撮像ユニット515を有する。図7に示す例では、簡単のため、アーム部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の先端には先端ユニットとして各種の医療用器具が接続される。図7に示す例では、先端ユニットの一例としてアーム部512の先端に撮像ユニット515が設けられている。撮像ユニット515は、撮影対象の画像(撮影画像)を取得するユニットであり、例えば動画や静止画を撮影できるカメラ等である。図7に示すように、アーム部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が施術者の視界を妨げたり、処置を行う手の動きを妨げたりすると、手術の効率の低下につながる。また、図7では図示していないが、実際の手術現場では、ユーザ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を駆動した際の先端ユニットのスムーズな移動や振動の抑制(制振)も含まれる。例えば、図7に示す例のように先端ユニットが撮像ユニット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点の性能を満たす構成について検討した結果、本開示に係るロボットアーム装置、ロボットアーム制御システム、ロボットアーム制御方法及びプログラムに想到した。以下では、本発明者らが想到した構成における好ましい実施形態について詳細に説明する。
(6−2.本開示の一実施形態)
以下では、本開示の一実施形態に係るロボットアーム制御システムについて説明する。本実施形態に係るロボットアーム制御システムにおいては、ロボットアーム装置に設けられる複数の関節部の駆動を、一般化逆動力学を用いた全身協調制御により制御する。更に、外乱の影響を補正することにより指令値に対する理想的な応答を実現する理想関節制御を当該関節部の駆動制御に適用する。
以下の本実施形態の説明では、まず、(6−2−1.ロボットアーム装置の外観)で、本実施形態に係るロボットアーム装置の外観を示すとともに、ロボットアーム装置の概略構成について説明する。次いで、(6−2−2.一般化逆動力学について)及び(6−2−3.理想関節制御について)で、本実施形態に係るロボットアーム装置の制御に用いられる一般化逆動力学と理想関節制御の概要について説明する。次いで、(6−2−4.ロボットアーム制御システムの構成)で、本実施形態に係るロボットアーム装置を制御するためのシステムの構成について機能ブロック図を用いて説明する。最後に、(6−2−5.運動目的の具体例)で、本実施形態に係るロボットアーム装置における、一般化逆動力学を用いた全身協調制御の具体例について説明する。
なお、以下の説明では、本開示の一実施形態として、ロボットアーム装置のアーム部の先端ユニットが撮像ユニットであり、図7に示すように手術時に当該撮像ユニットによって施術部位を撮影する場合について説明するが、本実施形態はかかる例に限定されない。本実施形態に係るロボットアーム制御システムは、他の先端ユニットを有するロボットアーム装置が他の用途に用いられる場合であっても適用可能である。
(6−2−1.ロボットアーム装置の外観)
まず、図8を参照して、本開示の一実施形態に係るロボットアーム装置の概略構成について説明する。図8は、本開示の一実施形態に係るロボットアーム装置の外観を示す概略図である。
図8を参照すると、本実施形態に係るロボットアーム装置400は、ベース部410及びアーム部420を備える。ベース部410はロボットアーム装置400の基台であり、ベース部410からアーム部420が延伸される。また、図8には図示しないが、ベース部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は、医療用器具を備えた医療用ロボットアーム装置であると言える。
ここで、以下では、図8に示すように座標軸を定義してロボットアーム装置400の説明を行う。また、座標軸に合わせて、上下方向、前後方向、左右方向を定義する。すなわち、床面に設置されているベース部410に対する上下方向をz軸方向及び上下方向と定義する。また、z軸と互いに直交する方向であって、ベース部410からアーム部420が延伸されている方向(すなわち、ベース部410に対して撮像ユニット423が位置している方向)をy軸方向及び前後方向と定義する。更に、y軸及びz軸と互いに直交する方向をx軸方向及び左右方向と定義する。
関節部421a〜421fはリンク422a〜422cを互いに回動可能に連結する。関節部421a〜421fはアクチュエータを有し、当該アクチュエータの駆動により所定の回転軸に対して回転駆動される回転機構を有する。各関節部421a〜421fにおける回転駆動をそれぞれ制御することにより、例えばアーム部420を伸ばしたり、縮めたり(折り畳んだり)といった、アーム部420の駆動を制御することができる。なお、関節部421a〜421fに設けられるアクチュエータとしては、例えば図1に示す本実施形態に係るアクチュエータ300が好適に適用され得る。本実施形態では、関節部421a〜421fの全てに対して図1に示すアクチュエータ300が適用されてもよいし、関節部421a〜421fのうちの一部(例えば2軸等)にのみアクチュエータ300が適用されてもよい。関節部421a〜421fの少なくとも1つに対して本実施形態に係るアクチュエータ300を用いることにより、より高精度に、より安全にアーム部420を駆動することが可能となる。ここで、関節部421a〜421fは、下記(6−2−2.一般化逆動力学について)で後述する全身協調制御及び下記(6−2−3.理想関節制御について)で後述する理想関節制御によってその駆動が制御される。また、上述したように、本実施形態に係る関節部421a〜421fは回転機構を有するため、以下の説明において、関節部421a〜421fの駆動制御とは、具体的には、関節部421a〜421fの回転角度及び/又は発生トルク(関節部421a〜421fが発生させるトルク)が制御されることを意味する。
本実施形態に係るロボットアーム装置400は、6つの関節部421a〜421fを有し、アーム部420の駆動に関して6自由度が実現されている。具体的には、図8に示すように、関節部421a、421d、421fは、接続されている各リンク422a〜422cの長軸方向及び接続されている撮像ユニット423の撮影方向を回転軸方向とするように設けられており、関節部421b、421c、421eは、接続されている各リンク422a〜422c及び撮像ユニット423の連結角度をy−z平面(y軸とz軸とで規定される平面)内において変更する方向であるx軸方向を回転軸方向とするように設けられている。このように、本実施形態においては、関節部421a、421d、421fは、いわゆるヨーイングを行う機能を有し、関節部421b、421c、421eは、いわゆるピッチングを行う機能を有する。
このようなアーム部420の構成を有することにより、本実施形態に係るロボットアーム装置400ではアーム部420の駆動に対して6自由度が実現されるため、アーム部420の可動範囲内において撮像ユニット423を自由に移動させることができる。図8では、撮像ユニット423の移動可能範囲の一例として半球を図示している。半球の中心点が撮像ユニット423によって撮影される施術部位の撮影中心であるとすれば、撮像ユニット423の撮影中心を半球の中心点に固定した状態で、撮像ユニット423を半球の球面上で移動させることにより、施術部位を様々な角度から撮影することができる。
なお、上述したように、本実施形態においては、関節部421a〜421fは、下記(6−2−3.理想関節制御について)で後述する理想関節制御によってその駆動が制御される。従って、関節部421a〜421fのアクチュエータは、理想関節制御に対応した駆動を行えるように構成されている。具体的には、関節部421a〜421fのアクチュエータは、当該関節部421a〜421fにおける回転角度及び回転駆動に伴うトルクを調整できるように構成されている。また、関節部421a〜421fのアクチュエータは、回転運動に対する粘性抵抗係数を任意に調整できるように構成されており、例えば外部から加えられる力に対して回転しやすい(すなわち、アーム部420を手動で移動しやすい)状態や回転し難い(すなわち、アーム部420を手動で移動し難い)状態を実現することができる。
また、関節部421a〜421fは、アクチュエータ以外に他の構成を有し得る。例えば、関節部421a〜421fは、アクチュエータ以外に、当該アクチュエータの駆動を制御するための制御部や、リンク422a〜422c及び撮像ユニット423を接続、支持するための支持部材等、アーム部420の駆動に必要な各種の構成を有する。なお、ここまでの説明及び以下の説明において、アーム部の関節部の駆動とは、関節部におけるアクチュエータの駆動を意味していてもよい。
ここで、関節部421a〜421fに設けられるアクチュエータは、その出力軸にトルクセンサを備えることができる。当該トルクセンサは、アクチュエータによる発生トルクだけでなく、外部から加えられる外トルクも検出することができる。従って、トルクセンサによって検出された外トルクに基づいて、モータドライバがアクチュエータのモータに供給する電流量を調整することにより、上述したような回転運動に対する粘性抵抗係数を調整することができ、例えば外部から加えられる力に対して回転しやすい状態や回転し難い状態を実現することができる。
ここで、図9A及び図9Bを参照して、本実施形態に係るアクチュエータに適用されるトルクセンサの構成について詳細に説明する。図9Aは、本実施形態に係るアクチュエータに適用されるトルクセンサの一構成例を示す概略図である。
図9Aを参照すると、本実施形態に係るトルクセンサ428は、外輪部431、内輪部432、梁部433a〜433d及び歪み検出素子434a〜434dを有する。図9Aに示すように、外輪部431及び内輪部432は同心円状に配置される。本実施形態では、内輪部432が入力側、すなわち、アクチュエータの減速機の出力軸と接続され、外輪部431が出力側、すなわち、後段の出力部材(図示せず。)と接続される。なお、図9Aでは、トルクセンサ428をアクチュエータの出力軸の方向から見た様子を模式的に示している。
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の変形量に基づいて、アクチュエータの発生トルク及び外トルクを検出することができる。
図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ゲージ法を用いて歪みを検出することができるため、歪みを検出する軸以外の他軸の干渉やアクチュエータの出力軸の偏心、温度ドリフト等の影響を低減することができる。
このように、梁部433a〜433dは、歪みを検出するための起歪体の役割を果たす。なお、本実施形態に係る歪み検出素子434a〜434dの種類は歪みゲージに限定されず、他の素子が用いられてもよい。例えば、歪み検出素子434a〜434dは、磁気特性の変化に基づいて梁部433a〜433dの変形量を検出する素子であってもよい。
また、図9Aには図示しないが、トルクセンサ428による発生トルク及び外トルクの検出精度を向上させるために、以下に示す構成が適用されてもよい。例えば、梁部433a〜433dの外輪部431と接続する部位を他の部位よりも薄肉化することにより、支持モーメントが解放されるため、検出される変形量の線形性が向上されるとともにラジアル荷重による影響が低減される。また、外輪部431及び内輪部432をともにベアリングを介してハウジングで支持することにより、入力軸及び出力軸の双方からの他軸力、モーメントの作用を排除することができる。また、外輪部431に作用する他軸モーメントを低減するために、アクチュエータの入力軸側、すなわちモータがが配設される部位に両持ち支持用ベアリングが配設されてもよい。
以上、図9Aを参照して、本実施形態に係るアクチュエータに適用され得るトルクセンサ428の構成について説明した。以上説明したように、図9Aに示すトルクセンサ428の構成により、アクチュエータの発生トルク及び外トルクの検出において、高精度な検出が可能となる。
ここで、本実施形態においては、トルクセンサ428の構成は図9Aに示す構成に限定されず、他の構成であってもよい。アクチュエータに適用されるトルクセンサについて、トルクセンサ428以外の他の構成の一例を、図9Bを参照して説明する。
図9Bは、本実施形態に係るアクチュエータに適用されるトルクセンサの他の構成例を示す概略図である。図9Bを参照すると、本変形例に係るトルクセンサ428aは、外輪部441、内輪部442、梁部443a〜443d及び歪み検出素子444a〜444dを有する。なお、図9Bでは、図9Aと同様、トルクセンサ428aをアクチュエータの出力軸の方向から見た様子を模式的に示している。
トルクセンサ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に対して拘束されず動きの自由度を有するため、例えばアクチュエータの駆動に際して振動が生じたとしても、振動による歪み成分を内輪部442と外輪部441との間の間隙G1、G2によって吸収することができる。よって、トルクセンサ428aをアクチュエータのトルクセンサとして適用することにより、より高精度な発生トルク及び外トルクの検出が実現される。
なお、本実施形態に係る理想関節制御に対応するアクチュエータについては、上記図1を参照して説明したアクチュエータ300以外にも、例えば、本願出願人による先行特許出願である特開2009−269102号公報や特開2011−209099号公報等に記載されている構成を参照することができる。
以上、図8、図9A及び図9Bを参照して、本実施形態に係るロボットアーム装置400の概略構成について説明した。次に、本実施形態に係るロボットアーム装置400におけるアーム部420の駆動、すなわち、関節部421a〜421fの駆動を制御するための全身協調制御及び理想関節制御について説明する。
(6−2−2.一般化逆動力学について)
次に、本実施形態におけるロボットアーム装置400の全身協調制御に用いられる一般化逆動力学の概要について説明する。
一般化逆動力学は、複数のリンクが複数の関節部によって連結されて構成される多リンク構造体(例えば本実施形態においては図8に示すアーム部420)において、各種の操作空間(Operation Space)における様々な次元に関する運動目的を、各種の拘束条件を考慮しながら、複数の当該関節部に生じさせるトルクに変換する、多リンク構造体の全身協調制御における基本演算である。
操作空間は、ロボット装置の力制御における重要な概念である。操作空間は、多リンク構造体に作用する力と多リンク構造体の加速度との関係を記述するための空間である。多リンク構造体の駆動制御を位置制御ではなく力制御によって行う際に、多リンク構造体と環境との接し方を拘束条件として用いる場合に操作空間という概念が必要となる。操作空間は、例えば、多リンク構造体が属する空間である、関節空間、デカルト空間、運動量空間等である。
運動目的は、多リンク構造体の駆動制御における目標値を表すものであり、例えば、駆動制御によって達成したい多リンク構造体の位置、速度、加速度、力、インピーダンス等の目標値である。
拘束条件は、多リンク構造体の形状や構造、多リンク構造体の周囲の環境及びユーザによる設定等によって定められる、多リンク構造体の位置、速度、加速度、力等に関する拘束条件である。例えば、拘束条件には、発生力、優先度、非駆動関節の有無、垂直反力、摩擦錐、支持多角形等についての情報が含まれる。
一般化動力学においては、数値計算上の安定性と実時間処理可能な演算効率とを両立するため、その演算アルゴリズムは、第1段階である仮想力決定プロセス(仮想力算出処理)と、第2段階である実在力変換プロセス(実在力算出処理)によって構成される。第1段階である仮想力算出処理では、各運動目的の達成に必要な、操作空間に作用する仮想的な力である仮想力を、運動目的の優先度と仮想力の最大値を考慮しながら決定する。第2段階である実在力算出処理では、非駆動関節、垂直反力、摩擦錐、支持多角形等に関する拘束を考慮しながら、上記で得られた仮想力を関節力、外力等の実際の多リンク構造体の構成で実現可能な実在力に変換する。以下、仮想力算出処理及び実在力算出処理について詳しく説明する。なお、以下の仮想力算出処理、実在力算出処理及び後述する理想関節制御の説明においては、理解を簡単にするために、具体例として、図8及び図3に示した本実施形態に係るロボットアーム装置400のアーム部420の構成を例に挙げて説明を行う場合がある。
(6−2−2−1.仮想力算出処理)
多リンク構造体の各関節部におけるある物理量によって構成されるベクトルを一般化変数qと呼ぶ(関節値q又は関節空間qとも呼称する。)。操作空間xは、一般化変数qの時間微分値とヤコビアンJとを用いて、以下の数式(11)で定義される。
本実施形態では、例えば、qはアーム部420の関節部421a〜421fにおける回転角度である。操作空間xに関する運動方程式は、下記数式(12)で記述される。
ここで、fは操作空間xに作用する力を表す。また、Λ−1は操作空間慣性逆行列、cは操作空間バイアス加速度と呼ばれるものであり、それぞれ下記数式(13)、(14)で表される。
なお、Hは関節空間慣性行列、τは関節値qに対応する関節力(例えば関節部421a〜421fおける発生トルク)、bは重力、コリオリ力、遠心力を表す項である。
一般化逆動力学においては、操作空間xに関する位置、速度の運動目的は、操作空間xの加速度として表現できることが知られている。このとき、上記数式(11)から、運動目的として与えられた目標値である操作空間加速度を実現するために、操作空間xに作用するべき仮想力fvは、下記数式(15)のような一種の線形相補性問題(LCP:Linear Complementary Problem)を解くことによって得られる。
ここで、LiとUiはそれぞれ、fvの第i成分の負の下限値(−∞を含む)、fvの第i成分の正の上限値(+∞を含む)とする。上記LCPは、例えばIterative法、Pivot法、ロバスト加速度制御を応用する方法等を用いて解くことができる。
なお、操作空間慣性逆行列Λ−1、バイアス加速度cは、定義式である上記数式(13)、(14)の通り算出すると計算コストが大きい。従って、多リンク構造体の一般化力(関節力τ)から一般化加速度(関節加速度)を得る順動力学演算(FWD)を応用することにより、操作空間慣性逆行列Λ−1の算出処理をより高速に算出する方法が提案されている。具体的には、操作空間慣性逆行列Λ−1、バイアス加速度cは、順動力学演算FWDを用いることにより、関節空間q、関節力τ、重力g等の多リンク構造体(例えば、アーム部420及び関節部421a〜421f)に作用する力に関する情報から得ることができる。このように、操作空間に関する順動力学演算FWDを応用することにより、関節部の数Nに対してO(N)の計算量で操作空間慣性逆行列Λ−1を算出することができる。
ここで、運動目的の設定例として、絶対値Fi以下の仮想力fviで操作空間加速度の目標値(xの2階微分に上付きバーを付して表す)を達成するための条件は、下記数式(16)で表現できる。
また、上述したように、操作空間xの位置、速度に関する運動目的は、操作空間加速度の目標値として表すことができ、具体的には下記数式(17)で表現される(操作空間xの位置、速度の目標値を、x、xの1階微分に上付きバーを付して表す)。
その他、分解操作空間の考え方を用いることにより、他の操作空間の線形和で表される操作空間(運動量、デカルト相対座標、連動関節等)に関する運動目的を設定することもできる。なお、競合する運動目的間には優先度を与える必要がある。優先度毎かつ低優先度から順に上記LCPを解き、前段のLCPで得られた仮想力を次段のLCPの既知外力として作用させることができる。
(2−2−2.実在力算出処理)
一般化逆動力学の第2段階である実在力算出処理では、上記(2−2−1.仮想力決定プロセス)で得られた仮想力fvを、実在の関節力と外力で置換する処理を行う。仮想力による一般化力τv=Jv Tfvを関節部に生じる発生トルクτaと外力feとで実現するための条件は、下記数式(18)で表現される。
ここで、添え字aは駆動関節部の集合(駆動関節集合)を表し、添え字uは非駆動関節部の集合(非駆動関節集合)を表す。すなわち、上記数式(18)の上段は非駆動関節部による空間(非駆動関節空間)の力の釣り合いを表しており、下段は駆動関節部による空間(駆動関節空間)の力の釣合いを表している。Jvu、Jvaは、それぞれ、仮想力fvが作用する操作空間に関するヤコビアンの非駆動関節成分、駆動関節成分である。Jeu、Jeaは、外力feが作用する操作空間に関するヤコビアンの非駆動関節成分、駆動関節成分である。Δfvは仮想力fvのうち、実在力で実現不能な成分を表す。
上記数式(18)の上段は不定であり、例えば下記数式(19)に示すような2次計画問題(QP:Quadratic Programing Problem)を解くことで、fe及びΔfvを得ることができる。
ここで、εは上記数式(18)の上段の両辺の差であり、数式(18)の等式誤差を表す。ξはfeとΔfvとの連結ベクトルであり、変数ベクトルを表す。Q1及びQ2は、最小化の際の重みを表す正定値対称行列である。また、上記数式(19)の不等式拘束は、垂直反力、摩擦錐、外力の最大値、支持多角形等、外力に関する拘束条件を表現するのに用いられる。例えば、矩形の支持多角形に関する不等式拘束は、下記数式(20)のように表現される。
ここで、zは接触面の法線方向を表し、x及びyはzに垂直な直交2接線方向を表す。(Fx,Fy,Fz)及び(Mx,My,Mz)は、接触点に作用する外力及び外力モーメントである。μt及びμrは、それぞれ並進、回転に関する摩擦係数である。(dx,dy)は支持多角形のサイズを表している。
上記数式(19)、(20)から、最小ノルム又は最小誤差の解fe、Δfvが求められる。上記数式(19)から得られたfe、Δfvを上記数式(18)の下段に代入することにより、運動目的を実現するために必要な関節力τaを得ることができる。
基底が固定され、非駆動関節が無い系の場合は、関節力のみで全ての仮想力を置換可能であり、上記数式(18)において、fe=0、Δfv=0とすることができる。この場合、上記数式(18)の下段から、関節力τaについて以下の数式(21)を得ることができる。
以上、本実施形態に係る一般化逆動力学を用いた全身協調制御について説明した。上記のように、仮想力算出処理及び実在力算出処理を順に行うことにより、所望の運動目的を達成するための関節力τaを得ることができる。すなわち、逆に言えば、算出された関節力τaを関節部421a〜421fの運動における理論モデルに反映することにより、関節部421a〜421fが、所望の運動目的を達成するように駆動される。
なお、ここまで説明した一般化逆動力学を用いた全身協調制御について、特に、仮想力fvの導出過程や、上記LCPを解き仮想力fvを求める方法、QP問題の解法等の詳細については、例えば、本願出願人による先行特許出願である特開2009−95959号公報や特開2010−188471号公報を参照することができる。
(6−2−3.理想関節制御について)
次に、本実施形態に係る理想関節制御について説明する。各関節部421a〜421fの運動は、下記数式(22)の二次遅れ系の運動方程式によってモデル化される。
ここで、Iaは関節部における慣性モーメント(イナーシャ)、τaは関節部421a〜421fの発生トルク、τeは外部から各関節部421a〜421fに作用する外トルク、νaは各関節部421a〜421fにおける粘性抵抗係数である。上記数式(22)は、関節部421a〜421fにおけるアクチュエータの運動を表す理論モデルとも言える。
上記(6−2−2.一般化逆動力学について)で説明したように、一般化逆動力学を用いた演算により、運動目的及び拘束条件を用いて、当該運動目的を実現するために各関節部421a〜421fに作用させるべき実在力であるτaを算出することができる。従って、理想的には、算出された各τaを上記数式(22)に適用することにより、上記数式(22)に示す理論モデルに従った応答が実現する、すなわち、所望の運動目的が達成されるはずである。
しかし、実際には、様々な外乱の影響により、関節部421a〜421fの運動と上記数式(22)に示すような理論モデルとの間には誤差(モデル化誤差)が生じる場合がある。モデル化誤差は、多リンク構造体の重量、重心、慣性テンソル等のマスプロパティに起因するものと、関節部421a〜421f内部における摩擦や慣性等に起因するものとに大別することができる。このうち、前者のマスプロパティに起因するモデル化誤差は、CAD(Computer Aided Design)データの高精度化や同定手法の適用によって、理論モデル構築時に比較的容易に低減することが可能である。
一方、後者の関節部421a〜421f内部の摩擦や慣性等に起因するモデル化誤差は、例えば関節部421a〜421fのアクチュエータに設けられる減速機における摩擦等、モデル化が困難な現象に起因しており、理論モデル構築時に無視できないモデル化誤差が残留し得る。また、上記数式(22)におけるイナーシャIaや粘性抵抗係数νaの値と、実際の関節部421a〜421fにおけるこれらの値との間に誤差が生じている可能性がある。これらのモデル化が困難な誤差は、関節部421a〜421fの駆動制御において外乱となり得る。従って、このような外乱の影響により、実際には、関節部421a〜421fの運動は、上記数式(22)に示す理論モデル通りには応答しない場合がある。よって、一般化逆動力学によって算出された関節力である実在力τaを適用しても、制御目標である運動目的が達成されない場合が生じる。本実施形態では、各関節部421a〜421fにアクティブな制御系を付加することで、上記数式(22)に示す理論モデルに従った理想応答を行うよう、関節部421a〜421fの応答を補正することを考える。具体的には、本実施形態では、関節部421a〜421fのトルクセンサ428、428aを用いた摩擦補償型のトルク制御を行うに留まらず、要求される発生トルクτa、外トルクτeに対して、イナーシャIa及び粘性抵抗係数νaに至るまで理論値に従った理想応答を行うことが可能となる。
本実施形態では、このように、ロボットアーム装置400の関節部421a〜421fが上記数式(22)に示すような理想的な応答を行うように関節部の駆動を制御することを、理想関節制御と呼称する。ここで、以下の説明では、当該理想関節制御によって駆動が制御されるアクチュエータのことを、理想的な応答が行われることから仮想アクチュエータ(VA:Virtualized Actuator)とも呼称する。以下、図10を参照して、本実施形態に係る理想関節制御について説明する。
図10は、本開示の一実施形態に係る理想関節制御について説明するための説明図である。なお、図10では、理想関節制御に係る各種の演算を行う概念上の演算器をブロックで模式的に図示している。
図10を参照すると、アクチュエータ610は、例えば図8に示す関節部421a〜421fに適用され得るアクチュエータの機構を模式的に表しており、モータ(Motor)611、減速機(Reduction Gear)612、エンコーダ(Encoder)613及びトルクセンサ(Torque Sensor)614が図示されている。
ここで、アクチュエータ610が上記数式(22)で表される理論モデルに従った応答を行なうことは、上記数式(22)の右辺が与えられたときに、左辺の回転角加速度が達成されることに他ならない。また、上記数式(22)に示すように、理論モデルには、アクチュエータ610に作用する外トルク項τeが含まれている。本実施形態では、理想関節制御を行うために、トルクセンサ614によって外トルクτeを測定する。また、エンコーダ613によって測定されたアクチュエータ610の回転角度qに基づいて外乱に起因するトルクの推定値である外乱推定値τdを算出するために、外乱オブザーバ620を適用する。
ブロック631は、上記数式(22)に示す関節部421a〜421fの理想的な関節モデル(Ideal Joint Model)に従った演算を行う演算器を表している。ブロック631は、発生トルクτa、外トルクτe、回転角速度(回転角度qの1階微分)を入力として、上記数式(22)の左辺に示す回転角加速度目標値(回転角目標値qrefの2階微分)を出力することができる。
本実施形態では、上記(6−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の駆動について、運動目的を達成する高精度な駆動制御が可能となる。
(6−2−4.ロボットアーム制御システムの構成)
次に、上記(6−2−2.一般化逆動力学について)及び上記(6−2−3.理想関節制御について)で説明した全身協調制御や理想関節制御がロボットアーム装置の駆動制御に適用された、本実施形態に係るロボットアーム制御システムの構成について説明する。
図11を参照して、本開示の一実施形態に係るロボットアーム制御システムの一構成例について説明する。図11は、本開示の一実施形態に係るロボットアーム制御システムの一構成例を示す機能ブロック図である。なお、図11に示すロボットアーム制御システムでは、ロボットアーム装置のアーム部の駆動の制御に関わる構成について主に図示している。
図11を参照すると、本開示の一実施形態に係るロボットアーム制御システム1は、ロボットアーム装置10、制御装置20及び表示装置30を備える。本実施形態においては、制御装置20によって、上記(6−2−2.一般化逆動力学について)で説明した全身協調制御及び上記(6−2−3.理想関節制御について)で説明した理想関節制御における各種の演算が行われ、その演算結果に基づいてロボットアーム装置10のアーム部の駆動が制御される。また、ロボットアーム装置10のアーム部には後述する撮像部140が設けられており、撮像部140によって撮影された画像が表示装置30の表示画面に表示される。以下、ロボットアーム装置10、制御装置20及び表示装置30の構成について詳細に説明する。
ロボットアーム装置10は、複数の関節部と複数のリンクから構成される多リンク構造体であるアーム部を有し、当該アーム部を可動範囲内で駆動させることにより、当該アーム部の先端に設けられる先端ユニットの位置及び姿勢の制御を行う。ロボットアーム装置10は、図8に示すロボットアーム装置400に対応している。
図11を参照すると、ロボットアーム装置10は、アーム制御部110及びアーム部120を有する。また、アーム部120は、関節部130及び撮像部140を有する。
アーム制御部110は、ロボットアーム装置10を統合的に制御するとともに、アーム部120の駆動を制御する。アーム制御部110は、図8を参照して説明した制御部(図8には図示せず。)に対応している。具体的には、アーム制御部110は駆動制御部111を有し、駆動制御部111からの制御によって関節部130の駆動が制御されることにより、アーム部120の駆動が制御される。より具体的には、駆動制御部111は、関節部130のアクチュエータにおけるモータに対して供給される電流量を制御することにより、当該モータの回転数を制御し、関節部130における回転角度及び発生トルクを制御する。ただし、上述したように、駆動制御部111によるアーム部120の駆動制御は、制御装置20における演算結果に基づいて行われる。従って、駆動制御部111によって制御される、関節部130のアクチュエータにおけるモータに対して供給される電流量は、制御装置20における演算結果に基づいて決定される電流量である。ただし、当該制御部は、各関節部にそれぞれ設けられ、各関節部の駆動をそれぞれ制御してもよい。
アーム部120は、複数の関節部と複数のリンクから構成される多リンク構造体であり、アーム制御部110からの制御によりその駆動が制御される。アーム部120は、図8に示すアーム部420に対応している。アーム部120は、関節部130及び撮像部140を有する。なお、アーム部120が有する複数の関節部の機能及び構成は互いに同様であるため、図11では、それら複数の関節部を代表して1つの関節部130の構成を図示している。
関節部130は、アーム部120においてリンク間を互いに回動可能に連結するとともに、アーム制御部110からの制御によりその回転駆動が制御されることによりアーム部120を駆動する。関節部130は、図8に示す関節部421a〜421fに対応している。また、関節部130は、アクチュエータを有し、当該アクチュエータの構成は、例えば図3、図9A及び図9Bに示す構成と同様である。
関節部130は、関節駆動部131及び関節状態検出部132を有する。
関節駆動部131は、関節部130のアクチュエータにおける駆動機構であり、関節駆動部131が駆動することにより関節部130が回転駆動する。関節駆動部131は、駆動制御部111によってその駆動が制御される。例えば、関節駆動部131は、図1に示すモータ310及び当該モータ310を駆動するためのモータドライバに対応する構成であり、関節駆動部131が駆動することは、当該モータドライバが駆動制御部111からの指令に応じた電流量でモータ310を駆動することに対応している。
関節状態検出部132は、関節部130の状態を検出する。ここで、関節部130の状態とは、関節部130の運動の状態を意味していてよい。例えば、関節部130の状態には、関節部130の回転角度、回転角速度、回転角加速度、発生トルク等の情報が含まれる。本実施形態においては、関節状態検出部132は、関節部130の回転角度を検出する回転角度検出部133及び関節部130の発生トルク及び外トルクを検出するトルク検出部134を有する。なお、回転角度検出部133及びトルク検出部134は、例えば、図1に示すアクチュエータ300のエンコーダ330、340及び図9A及び図9Bに示すトルクセンサ428、428aに、それぞれ対応している。関節状態検出部132は、検出した関節部130の状態を制御装置20に送信する。
撮像部140は、アーム部120の先端に設けられる先端ユニットの一例であり、撮影対象の画像を取得する。撮像部140は、図8に示す撮像ユニット423に対応している。具体的には、撮像部140は、撮影対象を動画や静止画の形式で撮影することのできるカメラ等である。より具体的には、撮像部140は、2次元上に配列された複数の受光素子を有し、当該受光素子における光電変換により、撮影対象の画像を表す画像信号を取得することができる。撮像部140は、取得した画像信号を表示装置30に送信する。
なお、図8に示すロボットアーム装置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の機能及び構成について詳しく説明するが、全身協調制御及び理想関節制御については、上記(6−2−2.一般化逆動力学について)及び上記(6−2−3.理想関節制御について)で既に説明しているため、ここでは詳しい説明は省略する。
制御部230は、全身協調制御部240及び理想関節制御部250を有する。
全身協調制御部240は、一般化逆動力学を用いた全身協調制御に関する各種の演算を行う。本実施形態では、全身協調制御部240は、関節状態検出部132によって検出された関節部130の状態に基づいてアーム部120の状態(アーム状態)を取得する。また、全身協調制御部240は、当該アーム状態と、アーム部120の運動目的及び拘束条件と、に基づいて、操作空間におけるアーム部120の全身協調制御のための制御値を、一般化逆動力学を用いて算出する。なお、操作空間とは、例えばアーム部120に作用する力とアーム部120に発生する加速度との関係を記述するための空間である。
全身協調制御部240は、アーム状態取得部241、演算条件設定部242、仮想力算出部243及び実在力算出部244を有する。
アーム状態取得部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の可動範囲等がモデル化されたもの)を有し、当該物理モデルに、所望の運動条件及び拘束条件が反映された制御モデルを生成することにより、運動条件及び拘束条件を設定してもよい。
本実施形態においては、運動目的及び拘束条件を適切に設定することにより、アーム部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は、アクチュエータの回転運動における粘性抵抗係数を適宜調整できるように構成される。従って、運動目的の設定に際して各関節部130の回転運動における粘性抵抗係数も設定することにより、例えば外部から加えられる力に対して回転しやすい状態や回転し難い状態を実現することができる。例えば上述したパワーアシスト動作であれば、関節部130における粘性抵抗係数が小さく設定されることにより、ユーザがアーム部120を移動させる際に要する力がより小さくてよく、ユーザに与えられる無重力感がより助長される。このように、各関節部130の回転運動における粘性抵抗係数は、運動目的の内容に応じて適宜設定されてよい。
なお、運動目的の具体例については、下記(6−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が行う仮想力の算出処理は、例えば、上記(6−2−2−1.仮想力算出処理)で説明した一連の処理であってよい。仮想力算出部243は、算出した仮想力fvを実在力算出部244に送信する。
実在力算出部244は、一般化逆動力学を用いた全身協調制御に関する演算における実在力を算出する。実在力算出部244が行う実在力の算出処理は、例えば、上記(2−2−2.実在力算出処理)で説明した一連の処理であってよい。実在力算出部244は、算出した実在力(発生トルク)τaを理想関節制御部250に送信する。なお、本実施形態においては、実在力算出部244によって算出された発生トルクτaのことを、全身協調制御における関節部130の制御値という意味で、制御値又は制御トルク値とも呼称する。
理想関節制御部250は、理論モデルに基づいた理想的な応答を実現する理想関節制御に関する各種の演算を行う。本実施形態では、理想関節制御部250は、実在力算出部244によって算出された発生トルクτaに対して外乱の影響を補正することにより、アーム部120の理想的な応答を実現するトルク指令値τを算出する。なお、理想関節制御部250によって行われる演算処理は、上記(6−2−3.理想関節制御について)で説明した一連の処理に対応している。
理想関節制御部250は、外乱推定部251及び指令値算出部252を有する。
外乱推定部251は、トルク指令値τと、回転角度検出部133によって検出された回転角度qから算出される回転角速度に基づいて、外乱推定値τdを算出する。なお、ここでいうトルク指令値τは、最終的にロボットアーム装置10に送信されるアーム部120での発生トルクを表す指令値である。このように、外乱推定部251は、図10に示す外乱オブザーバ620に対応する機能を有する。
指令値算出部252は、外乱推定部251によって算出された外乱推定値τdを用いて、最終的にロボットアーム装置10に送信されるアーム部120に生じさせるトルクを表す指令値であるトルク指令値τを算出する。具体的には、指令値算出部252は、上記数式(22)に示す関節部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によって検出される。
制御装置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は、図7に示す表示装置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のそれぞれが、例えば図3に示すような、理想関節制御に適合した構成を有し、各関節部130における回転角度、発生トルク及び粘性抵抗係数を電流値によって制御することができる。このように、各関節部130の駆動が電流値によって制御され、また、全身協調制御により各関節部130の駆動がアーム部120全体の状態を把握しながら制御されるため、カウンターバランスが不要となり、ロボットアーム装置10の小型化が実現される。
(6−2−5.運動目的の具体例)
次に、本実施形態に係る運動目的の具体例について説明する。上記(6−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及びその構成部材は、図8に示した本実施形態に係るアーム部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が侵入しない動作が実現されるように、運動目的及び拘束条件が設定されてもよい。図7を参照して説明したように、本実施形態においてはユーザが表示画面を見ながら手術を行う。従って、ユーザと表示画面との間の領域にアーム部120が位置すると、ユーザの視界を遮ることとなり、手術の効率低下につながる恐れがある。従って、例えばユーザと表示画面の間の領域をアーム部120の侵入禁止領域として設定することにより、手術の効率化を図ることができる。
ここで、このようにアーム部120に侵入禁止領域を設定する場合には、アーム部120の自由度が6自由度よりも多いことが好ましい。何故ならば、6自由度よりも多い自由度を冗長自由度として利用することができるため、6自由度の駆動を確保しつつ、上記のような侵入禁止領域等にも対応できるからである。このような6自由度よりも多い自由度を有するアーム部を備えるロボットアーム装置の構成について、図14を参照して詳しく説明する。
図14は、本開示の一実施形態に係るロボットアーム装置における冗長自由度を有する変形例の外観を示す概略図である。なお、図14においても、図8で定義した方向と同一の座標軸を図示している。
図14を参照すると、本変形例に係るロボットアーム装置450は、ベース部460及びアーム部470を備える。また、アーム部470は、複数の関節部471a〜471gと、関節部471a〜471gによって互いに連結される複数のリンク472a〜472dと、アーム部470の先端に設けられる撮像ユニット473を有する。ここで、図14に示すロボットアーム装置450は、図8を参照して説明したロボットアーム装置400に対してアーム部470の自由度が1つ増加した構成に対応している。従って、ベース部460、個々の関節部471a〜471g及びリンク472a〜472d、並びに、撮像ユニット473の機能及び構成は、図8を参照して説明したロボットアーム装置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では、図8と同様に、撮像ユニット473の移動可能範囲の一例として半球を図示している。半球の中心点が撮像ユニット473によって撮影される施術部位の撮影中心であるとすれば、撮像ユニット473の撮影中心を半球の中心点に固定した状態で、撮像ユニット473を半球の球面上で移動させることにより、施術部位をあらゆる角度から撮影することができる。本実施形態に係るロボットアーム装置450は、更に1つの冗長自由度を有することにより、このような撮像ユニット473の半球上の移動とともに、アーム部470の軌道を制限することができ、上述した侵入禁止領域のような拘束条件にも容易に対応することができる。侵入禁止領域を設定することにより、例えば、撮像ユニット473によって撮影された画像が表示されるモニタと施術者及びスタッフとの間にアーム部470が存在しないようにアーム部470の駆動を制御することができ、施術者及びスタッフによるモニタの視認が妨げられることを防ぐことができる。また、侵入禁止領域を設定することにより、施術者及びスタッフや周囲の他の機器との干渉(接触)を避けてアーム部470が移動するようにアーム部470の駆動を制御することが可能となる。
(6−3.ロボットアーム制御方法の処理手順)
次に、図15を参照して、本開示の一実施形態に係るロボットアーム制御方法の処理手順について説明する。図15は、本開示の一実施形態に係るロボットアーム制御方法の処理手順を示すフロー図である。なお、以下では、図11に示すロボットアーム制御システム1の構成によって本実施形態に係るロボットアーム制御方法が実現される場合を例に挙げて説明を行う。従って、本実施形態に係るロボットアーム制御方法は医療用ロボットアーム制御方法であると言える。なお、以下の本実施形態に係るロボットアーム制御方法の処理手順についての説明において、図11に示すロボットアーム制御システム1の各構成の機能については、上記(6−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における一連の処理、すなわち、上記(6−2−2.一般化逆動力学について)で説明した一連の処理であってよい。
次にステップS809で、外乱推定値τdが算出され、当該外乱推定値τdを用いて、理想関節制御についての演算が行われ、制御値τaから指令値τが算出される。なお、ステップS809で行われる処理は、図11に示す理想関節制御部250における一連の処理、すなわち、上記(6−2−3.理想関節制御について)で説明した一連の処理であってよい。
最後にステップS811で、指令値τに基づいて、駆動制御部111によって関節部130の駆動が制御される。
以上、図15を参照して、本実施形態に係るロボットアーム制御方法の処理手順について説明した。なお、本実施形態においては、図15に示すステップS801〜ステップS811における処理が、アーム部120を用いた作業が行われている間繰り返し行われる。従って、本実施形態においては、アーム部120を用いた作業が行われている間、アーム部120の駆動制御が継続的に行われる。
(6−4.ハードウェア構成)
次に、図16を参照しながら、図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は、本実施形態においては、例えば、図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は、図11に示すアーム部120に対応する各種の構成を当然備える。
なお、上述のような本実施形態に係るロボットアーム装置10、制御装置20及び表示装置30の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
(6−5.医療用ロボットアーム装置についてのまとめ)
以上説明したように、本実施形態においては、以下の効果を得ることができる。
以上説明したように、本実施形態によれば、ロボットアーム装置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のそれぞれが、例えば図3に示すような、理想関節制御に適合した構成を有し、各関節部130における回転角度、発生トルク及び粘性抵抗係数を電流値によって制御することができる。このように、各関節部130の駆動が電流値によって制御され、また、全身協調制御により各関節部130の駆動がアーム部120全体の状態を把握しながら制御されるため、カウンターバランスが不要となり、ロボットアーム装置10の小型化が実現される。
このように、本実施形態によれば、上記(6−1.医療用ロボットアーム装置についての検討)で説明したロボットアーム装置に求められる性能を全て満たすことができる。従って、本実施形態に係るロボットアーム装置を用いた各種の施術において、より効率的に施術を行うことができ、ユーザや患者の疲労や負担をより軽減することが実現される。
また、本実施形態では、力制御によってロボットアーム装置10のアーム部120が駆動されることにより、万が一駆動中にアーム部120が施術者やスタッフ等に干渉(接触)したとしても、アーム部120が必要以上の力を発生せず、アーム部120が安全に停止する。そして、当該干渉から解放されれば、設定された運動目的に従って所望の位置までアーム部120が移動し、施術が継続される。このように、本実施形態では、ロボットアーム装置10の駆動制御に力制御が用いられることにより、駆動中におけるアーム部120と周囲の物体との干渉に対して、より高い安全性が確保される。
なお、例えば、上記実施形態では、ロボットアーム装置のアーム部の先端ユニットが撮像ユニットであり、図7に示すように手術時に当該撮像ユニットによって施術部位を撮影する場合について説明したが、本実施形態はかかる例に限定されない。本実施形態に係るロボットアーム制御システム1は、他の先端ユニットを有するロボットアーム装置が他の用途に用いられる場合であっても適用可能である。例えば、先端ユニットは内視鏡や腹腔鏡であってもよいし、超音波検査器や胃カメラ等、他の検査機器であってもよい。
例えば、腹腔鏡を用いた施術では、患者の体内に腹腔鏡を挿入し、当該腹腔鏡によって撮影された映像を観察しながら、別途挿入される鉗子や電気メス等の術具を用いて各種の処置が行われる。このような施術方法においては、例えば腹腔鏡をロボットアームによって操作しながら、処置用の術具を施術者が直接操作することができれば、1人のユーザによって施術を行うことができ、より効率的な施術が可能となる。しかしながら、一般的な既存のバランス型アームにおいては、操作性の観点から、1人のユーザが、自身の手による術具の操作とロボットアームによる腹腔鏡の操作とを同時に行うことは困難であった。よって、既存の方法では、複数名のスタッフが必要であり、1人の施術者がロボットアームによって腹腔鏡を操作しながら、他の者が術具を用いた処置を行うことが一般的であった。しかし、本実施形態に係るロボットアーム装置では、上述したように、全身協調制御による高い操作性が実現される。また、理想関節制御により、振動等の影響がより少ない、高精度の応答性と高い安定性が実現される。従って、本実施形態によれば、ロボットアーム装置による観察用の腹腔鏡の操作と、自身の手による術具の操作とを、施術者1人で容易に行うことが可能となる。
また、本実施形態に係るロボットアーム装置は、医療以外の用途に用いられてもよい。本実施形態に係るロボットアーム装置では、理想関節制御により、高精度の応答性と高い安定性が実現されるため、例えば高い精度が求められる工業部品の加工や組み立て等の作業にも対応可能である。
また、上記実施形態では、ロボットアーム装置の関節部が回転機構を有し、当該回転機構の回転駆動が制御されることによってアーム部の駆動が制御される場合について説明したが、本実施形態はかかる例に限定されない。例えば、本実施形態に係るロボットアーム装置においては、アーム部を構成するリンクがリンクの延伸方向に伸縮する機構(例えば油圧で駆動するものやボールねじを駆動するもの等)を有し、リンクの長さが可変であってもよい。リンクの長さが可変である場合、例えば関節部における回転に加えてリンクの伸縮も考慮した全身協調制御によって、所望の運動目的を達成するようにアーム部の駆動が制御される。
また、上記実施形態では、ロボットアーム装置におけるアーム部の自由度が6自由度以上である場合について説明したが、本実施形態はかかる例に限定されない。また、ロボットアーム装置におけるアーム部を構成する複数の関節部が全て理想関節制御に対応するアクチュエータを有する場合について説明したが、本実施形態はかかる例に限定されない。本実施形態においては、ロボットアーム装置の用途に応じて多様な運動目的が設定され得る。従って、設定された運動目的が達成可能であれば、アーム部は、6自由度よりも低い自由度を有してもよいし、アーム部を構成する複数の関節部のうちの一部が一般的な関節機構を有する関節部であってもよい。このように、本実施形態においては、アーム部の構成は、運動目的を達成可能であるように構成されればよく、ロボットアーム装置の用途に応じて適宜構成されてよい。
<7.補足>
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)モータの回転軸に連結された入力軸の回転速度を、所定の減速比で減速させ出力軸に伝達する減速機と、前記入力軸の回転角度を検出する第1の絶対角度エンコーダと、前記出力軸の回転角度を検出する第2の絶対角度エンコーダと、を備える、アクチュエータ。
(2)前記第1の絶対角度エンコーダによって検出された前記入力軸の回転角度に基づいて、前記出力軸の回転角度が検出される、前記(1)に記載のアクチュエータ。
(3)前記第2の絶対角度エンコーダによって検出された前記出力軸の回転角度に基づいて、前記出力軸の累積回転数が算出され、前記累積回転数から算出される前記入力軸の累積回転角度に、前記第1の絶対角度エンコーダによって検出された前記入力軸の回転角度を加えることにより、前記出力軸の回転角度が検出される、前記(1)又は(2)に記載のアクチュエータ。
(4)前記第2の絶対角度エンコーダによる前記出力軸の回転角度の検出値から推定される前記入力軸の回転角度に基づいて、前記入力軸の累積回転数が補正される、前記(3)に記載のアクチュエータ。
(5)前記第2の絶対角度エンコーダの回転角度の検出精度は、前記減速機の減速比に応じた、前記入力軸の一回転分に対応する前記出力軸の回転角度未満である、前記(3)に記載のアクチュエータ。
(6)前記入力軸の回転数を保持するカウンタ、を更に備え、前記カウンタの値に基づいて算出される前記入力軸の累積回転角度に、前記第1の絶対角度エンコーダによって検出された前記入力軸の回転角度を加えることにより、前記出力軸の回転角度が検出される、前記(1)又は(2)に記載のアクチュエータ。
(7)前記第1の絶対角度エンコーダによる前記入力軸の回転角度の検出値と、前記第2の絶対角度エンコーダによる前記出力軸の回転角度の検出値と、の関係性に基づいて、前記アクチュエータの故障が検出される、前記(1)〜(6)のいずれか1項に記載のアクチュエータ。
(8)前記第1の絶対角度エンコーダによる前記入力軸の回転角度の検出値及び前記第2の絶対角度エンコーダによる前記出力軸の回転角度の検出値の時間変化に更に基づいて、前記モータ、前記減速機、前記第1の絶対角度エンコーダ及び前記第2の絶対角度エンコーダの少なくともいずれかの故障が出される、前記(7)に記載のアクチュエータ。
(9)前記モータはブラシレスモータであり、前記第1の絶対角度エンコーダは、前記モータの回転子の回転を検出するセンサとしても機能する、前記(1)〜(8)のいずれか1項に記載のアクチュエータ。
(10)前記第1の絶対角度エンコーダ及び前記第2の絶対角度エンコーダは、磁石の回転に伴う磁界の変化を、複数の磁気センサにより所定の位相だけずれた状態で検出することにより、当該磁石の回転角度を検出する、磁気式エンコーダである、前記(1)〜(9)のいずれか1項に記載のアクチュエータ。
(11)複数のリンクが複数の関節部によって連結されて構成されるアーム部と、前記関節部の状態に基づいて、少なくとも一つの前記関節部に設けられるアクチュエータの駆動を制御する駆動制御部と、を備え、前記アクチュエータは、モータの回転軸に連結された入力軸の回転速度を、所定の減速比で減速させ出力軸に伝達する減速機と、前記入力軸の回転角度を検出する第1の絶対角度エンコーダと、前記出力軸の回転角度を検出する第2の絶対角度エンコーダと、を有する、ロボットアーム装置。
(12)前記第1の絶対角度エンコーダによって検出された前記入力軸の回転角度に基づいて、前記出力軸の回転角度が検出される、前記(11)に記載のロボットアーム装置。
(13)前記第2の絶対角度エンコーダによって検出された前記出力軸の回転角度に基づいて、前記出力軸の累積回転数が算出され、前記累積回転数から算出される前記入力軸の累積回転角度に、前記第1の絶対角度エンコーダによって検出された前記入力軸の回転角度を加えることにより、前記出力軸の回転角度が検出される、前記(11)又は(12)に記載のロボットアーム装置。
(14)前記第2の絶対角度エンコーダによる前記出力軸の回転角度の検出値から推定される前記入力軸の回転角度に基づいて、前記入力軸の累積回転数が補正される、前記(13)に記載のロボットアーム装置。
(15)前記第2の絶対角度エンコーダの回転角度の検出精度は、前記減速機の減速比に応じた、前記入力軸の一回転分に対応する前記出力軸の回転角度未満である、前記(13)に記載のロボットアーム装置。
(16)前記入力軸の回転数を保持するカウンタ、を更に備え、前記カウンタの値に基づいて算出される前記入力軸の累積回転角度に、前記第1の絶対角度エンコーダによって検出された前記入力軸の回転角度を加えることにより、前記出力軸の回転角度が検出される、前記(11)又は(12)に記載のロボットアーム装置。
(17)前記第1の絶対角度エンコーダによる前記入力軸の回転角度の検出値と、前記第2の絶対角度エンコーダによる前記出力軸の回転角度の検出値と、の関係性に基づいて、前記アクチュエータの故障が検出される、前記(11)〜(16)のいずれか1項に記載のロボットアーム装置。
(18)前記第1の絶対角度エンコーダによる前記入力軸の回転角度の検出値及び前記第2の絶対角度エンコーダによる前記出力軸の回転角度の検出値の時間変化に更に基づいて、前記モータ、前記減速機、前記第1の絶対角度エンコーダ及び前記第2の絶対角度エンコーダの少なくともいずれかの故障が出される、前記(17)に記載のロボットアーム装置。
(19)前記モータはブラシレスモータであり、前記第1の絶対角度エンコーダは、前記モータを駆動するために前記モータの回転子の回転を検出するセンサとしても機能する、前記(11)〜(18)のいずれか1項に記載のロボットアーム装置。
(20)前記第1の絶対角度エンコーダ及び前記第2の絶対角度エンコーダは、磁石の回転に伴う磁界の変化を、複数の磁気センサにより所定の位相だけずれた状態で検出することにより、当該磁石の回転角度を検出する、磁気式エンコーダである、前記(11)〜(19)のいずれか1項に記載のロボットアーム装置。
(21)前記アーム部には、所定の処置を行う器具が装着される装着部が設けられる、前記(11)〜(20)のいずれか1項に記載のロボットアーム装置。
(22)前記器具は医療用器具である、前記(21)に記載のロボットアーム装置。