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