以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.ロボットアーム装置の安全性についての検討
2.ロボットアーム制御システムの機能構成
3.ロボットアーム制御システムのハードウェア構成
4.動作判断方法の処理手順
5.各処理の詳細について
5−1.異常検出処理
5−2.異常回避動作
5−3.一部機能停止動作
5−4.機能停止動作
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.全身協調制御に係るロボットアーム装置のまとめ
7.ハードウェア構成
8.補足
本明細書では、まず、<1.ロボットアーム装置の安全性についての検討>において、本開示をより明確なものとするために、安全性の観点からロボットアーム装置に求められる性能について検討するとともに、本発明者らが本開示に想到するに至った背景について説明する。次に、<2.ロボットアーム制御システムの機能構成>、<3.ロボットアーム制御システムのハードウェア構成>、<4.ロボットアーム制御方法の処理手順>及び<5.各処理の詳細について>において、上述した安全性の観点から本発明者らが想到した、好適な一実施形態に係るロボットアーム装置の制御システムの構成及びロボットアーム装置の制御方法について説明する。
ここで、本実施形態では、<2.ロボットアーム制御システムの機能構成>から<5.各処理の詳細について>で説明するロボットアーム装置の制御方式として、全身協調制御と呼ばれる制御方式が適用され得る。本実施形態に係る全身協調制御では、アーム部が所定の運動目的を実現するような各関節部の制御量が算出され、当該制御量に基づいて各関節部が協調して駆動されることにより、アーム部の駆動が制御される。また、各関節部の制御量が算出される際に、アーム部の運動(例えば、位置や速度、力)を制限する所定の拘束条件が設けられてもよい。<6.全身協調制御について>では、医療用ロボットアーム装置を例に挙げて、このような全身協調制御を実現するための制御システムの構成や、制御方法について説明する。なお、本実施形態では、全身協調制御を用いることにより、上述した安全性以外にも、医療用ロボットアーム装置に求められる多様な性能を満たすことが可能となる。そこで、<6.全身協調制御について>では、上述した安全性の観点だけでなく、ロボットアーム装置の全身協調制御についてより広い見地から説明を行う。
なお、以下の説明では、本開示の好適な一実施形態として、主に医療用途に用いられるロボットアーム装置を例に挙げて説明を行う。ただし、本実施形態はかかる例に限定されず、例えば工業用等、他の分野に対しても適用可能である。
<1.ロボットアーム装置の安全性についての検討>
まず、本開示の好適な一実施形態について説明するに先立ち、医療用ロボットアーム装置を例に挙げ、安全性の観点からロボットアーム装置に求められる性能について説明する。
ロボットアーム装置が医療用途に用いられる場合には、そのアーム部の先端に撮像装置や処置具等の各種の医療用器具が取り付けられ、当該撮像装置によって患者の術部を観察したり、当該処置具によって術部に対して各種の処置を行ったりする使用方法が想定される。この場合、患者と、ロボットアーム装置を操作して各種の施術を行う術者と、双方の安全性が確保される必要がある。ここで、術者にとっての安全とは、ロボットアーム装置の駆動によって、術者自身が怪我や火傷等の傷害を受けないことであると考えられる。一方、患者にとっての安全には、ロボットアーム装置の駆動によって怪我や火傷等の傷害を受けないことに加えて、ロボットアーム装置の機能停止等により施術が中断され、施術時間が増加する等、患者に対する負担を増大させないことも含まれ得る。ここで、機能停止とは、ロボットアーム装置のアーム部に対して通常時の制御が行われておらず、アーム部が通常時とは異なる駆動をしている状態を意味する。
危険が生じ得る状況としては、まず、例えば術者の誤操作やハードウェア又はソフトウェアの何らかの不具合等に起因して、アーム部が術者の意図せぬ動きをした場合が考えられる。例えば、術者がアーム部を操作して医療用器具を患者に近付ける際に、何らかの原因により、過大な速度及び力で、医療用器具が患者に接近してしまい、医療用器具によって患者が傷付けられる状況が考えられる。また、アーム部が術者の意図せぬ動きをした場合には、アーム部と衝突する等、術者自身が危険にさらされる可能性もある。術者及び患者に対する安全性の観点から、このような誤操作に起因する又は何らかの不具合による意図せぬアーム部の動きを異常と判断し、当該異常を回避する動作(異常回避動作)を行うように、アーム部の駆動を制御することが求められる。
また、危険が生じ得る他の状況としては、故障によりアーム部の一部が正常に動作しない状況が考えられる。例えば上記特許文献1に記載されているように、一般的なロボットアーム装置では、アーム部のいずれかの部位で異常を検出した場合、その状態から移動しないようにアーム部の位置及び姿勢が固定され、アーム部全体がいわば静止状態にされる。しかしながら、ロボットアーム装置が静止状態となってしまうと、施術を中断せざるを得ず、施術時間の増加を招きかねない。従って、例えばアーム部に故障が生じた場合に、故障が生じている関節部を特定するとともに、故障している関節部の動きを固定し、それ以外の関節部によってアーム部の駆動を維持するような動作(一部機能停止動作)を行うように、アーム部の駆動を制御することが求められる。
また、停電等の非常事態が発生した場合や、アーム部に深刻な故障が生じた場合には、一部機能停止動作では対応できず、アーム部の機能を完全に停止させなくてはいけない状況が生じ得る。この場合、例えば停止したアーム部が術者及び患者に危害を加えないように、より安全にアーム部の機能が停止されることが望ましい。また、患者の負荷を軽減する観点からは、アーム部の機能を停止しつつも、例えば術者による手作業による施術に円滑に移行できるような機構が設けられることが好ましい。例えば、機能停止と同時にアーム部が意図せぬ動きをしたり、停止したアーム部がその後の作業の妨げになったりすることを防ぐ必要がある。このように、アーム部の機能を停止する動作(機能停止動作)をより安全に行うように、アーム部の駆動を制御することが求められる。
また、上述した異常回避動作、一部機能停止動作及び機能停止動作の選択は、施術がそのまま継続されることを優先して、可能な限りロボットアーム装置の機能が維持されるように行われることが望ましい。例えば、アーム部において異常が検出された場合に、当該異常に対して取り得る措置として、機能停止動作及び一部機能停止動作の双方が選択可能であるならば一部機能停止動作が選択されることが好ましい。同様に、検出された異常に対して一部機能停止動作及び異常回避動作の双方が選択可能であるならば、異常回避動作が選択されることが好ましい。これにより、可能な限り施術が継続されるようにロボットアーム装置の駆動が制御されることとなる。このような動作の選択を行うためには、アーム部において異常が検出された際に、異常が生じている部位や、異常の種類を的確に検出し、どの動作に移行すべきかを適切に判断することが求められる。医療用ロボットアーム装置には、このような的確な異常検出機能も求められることとなる。
以上説明したように、安全性の観点からロボットアーム装置には、以下の性能が求められる。すなわち、異常回避動作を実行可能であること、一部機能停止動作を実行可能であること、機能停止動作を安全に実行可能であること、及び、これらの動作への移行を判断するための異常検出処理を的確に実行可能であることである。
本発明者らは、これらの性能を満たす技術について鋭意検討した結果、以下に示す本開示の好適な一実施形態に想到した。以下、本開示の好適な一実施形態について詳細に説明する。
<2.ロボットアーム制御システムの機能構成>
図1を参照して、本開示の一実施形態に係るロボットアーム制御システムの機能構成について説明する。図1は、本開示の一実施形態に係るロボットアーム制御システムの概略構成を示す機能ブロック図である。
図1を参照すると、本実施形態に係るロボットアーム制御システム2は、ロボットアーム装置10及び制御装置20を備える。本実施形態では、制御装置20によってロボットアーム装置10を全身協調制御によって駆動するための各種の演算が行われ、当該演算結果に基づいてロボットアーム装置10のアーム部120の駆動が制御される。また、ロボットアーム装置10のアーム部120には後述する先端ユニット145が設けられており、アーム部120の駆動が制御されることにより、当該先端ユニット145によって患者に対して各種の施術が行われる。以下、ロボットアーム装置10及び制御装置20の構成について詳細に説明する。
ロボットアーム装置10は、複数のリンクが複数の関節部によって連結されて構成される多リンク構造体であるアーム部を有する。ロボットアーム装置10は、当該アーム部を可動範囲内で駆動させることにより、当該アーム部の先端に設けられ先端ユニット145の位置及び姿勢の制御を行う。
図1を参照すると、ロボットアーム装置10はアーム部120を有する。また、アーム部120は、関節部130及び先端ユニット145を有する。
アーム部120は、複数の関節部130と複数のリンクから構成される多リンク構造体であり、各関節部130の駆動が制御されることによりその駆動が制御される。なお、アーム部120が有する複数の関節部130の機能及び構成は互いに同様であるため、図1では、それら複数の関節部130を代表して1つの関節部130の構成を図示している。
関節部130は、アーム部120においてリンク間を互いに回動可能に連結するとともに、後述する関節制御部135からの制御によりその回転駆動が制御される。関節部130は、関節駆動部131、関節状態検出部132及び関節制御部135を有する。また、簡単のため図示は省略するが、関節部130は、外部の機器との間で各種の情報を互いに送受信する通信部を更に備えてもよい。制御装置20にも同様に通信部(図示せず。)が設けられており、関節部130は、制御装置20及び他の関節部130との間で、当該通信部を介して各種の情報を相互に送受信することができる。
関節駆動部131は、関節部130のアクチュエータを構成するモータ等の駆動機構である。関節駆動部131が駆動することにより関節部130が回転駆動する。関節駆動部131は、後述する関節制御部135の駆動制御部111によってその駆動が制御される。例えば、駆動制御部111からの指令に応じた電流量によって、関節駆動部131を構成するモータが駆動されることとなる。
関節状態検出部132は、関節部130の状態を検出する。ここで、関節部130の状態とは、関節部130の駆動状態を意味していてよい。例えば、関節部130の状態には、関節部130の回転角度、回転角速度、回転角加速度、発生トルク、外トルク等の情報が含まれる。また、関節部130の状態には、関節部130が駆動する際における各種の情報、例えば、アクチュエータのモータに供給される電流量及びモータの周囲の温度等の情報や、関節部130が他の関節部130や制御装置20と互いに通信するための通信部における通信状態等の情報が更に含まれてよい。本実施形態においては、関節状態検出部132は、例えば角度センサ(エンコーダ)、トルクセンサ、電流センサ及び/又は温度センサ等の各種のセンサによって構成されており、関節部130の回転角度、発生トルク及び外トルク、電流量、温度等を検出することができる。
関節状態検出部132は、検出した関節部130の状態を制御装置20に送信する。制御装置20では、これら関節部130の状態を示す情報に基づいて、関節部130の異常が検出される。また、制御装置20では、関節部130の状態を示す情報に基づいて、アーム部120の状態(アーム状態)が取得され、アーム部120が所定の運動目的を達成するような各関節部130の制御量が算出される。例えば、関節部130の状態を示す情報の中でも、アクチュエータのモータに供給される電流量、モータの周囲の温度、入力軸(モータ)及び出力軸の回転角度、発生トルク、外トルク、通信部の通信状態等についての情報は、主に異常検出に用いられてよい。また、例えば、関節部130の状態を示す情報の中でも、関節部130の回転角度、回転角速度、回転角加速度、発生トルク及び外トルク等の主に関節部130の運動を表す情報は、主に制御量の演算に用いられてよい。なお、制御量の演算については、下記<6.全身協調制御>で改めて詳しく説明するため、ここではその詳細な説明は省略する。
関節制御部135は、例えばCPU(Central Processing Unit)等の各種のプロセッサによって構成され、関節部130の動作を制御する。関節制御部135を構成するプロセッサが所定のプログラムに従って動作することにより、関節制御部135の各機能が実現される。本実施形態では、関節制御部135は、その機能として、駆動制御部111を有する。なお、関節制御部135は、例えば、関節部130に設けられる通信部の動作を制御し、当該通信部に所定の情報を送受信させる通信制御部等、関節部130に設けられる構成の動作を制御するための他の機能を更に有してもよい。
駆動制御部111は、関節部130の駆動を制御することにより、アーム部120の駆動を制御する。より具体的には、駆動制御部111は、関節部130の関節駆動部131に対して供給される電流量を制御することにより、関節駆動部131を構成するモータの回転数を制御し、関節部130における回転角度及び発生トルクを制御する。また、例えば関節部130に、その回転を妨げるブレーキ機構が設けられている場合には、駆動制御部111は、当該ブレーキ機構を駆動させ、関節部130の回転駆動を停止させてもよい。ここで、上述したように、駆動制御部111による関節部130の駆動制御は、制御装置20における演算結果に基づいて行われ得る。
また、下記(5−4.機能停止動作)で説明するが、機能停止動作が実行される場合には、制御装置20と関節部130との通信が遮断される等、制御装置20における演算結果が関節部130に送信されない状況も考えられる。制御装置20との通信が遮断されることにより、全身協調制御が実行できなくなり、いわゆる力制御は行われなくなるが、機能停止動作では、例えば各関節部130の動きを固定するような制御が実行される必要がある。従って、本実施形態では、駆動制御部111によって、いわゆる位置制御によって関節部130ごとにその駆動が独自に制御されてよい。これにより、制御装置20との通信が遮断された場合であっても、例えば関節部130の回転角度を所定の値で固定する等の駆動制御が各関節部130において行われることとなり、機能停止動作が実現され得る。
先端ユニット145は、アーム部120の先端に設けられ、アーム部120の駆動制御に伴って、その位置及び姿勢が制御される。本実施形態では、先端ユニット145は各種の医療用器具であり、例えば撮像装置や処置具等である。先端ユニット145がカメラや顕微鏡、内視鏡等の撮像装置である場合には、アーム部120を駆動させて当該撮像装置の位置及び姿勢を調整しながら患者の術部を撮影する使用方法が考えられる。例えば、撮像装置によって撮影された患者の術部の画像が表示装置の表示画面に表示され、術者は、当該表示装置の表示画面を参照しながら、術部の様子を観察したり、術部に対して各種の処置を行ったりすることができる。また、先端ユニット145がメスや鉗子等の処置具である場合には、アーム部120を駆動させて当該処置具によって患者の術部に対して所定の処置を行う使用方法が考えられる。これらの例に限定されず、先端ユニット145としては公知の各種の医療用器具が適用されてよい。
なお、図1では、先端ユニット145が複数の関節部130及び複数のリンクを介して最終段のリンクの先端に設けられる様子を、関節部130と先端ユニット145との間にリンクを模式的に図示することにより表現している。また、図1に示す例では便宜的に先端ユニット145と称しているが、本実施形態では、先端ユニット145が設けられる部位はアーム部120の先端に限定されない。本実施形態では、先端ユニット145は、アーム部120の駆動に伴ってその位置及び姿勢が制御され、患者に対して各種の施術を実行可能なように構成されればよく、そのアーム部120への取り付け部位は任意であってよい。
以上、ロボットアーム装置10の機能及び構成について説明した。次に、制御装置20の機能及び構成について説明する。図1を参照すると、制御装置20は、記憶部220及び制御部230を有する。
制御部230は、例えばCPU等の各種のプロセッサによって構成され、制御装置20の動作を統合的に制御するとともに、ロボットアーム装置10におけるアーム部120の駆動を制御するための各種の演算を行う。制御部230を構成するプロセッサが所定のプログラムに従って動作することにより、制御部230の各機能が実現される。本実施形態では、制御部230は、ロボットアーム装置10のアーム部120の駆動を制御するために、全身協調制御及び理想関節制御における各種の演算を行う。また、制御部230は、検出された関節部130の状態に基づいて、当該関節部130での異常を検出する機能を更に有する。
制御部230の機能構成について詳しく説明する。制御部230は、全身協調制御部240、理想関節制御部250、異常検出部260及び演算条件設定部242を有する。
異常検出部260は、関節部130の異常を検出するための各種の情報に基づいて、関節部130に生じた異常を検出する。ここで、関節部130の異常を検出するための情報には、例えば、関節状態検出部132によって検出された関節部130の状態についての情報や、後述するような関節部130の駆動制御についての情報、関節部130に送信される指令値についての情報、関節部130の通信状態についての情報等が含まれてよい。例えば、異常検出部260は、その機能として、アクチュエータ異常検出部261、駆動制御異常検出部262、指令値異常検出部263及び通信異常検出部264を有する。
アクチュエータ異常検出部261は、関節部130を駆動するために設けられるアクチュエータにおける異常を検出する。例えば、アクチュエータ異常検出部261は、関節部130の状態を示す情報に含まれる、アクチュエータのモータに供給される電流量、モータの周囲の温度、入力軸(モータ)及び出力軸の回転角度、発生トルク、外トルク等の情報に基づいて、アクチュエータにおける異常を検出することができる。
駆動制御異常検出部262は、駆動制御部111から送信される関節部130の駆動制御についての情報に基づいて、関節部130の異常を検出する。例えば、駆動制御異常検出部262は、駆動制御部111によってブレーキ機構が駆動されているにもかかわらず関節部130が駆動していたり、逆に、ブレーキ機構が駆動されていないにもかかわらず関節部130が駆動していなかったりした場合に、関節部130の異常を検出することができる。
指令値異常検出部263は、制御装置20から関節部130に送信される指令値に基づいて、関節部130の異常を検出する。ここで、指令値とは、理想関節制御部250によって算出される値であり、制御装置20から関節部130の駆動制御部111に送信される、最終的に関節部130の駆動を制御するための制御量である。例えば、指令値異常検出部263は、駆動制御部111に送信された指令値と、当該指令値に基づいて駆動された関節部130の駆動とが乖離している場合に、関節部130の異常を検出することができる。
通信異常検出部264は、関節部130と制御装置20との間の通信状態に基づいて、関節部130の異常を検出する。例えば、関節部130の通信部及び/又は制御装置20の通信部が正常に動作しておらず、両者の間での通信が遮断されている場合には、関節部130から制御装置20に対して制御量の演算に必要な情報(例えば関節部130の状態を表す情報)が送信されなかったり、制御装置20によって算出された制御量についての情報を関節部130が受信できなかったりする可能性がある。従って、通信異常検出部264は、例えば、通信部が正常に動作しておらず、制御装置20によって算出された制御量を受信することができない関節部130を、異常が発生している関節部130として検出することができる。
ここで、上述したような関節部130の異常を検出するための各種の情報(関節状態検出部132によって取得される関節部130の状態についての情報や、関節部130の駆動制御についての情報、制御装置20から関節部130に送信される指令値についての情報及び/又は関節部130と制御装置20との間の通信状態についての情報等)は、関節部130ごとに取得され得る情報である。従って、異常検出部260は、関節部130ごとに異常の有無を検出することができる。また、異常検出部260は、いずれの情報に基づいて異常を検出したかに応じて、関節部130のどの構成部材において異常が生じているかや、当該異常の種類も、併せて検出してもよい。
異常検出部260は、検出した異常についての情報を、演算条件設定部242に送信する。なお、異常検出部260によって行われる異常検出処理については、下記(5−1.異常検出処理)で改めて詳しく説明する。
なお、図1に示す例では、説明のため便宜的に、異常検出部260の機能を、アクチュエータ異常検出部261、駆動制御異常検出部262、指令値異常検出部263及び通信異常検出部264に分割して図示している。しかしながら、本実施形態では、異常検出部260によって、関節状態検出部132によって取得される関節部130の状態についての情報や、関節部130の駆動制御についての情報、制御装置20から関節部130に送信される指令値についての情報及び/又は関節部130と制御装置20との間の通信状態についての情報等が総合的に考慮され、関節部130における異常が検出されてよい。
演算条件設定部242は、全身協調制御部240及び理想関節制御部250によって行われる制御量の演算における演算条件を設定する。本実施形態では、演算条件設定部242は、異常検出部260によって検出された関節部130の異常の種類に応じて演算条件を設定する。具体的には、演算条件設定部242は、検出された関節部130の異常の種類に応じてアーム部120に行わせる動作を判断し、当該動作に対応する演算条件を設定することができる。ここで、アーム部120に行わせる動作とは、上述した異常回避動作、一部機能停止動作及び機能停止動作のいずれかであってよい。
例えば、記憶部220に、異常の種類と、当該異常が生じた場合に実行可能な動作と、当該動作を実行するための演算条件と、が関連付けられたテーブルが記憶されており、演算条件設定部242は、異常検出部260による異常の検出結果と当該テーブルとに基づいて、アーム部120に行わせる動作を判断するとともに、当該動作に応じた演算条件を設定することができる。当該テーブルでは、異常が発生した場合であっても、できるだけアーム部120の駆動制御が継続されるように、異常の種類と動作とが関連付けられていてよい。このようなテーブルに基づいてアーム部120に行わせる動作が判断されることにより、ロボットアーム装置10を用いた施術が可能な限り継続されるように、アーム部120の駆動が制御されることとなる。
なお、例えばアーム部120の全体構成や制御量の演算に用いられる制御モデル(内部モデル)等の条件が異なれば、同一の異常が発生した場合であっても、異なる動作を実行可能となることが考えられる。従って、上記テーブルにおいては、これらの条件を加味した上で異常の種類と動作との関連付けが行われてよい。当該テーブルの具体的な構成は、ロボットアーム装置10の設計者等によって適宜設定されてよい。
具体的には、演算条件設定部242によって設定される演算条件には、運動目的及び拘束条件が含まれてよい。運動目的とは、アーム部120の運動に関する各種の情報であり、例えば、先端ユニット145及びアーム部120の位置及び姿勢(座標)、速度、加速度並びに力等の目標値である。また、拘束条件とは、アーム部120の運動を制限(拘束)する各種の情報であり、例えば、アーム部120の各構成部材が移動不可能な領域の座標や、移動不可能な速度、加速度の値、発生不可能な力の値等であってよい。また、アーム部120に行わせる動作に応じて複数の内部モデルが用意されている場合には、演算条件設定部242は、異常検出部260によって検出された異常の種類に応じて判断された動作に対応する内部モデルを演算条件として設定してもよい。演算条件設定部242は、設定した演算条件についての情報を、全身協調制御部240に提供する。
全身協調制御部240は、一般化逆動力学を用いた全身協調制御に関する各種の演算を行う。また、理想関節制御部250は、理論モデルに基づいた理想的な応答を実現する理想関節制御に関する各種の演算を行う。これらの演算結果に基づいてロボットアーム装置10の駆動が制御されることにより、ロボットアーム装置10が力制御によって駆動されることとなる。本実施形態では、全身協調制御部240及び理想関節制御部250が、演算条件設定部242によって設定された演算条件に基づいて各種の演算を行うことにより、異常検出部260によって検出された異常の種類に応じて判断された動作をアーム部120が行うような、各関節部130の制御量が算出されることとなる。なお、全身協調制御部240及び理想関節制御部250が行う処理については、下記<6.全身協調制御について>で改めて詳しく説明することとし、ここでは概要のみを簡単に説明する。
全身協調制御部240は、関節状態検出部132によって検出された関節部130の状態に基づいて、演算条件設定部242によって設定された演算条件の下で、関節部130を駆動するための制御量を演算する。具体的には、全身協調制御部240は、関節状態検出部132によって検出された関節部130の状態に基づいて、アーム部120の状態(アーム状態)を取得することができる。アーム状態は、アーム部120の幾何学的パラメータ及び力学的パラメータを表すものであり、ロボットアーム装置10の内部モデルとして表現され得る。そして、全身協調制御部240は、当該アーム状態に基づいて、演算条件設定部242によって設定された運動目的を達成するようにアーム部120を駆動するための制御値(例えば各関節部130の駆動パラメータ(例えば関節部130の発生トルク値))を、演算条件設定部242によって設定された拘束条件を考慮して算出することができる。
理想関節制御部250は、全身協調制御部240により算出された制御値に対して外乱の影響を考慮した補正を行うことにより、最終的にアーム部120を駆動するために用いられる指令値を算出する。例えば、当該指令値は、外乱の影響が考慮された関節部130の発生トルク値であってよい。理想関節制御部250は、算出した指令値についての情報を、ロボットアーム装置10に送信する。当該指令値に基づいて、駆動制御部111が各関節部130を駆動させることにより、演算条件設定部242によって設定された拘束条件及び運動目的に従って、すなわち、異常検出部260によって検出された異常の種類に応じて判断された動作を行うように、アーム部120が駆動されることとなる。
記憶部220は、制御装置20によって処理される各種の情報を記憶する。本実施形態においては、記憶部220は、制御部230によって行われる全身協調制御及び理想関節制御に関する演算において用いられる各種の情報及び当該演算の結果についての情報を記憶することができる。例えば、記憶部220は、全身協調制御部240による全身協調制御に関する演算において用いられる運動目的、拘束条件及び内部モデルを記憶していてもよい。また、例えば、記憶部220には、関節部130において検出され得る異常の種類と、当該異常が生じた場合に実行可能な動作と、当該動作を実行するための演算条件と、が関連付けられたテーブルが記憶されていてもよい。記憶部220には、制御部230によって行われる各種の処理に関するあらゆるパラメータが格納されていてよく、制御部230は、記憶部220と相互に情報を送受信しながら各種の処理を行うことができる。
以上、図1を参照して、本実施形態に係るロボットアーム制御システム2の構成について説明した。以上説明したように、本実施形態では、異常検出部260によって関節部130ごとに異常の発生が検出される。従って、アーム部120のうちで異常が発生した部位が的確に検出され得る。また、本実施形態では、演算条件設定部242によって、異常検出部260によって検出された異常の種類に応じたアーム部120の動作が判断され、当該動作に対応する演算条件が設定される。そして、全身協調制御部240及び理想関節制御部250によって、当該演算条件に基づいて、アーム部120を駆動するための各関節部130の制御量が演算されることにより、異常の種類に応じた動作を行うようにアーム部120の駆動が制御される。従って、異常の種類に応じて、できるだけロボットアーム装置10を用いた施術が継続されるように、アーム部120の駆動が制御されることとなる。よって、患者及び術者の安全性を向上させることができる。
なお、図1に示す例では、異常検出部260が制御装置20に設けられ、関節部の異常を検出する処理が制御装置20において行われていたが、本実施形態はかかる例に限定されない。例えば、各関節部130の関節制御部135が、異常検出部260と同様の機能を有し、関節部130の異常の検出が関節部130自身によって行われてもよい。
また、ロボットアーム制御システム2の構成は、図1に示す例に限定されない。例えば、図1に示す関節制御部135及び制御部230において行われる各処理は、ロボットアーム装置10及び制御装置20のいずれにおいて行われてもよいし、ロボットアーム装置10及び制御装置20と通信可能に接続された図示しない他の情報処理装置によって行われてもよい。本実施形態では、図1に示す各機能が実行可能なようにロボットアーム制御システム2が構成されればよく、その具体的な装置構成は任意であってよい。
また、以上説明した、本実施形態に係るロボットアーム制御システム2の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
また、上述のような本実施形態に係るロボットアーム制御システム2の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
<3.ロボットアーム制御システムのハードウェア構成>
次に、図2を参照して、本実施形態に係るロボットアーム制御システムのハードウェア構成について説明する。図2は、本実施形態に係るロボットアーム制御システムのハードウェア構成を示すブロック図である。なお、図2に示すブロック図は、図1に示す機能ブロック図に対応するものであり、図1に示す各機能ブロックを構成するハードウェアを図示したものに対応する。また、図2では、簡単のため、図1に示す構成の中でも、本実施形態に係る異常検出に関係する構成について主に図示し、その他の構成については図示を省略している。
また、図2を参照すると、ロボットアーム装置のアーム部120の複数の関節部130に対応する構成が図示されている。実際には、各関節部130によってリンク同士が連結されることにより、多リンク構造体が構成されるが、図2ではリンクについては図示を省略している。また、図2では、一例として、関節部130を3つ図示しているが、関節部130の数はかかる例に限定されず、アーム部120の構成に応じて異なる数の関節部130が存在してよい。
(制御装置)
図2を参照すると、制御装置20が有する構成として、通信ユニット270及び制御用CPU280が図示されている。通信ユニット270は、ロボットアーム装置の各関節部130(より詳細には後述する関節部130の通信ユニット150)との間で各種の情報を相互に送受信する通信インターフェースである。本実施形態では、通信ユニット270によって、各関節部130から送信される、関節部130の異常を検出するための各種の情報が受信される。また、通信ユニット270によって、制御用CPU280によって演算されたアーム部120の各関節部130の制御量についての情報が、各関節部130に送信される。
制御用CPU280は、図1に示す制御部230に対応する。制御用CPU280では、各関節部130から送信される、関節部130の異常を検出するための各種の情報に基づいて、関節部130の異常が検出される。また、検出された異常の種類が判断され、当該異常の種類に応じたアーム部120の動作が判断される。更に、判断されたアーム部120の動作に応じた演算条件が設定され、当該演算条件に基づいて、当該アーム部120の動作を実現するような各関節部130の制御量が演算される。
(関節部)
各関節部130は、通信ユニット150、関節制御用CPU160、モータドライバユニット170及びアクチュエータ180を有する。通信ユニット150は、他の関節部130の通信ユニット150及び制御装置20の通信ユニット270との間で各種の情報を相互に送受信する通信インターフェースである。本実施形態では、通信ユニット150によって、関節部130の異常を検出するための各種の情報が、各関節部130から制御装置20に送信される。また、通信ユニット150によって、制御用CPU280によって演算されたアーム部120の各関節部130の制御量についての情報が受信される。
関節制御用CPU160は、図1に示す関節制御部135に対応する。例えば、関節制御用CPU160からモータドライバユニット170に対して、アクチュエータ180のモータを駆動するための制御量(例えば電流量)が伝達される(これは、例えば、上述した図1に示す駆動制御部111の機能に対応する)。このような、関節制御用CPU160における、アクチュエータ180の駆動を制御するための構成については、図3−図5を参照して詳しく後述する。
また、アクチュエータ180から関節制御用CPU160に対して、アクチュエータ180に搭載される各センサによる検出値(例えば、電流量、温度、回転角度等)についての情報、すなわち、関節部130の状態を示す情報が送信される。関節部130の状態を示す情報は、通信ユニット150を介して制御装置20に送信される。また、図3−図5を参照して後述するように、関節制御用CPU160では、制御装置20から送信される制御量に加えて、アクチュエータ180の各センサによる検出値に更に基づいてアクチュエータ180の駆動制御が行われ得る。なお、図2では、アクチュエータ180の各センサによる検出値についての情報が関節制御用CPU160を介して、通信ユニット150から制御装置20に送信されるように図示されているが、これらの検出値についての情報は、通信ユニット150を介して直接制御装置20に送信されてもよい。また、アクチュエータ180に搭載される各センサの構成については、図6を参照して詳しく後述する。
モータドライバユニット170は、アクチュエータ180のモータに電流を供給することにより当該モータを回転駆動させるドライバ回路(ドライバIC(Integrated Circuit))であり、モータに供給する電流量を調整することにより、モータの回転数を制御することができる。モータドライバユニット170は、関節制御用CPU160から送信される制御量に応じて、アクチュエータ180のモータを駆動する。なお、モータドライバユニット170としては、一般的なモータ駆動用のドライバICと同様のものが用いられてよいため、ここでは詳細な説明は省略する。
アクチュエータ180は、関節制御用CPU160によって所定の制御量に従って駆動されることにより、関節部130を所定の角度及び速度で駆動させる。アクチュエータ180は、例えば後述する図13に示す構成を有することができる。例えば、アクチュエータ180は、モータ及び減速機によって構成され、所定の制御量に従って駆動されたモータの回転速度が、所定の減速比を有する減速機によって減速されることにより、所定の回転駆動力(トルク)が生成される。生成されたトルクが後段の部材(例えばリンクや先端ユニット等)に伝達され、当該後段の部材が駆動することとなる。
また、上述したように、アクチュエータ180は、自身の駆動に関する各種の物理量を検出するセンサを搭載している。例えば、アクチュエータ180は、モータに供給されている電流量を検出する電流センサ、モータの温度を検出する温度センサ、モータの回転角度及び減速機の出力軸の回転角度を検出する角度センサ、減速機の出力軸におけるトルクを検出するトルクセンサ等を有する。これらのセンサは、例えば、図1に示す関節状態検出部132に対応する。これらのセンサによる検出値が、関節制御用CPU160及び通信ユニット150に提供され、アクチュエータ180の駆動制御や関節部130の異常検出に用いられることとなる。
(アクチュエータの駆動について)
ここで、図3−図5を参照して、関節制御用CPU160における、アクチュエータ180の駆動を制御するための構成について詳細に説明する。図3−図5では、上述した関節制御用CPU160におけるアクチュエータ180を駆動するための構成(例えば、図1に示す駆動制御部111に対応する構成)を詳細に図示するとともに、アクチュエータ180を駆動する際における、関節制御用CPU160とアクチュエータ180との間の情報のやり取りが図示されている。
関節制御用CPU160は、図1に示す制御装置20によって演算された制御量に基づいて各関節部130を駆動させるが、本実施形態では、当該制御量は、トルクで表現された指令値(トルク指令値)、角速度で表現された指令値(角速度指令値)及び角度で表現された指令値(角度指令値)のいずれであってもよい。図3は、トルク指令値に基づくアクチュエータ180の駆動について説明するための説明図である。また、図4は、角速度指令値に基づくアクチュエータ180の駆動について説明するための説明図である。また、図5は、角度指令値に基づくアクチュエータ180の駆動について説明するための説明図である。
まず、図3を参照して、トルク指令値に基づくアクチュエータ180の駆動について説明する。図3に示すように、制御量としてトルク指令値が関節制御用CPU160に与えられた場合、当該トルク指令値は関節制御用CPU160のトルク制御器161に入力される。ここで、アクチュエータ180のモータ181の出力軸のトルクがトルクセンサ183によって検出され、モータ181の出力軸の回転角度が角度センサ184によって検出されるようになっている。なお、図3では図示を省略しているが、実際には、トルクセンサ183及び角度センサ184は、モータ181における減速機を介した出力軸のトルク及び回転角度を検出する。トルク制御器161には、トルクセンサ183によって検出されたトルク検出値が提供され得る。
また、角度センサ184によって検出された回転角度検出値は、関節制御用CPU160の角速度演算器162に提供される。角速度演算器162は、回転角度検出値に基づいてモータの出力軸における回転角速度を算出し、算出した回転角速度をトルク制御器161に対して提供する。トルク制御器161は、当該回転角速度に基づいて、出力軸の回転角加速度、すなわちトルクを算出することができる。
このように、トルク制御器161には、トルク指令値とともに、トルクセンサ183によって検出されたトルク検出値及び/又は角度センサ184によって検出された回転角度検出値に基づいて、現状でのトルク測定値が提供され得る。従って、トルク制御器161は、トルク指令値とトルク測定値との差分に基づいてトルク制御値を算出し、当該トルク制御値を電流制御器163に提供する。電流制御器163は、当該トルク制御値を実現するための電流量(電流制御値)を算出し、当該電流制御値によってモータ181を駆動する。また、電流制御器163には、角度センサ184によって検出された角度検出値が提供されてもよく、電流制御器163は、当該角度検出値に更に基づいてトルク制御値を実現するための電流制御値を算出してもよい。なお、図3では図示を省略しているが、実際には、例えば図2に示すモータドライバユニット170によって当該電流制御値に対応する電流が生成され、当該電流がモータ181に供給されることにより、モータ181が駆動されてよい。
以上説明した手順により、トルク指令値に基づくアクチュエータ180の駆動が実現される。なお、電流制御器163の出力(又はモータドライバユニット170の出力)に当たる電流値は、アクチュエータ180の電流センサ182によって常時モニタされており、例えば目的としている電流制御値と乖離した電流が検出された場合には、その内容が電流制御器163にフィードバックされるようになっている。
次に、図4を参照して、角速度指令値に基づくアクチュエータ180の駆動について説明する。図4に示すように、制御量として角速度指令値が関節制御用CPU160に与えられた場合、当該角速度指令値は関節制御用CPU160の角速度制御器164に入力される。なお、図4に示す構成は、図3に示す構成に対して角速度制御器164が追加されたものに対応するため、重複する事項については詳細な説明は省略する。
図4に示す構成では、角度センサ184によって検出された回転角度検出値に基づいて角速度演算器162によってモータの出力軸における回転角速度が算出され、算出された回転角速度が、角速度制御器164に提供される。そして、角速度制御器164は、角速度指令値と角速度演算器162によって算出された回転角速度との差分に基づいて角速度制御値を算出し、当該角速度制御値をトルク制御器161に提供する。以降の処理は、図3に示す構成と同様であってよい。トルク制御器161によって、角速度制御値と、トルクセンサ183によって検出されたトルク検出値及び/又は角度センサ184によって検出された回転角度検出値に基づく現状でのトルク測定値と、に基づいて、トルク制御値が算出される。そして、電流制御器163によって、当該トルク制御値に基づいて電流制御値が算出され、モータ181が駆動される。以上説明した手順により、角速度指令値に基づくアクチュエータ180の駆動が実現される。
次に、図5を参照して、角度指令値に基づくアクチュエータ180の駆動について説明する。図5に示すように、制御量として角度指令値が関節制御用CPU160に与えられた場合、当該角度指令値は関節制御用CPU160の角度制御器165に入力される。なお、図5に示す構成は、図4に示す構成に対して角度制御器165が追加されたものに対応するため、重複する事項については詳細な説明は省略する。
図5に示す構成では、角度センサ184によって検出された回転角度検出値が、角度制御器165に提供される。そして、角度制御器165は、角度指令値と回転角度検出値との差分に基づいて角度制御値を算出し、当該角度制御値を角速度制御器164に提供する。以降の処理は、図4に示す構成と同様であってよい。角速度制御器164は、角度制御器165から提供された角度制御値と、角度センサ184によって検出された回転角度検出値に基づいて角速度演算器162によって算出されたモータの出力軸における回転角速度と、の差分に基づいて角速度制御値を算出することができる。そして、トルク制御器161によって、当該角速度制御値と、トルクセンサ183によって検出されたトルク検出値及び/又は角度センサ184によって検出された回転角度検出値に基づく現状でのトルク測定値と、に基づいて、トルク制御値が算出される。更に、電流制御器163によって、当該トルク制御値に基づいて電流制御値が算出され、モータ181が駆動される。以上説明した手順により、角度指令値に基づくアクチュエータ180の駆動が実現される。
以上、図3−図5を参照して、関節制御用CPU160における、アクチュエータ180の駆動を制御するための構成について説明した。以上説明したように、本実施形態では、図1に示す制御装置20によって演算された各関節部130を駆動するための制御量は、トルク指令値であってもよいし、角速度指令値であってもよいし、角度指令値であってもよい。指令値がいずれの物理量によって表現されている場合であっても、例えば図3−図5に示すように関節制御用CPU160を適宜構成することにより、モータ181を当該指令値に従って駆動することが可能となる。
(アクチュエータの各センサの構成)
上述したように、本実施形態では、アクチュエータ180に各種のセンサが搭載される。ここでは、図6を参照して、アクチュエータ180に搭載されるセンサの構成について説明する。図6は、アクチュエータ180に搭載されるセンサの一構成例を示すブロック図である。
図6を参照すると、アクチュエータ180は、モータ181、減速機185、電流センサ182、トルクセンサ183、モータ角度センサ184a、出力軸角度センサ184b及び温度センサ187を有する。なお、図6では、説明のため、アクチュエータ180の各構成とともに、モータドライバユニット170及び関節制御用CPU160も図示している。
上述したように、モータ181は、関節制御用CPU160からの制御により、モータドライバユニット170から所定の電流が供給されることにより駆動される。アクチュエータ180では、モータドライバユニット170によってモータ181に供給される電流量が電流センサ182によって検出される。また、駆動中のモータ181の回転角度がモータ角度センサ184aによって検出され、駆動中のモータ181の温度が温度センサ187によって検出される。
モータ181の回転軸には減速機185が連結されており、モータ181の回転速度が所定の減速比によって減速されることにより、所定のトルクが発生される。当該トルクが後段の部材に伝達されることにより関節部130が駆動することとなる。アクチュエータ180では、減速機185から当該後段の部材にトルクを伝達する出力軸186に、トルクセンサ183及び出力軸角度センサ184bが設けられる。トルクセンサ183によって出力軸186のトルク(すなわち、アクチュエータ180による発生トルク)が検出され、出力軸角度センサ184bによって出力軸186の回転角度が検出される。なお、図3−図5では、代表的に1つの角度センサ184を図示していたが、本実施形態では、図6に示すように、モータ181と出力軸186のそれぞれに、回転速度を検出する角度センサ(モータ角度センサ184a及び出力軸角度センサ184b)が設けられてよい。
本実施形態では、アクチュエータ180が駆動している間、電流センサ182、温度センサ187、トルクセンサ183、モータ角度センサ184a及び出力軸角度センサ184bの検出値が、関節制御用CPU160に随時提供される。図3−図5を参照して説明したように、関節制御用CPU160は、これらの検出値に基づいて、アクチュエータ180を駆動させることができる。また、図6では図示を省略しているが、これらの各センサの検出値が通信ユニット150を介して制御装置20に送信され得る。制御装置20では、これらの検出値に基づいて関節部130の異常が検出されることとなる。
以上、図6を参照して、アクチュエータ180に搭載される各センサの構成について説明した。なお、本実施形態では、電流センサ182、温度センサ187、トルクセンサ183、モータ角度センサ184a及び出力軸角度センサ184bの具体的な構成は特定のものに限定されず、これらのセンサとしては、各種の公知のセンサを用いることができる。例えば、電流センサ182は、抵抗による電圧降下に基づいて電流を検出するものであってもよいし、ホール素子による磁界の変化に基づいて電流を検出するものであってもよい。また、例えば、温度センサ187は、熱電対を利用するものであってもよいし、測温抵抗体を利用するものであってもよい。また、例えば、トルクセンサ183は各種の歪センサを用いたものであってよい。また、例えば、モータ角度センサ184a及び出力軸角度センサ184bは、各種のロータリエンコーダであってよい。
<4.ロボットアーム制御方法の処理手順>
次に、図7を参照して、本実施形態に係るロボットアーム制御方法の処理手順について説明する。図7は、本実施形態に係るロボットアーム制御方法の処理手順の一例を示すフロー図である。なお、図7に示す各処理は、例えば図1に示すロボットアーム制御システム2の機能構成によって実現され得る。また、ここで説明するロボットアーム制御方法は、アーム部120の駆動において異常を検出した際における一連の処理手順に関するものである。例えば制御量の演算等、アーム部120の駆動を制御する際のより詳細な制御方法については、図10を参照して後述する。
図7を参照すると、本実施形態に係るロボットアーム制御方法では、まず、アーム部120の駆動中に、関節部130において異常が検出されたかどうかが判断される(ステップS101)。ステップS101に示す処理では、アーム部120を構成する関節部130のそれぞれに対して異常の検出処理が行われてよく、いずれの関節部130において異常が発生しているかも併せて検出され得る。ステップS101に示す処理は、例えば、図1に示す異常検出部260によって、関節部130の異常を検出するための各種の情報に基づいて、関節部130の異常が検出される処理であってよい。
ステップS101において異常が検出されなかった場合には、アーム部120において、そのまま通常動作が続行される(ステップS103)。ここで、通常動作とは、アーム部120の駆動が正常に制御されている状態であり、例えば下記(6−2−5.運動目的の具体例)で説明するパワーアシスト動作やピボット動作等が行われ、先端ユニット145によって患者に対して各種の施術が行われ得る。
パワーアシスト動作では、アーム部120に作用する重力を打ち消すように関節部130が駆動するとともに、外部から更に与えられた力の方向へのアーム部120の移動をサポートするように関節部130が駆動するように、運動目的が設定され、当該運動目的に基づいて関節部130の駆動が制御される。このような制御を行うことにより、術者はあたかも無重力下にあるかのようにアーム部120を操作することができる。
また、ピボット動作では、先端ユニット145が、当該先端ユニット145の向きが空間上の所定の点に固定された状態で、当該所定の点を頂点とした円錐体の面上を移動するように、拘束条件が設定され、当該拘束条件に基づいて関節部130の駆動が制御される。例えば先端ユニット145として撮像装置を設け、このような制御を行うことにより、同一の点(例えば術部)を異なる方向、異なる距離から観察することが可能となる。また、ピボット動作では、ピボット動作の中心となる空間上の所定の点(ピボット中心点)と、先端ユニット145との距離が一定に保たれてもよい。これにより、先端ユニット145(例えば撮像装置)が、ピボット中心点を向いた状態で、当該ピボット中心点を中心とする半球上を移動するように、アーム部120の駆動が制御されることとなり、所定の点をあらゆる方向から観察することが容易に行えるようになる。また、パワーアシスト動作とピボット動作とが組み合わされて用いられてもよい。
ステップS101において異常が検出された場合には、ステップS105に進む。ステップS105では、検出された異常の種類に応じて、当該異常が異常回避動作によって回避可能な異常かどうかが判断される。
ステップS105において回避可能な異常であると判断された場合には、異常回避動作が実行される(ステップS107)。異常回避動作では、アーム部120の運動に所定の制限が設けられた状態で関節部130の駆動が制御され、異常を回避するようにアーム部120が駆動される。所定の制限とは、例えば、各関節部130に所定の値以上のトルクを生じさせないことや、各関節部130を所定の角度以上回転させないこと等であってよい。
ステップS105において回避可能な異常ではないと判断された場合には、ステップS109に進む。ステップS109では、検出された異常の種類に応じて、当該異常がアーム部120の機能の継続が可能な異常かどうかが判断される。
ステップS109においてアーム部120の機能の継続が可能であると判断された場合には、一部機能停止動作が実行される(ステップS111)。一部機能停止動作では、異常が検出された関節部130以外の他の関節部130の駆動を制御して、本来の自由度よりも自由度を下げた状態でアーム部120が駆動される。
ステップS109においてアーム部120の機能の継続が可能でないと判断された場合には、ステップS113に進む。ステップS113では、機能停止動作が実行される。機能停止動作では、アーム部120が意図せぬ動きをして術者及び患者に危害が加えられることがないように、安全にアーム部120の機能が停止される。例えば、機能停止動作では、アーム部120を構成する全ての関節部130の動きが固定される。
以上、図7を参照して、本実施形態に係るロボットアーム制御方法の処理手順について説明した。以上説明したように、本実施形態では、関節部130に異常が検出された場合に、当該異常の種類に応じて、異常回避動作、一部機能停止動作及び機能停止動作のいずれの動作を実行するかが選択される。異常回避動作が実行された場合には、異常が回避された状態でアーム部120の駆動が継続される。また、一部機能停止動作が実行された場合には、アーム部120の一部の機能が停止された状態でアーム部120の駆動が継続される。従って、異常が検出された場合であっても、アーム部120を用いた施術を継続することが可能となり、患者にとっての安全性をより向上させることができる。また、全身協調制御によるアーム部120の駆動制御を継続することが困難な異常が検出された場合には、機能停止動作が実行され、術者及び患者に危害が加えられることがないように、安全にアーム部120の機能が停止されることとなる。
なお、上述したステップS105、S109に示す処理は、例えば、図1に示す演算条件設定部242によって、異常検出部260によって検出された関節部130の異常に基づいて、当該異常の種類及び当該異常の種類に応じたアーム部120の動作が判断される処理であってよい。また、ステップS107、S111に示す処理は、例えば、図1に示す演算条件設定部242によって、アーム部120に異常回避動作及び一部機能停止動作を行わせるような制御量の演算条件がそれぞれ設定され、全身協調制御部240及び理想関節制御部250によって当該演算条件の下で算出された制御量に基づいて、駆動制御部111によって各関節部130の駆動が制御される処理であってよい。また、ステップS113に示す処理は、例えば、図1に示す駆動制御部111によって、位置制御によって関節部130ごとにその駆動が制御される処理であってよい。
また、図7では、説明のため、ステップS101、S105、S109に示すように、異常回避動作、一部機能停止動作及び機能停止動作のいずれの動作を実行するかが段階的に選択されるように図示しているが、実際の処理はこのように段階的に判断が行われなくてもよい。例えば、上記<2.ロボットアーム制御システムの機能構成>で説明したように、異常の種類と、当該異常が生じた際に実行可能な動作と、が関連付けられたテーブルが作成され、当該テーブルに基づいていずれの動作を実行するかが判断されてもよい。
<5.各処理の詳細について>
次に、図7に示す処理手順の中でも、ステップS101の異常検出処理、ステップS107の異常回避動作、ステップS111の一部機能停止動作及びステップS113の機能停止動作のそれぞれについて詳細に説明する。
(5−1.異常検出処理)
まず、本実施形態に係る異常検出処理について説明する。図1及び図6を参照して上述したように、本実施形態では、アクチュエータ180に備えられる各種のセンサによる検出値(すなわち、関節状態検出部132によって検出される関節部130の状態)に基づいて、各関節部130の異常が検出され得る。当該センサとしては、例えば、電流センサ182、トルクセンサ183、モータ角度センサ184a、出力軸角度センサ184b及び温度センサ187が設けられる。
異常検出処理の一例として、図8を参照して、モータ181又は出力軸186の角速度に基づく異常検出処理の処理手順について説明する。図8は、角速度に基づく異常検出処理における処理手順の一例を示すフロー図である。なお、モータ181又は出力軸186の角速度は、例えば図3−図6に示す角速度演算器162によって、モータ角度センサ184a又は出力軸角度センサ184bによる回転角度の検出値に基づいて算出されてよい。また、図8に示す各処理は、例えば図1に示す異常検出部260によって実行され得る。
図8を参照すると、本実施形態に係る異常検出処理では、まず、検出された角速度が所定のしきい値(第1のしきい値)を超えたかどうかが判断される(ステップS201)。当該第1のしきい値としては、アーム部120の駆動制御に用いられている内部モデル等に基づいて、通常であれば角速度として検出され得ないような値が適宜設定され得る。また、角速度の検出は、所定のタイミングで随時行われてよい。検出された角速度が第1のしきい値を超えていないと判断された場合には、所定のタイミングでの角速度の検出がそのまま続行される。一方、検出された角速度が第1のしきい値を超えたと判断された場合には、ステップS203に進む。
ステップS203では、検出された角速度が第1のしきい値を超過している時間(しきい値超過時間)の測定が開始される。しきい値超過時間の測定中にも、角速度が随時検出され、検出された角速度が第1のしきい値以下かどうかが随時判断される(ステップS205)。ステップS205において、しきい値超過時間が所定のしきい値(第2のしきい値)を超える前に、検出された角速度が第1のしきい値以下になったと判断された場合には、角速度が第1のしきい値よりも大きい異常値を示したのは一時的な事象であると判断することができる。従って、しきい値超過時間の測定を終了し(ステップS207)、ステップS201に戻り、角速度の検出が続行される。
一方、ステップS205において、検出された角速度が第1のしきい値以下ではないと判断された場合には、しきい値超過時間が第2のしきい値を超えているかどうかが判断される(ステップS209)。しきい値超過時間が第2のしきい値を超えていないと判断された場合には、ステップS205に戻り、検出された角速度と第1のしきい値との比較及びしきい値超過時間と第2のしきい値との比較が繰り返し行われる。ステップS209において、しきい値超過時間が第2のしきい値を超えたと判断された場合には、角速度が第1のしきい値よりも大きい異常値を示した時間が一定時間以上継続したことを意味している。従って、角速度の検出値が異常であると判断され(ステップS211)、関節部130に異常が生じていると判断されることとなる。
以上、異常検出処理の一例として、図8を参照して、モータ181又は出力軸186の角速度に基づく異常検出処理の処理手順について説明した。なお、図8では、一例として、角速度の検出値に基づく異常の検出処理の処理手順について説明したが、他の検出値、例えば回転角度、角加速度、トルク、電流及び温度等の検出値に対しても、同様の手順に従って異常を検出することが可能である。以上説明したように、本実施形態では、各センサからの検出値が所定のしきい値を超えた時間が一定時間以上継続した場合に、当該検出値が検出された関節部130が異常であると判断されてよい。
また、本実施形態では、以上説明した処理手順以外の方法によって関節部130の異常が検出されてもよい。例えば、異常検出部260は、以下のような方法に基づいて、異常を検出することができる。
例えば、角加速度、角速度及びトルクに関しては、異常値が検出されている時間が一定時間を超えない場合であっても、検出値が所定のしきい値を超えた瞬間に、異常が検出されてもよい。このような場合には、アーム部120が過大な速度で移動したり、アーム部120によって患者に対して過大な力が負荷されたりする恐れがあるからである。また、例えばアーム部120のリンクに歪みゲージを設け、当該歪みゲージによる検出値も併せて異常が検出されてもよい。当該歪みゲージによる検出値は、アーム部120が接触することにより、術者及び患者等の外部の物体に与えられる押圧力を示す指標となり得るからである。なお、この種の異常が検出された場合には、好適に異常回避動作が行われ得る。当該異常回避動作では、例えば速度や力が所定の値以下になるような運動目的及び/又は拘束条件が演算条件として設定され、過大な速度及び力を生じさせないようにアーム部120の駆動が制御される。
また、例えば、トルクセンサ183によるトルクの検出値に基づいて、関節部130の駆動制御が安定しているかどうかが判断されることにより異常が検出されてもよい。具体的には、例えば高速フーリエ変換(FFT:Fast Fourier Transform)を用いてトルクの検出値に対する周波数解析を行い、当該周波数解析の結果から異常な周波数成分が検出された場合に、異常が検出されてよい。トルクの検出値から異常な周波数成分が検出された場合には、制御が安定しておらず、発振する可能性があることを示しているからである。当該異常が検出された場合には、例えばより低いゲインで制御量の演算が行われるような演算条件が設定され、より安定的な制御系においてアーム部120の駆動が制御される異常回避動作が行われ得る。一方、ゲインを下げてもなお制御が安定しない場合には、異常が検出された関節部130以外の他の関節部130によってアーム部120を駆動させる、一部機能停止動作が行われてよい。
また、例えば、モータ角度センサ184a及び/又は出力軸角度センサ184bによるモータ181及び/又は出力軸186の回転角度の検出値に基づいて、関節部130の異常が検出されてもよい。例えば、モータ角度センサ184aによる検出値と出力軸角度センサ184bによる検出値とは、減速機185の減速比を介した比例関係にあるはずである。従って、モータ角度センサ184aによる検出値と出力軸角度センサ184bによる検出値との間の比例関係が崩れた場合には、モータ181、減速機185、モータ角度センサ184a及び出力軸角度センサ184bのいずれかが故障している可能性がある。また、例えば、電流センサ182によってモータ181に対して所定の値の電流が供給されていることが検出されているにもかかわらず、モータ角度センサ184aによる検出値が変化しない場合には、モータ181又はモータ角度センサ184aが故障している可能性がある。同様に、電流センサ182によってモータ181に対して所定の値の電流が供給されていることが検出されているにもかかわらず、出力軸角度センサ184bによる検出値が変化しない場合には、モータ181、減速機185及び出力軸角度センサ184bのいずれかが故障している可能性がある。このように、関節部130の異常として、モータ181、減速機185、モータ角度センサ184a及び出力軸角度センサ184bのいずれかの故障が検出された場合には、関節部130に対して所望の駆動制御を行うことは難しいと考えられる。従って、このような異常が検出された場合には、異常が検出された関節部130以外の他の関節部130によってアーム部120を駆動させる、一部機能停止動作が行われてよい。
また、例えば、電流センサ182によるモータ181に供給される電流の検出値に基づいて、関節部130の異常が検出されてもよい。例えば、電流センサ182によって過電流が検出された場合には、モータ181が故障(ショート)している、又は、制御が不安定なために過電流が流れておりそのまま過電流が印加され続けるとモータ181が故障してしまう恐れがある。また、指令値として与えられている電流量と電流センサ182による電流の検出値との間に大幅な乖離が生じている場合には、モータドライバユニット170の故障が疑われる。関節部130の異常として、このような電流の検出値に基づく異常が検出された場合には、モータ181を正常に駆動することが難しいため、関節部130に対して所望の駆動制御を行うことは困難であると考えられる。従って、このような異常が検出された場合には、異常が検出された関節部130以外の他の関節部130によってアーム部120を駆動させる、一部機能停止動作が行われてよい。
また、例えば、温度センサ187によるモータ181の周囲の温度の検出値に基づいて、関節部130の異常が検出されてもよい。例えば、モータドライバユニット170等の周囲の他の構成に対してモータ181の周囲の温度が格段に高い場合には、当該温度センサ187又はモータ181が故障している可能性がある。関節部130の異常として、このような温度の検出値に基づく異常が検出された場合には、モータ181が異常な動作を行う可能性があるため、安全性の観点から、異常が検出された関節部130は駆動を停止することが望ましい。従って、このような異常が検出された場合には、異常が検出された関節部130以外の他の関節部130によってアーム部120を駆動させる、一部機能停止動作が行われてよい。
また、例えば、通信ユニット150の通信状態に基づいて、関節部130の異常が検出されてもよい。例えば、何らかの原因により通信ユニット150による通信が停止している場合には、関節部130が、制御装置20によって算出された制御量についての情報を受信することができなくなるため、関節部130に対して全身協調制御に基づく駆動制御を行うことができなくなる。従って、このような異常が検出された場合には、アーム部120の動作を停止させる機能停止動作が行われてよい。
また、本実施形態では、関節部130に、モータ181の駆動を停止するようなブレーキ機構が設けられてもよい。当該ブレーキ機構は、制御的にモータ181の回転角度を固定するものであってもよいし、機械的にモータ181の駆動を停止させるものであってもよいし、電気回路的にモータドライバユニット170からモータ181への電流の供給を遮断するものであってもよい。例えば、当該ブレーキ機構を作動させているにもかかわらず、モータ角度センサ184a及び出力軸角度センサ184bのいずれかの検出値が変化した場合には、当該ブレーキ機構が故障しており、ブレーキが掛からない状況が発生している可能性がある。逆に、当該ブレーキ機構を解除し、外力を加えて関節部130を動かそうとしているにもかかわらず、モータ角度センサ184a及び出力軸角度センサ184bのいずれかの検出値が変化しない場合には、当該ブレーキ機構が故障しており、意図せずブレーキが掛かってしまう状況が発生している可能性がある。関節部130の異常として、このようなブレーキ機構の故障が検出された場合には、アーム部120を駆動させた際に意図せぬ動きをしてしまい、術者及び患者が危険にさらされる恐れがある。従って、このようなブレーキ機構に関する異常が検出された場合には、アーム部120の動作を停止させる機能停止動作が行われてよい。
以上、本実施形態において検出され得る異常の種類について例示した。ただし、本実施形態に係る異常検出処理は上述した例に限定されず、異常を検出するための各種の情報(例えば、アクチュエータ180の各センサによる検出値(関節状態検出部132によって検出された関節部130の状態)についての情報、関節部130の駆動制御についての情報、関節部130に送信される指令値についての情報、関節部130の通信状態についての情報等)に基づいて、他の異常が検出されてもよい。また、上記では、各異常が検出された際にアーム部120が移行し得る動作についても説明しているが、これらの動作への移行はあくまで例示であって、各異常と動作との対応関係は、必ずしも上述したものに限定されない。各異常が検出された際にいずれの動作に移行するかは、アーム部120の全体構成やアーム部120の駆動制御に用いられている内部モデル等、制御に関する各種の条件に応じて、適宜設定されてよい。
以上、本実施形態に係る異常検出処理について説明した。以上説明したように、本実施形態によれば、異常を検出するための各種の情報に基づいて、関節部130ごとに異常が検出される。従って、異常が発生している関節部130を特定することができ、例えば一部機能停止動作等、異常が検出された関節部130以外の関節部130を用いた動作を実行することが可能となる。また、本実施形態では、どのような情報に基づいて異常が検出されたかに応じて、関節部130のいずれの構成部材が故障しているかが検出され得る。従って、例えば、故障が検出された構成部材に応じて、アーム部120に行わせる動作を選択することが可能となる。例えば、故障が検出された構成部材が、関節部130の駆動制御を行うために必須な部材であったり、安全性を確保するために重要な部材であれば、機能停止動作に移行することが好ましい。このように、本実施形態では、関節部130ごとに、いずれの構成部材が故障したかまで検出可能であるため、異常の種類を詳細に判断することができ、アーム部120に行わせる動作をより適切に選択することが可能となる。
(5−2.異常回避動作)
次に、本実施形態に係る異常回避動作について説明する。異常回避動作では、アーム部120の運動に対して所定の制限が設けられた状態で関節部130の駆動が制御され、当該異常を回避するようにアーム部120が駆動される。当該所定の制限とは、検出された異常を回避するようにアーム部120が駆動するような制限であってよい。例えば、当該所定の制限は、アーム部120の各関節部130におけるトルク(発生トルク及び外トルク)や各関節部130の回転角度、回転角速度及び回転角加速度に対する数値的な制限であり得る。これにより、例えばアーム部120や先端ユニット145が術者や患者に過大な力及び速度で衝突することが回避される。
異常回避動作の一例として、図9及び図10を参照して、関節部130におけるトルクに基づく異常回避動作について説明する。図9及び図10は、関節部130におけるトルクに基づく異常回避動作について説明するための説明図である。
図9では、ロボットアーム装置のアーム部310によって、患者320に対して所定の処置が行われる様子が図示されている。図9を参照すると、アーム部310は、複数のリンク312a〜312fが、複数の関節部311a〜311fによって互いに連結されて構成されている。各関節部311a〜311fの回転駆動が制御されることにより、アーム部310が駆動され得る。アーム部310の先端には、先端ユニット313が設けられており、当該先端ユニット313によって患者320に対して各種の処置が行われる。図9に示す例では、先端ユニット313は内視鏡であり、患者320の体腔内に挿入され、当該体腔内の患部の様子を観察したり、患部に対して各種の処置を行ったりすることができる。
ここで、図9に示すように、例えば術者による誤操作により、先端ユニット313が患者320の身体(例えば臓器等)に接触してしまったとする。当該接触により、先端ユニット313には、患者320の身体からの反力Fが負荷される(すなわち、先端ユニット313に押圧力Fが発生する)とともに、当該反力Fが負荷された影響により、各関節部311a〜311fにトルクτ1〜τ6が負荷されることとなる。一方、本実施形態では、各関節部311a〜311fにトルクセンサが設けられており、トルクセンサにより各関節部311a〜311fに負荷された外トルクが検出され得る。
本実施形態では、例えばトルクセンサによって所定のしきい値以上のトルクが検出された場合に異常を検出し、異常回避動作として、各関節部311a〜311fにおいて当該しきい値よりも大きいトルクが検出されないように、各関節部311a〜311fの駆動が制御されてよい。具体的には、先端ユニット313による押圧力Fとして、患者320に危険が及ばないような値が運動目的として設定される。これにより、先端ユニット313において設定した値以上の力が発生しないこととなる。ここで、全身協調制御では、各関節部311a〜311fのトルクτ1〜τ6に基づいて外力Fが算出され得る。従って、上記のような運動目的を設定することにより、各関節部311a〜311fのトルクτ 1〜τ6が、先端ユニット313による押圧力Fが設定した値以上にならないように制御されることとなる。よって、本実施形態では、押圧力Fが設定した値以上になり得るようなトルク値がトルクτ1〜τ6として検出された場合に異常を検出し、そのようなトルクの発生を防ぐように各関節部311a〜311fの駆動が制御されることにより、異常回避動作が行われ得る。このような異常回避動作が行われることにより、先端ユニット313が患者320の臓器等に接触した場合であっても、臓器が過大な力によって圧迫されることなく、より安全に施術を続行することが可能となる。
また、押圧力Fの上限値を設定する際には、その力が作用する方向ごとに異なる値が設定されてもよい。例えば、アーム部310の動作方向に作用する力の上限値としてより小さな値を設定することにより、患者に対して生じ得る危険をより適切に回避することができる。
一方、図10に示すように、本実施形態では、先端ユニット313を術者が把持した状態でアーム部120を移動させる場合が考えられる。この場合、先端ユニット313が患者320の身体(例えば臓器等)に接触したとすると、先端ユニット313には、患者320の身体からの反力F2と、術者による押圧力F1とが、逆方向に作用し得るため、先端ユニット313が患者320の身体に過大な力で押圧されているにもかかわらず、各関節部311a〜311fにおけるトルクτ1〜τ6にはそのことが反映されないという事態が生じ得る。本実施形態では、このような事態を避けるために、例えば先端ユニット313の、術者が把持している部位よりも先端に近いいずれかの部位に、力(応力)を検出するための歪みセンサが設けられてよい。当該歪みセンサにより、患者320の身体からの反力F2(すなわち、先端ユニット313による押圧力F2)を直接測定することができる。あるいは、先端ユニット313の術者によって把持される部位に歪みセンサが設けられてもよい。当該歪みセンサにより、術者による押圧力F1を直接測定することができる。各関節部311a〜311fにおけるトルクτ1〜τ6から、押圧力F1と外力F2との合力を算出することができるため、当該合力と歪センサによる測定値とに基づいて、押圧力F1と外力F2との切り分けを行うことができる。従って、先端ユニット313による押圧力F2として、患者320に危険が及ばないような値を運動目的として設定することにより、図9を参照して説明した場合と同様に、異常回避動作を行うことが可能となる。
以上、異常回避動作の一例として、図9及び図10を参照して、関節部311a〜311fにおけるトルクに基づく異常回避動作について説明した。上述した例では、先端ユニット313による患者320への押圧力が所定の値以下に制限される異常回避動作について説明したが、より一般的に、アーム部310(先端ユニット313を含む)が接触することにより外部の物体に与えられる押圧力を対象として異常回避動作が行われてよい。つまり、本実施形態では、アーム部310が接触することにより外部の物体に与えられる押圧力に応じて関節部311a〜311fに生じるトルクに基づいて関節部311a〜311fの異常が検出され、当該異常が検出された場合に、アーム部310の運動に対して当該押圧力が所定の範囲に制限された状態で、関節部311a〜311fの駆動が制御され、アーム部310が駆動されることにより、異常回避動作が行われ得る。また、押圧力の制限は、関節部311a〜311fにおけるトルクを制限することにより実現される。このように、押圧力(関節部311a〜311fにおけるトルク)に制限(例えば上限値)を設けて異常回避動作を行うことにより、上述したような先端ユニット313の衝突だけでなく、例えば、アーム部310のリンク間に術者の指が強く挟まれる事態や、アーム部310自体が術者又は患者に過大な速度や力で衝突する事態も回避することができる。
ここで、本実施形態では、以上説明した方法以外の方法によって異常回避動作が行われてもよい。例えば、本実施形態では、以下のような異常回避動作が実行可能である。
例えば、関節部311a〜311fの回転角度が所定の範囲に制限されることにより、異常回避動作が行われてもよい。当該異常回避動作では、例えば、関節部311a〜311fの異常が、関節部311a〜311fの回転角度に基づいて検出され、当該異常が検出された場合に、アーム部310の運動に対して当該回転角度が所定の範囲に制限された状態で、関節部311a〜311fの駆動が制御され、アーム部310が駆動される。このような異常回避動作を行うことにより、関節部311a〜311fが所定の方向に所定の角度以上回転しないようにその運動を制限することが可能となるため、例えばアーム部120に侵入禁止領域を設けるような駆動制御を行うことが可能となる。
また、例えば、関節部311a〜311fの回転角速度が所定の範囲に制限されることにより、異常回避動作が行われてもよい。当該異常回避動作では、例えば、関節部311a〜311fの異常が、関節部311a〜311fの回転角速度に基づいて検出され、当該異常が検出された場合に、アーム部310の運動に対して当該回転角速度が所定の範囲に制限された状態で、関節部311a〜311fの駆動が制御され、アーム部310が駆動される。このような異常回避動作を行うことにより、関節部311a〜311fが所定の値以上の角速度で回転しないようにその運動を制限することが可能となるため、アーム部310が術者又は患者に衝突することによる危険性が回避され得る。また、関節部311a〜311fの回転角速度に基づく異常回避動作においては、当該回転角速度がゼロに制限されてもよい。回転角速度がゼロに制限された場合、関節部311a〜311fは極遅い速度でしか回転することができなくなるため、アーム部310が術者又は患者に衝突することによる危険性が更に抑制されることとなる。
以上、本実施形態に係る異常回避動作について説明した。以上説明したように、本実施形態によれば、関節部311a〜311fにおけるトルクや回転角度、回転角速度等に基づいて、アーム部310が所定の値以上の力を発生させたり、所定の値以上の速度で運動したりしないように、異常回避動作が行われる。従って、患者及び術者に対してアーム部310が衝突することによる危険性を抑制することが可能となる。
なお、以上の説明では、関節部311a〜311fにおけるトルク、回転角度及び回転角速度に基づく異常回避動作について説明したが、本実施形態はかかる例に限定されない。関節部311a〜311fにおける回転角加速度等、アーム部310の運動を表し得る他の物理量に基づいて異常回避動作が行われてもよい。また、以上の説明では、アーム部310の運動に課せられる条件として、関節部311a〜311fにおけるトルク、角度及び角速度が所定の値「以下」となるような条件を設けていたが、本実施形態はかかる例に限定されない。境界となる値を含むかどうかは任意であってよく、当該条件は、関節部311a〜311fにおけるトルク、角度及び角速度が所定の値「よりも小さく」なるような条件であってもよい。
(5−3.一部機能停止動作)
次に、本実施形態に係る一部機能停止動作について説明する。一部機能停止動作では、関節部130のいずれかに異常が検出された場合に、異常が検出された関節部130以外の他の関節部130の駆動が制御され、自由度を下げた状態でアーム部120が駆動される。
ここで、本実施形態に係る一部機能停止動作では、異常が検出された関節部130は、所定の角度から回転しないようにその動きが固定されることが好ましい。これにより、異常が検出された関節部130によってアーム部120が意図せぬ動きをすることが防止されるため、アーム部120が術者及び患者に危害を加える可能性を低減させることができる。異常が検出された関節部130の固定は、制御的に回転角度を固定することにより実現されてもよいし、モータの駆動を停止するような機械的なブレーキ機構によって実現されてもよいし、モータに供給される電流を遮断するような電気的な機構によって実現されてもよい。
なお、制御的に関節部130が固定される場合には、関節部130ごとにその回転角度が所定の値に制御されればよいので、当該制御は、全身協調制御によっていわゆる力制御として行われなくてもよく、各関節部130に設けられる関節制御部135の駆動制御部111によって位置制御として行われてもよい。例えば、図1に示すロボットアーム装置10と制御装置20との間の通信に異常が発生している場合等、全身協調制御を行うことは不可能であるが、各駆動制御部111によって関節部130ごとにその駆動が制御可能である場合には、このような駆動制御部111による制御的な関節部130の固定が好適に実行され得る。
ただし、本実施形態では、異常が検出された関節部130は必ずしも固定されなくてもよい。例えば、異常が検出された関節部130の駆動制御部111が、当該関節部130の粘性係数を他の関節部130よりも大きくすることにより、異常が検出された関節部130に対して、自律的にはその動きが固定されているが、所定の値以上の外力が負荷された場合には当該外力に応じて回転し、固定される位置(角度)が変更されるような制御を行ってもよい。このような制御は、例えば、上述したような、ロボットアーム装置10と制御装置20との間の通信に異常が発生し、全身協調制御を行うことが不可能な場合に好適に実行され得る。当該制御が行われている関節部130は、いわば略固定された状態であると言うことができる。なお、上記のような粘性係数の制御は、例えば駆動制御部111によって、関節部130のモータに供給する電流量が調整されることによって実現され得る。このような制御を行うことにより、異常が検出され自律的には動きが固定されている関節部130であっても、必要に応じてその回転角度を変更することが可能となるため、例えば術者が直接アーム部120を移動させながら施術を続行することも可能となる。
また、例えば、関節部130のアクチュエータに異常が発生した場合には、アクチュエータの駆動制御(すなわち、関節部130の駆動制御)を正常に行うことが困難となるため、上記のように駆動制御部111によって制御的に関節部130を固定することが難しくなる。従って、このような場合には、駆動制御部111は、異常が検出された関節部130の制御を停止してもよい。制御が停止された関節部130は、他の関節部130よりも粘性係数が大きく(反力が大きく)回転し難いが、所定の値以上の外力に応じて自由に回転する、制御対象ではない一つの回転部位として振る舞うことができ、略固定された状態であるとみなすことができる。これは、制御が停止されることにより、関節部130のアクチュエータに設けられる減速機の摩擦力により、関節部130の動きがほぼ固定されることにより実現され得る。制御が停止された場合であっても、当該関節部130の回転角度は関節部130の状態として検出され、当該関節部130の回転角度まで含めてアーム状態が取得され得る。従って、自由に回転可能な関節部130を有することが反映されたアーム部120の内部モデルを適宜設定することにより、他の関節部130によってアーム部120の駆動を制御することが可能となる。
このように、本実施形態に係る一部機能停止動作では、例えば異常が検出された関節部130が固定又は略固定され、固定又は略固定された関節部130以外の関節部130の自由度を用いてアーム部120の駆動が制御されることとなる。具体的な処理としては、例えば、異常が検出された関節部130が固定される又は略固定されるという拘束条件が演算条件設定部242によって設定され、当該拘束条件に基づいて、全身協調制御に係る演算が行われることにより、他の関節部130の駆動が制御されてよい。例えば、アーム部120が所望の動作を行うために必要なだけの自由度(例えば6自由度)を有している場合には、上記のような拘束条件が課され、自由度が低下することにより、アーム部120の位置及び姿勢が制限されてしまう可能性はある。しかしながら、本実施形態では、残りの自由度を用いて可能な限りアーム部120の位置及び姿勢が制御され得る。従って、施術を続行することができ、施術の中断又は施術時間の増加により患者が危険にさらされることを防止することができる。
なお、複数の関節部130において異常が検出された場合には、異常が検出された関節部130の各々に対して、上述した、関節部130を固定する処理及び略固定する処理のいずれかが、例えば故障の種類等に応じて適宜選択されて実行されてよい。例えば、複数の関節部130において異常が検出された場合には、その故障の種類に応じて、ある関節部130は上述した方法により制御的に固定され、他の関節部130は上述した方法により制御的に略固定され、更に他の関節部130は上述した方法によりアクチュエータに対する制御が停止されることにより略固定されてもよい。このように、一部機能停止動作を実現するために、異常が検出された関節部130に対して実行される処理は、関節部130ごとに異なっていてもよく、例えば故障の種類等に応じて関節部130ごとに適宜選択され得る。
ここで、本実施形態では、アーム部120は冗長自由度を有してもよい。本実施形態に係る一部機能停止動作は、冗長自由度を有するアーム部120に対しても好適に適用され得る。
アーム部120における冗長自由度の概念について説明する。例えば、アーム部120が所望の動作を行うために必要な自由度がN自由度であったとする(Nは任意の正の数)。例えば、一般的に、3次元空間上においてアーム部120の位置及び姿勢を任意に制御するためには、原理上、アーム部120が6自由度以上の自由度を有することが求められる。ここで、アーム部120がN自由度よりも多い自由度(例えばN+1自由度)を有する場合には、当該アーム部120は冗長自由度を有していると言える。
例えば、冗長自由度を有するアーム部120においては、一部機能停止動作が行われ、自由度が下がった場合であっても、異常が検出された関節部130以外の関節部130によって、所望の自由度であるN自由度以上の自由度が確保されることとなる。このように、冗長自由度を有するアーム部120においては、一部機能停止動作が行われた場合であっても、所望の自由度が確保された状態でアーム部120の駆動制御が継続されることとなり、施術のより安全な継続が可能となる。
なお、冗長自由度を有するアーム部120において一部機能停止動作が行われる場合における具体的な処理としては、例えば、演算条件設定部242によって内部モデルが切り換えられてもよい。冗長自由度(例えばN+1自由度)を有するアーム部120においては、通常時には、所定の関節部130の動きを固定することにより、仮想的に最低限必要な自由度(例えばN自由度)を有するアーム部120とみなした上で、その駆動制御が行われる場合がある。この場合、異常が検出された関節部130を固定して一部機能停止動作を行おうとすると、固定される関節部130の位置が変化し得るため、その内部モデルも変化し得る。従って、例えば各関節部130が固定された場合に応じた複数の内部モデルが予め用意されており、異常が検出された関節部130に応じて適切な内部モデルが選択されることにより、一部機能停止動作が実行されてよい。
以上、本実施形態に係る一部機能停止動作について説明した。以上説明したように、本実施形態に係る一部機能停止動作では、関節部130のいずれかに異常が検出された場合に、異常が検出された関節部130以外の関節部130の駆動が制御されることにより、自由度を下げた状態でアーム部120の駆動が行われる。これにより、自由度が低下することによりアーム部120の位置及び姿勢が制限される可能性はあるものの、残りの自由度を用いて可能な限りアーム部120の駆動が継続される。従って、施術を続行することができ、患者に対する危険性を低減することが可能となる。
また、本実施形態では、アーム部120は冗長自由度を有してもよい。冗長自由度を有するアーム部120に対して一部機能停止動作が行われる場合には、自由度が低下した場合であっても、アーム部120が所望の動作を行うために本来必要とされるだけの自由度が確保され得るため、アーム部120の駆動がより安定的に継続される。従って、施術のより安全な継続が可能となる。
(5−4.機能停止動作)
次に、本実施形態に係る機能停止動作について説明する。機能停止動作では、アーム部120の機能が停止されることとなるが、例えば各関節部130の駆動制御が全く行われないようにその機能が停止されると、各関節部130が重力に任せて自由に回転してしまうと、患者の上にアーム部120が落下する等の危険が生じ得る。従って、本実施形態に係る機能停止動作では、より安全にアーム部120の機能が停止される。
本実施形態に係る機能停止動作では、アーム部120を構成する全ての関節部130の動きが固定されてよい。例えば、アーム部120を構成する全ての関節部130の回転角度が、所定の角度(例えば機能停止動作が行われた瞬間における角度)で固定される。これにより、アーム部120の位置及び姿勢が固定され、アーム部120が意図せぬ動きをして術者及び患者を傷付けることを防止することができる。
各関節部130の固定は、制御的に回転角度を固定することにより実現されてもよいし、モータの駆動を停止するような機械的なブレーキ機構によって実現されてもよいし、モータに供給される電流を遮断するような電気的な機構によって実現されてもよい。また、上記(5−3.一部機能停止動作)で説明した関節部130の固定と同様に、制御的に関節部130が固定される場合には、当該制御は、各関節部130に設けられる関節制御部135の駆動制御部111によって位置制御として行われてもよい。例えば、通信ユニット150、270に異常が発生し、制御装置20とロボットアーム装置10との通信が遮断された場合には、制御装置20によって算出された制御値を各関節部130が受信することができないため、このような、関節制御部135によって関節部130ごとにその角度を固定する制御が好適に行われ得る。
また、制御的に関節部130が固定される場合には、自律的にはその回転が固定されているが、例えば所定の値以上の外力が負荷された場合には当該外力に応じて回転し、固定される位置(角度)が変更されるような制御が行われてもよい。このような制御を行うことにより、固定されている関節部130であっても、必要に応じてその回転角度を変更することが可能となるため、例えば術者が直接アーム部120を移動させながら施術を続行することも可能となる。
ここで、ロボットアーム装置10は、バッテリ等の蓄電装置を更に備えてもよい。蓄電装置を備えることにより、例えば停電等、電源が遮断されるような異常が生じた場合であっても、上述したような制御的及び電気的な関節部130の固定を行うことが可能となる。ただし、蓄電装置の性能によっては、制御的及び電気的な関節部130の固定を長時間実行することは難しい可能性がある。従って、安全性の観点からは、電源が遮断されるような異常が生じた場合には、機械的なブレーキ機構によって関節部130が固定されることがより好ましい。
また、電源が遮断された場合には、アーム部120の位置及び姿勢を保つように各関節部130のモータが駆動され得ないため、各関節部130が機械的に固定された際のアーム部120の重心の位置によっては、そのバランスを保てない恐れがある。従って、ロボットアーム装置10に、アーム部120を支持するためのカウンターバランスが設けられてもよい。カウンターバランスを適切に設けることにより、アーム部120の重心が不安定な場合であっても、そのバランスを保つことができ、より安全な機能停止が実現され得る。
以上、本実施形態に係る機能停止動作について説明した。以上説明したように、本実施形態に係る機能停止動作では、アーム部120を構成する全ての関節部130の動きが固定される。従って、例えば機能停止と同時にアーム部120が意図せぬ動きをして、術者及び患者に危険が及ぶことが防止され得る。また、関節部130の固定は、関節部130ごとに、関節制御部135による位置制御によって実行されてよい。この場合には、各関節部130の回転が自律的には固定されるが、例えば所定の値以上の外力が負荷された場合には当該外力に応じて回転し、固定される位置(角度)が変更されるような制御を行うことが可能となるため、術者が直接アーム部120を移動させながら施術を続行することが可能となり、患者の安全性が更に向上する。
以上、本実施形態に係る異常検出処理、異常回避動作、一部機能停止動作及び機能停止動作の詳細について、それぞれ説明した。以上説明したように、本実施形態では、関節部130ごとに、異常の発生及び異常の種類が的確に検出され得る。また、当該異常の種類に応じて、安全性を確保しつつ、可能な限りアーム部120の駆動が継続されるように、異常回避動作、一部機能停止動作及び機能停止動作のいずれの動作を行うかが選択される。このように、本実施形態によれば、上記<1.ロボットアーム装置の安全性についての検討>で説明した、安全性の観点からロボットアーム装置に求められる諸性能(異常回避動作を実行可能であること、一部機能停止動作を実行可能であること、機能停止動作を安全に実行可能であること、及び、これらの動作への移行を判断するための異常検出処理を的確に実行可能であること)が満足され得る。従って、術者及び患者の双方の安全を確保しつつ、可能な限りアーム部120を駆動させて施術を継続させることができる。また、深刻な異常によりアーム部120を停止する場合であっても、より安全にアーム部120の機能を停止することができる。
<6.全身協調制御について>
以下では、本実施形態に係る全身協調制御を実現するための制御システムの構成や、制御方法について説明する。上述したように、以上説明したロボットアーム制御システム2や、ロボットアーム制御方法は、医療用のロボットアーム装置に対して好適に適用されることにより、安全性を向上させることができる。そこで、以下では、医療用ロボットアーム装置を例に挙げて、ロボットアーム装置の全身協調制御の一実施形態について説明を行う。
なお、以上の説明では、主に安全性の観点から医療用ロボットアーム装置に求められる諸性能について説明した。しかしながら、医療用ロボットアーム装置においては、安全性以外にも、多様な観点から多様な性能が求められる。従って、以下では、医療用ロボット装置に求められる他の性能をいくつか挙げ、本実施形態に係る全身協調制御によって、それらの諸性能も満足される点についても説明を行う。
(6−1.医療用ロボットアーム装置についての検討)
まず、本開示をより明確なものとするために、本発明者らが以下に説明する実施形態に想到するに至った背景について説明する。
近年、医療分野や工業分野においては、より正確により素早く作業を行うために、ロボット装置が広く用いられている。ここで、ロボット装置及び各関節部の制御方式としては、位置制御と力制御とが知られている。位置制御では、関節部のアクチュエータに、例えば角度等の指令値が与えられ、当該指令値に追随するように関節部の駆動が制御される。一方、力制御では、ロボット装置全体として作業対象に加えるべき力の目標値が与えられ、当該目標値が示す力を実現するように関節部の駆動(例えば関節部によって発生されるトルク)が制御される。
一般的に、制御上の簡便さやシステムの構成のしやすさから、位置制御によって駆動されるロボット装置が広く用いられている。しかしながら、位置制御は、外力に柔軟に応じることが困難であるため、俗に「硬い制御」と呼ばれることがあり、多様な外界との物理インタラクション(例えば、対人物理インタラクション)を行いながらタスクを遂行するロボット装置には適していない。一方、力制御は、システム構成は複雑化する反面、力オーダーでの「柔らかい制御」が実現できるため、特に対人物理インタラクションを行うロボット装置に適した制御方法であり、よりユーザビリティに優れた制御方法と言える。
例えば、力制御が適用されたロボット装置の一例としては、本願出願人と同一出願人による先行出願である「特開2010−188471号公報」を参照することができる。当該特許文献には、対向する2輪の車輪からなる移動機構と複数の関節部を有する腕部を備えたロボット装置において、当該車輪及び当該関節部の駆動を全体として協調させて制御する(全身協調制御を行う)ロボット装置が開示されている。
一方、近年、医療分野においては、各種の施術(例えば、手術や検査)を行う際に、アーム部の先端に様々な医療用のユニット(先端ユニット)が設けられたバランス型アーム(支持アームとも呼称する。)を用いる試みが行われている。例えば、バランス型アームのアーム部の先端に顕微鏡や内視鏡、カメラ等の撮像機能を有する様々な撮像装置を設け、施術者(ユーザ)が当該撮像装置によって撮影された術部の画像を観察しながら各種の施術を行う方法が提案されている。
しかしながら、バランス型アームは、アーム部を移動させた際の力の均衡を取るためのカウンターバランス用ウェイト(カウンターウェイト又はバランサーとも呼称する。)を備える必要があるため、装置が大型化する傾向がある。施術時の作業空間の確保の観点からは、施術に用いられる装置にはより一層の小型化が求められており、一般的に提案されているバランス型アームではこのような要請に応えることが困難であった。また、バランス型アームにおいては、アーム部の駆動の一部のみ、例えば先端ユニットを平面上(2次元上)で移動させるための2軸の駆動のみが電動駆動となっており、アーム部及び先端ユニットの移動には施術者自身や周囲の医療スタッフによる手動での位置決めが必要となる。従って、一般的なバランス型アームでは、撮影時の安定性(例えば先端ユニットの位置決めの精度や制振等)の確保や、例えば視点を患者の体の所定の部位に固定した状態で様々な方向から観察する等の観察の自由度の確保が困難であった。
特に、アーム部に取り付けられた撮像装置によって術部を観察する際には、視点を術部に固定したまま、異なる距離や異なる角度から当該術部を観察したいという要望がある。このような観察は、撮像装置にピボット動作を行わせることにより実現され得るが、バランス型アームによってピボット動作を行うためには、上記特許文献1に記載されているような複雑な機械的構成が必要となり、高い操作性を得ることは難しい。
このような状況に鑑みて、バランス型アームに代わる装置として、位置制御によって駆動が制御される医療用のロボットアーム装置も提案されている。しかしながら、施術の更なる効率化及びユーザの負担軽減のために、ロボットアーム装置の駆動制御には、ユーザによってアーム部及び先端ユニットとして設けられる撮像ユニットの位置や姿勢をより直感的に制御することができる、より高い操作性が求められていた。位置制御によって駆動が制御されるロボットアーム装置では、このようなユーザの要望に応えることが困難であった。
そこで、より安定性が高く、より操作性の高いアーム部の駆動制御を行うことが可能なロボットアーム装置を実現することにより、ユーザの負担をより軽減することが望まれていた。また、医療用に用いられるという観点から、ロボットアーム装置には、上記<1.ロボットアーム装置の安全性についての検討>で説明した安全性の観点から求められる諸性能に加えて、以下のような性能が求められる。
図11を参照して、本開示の一実施形態に係るロボットアーム装置が医療用に用いられる場合の一適用例について説明するとともに、医療用ロボットアーム装置に求められる諸性能について説明する。図11は、本開示の一実施形態に係るロボットアーム装置が医療用に用いられる場合の一適用例について説明するための説明図である。
図11は、本実施形態に係るロボットアーム装置を用いた施術の様子を模式的に表している。具体的には、図11を参照すると、施術者(ユーザ)520である医師が、例えばメス、鑷子、鉗子等の手術用の器具521を使用して、施術台530上の施術対象(患者)540に対して手術を行っている様子が図示されている。なお、以下の説明においては、施術とは、手術や検査等、ユーザ520である医師が施術対象540である患者に対して行う各種の医療的な処置の総称であるとする。また、図11に示す例では、施術の一例として手術の様子を図示しているが、ロボットアーム装置510が用いられる施術は手術に限定されず、他の各種の施術、例えば内視鏡を用いた検査等であってもよい。
施術台530の脇には本実施形態に係るロボットアーム装置510が設けられる。ロボットアーム装置510は、基台であるベース部511と、ベース部511から延伸するアーム部512を備える。アーム部512は、複数の関節部513a、513b、513cと、関節部513a、513bによって連結される複数のリンク514a、514bと、アーム部512の先端に設けられる撮像ユニット515を有する。図11に示す例では、簡単のため、アーム部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の先端には先端ユニットとして各種の医療用器具が接続される。図11に示す例では、先端ユニットの一例としてアーム部512の先端に撮像ユニット515が設けられている。撮像ユニット515は、撮影対象の画像(撮影画像)を取得するユニットであり、例えば動画や静止画を撮影できるカメラ等である。図11に示すように、アーム部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が施術者の視界を妨げたり、処置を行う手の動きを妨げたりすると、手術の効率の低下につながる。また、図11では図示していないが、実際の手術現場では、ユーザ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を駆動した際の先端ユニットのスムーズな移動や振動の抑制(制振)も含まれる。例えば、図11に示す例のように先端ユニットが撮像ユニット515である場合に、もしも撮像ユニット515の位置や姿勢が安定しないと、表示装置550の表示画面に表示される撮影画像が安定せず、ユーザに不快感を与えかねない。特に、ロボットアーム装置510が手術に用いられる際には、先端ユニットとして2つの撮像ユニット(カメラユニット)を有するステレオカメラが設けられ、当該ステレオカメラによる撮影画像に基づいて生成される3次元画像(3D画像)が表示装置550に表示される使用方法が想定され得る。このように3D画像が表示される場合に、当該ステレオカメラの位置や姿勢が不安定であると、ユーザのいわゆる3D酔いを誘発する可能性がある。また、手術を行う部位や手術の内容によっては、撮像ユニット515によって撮影される観察範囲はφ15mm程度にまで拡大されることがある。このように撮像ユニット515が狭い範囲を拡大して撮影している場合には、撮像ユニット515の僅かな振動が撮像画像の大きな揺れやブレとなって表れる。従って、アーム部512及び撮像ユニット515の駆動制御には、許容範囲1mm程度の高い位置決め精度が要求される。このように、アーム部512の駆動制御においては、高精度の応答性と高い位置決め精度が求められる。
本発明者らは、上記の3つの性能の観点から、一般的な既存のバランス型アームや位置制御によるロボットアーム装置について検討を行った。
まず、1点目の手術の作業空間の確保に関しては、一般的なバランス型アームでは、通常、アーム部を移動させた際の力の均衡を取るためのカウンターバランス用ウェイト(カウンターウェイト又はバランサーとも呼称する。)がベース部の内部等に設けられるため、バランス型アームの装置の大きさを小型化することが難しく、当該性能を満たしているとは言い難い。
また、2点目の高い操作性に関しては、一般的なバランス型アームでは、アーム部の駆動の一部のみ、例えば撮像ユニットを平面上(2次元上)で移動させるための2軸の駆動のみが電動駆動となっており、アーム部及び撮像ユニットの移動には手動による位置決めが必要となるため、高い操作性が実現できるとは言い難い。また、一般的な位置制御によるロボットアーム装置において、アーム部の駆動の制御、すなわち撮像ユニットの位置及び姿勢の制御に用いられる位置制御は、外力に柔軟に応じることが困難であるため、俗に「硬い制御」と呼ばれることがあり、要求されているようなユーザの直感に合った操作性を実現するには適していない。
また、3点目のアーム部の駆動制御における安定性に関しては、一般的に、アーム部の関節部には、摩擦や慣性等のモデル化することが困難な因子が存在する。一般的なバランス型アームや位置制御によるロボットアーム装置においては、関節部の駆動制御においてこれらの因子が外乱となって表れてしまうことにより、理論上適切な制御値(例えば関節部のモータに印加する電流値)を与えた場合であっても所望の駆動(例えば関節部のモータにおける所望の角度の回転)が実現しないことがあり、要求されているようなアーム部の駆動制御における高い安定性を実現することは困難である。
以上説明したように、本発明者らは、医療用途に用いられるロボットアーム装置について検討した結果、ロボットアーム装置に関して、上記<1.ロボットアーム装置の安全性についての検討>で説明した安全性の観点から求められる諸性能に加えて、上述したような3点の性能に対する要求が存在するとの知見を得た。しかしながら、一般的な既存のバランス型アームや位置制御によるロボットアーム装置では、これらの性能を満たすことは困難であると考えられる。本発明者らは、上述した3点の性能を更に満たす構成について検討した結果、以下に説明する実施形態に係るロボットアーム装置、ロボットアーム制御システム、ロボットアーム制御方法及びプログラムに想到した。以下では、本発明者らが想到した一実施形態について詳細に説明する。
(6−2.本開示の一実施形態)
以下では、本開示の一実施形態に係るロボットアーム制御システムについて説明する。本実施形態に係るロボットアーム制御システムにおいては、ロボットアーム装置に設けられる複数の関節部の駆動を、一般化逆動力学を用いた全身協調制御により制御する。更に、外乱の影響を補正することにより指令値に対する理想的な応答を実現する理想関節制御を当該関節部の駆動制御に適用する。
以下の本実施形態の説明では、まず、(6−2−1.ロボットアーム装置の外観)で、本実施形態に係るロボットアーム装置の外観を示すとともに、ロボットアーム装置の概略構成について説明する。次いで、(6−2−2.一般化逆動力学について)及び(6−2−3.理想関節制御について)で、本実施形態に係るロボットアーム装置の制御に用いられる一般化逆動力学と理想関節制御の概要について説明する。次いで、(6−2−4.ロボットアーム制御システムの構成)で、本実施形態に係るロボットアーム装置を制御するためのシステムの構成について機能ブロック図を用いて説明する。最後に、(6−2−5.運動目的の具体例)で、本実施形態に係るロボットアーム装置における、一般化逆動力学を用いた全身協調制御の具体例について説明する。
なお、以下の説明では、本開示の一実施形態として、ロボットアーム装置のアーム部の先端ユニットが撮像ユニットであり、図11に示すように手術時に当該撮像ユニットによって施術部位を撮影する場合について説明するが、本実施形態はかかる例に限定されない。本実施形態に係るロボットアーム制御システムは、他の先端ユニットを有するロボットアーム装置が他の用途に用いられる場合であっても適用可能である。
(6−2−1.ロボットアーム装置の外観)
まず、図12を参照して、本開示の一実施形態に係るロボットアーム装置の概略構成について説明する。図12は、本開示の一実施形態に係るロボットアーム装置の外観を示す概略図である。
図12を参照すると、本実施形態に係るロボットアーム装置400は、ベース部410及びアーム部420を備える。ベース部410はロボットアーム装置400の基台であり、ベース部410からアーム部420が延伸される。また、図12には図示しないが、ベース部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は、医療用器具を備えた医療用ロボットアーム装置であると言える。
ここで、以下では、図12に示すように座標軸を定義してロボットアーム装置400の説明を行う。また、座標軸に合わせて、上下方向、前後方向、左右方向を定義する。すなわち、床面に設置されているベース部410に対する上下方向をz軸方向及び上下方向と定義する。また、z軸と互いに直交する方向であって、ベース部410からアーム部420が延伸されている方向(すなわち、ベース部410に対して撮像ユニット423が位置している方向)をy軸方向及び前後方向と定義する。更に、y軸及びz軸と互いに直交する方向をx軸方向及び左右方向と定義する。
関節部421a〜421fはリンク422a〜422cを互いに回動可能に連結する。関節部421a〜421fはアクチュエータを有し、当該アクチュエータの駆動により所定の回転軸に対して回転駆動される回転機構を有する。各関節部421a〜421fにおける回転駆動をそれぞれ制御することにより、例えばアーム部420を伸ばしたり、縮めたり(折り畳んだり)といった、アーム部420の駆動を制御することができる。ここで、関節部421a〜421fは、下記(6−2−2.一般化逆動力学について)で後述する全身協調制御及び下記(6−2−3.理想関節制御について)で後述する理想関節制御によってその駆動が制御される。また、上述したように、本実施形態に係る関節部421a〜421fは回転機構を有するため、以下の説明において、関節部421a〜421fの駆動制御とは、具体的には、関節部421a〜421fの回転角度及び/又は発生トルク(関節部421a〜421fが発生させるトルク)が制御されることを意味する。
本実施形態に係るロボットアーム装置400は、6つの関節部421a〜421fを有し、アーム部420の駆動に関して6自由度が実現されている。具体的には、図12に示すように、関節部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を自由に移動させることができる。図12では、撮像ユニット423の移動可能範囲の一例として半球を図示している。半球の中心点が撮像ユニット423によって撮影される施術部位の撮影中心であるとすれば、撮像ユニット423の撮影中心を半球の中心点に固定した状態で、撮像ユニット423を半球の球面上で移動させることにより、施術部位を様々な角度から撮影することができる。
ここで、図13を参照して、図12に示す関節部421a〜421fの構成についてより詳細に説明する。なお、ここでは、図13を参照して、関節部421a〜421fの構成のうち、関節部421a〜421fの回転駆動に主に関係する構成であるアクチュエータの構成について説明する。図13に示すアクチュエータは、図2及び図6等に示すアクチュエータ180に対応するものであってよい。
図13は、本開示の一実施形態に係る関節部421a〜421fのアクチュエータを、回転軸を通る断面で切断した様子を模式的に示す断面図である。なお、図13では、関節部421a〜421fの構成のうち、アクチュエータのみを図示しているが、関節部421a〜421fは、他の構成を有してもよい。例えば、関節部421a〜421fは、図13に図示する構成以外にも、アクチュエータの駆動を制御するための制御部や、リンク422a〜422c及び撮像ユニット423を接続、支持するための支持部材等、アーム部420の駆動に必要な各種の構成を有する。なお、ここまでの説明及び以下の説明において、アーム部の関節部の駆動とは、関節部におけるアクチュエータの駆動を意味していてもよい。
なお、上述したように、本実施形態においては、関節部421a〜421fは、下記(6−2−3.理想関節制御について)で後述する理想関節制御によってその駆動が制御される。従って、図13に示す関節部421a〜421fのアクチュエータは、理想関節制御に対応した駆動を行えるように構成されている。具体的には、関節部421a〜421fのアクチュエータは、当該関節部421a〜421fにおける回転角度及び回転駆動に伴うトルクを調整できるように構成されている。また、関節部421a〜421fのアクチュエータは、回転運動に対する粘性抵抗係数を任意に調整できるように構成されており、例えば外部から加えられる力に対して回転しやすい(すなわち、アーム部420を手動で移動しやすい)状態や回転し難い(すなわち、アーム部420を手動で移動し難い)状態を実現することができる。
図13を参照すると、本実施形態に係る関節部421a〜421fのアクチュエータ430は、モータ424、モータドライバ425、減速機426、エンコーダ427、トルクセンサ428及び駆動軸429を有する。図13に示すように、エンコーダ427、モータ424、減速機426及びトルクセンサ428は、駆動軸429に対して直列にこの順で連結される。なお、モータ424、モータドライバ425、減速機426、エンコーダ427及びトルクセンサ428は、図6に示すモータ181、モータドライバユニット170、減速機185、モータ角度センサ184a及びトルクセンサ183にそれぞれ対応するものであってよい。
モータ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の回転角度、回転角速度及び回転角加速度等の情報を得ることができる。なお、図13に示す例では、駆動軸429、すなわち、モータ424の回転軸にエンコーダ427が設けられているが、本実施形態はかかる例に限定されない。図6に示す構成例のように、減速機426の後段に、出力軸の回転角度を検出するためのエンコーダが更に設けられてもよい。
トルクセンサ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に供給する電流量を調整することにより、上述したような回転運動に対する粘性抵抗係数を調整することができ、例えば外部から加えられる力に対して回転しやすい状態や回転し難い状態を実現することができる。
ここで、図14A及び図14Bを参照して、トルクセンサ428の構成について詳細に説明する。図14Aは、図13に示すトルクセンサ428を、駆動軸429の軸方向から見た様子を模式的に示す概略図である。
図14Aを参照すると、トルクセンサ428は、外輪部431、内輪部432、梁部433a〜433d及び歪み検出素子434a〜434dを有する。図14Aに示すように、外輪部431及び内輪部432は同心円状に配置される。本実施形態では、内輪部432が入力側、すなわち、減速機426からの出力軸と接続され、外輪部431が出力側、すなわち、後段の出力部材(図示せず。)と接続される。
4本の梁部433a〜433dは、同心円状に配置された外輪部431と内輪部432との間に配設され、外輪部431と内輪部432とを互いに接続する。図14Aに示すように、梁部433a〜433dは、隣り合う梁部433a〜433d同士が互いに90度の角度となるように、外輪部431と内輪部432との間に介設される。
梁部433a〜433dのうち、互いに向かい合う、すなわち、互いに180度の角度で設けられる2本には、歪み検出素子434a〜434dが設けられる。歪み検出素子434a〜434dによって検出された梁部433a〜433dの変形量に基づいて、アクチュエータ430の発生トルク及び外トルクを検出することができる。
図14Aに示す例では、梁部433a〜433dのうち、梁部433aに歪み検出素子434a、434bが、梁部433cに歪み検出素子434c、434dが設けられる。また、歪み検出素子434a、434bは梁部433aを挟むように設けられ、歪み検出素子434c、434dは梁部433cを挟むように設けられる。例えば、歪み検出素子434a〜434dは歪みゲージであり、梁部433a、433cの表面に貼り付けられることにより、梁部433a、433cの幾何的な変形量を電気抵抗の変化に基づいて検出する。図14Aに示すように4ヶ所に歪み検出素子434a〜434dが設けられることにより、検出素子434a〜434dがいわゆるホイートストンブリッジを構成する。従って、いわゆる4ゲージ法を用いて歪みを検出することができるため、歪みを検出する軸以外の他軸の干渉や駆動軸429の偏心、温度ドリフト等の影響を低減することができる。
このように、梁部433a〜433dは、歪みを検出するための起歪体の役割を果たす。なお、本実施形態に係る歪み検出素子434a〜434dの種類は歪みゲージに限定されず、他の素子が用いられてもよい。例えば、歪み検出素子434a〜434dは、磁気特性の変化に基づいて梁部433a〜433dの変形量を検出する素子であってもよい。
また、図13及び図14Aには図示しないが、トルクセンサ428による発生トルク及び外トルクの検出精度を向上させるために、以下に示す構成が適用されてもよい。例えば、梁部433a〜433dの外輪部431と接続する部位を他の部位よりも薄肉化することにより、支持モーメントが解放されるため、検出される変形量の線形性が向上されるとともにラジアル荷重による影響が低減される。また、外輪部431及び内輪部432をともにベアリングを介してハウジングで支持することにより、入力軸及び出力軸の双方からの他軸力、モーメントの作用を排除することができる。また、外輪部431に作用する他軸モーメントを低減するために、図13に示すアクチュエータ430の他端、すなわちエンコーダ427が配設される部位に両持ち支持用ベアリングが配設されてもよい。
以上、図14Aを参照して、トルクセンサ428の構成について説明した。以上説明したように、図14Aに示すトルクセンサ428の構成により、アクチュエータ430の発生トルク及び外トルクの検出において、高精度な検出が可能となる。
ここで、本実施形態においては、トルクセンサ428の構成は図14Aに示す構成に限定されず、他の構成であってもよい。アクチュエータ430に適用されるトルクセンサについて、トルクセンサ428以外の他の構成の一例を、図14Bを参照して説明する。
図14Bは、図13に示すアクチュエータ430に適用されるトルクセンサの他の構成例を示す概略図である。図14Bを参照すると、本変形例に係るトルクセンサ428aは、外輪部441、内輪部442、梁部443a〜443d及び歪み検出素子444a〜444dを有する。なお、図14Bでは、図14Aと同様、トルクセンサ428aを駆動軸429の軸方向から見た様子を模式的に示している。
トルクセンサ428aにおいて、外輪部441、内輪部442、梁部443a〜443d及び歪み検出素子444a〜444dの機能及び構成は、図14Aを参照して説明したトルクセンサ428の外輪部431、内輪部432、梁部433a〜433d及び歪み検出素子434a〜434dの機能及び構成とほぼ同様である。本変形例に係るトルクセンサ428aは、梁部443a〜443dと外輪部441との接続部分の構成が異なる。従って、図14Bに示すトルクセンサ428aについては、図14Aに示すトルクセンサ428との相違点である梁部443a〜443dと外輪部441との接続部位の構成について主に説明を行い、重複する構成については説明を省略する。
図14Bを参照すると、トルクセンサ428aの全体図と併せて、梁部443bと外輪部441との接続部位が拡大して図示されている。なお、図14Bでは、梁部443a〜443dと外輪部441との4ヶ所の接続部位のうちの1ヶ所である梁部443bと外輪部441との接続部位のみを拡大して図示しているが、他の3ヶ所である梁部443a、443c、443dと外輪部441との接続部位も同様の構成を有している。
図14Bにおける拡大図を参照すると、梁部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のトルクセンサとして適用することにより、より高精度な発生トルク及び外トルクの検出が実現される。
なお、図13、図14A及び図14Bに示すような、理想関節制御に対応するアクチュエータ430の構成については、例えば、本願出願人による先行特許出願である特開2009−269102号公報や特開2011−209099号公報を参照することができる。
以上、図12、図13、図14A及び図14Bを参照して、本実施形態に係るロボットアーム装置400の概略構成について説明した。次に、本実施形態に係るロボットアーム装置400におけるアーム部420の駆動、すなわち、関節部421a〜421fの駆動を制御するための全身協調制御及び理想関節制御について説明する。
(6−2−2.一般化逆動力学について)
次に、本実施形態におけるロボットアーム装置400の全身協調制御に用いられる一般化逆動力学の概要について説明する。
一般化逆動力学は、複数のリンクが複数の関節部によって連結されて構成される多リンク構造体(例えば本実施形態においては図12に示すアーム部420)において、各種の操作空間(Operation Space)における様々な次元に関する運動目的を、各種の拘束条件を考慮しながら、複数の当該関節部に生じさせるトルクに変換する、多リンク構造体の全身協調制御における基本演算である。
操作空間は、ロボット装置の力制御における重要な概念である。操作空間は、多リンク構造体に作用する力と多リンク構造体の加速度との関係を記述するための空間である。多リンク構造体の駆動制御を位置制御ではなく力制御によって行う際に、多リンク構造体と環境との接し方を拘束条件として用いる場合に操作空間という概念が必要となる。操作空間は、例えば、多リンク構造体が属する空間である、関節空間、デカルト空間、運動量空間等である。
運動目的は、多リンク構造体の駆動制御における目標値を表すものであり、例えば、駆動制御によって達成したい多リンク構造体の位置、速度、加速度、力、インピーダンス等の目標値である。
拘束条件は、多リンク構造体の形状や構造、多リンク構造体の周囲の環境及びユーザによる設定等によって定められる、多リンク構造体の位置、速度、加速度、力等に関する拘束条件である。例えば、拘束条件には、発生力、優先度、非駆動関節の有無、垂直反力、摩擦錐、支持多角形等についての情報が含まれる。
一般化動力学においては、数値計算上の安定性と実時間処理可能な演算効率とを両立するため、その演算アルゴリズムは、第1段階である仮想力決定プロセス(仮想力算出処理)と、第2段階である実在力変換プロセス(実在力算出処理)によって構成される。第1段階である仮想力算出処理では、各運動目的の達成に必要な、操作空間に作用する仮想的な力である仮想力を、運動目的の優先度と仮想力の最大値を考慮しながら決定する。第2段階である実在力算出処理では、非駆動関節、垂直反力、摩擦錐、支持多角形等に関する拘束を考慮しながら、上記で得られた仮想力を関節力、外力等の実際の多リンク構造体の構成で実現可能な実在力に変換する。以下、仮想力算出処理及び実在力算出処理について詳しく説明する。なお、以下の仮想力算出処理、実在力算出処理及び後述する理想関節制御の説明においては、理解を簡単にするために、具体例として、図12及び図13に示した本実施形態に係るロボットアーム装置400のアーム部420の構成を例に挙げて説明を行う場合がある。
(6−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の既知外力として作用させることができる。
(6−2−2−2.実在力算出処理)
一般化逆動力学の第2段階である実在力算出処理では、上記(6−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号公報を参照することができる。
(6−2−3.理想関節制御について)
次に、本実施形態に係る理想関節制御について説明する。各関節部421a〜421fの運動は、下記数式(12)の二次遅れ系の運動方程式によってモデル化される。
ここで、Iaは関節部における慣性モーメント(イナーシャ)、τaは関節部421a〜421fの発生トルク、τeは外部から各関節部421a〜421fに作用する外トルク、νaは各関節部421a〜421fにおける粘性抵抗係数である。上記数式(12)は、関節部421a〜421fにおけるアクチュエータ430の運動を表す理論モデルとも言える。
上記(6−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)とも呼称する。以下、図15を参照して、本実施形態に係る理想関節制御について説明する。
図15は、本開示の一実施形態に係る理想関節制御について説明するための説明図である。なお、図15では、理想関節制御に係る各種の演算を行う概念上の演算器をブロックで模式的に図示している。
図15を参照すると、アクチュエータ610は、図13に示すアクチュエータ430の機構を模式的に表しており、モータ(Motor)611、減速機(Reduction
Gear)612、エンコーダ(Encoder)613及びトルクセンサ(Torque Sensor)614は、それぞれ、図13に示すモータ424、減速機426、エンコーダ427及びトルクセンサ428(又は図14Bに示すトルクセンサ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)の左辺に示す回転角加速度目標値(回転角目標値q refの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を用いて当該トルク目標値τr efを補正する。
外乱オブザーバ620の構成について説明する。図15に示すように、外乱オブザーバ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が駆動される。
以上、図15を参照して説明した構成を取ることにより、本実施形態に係る関節部421a〜421fの駆動制御においては、摩擦等の外乱成分があった場合であっても、アクチュエータ610の応答を目標値に追従させることが可能となる。また、関節部421a〜421fの駆動制御について、理論モデルが仮定するイナーシャIa及び粘性抵抗係数νaに従った理想応答を行うことが可能となる。
なお、以上説明した理想関節制御の詳細については、例えば、本願出願人による先行特許出願である特開2009−269102号公報を参照することができる。
以上、本実施形態において用いられる一般化逆動力学について説明するとともに、図15を参照して本実施形態に係る理想関節制御について説明した。以上説明したように、本実施形態においては、一般化逆動力学を用いることにより、アーム部420の運動目的を達成するための各関節部421a〜421fの駆動パラメータ(例えば関節部421a〜421fの発生トルク値)を、拘束条件を考慮して算出する、全身協調制御が行われる。また、図15を参照して説明したように、本実施形態においては、上記一般化逆動力学を用いた全身協調制御により算出された発生トルク値に対して外乱の影響を考慮した補正を行うことにより、関節部421a〜421fの駆動制御において理論モデルに基づいた理想的な応答を実現する、理想関節制御が行われる。従って、本実施形態においては、アーム部420の駆動について、運動目的を達成する高精度な駆動制御が可能となる。
(6−2−4.ロボットアーム制御システムの構成)
次に、上記(6−2−2.一般化逆動力学について)及び上記(6−2−3.理想関節制御について)で説明した全身協調制御や理想関節制御がロボットアーム装置の駆動制御に適用された、本実施形態に係るロボットアーム制御システムの構成について説明する。
図16を参照して、本開示の一実施形態に係るロボットアーム制御システムの一構成例について説明する。図16は、本開示の一実施形態に係るロボットアーム制御システムの一構成例を示す機能ブロック図である。なお、図16に示すロボットアーム制御システムでは、ロボットアーム装置のアーム部の駆動の制御に関わる構成について主に図示している。
図16を参照すると、本開示の一実施形態に係るロボットアーム制御システム1は、ロボットアーム装置10、制御装置20及び表示装置30を備える。本実施形態においては、制御装置20によって、上記(6−2−2.一般化逆動力学について)で説明した全身協調制御及び上記(6−2−3.理想関節制御について)で説明した理想関節制御における各種の演算が行われ、その演算結果に基づいてロボットアーム装置10のアーム部の駆動が制御される。また、ロボットアーム装置10のアーム部には後述する撮像部140が設けられており、撮像部140によって撮影された画像が表示装置30の表示画面に表示される。以下、ロボットアーム装置10、制御装置20及び表示装置30の構成について詳細に説明する。なお、図16に示すロボットアーム制御システム1は、図1を参照して説明したロボットアーム制御システム2に対応するものであり、ロボットアーム制御システム2に対して、図1では図示を省略していた、ロボットアーム装置10の駆動制御に関する機能構成を改めて詳細に図示したものである。
ロボットアーム装置10は、複数の関節部と複数のリンクから構成される多リンク構造体であるアーム部を有し、当該アーム部を可動範囲内で駆動させることにより、当該アーム部の先端に設けられる先端ユニットの位置及び姿勢の制御を行う。ロボットアーム装置10は、図12に示すロボットアーム装置400に対応している。
図16を参照すると、ロボットアーム装置10は、アーム制御部110及びアーム部120を有する。また、アーム部120は、関節部130及び撮像部140を有する。
アーム制御部110は、ロボットアーム装置10を統合的に制御するとともに、アーム部120の駆動を制御する。アーム制御部110は、図12を参照して説明した制御部(図12には図示せず。)に対応している。具体的には、アーム制御部110は駆動制御部111を有し、駆動制御部111からの制御によって関節部130の駆動が制御されることにより、アーム部120の駆動が制御される。より具体的には、駆動制御部111は、関節部130のアクチュエータにおけるモータに対して供給される電流量を制御することにより、当該モータの回転数を制御し、関節部130における回転角度及び発生トルクを制御する。ただし、上述したように、駆動制御部111によるアーム部120の駆動制御は、制御装置20における演算結果に基づいて行われる。従って、駆動制御部111によって制御される、関節部130のアクチュエータにおけるモータに対して供給される電流量は、制御装置20における演算結果に基づいて決定される電流量である。ただし、本実施形態では、図1に示すように、各関節部130に関節制御部135が設けられ、当該関節制御部135によって、関節部130の駆動が制御されてもよい。
アーム部120は、複数の関節部と複数のリンクから構成される多リンク構造体であり、アーム制御部110からの制御によりその駆動が制御される。アーム部120は、図12に示すアーム部420に対応している。アーム部120は、関節部130及び撮像部140を有する。なお、アーム部120が有する複数の関節部の機能及び構成は互いに同様であるため、図16では、それら複数の関節部を代表して1つの関節部130の構成を図示している。
関節部130は、アーム部120においてリンク間を互いに回動可能に連結するとともに、アーム制御部110からの制御によりその回転駆動が制御されることによりアーム部120を駆動する。関節部130は、図12に示す関節部421a〜421fに対応している。また、関節部130は、アクチュエータを有し、当該アクチュエータの構成は、例えば図13、図14A及び図14Bに示す構成と同様である。
関節部130は、関節駆動部131及び関節状態検出部132を有する。
関節駆動部131は、関節部130のアクチュエータにおける駆動機構であり、関節駆動部131が駆動することにより関節部130が回転駆動する。関節駆動部131は、駆動制御部111によってその駆動が制御される。例えば、関節駆動部131は、図13に示すモータ424及びモータドライバ425に対応する構成であり、関節駆動部131が駆動することは、モータドライバ425が駆動制御部111からの指令に応じた電流量でモータ424を駆動することに対応している。
関節状態検出部132は、関節部130の状態を検出する。ここで、関節部130の状態とは、関節部130の運動の状態を意味していてよい。例えば、関節部130の状態には、関節部130の回転角度、回転角速度、回転角加速度、発生トルク等の情報が含まれる。本実施形態においては、関節状態検出部132は、関節部130の回転角度を検出する回転角度検出部133及び関節部130の発生トルク及び外トルクを検出するトルク検出部134を有する。なお、回転角度検出部133及びトルク検出部134は、図13に示すアクチュエータ430のエンコーダ427及び図14A及び図14Bに示すトルクセンサ428、428aに、それぞれ対応している。関節状態検出部132は、検出した関節部130の状態を制御装置20に送信する。
なお、図16では、全身協調制御における制御量の演算処理について説明するために、関節状態検出部132の機能の一例として、主にアーム部120の運動を表す情報を取得する機能である、回転角度検出部133及びトルク検出部134を図示している。ただし、本実施形態では、関節状態検出部132は、図6に示すアクチュエータ180に設けられる各センサによって構成されてよい。例えば、回転角度検出部133は、図6に示すモータ角度センサ184a及び出力軸角度センサ184bによって構成されてよい。また、トルク検出部134は、図6に示すトルクセンサ183によって構成されてよい。関節状態検出部132は、例えば、モータに供給される電流を検出する機能やモータの周囲の温度を検出する機能等、アクチュエータ180の各センサに対応する、他の物理量を検出する機能を更に有してもよい。
撮像部140は、アーム部120の先端に設けられる先端ユニット(図1に示す先端ユニット145に対応する。)の一例であり、撮影対象の画像を取得する。撮像部140は、図12に示す撮像ユニット423に対応している。具体的には、撮像部140は、撮影対象を動画や静止画の形式で撮影することのできるカメラ等である。より具体的には、撮像部140は、2次元上に配列された複数の受光素子を有し、当該受光素子における光電変換により、撮影対象の画像を表す画像信号を取得することができる。撮像部140は、取得した画像信号を表示装置30に送信する。
なお、図12に示すロボットアーム装置400において撮像ユニット423がアーム部420の先端に設けられていたように、ロボットアーム装置10においても、実際には撮像部140がアーム部120の先端に設けられている。図16では、撮像部140が複数の関節部130及び複数のリンクを介して最終段のリンクの先端に設けられる様子を、関節部130と撮像部140との間にリンクを模式的に図示することにより表現している。
なお、アーム部120の先端に設けられる先端ユニットは、撮像部140に限定されない。本実施形態では、アーム部120の先端には先端ユニットとして各種の医療用器具が接続され得る。当該医療用器具としては、例えば、メスや鉗子等の各種の施術器具や、超音波検査装置の探触子等の各種の検査装置の一ユニット等、施術に際して用いられる各種のユニットが挙げられる。また、本実施形態では、図16に示す撮像部140や、内視鏡、顕微鏡等の撮像機能を有するユニットも医療用器具に含まれてよい。このように、本実施形態に係るロボットアーム装置10は、医療用器具を備えた医療用ロボットアーム装置であると言える。同様に、本実施形態に係るロボットアーム制御システム1は、医療用ロボットアーム制御システムであると言える。なお、図16に示すロボットアーム装置10は、撮像機能を有するユニットを先端ユニットとして備えるビデオ顕微鏡用ロボットアーム装置であるとも言える。また、アーム部120の先端に、2つの撮像ユニット(カメラユニット)を有するステレオカメラが設けられ、撮像対象を3D画像として表示するように撮影が行われてもよい。
以上、ロボットアーム装置10の機能及び構成について説明した。次に、制御装置20の機能及び構成について説明する。図16を参照すると、制御装置20は、入力部210、記憶部220及び制御部230を有する。
制御部230は、制御装置20を統合的に制御するとともに、ロボットアーム装置10におけるアーム部120の駆動を制御するための各種の演算を行う。具体的には、制御部230は、ロボットアーム装置10のアーム部120の駆動を制御するために、全身協調制御及び理想関節制御における各種の演算を行う。以下、制御部230の機能及び構成について詳しく説明するが、全身協調制御及び理想関節制御については、上記(6−2−2.一般化逆動力学について)及び上記(6−2−3.理想関節制御について)で既に説明しているため、ここでは詳しい説明は省略する。
制御部230は、全身協調制御部240、理想関節制御部250及び異常検出部260を有する。
全身協調制御部240は、一般化逆動力学を用いた全身協調制御に関する各種の演算を行う。本実施形態では、全身協調制御部240は、関節状態検出部132によって検出された関節部130の状態に基づいてアーム部120の状態(アーム状態)を取得する。また、全身協調制御部240は、当該アーム状態と、アーム部120の運動目的及び拘束条件と、に基づいて、操作空間におけるアーム部120の全身協調制御のための制御値を、一般化逆動力学を用いて算出する。なお、操作空間とは、例えばアーム部120に作用する力とアーム部120に発生する加速度との関係を記述するための空間である。
全身協調制御部240は、アーム状態取得部241、演算条件設定部242、仮想力算出部243及び実在力算出部244を有する。ここで、上述した図1では、説明のため、便宜的に、演算条件設定部242を、全身協調制御部240に含まれない一機能として図示していたが、これらは同様の機能を有するものである。
アーム状態取得部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の向きが空間上の所定の点に固定される(すなわち、撮像部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の回転運動における粘性抵抗係数は、運動目的の内容に応じて適宜設定されてよい。
なお、運動目的の具体例については、下記(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が行う実在力の算出処理は、例えば、上記(6−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は、図15に示す外乱オブザーバ620に対応する機能を有する。
指令値算出部252は、外乱推定部251によって算出された外乱推定値τdを用いて、最終的にロボットアーム装置10に送信されるアーム部120に生じさせるトルクを表す指令値であるトルク指令値τを算出する。具体的には、指令値算出部252は、上記数式(12)に示す関節部130の理想モデルから算出されるτrefに外乱推定部251によって算出された外乱推定値τdを加算することにより、トルク指令値τを算出する。例えば、外乱推定値τdが算出されていない場合には、トルク指令値τはトルク目標値τ refとなる。このように、指令値算出部252の機能は、図15に示す外乱オブザーバ620以外の機能に対応している。
以上説明したように、理想関節制御部250においては、外乱推定部251と指令値算出部252との間で繰り返し情報のやり取りが行われることにより、図15を参照して説明した一連の処理が行われる。理想関節制御部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は、関節部130の異常を検出するための各種の情報に基づいて、関節部130に生じた異常を検出する。ここで、異常検出部260の機能については、上記<2.ロボットアーム制御システムの機能構成>で詳しく説明しているため、ここでは、その詳細な説明は省略する。異常検出部260によって検出された異常についての情報は、例えば演算条件設定部242に提供され、あるいは記憶部220に記憶される。演算条件設定部242は、当該異常についての情報に基づいて、当該異常の種類に応じたアーム部120に行わせる動作(異常回避動作、一部機能停止動作及び機能停止動作)を判断し、判断した動作に対応する演算条件(例えば、運動目的、拘束条件および内部モデル)を設定する。このようにして設定された演算条件に基づいて、仮想力算出部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は、図11に示す表示装置550に対応している。
以上、図16を参照して、本実施形態に係るロボットアーム装置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のそれぞれが、例えば図13に示すような、理想関節制御に適合した構成を有し、各関節部130における回転角度、発生トルク及び粘性抵抗係数を電流値によって制御することができる。このように、各関節部130の駆動が電流値によって制御され、また、全身協調制御により各関節部130の駆動がアーム部120全体の状態を把握しながら制御されるため、カウンターバランスが不要となり、ロボットアーム装置10の小型化が実現される。
(6−2−5.運動目的の具体例)
次に、本実施形態に係る運動目的の具体例について説明する。上記(6−2−4.ロボットアーム制御システムの構成)で説明したように、本実施形態においては、全身協調制御によって各種の運動目的が実現される。ここでは、本実施形態に係る運動目的の具体例として、パワーアシスト動作と、ピボット動作について説明する。なお、以下の運動目的の具体例についての説明では、図16に示す機能ブロック図における参照番号を用いて、本実施形態に係るロボットアーム制御システムの構成部材を表す。
パワーアシスト動作は、アーム部120に作用する重力を打ち消すように関節部130の状態を制御するとともに、更に外部から与えられた力の方向へのアーム部120の移動をサポートするように関節部130の状態を制御する動作である。具体的には、ユーザがアーム部120を手動で動かす際に、ユーザによって加えられた力をサポートするようにアーム部120の駆動を制御する動作である。より具体的には、パワーアシスト動作を実現するために、まず、重力以外の力がアーム部120に作用していない状態における外トルクがトルク検出部134によって検出され、検出された外トルクを打ち消す発生トルクを各関節部130に生じさせるように、瞬時的な運動目的が設定される。この段階で、アーム部120の位置及び姿勢が所定の状態で保持される。この状態で更に外部から(例えばユーザから)外トルクが加えられた場合に、追加的に与えられた外トルクがトルク検出部134によって検出され、検出された追加的な外トルクと同じ方向の発生トルクを各関節部130に生じさせるという瞬時的な運動目的が更に設定される。このような瞬時的な運動目的に従って各関節部130の駆動が制御されることによりパワーアシスト動作が実現される。パワーアシスト動作により、ユーザはより小さい力でアーム部を移動させることができるため、あたかも無重力下でアーム部120を動かしているような感覚を得ることができ、ユーザによるアーム部120の操作性が向上する。
ピボット動作は、アーム部120の先端に設けられる先端ユニットが、当該先端ユニットの向きが空間上の所定の点に固定された状態で、当該所定の点を頂点とした円錐の面上を移動する、当該円錐の軸を旋回軸とした旋回動作である。具体的に先端ユニットが撮像部140である場合であれば、ピボット動作は、アーム部120の先端に設けられる撮像部140が、撮像部140の撮影方向が空間上の所定の点に固定された状態で、当該所定の点を頂点とした円錐の面上を移動する、当該円錐の軸を旋回軸とした旋回動作である。ピボット動作における円錐の頂点に当たる点としては、例えば施術部位が選択される。また、ピボット動作においては、先端ユニット又は撮像部140と円錐の頂点に当たる点との距離が一定に保たれた状態で旋回動作が行われてもよい。なお、先端ユニットの向き又は撮像部140の撮影方向が空間上の所定の点(例えば施術部位)に固定されることから、ピボット動作はポイントロック動作とも呼ばれる。
ピボット動作について、図17及び図18を参照してより詳細に説明する。図17は、本開示の一実施形態に係るアーム動作の一具体例であるピボット動作について説明するための説明図である。図18は、図17に示すピボット動作を実現するための運動目的及び拘束条件について説明するための説明図である。
図17を参照すると、患者750上における施術部位がピボット動作における頂点に設定されている。当該頂点をピボット点Piと呼称する。図17では、簡単のため、本実施形態に係るロボットアーム装置10のうち、図16における撮像部140に対応するユニットである撮像ユニット713のみを図示している。図17に示すように、ピボット動作においては、撮像ユニット713が円錐Aの底面の円周上に限り移動することができるように、すなわち、撮像ユニット713とピボット点Piとの距離が一定に保たれた状態で撮像ユニット713が円錐Aの面内を移動するように、運動目的及び拘束条件が設定されてもよい。また、円錐Aの形状、すなわち、円錐Aの頂点の角度θや、ピボット点Piと撮像ユニット713との距離は、ユーザによって適宜設定されてよい。例えば、ピボット点Piと撮像ユニット713との距離は撮像ユニット713における光学系の焦点距離に調整される。このようなピボット動作を適用することにより、施術部位を等距離からかつ異なる角度から観察できるようになるため、手術を行うユーザの利便性を向上させることができる。
また、ピボット動作においては、円錐A及び円錐Bのように、ピボット点Piを固定したまま撮像ユニット713が移動可能な円錐の位置を移動させることができてもよい。図17に示す例では、円錐Aの旋回軸は施術部位に対して略垂直であり、円錐Bの旋回軸は施術部位に対して略水平である。このように、例えばピボット動作を行う円錐を、円錐A、Bのように、ピボット点Piを固定したまま略90度回転できるように、運動目的及び拘束条件が設定されてもよい。このようなピボット動作を適用することにより、施術部位を更に多くの方向から観察できるようになるため、ユーザの利便性を更に向上させることができる。
なお、図17に示す例では、撮像ユニット713が円錐Aの底面の円周上に限り移動することができるように運動目的及び拘束条件が設定される例を示しているが、本実施形態に係るピボット動作はかかる例に限定されない。例えば、ピボット点Piの位置及び円錐A、Bの頂点の角度θは固定したまま、ピボット点Piと撮像ユニット713との距離は自由に移動できるように、運動目的及び拘束条件が設定されてもよい。このようなピボット動作を適用することにより、角度は固定したまま撮像ユニット713と施術部位との距離だけを変えることができるようになるため、撮像ユニット713の焦点距離(フォーカス)を適宜調整することにより施術部位を拡大又は縮小して観察する等、よりユーザの要求に応える施術部位の観察が可能となる。
次に、図18を参照して、図17に示したようなピボット動作を実現するための運動目的及び拘束条件について詳しく説明する。図18を参照すると、撮像ユニット713を有するアーム部710がピボット点Piを基点としてピボット動作を行っている様子が図示されている。なお、図18では、撮像ユニット713とピボット点Piとの距離が一定に保たれた状態でのピボット動作を例に挙げて説明を行う。アーム部710は、複数の関節部711a、711b、711cと複数のリンク712a、712b、712cを有し、本実施形態に係る全身協調制御及び理想関節制御によってその駆動が制御されているとする。例えば、アーム部710及びその構成部材は、図12に示した本実施形態に係るアーム部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が侵入しない動作が実現されるように、運動目的及び拘束条件が設定されてもよい。図11を参照して説明したように、本実施形態においてはユーザが表示画面を見ながら手術を行う。従って、ユーザと表示画面との間の領域にアーム部120が位置すると、ユーザの視界を遮ることとなり、手術の効率低下につながる恐れがある。従って、例えばユーザと表示画面の間の領域をアーム部120の侵入禁止領域として設定することにより、手術の効率化を図ることができる。
ここで、このようにアーム部120に侵入禁止領域を設定する場合には、アーム部120の自由度が6自由度よりも多いことが好ましい。何故ならば、6自由度よりも多い自由度を冗長自由度として利用することができるため、6自由度の駆動を確保しつつ、上記のような侵入禁止領域等にも対応できるからである。このような6自由度よりも多い自由度を有するアーム部を備えるロボットアーム装置の構成について、図19を参照して詳しく説明する。
図19は、本開示の一実施形態に係るロボットアーム装置における冗長自由度を有する変形例の外観を示す概略図である。なお、図19においても、図12で定義した方向と同一の座標軸を図示している。
図19を参照すると、本変形例に係るロボットアーム装置450は、ベース部460及びアーム部470を備える。また、アーム部470は、複数の関節部471a〜471gと、関節部471a〜471gによって互いに連結される複数のリンク472a〜472dと、アーム部470の先端に設けられる撮像ユニット473を有する。ここで、図19に示すロボットアーム装置450は、図12を参照して説明したロボットアーム装置400に対してアーム部470の自由度が1つ増加した構成に対応している。従って、ベース部460、個々の関節部471a〜471g及びリンク472a〜472d、並びに、撮像ユニット473の機能及び構成は、図12を参照して説明したロボットアーム装置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が構成される。
また、図19に示すように、関節部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を空間内で自由に移動させることができるとともに、冗長自由度を有する。図19では、図12と同様に、撮像ユニット473の移動可能範囲の一例として半球を図示している。半球の中心点が撮像ユニット473によって撮影される施術部位の撮影中心であるとすれば、撮像ユニット473の撮影中心を半球の中心点に固定した状態で、撮像ユニット473を半球の球面上で移動させることにより、施術部位をあらゆる角度から撮影することができる。本実施形態に係るロボットアーム装置450は、更に1つの冗長自由度を有することにより、このような撮像ユニット473の半球上の移動とともに、アーム部470の軌道を制限することができ、上述した侵入禁止領域のような拘束条件にも容易に対応することができる。侵入禁止領域を設定することにより、例えば、撮像ユニット473によって撮影された画像が表示されるモニタと施術者及びスタッフとの間にアーム部470が存在しないようにアーム部470の駆動を制御することができ、施術者及びスタッフによるモニタの視認が妨げられることを防ぐことができる。また、侵入禁止領域を設定することにより、施術者及びスタッフや周囲の他の機器との干渉(接触)を避けてアーム部470が移動するようにアーム部470の駆動を制御することが可能となる。
(6−3.ロボットアーム制御方法の処理手順)
次に、図20を参照して、本開示の一実施形態に係るロボットアーム制御方法の処理手順について説明する。図20は、本開示の一実施形態に係るロボットアーム制御方法の処理手順を示すフロー図である。なお、以下では、図16に示すロボットアーム制御システム1の構成によって本実施形態に係るロボットアーム制御方法が実現される場合を例に挙げて説明を行う。従って、本実施形態に係るロボットアーム制御方法は医療用ロボットアーム制御方法であると言える。なお、以下の本実施形態に係るロボットアーム制御方法の処理手順についての説明において、図16に示すロボットアーム制御システム1の各構成の機能については、上記(6−2−4.ロボットアーム制御システムの構成)で既に説明しているため、詳細な説明は省略する。
図20を参照すると、本実施形態に係るロボットアーム制御方法では、まず、ステップS801で、関節状態検出部132によって関節部130の状態が検出される。ここで、関節部130の状態とは、例えば関節部130における回転角度、発生トルク及び/又は外トルクである。
次にステップS803で、ステップS801で検出された関節部130の状態に基づいて、アーム状態取得部241によってアーム状態が取得される。アーム状態とは、アーム部120の運動の状態のことであり、例えばアーム部120の各構成部材の位置、速度、加速度やアーム部120の各構成部材に作用する力等であってよい。
次にステップS805で、ステップS803で取得されたアーム状態に基づいて、演算条件設定部242によって全身協調制御における演算で用いられる運動目的及び拘束条件が設定される。なお、演算条件設定部242はアーム状態に基づいて運動目的を設定しなくてもよく、例えば、入力部210からユーザによって入力されるアーム部120の駆動についての指示情報に基づいて運動目的を設定してもよいし、記憶部220に予め格納されている運動目的を用いてもよい。更に、上記の各方法を適宜組み合わせることにより、運動目的を設定してもよい。また、演算条件設定部242は記憶部220に予め格納されている拘束条件を用いてもよい。
次にステップS807で、アーム状態、運動目的及び拘束条件に基づいて、一般化逆動力学を用いた全身協調制御についての演算が行われ、制御値τaが算出される。なお、ステップS807で行われる処理は、図16に示す仮想力算出部243及び実在力算出部244における一連の処理、すなわち、上記(6−2−2.一般化逆動力学について)で説明した一連の処理であってよい。
次にステップS809で、外乱推定値τdが算出され、当該外乱推定値τdを用いて、理想関節制御についての演算が行われ、制御値τaから指令値τが算出される。なお、ステップS809で行われる処理は、図16に示す理想関節制御部250における一連の処理、すなわち、上記(6−2−3.理想関節制御について)で説明した一連の処理であってよい。
最後にステップS811で、指令値τに基づいて、駆動制御部111によって関節部130の駆動が制御される。
以上、図20を参照して、本実施形態に係るロボットアーム制御方法の処理手順について説明した。なお、本実施形態においては、図20に示すステップS801〜ステップS811における処理が、アーム部120を用いた作業が行われている間繰り返し行われる。従って、本実施形態においては、アーム部120を用いた作業が行われている間、アーム部120の駆動制御が継続的に行われる。
(6−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のそれぞれが、例えば図13に示すような、理想関節制御に適合した構成を有し、各関節部130における回転角度、発生トルク及び粘性抵抗係数を電流値によって制御することができる。このように、各関節部130の駆動が電流値によって制御され、また、全身協調制御により各関節部130の駆動がアーム部120全体の状態を把握しながら制御されるため、カウンターバランスが不要となり、ロボットアーム装置10の小型化が実現される。
このように、本実施形態によれば、上記(6−1.医療用ロボットアーム装置についての検討)で説明したロボットアーム装置に求められる性能を全て満たすことができる。従って、本実施形態に係るロボットアーム装置を用いた各種の施術において、より効率的に施術を行うことができ、ユーザや患者の疲労や負担をより軽減することが実現される。
また、本実施形態では、力制御によってロボットアーム装置10のアーム部120が駆動されることにより、万が一駆動中にアーム部120が施術者やスタッフ等に干渉(接触)したとしても、アーム部120が必要以上の力を発生せず、アーム部120が安全に停止する。そして、当該干渉から解放されれば、設定された運動目的に従って所望の位置までアーム部120が移動し、施術が継続される。このように、本実施形態では、ロボットアーム装置10の駆動制御に力制御が用いられることにより、駆動中におけるアーム部120と周囲の物体との干渉に対して、より高い安全性が確保される。
なお、例えば、上記実施形態では、ロボットアーム装置のアーム部の先端ユニットが撮像ユニットであり、図11に示すように手術時に当該撮像ユニットによって施術部位を撮影する場合について説明したが、本実施形態はかかる例に限定されない。本実施形態に係るロボットアーム制御システム1は、他の先端ユニットを有するロボットアーム装置が他の用途に用いられる場合であっても適用可能である。例えば、先端ユニットは内視鏡や腹腔鏡であってもよいし、超音波検査器や胃カメラ等、他の検査機器であってもよい。
例えば、腹腔鏡を用いた施術では、患者の体内に腹腔鏡を挿入し、当該腹腔鏡によって撮影された映像を観察しながら、別途挿入される鉗子や電気メス等の術具を用いて各種の処置が行われる。このような施術方法においては、例えば腹腔鏡をロボットアームによって操作しながら、処置用の術具を施術者が直接操作することができれば、1人のユーザによって施術を行うことができ、より効率的な施術が可能となる。しかしながら、一般的な既存のバランス型アームにおいては、操作性の観点から、1人のユーザが、自身の手による術具の操作とロボットアームによる腹腔鏡の操作とを同時に行うことは困難であった。よって、既存の方法では、複数名のスタッフが必要であり、1人の施術者がロボットアームによって腹腔鏡を操作しながら、他の者が術具を用いた処置を行うことが一般的であった。しかし、本実施形態に係るロボットアーム装置では、上述したように、全身協調制御による高い操作性が実現される。また、理想関節制御により、振動等の影響がより少ない、高精度の応答性と高い安定性が実現される。従って、本実施形態によれば、ロボットアーム装置による観察用の腹腔鏡の操作と、自身の手による術具の操作とを、施術者1人で容易に行うことが可能となる。
また、本実施形態に係るロボットアーム装置は、医療以外の用途に用いられてもよい。本実施形態に係るロボットアーム装置では、理想関節制御により、高精度の応答性と高い安定性が実現されるため、例えば高い精度が求められる工業部品の加工や組み立て等の作業にも対応可能である。
また、上記実施形態では、ロボットアーム装置の関節部が回転機構を有し、当該回転機構の回転駆動が制御されることによってアーム部の駆動が制御される場合について説明したが、本実施形態はかかる例に限定されない。例えば、本実施形態に係るロボットアーム装置においては、アーム部を構成するリンクがリンクの延伸方向に伸縮する機構(例えば油圧で駆動するものやボールねじを駆動するもの等)を有し、リンクの長さが可変であってもよい。リンクの長さが可変である場合、例えば関節部における回転に加えてリンクの伸縮も考慮した全身協調制御によって、所望の運動目的を達成するようにアーム部の駆動が制御される。
また、上記実施形態では、ロボットアーム装置におけるアーム部の自由度が6自由度以上である場合について説明したが、本実施形態はかかる例に限定されない。また、ロボットアーム装置におけるアーム部を構成する複数の関節部が全て理想関節制御に対応するアクチュエータを有する場合について説明したが、本実施形態はかかる例に限定されない。本実施形態においては、ロボットアーム装置の用途に応じて多様な運動目的が設定され得る。従って、設定された運動目的が達成可能であれば、アーム部は、6自由度よりも低い自由度を有してもよいし、アーム部を構成する複数の関節部のうちの一部が一般的な関節機構を有する関節部であってもよい。このように、本実施形態においては、アーム部の構成は、運動目的を達成可能であるように構成されればよく、ロボットアーム装置の用途に応じて適宜構成されてよい。
<7.ハードウェア構成>
次に、図21を参照しながら、図1及び図16に示す、本実施形態に係るロボットアーム装置10及び制御装置20のハードウェア構成について、詳細に説明する。図21は、本開示の一実施形態に係るロボットアーム装置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は、本実施形態においては、例えば、図1及び図16に示すアーム制御部110、関節制御部135及び制御部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は、本実施形態においては、例えば、図16に示す入力部210に対応する。また、本実施形態においては、入力装置915を介したユーザによる操作入力により、アーム部120の駆動における運動目的が設定され、当該運動目的に従って全身協調制御が行われてもよい。
出力装置917は、取得した情報をユーザに対して視覚的又は聴覚的に通知することが可能な装置で構成される。このような装置として、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置及びランプ等の表示装置や、スピーカ及びヘッドホン等の音声出力装置や、プリンタ装置等がある。出力装置917は、例えば、ロボットアーム装置10及び制御装置20が行った各種処理により得られた結果を出力する。具体的には、表示装置は、ロボットアーム装置10及び制御装置20が行った各種処理により得られた結果を、テキスト又はイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。本実施形態においては、アーム部120の駆動制御に関する各種の情報が、あらゆる形式で出力装置917から出力されてよい。例えば、アーム部120の駆動制御における、アーム部120の各構成部材の移動の軌跡が、グラフの形式で出力装置917の表示画面に表示されてもよい。なお、例えば、図16に示す表示装置30は、出力装置917の表示装置としての機能及び構成と、当該表示装置の駆動を制御するための制御部等の構成を備える装置であってもよい。
ストレージ装置919は、ロボットアーム装置10及び制御装置20の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD(Hard Disk Drive)等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等により構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ等を格納する。ストレージ装置919は、本実施形態においては、例えば、図1及び図16に示す記憶部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は、本実施形態においては、例えば、図2に示す通信ユニット150、270に対応する。また、通信装置925に接続される通信網931は、有線又は無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信又は衛星通信等であってもよい。本実施形態においては、ロボットアーム装置10の各関節部130とアーム部120とが、通信装置925を介して、異常を検出するための各種の情報やアーム部120の駆動制御に関する各種の情報を、互いに送受信してもよい。また、アーム部120の駆動制御に関する各種の情報が、通信装置925によって、通信網931を介して外部の他の機器との間で相互に送受信されてもよい。
以上、本開示の実施形態に係るロボットアーム装置10及び制御装置20の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。なお、図21では図示しないが、ロボットアーム装置10は、図1及び図16に示すアーム部120に対応する各種の構成を当然備える。
なお、上述のような本実施形態に係るロボットアーム装置10、制御装置20及び表示装置30の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
<8.補足>
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)複数のリンクが関節部によって互いに連結されて構成されるアーム部と、前記関節部の駆動を制御することにより前記アーム部を駆動させる駆動制御部と、を備え、前記駆動制御部は、前記関節部の少なくともいずれかに異常が検出された場合に、前記アーム部の運動に対して所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させる、ロボットアーム装置。
(2)前記アーム部が接触することにより外部の物体に与えられる押圧力に応じて前記関節部に生じるトルクに基づいて、前記関節部の異常が検出され、前記駆動制御部は、前記アーム部の運動に対して前記押圧力が所定の範囲に制限された状態で、前記関節部の駆動を制御して前記アーム部を駆動させる、前記(1)に記載のロボットアーム装置。
(3)前記押圧力は、前記アーム部の先端に設けられる先端ユニットによって外部の物体に与えられる力である、前記(2)に記載のロボットアーム装置。
(4)前記先端ユニットに作用する力を検出するセンサが更に備えられ、前記先端ユニットに作用する力に応じて前記関節部に生じるトルクと、前記センサによって検出される力と、に基づいて、前記関節部の異常が検出される、前記(3)に記載のロボットアーム装置。
(5)前記関節部の異常は、前記関節部の回転角度に基づいて検出され、前記駆動制御部は、前記アーム部の運動に対して前記関節部の回転角度が所定の範囲に制限された状態で前記関節部の駆動を制御して前記アーム部を駆動させる、前記(1)に記載のロボットアーム装置。
(6)前記関節部の異常は、前記関節部の回転角速度に基づいて検出され、前記駆動制御部は、前記アーム部の運動に対して前記関節部の回転角速度が所定の範囲に制限された状態で前記関節部の駆動を制御して前記アーム部を駆動させる、前記(1)に記載のロボットアーム装置。
(7)前記関節部は、前記関節部の状態を検出する関節状態検出部を有し、前記関節部の異常は、前記関節状態検出部によって検出される前記関節部の状態に基づいて判断される、前記(1)〜(6)のいずれか1項に記載のロボットアーム装置。
(8)前記関節部の状態は、前記関節部を駆動するために設けられるアクチュエータにおける、モータの回転角度、出力軸の回転角度、出力軸のトルク、モータに供給される電流及びモータの周囲の温度の少なくともいずれかを含む、前記(7)に記載のロボットアーム装置。
(9)前記駆動制御部は、前記関節部で検出された異常の種類に応じて、前記アーム部の運動に所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させる異常回避動作と、異常が検出された前記関節部以外の他の前記関節部の駆動を制御して前記アーム部の自由度を低下させた状態で前記アーム部を駆動させる一部機能停止動作と、前記アーム部を構成する全ての前記関節部の動きが固定される機能停止動作と、のいずれかの動作が実行されるように前記関節部の駆動を制御する、前記(1)〜(8)のいずれか1項に記載のロボットアーム装置。
(10)前記駆動制御部は、検出された複数の前記関節部の状態に基づいて取得される前記アーム部の状態に基づいて前記関節部の駆動を制御する、前記(1)〜(9)のいずれか1項に記載のロボットアーム装置。
(11)記駆動制御部は、前記アーム部の状態と、前記アーム部の運動目的及び拘束条件に基づく前記アーム部の協調制御のための制御値と、に基づいて前記関節部の駆動を制御する、前記(10)に記載のロボットアーム装置。
(12)前記制御値は、前記アーム部に作用する力と前記アーム部に発生する加速度との関係を記述する操作空間において前記運動目的を達成するために作用される仮想的な力である仮想力と、前記拘束条件に基づいて前記仮想力が前記関節部を駆動するための実在の力に変換されることにより求められる実在力と、に基づいて算出される、前記(11)に記載のロボットアーム装置。
(13)前記駆動制御部は、前記制御値に対して外乱の影響を補正することにより算出される指令値、に基づいて前記関節部の駆動を制御する、前記(11)に記載のロボットアーム装置。
(14)前記指令値は、検出された前記関節部の状態に基づいて推定される前記関節部の駆動に対する外乱の影響を表す外乱推定値を用いて、前記制御値を補正することにより算出される、前記(13)に記載のロボットアーム装置。
(15)前記駆動制御部は、前記アーム部に作用する重力を補償する力、及び外部から更に与えられた力の方向への前記アーム部の移動をサポートする力を生じるように前記関節部の駆動を制御する、前記(11)〜(14)のいずれか1項に記載のロボットアーム装置。
(16)前記駆動制御部は、前記アーム部の先端に設けられる先端ユニットが空間上の所定の点を頂点とした円錐体の面上を移動するピボット動作を行うように前記関節部の駆動を制御する、前記(11)〜(14)のいずれか1項に記載のロボットアーム装置。
(17)前記ピボット動作において、前記先端ユニットと前記所定の点との距離は一定に保たれる、前記(16)に記載のロボットアーム装置。
(18)前記ロボットアーム装置は、前記アーム部に少なくとも1つの医療用器具が設けられる、医療用ロボットアーム装置である、前記(1)〜(17)のいずれか1項に記載のロボットアーム装置。
(19)複数のリンクが関節部によって互いに連結されて構成されるアーム部における、少なくともいずれかの前記関節部の異常を検出することと、前記アーム部の運動に所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させることと、を含む、ロボットアーム制御方法。
(20)コンピュータのプロセッサに、複数のリンクが関節部によって互いに連結されて構成されるアーム部における、少なくともいずれかの前記関節部の異常を検出する機能と、前記アーム部の運動に所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させる機能と、を実現させる、プログラム。