(57)【要約】【課題】安全性をより向上させることを可能にする。【解決手段】複数のリンクが関節部によって互いに連結されて構成されるアーム部と、前記関節部の駆動を制御することにより前記アーム部を駆動させる駆動制御部と、を備え、前記駆動制御部は、前記関節部の少なくともいずれかに異常が検出された場合に、前記アーム部の運動に対して所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させる、医療用支持アーム装置を提供する。【選択図】図１
2019155116.tif 000002
【特許請求の範囲】
【請求項１】
複数のリンクが関節部によって互いに連結されて構成されるアーム部と、
前記関節部の駆動を制御することにより前記アーム部を駆動させる駆動制御部と、
を備え、
前記駆動制御部は、前記関節部の少なくともいずれかに異常が検出された場合に、前記アーム部の運動に対して所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させる、
医療用支持アーム装置。
【請求項２】
前記アーム部が接触することにより外部の物体に与えられる押圧力に応じて前記関節部に生じるトルクに基づいて、前記関節部の異常が検出され、
前記駆動制御部は、前記アーム部の運動に対して前記押圧力が所定の範囲に制限された状態で、前記関節部の駆動を制御して前記アーム部を駆動させる、
請求項１に記載の医療用支持アーム装置。
【請求項３】
前記押圧力は、前記アーム部の先端に設けられる先端ユニットによって外部の物体に与えられる力である、
請求項２に記載の医療用支持アーム装置。
【請求項４】
前記先端ユニットに作用する力を検出するセンサが更に備えられ、
前記先端ユニットに作用する力に応じて前記関節部に生じるトルクと、前記センサによって検出される力と、に基づいて、前記関節部の異常が検出される、
請求項３に記載の医療用支持アーム装置。
【請求項５】
前記関節部の異常は、前記関節部の回転角度に基づいて検出され、
前記駆動制御部は、前記アーム部の運動に対して前記関節部の回転角度が所定の範囲に制限された状態で前記関節部の駆動を制御して前記アーム部を駆動させる、
請求項１に記載の医療用支持アーム装置。
【請求項６】
前記関節部の異常は、前記関節部の回転角速度に基づいて検出され、
前記駆動制御部は、前記アーム部の運動に対して前記関節部の回転角速度が所定の範囲に制限された状態で前記関節部の駆動を制御して前記アーム部を駆動させる、
請求項１に記載の医療用支持アーム装置。
【請求項７】
前記関節部は、前記関節部の状態を検出する関節状態検出部を有し、
前記関節部の異常は、前記関節状態検出部によって検出される前記関節部の状態に基づいて判断される、
請求項１に記載の医療用支持アーム装置。
【請求項８】
前記関節部の状態は、前記関節部を駆動するために設けられるアクチュエータにおける、モータの回転角度、出力軸の回転角度、出力軸のトルク、モータに供給される電流及びモータの周囲の温度の少なくともいずれかを含む、
請求項７に記載の医療用支持アーム装置。
【請求項９】
前記駆動制御部は、前記関節部で検出された異常の種類に応じて、
前記アーム部の運動に所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させる異常回避動作と、
異常が検出された前記関節部以外の他の前記関節部の駆動を制御して前記アーム部の自由度を低下させた状態で前記アーム部を駆動させる一部機能停止動作と、
前記アーム部を構成する全ての前記関節部の動きが固定される機能停止動作と、
のいずれかの動作が実行されるように前記関節部の駆動を制御する、
請求項１に記載の医療用支持アーム装置。
【請求項１０】
前記駆動制御部は、検出された複数の前記関節部の状態に基づいて取得される前記アーム部の状態に基づいて前記関節部の駆動を制御する、
請求項１に記載の医療用支持アーム装置。
【請求項１１】
前記駆動制御部は、前記アーム部の状態と、前記アーム部の運動目的及び拘束条件に基づく前記アーム部の協調制御のための制御値と、に基づいて前記関節部の駆動を制御する、
請求項１０に記載の医療用支持アーム装置。
【請求項１２】
前記制御値は、前記アーム部に作用する力と前記アーム部に発生する加速度との関係を記述する操作空間において前記運動目的を達成するために作用される仮想的な力である仮想力と、前記拘束条件に基づいて前記仮想力が前記関節部を駆動するための実在の力に変換されることにより求められる実在力と、に基づいて算出される、
請求項１１に記載の医療用支持アーム装置。
【請求項１３】
前記駆動制御部は、前記制御値に対して外乱の影響を補正することにより算出される指令値、に基づいて前記関節部の駆動を制御する、
請求項１１に記載の医療用支持アーム装置。
【請求項１４】
前記指令値は、検出された前記関節部の状態に基づいて推定される前記関節部の駆動に対する外乱の影響を表す外乱推定値を用いて、前記制御値を補正することにより算出される、
請求項１３に記載の医療用支持アーム装置。
【請求項１５】
前記駆動制御部は、前記アーム部に作用する重力を補償する力、及び外部から更に与えられた力の方向への前記アーム部の移動をサポートする力を生じるように前記関節部の駆動を制御する、
請求項１１に記載の医療用支持アーム装置。
【請求項１６】
前記駆動制御部は、前記アーム部の先端に設けられる先端ユニットが空間上の所定の点を頂点とした円錐体の面上を移動するピボット動作を行うように前記関節部の駆動を制御する、
請求項１１に記載の医療用支持アーム装置。
【請求項１７】
前記ピボット動作において、前記先端ユニットと前記所定の点との距離は一定に保たれる、
請求項１６に記載の医療用支持アーム装置。
【請求項１８】
前記医療用支持アーム装置は、前記アーム部に少なくとも１つの医療用器具が設けられる、支持アーム装置である、
請求項１に記載の医療用支持アーム装置。
【請求項１９】
複数のリンクが関節部によって互いに連結されて構成されるアーム部における、少なくともいずれかの前記関節部の異常を検出することと、
前記アーム部の運動に所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させることと、
を含む、医療用支持アーム制御方法。
【請求項２０】
コンピュータのプロセッサに、
複数のリンクが関節部によって互いに連結されて構成されるアーム部における、少なくともいずれかの前記関節部の異常を検出する機能と、
前記アーム部の運動に所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させる機能と、
を実現させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、医療用支持アーム装置、医療用支持アーム制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、医療の分野においては、各種の施術（例えば、検査や手術）を行う際に、アーム部の先端に各種の医療用器具を取り付け、当該ロボットアーム装置の駆動を制御することにより、患者の術部を観察したり、患者の術部に対して各種の処置を行ったりするものが考えられている。このようなロボットアーム装置においては、例えばアーム部の先端に取り付けられた医療用器具を患者に接触させて、又は、患者の体腔内に挿入して、各種の施術を行うものがある。そのため、医療用器具によって患者が傷付けられることがないよう、安全性を考慮したロボットアーム装置の駆動制御が求められている。
【０００３】
例えば、特許文献１には、挿入ガイド用トラカールを患者の体内に刺入し、先端に処置具が取り付けられたマニピュレータを当該トラカールの内腔を通して患者の体腔内に挿入して各種の処置を行うロボット装置において、トラカールの外周壁に圧力センサを設け、当該圧力センサの検出値に応じてマニピュレータを自由に動作可能なフリー状態とマニピュレータを固定するロック状態とを切り換える技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−７９６３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では、例えばロック状態に切り換えられた場合には、マニピュレータの動きがその状態で固定されてしまうため、そのまま処置を続行することが困難であり、一旦処置を中断する必要がある。一方、ロボットアーム装置を用いて患者に対して行われる施術の中には、例えば患部の切除を伴う手術等、処置を中断することが患者に対して危険を及ぼす可能性があるものがある。このように、施術の内容によっては、異常が検出された場合であっても、マニピュレータの動きを固定することが患者にとって必ずしも安全な処理ではない恐れがある。また、異常が検出された場合のロボットアーム装置の駆動制御では、患者の安全のみならず、術者の安全も考慮される必要がある。例えば、異常が検出された際にロボットアーム装置のアーム部が意図せぬ動きをするような事態が生じれば、当該アーム部との衝突等によって術者及び患者に危害が及ぶ恐れがある。
【０００６】
上記事情に鑑みれば、ロボットアーム装置においては、より安全にその駆動を制御することが求められていた。そこで、本開示では、安全性をより向上させることが可能な、新規かつ改良された医療用支持アーム装置、医療用支持アーム制御方法及びプログラムを提案する。
【課題を解決するための手段】
【０００７】
本開示によれば、複数のリンクが関節部によって互いに連結されて構成されるアーム部と、前記関節部の駆動を制御することにより前記アーム部を駆動させる駆動制御部と、を備え、前記駆動制御部は、前記関節部の少なくともいずれかに異常が検出された場合に、前記アーム部の運動に対して所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させる、医療用支持アーム装置が提供される。
【０００８】
また、本開示によれば、複数のリンクが関節部によって互いに連結されて構成されるアーム部における、少なくともいずれかの前記関節部の異常を検出することと、前記アーム部の運動に所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させることと、を含む、医療用支持アーム制御方法が提供される。
【０００９】
また、本開示によれば、コンピュータのプロセッサに、複数のリンクが関節部によって互いに連結されて構成されるアーム部における、少なくともいずれかの前記関節部の異常を検出する機能と、前記アーム部の運動に所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させる機能と、を実現させる、プログラムが提供される。
【００１０】
本開示によれば、アーム部を構成する関節部のいずれかに異常が検出された場合に、当該異常を回避するような制限が設けられた上で、関節部の駆動が制御され、アーム部が駆動される。従って、関節部に異常が生じた場合であっても、当該異常を回避するようにアーム部が駆動されるため、例えばアーム部の意図せぬ動きによって術者及び患者に対して危害が及ぶような事態が回避される。
【発明の効果】
【００１１】
以上説明したように本開示によれば、安全性をより向上させることが可能となる。なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１２】
【図１】本開示の一実施形態に係るロボットアーム制御システムの概略構成を示す機能ブロック図である。
【図２】本実施形態に係るロボットアーム制御システムのハードウェア構成を示すブロック図である。
【図３】トルク指令値に基づくアクチュエータの駆動について説明するための説明図である。
【図４】角速度指令値に基づくアクチュエータの駆動について説明するための説明図である。
【図５】角度指令値に基づくアクチュエータの駆動について説明するための説明図である。
【図６】アクチュエータに搭載されるセンサの一構成例を示すブロック図である。
【図７】本実施形態に係るロボットアーム制御方法の処理手順の一例を示すフロー図である。
【図８】角速度に基づく異常検出処理における処理手順の一例を示すフロー図である。
【図９】関節部におけるトルクに基づく異常回避動作について説明するための説明図である。
【図１０】関節部におけるトルクに基づく異常回避動作について説明するための説明図である。
【図１１】本開示の一実施形態に係るロボットアーム装置が医療用に用いられる場合の一適用例について説明するための説明図である。
【図１２】本開示の一実施形態に係るロボットアーム装置の外観を示す概略図である。
【図１３】本開示の一実施形態に係る関節部のアクチュエータを、回転軸を通る断面で切断した様子を模式的に示す断面図である。
【図１４Ａ】図１３に示すトルクセンサを、駆動軸の軸方向から見た様子を模式的に示す概略図である。
【図１４Ｂ】図１３に示すアクチュエータに適用されるトルクセンサの他の構成例を示す概略図である。
【図１５】本開示の一実施形態に係る理想関節制御について説明するための説明図である。
【図１６】本開示の一実施形態に係るロボットアーム制御システムの一構成例を示す機能ブロック図である。
【図１７】本開示の一実施形態に係るアーム動作の一具体例であるピボット動作について説明するための説明図である。
【図１８】図１７に示すピボット動作を実現するための運動目的及び拘束条件について説明するための説明図である。
【図１９】本開示の一実施形態に係るロボットアーム装置における冗長自由度を有する変形例の外観を示す概略図である。
【図２０】本開示の一実施形態に係るロボットアーム制御方法の処理手順を示すフロー図である。
【図２１】本開示の一実施形態に係るロボットアーム装置及び制御装置のハードウェア構成の一構成例を示す機能ブロック図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１４】
なお、説明は以下の順序で行うものとする。
１．ロボットアーム装置の安全性についての検討
２．ロボットアーム制御システムの機能構成
３．ロボットアーム制御システムのハードウェア構成
４．動作判断方法の処理手順
５．各処理の詳細について
５−１．異常検出処理
５−２．異常回避動作
５−３．一部機能停止動作
５−４．機能停止動作
６．全身協調制御について
６−１．医療用ロボットアーム装置についての検討
６−２．本開示の一実施形態
６−２−１．ロボットアーム装置の外観
６−２−２．一般化逆動力学について
６−２−２−１．仮想力算出処理
６−２−２−２．実在力算出処理
６−２−３．理想関節制御について
６−２−４．ロボットアーム制御システムの構成
６−２−５．運動目的の具体例
６−３．ロボットアーム制御方法の処理手順
６−４．全身協調制御に係るロボットアーム装置のまとめ
７．ハードウェア構成
８．補足
【００１５】
本明細書では、まず、＜１．ロボットアーム装置の安全性についての検討＞において、本開示をより明確なものとするために、安全性の観点からロボットアーム装置に求められる性能について検討するとともに、本発明者らが本開示に想到するに至った背景について説明する。次に、＜２．ロボットアーム制御システムの機能構成＞、＜３．ロボットアーム制御システムのハードウェア構成＞、＜４．ロボットアーム制御方法の処理手順＞及び＜５．各処理の詳細について＞において、上述した安全性の観点から本発明者らが想到した、好適な一実施形態に係るロボットアーム装置の制御システムの構成及びロボットアーム装置の制御方法について説明する。
【００１６】
ここで、本実施形態では、＜２．ロボットアーム制御システムの機能構成＞から＜５．各処理の詳細について＞で説明するロボットアーム装置の制御方式として、全身協調制御と呼ばれる制御方式が適用され得る。本実施形態に係る全身協調制御では、アーム部が所定の運動目的を実現するような各関節部の制御量が算出され、当該制御量に基づいて各関節部が協調して駆動されることにより、アーム部の駆動が制御される。また、各関節部の制御量が算出される際に、アーム部の運動（例えば、位置や速度、力）を制限する所定の拘束条件が設けられてもよい。＜６．全身協調制御について＞では、医療用ロボットアーム装置を例に挙げて、このような全身協調制御を実現するための制御システムの構成や、制御方法について説明する。なお、本実施形態では、全身協調制御を用いることにより、上述した安全性以外にも、医療用ロボットアーム装置に求められる多様な性能を満たすことが可能となる。そこで、＜６．全身協調制御について＞では、上述した安全性の観点だけでなく、ロボットアーム装置の全身協調制御についてより広い見地から説明を行う。
【００１７】
なお、以下の説明では、本開示の好適な一実施形態として、主に医療用途に用いられるロボットアーム装置を例に挙げて説明を行う。ただし、本実施形態はかかる例に限定されず、例えば工業用等、他の分野に対しても適用可能である。
【００１８】
＜１．ロボットアーム装置の安全性についての検討＞
まず、本開示の好適な一実施形態について説明するに先立ち、医療用ロボットアーム装置を例に挙げ、安全性の観点からロボットアーム装置に求められる性能について説明する。
【００１９】
ロボットアーム装置が医療用途に用いられる場合には、そのアーム部の先端に撮像装置や処置具等の各種の医療用器具が取り付けられ、当該撮像装置によって患者の術部を観察したり、当該処置具によって術部に対して各種の処置を行ったりする使用方法が想定される。この場合、患者と、ロボットアーム装置を操作して各種の施術を行う術者と、双方の安全性が確保される必要がある。ここで、術者にとっての安全とは、ロボットアーム装置の駆動によって、術者自身が怪我や火傷等の傷害を受けないことであると考えられる。一方、患者にとっての安全には、ロボットアーム装置の駆動によって怪我や火傷等の傷害を受けないことに加えて、ロボットアーム装置の機能停止等により施術が中断され、施術時間が増加する等、患者に対する負担を増大させないことも含まれ得る。ここで、機能停止とは、ロボットアーム装置のアーム部に対して通常時の制御が行われておらず、アーム部が通常時とは異なる駆動をしている状態を意味する。
【００２０】
危険が生じ得る状況としては、まず、例えば術者の誤操作やハードウェア又はソフトウェアの何らかの不具合等に起因して、アーム部が術者の意図せぬ動きをした場合が考えられる。例えば、術者がアーム部を操作して医療用器具を患者に近付ける際に、何らかの原因により、過大な速度及び力で、医療用器具が患者に接近してしまい、医療用器具によって患者が傷付けられる状況が考えられる。また、アーム部が術者の意図せぬ動きをした場合には、アーム部と衝突する等、術者自身が危険にさらされる可能性もある。術者及び患者に対する安全性の観点から、このような誤操作に起因する又は何らかの不具合による意図せぬアーム部の動きを異常と判断し、当該異常を回避する動作（異常回避動作）を行うように、アーム部の駆動を制御することが求められる。
【００２１】
また、危険が生じ得る他の状況としては、故障によりアーム部の一部が正常に動作しない状況が考えられる。例えば上記特許文献１に記載されているように、一般的なロボットアーム装置では、アーム部のいずれかの部位で異常を検出した場合、その状態から移動しないようにアーム部の位置及び姿勢が固定され、アーム部全体がいわば静止状態にされる。しかしながら、ロボットアーム装置が静止状態となってしまうと、施術を中断せざるを得ず、施術時間の増加を招きかねない。従って、例えばアーム部に故障が生じた場合に、故障が生じている関節部を特定するとともに、故障している関節部の動きを固定し、それ以外の関節部によってアーム部の駆動を維持するような動作（一部機能停止動作）を行うように、アーム部の駆動を制御することが求められる。
【００２２】
また、停電等の非常事態が発生した場合や、アーム部に深刻な故障が生じた場合には、一部機能停止動作では対応できず、アーム部の機能を完全に停止させなくてはいけない状況が生じ得る。この場合、例えば停止したアーム部が術者及び患者に危害を加えないように、より安全にアーム部の機能が停止されることが望ましい。また、患者の負荷を軽減する観点からは、アーム部の機能を停止しつつも、例えば術者による手作業による施術に円滑に移行できるような機構が設けられることが好ましい。例えば、機能停止と同時にアーム部が意図せぬ動きをしたり、停止したアーム部がその後の作業の妨げになったりすることを防ぐ必要がある。このように、アーム部の機能を停止する動作（機能停止動作）をより安全に行うように、アーム部の駆動を制御することが求められる。
【００２３】
また、上述した異常回避動作、一部機能停止動作及び機能停止動作の選択は、施術がそのまま継続されることを優先して、可能な限りロボットアーム装置の機能が維持されるように行われることが望ましい。例えば、アーム部において異常が検出された場合に、当該異常に対して取り得る措置として、機能停止動作及び一部機能停止動作の双方が選択可能であるならば一部機能停止動作が選択されることが好ましい。同様に、検出された異常に対して一部機能停止動作及び異常回避動作の双方が選択可能であるならば、異常回避動作が選択されることが好ましい。これにより、可能な限り施術が継続されるようにロボットアーム装置の駆動が制御されることとなる。このような動作の選択を行うためには、アーム部において異常が検出された際に、異常が生じている部位や、異常の種類を的確に検出し、どの動作に移行すべきかを適切に判断することが求められる。医療用ロボットアーム装置には、このような的確な異常検出機能も求められることとなる。
【００２４】
以上説明したように、安全性の観点からロボットアーム装置には、以下の性能が求められる。すなわち、異常回避動作を実行可能であること、一部機能停止動作を実行可能であること、機能停止動作を安全に実行可能であること、及び、これらの動作への移行を判断するための異常検出処理を的確に実行可能であることである。
【００２５】
本発明者らは、これらの性能を満たす技術について鋭意検討した結果、以下に示す本開示の好適な一実施形態に想到した。以下、本開示の好適な一実施形態について詳細に説明する。
【００２６】
＜２．ロボットアーム制御システムの機能構成＞
図１を参照して、本開示の一実施形態に係るロボットアーム制御システムの機能構成について説明する。図１は、本開示の一実施形態に係るロボットアーム制御システムの概略構成を示す機能ブロック図である。
【００２７】
図１を参照すると、本実施形態に係るロボットアーム制御システム２は、ロボットアーム装置１０及び制御装置２０を備える。本実施形態では、制御装置２０によってロボットアーム装置１０を全身協調制御によって駆動するための各種の演算が行われ、当該演算結果に基づいてロボットアーム装置１０のアーム部１２０の駆動が制御される。また、ロボットアーム装置１０のアーム部１２０には後述する先端ユニット１４５が設けられており、アーム部１２０の駆動が制御されることにより、当該先端ユニット１４５によって患者に対して各種の施術が行われる。以下、ロボットアーム装置１０及び制御装置２０の構成について詳細に説明する。
【００２８】
ロボットアーム装置１０は、複数のリンクが複数の関節部によって連結されて構成される多リンク構造体であるアーム部を有する。ロボットアーム装置１０は、当該アーム部を可動範囲内で駆動させることにより、当該アーム部の先端に設けられ先端ユニット１４５の位置及び姿勢の制御を行う。
【００２９】
図１を参照すると、ロボットアーム装置１０はアーム部１２０を有する。また、アーム部１２０は、関節部１３０及び先端ユニット１４５を有する。
【００３０】
アーム部１２０は、複数の関節部１３０と複数のリンクから構成される多リンク構造体であり、各関節部１３０の駆動が制御されることによりその駆動が制御される。なお、アーム部１２０が有する複数の関節部１３０の機能及び構成は互いに同様であるため、図１では、それら複数の関節部１３０を代表して１つの関節部１３０の構成を図示している。
【００３１】
関節部１３０は、アーム部１２０においてリンク間を互いに回動可能に連結するとともに、後述する関節制御部１３５からの制御によりその回転駆動が制御される。関節部１３０は、関節駆動部１３１、関節状態検出部１３２及び関節制御部１３５を有する。また、簡単のため図示は省略するが、関節部１３０は、外部の機器との間で各種の情報を互いに送受信する通信部を更に備えてもよい。制御装置２０にも同様に通信部（図示せず。）が設けられており、関節部１３０は、制御装置２０及び他の関節部１３０との間で、当該通信部を介して各種の情報を相互に送受信することができる。
【００３２】
関節駆動部１３１は、関節部１３０のアクチュエータを構成するモータ等の駆動機構である。関節駆動部１３１が駆動することにより関節部１３０が回転駆動する。関節駆動部１３１は、後述する関節制御部１３５の駆動制御部１１１によってその駆動が制御される。例えば、駆動制御部１１１からの指令に応じた電流量によって、関節駆動部１３１を構成するモータが駆動されることとなる。
【００３３】
関節状態検出部１３２は、関節部１３０の状態を検出する。ここで、関節部１３０の状態とは、関節部１３０の駆動状態を意味していてよい。例えば、関節部１３０の状態には、関節部１３０の回転角度、回転角速度、回転角加速度、発生トルク、外トルク等の情報が含まれる。また、関節部１３０の状態には、関節部１３０が駆動する際における各種の情報、例えば、アクチュエータのモータに供給される電流量及びモータの周囲の温度等の情報や、関節部１３０が他の関節部１３０や制御装置２０と互いに通信するための通信部における通信状態等の情報が更に含まれてよい。本実施形態においては、関節状態検出部１３２は、例えば角度センサ（エンコーダ）、トルクセンサ、電流センサ及び／又は温度センサ等の各種のセンサによって構成されており、関節部１３０の回転角度、発生トルク及び外トルク、電流量、温度等を検出することができる。
【００３４】
関節状態検出部１３２は、検出した関節部１３０の状態を制御装置２０に送信する。制御装置２０では、これら関節部１３０の状態を示す情報に基づいて、関節部１３０の異常が検出される。また、制御装置２０では、関節部１３０の状態を示す情報に基づいて、アーム部１２０の状態（アーム状態）が取得され、アーム部１２０が所定の運動目的を達成するような各関節部１３０の制御量が算出される。例えば、関節部１３０の状態を示す情報の中でも、アクチュエータのモータに供給される電流量、モータの周囲の温度、入力軸（モータ）及び出力軸の回転角度、発生トルク、外トルク、通信部の通信状態等についての情報は、主に異常検出に用いられてよい。また、例えば、関節部１３０の状態を示す情報の中でも、関節部１３０の回転角度、回転角速度、回転角加速度、発生トルク及び外トルク等の主に関節部１３０の運動を表す情報は、主に制御量の演算に用いられてよい。なお、制御量の演算については、下記＜６．全身協調制御＞で改めて詳しく説明するため、ここではその詳細な説明は省略する。
【００３５】
関節制御部１３５は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の各種のプロセッサによって構成され、関節部１３０の動作を制御する。関節制御部１３５を構成するプロセッサが所定のプログラムに従って動作することにより、関節制御部１３５の各機能が実現される。本実施形態では、関節制御部１３５は、その機能として、駆動制御部１１１を有する。なお、関節制御部１３５は、例えば、関節部１３０に設けられる通信部の動作を制御し、当該通信部に所定の情報を送受信させる通信制御部等、関節部１３０に設けられる構成の動作を制御するための他の機能を更に有してもよい。
【００３６】
駆動制御部１１１は、関節部１３０の駆動を制御することにより、アーム部１２０の駆動を制御する。より具体的には、駆動制御部１１１は、関節部１３０の関節駆動部１３１に対して供給される電流量を制御することにより、関節駆動部１３１を構成するモータの回転数を制御し、関節部１３０における回転角度及び発生トルクを制御する。また、例えば関節部１３０に、その回転を妨げるブレーキ機構が設けられている場合には、駆動制御部１１１は、当該ブレーキ機構を駆動させ、関節部１３０の回転駆動を停止させてもよい。ここで、上述したように、駆動制御部１１１による関節部１３０の駆動制御は、制御装置２０における演算結果に基づいて行われ得る。
【００３７】
また、下記（５−４．機能停止動作）で説明するが、機能停止動作が実行される場合には、制御装置２０と関節部１３０との通信が遮断される等、制御装置２０における演算結果が関節部１３０に送信されない状況も考えられる。制御装置２０との通信が遮断されることにより、全身協調制御が実行できなくなり、いわゆる力制御は行われなくなるが、機能停止動作では、例えば各関節部１３０の動きを固定するような制御が実行される必要がある。従って、本実施形態では、駆動制御部１１１によって、いわゆる位置制御によって関節部１３０ごとにその駆動が独自に制御されてよい。これにより、制御装置２０との通信が遮断された場合であっても、例えば関節部１３０の回転角度を所定の値で固定する等の駆動制御が各関節部１３０において行われることとなり、機能停止動作が実現され得る。
【００３８】
先端ユニット１４５は、アーム部１２０の先端に設けられ、アーム部１２０の駆動制御に伴って、その位置及び姿勢が制御される。本実施形態では、先端ユニット１４５は各種の医療用器具であり、例えば撮像装置や処置具等である。先端ユニット１４５がカメラや顕微鏡、内視鏡等の撮像装置である場合には、アーム部１２０を駆動させて当該撮像装置の位置及び姿勢を調整しながら患者の術部を撮影する使用方法が考えられる。例えば、撮像装置によって撮影された患者の術部の画像が表示装置の表示画面に表示され、術者は、当該表示装置の表示画面を参照しながら、術部の様子を観察したり、術部に対して各種の処置を行ったりすることができる。また、先端ユニット１４５がメスや鉗子等の処置具である場合には、アーム部１２０を駆動させて当該処置具によって患者の術部に対して所定の処置を行う使用方法が考えられる。これらの例に限定されず、先端ユニット１４５としては公知の各種の医療用器具が適用されてよい。
【００３９】
なお、図１では、先端ユニット１４５が複数の関節部１３０及び複数のリンクを介して最終段のリンクの先端に設けられる様子を、関節部１３０と先端ユニット１４５との間にリンクを模式的に図示することにより表現している。また、図１に示す例では便宜的に先端ユニット１４５と称しているが、本実施形態では、先端ユニット１４５が設けられる部位はアーム部１２０の先端に限定されない。本実施形態では、先端ユニット１４５は、アーム部１２０の駆動に伴ってその位置及び姿勢が制御され、患者に対して各種の施術を実行可能なように構成されればよく、そのアーム部１２０への取り付け部位は任意であってよい。
【００４０】
以上、ロボットアーム装置１０の機能及び構成について説明した。次に、制御装置２０の機能及び構成について説明する。図１を参照すると、制御装置２０は、記憶部２２０及び制御部２３０を有する。
【００４１】
制御部２３０は、例えばＣＰＵ等の各種のプロセッサによって構成され、制御装置２０の動作を統合的に制御するとともに、ロボットアーム装置１０におけるアーム部１２０の駆動を制御するための各種の演算を行う。制御部２３０を構成するプロセッサが所定のプログラムに従って動作することにより、制御部２３０の各機能が実現される。本実施形態では、制御部２３０は、ロボットアーム装置１０のアーム部１２０の駆動を制御するために、全身協調制御及び理想関節制御における各種の演算を行う。また、制御部２３０は、検出された関節部１３０の状態に基づいて、当該関節部１３０での異常を検出する機能を更に有する。
【００４２】
制御部２３０の機能構成について詳しく説明する。制御部２３０は、全身協調制御部２４０、理想関節制御部２５０、異常検出部２６０及び演算条件設定部２４２を有する。
【００４３】
異常検出部２６０は、関節部１３０の異常を検出するための各種の情報に基づいて、関節部１３０に生じた異常を検出する。ここで、関節部１３０の異常を検出するための情報には、例えば、関節状態検出部１３２によって検出された関節部１３０の状態についての情報や、後述するような関節部１３０の駆動制御についての情報、関節部１３０に送信される指令値についての情報、関節部１３０の通信状態についての情報等が含まれてよい。例えば、異常検出部２６０は、その機能として、アクチュエータ異常検出部２６１、駆動制御異常検出部２６２、指令値異常検出部２６３及び通信異常検出部２６４を有する。
【００４４】
アクチュエータ異常検出部２６１は、関節部１３０を駆動するために設けられるアクチュエータにおける異常を検出する。例えば、アクチュエータ異常検出部２６１は、関節部１３０の状態を示す情報に含まれる、アクチュエータのモータに供給される電流量、モータの周囲の温度、入力軸（モータ）及び出力軸の回転角度、発生トルク、外トルク等の情報に基づいて、アクチュエータにおける異常を検出することができる。
【００４５】
駆動制御異常検出部２６２は、駆動制御部１１１から送信される関節部１３０の駆動制御についての情報に基づいて、関節部１３０の異常を検出する。例えば、駆動制御異常検出部２６２は、駆動制御部１１１によってブレーキ機構が駆動されているにもかかわらず関節部１３０が駆動していたり、逆に、ブレーキ機構が駆動されていないにもかかわらず関節部１３０が駆動していなかったりした場合に、関節部１３０の異常を検出することができる。
【００４６】
指令値異常検出部２６３は、制御装置２０から関節部１３０に送信される指令値に基づいて、関節部１３０の異常を検出する。ここで、指令値とは、理想関節制御部２５０によって算出される値であり、制御装置２０から関節部１３０の駆動制御部１１１に送信される、最終的に関節部１３０の駆動を制御するための制御量である。例えば、指令値異常検出部２６３は、駆動制御部１１１に送信された指令値と、当該指令値に基づいて駆動された関節部１３０の駆動とが乖離している場合に、関節部１３０の異常を検出することができる。
【００４７】
通信異常検出部２６４は、関節部１３０と制御装置２０との間の通信状態に基づいて、関節部１３０の異常を検出する。例えば、関節部１３０の通信部及び／又は制御装置２０の通信部が正常に動作しておらず、両者の間での通信が遮断されている場合には、関節部１３０から制御装置２０に対して制御量の演算に必要な情報（例えば関節部１３０の状態を表す情報）が送信されなかったり、制御装置２０によって算出された制御量についての情報を関節部１３０が受信できなかったりする可能性がある。従って、通信異常検出部２６４は、例えば、通信部が正常に動作しておらず、制御装置２０によって算出された制御量を受信することができない関節部１３０を、異常が発生している関節部１３０として検出することができる。
【００４８】
ここで、上述したような関節部１３０の異常を検出するための各種の情報（関節状態検出部１３２によって取得される関節部１３０の状態についての情報や、関節部１３０の駆動制御についての情報、制御装置２０から関節部１３０に送信される指令値についての情報及び／又は関節部１３０と制御装置２０との間の通信状態についての情報等）は、関節部１３０ごとに取得され得る情報である。従って、異常検出部２６０は、関節部１３０ごとに異常の有無を検出することができる。また、異常検出部２６０は、いずれの情報に基づいて異常を検出したかに応じて、関節部１３０のどの構成部材において異常が生じているかや、当該異常の種類も、併せて検出してもよい。
【００４９】
異常検出部２６０は、検出した異常についての情報を、演算条件設定部２４２に送信する。なお、異常検出部２６０によって行われる異常検出処理については、下記（５−１．異常検出処理）で改めて詳しく説明する。
【００５０】
なお、図１に示す例では、説明のため便宜的に、異常検出部２６０の機能を、アクチュエータ異常検出部２６１、駆動制御異常検出部２６２、指令値異常検出部２６３及び通信異常検出部２６４に分割して図示している。しかしながら、本実施形態では、異常検出部２６０によって、関節状態検出部１３２によって取得される関節部１３０の状態についての情報や、関節部１３０の駆動制御についての情報、制御装置２０から関節部１３０に送信される指令値についての情報及び／又は関節部１３０と制御装置２０との間の通信状態についての情報等が総合的に考慮され、関節部１３０における異常が検出されてよい。
【００５１】
演算条件設定部２４２は、全身協調制御部２４０及び理想関節制御部２５０によって行われる制御量の演算における演算条件を設定する。本実施形態では、演算条件設定部２４２は、異常検出部２６０によって検出された関節部１３０の異常の種類に応じて演算条件を設定する。具体的には、演算条件設定部２４２は、検出された関節部１３０の異常の種類に応じてアーム部１２０に行わせる動作を判断し、当該動作に対応する演算条件を設定することができる。ここで、アーム部１２０に行わせる動作とは、上述した異常回避動作、一部機能停止動作及び機能停止動作のいずれかであってよい。
【００５２】
例えば、記憶部２２０に、異常の種類と、当該異常が生じた場合に実行可能な動作と、当該動作を実行するための演算条件と、が関連付けられたテーブルが記憶されており、演算条件設定部２４２は、異常検出部２６０による異常の検出結果と当該テーブルとに基づいて、アーム部１２０に行わせる動作を判断するとともに、当該動作に応じた演算条件を設定することができる。当該テーブルでは、異常が発生した場合であっても、できるだけアーム部１２０の駆動制御が継続されるように、異常の種類と動作とが関連付けられていてよい。このようなテーブルに基づいてアーム部１２０に行わせる動作が判断されることにより、ロボットアーム装置１０を用いた施術が可能な限り継続されるように、アーム部１２０の駆動が制御されることとなる。
【００５３】
なお、例えばアーム部１２０の全体構成や制御量の演算に用いられる制御モデル（内部モデル）等の条件が異なれば、同一の異常が発生した場合であっても、異なる動作を実行可能となることが考えられる。従って、上記テーブルにおいては、これらの条件を加味した上で異常の種類と動作との関連付けが行われてよい。当該テーブルの具体的な構成は、ロボットアーム装置１０の設計者等によって適宜設定されてよい。
【００５４】
具体的には、演算条件設定部２４２によって設定される演算条件には、運動目的及び拘束条件が含まれてよい。運動目的とは、アーム部１２０の運動に関する各種の情報であり、例えば、先端ユニット１４５及びアーム部１２０の位置及び姿勢（座標）、速度、加速度並びに力等の目標値である。また、拘束条件とは、アーム部１２０の運動を制限（拘束）する各種の情報であり、例えば、アーム部１２０の各構成部材が移動不可能な領域の座標や、移動不可能な速度、加速度の値、発生不可能な力の値等であってよい。また、アーム部１２０に行わせる動作に応じて複数の内部モデルが用意されている場合には、演算条件設定部２４２は、異常検出部２６０によって検出された異常の種類に応じて判断された動作に対応する内部モデルを演算条件として設定してもよい。演算条件設定部２４２は、設定した演算条件についての情報を、全身協調制御部２４０に提供する。
【００５５】
全身協調制御部２４０は、一般化逆動力学を用いた全身協調制御に関する各種の演算を行う。また、理想関節制御部２５０は、理論モデルに基づいた理想的な応答を実現する理想関節制御に関する各種の演算を行う。これらの演算結果に基づいてロボットアーム装置１０の駆動が制御されることにより、ロボットアーム装置１０が力制御によって駆動されることとなる。本実施形態では、全身協調制御部２４０及び理想関節制御部２５０が、演算条件設定部２４２によって設定された演算条件に基づいて各種の演算を行うことにより、異常検出部２６０によって検出された異常の種類に応じて判断された動作をアーム部１２０が行うような、各関節部１３０の制御量が算出されることとなる。なお、全身協調制御部２４０及び理想関節制御部２５０が行う処理については、下記＜６．全身協調制御について＞で改めて詳しく説明することとし、ここでは概要のみを簡単に説明する。
【００５６】
全身協調制御部２４０は、関節状態検出部１３２によって検出された関節部１３０の状態に基づいて、演算条件設定部２４２によって設定された演算条件の下で、関節部１３０を駆動するための制御量を演算する。具体的には、全身協調制御部２４０は、関節状態検出部１３２によって検出された関節部１３０の状態に基づいて、アーム部１２０の状態（アーム状態）を取得することができる。アーム状態は、アーム部１２０の幾何学的パラメータ及び力学的パラメータを表すものであり、ロボットアーム装置１０の内部モデルとして表現され得る。そして、全身協調制御部２４０は、当該アーム状態に基づいて、演算条件設定部２４２によって設定された運動目的を達成するようにアーム部１２０を駆動するための制御値（例えば各関節部１３０の駆動パラメータ（例えば関節部１３０の発生トルク値））を、演算条件設定部２４２によって設定された拘束条件を考慮して算出することができる。
【００５７】
理想関節制御部２５０は、全身協調制御部２４０により算出された制御値に対して外乱の影響を考慮した補正を行うことにより、最終的にアーム部１２０を駆動するために用いられる指令値を算出する。例えば、当該指令値は、外乱の影響が考慮された関節部１３０の発生トルク値であってよい。理想関節制御部２５０は、算出した指令値についての情報を、ロボットアーム装置１０に送信する。当該指令値に基づいて、駆動制御部１１１が各関節部１３０を駆動させることにより、演算条件設定部２４２によって設定された拘束条件及び運動目的に従って、すなわち、異常検出部２６０によって検出された異常の種類に応じて判断された動作を行うように、アーム部１２０が駆動されることとなる。
【００５８】
記憶部２２０は、制御装置２０によって処理される各種の情報を記憶する。本実施形態においては、記憶部２２０は、制御部２３０によって行われる全身協調制御及び理想関節制御に関する演算において用いられる各種の情報及び当該演算の結果についての情報を記憶することができる。例えば、記憶部２２０は、全身協調制御部２４０による全身協調制御に関する演算において用いられる運動目的、拘束条件及び内部モデルを記憶していてもよい。また、例えば、記憶部２２０には、関節部１３０において検出され得る異常の種類と、当該異常が生じた場合に実行可能な動作と、当該動作を実行するための演算条件と、が関連付けられたテーブルが記憶されていてもよい。記憶部２２０には、制御部２３０によって行われる各種の処理に関するあらゆるパラメータが格納されていてよく、制御部２３０は、記憶部２２０と相互に情報を送受信しながら各種の処理を行うことができる。
【００５９】
以上、図１を参照して、本実施形態に係るロボットアーム制御システム２の構成について説明した。以上説明したように、本実施形態では、異常検出部２６０によって関節部１３０ごとに異常の発生が検出される。従って、アーム部１２０のうちで異常が発生した部位が的確に検出され得る。また、本実施形態では、演算条件設定部２４２によって、異常検出部２６０によって検出された異常の種類に応じたアーム部１２０の動作が判断され、当該動作に対応する演算条件が設定される。そして、全身協調制御部２４０及び理想関節制御部２５０によって、当該演算条件に基づいて、アーム部１２０を駆動するための各関節部１３０の制御量が演算されることにより、異常の種類に応じた動作を行うようにアーム部１２０の駆動が制御される。従って、異常の種類に応じて、できるだけロボットアーム装置１０を用いた施術が継続されるように、アーム部１２０の駆動が制御されることとなる。よって、患者及び術者の安全性を向上させることができる。
【００６０】
なお、図１に示す例では、異常検出部２６０が制御装置２０に設けられ、関節部の異常を検出する処理が制御装置２０において行われていたが、本実施形態はかかる例に限定されない。例えば、各関節部１３０の関節制御部１３５が、異常検出部２６０と同様の機能を有し、関節部１３０の異常の検出が関節部１３０自身によって行われてもよい。
【００６１】
また、ロボットアーム制御システム２の構成は、図１に示す例に限定されない。例えば、図１に示す関節制御部１３５及び制御部２３０において行われる各処理は、ロボットアーム装置１０及び制御装置２０のいずれにおいて行われてもよいし、ロボットアーム装置１０及び制御装置２０と通信可能に接続された図示しない他の情報処理装置によって行われてもよい。本実施形態では、図１に示す各機能が実行可能なようにロボットアーム制御システム２が構成されればよく、その具体的な装置構成は任意であってよい。
【００６２】
また、以上説明した、本実施形態に係るロボットアーム制御システム２の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【００６３】
また、上述のような本実施形態に係るロボットアーム制御システム２の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【００６４】
＜３．ロボットアーム制御システムのハードウェア構成＞
次に、図２を参照して、本実施形態に係るロボットアーム制御システムのハードウェア構成について説明する。図２は、本実施形態に係るロボットアーム制御システムのハードウェア構成を示すブロック図である。なお、図２に示すブロック図は、図１に示す機能ブロック図に対応するものであり、図１に示す各機能ブロックを構成するハードウェアを図示したものに対応する。また、図２では、簡単のため、図１に示す構成の中でも、本実施形態に係る異常検出に関係する構成について主に図示し、その他の構成については図示を省略している。
【００６５】
また、図２を参照すると、ロボットアーム装置のアーム部１２０の複数の関節部１３０に対応する構成が図示されている。実際には、各関節部１３０によってリンク同士が連結されることにより、多リンク構造体が構成されるが、図２ではリンクについては図示を省略している。また、図２では、一例として、関節部１３０を３つ図示しているが、関節部１３０の数はかかる例に限定されず、アーム部１２０の構成に応じて異なる数の関節部１３０が存在してよい。
【００６６】
（制御装置）
図２を参照すると、制御装置２０が有する構成として、通信ユニット２７０及び制御用ＣＰＵ２８０が図示されている。通信ユニット２７０は、ロボットアーム装置の各関節部１３０（より詳細には後述する関節部１３０の通信ユニット１５０）との間で各種の情報を相互に送受信する通信インターフェースである。本実施形態では、通信ユニット２７０によって、各関節部１３０から送信される、関節部１３０の異常を検出するための各種の情報が受信される。また、通信ユニット２７０によって、制御用ＣＰＵ２８０によって演算されたアーム部１２０の各関節部１３０の制御量についての情報が、各関節部１３０に送信される。
【００６７】
制御用ＣＰＵ２８０は、図１に示す制御部２３０に対応する。制御用ＣＰＵ２８０では、各関節部１３０から送信される、関節部１３０の異常を検出するための各種の情報に基づいて、関節部１３０の異常が検出される。また、検出された異常の種類が判断され、当該異常の種類に応じたアーム部１２０の動作が判断される。更に、判断されたアーム部１２０の動作に応じた演算条件が設定され、当該演算条件に基づいて、当該アーム部１２０の動作を実現するような各関節部１３０の制御量が演算される。
【００６８】
（関節部）
各関節部１３０は、通信ユニット１５０、関節制御用ＣＰＵ１６０、モータドライバユニット１７０及びアクチュエータ１８０を有する。通信ユニット１５０は、他の関節部１３０の通信ユニット１５０及び制御装置２０の通信ユニット２７０との間で各種の情報を相互に送受信する通信インターフェースである。本実施形態では、通信ユニット１５０によって、関節部１３０の異常を検出するための各種の情報が、各関節部１３０から制御装置２０に送信される。また、通信ユニット１５０によって、制御用ＣＰＵ２８０によって演算されたアーム部１２０の各関節部１３０の制御量についての情報が受信される。
【００６９】
関節制御用ＣＰＵ１６０は、図１に示す関節制御部１３５に対応する。例えば、関節制御用ＣＰＵ１６０からモータドライバユニット１７０に対して、アクチュエータ１８０のモータを駆動するための制御量（例えば電流量）が伝達される（これは、例えば、上述した図１に示す駆動制御部１１１の機能に対応する）。このような、関節制御用ＣＰＵ１６０における、アクチュエータ１８０の駆動を制御するための構成については、図３−図５を参照して詳しく後述する。
【００７０】
また、アクチュエータ１８０から関節制御用ＣＰＵ１６０に対して、アクチュエータ１８０に搭載される各センサによる検出値（例えば、電流量、温度、回転角度等）についての情報、すなわち、関節部１３０の状態を示す情報が送信される。関節部１３０の状態を示す情報は、通信ユニット１５０を介して制御装置２０に送信される。また、図３−図５を参照して後述するように、関節制御用ＣＰＵ１６０では、制御装置２０から送信される制御量に加えて、アクチュエータ１８０の各センサによる検出値に更に基づいてアクチュエータ１８０の駆動制御が行われ得る。なお、図２では、アクチュエータ１８０の各センサによる検出値についての情報が関節制御用ＣＰＵ１６０を介して、通信ユニット１５０から制御装置２０に送信されるように図示されているが、これらの検出値についての情報は、通信ユニット１５０を介して直接制御装置２０に送信されてもよい。また、アクチュエータ１８０に搭載される各センサの構成については、図６を参照して詳しく後述する。
【００７１】
モータドライバユニット１７０は、アクチュエータ１８０のモータに電流を供給することにより当該モータを回転駆動させるドライバ回路（ドライバＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ））であり、モータに供給する電流量を調整することにより、モータの回転数を制御することができる。モータドライバユニット１７０は、関節制御用ＣＰＵ１６０から送信される制御量に応じて、アクチュエータ１８０のモータを駆動する。なお、モータドライバユニット１７０としては、一般的なモータ駆動用のドライバＩＣと同様のものが用いられてよいため、ここでは詳細な説明は省略する。
【００７２】
アクチュエータ１８０は、関節制御用ＣＰＵ１６０によって所定の制御量に従って駆動されることにより、関節部１３０を所定の角度及び速度で駆動させる。アクチュエータ１８０は、例えば後述する図１３に示す構成を有することができる。例えば、アクチュエータ１８０は、モータ及び減速機によって構成され、所定の制御量に従って駆動されたモータの回転速度が、所定の減速比を有する減速機によって減速されることにより、所定の回転駆動力（トルク）が生成される。生成されたトルクが後段の部材（例えばリンクや先端ユニット等）に伝達され、当該後段の部材が駆動することとなる。
【００７３】
また、上述したように、アクチュエータ１８０は、自身の駆動に関する各種の物理量を検出するセンサを搭載している。例えば、アクチュエータ１８０は、モータに供給されている電流量を検出する電流センサ、モータの温度を検出する温度センサ、モータの回転角度及び減速機の出力軸の回転角度を検出する角度センサ、減速機の出力軸におけるトルクを検出するトルクセンサ等を有する。これらのセンサは、例えば、図１に示す関節状態検出部１３２に対応する。これらのセンサによる検出値が、関節制御用ＣＰＵ１６０及び通信ユニット１５０に提供され、アクチュエータ１８０の駆動制御や関節部１３０の異常検出に用いられることとなる。
【００７４】
（アクチュエータの駆動について）
ここで、図３−図５を参照して、関節制御用ＣＰＵ１６０における、アクチュエータ１８０の駆動を制御するための構成について詳細に説明する。図３−図５では、上述した関節制御用ＣＰＵ１６０におけるアクチュエータ１８０を駆動するための構成（例えば、図１に示す駆動制御部１１１に対応する構成）を詳細に図示するとともに、アクチュエータ１８０を駆動する際における、関節制御用ＣＰＵ１６０とアクチュエータ１８０との間の情報のやり取りが図示されている。
【００７５】
関節制御用ＣＰＵ１６０は、図１に示す制御装置２０によって演算された制御量に基づいて各関節部１３０を駆動させるが、本実施形態では、当該制御量は、トルクで表現された指令値（トルク指令値）、角速度で表現された指令値（角速度指令値）及び角度で表現された指令値（角度指令値）のいずれであってもよい。図３は、トルク指令値に基づくアクチュエータ１８０の駆動について説明するための説明図である。また、図４は、角速度指令値に基づくアクチュエータ１８０の駆動について説明するための説明図である。また、図５は、角度指令値に基づくアクチュエータ１８０の駆動について説明するための説明図である。
【００７６】
まず、図３を参照して、トルク指令値に基づくアクチュエータ１８０の駆動について説明する。図３に示すように、制御量としてトルク指令値が関節制御用ＣＰＵ１６０に与えられた場合、当該トルク指令値は関節制御用ＣＰＵ１６０のトルク制御器１６１に入力される。ここで、アクチュエータ１８０のモータ１８１の出力軸のトルクがトルクセンサ１８３によって検出され、モータ１８１の出力軸の回転角度が角度センサ１８４によって検出されるようになっている。なお、図３では図示を省略しているが、実際には、トルクセンサ１８３及び角度センサ１８４は、モータ１８１における減速機を介した出力軸のトルク及び回転角度を検出する。トルク制御器１６１には、トルクセンサ１８３によって検出されたトルク検出値が提供され得る。
【００７７】
また、角度センサ１８４によって検出された回転角度検出値は、関節制御用ＣＰＵ１６０の角速度演算器１６２に提供される。角速度演算器１６２は、回転角度検出値に基づいてモータの出力軸における回転角速度を算出し、算出した回転角速度をトルク制御器１６１に対して提供する。トルク制御器１６１は、当該回転角速度に基づいて、出力軸の回転角加速度、すなわちトルクを算出することができる。
【００７８】
このように、トルク制御器１６１には、トルク指令値とともに、トルクセンサ１８３によって検出されたトルク検出値及び／又は角度センサ１８４によって検出された回転角度検出値に基づいて、現状でのトルク測定値が提供され得る。従って、トルク制御器１６１は、トルク指令値とトルク測定値との差分に基づいてトルク制御値を算出し、当該トルク制御値を電流制御器１６３に提供する。電流制御器１６３は、当該トルク制御値を実現するための電流量（電流制御値）を算出し、当該電流制御値によってモータ１８１を駆動する。また、電流制御器１６３には、角度センサ１８４によって検出された角度検出値が提供されてもよく、電流制御器１６３は、当該角度検出値に更に基づいてトルク制御値を実現するための電流制御値を算出してもよい。なお、図３では図示を省略しているが、実際には、例えば図２に示すモータドライバユニット１７０によって当該電流制御値に対応する電流が生成され、当該電流がモータ１８１に供給されることにより、モータ１８１が駆動されてよい。
【００７９】
以上説明した手順により、トルク指令値に基づくアクチュエータ１８０の駆動が実現される。なお、電流制御器１６３の出力（又はモータドライバユニット１７０の出力）に当たる電流値は、アクチュエータ１８０の電流センサ１８２によって常時モニタされており、例えば目的としている電流制御値と乖離した電流が検出された場合には、その内容が電流制御器１６３にフィードバックされるようになっている。
【００８０】
次に、図４を参照して、角速度指令値に基づくアクチュエータ１８０の駆動について説明する。図４に示すように、制御量として角速度指令値が関節制御用ＣＰＵ１６０に与えられた場合、当該角速度指令値は関節制御用ＣＰＵ１６０の角速度制御器１６４に入力される。なお、図４に示す構成は、図３に示す構成に対して角速度制御器１６４が追加されたものに対応するため、重複する事項については詳細な説明は省略する。
【００８１】
図４に示す構成では、角度センサ１８４によって検出された回転角度検出値に基づいて角速度演算器１６２によってモータの出力軸における回転角速度が算出され、算出された回転角速度が、角速度制御器１６４に提供される。そして、角速度制御器１６４は、角速度指令値と角速度演算器１６２によって算出された回転角速度との差分に基づいて角速度制御値を算出し、当該角速度制御値をトルク制御器１６１に提供する。以降の処理は、図３に示す構成と同様であってよい。トルク制御器１６１によって、角速度制御値と、トルクセンサ１８３によって検出されたトルク検出値及び／又は角度センサ１８４によって検出された回転角度検出値に基づく現状でのトルク測定値と、に基づいて、トルク制御値が算出される。そして、電流制御器１６３によって、当該トルク制御値に基づいて電流制御値が算出され、モータ１８１が駆動される。以上説明した手順により、角速度指令値に基づくアクチュエータ１８０の駆動が実現される。
【００８２】
次に、図５を参照して、角度指令値に基づくアクチュエータ１８０の駆動について説明する。図５に示すように、制御量として角度指令値が関節制御用ＣＰＵ１６０に与えられた場合、当該角度指令値は関節制御用ＣＰＵ１６０の角度制御器１６５に入力される。なお、図５に示す構成は、図４に示す構成に対して角度制御器１６５が追加されたものに対応するため、重複する事項については詳細な説明は省略する。
【００８３】
図５に示す構成では、角度センサ１８４によって検出された回転角度検出値が、角度制御器１６５に提供される。そして、角度制御器１６５は、角度指令値と回転角度検出値との差分に基づいて角度制御値を算出し、当該角度制御値を角速度制御器１６４に提供する。以降の処理は、図４に示す構成と同様であってよい。角速度制御器１６４は、角度制御器１６５から提供された角度制御値と、角度センサ１８４によって検出された回転角度検出値に基づいて角速度演算器１６２によって算出されたモータの出力軸における回転角速度と、の差分に基づいて角速度制御値を算出することができる。そして、トルク制御器１６１によって、当該角速度制御値と、トルクセンサ１８３によって検出されたトルク検出値及び／又は角度センサ１８４によって検出された回転角度検出値に基づく現状でのトルク測定値と、に基づいて、トルク制御値が算出される。更に、電流制御器１６３によって、当該トルク制御値に基づいて電流制御値が算出され、モータ１８１が駆動される。以上説明した手順により、角度指令値に基づくアクチュエータ１８０の駆動が実現される。
【００８４】
以上、図３−図５を参照して、関節制御用ＣＰＵ１６０における、アクチュエータ１８０の駆動を制御するための構成について説明した。以上説明したように、本実施形態では、図１に示す制御装置２０によって演算された各関節部１３０を駆動するための制御量は、トルク指令値であってもよいし、角速度指令値であってもよいし、角度指令値であってもよい。指令値がいずれの物理量によって表現されている場合であっても、例えば図３−図５に示すように関節制御用ＣＰＵ１６０を適宜構成することにより、モータ１８１を当該指令値に従って駆動することが可能となる。
【００８５】
（アクチュエータの各センサの構成）
上述したように、本実施形態では、アクチュエータ１８０に各種のセンサが搭載される。ここでは、図６を参照して、アクチュエータ１８０に搭載されるセンサの構成について説明する。図６は、アクチュエータ１８０に搭載されるセンサの一構成例を示すブロック図である。
【００８６】
図６を参照すると、アクチュエータ１８０は、モータ１８１、減速機１８５、電流センサ１８２、トルクセンサ１８３、モータ角度センサ１８４ａ、出力軸角度センサ１８４ｂ及び温度センサ１８７を有する。なお、図６では、説明のため、アクチュエータ１８０の各構成とともに、モータドライバユニット１７０及び関節制御用ＣＰＵ１６０も図示している。
【００８７】
上述したように、モータ１８１は、関節制御用ＣＰＵ１６０からの制御により、モータドライバユニット１７０から所定の電流が供給されることにより駆動される。アクチュエータ１８０では、モータドライバユニット１７０によってモータ１８１に供給される電流量が電流センサ１８２によって検出される。また、駆動中のモータ１８１の回転角度がモータ角度センサ１８４ａによって検出され、駆動中のモータ１８１の温度が温度センサ１８７によって検出される。
【００８８】
モータ１８１の回転軸には減速機１８５が連結されており、モータ１８１の回転速度が所定の減速比によって減速されることにより、所定のトルクが発生される。当該トルクが後段の部材に伝達されることにより関節部１３０が駆動することとなる。アクチュエータ１８０では、減速機１８５から当該後段の部材にトルクを伝達する出力軸１８６に、トルクセンサ１８３及び出力軸角度センサ１８４ｂが設けられる。トルクセンサ１８３によって出力軸１８６のトルク（すなわち、アクチュエータ１８０による発生トルク）が検出され、出力軸角度センサ１８４ｂによって出力軸１８６の回転角度が検出される。なお、図３−図５では、代表的に１つの角度センサ１８４を図示していたが、本実施形態では、図６に示すように、モータ１８１と出力軸１８６のそれぞれに、回転速度を検出する角度センサ（モータ角度センサ１８４ａ及び出力軸角度センサ１８４ｂ）が設けられてよい。
【００８９】
本実施形態では、アクチュエータ１８０が駆動している間、電流センサ１８２、温度センサ１８７、トルクセンサ１８３、モータ角度センサ１８４ａ及び出力軸角度センサ１８４ｂの検出値が、関節制御用ＣＰＵ１６０に随時提供される。図３−図５を参照して説明したように、関節制御用ＣＰＵ１６０は、これらの検出値に基づいて、アクチュエータ１８０を駆動させることができる。また、図６では図示を省略しているが、これらの各センサの検出値が通信ユニット１５０を介して制御装置２０に送信され得る。制御装置２０では、これらの検出値に基づいて関節部１３０の異常が検出されることとなる。
【００９０】
以上、図６を参照して、アクチュエータ１８０に搭載される各センサの構成について説明した。なお、本実施形態では、電流センサ１８２、温度センサ１８７、トルクセンサ１８３、モータ角度センサ１８４ａ及び出力軸角度センサ１８４ｂの具体的な構成は特定のものに限定されず、これらのセンサとしては、各種の公知のセンサを用いることができる。例えば、電流センサ１８２は、抵抗による電圧降下に基づいて電流を検出するものであってもよいし、ホール素子による磁界の変化に基づいて電流を検出するものであってもよい。また、例えば、温度センサ１８７は、熱電対を利用するものであってもよいし、測温抵抗体を利用するものであってもよい。また、例えば、トルクセンサ１８３は各種の歪センサを用いたものであってよい。また、例えば、モータ角度センサ１８４ａ及び出力軸角度センサ１８４ｂは、各種のロータリエンコーダであってよい。
【００９１】
＜４．ロボットアーム制御方法の処理手順＞
次に、図７を参照して、本実施形態に係るロボットアーム制御方法の処理手順について説明する。図７は、本実施形態に係るロボットアーム制御方法の処理手順の一例を示すフロー図である。なお、図７に示す各処理は、例えば図１に示すロボットアーム制御システム２の機能構成によって実現され得る。また、ここで説明するロボットアーム制御方法は、アーム部１２０の駆動において異常を検出した際における一連の処理手順に関するものである。例えば制御量の演算等、アーム部１２０の駆動を制御する際のより詳細な制御方法については、図１０を参照して後述する。
【００９２】
図７を参照すると、本実施形態に係るロボットアーム制御方法では、まず、アーム部１２０の駆動中に、関節部１３０において異常が検出されたかどうかが判断される（ステップＳ１０１）。ステップＳ１０１に示す処理では、アーム部１２０を構成する関節部１３０のそれぞれに対して異常の検出処理が行われてよく、いずれの関節部１３０において異常が発生しているかも併せて検出され得る。ステップＳ１０１に示す処理は、例えば、図１に示す異常検出部２６０によって、関節部１３０の異常を検出するための各種の情報に基づいて、関節部１３０の異常が検出される処理であってよい。
【００９３】
ステップＳ１０１において異常が検出されなかった場合には、アーム部１２０において、そのまま通常動作が続行される（ステップＳ１０３）。ここで、通常動作とは、アーム部１２０の駆動が正常に制御されている状態であり、例えば下記（６−２−５．運動目的の具体例）で説明するパワーアシスト動作やピボット動作等が行われ、先端ユニット１４５によって患者に対して各種の施術が行われ得る。
【００９４】
パワーアシスト動作では、アーム部１２０に作用する重力を打ち消すように関節部１３０が駆動するとともに、外部から更に与えられた力の方向へのアーム部１２０の移動をサポートするように関節部１３０が駆動するように、運動目的が設定され、当該運動目的に基づいて関節部１３０の駆動が制御される。このような制御を行うことにより、術者はあたかも無重力下にあるかのようにアーム部１２０を操作することができる。
【００９５】
また、ピボット動作では、先端ユニット１４５が、当該先端ユニット１４５の向きが空間上の所定の点に固定された状態で、当該所定の点を頂点とした円錐体の面上を移動するように、拘束条件が設定され、当該拘束条件に基づいて関節部１３０の駆動が制御される。例えば先端ユニット１４５として撮像装置を設け、このような制御を行うことにより、同一の点（例えば術部）を異なる方向、異なる距離から観察することが可能となる。また、ピボット動作では、ピボット動作の中心となる空間上の所定の点（ピボット中心点）と、先端ユニット１４５との距離が一定に保たれてもよい。これにより、先端ユニット１４５（例えば撮像装置）が、ピボット中心点を向いた状態で、当該ピボット中心点を中心とする半球上を移動するように、アーム部１２０の駆動が制御されることとなり、所定の点をあらゆる方向から観察することが容易に行えるようになる。また、パワーアシスト動作とピボット動作とが組み合わされて用いられてもよい。
【００９６】
ステップＳ１０１において異常が検出された場合には、ステップＳ１０５に進む。ステップＳ１０５では、検出された異常の種類に応じて、当該異常が異常回避動作によって回避可能な異常かどうかが判断される。
【００９７】
ステップＳ１０５において回避可能な異常であると判断された場合には、異常回避動作が実行される（ステップＳ１０７）。異常回避動作では、アーム部１２０の運動に所定の制限が設けられた状態で関節部１３０の駆動が制御され、異常を回避するようにアーム部１２０が駆動される。所定の制限とは、例えば、各関節部１３０に所定の値以上のトルクを生じさせないことや、各関節部１３０を所定の角度以上回転させないこと等であってよい。
【００９８】
ステップＳ１０５において回避可能な異常ではないと判断された場合には、ステップＳ１０９に進む。ステップＳ１０９では、検出された異常の種類に応じて、当該異常がアーム部１２０の機能の継続が可能な異常かどうかが判断される。
【００９９】
ステップＳ１０９においてアーム部１２０の機能の継続が可能であると判断された場合には、一部機能停止動作が実行される（ステップＳ１１１）。一部機能停止動作では、異常が検出された関節部１３０以外の他の関節部１３０の駆動を制御して、本来の自由度よりも自由度を下げた状態でアーム部１２０が駆動される。
【０１００】
ステップＳ１０９においてアーム部１２０の機能の継続が可能でないと判断された場合には、ステップＳ１１３に進む。ステップＳ１１３では、機能停止動作が実行される。機能停止動作では、アーム部１２０が意図せぬ動きをして術者及び患者に危害が加えられることがないように、安全にアーム部１２０の機能が停止される。例えば、機能停止動作では、アーム部１２０を構成する全ての関節部１３０の動きが固定される。
【０１０１】
以上、図７を参照して、本実施形態に係るロボットアーム制御方法の処理手順について説明した。以上説明したように、本実施形態では、関節部１３０に異常が検出された場合に、当該異常の種類に応じて、異常回避動作、一部機能停止動作及び機能停止動作のいずれの動作を実行するかが選択される。異常回避動作が実行された場合には、異常が回避された状態でアーム部１２０の駆動が継続される。また、一部機能停止動作が実行された場合には、アーム部１２０の一部の機能が停止された状態でアーム部１２０の駆動が継続される。従って、異常が検出された場合であっても、アーム部１２０を用いた施術を継続することが可能となり、患者にとっての安全性をより向上させることができる。また、全身協調制御によるアーム部１２０の駆動制御を継続することが困難な異常が検出された場合には、機能停止動作が実行され、術者及び患者に危害が加えられることがないように、安全にアーム部１２０の機能が停止されることとなる。
【０１０２】
なお、上述したステップＳ１０５、Ｓ１０９に示す処理は、例えば、図１に示す演算条件設定部２４２によって、異常検出部２６０によって検出された関節部１３０の異常に基づいて、当該異常の種類及び当該異常の種類に応じたアーム部１２０の動作が判断される処理であってよい。また、ステップＳ１０７、Ｓ１１１に示す処理は、例えば、図１に示す演算条件設定部２４２によって、アーム部１２０に異常回避動作及び一部機能停止動作を行わせるような制御量の演算条件がそれぞれ設定され、全身協調制御部２４０及び理想関節制御部２５０によって当該演算条件の下で算出された制御量に基づいて、駆動制御部１１１によって各関節部１３０の駆動が制御される処理であってよい。また、ステップＳ１１３に示す処理は、例えば、図１に示す駆動制御部１１１によって、位置制御によって関節部１３０ごとにその駆動が制御される処理であってよい。
【０１０３】
また、図７では、説明のため、ステップＳ１０１、Ｓ１０５、Ｓ１０９に示すように、異常回避動作、一部機能停止動作及び機能停止動作のいずれの動作を実行するかが段階的に選択されるように図示しているが、実際の処理はこのように段階的に判断が行われなくてもよい。例えば、上記＜２．ロボットアーム制御システムの機能構成＞で説明したように、異常の種類と、当該異常が生じた際に実行可能な動作と、が関連付けられたテーブルが作成され、当該テーブルに基づいていずれの動作を実行するかが判断されてもよい。
【０１０４】
＜５．各処理の詳細について＞
次に、図７に示す処理手順の中でも、ステップＳ１０１の異常検出処理、ステップＳ１０７の異常回避動作、ステップＳ１１１の一部機能停止動作及びステップＳ１１３の機能停止動作のそれぞれについて詳細に説明する。
【０１０５】
（５−１．異常検出処理）
まず、本実施形態に係る異常検出処理について説明する。図１及び図６を参照して上述したように、本実施形態では、アクチュエータ１８０に備えられる各種のセンサによる検出値（すなわち、関節状態検出部１３２によって検出される関節部１３０の状態）に基づいて、各関節部１３０の異常が検出され得る。当該センサとしては、例えば、電流センサ１８２、トルクセンサ１８３、モータ角度センサ１８４ａ、出力軸角度センサ１８４ｂ及び温度センサ１８７が設けられる。
【０１０６】
異常検出処理の一例として、図８を参照して、モータ１８１又は出力軸１８６の角速度に基づく異常検出処理の処理手順について説明する。図８は、角速度に基づく異常検出処理における処理手順の一例を示すフロー図である。なお、モータ１８１又は出力軸１８６の角速度は、例えば図３−図６に示す角速度演算器１６２によって、モータ角度センサ１８４ａ又は出力軸角度センサ１８４ｂによる回転角度の検出値に基づいて算出されてよい。また、図８に示す各処理は、例えば図１に示す異常検出部２６０によって実行され得る。
【０１０７】
図８を参照すると、本実施形態に係る異常検出処理では、まず、検出された角速度が所定のしきい値（第１のしきい値）を超えたかどうかが判断される（ステップＳ２０１）。当該第１のしきい値としては、アーム部１２０の駆動制御に用いられている内部モデル等に基づいて、通常であれば角速度として検出され得ないような値が適宜設定され得る。また、角速度の検出は、所定のタイミングで随時行われてよい。検出された角速度が第１のしきい値を超えていないと判断された場合には、所定のタイミングでの角速度の検出がそのまま続行される。一方、検出された角速度が第１のしきい値を超えたと判断された場合には、ステップＳ２０３に進む。
【０１０８】
ステップＳ２０３では、検出された角速度が第１のしきい値を超過している時間（しきい値超過時間）の測定が開始される。しきい値超過時間の測定中にも、角速度が随時検出され、検出された角速度が第１のしきい値以下かどうかが随時判断される（ステップＳ２０５）。ステップＳ２０５において、しきい値超過時間が所定のしきい値（第２のしきい値）を超える前に、検出された角速度が第１のしきい値以下になったと判断された場合には、角速度が第１のしきい値よりも大きい異常値を示したのは一時的な事象であると判断することができる。従って、しきい値超過時間の測定を終了し（ステップＳ２０７）、ステップＳ２０１に戻り、角速度の検出が続行される。
【０１０９】
一方、ステップＳ２０５において、検出された角速度が第１のしきい値以下ではないと判断された場合には、しきい値超過時間が第２のしきい値を超えているかどうかが判断される（ステップＳ２０９）。しきい値超過時間が第２のしきい値を超えていないと判断された場合には、ステップＳ２０５に戻り、検出された角速度と第１のしきい値との比較及びしきい値超過時間と第２のしきい値との比較が繰り返し行われる。ステップＳ２０９において、しきい値超過時間が第２のしきい値を超えたと判断された場合には、角速度が第１のしきい値よりも大きい異常値を示した時間が一定時間以上継続したことを意味している。従って、角速度の検出値が異常であると判断され（ステップＳ２１１）、関節部１３０に異常が生じていると判断されることとなる。
【０１１０】
以上、異常検出処理の一例として、図８を参照して、モータ１８１又は出力軸１８６の角速度に基づく異常検出処理の処理手順について説明した。なお、図８では、一例として、角速度の検出値に基づく異常の検出処理の処理手順について説明したが、他の検出値、例えば回転角度、角加速度、トルク、電流及び温度等の検出値に対しても、同様の手順に従って異常を検出することが可能である。以上説明したように、本実施形態では、各センサからの検出値が所定のしきい値を超えた時間が一定時間以上継続した場合に、当該検出値が検出された関節部１３０が異常であると判断されてよい。
【０１１１】
また、本実施形態では、以上説明した処理手順以外の方法によって関節部１３０の異常が検出されてもよい。例えば、異常検出部２６０は、以下のような方法に基づいて、異常を検出することができる。
【０１１２】
例えば、角加速度、角速度及びトルクに関しては、異常値が検出されている時間が一定時間を超えない場合であっても、検出値が所定のしきい値を超えた瞬間に、異常が検出されてもよい。このような場合には、アーム部１２０が過大な速度で移動したり、アーム部１２０によって患者に対して過大な力が負荷されたりする恐れがあるからである。また、例えばアーム部１２０のリンクに歪みゲージを設け、当該歪みゲージによる検出値も併せて異常が検出されてもよい。当該歪みゲージによる検出値は、アーム部１２０が接触することにより、術者及び患者等の外部の物体に与えられる押圧力を示す指標となり得るからである。なお、この種の異常が検出された場合には、好適に異常回避動作が行われ得る。当該異常回避動作では、例えば速度や力が所定の値以下になるような運動目的及び／又は拘束条件が演算条件として設定され、過大な速度及び力を生じさせないようにアーム部１２０の駆動が制御される。
【０１１３】
また、例えば、トルクセンサ１８３によるトルクの検出値に基づいて、関節部１３０の駆動制御が安定しているかどうかが判断されることにより異常が検出されてもよい。具体的には、例えば高速フーリエ変換（ＦＦＴ：Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ）を用いてトルクの検出値に対する周波数解析を行い、当該周波数解析の結果から異常な周波数成分が検出された場合に、異常が検出されてよい。トルクの検出値から異常な周波数成分が検出された場合には、制御が安定しておらず、発振する可能性があることを示しているからである。当該異常が検出された場合には、例えばより低いゲインで制御量の演算が行われるような演算条件が設定され、より安定的な制御系においてアーム部１２０の駆動が制御される異常回避動作が行われ得る。一方、ゲインを下げてもなお制御が安定しない場合には、異常が検出された関節部１３０以外の他の関節部１３０によってアーム部１２０を駆動させる、一部機能停止動作が行われてよい。
【０１１４】
また、例えば、モータ角度センサ１８４ａ及び／又は出力軸角度センサ１８４ｂによるモータ１８１及び／又は出力軸１８６の回転角度の検出値に基づいて、関節部１３０の異常が検出されてもよい。例えば、モータ角度センサ１８４ａによる検出値と出力軸角度センサ１８４ｂによる検出値とは、減速機１８５の減速比を介した比例関係にあるはずである。従って、モータ角度センサ１８４ａによる検出値と出力軸角度センサ１８４ｂによる検出値との間の比例関係が崩れた場合には、モータ１８１、減速機１８５、モータ角度センサ１８４ａ及び出力軸角度センサ１８４ｂのいずれかが故障している可能性がある。また、例えば、電流センサ１８２によってモータ１８１に対して所定の値の電流が供給されていることが検出されているにもかかわらず、モータ角度センサ１８４ａによる検出値が変化しない場合には、モータ１８１又はモータ角度センサ１８４ａが故障している可能性がある。同様に、電流センサ１８２によってモータ１８１に対して所定の値の電流が供給されていることが検出されているにもかかわらず、出力軸角度センサ１８４ｂによる検出値が変化しない場合には、モータ１８１、減速機１８５及び出力軸角度センサ１８４ｂのいずれかが故障している可能性がある。このように、関節部１３０の異常として、モータ１８１、減速機１８５、モータ角度センサ１８４ａ及び出力軸角度センサ１８４ｂのいずれかの故障が検出された場合には、関節部１３０に対して所望の駆動制御を行うことは難しいと考えられる。従って、このような異常が検出された場合には、異常が検出された関節部１３０以外の他の関節部１３０によってアーム部１２０を駆動させる、一部機能停止動作が行われてよい。
【０１１５】
また、例えば、電流センサ１８２によるモータ１８１に供給される電流の検出値に基づいて、関節部１３０の異常が検出されてもよい。例えば、電流センサ１８２によって過電流が検出された場合には、モータ１８１が故障（ショート）している、又は、制御が不安定なために過電流が流れておりそのまま過電流が印加され続けるとモータ１８１が故障してしまう恐れがある。また、指令値として与えられている電流量と電流センサ１８２による電流の検出値との間に大幅な乖離が生じている場合には、モータドライバユニット１７０の故障が疑われる。関節部１３０の異常として、このような電流の検出値に基づく異常が検出された場合には、モータ１８１を正常に駆動することが難しいため、関節部１３０に対して所望の駆動制御を行うことは困難であると考えられる。従って、このような異常が検出された場合には、異常が検出された関節部１３０以外の他の関節部１３０によってアーム部１２０を駆動させる、一部機能停止動作が行われてよい。
【０１１６】
また、例えば、温度センサ１８７によるモータ１８１の周囲の温度の検出値に基づいて、関節部１３０の異常が検出されてもよい。例えば、モータドライバユニット１７０等の周囲の他の構成に対してモータ１８１の周囲の温度が格段に高い場合には、当該温度センサ１８７又はモータ１８１が故障している可能性がある。関節部１３０の異常として、このような温度の検出値に基づく異常が検出された場合には、モータ１８１が異常な動作を行う可能性があるため、安全性の観点から、異常が検出された関節部１３０は駆動を停止することが望ましい。従って、このような異常が検出された場合には、異常が検出された関節部１３０以外の他の関節部１３０によってアーム部１２０を駆動させる、一部機能停止動作が行われてよい。
【０１１７】
また、例えば、通信ユニット１５０の通信状態に基づいて、関節部１３０の異常が検出されてもよい。例えば、何らかの原因により通信ユニット１５０による通信が停止している場合には、関節部１３０が、制御装置２０によって算出された制御量についての情報を受信することができなくなるため、関節部１３０に対して全身協調制御に基づく駆動制御を行うことができなくなる。従って、このような異常が検出された場合には、アーム部１２０の動作を停止させる機能停止動作が行われてよい。
【０１１８】
また、本実施形態では、関節部１３０に、モータ１８１の駆動を停止するようなブレーキ機構が設けられてもよい。当該ブレーキ機構は、制御的にモータ１８１の回転角度を固定するものであってもよいし、機械的にモータ１８１の駆動を停止させるものであってもよいし、電気回路的にモータドライバユニット１７０からモータ１８１への電流の供給を遮断するものであってもよい。例えば、当該ブレーキ機構を作動させているにもかかわらず、モータ角度センサ１８４ａ及び出力軸角度センサ１８４ｂのいずれかの検出値が変化した場合には、当該ブレーキ機構が故障しており、ブレーキが掛からない状況が発生している可能性がある。逆に、当該ブレーキ機構を解除し、外力を加えて関節部１３０を動かそうとしているにもかかわらず、モータ角度センサ１８４ａ及び出力軸角度センサ１８４ｂのいずれかの検出値が変化しない場合には、当該ブレーキ機構が故障しており、意図せずブレーキが掛かってしまう状況が発生している可能性がある。関節部１３０の異常として、このようなブレーキ機構の故障が検出された場合には、アーム部１２０を駆動させた際に意図せぬ動きをしてしまい、術者及び患者が危険にさらされる恐れがある。従って、このようなブレーキ機構に関する異常が検出された場合には、アーム部１２０の動作を停止させる機能停止動作が行われてよい。
【０１１９】
以上、本実施形態において検出され得る異常の種類について例示した。ただし、本実施形態に係る異常検出処理は上述した例に限定されず、異常を検出するための各種の情報（例えば、アクチュエータ１８０の各センサによる検出値（関節状態検出部１３２によって検出された関節部１３０の状態）についての情報、関節部１３０の駆動制御についての情報、関節部１３０に送信される指令値についての情報、関節部１３０の通信状態についての情報等）に基づいて、他の異常が検出されてもよい。また、上記では、各異常が検出された際にアーム部１２０が移行し得る動作についても説明しているが、これらの動作への移行はあくまで例示であって、各異常と動作との対応関係は、必ずしも上述したものに限定されない。各異常が検出された際にいずれの動作に移行するかは、アーム部１２０の全体構成やアーム部１２０の駆動制御に用いられている内部モデル等、制御に関する各種の条件に応じて、適宜設定されてよい。
【０１２０】
以上、本実施形態に係る異常検出処理について説明した。以上説明したように、本実施形態によれば、異常を検出するための各種の情報に基づいて、関節部１３０ごとに異常が検出される。従って、異常が発生している関節部１３０を特定することができ、例えば一部機能停止動作等、異常が検出された関節部１３０以外の関節部１３０を用いた動作を実行することが可能となる。また、本実施形態では、どのような情報に基づいて異常が検出されたかに応じて、関節部１３０のいずれの構成部材が故障しているかが検出され得る。従って、例えば、故障が検出された構成部材に応じて、アーム部１２０に行わせる動作を選択することが可能となる。例えば、故障が検出された構成部材が、関節部１３０の駆動制御を行うために必須な部材であったり、安全性を確保するために重要な部材であれば、機能停止動作に移行することが好ましい。このように、本実施形態では、関節部１３０ごとに、いずれの構成部材が故障したかまで検出可能であるため、異常の種類を詳細に判断することができ、アーム部１２０に行わせる動作をより適切に選択することが可能となる。
【０１２１】
（５−２．異常回避動作）
次に、本実施形態に係る異常回避動作について説明する。異常回避動作では、アーム部１２０の運動に対して所定の制限が設けられた状態で関節部１３０の駆動が制御され、当該異常を回避するようにアーム部１２０が駆動される。当該所定の制限とは、検出された異常を回避するようにアーム部１２０が駆動するような制限であってよい。例えば、当該所定の制限は、アーム部１２０の各関節部１３０におけるトルク（発生トルク及び外トルク）や各関節部１３０の回転角度、回転角速度及び回転角加速度に対する数値的な制限であり得る。これにより、例えばアーム部１２０や先端ユニット１４５が術者や患者に過大な力及び速度で衝突することが回避される。
【０１２２】
異常回避動作の一例として、図９及び図１０を参照して、関節部１３０におけるトルクに基づく異常回避動作について説明する。図９及び図１０は、関節部１３０におけるトルクに基づく異常回避動作について説明するための説明図である。
【０１２３】
図９では、ロボットアーム装置のアーム部３１０によって、患者３２０に対して所定の処置が行われる様子が図示されている。図９を参照すると、アーム部３１０は、複数のリンク３１２ａ〜３１２ｆが、複数の関節部３１１ａ〜３１１ｆによって互いに連結されて構成されている。各関節部３１１ａ〜３１１ｆの回転駆動が制御されることにより、アーム部３１０が駆動され得る。アーム部３１０の先端には、先端ユニット３１３が設けられており、当該先端ユニット３１３によって患者３２０に対して各種の処置が行われる。図９に示す例では、先端ユニット３１３は内視鏡であり、患者３２０の体腔内に挿入され、当該体腔内の患部の様子を観察したり、患部に対して各種の処置を行ったりすることができる。
【０１２４】
ここで、図９に示すように、例えば術者による誤操作により、先端ユニット３１３が患者３２０の身体（例えば臓器等）に接触してしまったとする。当該接触により、先端ユニット３１３には、患者３２０の身体からの反力Ｆが負荷される（すなわち、先端ユニット３１３に押圧力Ｆが発生する）とともに、当該反力Ｆが負荷された影響により、各関節部３１１ａ〜３１１ｆにトルクτ１〜τ６が負荷されることとなる。一方、本実施形態では、各関節部３１１ａ〜３１１ｆにトルクセンサが設けられており、トルクセンサにより各関節部３１１ａ〜３１１ｆに負荷された外トルクが検出され得る。
【０１２５】
本実施形態では、例えばトルクセンサによって所定のしきい値以上のトルクが検出された場合に異常を検出し、異常回避動作として、各関節部３１１ａ〜３１１ｆにおいて当該しきい値よりも大きいトルクが検出されないように、各関節部３１１ａ〜３１１ｆの駆動が制御されてよい。具体的には、先端ユニット３１３による押圧力Ｆとして、患者３２０に危険が及ばないような値が運動目的として設定される。これにより、先端ユニット３１３において設定した値以上の力が発生しないこととなる。ここで、全身協調制御では、各関節部３１１ａ〜３１１ｆのトルクτ１〜τ６に基づいて外力Ｆが算出され得る。従って、上記のような運動目的を設定することにより、各関節部３１１ａ〜３１１ｆのトルクτ１〜τ６が、先端ユニット３１３による押圧力Ｆが設定した値以上にならないように制御されることとなる。よって、本実施形態では、押圧力Ｆが設定した値以上になり得るようなトルク値がトルクτ１〜τ６として検出された場合に異常を検出し、そのようなトルクの発生を防ぐように各関節部３１１ａ〜３１１ｆの駆動が制御されることにより、異常回避動作が行われ得る。このような異常回避動作が行われることにより、先端ユニット３１３が患者３２０の臓器等に接触した場合であっても、臓器が過大な力によって圧迫されることなく、より安全に施術を続行することが可能となる。
【０１２６】
また、押圧力Ｆの上限値を設定する際には、その力が作用する方向ごとに異なる値が設定されてもよい。例えば、アーム部３１０の動作方向に作用する力の上限値としてより小さな値を設定することにより、患者に対して生じ得る危険をより適切に回避することができる。
【０１２７】
一方、図１０に示すように、本実施形態では、先端ユニット３１３を術者が把持した状態でアーム部１２０を移動させる場合が考えられる。この場合、先端ユニット３１３が患者３２０の身体（例えば臓器等）に接触したとすると、先端ユニット３１３には、患者３２０の身体からの反力Ｆ２と、術者による押圧力Ｆ１とが、逆方向に作用し得るため、先端ユニット３１３が患者３２０の身体に過大な力で押圧されているにもかかわらず、各関節部３１１ａ〜３１１ｆにおけるトルクτ１〜τ６にはそのことが反映されないという事態が生じ得る。本実施形態では、このような事態を避けるために、例えば先端ユニット３１３の、術者が把持している部位よりも先端に近いいずれかの部位に、力（応力）を検出するための歪みセンサが設けられてよい。当該歪みセンサにより、患者３２０の身体からの反力Ｆ２（すなわち、先端ユニット３１３による押圧力Ｆ２）を直接測定することができる。あるいは、先端ユニット３１３の術者によって把持される部位に歪みセンサが設けられてもよい。当該歪みセンサにより、術者による押圧力Ｆ１を直接測定することができる。各関節部３１１ａ〜３１１ｆにおけるトルクτ１〜τ６から、押圧力Ｆ１と外力Ｆ２との合力を算出することができるため、当該合力と歪センサによる測定値とに基づいて、押圧力Ｆ１と外力Ｆ２との切り分けを行うことができる。従って、先端ユニット３１３による押圧力Ｆ２として、患者３２０に危険が及ばないような値を運動目的として設定することにより、図９を参照して説明した場合と同様に、異常回避動作を行うことが可能となる。
【０１２８】
以上、異常回避動作の一例として、図９及び図１０を参照して、関節部３１１ａ〜３１１ｆにおけるトルクに基づく異常回避動作について説明した。上述した例では、先端ユニット３１３による患者３２０への押圧力が所定の値以下に制限される異常回避動作について説明したが、より一般的に、アーム部３１０（先端ユニット３１３を含む）が接触することにより外部の物体に与えられる押圧力を対象として異常回避動作が行われてよい。つまり、本実施形態では、アーム部３１０が接触することにより外部の物体に与えられる押圧力に応じて関節部３１１ａ〜３１１ｆに生じるトルクに基づいて関節部３１１ａ〜３１１ｆの異常が検出され、当該異常が検出された場合に、アーム部３１０の運動に対して当該押圧力が所定の範囲に制限された状態で、関節部３１１ａ〜３１１ｆの駆動が制御され、アーム部３１０が駆動されることにより、異常回避動作が行われ得る。また、押圧力の制限は、関節部３１１ａ〜３１１ｆにおけるトルクを制限することにより実現される。このように、押圧力（関節部３１１ａ〜３１１ｆにおけるトルク）に制限（例えば上限値）を設けて異常回避動作を行うことにより、上述したような先端ユニット３１３の衝突だけでなく、例えば、アーム部３１０のリンク間に術者の指が強く挟まれる事態や、アーム部３１０自体が術者又は患者に過大な速度や力で衝突する事態も回避することができる。
【０１２９】
ここで、本実施形態では、以上説明した方法以外の方法によって異常回避動作が行われてもよい。例えば、本実施形態では、以下のような異常回避動作が実行可能である。
【０１３０】
例えば、関節部３１１ａ〜３１１ｆの回転角度が所定の範囲に制限されることにより、異常回避動作が行われてもよい。当該異常回避動作では、例えば、関節部３１１ａ〜３１１ｆの異常が、関節部３１１ａ〜３１１ｆの回転角度に基づいて検出され、当該異常が検出された場合に、アーム部３１０の運動に対して当該回転角度が所定の範囲に制限された状態で、関節部３１１ａ〜３１１ｆの駆動が制御され、アーム部３１０が駆動される。このような異常回避動作を行うことにより、関節部３１１ａ〜３１１ｆが所定の方向に所定の角度以上回転しないようにその運動を制限することが可能となるため、例えばアーム部１２０に侵入禁止領域を設けるような駆動制御を行うことが可能となる。
【０１３１】
また、例えば、関節部３１１ａ〜３１１ｆの回転角速度が所定の範囲に制限されることにより、異常回避動作が行われてもよい。当該異常回避動作では、例えば、関節部３１１ａ〜３１１ｆの異常が、関節部３１１ａ〜３１１ｆの回転角速度に基づいて検出され、当該異常が検出された場合に、アーム部３１０の運動に対して当該回転角速度が所定の範囲に制限された状態で、関節部３１１ａ〜３１１ｆの駆動が制御され、アーム部３１０が駆動される。このような異常回避動作を行うことにより、関節部３１１ａ〜３１１ｆが所定の値以上の角速度で回転しないようにその運動を制限することが可能となるため、アーム部３１０が術者又は患者に衝突することによる危険性が回避され得る。また、関節部３１１ａ〜３１１ｆの回転角速度に基づく異常回避動作においては、当該回転角速度がゼロに制限されてもよい。回転角速度がゼロに制限された場合、関節部３１１ａ〜３１１ｆは極遅い速度でしか回転することができなくなるため、アーム部３１０が術者又は患者に衝突することによる危険性が更に抑制されることとなる。
【０１３２】
以上、本実施形態に係る異常回避動作について説明した。以上説明したように、本実施形態によれば、関節部３１１ａ〜３１１ｆにおけるトルクや回転角度、回転角速度等に基づいて、アーム部３１０が所定の値以上の力を発生させたり、所定の値以上の速度で運動したりしないように、異常回避動作が行われる。従って、患者及び術者に対してアーム部３１０が衝突することによる危険性を抑制することが可能となる。
【０１３３】
なお、以上の説明では、関節部３１１ａ〜３１１ｆにおけるトルク、回転角度及び回転角速度に基づく異常回避動作について説明したが、本実施形態はかかる例に限定されない。関節部３１１ａ〜３１１ｆにおける回転角加速度等、アーム部３１０の運動を表し得る他の物理量に基づいて異常回避動作が行われてもよい。また、以上の説明では、アーム部３１０の運動に課せられる条件として、関節部３１１ａ〜３１１ｆにおけるトルク、角度及び角速度が所定の値「以下」となるような条件を設けていたが、本実施形態はかかる例に限定されない。境界となる値を含むかどうかは任意であってよく、当該条件は、関節部３１１ａ〜３１１ｆにおけるトルク、角度及び角速度が所定の値「よりも小さく」なるような条件であってもよい。
【０１３４】
（５−３．一部機能停止動作）
次に、本実施形態に係る一部機能停止動作について説明する。一部機能停止動作では、関節部１３０のいずれかに異常が検出された場合に、異常が検出された関節部１３０以外の他の関節部１３０の駆動が制御され、自由度を下げた状態でアーム部１２０が駆動される。
【０１３５】
ここで、本実施形態に係る一部機能停止動作では、異常が検出された関節部１３０は、所定の角度から回転しないようにその動きが固定されることが好ましい。これにより、異常が検出された関節部１３０によってアーム部１２０が意図せぬ動きをすることが防止されるため、アーム部１２０が術者及び患者に危害を加える可能性を低減させることができる。異常が検出された関節部１３０の固定は、制御的に回転角度を固定することにより実現されてもよいし、モータの駆動を停止するような機械的なブレーキ機構によって実現されてもよいし、モータに供給される電流を遮断するような電気的な機構によって実現されてもよい。
【０１３６】
なお、制御的に関節部１３０が固定される場合には、関節部１３０ごとにその回転角度が所定の値に制御されればよいので、当該制御は、全身協調制御によっていわゆる力制御として行われなくてもよく、各関節部１３０に設けられる関節制御部１３５の駆動制御部１１１によって位置制御として行われてもよい。例えば、図１に示すロボットアーム装置１０と制御装置２０との間の通信に異常が発生している場合等、全身協調制御を行うことは不可能であるが、各駆動制御部１１１によって関節部１３０ごとにその駆動が制御可能である場合には、このような駆動制御部１１１による制御的な関節部１３０の固定が好適に実行され得る。
【０１３７】
ただし、本実施形態では、異常が検出された関節部１３０は必ずしも固定されなくてもよい。例えば、異常が検出された関節部１３０の駆動制御部１１１が、当該関節部１３０の粘性係数を他の関節部１３０よりも大きくすることにより、異常が検出された関節部１３０に対して、自律的にはその動きが固定されているが、所定の値以上の外力が負荷された場合には当該外力に応じて回転し、固定される位置（角度）が変更されるような制御を行ってもよい。このような制御は、例えば、上述したような、ロボットアーム装置１０と制御装置２０との間の通信に異常が発生し、全身協調制御を行うことが不可能な場合に好適に実行され得る。当該制御が行われている関節部１３０は、いわば略固定された状態であると言うことができる。なお、上記のような粘性係数の制御は、例えば駆動制御部１１１によって、関節部１３０のモータに供給する電流量が調整されることによって実現され得る。このような制御を行うことにより、異常が検出され自律的には動きが固定されている関節部１３０であっても、必要に応じてその回転角度を変更することが可能となるため、例えば術者が直接アーム部１２０を移動させながら施術を続行することも可能となる。
【０１３８】
また、例えば、関節部１３０のアクチュエータに異常が発生した場合には、アクチュエータの駆動制御（すなわち、関節部１３０の駆動制御）を正常に行うことが困難となるため、上記のように駆動制御部１１１によって制御的に関節部１３０を固定することが難しくなる。従って、このような場合には、駆動制御部１１１は、異常が検出された関節部１３０の制御を停止してもよい。制御が停止された関節部１３０は、他の関節部１３０よりも粘性係数が大きく（反力が大きく）回転し難いが、所定の値以上の外力に応じて自由に回転する、制御対象ではない一つの回転部位として振る舞うことができ、略固定された状態であるとみなすことができる。これは、制御が停止されることにより、関節部１３０のアクチュエータに設けられる減速機の摩擦力により、関節部１３０の動きがほぼ固定されることにより実現され得る。制御が停止された場合であっても、当該関節部１３０の回転角度は関節部１３０の状態として検出され、当該関節部１３０の回転角度まで含めてアーム状態が取得され得る。従って、自由に回転可能な関節部１３０を有することが反映されたアーム部１２０の内部モデルを適宜設定することにより、他の関節部１３０によってアーム部１２０の駆動を制御することが可能となる。
【０１３９】
このように、本実施形態に係る一部機能停止動作では、例えば異常が検出された関節部１３０が固定又は略固定され、固定又は略固定された関節部１３０以外の関節部１３０の自由度を用いてアーム部１２０の駆動が制御されることとなる。具体的な処理としては、例えば、異常が検出された関節部１３０が固定される又は略固定されるという拘束条件が演算条件設定部２４２によって設定され、当該拘束条件に基づいて、全身協調制御に係る演算が行われることにより、他の関節部１３０の駆動が制御されてよい。例えば、アーム部１２０が所望の動作を行うために必要なだけの自由度（例えば６自由度）を有している場合には、上記のような拘束条件が課され、自由度が低下することにより、アーム部１２０の位置及び姿勢が制限されてしまう可能性はある。しかしながら、本実施形態では、残りの自由度を用いて可能な限りアーム部１２０の位置及び姿勢が制御され得る。従って、施術を続行することができ、施術の中断又は施術時間の増加により患者が危険にさらされることを防止することができる。
【０１４０】
なお、複数の関節部１３０において異常が検出された場合には、異常が検出された関節部１３０の各々に対して、上述した、関節部１３０を固定する処理及び略固定する処理のいずれかが、例えば故障の種類等に応じて適宜選択されて実行されてよい。例えば、複数の関節部１３０において異常が検出された場合には、その故障の種類に応じて、ある関節部１３０は上述した方法により制御的に固定され、他の関節部１３０は上述した方法により制御的に略固定され、更に他の関節部１３０は上述した方法によりアクチュエータに対する制御が停止されることにより略固定されてもよい。このように、一部機能停止動作を実現するために、異常が検出された関節部１３０に対して実行される処理は、関節部１３０ごとに異なっていてもよく、例えば故障の種類等に応じて関節部１３０ごとに適宜選択され得る。
【０１４１】
ここで、本実施形態では、アーム部１２０は冗長自由度を有してもよい。本実施形態に係る一部機能停止動作は、冗長自由度を有するアーム部１２０に対しても好適に適用され得る。
【０１４２】
アーム部１２０における冗長自由度の概念について説明する。例えば、アーム部１２０が所望の動作を行うために必要な自由度がＮ自由度であったとする（Ｎは任意の正の数）。例えば、一般的に、３次元空間上においてアーム部１２０の位置及び姿勢を任意に制御するためには、原理上、アーム部１２０が６自由度以上の自由度を有することが求められる。ここで、アーム部１２０がＮ自由度よりも多い自由度（例えばＮ＋１自由度）を有する場合には、当該アーム部１２０は冗長自由度を有していると言える。
【０１４３】
例えば、冗長自由度を有するアーム部１２０においては、一部機能停止動作が行われ、自由度が下がった場合であっても、異常が検出された関節部１３０以外の関節部１３０によって、所望の自由度であるＮ自由度以上の自由度が確保されることとなる。このように、冗長自由度を有するアーム部１２０においては、一部機能停止動作が行われた場合であっても、所望の自由度が確保された状態でアーム部１２０の駆動制御が継続されることとなり、施術のより安全な継続が可能となる。
【０１４４】
なお、冗長自由度を有するアーム部１２０において一部機能停止動作が行われる場合における具体的な処理としては、例えば、演算条件設定部２４２によって内部モデルが切り換えられてもよい。冗長自由度（例えばＮ＋１自由度）を有するアーム部１２０においては、通常時には、所定の関節部１３０の動きを固定することにより、仮想的に最低限必要な自由度（例えばＮ自由度）を有するアーム部１２０とみなした上で、その駆動制御が行われる場合がある。この場合、異常が検出された関節部１３０を固定して一部機能停止動作を行おうとすると、固定される関節部１３０の位置が変化し得るため、その内部モデルも変化し得る。従って、例えば各関節部１３０が固定された場合に応じた複数の内部モデルが予め用意されており、異常が検出された関節部１３０に応じて適切な内部モデルが選択されることにより、一部機能停止動作が実行されてよい。
【０１４５】
以上、本実施形態に係る一部機能停止動作について説明した。以上説明したように、本実施形態に係る一部機能停止動作では、関節部１３０のいずれかに異常が検出された場合に、異常が検出された関節部１３０以外の関節部１３０の駆動が制御されることにより、自由度を下げた状態でアーム部１２０の駆動が行われる。これにより、自由度が低下することによりアーム部１２０の位置及び姿勢が制限される可能性はあるものの、残りの自由度を用いて可能な限りアーム部１２０の駆動が継続される。従って、施術を続行することができ、患者に対する危険性を低減することが可能となる。
【０１４６】
また、本実施形態では、アーム部１２０は冗長自由度を有してもよい。冗長自由度を有するアーム部１２０に対して一部機能停止動作が行われる場合には、自由度が低下した場合であっても、アーム部１２０が所望の動作を行うために本来必要とされるだけの自由度が確保され得るため、アーム部１２０の駆動がより安定的に継続される。従って、施術のより安全な継続が可能となる。
【０１４７】
（５−４．機能停止動作）
次に、本実施形態に係る機能停止動作について説明する。機能停止動作では、アーム部１２０の機能が停止されることとなるが、例えば各関節部１３０の駆動制御が全く行われないようにその機能が停止されると、各関節部１３０が重力に任せて自由に回転してしまうと、患者の上にアーム部１２０が落下する等の危険が生じ得る。従って、本実施形態に係る機能停止動作では、より安全にアーム部１２０の機能が停止される。
【０１４８】
本実施形態に係る機能停止動作では、アーム部１２０を構成する全ての関節部１３０の動きが固定されてよい。例えば、アーム部１２０を構成する全ての関節部１３０の回転角度が、所定の角度（例えば機能停止動作が行われた瞬間における角度）で固定される。これにより、アーム部１２０の位置及び姿勢が固定され、アーム部１２０が意図せぬ動きをして術者及び患者を傷付けることを防止することができる。
【０１４９】
各関節部１３０の固定は、制御的に回転角度を固定することにより実現されてもよいし、モータの駆動を停止するような機械的なブレーキ機構によって実現されてもよいし、モータに供給される電流を遮断するような電気的な機構によって実現されてもよい。また、上記（５−３．一部機能停止動作）で説明した関節部１３０の固定と同様に、制御的に関節部１３０が固定される場合には、当該制御は、各関節部１３０に設けられる関節制御部１３５の駆動制御部１１１によって位置制御として行われてもよい。例えば、通信ユニット１５０、２７０に異常が発生し、制御装置２０とロボットアーム装置１０との通信が遮断された場合には、制御装置２０によって算出された制御値を各関節部１３０が受信することができないため、このような、関節制御部１３５によって関節部１３０ごとにその角度を固定する制御が好適に行われ得る。
【０１５０】
また、制御的に関節部１３０が固定される場合には、自律的にはその回転が固定されているが、例えば所定の値以上の外力が負荷された場合には当該外力に応じて回転し、固定される位置（角度）が変更されるような制御が行われてもよい。このような制御を行うことにより、固定されている関節部１３０であっても、必要に応じてその回転角度を変更することが可能となるため、例えば術者が直接アーム部１２０を移動させながら施術を続行することも可能となる。
【０１５１】
ここで、ロボットアーム装置１０は、バッテリ等の蓄電装置を更に備えてもよい。蓄電装置を備えることにより、例えば停電等、電源が遮断されるような異常が生じた場合であっても、上述したような制御的及び電気的な関節部１３０の固定を行うことが可能となる。ただし、蓄電装置の性能によっては、制御的及び電気的な関節部１３０の固定を長時間実行することは難しい可能性がある。従って、安全性の観点からは、電源が遮断されるような異常が生じた場合には、機械的なブレーキ機構によって関節部１３０が固定されることがより好ましい。
【０１５２】
また、電源が遮断された場合には、アーム部１２０の位置及び姿勢を保つように各関節部１３０のモータが駆動され得ないため、各関節部１３０が機械的に固定された際のアーム部１２０の重心の位置によっては、そのバランスを保てない恐れがある。従って、ロボットアーム装置１０に、アーム部１２０を支持するためのカウンターバランスが設けられてもよい。カウンターバランスを適切に設けることにより、アーム部１２０の重心が不安定な場合であっても、そのバランスを保つことができ、より安全な機能停止が実現され得る。
【０１５３】
以上、本実施形態に係る機能停止動作について説明した。以上説明したように、本実施形態に係る機能停止動作では、アーム部１２０を構成する全ての関節部１３０の動きが固定される。従って、例えば機能停止と同時にアーム部１２０が意図せぬ動きをして、術者及び患者に危険が及ぶことが防止され得る。また、関節部１３０の固定は、関節部１３０ごとに、関節制御部１３５による位置制御によって実行されてよい。この場合には、各関節部１３０の回転が自律的には固定されるが、例えば所定の値以上の外力が負荷された場合には当該外力に応じて回転し、固定される位置（角度）が変更されるような制御を行うことが可能となるため、術者が直接アーム部１２０を移動させながら施術を続行することが可能となり、患者の安全性が更に向上する。
【０１５４】
以上、本実施形態に係る異常検出処理、異常回避動作、一部機能停止動作及び機能停止動作の詳細について、それぞれ説明した。以上説明したように、本実施形態では、関節部１３０ごとに、異常の発生及び異常の種類が的確に検出され得る。また、当該異常の種類に応じて、安全性を確保しつつ、可能な限りアーム部１２０の駆動が継続されるように、異常回避動作、一部機能停止動作及び機能停止動作のいずれの動作を行うかが選択される。このように、本実施形態によれば、上記＜１．ロボットアーム装置の安全性についての検討＞で説明した、安全性の観点からロボットアーム装置に求められる諸性能（異常回避動作を実行可能であること、一部機能停止動作を実行可能であること、機能停止動作を安全に実行可能であること、及び、これらの動作への移行を判断するための異常検出処理を的確に実行可能であること）が満足され得る。従って、術者及び患者の双方の安全を確保しつつ、可能な限りアーム部１２０を駆動させて施術を継続させることができる。また、深刻な異常によりアーム部１２０を停止する場合であっても、より安全にアーム部１２０の機能を停止することができる。
【０１５５】
＜６．全身協調制御について＞
以下では、本実施形態に係る全身協調制御を実現するための制御システムの構成や、制御方法について説明する。上述したように、以上説明したロボットアーム制御システム２や、ロボットアーム制御方法は、医療用のロボットアーム装置に対して好適に適用されることにより、安全性を向上させることができる。そこで、以下では、医療用ロボットアーム装置を例に挙げて、ロボットアーム装置の全身協調制御の一実施形態について説明を行う。
【０１５６】
なお、以上の説明では、主に安全性の観点から医療用ロボットアーム装置に求められる諸性能について説明した。しかしながら、医療用ロボットアーム装置においては、安全性以外にも、多様な観点から多様な性能が求められる。従って、以下では、医療用ロボット装置に求められる他の性能をいくつか挙げ、本実施形態に係る全身協調制御によって、それらの諸性能も満足される点についても説明を行う。
【０１５７】
（６−１．医療用ロボットアーム装置についての検討）
まず、本開示をより明確なものとするために、本発明者らが以下に説明する実施形態に想到するに至った背景について説明する。
【０１５８】
近年、医療分野や工業分野においては、より正確により素早く作業を行うために、ロボット装置が広く用いられている。ここで、ロボット装置及び各関節部の制御方式としては、位置制御と力制御とが知られている。位置制御では、関節部のアクチュエータに、例えば角度等の指令値が与えられ、当該指令値に追随するように関節部の駆動が制御される。一方、力制御では、ロボット装置全体として作業対象に加えるべき力の目標値が与えられ、当該目標値が示す力を実現するように関節部の駆動（例えば関節部によって発生されるトルク）が制御される。
【０１５９】
一般的に、制御上の簡便さやシステムの構成のしやすさから、位置制御によって駆動されるロボット装置が広く用いられている。しかしながら、位置制御は、外力に柔軟に応じることが困難であるため、俗に「硬い制御」と呼ばれることがあり、多様な外界との物理インタラクション（例えば、対人物理インタラクション）を行いながらタスクを遂行するロボット装置には適していない。一方、力制御は、システム構成は複雑化する反面、力オーダーでの「柔らかい制御」が実現できるため、特に対人物理インタラクションを行うロボット装置に適した制御方法であり、よりユーザビリティに優れた制御方法と言える。
【０１６０】
例えば、力制御が適用されたロボット装置の一例としては、本願出願人と同一出願人による先行出願である「特開２０１０−１８８４７１号公報」を参照することができる。当該特許文献には、対向する２輪の車輪からなる移動機構と複数の関節部を有する腕部を備えたロボット装置において、当該車輪及び当該関節部の駆動を全体として協調させて制御する（全身協調制御を行う）ロボット装置が開示されている。
【０１６１】
一方、近年、医療分野においては、各種の施術（例えば、手術や検査）を行う際に、アーム部の先端に様々な医療用のユニット（先端ユニット）が設けられたバランス型アーム（支持アームとも呼称する。）を用いる試みが行われている。例えば、バランス型アームのアーム部の先端に顕微鏡や内視鏡、カメラ等の撮像機能を有する様々な撮像装置を設け、施術者（ユーザ）が当該撮像装置によって撮影された術部の画像を観察しながら各種の施術を行う方法が提案されている。
【０１６２】
しかしながら、バランス型アームは、アーム部を移動させた際の力の均衡を取るためのカウンターバランス用ウェイト（カウンターウェイト又はバランサーとも呼称する。）を備える必要があるため、装置が大型化する傾向がある。施術時の作業空間の確保の観点からは、施術に用いられる装置にはより一層の小型化が求められており、一般的に提案されているバランス型アームではこのような要請に応えることが困難であった。また、バランス型アームにおいては、アーム部の駆動の一部のみ、例えば先端ユニットを平面上（２次元上）で移動させるための２軸の駆動のみが電動駆動となっており、アーム部及び先端ユニットの移動には施術者自身や周囲の医療スタッフによる手動での位置決めが必要となる。従って、一般的なバランス型アームでは、撮影時の安定性（例えば先端ユニットの位置決めの精度や制振等）の確保や、例えば視点を患者の体の所定の部位に固定した状態で様々な方向から観察する等の観察の自由度の確保が困難であった。
【０１６３】
特に、アーム部に取り付けられた撮像装置によって術部を観察する際には、視点を術部に固定したまま、異なる距離や異なる角度から当該術部を観察したいという要望がある。このような観察は、撮像装置にピボット動作を行わせることにより実現され得るが、バランス型アームによってピボット動作を行うためには、上記特許文献１に記載されているような複雑な機械的構成が必要となり、高い操作性を得ることは難しい。
【０１６４】
このような状況に鑑みて、バランス型アームに代わる装置として、位置制御によって駆動が制御される医療用のロボットアーム装置も提案されている。しかしながら、施術の更なる効率化及びユーザの負担軽減のために、ロボットアーム装置の駆動制御には、ユーザによってアーム部及び先端ユニットとして設けられる撮像ユニットの位置や姿勢をより直感的に制御することができる、より高い操作性が求められていた。位置制御によって駆動が制御されるロボットアーム装置では、このようなユーザの要望に応えることが困難であった。
【０１６５】
そこで、より安定性が高く、より操作性の高いアーム部の駆動制御を行うことが可能なロボットアーム装置を実現することにより、ユーザの負担をより軽減することが望まれていた。また、医療用に用いられるという観点から、ロボットアーム装置には、上記＜１．ロボットアーム装置の安全性についての検討＞で説明した安全性の観点から求められる諸性能に加えて、以下のような性能が求められる。
【０１６６】
図１１を参照して、本開示の一実施形態に係るロボットアーム装置が医療用に用いられる場合の一適用例について説明するとともに、医療用ロボットアーム装置に求められる諸性能について説明する。図１１は、本開示の一実施形態に係るロボットアーム装置が医療用に用いられる場合の一適用例について説明するための説明図である。
【０１６７】
図１１は、本実施形態に係るロボットアーム装置を用いた施術の様子を模式的に表している。具体的には、図１１を参照すると、施術者（ユーザ）５２０である医師が、例えばメス、鑷子、鉗子等の手術用の器具５２１を使用して、施術台５３０上の施術対象（患者）５４０に対して手術を行っている様子が図示されている。なお、以下の説明においては、施術とは、手術や検査等、ユーザ５２０である医師が施術対象５４０である患者に対して行う各種の医療的な処置の総称であるとする。また、図１１に示す例では、施術の一例として手術の様子を図示しているが、ロボットアーム装置５１０が用いられる施術は手術に限定されず、他の各種の施術、例えば内視鏡を用いた検査等であってもよい。
【０１６８】
施術台５３０の脇には本実施形態に係るロボットアーム装置５１０が設けられる。ロボットアーム装置５１０は、基台であるベース部５１１と、ベース部５１１から延伸するアーム部５１２を備える。アーム部５１２は、複数の関節部５１３ａ、５１３ｂ、５１３ｃと、関節部５１３ａ、５１３ｂによって連結される複数のリンク５１４ａ、５１４ｂと、アーム部５１２の先端に設けられる撮像ユニット５１５を有する。図１１に示す例では、簡単のため、アーム部５１２は３つの関節部５１３ａ〜５１３ｃ及び２つのリンク５１４ａ、５１４ｂを有しているが、実際には、アーム部５１２及び撮像ユニット５１５の位置及び姿勢の自由度を考慮して、所望の自由度を実現するように関節部５１３ａ〜５１３ｃ及びリンク５１４ａ、５１４ｂの数や形状、関節部５１３ａ〜５１３ｃの駆動軸の方向等が適宜設定されてよい。
【０１６９】
関節部５１３ａ〜５１３ｃは、リンク５１４ａ、５１４ｂを互いに回動可能に連結する機能を有し、関節部５１３ａ〜５１３ｃの回転が駆動されることにより、アーム部５１２の駆動が制御される。ここで、以下の説明においては、ロボットアーム装置５１０の各構成部材の位置とは、駆動制御のために規定している空間における位置（座標）を意味し、各構成部材の姿勢とは、駆動制御のために規定している空間における任意の軸に対する向き（角度）を意味する。また、以下の説明では、アーム部５１２の駆動（又は駆動制御）とは、関節部５１３ａ〜５１３ｃの駆動（又は駆動制御）、及び、関節部５１３ａ〜５１３ｃの駆動（又は駆動制御）を行うことによりアーム部５１２の各構成部材の位置及び姿勢が変化される（変化が制御される）ことをいう。
【０１７０】
アーム部５１２の先端には先端ユニットとして各種の医療用器具が接続される。図１１に示す例では、先端ユニットの一例としてアーム部５１２の先端に撮像ユニット５１５が設けられている。撮像ユニット５１５は、撮影対象の画像（撮影画像）を取得するユニットであり、例えば動画や静止画を撮影できるカメラ等である。図１１に示すように、アーム部５１２の先端に設けられた撮像ユニット５１５が施術対象５４０の施術部位の様子を撮影するように、ロボットアーム装置５１０によってアーム部５１２及び撮像ユニット５１５の姿勢や位置が制御される。なお、アーム部５１２の先端に設けられる先端ユニットは撮像ユニット５１５に限定されず、各種の医療用器具であってよい。当該医療用器具としては、例えば、内視鏡や顕微鏡、上述した撮像ユニット５１５等の撮像機能を有するユニットや、各種の施術器具、検査装置等、施術に際して用いられる各種のユニットが挙げられる。このように、本実施形態に係るロボットアーム装置５１０は、医療用器具を備えた医療用ロボットアーム装置であると言える。また、アーム部５１２の先端に、２つの撮像ユニット（カメラユニット）を有するステレオカメラが設けられ、撮像対象を３次元画像（３Ｄ画像）として表示するように撮影が行われてもよい。なお、先端ユニットとして、施術部位を撮影するための撮像ユニット５１５や当該ステレオカメラ等のカメラユニットが設けられるロボットアーム装置５１０のことをビデオ顕微鏡用ロボットアーム装置とも呼称する。
【０１７１】
また、ユーザ５２０と対向する位置には、モニタやディスプレイ等の表示装置５５０が設置される。撮像ユニット５１５によって撮影された施術部位の撮影画像は、表示装置５５０の表示画面に表示される。ユーザ５２０は、表示装置５５０の表示画面に表示される施術部位の撮影画像を見ながら各種の処置を行う。
【０１７２】
このように、本実施形態においては、医療分野において、ロボットアーム装置５１０によって施術部位の撮影を行いながら手術を行うことが提案される。ここで、手術を含む各種の施術においては、より施術を効率的に行うことにより、ユーザ５２０及び患者５４０の疲労や負担を軽減することが求められる。このような要求を満たすために、ロボットアーム装置５１０には、例えば以下のような性能が求められると考えられる。
【０１７３】
まず、１点目として、ロボットアーム装置５１０には、手術における作業空間を確保することが求められる。ユーザ５２０が施術対象５４０に対して各種の処置を行っている最中に、アーム部５１２や撮像ユニット５１５が施術者の視界を妨げたり、処置を行う手の動きを妨げたりすると、手術の効率の低下につながる。また、図１１では図示していないが、実際の手術現場では、ユーザ５２０に器具を渡したり、患者５４０の各種のバイタルサインを確認したりといった、様々なサポート作業を行う複数の他の医師や看護師等がユーザ５２０及び患者５４０の周囲にいることが一般的であり、また、当該サポート作業を行うための他の装置等が存在するため、手術環境は煩雑である。従って、ロボットアーム装置５１０は、より小型であることが望ましい。
【０１７４】
次いで、２点目として、ロボットアーム装置５１０には、撮像ユニット５１５を移動させる際の高い操作性が求められる。例えば、手術を行う部位や手術の内容によっては、ユーザ５２０には、施術部位に対して処置を行っている最中に、同じ施術部位を様々な位置、角度から観察したいという要求がある。施術部位を観察する角度を変えるには、撮像ユニット５１５の施術部位に対する角度を変更する必要があるが、その際、撮像ユニット５１５の撮影方向は施術部位に固定されたまま（すなわち、同一の部位を撮影したまま）、撮影する角度だけが変化することがより望ましい。従って、例えば、撮像ユニット５１５の撮影方向が施術部位に固定された状態で、撮像ユニット５１５が施術部位を頂点とした円錐の面内を移動する、当該円錐の軸を旋回軸とした旋回動作（ピボット動作）のような、より自由度の高い操作性がロボットアーム装置５１０に求められていた。なお、撮像ユニット５１５の撮影方向が所定の施術部位に固定されることから、ピボット動作はポイントロック動作とも呼ばれる。
【０１７５】
また、撮像ユニット５１５の位置及び角度を変化させるためには、例えばユーザ５２０が手動でアーム部５１２を動かすことによって、撮像ユニット５１５を所望の位置及び角度に動かす方法が考えられる。従って、撮像ユニット５１５の移動や上述したピボット動作等が、例えば片手でも容易に行える操作性があることが望ましい。
【０１７６】
また、手術時には、例えばユーザ５２０が両手で処置を行いながら、撮像ユニット５１５によって撮影される撮影画像の撮影中心を、処置を行っている部位から別の部位（例えば次の処置を行う部位）に移動させたいという要求も考えられる。従って、撮像ユニット５１５の位置及び姿勢を変化させる際に、上述したような手動によってアーム部５１２の駆動を制御する方法だけではなく、例えばペダル等の入力部からの操作入力によってアーム部５１２の駆動を制御する方法のような、多様なアーム部５１２の駆動方法が求められる。
【０１７７】
このように、２点目の性能として、ロボットアーム装置５１０には、例えば上述したピボット動作や手動による容易な移動を実現する、よりユーザ５２０の直感や要望に合った高い操作性が求められる。
【０１７８】
最後に、３点目として、ロボットアーム装置５１０には、アーム部５１２の駆動制御における安定性が求められる。アーム部５１２の駆動制御に対する安定性とは、アーム部５１２を駆動した際の先端ユニットの位置及び姿勢の安定性のことであってよい。また、アーム部５１２の駆動制御に対する安定性には、アーム部５１２を駆動した際の先端ユニットのスムーズな移動や振動の抑制（制振）も含まれる。例えば、図１１に示す例のように先端ユニットが撮像ユニット５１５である場合に、もしも撮像ユニット５１５の位置や姿勢が安定しないと、表示装置５５０の表示画面に表示される撮影画像が安定せず、ユーザに不快感を与えかねない。特に、ロボットアーム装置５１０が手術に用いられる際には、先端ユニットとして２つの撮像ユニット（カメラユニット）を有するステレオカメラが設けられ、当該ステレオカメラによる撮影画像に基づいて生成される３次元画像（３Ｄ画像）が表示装置５５０に表示される使用方法が想定され得る。このように３Ｄ画像が表示される場合に、当該ステレオカメラの位置や姿勢が不安定であると、ユーザのいわゆる３Ｄ酔いを誘発する可能性がある。また、手術を行う部位や手術の内容によっては、撮像ユニット５１５によって撮影される観察範囲はφ１５ｍｍ程度にまで拡大されることがある。このように撮像ユニット５１５が狭い範囲を拡大して撮影している場合には、撮像ユニット５１５の僅かな振動が撮像画像の大きな揺れやブレとなって表れる。従って、アーム部５１２及び撮像ユニット５１５の駆動制御には、許容範囲１ｍｍ程度の高い位置決め精度が要求される。このように、アーム部５１２の駆動制御においては、高精度の応答性と高い位置決め精度が求められる。
【０１７９】
本発明者らは、上記の３つの性能の観点から、一般的な既存のバランス型アームや位置制御によるロボットアーム装置について検討を行った。
【０１８０】
まず、１点目の手術の作業空間の確保に関しては、一般的なバランス型アームでは、通常、アーム部を移動させた際の力の均衡を取るためのカウンターバランス用ウェイト（カウンターウェイト又はバランサーとも呼称する。）がベース部の内部等に設けられるため、バランス型アームの装置の大きさを小型化することが難しく、当該性能を満たしているとは言い難い。
【０１８１】
また、２点目の高い操作性に関しては、一般的なバランス型アームでは、アーム部の駆動の一部のみ、例えば撮像ユニットを平面上（２次元上）で移動させるための２軸の駆動のみが電動駆動となっており、アーム部及び撮像ユニットの移動には手動による位置決めが必要となるため、高い操作性が実現できるとは言い難い。また、一般的な位置制御によるロボットアーム装置において、アーム部の駆動の制御、すなわち撮像ユニットの位置及び姿勢の制御に用いられる位置制御は、外力に柔軟に応じることが困難であるため、俗に「硬い制御」と呼ばれることがあり、要求されているようなユーザの直感に合った操作性を実現するには適していない。
【０１８２】
また、３点目のアーム部の駆動制御における安定性に関しては、一般的に、アーム部の関節部には、摩擦や慣性等のモデル化することが困難な因子が存在する。一般的なバランス型アームや位置制御によるロボットアーム装置においては、関節部の駆動制御においてこれらの因子が外乱となって表れてしまうことにより、理論上適切な制御値（例えば関節部のモータに印加する電流値）を与えた場合であっても所望の駆動（例えば関節部のモータにおける所望の角度の回転）が実現しないことがあり、要求されているようなアーム部の駆動制御における高い安定性を実現することは困難である。
【０１８３】
以上説明したように、本発明者らは、医療用途に用いられるロボットアーム装置について検討した結果、ロボットアーム装置に関して、上記＜１．ロボットアーム装置の安全性についての検討＞で説明した安全性の観点から求められる諸性能に加えて、上述したような３点の性能に対する要求が存在するとの知見を得た。しかしながら、一般的な既存のバランス型アームや位置制御によるロボットアーム装置では、これらの性能を満たすことは困難であると考えられる。本発明者らは、上述した３点の性能を更に満たす構成について検討した結果、以下に説明する実施形態に係るロボットアーム装置、ロボットアーム制御システム、ロボットアーム制御方法及びプログラムに想到した。以下では、本発明者らが想到した一実施形態について詳細に説明する。
【０１８４】
（６−２．本開示の一実施形態）
以下では、本開示の一実施形態に係るロボットアーム制御システムについて説明する。本実施形態に係るロボットアーム制御システムにおいては、ロボットアーム装置に設けられる複数の関節部の駆動を、一般化逆動力学を用いた全身協調制御により制御する。更に、外乱の影響を補正することにより指令値に対する理想的な応答を実現する理想関節制御を当該関節部の駆動制御に適用する。
【０１８５】
以下の本実施形態の説明では、まず、（６−２−１．ロボットアーム装置の外観）で、本実施形態に係るロボットアーム装置の外観を示すとともに、ロボットアーム装置の概略構成について説明する。次いで、（６−２−２．一般化逆動力学について）及び（６−２−３．理想関節制御について）で、本実施形態に係るロボットアーム装置の制御に用いられる一般化逆動力学と理想関節制御の概要について説明する。次いで、（６−２−４．ロボットアーム制御システムの構成）で、本実施形態に係るロボットアーム装置を制御するためのシステムの構成について機能ブロック図を用いて説明する。最後に、（６−２−５．運動目的の具体例）で、本実施形態に係るロボットアーム装置における、一般化逆動力学を用いた全身協調制御の具体例について説明する。
【０１８６】
なお、以下の説明では、本開示の一実施形態として、ロボットアーム装置のアーム部の先端ユニットが撮像ユニットであり、図１１に示すように手術時に当該撮像ユニットによって施術部位を撮影する場合について説明するが、本実施形態はかかる例に限定されない。本実施形態に係るロボットアーム制御システムは、他の先端ユニットを有するロボットアーム装置が他の用途に用いられる場合であっても適用可能である。
【０１８７】
（６−２−１．ロボットアーム装置の外観）
まず、図１２を参照して、本開示の一実施形態に係るロボットアーム装置の概略構成について説明する。図１２は、本開示の一実施形態に係るロボットアーム装置の外観を示す概略図である。
【０１８８】
図１２を参照すると、本実施形態に係るロボットアーム装置４００は、ベース部４１０及びアーム部４２０を備える。ベース部４１０はロボットアーム装置４００の基台であり、ベース部４１０からアーム部４２０が延伸される。また、図１２には図示しないが、ベース部４１０内には、ロボットアーム装置４００を統合的に制御する制御部が設けられてもよく、アーム部４２０の駆動が当該制御部によって制御されてもよい。当該制御部は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等の各種の信号処理回路によって構成される。
【０１８９】
アーム部４２０は、複数の関節部４２１ａ〜４２１ｆと、関節部４２１ａ〜４２１ｆによって互いに連結される複数のリンク４２２ａ〜４２２ｃと、アーム部４２０の先端に設けられる撮像ユニット４２３を有する。
【０１９０】
リンク４２２ａ〜４２２ｃは棒状の部材であり、リンク４２２ａの一端が関節部４２１ａを介してベース部４１０と連結され、リンク４２２ａの他端が関節部４２１ｂを介してリンク４２２ｂの一端と連結され、更に、リンク４２２ｂの他端が関節部４２１ｃ、４２１ｄを介してリンク４２２ｃの一端と連結される。更に、撮像ユニット４２３が、アーム部４２０の先端、すなわち、リンク４２２ｃの他端に、関節部４２１ｅ、４２１ｆを介して連結される。このように、ベース部４１０を支点として、複数のリンク４２２ａ〜４２２ｃの端同士が、関節部４２１ａ〜４２１ｆによって互いに連結されることにより、ベース部４１０から延伸されるアーム形状が構成される。
【０１９１】
撮像ユニット４２３は撮影対象の画像を取得するユニットであり、例えば動画、静止画を撮影するカメラ等である。アーム部４２０の駆動が制御されることにより、撮像ユニット４２３の位置及び姿勢が制御される。本実施形態においては、撮像ユニット４２３は、例えば施術部位である患者の体の一部領域を撮影する。ただし、アーム部４２０の先端に設けられる先端ユニットは撮像ユニット４２３に限定されず、アーム部４２０の先端には先端ユニットとして各種の医療用器具が接続されてよい。このように、本実施形態に係るロボットアーム装置４００は、医療用器具を備えた医療用ロボットアーム装置であると言える。
【０１９２】
ここで、以下では、図１２に示すように座標軸を定義してロボットアーム装置４００の説明を行う。また、座標軸に合わせて、上下方向、前後方向、左右方向を定義する。すなわち、床面に設置されているベース部４１０に対する上下方向をｚ軸方向及び上下方向と定義する。また、ｚ軸と互いに直交する方向であって、ベース部４１０からアーム部４２０が延伸されている方向（すなわち、ベース部４１０に対して撮像ユニット４２３が位置している方向）をｙ軸方向及び前後方向と定義する。更に、ｙ軸及びｚ軸と互いに直交する方向をｘ軸方向及び左右方向と定義する。
【０１９３】
関節部４２１ａ〜４２１ｆはリンク４２２ａ〜４２２ｃを互いに回動可能に連結する。関節部４２１ａ〜４２１ｆはアクチュエータを有し、当該アクチュエータの駆動により所定の回転軸に対して回転駆動される回転機構を有する。各関節部４２１ａ〜４２１ｆにおける回転駆動をそれぞれ制御することにより、例えばアーム部４２０を伸ばしたり、縮めたり（折り畳んだり）といった、アーム部４２０の駆動を制御することができる。ここで、関節部４２１ａ〜４２１ｆは、下記（６−２−２．一般化逆動力学について）で後述する全身協調制御及び下記（６−２−３．理想関節制御について）で後述する理想関節制御によってその駆動が制御される。また、上述したように、本実施形態に係る関節部４２１ａ〜４２１ｆは回転機構を有するため、以下の説明において、関節部４２１ａ〜４２１ｆの駆動制御とは、具体的には、関節部４２１ａ〜４２１ｆの回転角度及び／又は発生トルク（関節部４２１ａ〜４２１ｆが発生させるトルク）が制御されることを意味する。
【０１９４】
本実施形態に係るロボットアーム装置４００は、６つの関節部４２１ａ〜４２１ｆを有し、アーム部４２０の駆動に関して６自由度が実現されている。具体的には、図１２に示すように、関節部４２１ａ、４２１ｄ、４２１ｆは、接続されている各リンク４２２ａ〜４２２ｃの長軸方向及び接続されている撮像ユニット４２３の撮影方向を回転軸方向とするように設けられており、関節部４２１ｂ、４２１ｃ、４２１ｅは、接続されている各リンク４２２ａ〜４２２ｃ及び撮像ユニット４２３の連結角度をｙ−ｚ平面（ｙ軸とｚ軸とで規定される平面）内において変更する方向であるｘ軸方向を回転軸方向とするように設けられている。このように、本実施形態においては、関節部４２１ａ、４２１ｄ、４２１ｆは、いわゆるヨーイングを行う機能を有し、関節部４２１ｂ、４２１ｃ、４２１ｅは、いわゆるピッチングを行う機能を有する。
【０１９５】
このようなアーム部４２０の構成を有することにより、本実施形態に係るロボットアーム装置４００ではアーム部４２０の駆動に対して６自由度が実現されるため、アーム部４２０の可動範囲内において撮像ユニット４２３を自由に移動させることができる。図１２では、撮像ユニット４２３の移動可能範囲の一例として半球を図示している。半球の中心点が撮像ユニット４２３によって撮影される施術部位の撮影中心であるとすれば、撮像ユニット４２３の撮影中心を半球の中心点に固定した状態で、撮像ユニット４２３を半球の球面上で移動させることにより、施術部位を様々な角度から撮影することができる。
【０１９６】
ここで、図１３を参照して、図１２に示す関節部４２１ａ〜４２１ｆの構成についてより詳細に説明する。なお、ここでは、図１３を参照して、関節部４２１ａ〜４２１ｆの構成のうち、関節部４２１ａ〜４２１ｆの回転駆動に主に関係する構成であるアクチュエータの構成について説明する。図１３に示すアクチュエータは、図２及び図６等に示すアクチュエータ１８０に対応するものであってよい。
【０１９７】
図１３は、本開示の一実施形態に係る関節部４２１ａ〜４２１ｆのアクチュエータを、回転軸を通る断面で切断した様子を模式的に示す断面図である。なお、図１３では、関節部４２１ａ〜４２１ｆの構成のうち、アクチュエータのみを図示しているが、関節部４２１ａ〜４２１ｆは、他の構成を有してもよい。例えば、関節部４２１ａ〜４２１ｆは、図１３に図示する構成以外にも、アクチュエータの駆動を制御するための制御部や、リンク４２２ａ〜４２２ｃ及び撮像ユニット４２３を接続、支持するための支持部材等、アーム部４２０の駆動に必要な各種の構成を有する。なお、ここまでの説明及び以下の説明において、アーム部の関節部の駆動とは、関節部におけるアクチュエータの駆動を意味していてもよい。
【０１９８】
なお、上述したように、本実施形態においては、関節部４２１ａ〜４２１ｆは、下記（６−２−３．理想関節制御について）で後述する理想関節制御によってその駆動が制御される。従って、図１３に示す関節部４２１ａ〜４２１ｆのアクチュエータは、理想関節制御に対応した駆動を行えるように構成されている。具体的には、関節部４２１ａ〜４２１ｆのアクチュエータは、当該関節部４２１ａ〜４２１ｆにおける回転角度及び回転駆動に伴うトルクを調整できるように構成されている。また、関節部４２１ａ〜４２１ｆのアクチュエータは、回転運動に対する粘性抵抗係数を任意に調整できるように構成されており、例えば外部から加えられる力に対して回転しやすい（すなわち、アーム部４２０を手動で移動しやすい）状態や回転し難い（すなわち、アーム部４２０を手動で移動し難い）状態を実現することができる。
【０１９９】
図１３を参照すると、本実施形態に係る関節部４２１ａ〜４２１ｆのアクチュエータ４３０は、モータ４２４、モータドライバ４２５、減速機４２６、エンコーダ４２７、トルクセンサ４２８及び駆動軸４２９を有する。図１３に示すように、エンコーダ４２７、モータ４２４、減速機４２６及びトルクセンサ４２８は、駆動軸４２９に対して直列にこの順で連結される。なお、モータ４２４、モータドライバ４２５、減速機４２６、エンコーダ４２７及びトルクセンサ４２８は、図６に示すモータ１８１、モータドライバユニット１７０、減速機１８５、モータ角度センサ１８４ａ及びトルクセンサ１８３にそれぞれ対応するものであってよい。
【０２００】
モータ４２４は、アクチュエータ４３０における原動機であり、駆動軸４２９をその軸周りに回転させる。例えば、モータ４２４は、ブラシレスＤＣモータ等の電動モータである。本実施形態においては、モータ４２４は電流を供給されることによってその回転駆動が制御される。
【０２０１】
モータドライバ４２５は、モータ４２４に電流を供給することによりモータ４２４を回転駆動させるドライバ回路（ドライバＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ））であり、モータ４２４に供給する電流量を調整することにより、モータ４２４の回転数を制御することができる。また、モータドライバ４２５は、モータ４２４に供給する電流量を調整することにより、上述したようなアクチュエータ４３０の回転運動に対する粘性抵抗係数を調整することができる。
【０２０２】
減速機４２６は、駆動軸４２９に接続され、モータ４２４によって生じた駆動軸４２９の回転速度を所定の減速比で減速することにより、所定の値を有する回転駆動力（すなわち、トルク）を発生させる。減速機４２６には、バックラッシレス型の高性能減速機が用いられる。例えば、減速機４２６は、ハーモニックドライブ（登録商標）であってもよい。減速機４２６によって生成されたトルクは、減速機４２６の出力軸に接続されたトルクセンサ４２８を介して、後段の出力部材（図示せず。例えばリンク４２２ａ〜４２２ｃや撮像ユニット４２３等の連結部材）に伝達される。
【０２０３】
エンコーダ４２７は、駆動軸４２９に接続され、駆動軸４２９の回転数を検出する。エンコーダによって検出された駆動軸４２９の回転数と、減速機４２６の減速比との関係に基づいて、関節部４２１ａ〜４２１ｆの回転角度、回転角速度及び回転角加速度等の情報を得ることができる。なお、図１３に示す例では、駆動軸４２９、すなわち、モータ４２４の回転軸にエンコーダ４２７が設けられているが、本実施形態はかかる例に限定されない。図６に示す構成例のように、減速機４２６の後段に、出力軸の回転角度を検出するためのエンコーダが更に設けられてもよい。
【０２０４】
トルクセンサ４２８は、減速機４２６の出力軸に接続され、減速機４２６によって生成されたトルク、すなわち、アクチュエータ４３０によって出力されるトルクを検出する。以下の説明では、アクチュエータ４３０によって出力されるトルクのことを単に発生トルクとも呼称する。
【０２０５】
このように、アクチュエータ４３０においては、モータ４２４に供給する電流量を調整することにより、モータ４２４の回転数を調整することができる。ここで、減速機４２６における減速比は、ロボットアーム装置４００の用途に応じて適宜設定可能であってよい。従って、減速機４２６の減速比に応じて、モータ４２４の回転数を適宜調整することにより、発生トルクを制御することができる。また、アクチュエータ４３０においては、エンコーダ４２７によって検出された駆動軸４２９の回転数に基づいて、関節部４２１ａ〜４２１ｆの回転角度、回転角速度及び回転角加速度等の情報を得ることができ、トルクセンサ４２８によって、関節部４２１ａ〜４２１ｆにおける発生トルクを検出することができる。
【０２０６】
また、トルクセンサ４２８は、アクチュエータ４３０による発生トルクだけでなく、外部から加えられる外トルクも検出することができる。従って、トルクセンサ４２８によって検出された外トルクに基づいて、モータドライバ４２５がモータ４２４に供給する電流量を調整することにより、上述したような回転運動に対する粘性抵抗係数を調整することができ、例えば外部から加えられる力に対して回転しやすい状態や回転し難い状態を実現することができる。
【０２０７】
ここで、図１４Ａ及び図１４Ｂを参照して、トルクセンサ４２８の構成について詳細に説明する。図１４Ａは、図１３に示すトルクセンサ４２８を、駆動軸４２９の軸方向から見た様子を模式的に示す概略図である。
【０２０８】
図１４Ａを参照すると、トルクセンサ４２８は、外輪部４３１、内輪部４３２、梁部４３３ａ〜４３３ｄ及び歪み検出素子４３４ａ〜４３４ｄを有する。図１４Ａに示すように、外輪部４３１及び内輪部４３２は同心円状に配置される。本実施形態では、内輪部４３２が入力側、すなわち、減速機４２６からの出力軸と接続され、外輪部４３１が出力側、すなわち、後段の出力部材（図示せず。）と接続される。
【０２０９】
４本の梁部４３３ａ〜４３３ｄは、同心円状に配置された外輪部４３１と内輪部４３２との間に配設され、外輪部４３１と内輪部４３２とを互いに接続する。図１４Ａに示すように、梁部４３３ａ〜４３３ｄは、隣り合う梁部４３３ａ〜４３３ｄ同士が互いに９０度の角度となるように、外輪部４３１と内輪部４３２との間に介設される。
【０２１０】
梁部４３３ａ〜４３３ｄのうち、互いに向かい合う、すなわち、互いに１８０度の角度で設けられる２本には、歪み検出素子４３４ａ〜４３４ｄが設けられる。歪み検出素子４３４ａ〜４３４ｄによって検出された梁部４３３ａ〜４３３ｄの変形量に基づいて、アクチュエータ４３０の発生トルク及び外トルクを検出することができる。
【０２１１】
図１４Ａに示す例では、梁部４３３ａ〜４３３ｄのうち、梁部４３３ａに歪み検出素子４３４ａ、４３４ｂが、梁部４３３ｃに歪み検出素子４３４ｃ、４３４ｄが設けられる。また、歪み検出素子４３４ａ、４３４ｂは梁部４３３ａを挟むように設けられ、歪み検出素子４３４ｃ、４３４ｄは梁部４３３ｃを挟むように設けられる。例えば、歪み検出素子４３４ａ〜４３４ｄは歪みゲージであり、梁部４３３ａ、４３３ｃの表面に貼り付けられることにより、梁部４３３ａ、４３３ｃの幾何的な変形量を電気抵抗の変化に基づいて検出する。図１４Ａに示すように４ヶ所に歪み検出素子４３４ａ〜４３４ｄが設けられることにより、検出素子４３４ａ〜４３４ｄがいわゆるホイートストンブリッジを構成する。従って、いわゆる４ゲージ法を用いて歪みを検出することができるため、歪みを検出する軸以外の他軸の干渉や駆動軸４２９の偏心、温度ドリフト等の影響を低減することができる。
【０２１２】
このように、梁部４３３ａ〜４３３ｄは、歪みを検出するための起歪体の役割を果たす。なお、本実施形態に係る歪み検出素子４３４ａ〜４３４ｄの種類は歪みゲージに限定されず、他の素子が用いられてもよい。例えば、歪み検出素子４３４ａ〜４３４ｄは、磁気特性の変化に基づいて梁部４３３ａ〜４３３ｄの変形量を検出する素子であってもよい。
【０２１３】
また、図１３及び図１４Ａには図示しないが、トルクセンサ４２８による発生トルク及び外トルクの検出精度を向上させるために、以下に示す構成が適用されてもよい。例えば、梁部４３３ａ〜４３３ｄの外輪部４３１と接続する部位を他の部位よりも薄肉化することにより、支持モーメントが解放されるため、検出される変形量の線形性が向上されるとともにラジアル荷重による影響が低減される。また、外輪部４３１及び内輪部４３２をともにベアリングを介してハウジングで支持することにより、入力軸及び出力軸の双方からの他軸力、モーメントの作用を排除することができる。また、外輪部４３１に作用する他軸モーメントを低減するために、図１３に示すアクチュエータ４３０の他端、すなわちエンコーダ４２７が配設される部位に両持ち支持用ベアリングが配設されてもよい。
【０２１４】
以上、図１４Ａを参照して、トルクセンサ４２８の構成について説明した。以上説明したように、図１４Ａに示すトルクセンサ４２８の構成により、アクチュエータ４３０の発生トルク及び外トルクの検出において、高精度な検出が可能となる。
【０２１５】
ここで、本実施形態においては、トルクセンサ４２８の構成は図１４Ａに示す構成に限定されず、他の構成であってもよい。アクチュエータ４３０に適用されるトルクセンサについて、トルクセンサ４２８以外の他の構成の一例を、図１４Ｂを参照して説明する。
【０２１６】
図１４Ｂは、図１３に示すアクチュエータ４３０に適用されるトルクセンサの他の構成例を示す概略図である。図１４Ｂを参照すると、本変形例に係るトルクセンサ４２８ａは、外輪部４４１、内輪部４４２、梁部４４３ａ〜４４３ｄ及び歪み検出素子４４４ａ〜４４４ｄを有する。なお、図１４Ｂでは、図１４Ａと同様、トルクセンサ４２８ａを駆動軸４２９の軸方向から見た様子を模式的に示している。
【０２１７】
トルクセンサ４２８ａにおいて、外輪部４４１、内輪部４４２、梁部４４３ａ〜４４３ｄ及び歪み検出素子４４４ａ〜４４４ｄの機能及び構成は、図１４Ａを参照して説明したトルクセンサ４２８の外輪部４３１、内輪部４３２、梁部４３３ａ〜４３３ｄ及び歪み検出素子４３４ａ〜４３４ｄの機能及び構成とほぼ同様である。本変形例に係るトルクセンサ４２８ａは、梁部４４３ａ〜４４３ｄと外輪部４４１との接続部分の構成が異なる。従って、図１４Ｂに示すトルクセンサ４２８ａについては、図１４Ａに示すトルクセンサ４２８との相違点である梁部４４３ａ〜４４３ｄと外輪部４４１との接続部位の構成について主に説明を行い、重複する構成については説明を省略する。
【０２１８】
図１４Ｂを参照すると、トルクセンサ４２８ａの全体図と併せて、梁部４４３ｂと外輪部４４１との接続部位が拡大して図示されている。なお、図１４Ｂでは、梁部４４３ａ〜４４３ｄと外輪部４４１との４ヶ所の接続部位のうちの１ヶ所である梁部４４３ｂと外輪部４４１との接続部位のみを拡大して図示しているが、他の３ヶ所である梁部４４３ａ、４４３ｃ、４４３ｄと外輪部４４１との接続部位も同様の構成を有している。
【０２１９】
図１４Ｂにおける拡大図を参照すると、梁部４４３ｂと外輪部４４１との接続部位においては、外輪部４４１に係合凹部が設けられており、梁部４４３ｂの先端が係合凹部に係合されることにより両者が接続される。また、当該梁部４４３ｂと外輪部４４１との間には、間隙Ｇ１、Ｇ２が設けられる。間隙Ｇ１は梁部４４３ｂが外輪部４４１に向かって延伸する方向における両者の間隙を表しており、間隙Ｇ２は当該方向とは直交する方向における両者の間隙を表している。
【０２２０】
このように、トルクセンサ４２８ａにおいては、梁部４４３ａ〜４４３ｄと外輪部４４１とが、所定の間隙Ｇ１、Ｇ２を有して分離して配設される。すなわち、トルクセンサ４２８ａにおいては、外輪部４４１と内輪部４４２とが分離している。従って、内輪部４４２が外輪部４４１に対して拘束されず動きの自由度を有するため、例えばアクチュエータ４３０の駆動に際して振動が生じたとしても、振動による歪み成分を内輪部４４２と外輪部４４１との間の間隙Ｇ１、Ｇ２によって吸収することができる。よって、トルクセンサ４２８ａをアクチュエータ４３０のトルクセンサとして適用することにより、より高精度な発生トルク及び外トルクの検出が実現される。
【０２２１】
なお、図１３、図１４Ａ及び図１４Ｂに示すような、理想関節制御に対応するアクチュエータ４３０の構成については、例えば、本願出願人による先行特許出願である特開２００９−２６９１０２号公報や特開２０１１−２０９０９９号公報を参照することができる。
【０２２２】
以上、図１２、図１３、図１４Ａ及び図１４Ｂを参照して、本実施形態に係るロボットアーム装置４００の概略構成について説明した。次に、本実施形態に係るロボットアーム装置４００におけるアーム部４２０の駆動、すなわち、関節部４２１ａ〜４２１ｆの駆動を制御するための全身協調制御及び理想関節制御について説明する。
【０２２３】
（６−２−２．一般化逆動力学について）
次に、本実施形態におけるロボットアーム装置４００の全身協調制御に用いられる一般化逆動力学の概要について説明する。
【０２２４】
一般化逆動力学は、複数のリンクが複数の関節部によって連結されて構成される多リンク構造体（例えば本実施形態においては図１２に示すアーム部４２０）において、各種の操作空間（Ｏｐｅｒａｔｉｏｎ  Ｓｐａｃｅ）における様々な次元に関する運動目的を、各種の拘束条件を考慮しながら、複数の当該関節部に生じさせるトルクに変換する、多リンク構造体の全身協調制御における基本演算である。
【０２２５】
操作空間は、ロボット装置の力制御における重要な概念である。操作空間は、多リンク構造体に作用する力と多リンク構造体の加速度との関係を記述するための空間である。多リンク構造体の駆動制御を位置制御ではなく力制御によって行う際に、多リンク構造体と環境との接し方を拘束条件として用いる場合に操作空間という概念が必要となる。操作空間は、例えば、多リンク構造体が属する空間である、関節空間、デカルト空間、運動量空間等である。
【０２２６】
運動目的は、多リンク構造体の駆動制御における目標値を表すものであり、例えば、駆動制御によって達成したい多リンク構造体の位置、速度、加速度、力、インピーダンス等の目標値である。
【０２２７】
拘束条件は、多リンク構造体の形状や構造、多リンク構造体の周囲の環境及びユーザによる設定等によって定められる、多リンク構造体の位置、速度、加速度、力等に関する拘束条件である。例えば、拘束条件には、発生力、優先度、非駆動関節の有無、垂直反力、摩擦錐、支持多角形等についての情報が含まれる。
【０２２８】
一般化動力学においては、数値計算上の安定性と実時間処理可能な演算効率とを両立するため、その演算アルゴリズムは、第１段階である仮想力決定プロセス（仮想力算出処理）と、第２段階である実在力変換プロセス（実在力算出処理）によって構成される。第１段階である仮想力算出処理では、各運動目的の達成に必要な、操作空間に作用する仮想的な力である仮想力を、運動目的の優先度と仮想力の最大値を考慮しながら決定する。第２段階である実在力算出処理では、非駆動関節、垂直反力、摩擦錐、支持多角形等に関する拘束を考慮しながら、上記で得られた仮想力を関節力、外力等の実際の多リンク構造体の構成で実現可能な実在力に変換する。以下、仮想力算出処理及び実在力算出処理について詳しく説明する。なお、以下の仮想力算出処理、実在力算出処理及び後述する理想関節制御の説明においては、理解を簡単にするために、具体例として、図１２及び図１３に示した本実施形態に係るロボットアーム装置４００のアーム部４２０の構成を例に挙げて説明を行う場合がある。
【０２２９】
（６−２−２−１．仮想力算出処理）
多リンク構造体の各関節部におけるある物理量によって構成されるベクトルを一般化変数ｑと呼ぶ（関節値ｑ又は関節空間ｑとも呼称する。）。操作空間ｘは、一般化変数ｑの時間微分値とヤコビアンＪとを用いて、以下の数式（１）で定義される。
【０２３０】
【数１】
2019155116.tif 000003
【０２３１】
本実施形態では、例えば、ｑはアーム部４２０の関節部４２１ａ〜４２１ｆにおける回転角度である。操作空間ｘに関する運動方程式は、下記数式（２）で記述される。
【０２３２】
【数２】
2019155116.tif 000004
【０２３３】
ここで、ｆは操作空間ｘに作用する力を表す。また、Λ−１は操作空間慣性逆行列、ｃは操作空間バイアス加速度と呼ばれるものであり、それぞれ下記数式（３）、（４）で表される。
【０２３４】
【数３】
2019155116.tif 000005
【０２３５】
なお、Ｈは関節空間慣性行列、τは関節値ｑに対応する関節力（例えば関節部４２１ａ〜４２１ｆおける発生トルク）、ｂは重力、コリオリ力、遠心力を表す項である。
【０２３６】
一般化逆動力学においては、操作空間ｘに関する位置、速度の運動目的は、操作空間ｘの加速度として表現できることが知られている。このとき、上記数式（１）から、運動目的として与えられた目標値である操作空間加速度を実現するために、操作空間ｘに作用するべき仮想力ｆｖは、下記数式（５）のような一種の線形相補性問題（ＬＣＰ：Ｌｉｎｅａｒ  Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｐｒｏｂｌｅｍ）を解くことによって得られる。
【０２３７】
【数４】
2019155116.tif 000006
【０２３８】
ここで、ＬｉとＵｉはそれぞれ、ｆｖの第ｉ成分の負の下限値（−∞を含む）、ｆｖの第ｉ成分の正の上限値（＋∞を含む）とする。上記ＬＣＰは、例えばＩｔｅｒａｔｉｖｅ法、Ｐｉｖｏｔ法、ロバスト加速度制御を応用する方法等を用いて解くことができる。
【０２３９】
なお、操作空間慣性逆行列Λ−１、バイアス加速度ｃは、定義式である上記数式（３）、（４）の通り算出すると計算コストが大きい。従って、多リンク構造体の一般化力（関節力τ）から一般化加速度（関節加速度）を得る順動力学計算（ＦＷＤ）を応用することにより、操作空間慣性逆行列Λ−１の算出処理をより高速に算出する方法が提案されている。具体的には、操作空間慣性逆行列Λ−１、バイアス加速度ｃは、順動力学演算ＦＷＤを用いることにより、関節空間ｑ、関節力τ、重力ｇ等の多リンク構造体（例えば、アーム部４２０及び関節部４２１ａ〜４２１ｆ）に作用する力に関する情報から得ることができる。このように、操作空間に関する順動力学演算ＦＷＤを応用することにより、関節部の数Ｎに対してＯ（Ｎ）の計算量で操作空間慣性逆行列Λ−１を算出することができる。
【０２４０】
ここで、運動目的の設定例として、絶対値Ｆｉ以下の仮想力ｆｖｉで操作空間加速度の目標値（ｘの２階微分に上付きバーを付して表す）を達成するための条件は、下記数式（６）で表現できる。
【０２４１】
【数５】
2019155116.tif 000007
【０２４２】
また、上述したように、操作空間ｘの位置、速度に関する運動目的は、操作空間加速度の目標値として表すことができ、具体的には下記数式（７）で表現される（操作空間ｘの位置、速度の目標値を、ｘ、ｘの１階微分に上付きバーを付して表す）。
【０２４３】
【数６】
2019155116.tif 000008
【０２４４】
その他、分解操作空間の考え方を用いることにより、他の操作空間の線形和で表される操作空間（運動量、デカルト相対座標、連動関節等）に関する運動目的を設定することもできる。なお、競合する運動目的間には優先度を与える必要がある。優先度毎かつ低優先度から順に上記ＬＣＰを解き、前段のＬＣＰで得られた仮想力を次段のＬＣＰの既知外力として作用させることができる。
【０２４５】
（６−２−２−２．実在力算出処理）
一般化逆動力学の第２段階である実在力算出処理では、上記（６−２−２−１．仮想力決定プロセス）で得られた仮想力ｆｖを、実在の関節力と外力で置換する処理を行う。仮想力による一般化力τｖ＝ＪｖＴｆｖを関節部に生じる発生トルクτａと外力ｆｅとで実現するための条件は、下記数式（８）で表現される。
【０２４６】
【数７】
2019155116.tif 000009
【０２４７】
ここで、添え字ａは駆動関節部の集合（駆動関節集合）を表し、添え字ｕは非駆動関節部の集合（非駆動関節集合）を表す。すなわち、上記数式（８）の上段は非駆動関節部による空間（非駆動関節空間）の力の釣り合いを表しており、下段は駆動関節部による空間（駆動関節空間）の力の釣合いを表している。Ｊｖｕ、Ｊｖａは、それぞれ、仮想力ｆｖが作用する操作空間に関するヤコビアンの非駆動関節成分、駆動関節成分である。Ｊｅｕ、Ｊｅａは、外力ｆｅが作用する操作空間に関するヤコビアンの非駆動関節成分、駆動関節成分である。Δｆｖは仮想力ｆｖのうち、実在力で実現不能な成分を表す。
【０２４８】
上記数式（８）の上段は不定であり、例えば下記数式（９）に示すような２次計画問題（ＱＰ：Ｑｕａｄｒａｔｉｃ  Ｐｒｏｇｒａｍｉｎｇ  Ｐｒｏｂｌｅｍ）を解くことで、ｆｅ及びΔｆｖを得ることができる。
【０２４９】
【数８】
2019155116.tif 000010
【０２５０】
ここで、εは上記数式（８）の上段の両辺の差であり、数式（８）の等式誤差を表す。ξはｆｅとΔｆｖとの連結ベクトルであり、変数ベクトルを表す。Ｑ１及びＱ２は、最小化の際の重みを表す正定値対称行列である。また、上記数式（９）の不等式拘束は、垂直反力、摩擦錐、外力の最大値、支持多角形等、外力に関する拘束条件を表現するのに用いられる。例えば、矩形の支持多角形に関する不等式拘束は、下記数式（１０）のように表現される。
【０２５１】
【数９】
2019155116.tif 000011
【０２５２】
ここで、ｚは接触面の法線方向を表し、ｘ及びｙはｚに垂直な直交２接線方向を表す。（Ｆｘ，Ｆｙ，Ｆｚ）及び（Ｍｘ，Ｍｙ，Ｍｚ）は、接触点に作用する外力及び外力モーメントである。μｔ及びμｒは、それぞれ並進、回転に関する摩擦係数である。（ｄｘ，ｄｙ）は支持多角形のサイズを表している。
【０２５３】
上記数式（９）、（１０）から、最小ノルム又は最小誤差の解ｆｅ、Δｆｖが求められる。上記数式（９）から得られたｆｅ、Δｆｖを上記数式（８）の下段に代入することにより、運動目的を実現するために必要な関節力τａを得ることができる。
【０２５４】
基底が固定され、非駆動関節が無い系の場合は、関節力のみで全ての仮想力を置換可能であり、上記数式（８）において、ｆｅ＝０、Δｆｖ＝０とすることができる。この場合、上記数式（８）の下段から、関節力τａについて以下の数式（１１）を得ることができる。
【０２５５】
【数１０】
2019155116.tif 000012
【０２５６】
以上、本実施形態に係る一般化逆動力学を用いた全身協調制御について説明した。上記のように、仮想力算出処理及び実在力算出処理を順に行うことにより、所望の運動目的を達成するための関節力τａを得ることができる。すなわち、逆に言えば、算出された関節力τａを関節部４２１ａ〜４２１ｆの運動における理論モデルに反映することにより、関節部４２１ａ〜４２１ｆが、所望の運動目的を達成するように駆動される。
【０２５７】
なお、ここまで説明した一般化逆動力学を用いた全身協調制御について、特に、仮想力ｆｖの導出過程や、上記ＬＣＰを解き仮想力ｆｖを求める方法、ＱＰ問題の解法等の詳細については、例えば、本願出願人による先行特許出願である特開２００９−９５９５９号公報や特開２０１０−１８８４７１号公報を参照することができる。
【０２５８】
（６−２−３．理想関節制御について）
次に、本実施形態に係る理想関節制御について説明する。各関節部４２１ａ〜４２１ｆの運動は、下記数式（１２）の二次遅れ系の運動方程式によってモデル化される。
【０２５９】
【数１１】
2019155116.tif 000013
【０２６０】
ここで、Ｉａは関節部における慣性モーメント（イナーシャ）、τａは関節部４２１ａ〜４２１ｆの発生トルク、τｅは外部から各関節部４２１ａ〜４２１ｆに作用する外トルク、νａは各関節部４２１ａ〜４２１ｆにおける粘性抵抗係数である。上記数式（１２）は、関節部４２１ａ〜４２１ｆにおけるアクチュエータ４３０の運動を表す理論モデルとも言える。
【０２６１】
上記（６−２−２．一般化逆動力学について）で説明したように、一般化逆動力学を用いた演算により、運動目的及び拘束条件を用いて、当該運動目的を実現するために各関節部４２１ａ〜４２１ｆに作用させるべき実在力であるτａを算出することができる。従って、理想的には、算出された各τａを上記数式（１２）に適用することにより、上記数式（１２）に示す理論モデルに従った応答が実現する、すなわち、所望の運動目的が達成されるはずである。
【０２６２】
しかし、実際には、様々な外乱の影響により、関節部４２１ａ〜４２１ｆの運動と上記数式（１２）に示すような理論モデルとの間には誤差（モデル化誤差）が生じる場合がある。モデル化誤差は、多リンク構造体の重量、重心、慣性テンソル等のマスプロパティに起因するものと、における関節部４２１ａ〜４２１ｆ内部における摩擦や慣性等に起因するものとに大別することができる。このうち、前者のマスプロパティに起因するモデル化誤差は、ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）データの高精度化や同定手法の適用によって、理論モデル構築時に比較的容易に低減することが可能である。
【０２６３】
一方、後者の関節部４２１ａ〜４２１ｆ内部の摩擦や慣性等に起因するモデル化誤差は、例えば関節部４２１ａ〜４２１ｆの減速機４２６における摩擦等、モデル化が困難な現象に起因しており、理論モデル構築時に無視できないモデル化誤差が残留し得る。また、上記数式（１２）におけるイナーシャＩａや粘性抵抗係数νａの値と、実際の関節部４２１ａ〜４２１ｆにおけるこれらの値との間に誤差が生じている可能性がある。これらのモデル化が困難な誤差は、関節部４２１ａ〜４２１ｆの駆動制御において外乱となり得る。従って、このような外乱の影響により、実際には、関節部４２１ａ〜４２１ｆの運動は、上記数式（１２）に示す理論モデル通りには応答しない場合がある。よって、一般化逆動力学によって算出された関節力である実在力τａを適用しても、制御目標である運動目的が達成されない場合が生じる。本実施形態では、各関節部４２１ａ〜４２１ｆにアクティブな制御系を付加することで、上記数式（１２）に示す理論モデルに従った理想応答を行うよう、関節部４２１ａ〜４２１ｆの応答を補正することを考える。具体的には、本実施形態では、関節部４２１ａ〜４２１ｆのトルクセンサ４２８、４２８ａを用いた摩擦補償型のトルク制御を行うに留まらず、要求される発生トルクτａ、外トルクτｅに対して、イナーシャＩａ及び粘性抵抗係数νａに至るまで理論値に従った理想応答を行うことが可能となる。
【０２６４】
本実施形態では、このように、ロボットアーム装置４００の関節部４２１ａ〜４２１ｆが上記数式（１２）に示すような理想的な応答を行うように関節部の駆動を制御することを、理想関節制御と呼称する。ここで、以下の説明では、当該理想関節制御によって駆動が制御されるアクチュエータのことを、理想的な応答が行われることから仮想アクチュエータ（ＶＡ：Ｖｉｒｔｕａｌｉｚｅｄ  Ａｃｔｕａｔｏｒ）とも呼称する。以下、図１５を参照して、本実施形態に係る理想関節制御について説明する。
【０２６５】
図１５は、本開示の一実施形態に係る理想関節制御について説明するための説明図である。なお、図１５では、理想関節制御に係る各種の演算を行う概念上の演算器をブロックで模式的に図示している。
【０２６６】
図１５を参照すると、アクチュエータ６１０は、図１３に示すアクチュエータ４３０の機構を模式的に表しており、モータ（Ｍｏｔｏｒ）６１１、減速機（Ｒｅｄｕｃｔｉｏｎ  Ｇｅａｒ）６１２、エンコーダ（Ｅｎｃｏｄｅｒ）６１３及びトルクセンサ（Ｔｏｒｑｕｅ  Ｓｅｎｓｏｒ）６１４は、それぞれ、図１３に示すモータ４２４、減速機４２６、エンコーダ４２７及びトルクセンサ４２８（又は図１４Ｂに示すトルクセンサ４２８ａ）に対応している。
【０２６７】
ここで、アクチュエータ６１０が上記数式（１２）で表される理論モデルに従った応答を行なうことは、上記数式（１２）の右辺が与えられたときに、左辺の回転角加速度が達成されることに他ならない。また、上記数式（１２）に示すように、理論モデルには、アクチュエータ６１０に作用する外トルク項τｅが含まれている。本実施形態では、理想関節制御を行うために、トルクセンサ６１４によって外トルクτｅを測定する。また、エンコーダ６１３によって測定されたアクチュエータ６１０の回転角度ｑに基づいて外乱に起因するトルクの推定値である外乱推定値τｄを算出するために、外乱オブザーバ６２０を適用する。
【０２６８】
ブロック６３１は、上記数式（１２）に示す関節部４２１ａ〜４２１ｆの理想的な関節モデル（Ｉｄｅａｌ  Ｊｏｉｎｔ  Ｍｏｄｅｌ）に従った演算を行う演算器を表している。ブロック６３１は、発生トルクτａ、外トルクτｅ、回転角速度（回転角度ｑの１階微分）を入力として、上記数式（１２）の左辺に示す回転角加速度目標値（回転角目標値ｑｒｅｆの２階微分）を出力することができる。
【０２６９】
本実施形態では、上記（６−２−２．一般化逆動力学について）で説明した方法によって算出された発生トルクτａと、トルクセンサ６１４によって測定された外トルクτｅが、ブロック６３１に入力される。一方、微分演算を行う演算器を表すブロック６３２に、エンコーダ６１３によって測定された回転角度ｑが入力されることにより、回転角速度（回転角度ｑの１階微分）が算出される。上記発生トルクτａ及び外トルクτｅに加えて、ブロック６３２によって算出された回転角速度がブロック６３１に入力されることにより、ブロック６３１によって回転角加速度目標値が算出される。算出された回転角加速度目標値は、ブロック６３３に入力される。
【０２７０】
ブロック６３３は、アクチュエータ６１０の回転角加速度に基づいてアクチュエータ６１０に生じるトルクを算出する演算器を表す。本実施形態においては、具体的には、ブロック６３３は、回転角加速度目標値にアクチュエータ６１０における公称イナーシャ（ノミナルイナーシャ）Ｊｎを乗じることにより、トルク目標値τｒｅｆを得ることができる。理想の応答においては、アクチュエータ６１０に当該トルク目標値τｒｅｆを生じさせることにより、所望の運動目的が達成されるはずであるが、上述したように、実際の応答には外乱等の影響が生じる場合がある。従って、本実施形態においては、外乱オブザーバ６２０によって外乱推定値τｄを算出し、外乱推定値τｄを用いて当該トルク目標値τｒｅｆを補正する。
【０２７１】
外乱オブザーバ６２０の構成について説明する。図１５に示すように、外乱オブザーバ６２０は、トルク指令値τと、エンコーダ６１３によって測定された回転角度ｑから算出される回転角速度に基づいて、外乱推定値τｄを算出する。ここで、トルク指令値τは、外乱の影響が補正された後の、最終的にアクチュエータ６１０に生じさせるトルク値である。例えば、外乱推定値τｄが算出されていない場合には、トルク指令値τはトルク目標値τｒｅｆとなる。
【０２７２】
外乱オブザーバ６２０は、ブロック６３４とブロック６３５とから構成される。ブロック６３４は、アクチュエータ６１０の回転角速度に基づいてアクチュエータ６１０に生じるトルクを算出する演算器を表す。本実施形態においては、具体的には、エンコーダ６１３によって測定された回転角度ｑから、ブロック６３２によって算出された回転角速度がブロック６３４に入力される。ブロック６３４は、伝達関数Ｊｎｓによって表される演算を行うことにより、すなわち、当該回転角速度を微分することにより回転角加速度を求め、更に算出された回転角加速度にノミナルイナーシャＪｎを乗じることにより、実際にアクチュエータ６１０に作用しているトルクの推定値（トルク推定値）を算出することができる。
【０２７３】
外乱オブザーバ６２０内では、当該トルク推定値とトルク指令値τとの差分が取られることにより、外乱によるトルクの値である外乱推定値τｄが推定される。具体的には、外乱推定値τｄは、前周の制御におけるトルク指令値τと、今回の制御におけるトルク推定値との差分であってよい。ブロック６３４によって算出されるトルク推定値は実際の測定値に基づくものであり、ブロック６３３によって算出されたトルク指令値τはブロック６３１に示す関節部４２１ａ〜４２１ｆの理想的な理論モデルに基づくものであるため、両者の差分を取ることによって、上記理論モデルでは考慮されていない外乱の影響を推定することができるのである。
【０２７４】
また、外乱オブザーバ６２０には、系の発散を防ぐために、ブロック６３５に示すローパスフィルター（ＬＰＦ：Ｌｏｗ  Ｐａｓｓ  Ｆｉｌｔｅｒ）が設けられる。ブロック６３５は、伝達関数ｇ／（ｓ＋ｇ）で表される演算を行うことにより、入力された値に対して低周波成分のみを出力し、系を安定化させる。本実施形態では、ブロック６３４によって算出されたトルク推定値とトルク指令値τｒｅｆとの差分値は、ブロック６３５に入力され、その低周波成分が外乱推定値τｄとして算出される。
【０２７５】
本実施形態では、トルク目標値τｒｅｆに外乱オブザーバ６２０によって算出された外乱推定値τｄを加算するフィードフォワード制御が行われることにより、最終的にアクチュエータ６１０に生じさせるトルク値であるトルク指令値τが算出される。そして、トルク指令値τに基づいてアクチュエータ６１０が駆動される。具体的には、トルク指令値τが対応する電流値（電流指令値）に変換され、当該電流指令値がモータ６１１に印加されることにより、アクチュエータ６１０が駆動される。
【０２７６】
以上、図１５を参照して説明した構成を取ることにより、本実施形態に係る関節部４２１ａ〜４２１ｆの駆動制御においては、摩擦等の外乱成分があった場合であっても、アクチュエータ６１０の応答を目標値に追従させることが可能となる。また、関節部４２１ａ〜４２１ｆの駆動制御について、理論モデルが仮定するイナーシャＩａ及び粘性抵抗係数νａに従った理想応答を行うことが可能となる。
【０２７７】
なお、以上説明した理想関節制御の詳細については、例えば、本願出願人による先行特許出願である特開２００９−２６９１０２号公報を参照することができる。
【０２７８】
以上、本実施形態において用いられる一般化逆動力学について説明するとともに、図１５を参照して本実施形態に係る理想関節制御について説明した。以上説明したように、本実施形態においては、一般化逆動力学を用いることにより、アーム部４２０の運動目的を達成するための各関節部４２１ａ〜４２１ｆの駆動パラメータ（例えば関節部４２１ａ〜４２１ｆの発生トルク値）を、拘束条件を考慮して算出する、全身協調制御が行われる。また、図１５を参照して説明したように、本実施形態においては、上記一般化逆動力学を用いた全身協調制御により算出された発生トルク値に対して外乱の影響を考慮した補正を行うことにより、関節部４２１ａ〜４２１ｆの駆動制御において理論モデルに基づいた理想的な応答を実現する、理想関節制御が行われる。従って、本実施形態においては、アーム部４２０の駆動について、運動目的を達成する高精度な駆動制御が可能となる。
【０２７９】
（６−２−４．ロボットアーム制御システムの構成）
次に、上記（６−２−２．一般化逆動力学について）及び上記（６−２−３．理想関節制御について）で説明した全身協調制御や理想関節制御がロボットアーム装置の駆動制御に適用された、本実施形態に係るロボットアーム制御システムの構成について説明する。
【０２８０】
図１６を参照して、本開示の一実施形態に係るロボットアーム制御システムの一構成例について説明する。図１６は、本開示の一実施形態に係るロボットアーム制御システムの一構成例を示す機能ブロック図である。なお、図１６に示すロボットアーム制御システムでは、ロボットアーム装置のアーム部の駆動の制御に関わる構成について主に図示している。
【０２８１】
図１６を参照すると、本開示の一実施形態に係るロボットアーム制御システム１は、ロボットアーム装置１０、制御装置２０及び表示装置３０を備える。本実施形態においては、制御装置２０によって、上記（６−２−２．一般化逆動力学について）で説明した全身協調制御及び上記（６−２−３．理想関節制御について）で説明した理想関節制御における各種の演算が行われ、その演算結果に基づいてロボットアーム装置１０のアーム部の駆動が制御される。また、ロボットアーム装置１０のアーム部には後述する撮像部１４０が設けられており、撮像部１４０によって撮影された画像が表示装置３０の表示画面に表示される。以下、ロボットアーム装置１０、制御装置２０及び表示装置３０の構成について詳細に説明する。なお、図１６に示すロボットアーム制御システム１は、図１を参照して説明したロボットアーム制御システム２に対応するものであり、ロボットアーム制御システム２に対して、図１では図示を省略していた、ロボットアーム装置１０の駆動制御に関する機能構成を改めて詳細に図示したものである。
【０２８２】
ロボットアーム装置１０は、複数の関節部と複数のリンクから構成される多リンク構造体であるアーム部を有し、当該アーム部を可動範囲内で駆動させることにより、当該アーム部の先端に設けられる先端ユニットの位置及び姿勢の制御を行う。ロボットアーム装置１０は、図１２に示すロボットアーム装置４００に対応している。
【０２８３】
図１６を参照すると、ロボットアーム装置１０は、アーム制御部１１０及びアーム部１２０を有する。また、アーム部１２０は、関節部１３０及び撮像部１４０を有する。
【０２８４】
アーム制御部１１０は、ロボットアーム装置１０を統合的に制御するとともに、アーム部１２０の駆動を制御する。アーム制御部１１０は、図１２を参照して説明した制御部（図１２には図示せず。）に対応している。具体的には、アーム制御部１１０は駆動制御部１１１を有し、駆動制御部１１１からの制御によって関節部１３０の駆動が制御されることにより、アーム部１２０の駆動が制御される。より具体的には、駆動制御部１１１は、関節部１３０のアクチュエータにおけるモータに対して供給される電流量を制御することにより、当該モータの回転数を制御し、関節部１３０における回転角度及び発生トルクを制御する。ただし、上述したように、駆動制御部１１１によるアーム部１２０の駆動制御は、制御装置２０における演算結果に基づいて行われる。従って、駆動制御部１１１によって制御される、関節部１３０のアクチュエータにおけるモータに対して供給される電流量は、制御装置２０における演算結果に基づいて決定される電流量である。ただし、本実施形態では、図１に示すように、各関節部１３０に関節制御部１３５が設けられ、当該関節制御部１３５によって、関節部１３０の駆動が制御されてもよい。
【０２８５】
アーム部１２０は、複数の関節部と複数のリンクから構成される多リンク構造体であり、アーム制御部１１０からの制御によりその駆動が制御される。アーム部１２０は、図１２に示すアーム部４２０に対応している。アーム部１２０は、関節部１３０及び撮像部１４０を有する。なお、アーム部１２０が有する複数の関節部の機能及び構成は互いに同様であるため、図１６では、それら複数の関節部を代表して１つの関節部１３０の構成を図示している。
【０２８６】
関節部１３０は、アーム部１２０においてリンク間を互いに回動可能に連結するとともに、アーム制御部１１０からの制御によりその回転駆動が制御されることによりアーム部１２０を駆動する。関節部１３０は、図１２に示す関節部４２１ａ〜４２１ｆに対応している。また、関節部１３０は、アクチュエータを有し、当該アクチュエータの構成は、例えば図１３、図１４Ａ及び図１４Ｂに示す構成と同様である。
【０２８７】
関節部１３０は、関節駆動部１３１及び関節状態検出部１３２を有する。
【０２８８】
関節駆動部１３１は、関節部１３０のアクチュエータにおける駆動機構であり、関節駆動部１３１が駆動することにより関節部１３０が回転駆動する。関節駆動部１３１は、駆動制御部１１１によってその駆動が制御される。例えば、関節駆動部１３１は、図１３に示すモータ４２４及びモータドライバ４２５に対応する構成であり、関節駆動部１３１が駆動することは、モータドライバ４２５が駆動制御部１１１からの指令に応じた電流量でモータ４２４を駆動することに対応している。
【０２８９】
関節状態検出部１３２は、関節部１３０の状態を検出する。ここで、関節部１３０の状態とは、関節部１３０の運動の状態を意味していてよい。例えば、関節部１３０の状態には、関節部１３０の回転角度、回転角速度、回転角加速度、発生トルク等の情報が含まれる。本実施形態においては、関節状態検出部１３２は、関節部１３０の回転角度を検出する回転角度検出部１３３及び関節部１３０の発生トルク及び外トルクを検出するトルク検出部１３４を有する。なお、回転角度検出部１３３及びトルク検出部１３４は、図１３に示すアクチュエータ４３０のエンコーダ４２７及び図１４Ａ及び図１４Ｂに示すトルクセンサ４２８、４２８ａに、それぞれ対応している。関節状態検出部１３２は、検出した関節部１３０の状態を制御装置２０に送信する。
【０２９０】
なお、図１６では、全身協調制御における制御量の演算処理について説明するために、関節状態検出部１３２の機能の一例として、主にアーム部１２０の運動を表す情報を取得する機能である、回転角度検出部１３３及びトルク検出部１３４を図示している。ただし、本実施形態では、関節状態検出部１３２は、図６に示すアクチュエータ１８０に設けられる各センサによって構成されてよい。例えば、回転角度検出部１３３は、図６に示すモータ角度センサ１８４ａ及び出力軸角度センサ１８４ｂによって構成されてよい。また、トルク検出部１３４は、図６に示すトルクセンサ１８３によって構成されてよい。関節状態検出部１３２は、例えば、モータに供給される電流を検出する機能やモータの周囲の温度を検出する機能等、アクチュエータ１８０の各センサに対応する、他の物理量を検出する機能を更に有してもよい。
【０２９１】
撮像部１４０は、アーム部１２０の先端に設けられる先端ユニット（図１に示す先端ユニット１４５に対応する。）の一例であり、撮影対象の画像を取得する。撮像部１４０は、図１２に示す撮像ユニット４２３に対応している。具体的には、撮像部１４０は、撮影対象を動画や静止画の形式で撮影することのできるカメラ等である。より具体的には、撮像部１４０は、２次元上に配列された複数の受光素子を有し、当該受光素子における光電変換により、撮影対象の画像を表す画像信号を取得することができる。撮像部１４０は、取得した画像信号を表示装置３０に送信する。
【０２９２】
なお、図１２に示すロボットアーム装置４００において撮像ユニット４２３がアーム部４２０の先端に設けられていたように、ロボットアーム装置１０においても、実際には撮像部１４０がアーム部１２０の先端に設けられている。図１６では、撮像部１４０が複数の関節部１３０及び複数のリンクを介して最終段のリンクの先端に設けられる様子を、関節部１３０と撮像部１４０との間にリンクを模式的に図示することにより表現している。
【０２９３】
なお、アーム部１２０の先端に設けられる先端ユニットは、撮像部１４０に限定されない。本実施形態では、アーム部１２０の先端には先端ユニットとして各種の医療用器具が接続され得る。当該医療用器具としては、例えば、メスや鉗子等の各種の施術器具や、超音波検査装置の探触子等の各種の検査装置の一ユニット等、施術に際して用いられる各種のユニットが挙げられる。また、本実施形態では、図１６に示す撮像部１４０や、内視鏡、顕微鏡等の撮像機能を有するユニットも医療用器具に含まれてよい。このように、本実施形態に係るロボットアーム装置１０は、医療用器具を備えた医療用ロボットアーム装置であると言える。同様に、本実施形態に係るロボットアーム制御システム１は、医療用ロボットアーム制御システムであると言える。なお、図１６に示すロボットアーム装置１０は、撮像機能を有するユニットを先端ユニットとして備えるビデオ顕微鏡用ロボットアーム装置であるとも言える。また、アーム部１２０の先端に、２つの撮像ユニット（カメラユニット）を有するステレオカメラが設けられ、撮像対象を３Ｄ画像として表示するように撮影が行われてもよい。
【０２９４】
以上、ロボットアーム装置１０の機能及び構成について説明した。次に、制御装置２０の機能及び構成について説明する。図１６を参照すると、制御装置２０は、入力部２１０、記憶部２２０及び制御部２３０を有する。
【０２９５】
制御部２３０は、制御装置２０を統合的に制御するとともに、ロボットアーム装置１０におけるアーム部１２０の駆動を制御するための各種の演算を行う。具体的には、制御部２３０は、ロボットアーム装置１０のアーム部１２０の駆動を制御するために、全身協調制御及び理想関節制御における各種の演算を行う。以下、制御部２３０の機能及び構成について詳しく説明するが、全身協調制御及び理想関節制御については、上記（６−２−２．一般化逆動力学について）及び上記（６−２−３．理想関節制御について）で既に説明しているため、ここでは詳しい説明は省略する。
【０２９６】
制御部２３０は、全身協調制御部２４０、理想関節制御部２５０及び異常検出部２６０を有する。
【０２９７】
全身協調制御部２４０は、一般化逆動力学を用いた全身協調制御に関する各種の演算を行う。本実施形態では、全身協調制御部２４０は、関節状態検出部１３２によって検出された関節部１３０の状態に基づいてアーム部１２０の状態（アーム状態）を取得する。また、全身協調制御部２４０は、当該アーム状態と、アーム部１２０の運動目的及び拘束条件と、に基づいて、操作空間におけるアーム部１２０の全身協調制御のための制御値を、一般化逆動力学を用いて算出する。なお、操作空間とは、例えばアーム部１２０に作用する力とアーム部１２０に発生する加速度との関係を記述するための空間である。
【０２９８】
全身協調制御部２４０は、アーム状態取得部２４１、演算条件設定部２４２、仮想力算出部２４３及び実在力算出部２４４を有する。ここで、上述した図１では、説明のため、便宜的に、演算条件設定部２４２を、全身協調制御部２４０に含まれない一機能として図示していたが、これらは同様の機能を有するものである。
【０２９９】
アーム状態取得部２４１は、関節状態検出部１３２によって検出された関節部１３０の状態に基づいて、アーム部１２０の状態（アーム状態）を取得する。ここで、アーム状態とは、アーム部１２０の運動の状態を意味していてよい。例えば、アーム状態には、アーム部１２０の位置、速度、加速度、力等の情報が含まれる。上述したように、関節状態検出部１３２は、関節部１３０の状態として、各関節部１３０における回転角度、回転角速度、回転角加速度、発生トルク等の情報を取得している。また、後述するが、記憶部２２０は、制御装置２０によって処理される各種の情報を記憶するものであり、本実施形態においては、記憶部２２０には、アーム部１２０に関する各種の情報（アーム情報）、例えばアーム部１２０を構成する関節部１３０及びリンクの数や、リンクと関節部１３０との接続状況、リンクの長さ等の情報が格納されていてよい。アーム状態取得部２４１は、記憶部２２０から当該アーム情報を取得することができる。従って、アーム状態取得部２４１は、関節部１３０の状態とアーム情報とに基づいて、複数の関節部１３０、複数のリンク及び撮像部１４０の空間上の位置（座標）（すなわち、アーム部１２０の形状や撮像部１４０の位置及び姿勢）や、各関節部１３０、リンク及び撮像部１４０に作用している力等の情報をアーム状態として取得することができる。アーム状態取得部２４１は、取得したアーム情報を演算条件設定部２４２に送信する。
【０３００】
演算条件設定部２４２は、一般化逆動力学を用いた全身協調制御に関する演算における演算条件を設定する。ここで、演算条件とは、運動目的及び拘束条件であってよい。運動目的は、アーム部１２０の運動に関する各種の情報であってよい。具体的には、運動目的は、撮像部１４０の位置及び姿勢（座標）、速度、加速度並びに力等の目標値であったり、アーム部１２０の複数の関節部１３０及び複数のリンクの位置（座標）、速度、加速度及び力等の目標値であったりしてもよい。また、拘束条件は、アーム部１２０の運動を制限（拘束）する各種の情報であってよい。具体的には、拘束条件は、アーム部の各構成部材が移動不可能な領域の座標や、移動不可能な速度、加速度の値、発生不可能な力の値等であってよい。また、拘束条件における各種の物理量の制限範囲は、アーム部１２０の構造的に実現することが不可能であることから設定されてもよいし、ユーザによって適宜設定されてもよい。また、演算条件設定部２４２は、アーム部１２０の構造についての物理モデル（例えば、アーム部１２０を構成するリンクの数や長さ、リンクの関節部１３０を介した接続状況、関節部１３０の可動範囲等がモデル化されたもの。内部モデルに対応する。）を有し、当該物理モデルに、所望の運動条件及び拘束条件が反映された制御モデルを生成することにより、運動条件及び拘束条件を設定してもよい。
【０３０１】
本実施形態においては、運動目的及び拘束条件を適切に設定することにより、アーム部１２０に所望の動作を行わせることが可能となる。例えば、運動目的として、撮像部１４０の位置の目標値を設定することにより撮像部１４０をその目標の位置に移動させることはもちろんのこと、アーム部１２０が空間上の所定の領域内に侵入しないようにする等、拘束条件によって移動の制約を設けてアーム部１２０を駆動させることも可能である。
【０３０２】
運動目的の具体例として、例えば、運動目的は、撮像部１４０の撮影方向が施術部位に固定された状態で、撮像部１４０が施術部位を頂点とした円錐の面内を移動する、当該円錐の軸を旋回軸とした旋回動作である、ピボット動作であってもよい。例えば、撮像部１４０の向きが空間上の所定の点に固定される（すなわち、撮像部１４０の光軸上に空間上の所定の点が位置する）ような拘束条件が設定されることにより、撮像部１４０が当該所定の点を頂点とした円錐体の面上を移動するピボット動作が実現され得る。また、当該ピボット動作においては、撮像部１４０と円錐の頂点に当たる点との距離が一定に保たれた状態で旋回動作が行われてもよい。このようなピボット動作を行うことにより、観察部位を等距離からかつ異なる角度から観察できるようになるため、手術を行うユーザの利便性を向上させることができる。
【０３０３】
また、他の具体例として、運動目的は、各関節部１３０における発生トルクを制御する内容であってもよい。具体的には、運動目的は、アーム部１２０に作用する重力を打ち消すように関節部１３０の状態を制御するとともに、更に外部から与えられた力の方向へのアーム部１２０の移動をサポートするように関節部１３０の状態を制御するパワーアシスト動作であってもよい。より具体的には、パワーアシスト動作においては、アーム部１２０の各関節部１３０における重力による外トルクを打ち消す発生トルクを各関節部１３０に生じさせるように各関節部１３０の駆動が制御されることにより、アーム部１２０の位置及び姿勢が所定の状態で保持される。この状態で更に外部から（例えばユーザから）外トルクが加えられた場合に、与えられた外トルクと同じ方向の発生トルクを各関節部１３０に生じさせるように各関節部１３０の駆動が制御される。このようなパワーアシスト動作を行うことにより、ユーザが手動でアーム部１２０を動かす場合に、ユーザはより小さい力でアーム部１２０を移動させることができるため、あたかも無重力下でアーム部１２０を動かしているような感覚をユーザに対して与えることができる。また、上述したピボット動作と当該パワーアシスト動作とを組み合わせることも可能である。
【０３０４】
ここで、本実施形態において、運動目的とは、全身協調制御において実現されるアーム部１２０の動作（運動）を意味していてもよいし、当該動作における瞬時的な運動目的（すなわち、運動目的における目標値）を意味していてもよい。例えば上記のピボット動作であれば、撮像部１４０がピボット動作を行うこと自体が運動目的であるが、ピボット動作を行っている最中においては、当該ピボット動作における円錐面内での撮像部１４０の位置や速度等の値が、瞬時的な運動目的（当該運動目的における目標値）として設定されている。また例えば上記のパワーアシスト動作であれば、外部から加えられた力の方向へのアーム部１２０の移動をサポートするパワーアシスト動作を行うこと自体が運動目的であるが、パワーアシスト動作を行っている最中においては、各関節部１３０に加えられる外トルクと同じ方向への発生トルクの値が、瞬時的な運動目的（当該運動目的における目標値）として設定されている。本実施形態における運動目的は、瞬時的な運動目的（例えばある時間におけるアーム部１２０の各構成部材の位置や速度、力等の目標値）と、瞬時的な運動目的が連続的に達成された結果、経時的に実現されるアーム部１２０の各構成部材の動作の、双方を含む概念である。全身協調制御部２４０における全身協調制御のための演算における各ステップでは瞬時的な運動目的がその都度設定され、当該演算が繰り返し行われることにより、最終的に所望の運動目的が達成される。
【０３０５】
なお、本実施形態においては、運動目的が設定される際に、各関節部１３０の回転運動における粘性抵抗係数も適宜設定されてよい。上述したように、本実施形態に係る関節部１３０は、アクチュエータ４３０の回転運動における粘性抵抗係数を適宜調整できるように構成される。従って、運動目的の設定に際して各関節部１３０の回転運動における粘性抵抗係数も設定することにより、例えば外部から加えられる力に対して回転しやすい状態や回転し難い状態を実現することができる。例えば上述したパワーアシスト動作であれば、関節部１３０における粘性抵抗係数が小さく設定されることにより、ユーザがアーム部１２０を移動させる際に要する力がより小さくてよく、ユーザに与えられる無重力感がより助長される。このように、各関節部１３０の回転運動における粘性抵抗係数は、運動目的の内容に応じて適宜設定されてよい。
【０３０６】
なお、運動目的の具体例については、下記（６−２−５．運動目的の具体例）で改めて詳しく説明する。
【０３０７】
ここで、本実施形態においては、後述するように、記憶部２２０には、全身協調制御に関する演算において用いられる運動目的や拘束条件等の演算条件に関するパラメータが格納されていてもよい。演算条件設定部２４２は、記憶部２２０に記憶されている拘束条件を、全身協調制御の演算に用いる拘束条件として設定することができる。
【０３０８】
また、本実施形態においては、演算条件設定部２４２は、複数の方法によって運動目的を設定することができる。例えば、演算条件設定部２４２は、アーム状態取得部２４１から送信されるアーム状態に基づいて運動目的を設定してもよい。上述したように、アーム状態には、アーム部１２０の位置の情報やアーム部１２０に対して作用する力の情報が含まれる。従って、例えばユーザがアーム部１２０を手動で移動させようとしている場合には、アーム状態取得部２４１によって、ユーザがアーム部１２０をどのように移動させようとしているか、に関する情報もアーム状態として取得される。従って、演算条件設定部２４２は、取得されたアーム状態に基づいて、ユーザがアーム部１２０を移動させた位置や速度、力等を瞬時的な運動目的として設定することができる。このように運動目的が設定されることにより、アーム部１２０の駆動は、ユーザによるアーム部１２０の移動を追随し、サポートするように制御される。
【０３０９】
また、例えば、演算条件設定部２４２は、入力部２１０からユーザによって入力される指示に基づいて運動目的を設定してもよい。後述するが、入力部２１０は、ユーザが制御装置２０にロボットアーム装置１０の駆動制御に関する情報や命令等を入力するための入力インターフェースであり、本実施形態においては、ユーザによる入力部２１０からの操作入力に基づいて、運動目的が設定されてもよい。具体的には、入力部２１０は、例えばレバー、ペダル等のユーザが操作する操作手段を有し、当該レバー、ペダル等の操作に応じて、アーム部１２０の各構成部材の位置や速度等が、演算条件設定部２４２によって瞬時的な運動目的として設定されてもよい。
【０３１０】
更に、例えば、演算条件設定部２４２は、記憶部２２０に記憶されている運動目的を、全身協調制御の演算に用いる運動目的として設定してもよい。例えば、空間上の所定の点で撮像部１４０が静止するという運動目的であれば、当該所定の点の座標を運動目的として予め設定することができる。また、例えば、撮像部１４０が空間上において所定の軌跡上を移動するという運動目的であれば、当該所定の軌跡を表す各点の座標を運動目的として予め設定することができる。このように、運動目的が予め設定できるものである場合には、当該運動目的が予め記憶部２２０に記憶されていてもよい。また、例えば上述したピボット動作であれば、運動目的は円錐の面内における位置や速度等を目標値とするものに限られるし、パワーアシスト動作であれば、運動目的は力を目標値とするものに限られる。このように、ピボット動作やパワーアシスト動作のような運動目的が予め設定されている場合には、これらの運動目的における瞬時的な運動目的として設定され得る目標値の範囲や種類等に関する情報が、記憶部２２０に記憶されていてもよい。演算条件設定部２４２は、このような運動目的に関する各種の情報も含めて、運動目的として設定することができる。
【０３１１】
なお、演算条件設定部２４２が、上記のいずれの方法で運動目的を設定するかは、ロボットアーム装置１０の用途等に応じてユーザによって適宜設定可能であってよい。また、演算条件設定部２４２は、また、上記の各方法を適宜組み合わせることにより、運動目的及び拘束条件を設定してもよい。なお、記憶部２２０に格納されている拘束条件の中に運動目的の優先度が設定されていてもよく、複数の互いに異なる運動目的が存在する場合には、演算条件設定部２４２は、当該拘束条件の優先度に応じて運動目的を設定してもよい。演算条件設定部２４２は、アーム状態並びに設定した運動目的及び拘束条件を仮想力算出部２４３に送信する。
【０３１２】
仮想力算出部２４３は、一般化逆動力学を用いた全身協調制御に関する演算における仮想力を算出する。仮想力算出部２４３が行う仮想力の算出処理は、例えば、上記（６−２−２−１．仮想力算出処理）で説明した一連の処理であってよい。仮想力算出部２４３は、算出した仮想力ｆｖを実在力算出部２４４に送信する。
【０３１３】
実在力算出部２４４は、一般化逆動力学を用いた全身協調制御に関する演算における実在力を算出する。実在力算出部２４４が行う実在力の算出処理は、例えば、上記（６−２−２−２．実在力算出処理）で説明した一連の処理であってよい。実在力算出部２４４は、算出した実在力（発生トルク）τａを理想関節制御部２５０に送信する。なお、本実施形態においては、実在力算出部２４４によって算出された発生トルクτａのことを、全身協調制御における関節部１３０の制御値という意味で、制御値又は制御トルク値とも呼称する。
【０３１４】
理想関節制御部２５０は、理論モデルに基づいた理想的な応答を実現する理想関節制御に関する各種の演算を行う。本実施形態では、理想関節制御部２５０は、実在力算出部２４４によって算出された発生トルクτａに対して外乱の影響を補正することにより、アーム部１２０の理想的な応答を実現するトルク指令値τを算出する。なお、理想関節制御部２５０によって行われる演算処理は、上記（６−２−３．理想関節制御について）で説明した一連の処理に対応している。
【０３１５】
理想関節制御部２５０は、外乱推定部２５１及び指令値算出部２５２を有する。
【０３１６】
外乱推定部２５１は、トルク指令値τと、回転角度検出部１３３によって検出された回転角度ｑから算出される回転角速度に基づいて、外乱推定値τｄを算出する。なお、ここでいうトルク指令値τは、最終的にロボットアーム装置１０に送信されるアーム部１２０での発生トルクを表す指令値である。このように、外乱推定部２５１は、図１５に示す外乱オブザーバ６２０に対応する機能を有する。
【０３１７】
指令値算出部２５２は、外乱推定部２５１によって算出された外乱推定値τｄを用いて、最終的にロボットアーム装置１０に送信されるアーム部１２０に生じさせるトルクを表す指令値であるトルク指令値τを算出する。具体的には、指令値算出部２５２は、上記数式（１２）に示す関節部１３０の理想モデルから算出されるτｒｅｆに外乱推定部２５１によって算出された外乱推定値τｄを加算することにより、トルク指令値τを算出する。例えば、外乱推定値τｄが算出されていない場合には、トルク指令値τはトルク目標値τｒｅｆとなる。このように、指令値算出部２５２の機能は、図１５に示す外乱オブザーバ６２０以外の機能に対応している。
【０３１８】
以上説明したように、理想関節制御部２５０においては、外乱推定部２５１と指令値算出部２５２との間で繰り返し情報のやり取りが行われることにより、図１５を参照して説明した一連の処理が行われる。理想関節制御部２５０は算出したトルク指令値τをロボットアーム装置１０の駆動制御部１１１に送信する。駆動制御部１１１は、送信されたトルク指令値τに対応する電流量を、関節部１３０のアクチュエータにおけるモータに対して供給する制御を行うことにより、当該モータの回転数を制御し、関節部１３０における回転角度及び発生トルクを制御する。
【０３１９】
本実施形態に係るロボットアーム制御システム１においては、ロボットアーム装置１０におけるアーム部１２０の駆動制御は、アーム部１２０を用いた作業が行われている間継続的に行われるため、ロボットアーム装置１０及び制御装置２０における以上説明した処理が繰り返し行われる。すなわち、ロボットアーム装置１０の関節状態検出部１３２によって関節部１３０の状態が検出され、制御装置２０に送信される。制御装置２０では、当該関節部１３０の状態と、運動目的及び拘束条件とに基づいて、アーム部１２０の駆動を制御するための全身協調制御及び理想関節制御に関する各種の演算が行われ、演算結果としてのトルク指令値τがロボットアーム装置１０に送信される。ロボットアーム装置１０では、当該トルク指令値τに基づいてアーム部１２０の駆動が制御され、駆動中又は駆動後の関節部１３０の状態が、再び関節状態検出部１３２によって検出される。
【０３２０】
異常検出部２６０は、関節部１３０の異常を検出するための各種の情報に基づいて、関節部１３０に生じた異常を検出する。ここで、異常検出部２６０の機能については、上記＜２．ロボットアーム制御システムの機能構成＞で詳しく説明しているため、ここでは、その詳細な説明は省略する。異常検出部２６０によって検出された異常についての情報は、例えば演算条件設定部２４２に提供され、あるいは記憶部２２０に記憶される。演算条件設定部２４２は、当該異常についての情報に基づいて、当該異常の種類に応じたアーム部１２０に行わせる動作（異常回避動作、一部機能停止動作及び機能停止動作）を判断し、判断した動作に対応する演算条件（例えば、運動目的、拘束条件および内部モデル）を設定する。このようにして設定された演算条件に基づいて、仮想力算出部２４３及び実在力算出部２４４が各種の演算処理を行うことにより、選択された異常回避動作、一部機能停止動作及び機能停止動作のいずれかを実現するような制御値が算出されることとなる。
【０３２１】
制御装置２０が有する他の構成についての説明を続ける。
【０３２２】
入力部２１０は、ユーザが制御装置２０にロボットアーム装置１０の駆動制御に関する情報や命令等を入力するための入力インターフェースである。本実施形態においては、ユーザによる入力部２１０からの操作入力に基づいて、ロボットアーム装置１０のアーム部１２０の駆動が制御され、撮像部１４０の位置及び姿勢が制御されてもよい。具体的には、上述したように、ユーザによって入力部２１０から入力されたアームの駆動の指示に関する指示情報が演算条件設定部２４２に入力されることにより、演算条件設定部２４２が当該指示情報に基づいて全身協調制御における運動目的を設定してもよい。このように、ユーザが入力した指示情報に基づく運動目的を用いて全身協調制御が行われることにより、ユーザの操作入力に応じたアーム部１２０の駆動が実現される。
【０３２３】
具体的には、入力部２１０は、例えばマウス、キーボード、タッチパネル、ボタン、スイッチ、レバー及びペダル等のユーザが操作する操作手段を有する。例えば入力部２１０がペダルを有する場合、ユーザは当該ペダルを足で操作することによりアーム部１２０の駆動を制御することができる。従って、ユーザが患者の施術部位に対して両手を使って処置を行っている場合であっても、足によるペダルの操作によって撮像部１４０の位置及び姿勢、すなわち、施術部位の撮影位置や撮影角度を調整することができる。
【０３２４】
記憶部２２０は、制御装置２０によって処理される各種の情報を記憶する。本実施形態においては、記憶部２２０は、制御部２３０によって行われる全身協調制御及び理想関節制御に関する演算において用いられる各種のパラメータを記憶することができる。例えば、記憶部２２０は、全身協調制御部２４０による全身協調制御に関する演算において用いられる運動目的、拘束条件および内部モデルを記憶していてもよい。記憶部２２０が記憶する運動目的は、上述したように、例えば撮像部１４０が空間上の所定の点で静止することのような、予め設定され得る運動目的であってよい。また、拘束条件は、アーム部１２０の幾何的な構成やロボットアーム装置１０の用途等に応じて、ユーザによって予め設定され、記憶部２２０に格納されていてもよい。また、記憶部２２０には、アーム状態取得部２４１がアーム状態を取得する際に用いるアーム部１２０に関する各種の情報が記憶されていてもよい。更に、記憶部２２０には、制御部２３０による全身協調制御及び理想関節制御に関する演算における演算結果や演算過程で算出される各数値等が記憶されてもよい。このように、記憶部２２０には、制御部２３０によって行われる各種の処理に関するあらゆるパラメータが格納されていてよく、制御部２３０は、記憶部２２０と相互に情報を送受信しながら各種の処理を行うことができる。
【０３２５】
以上、制御装置２０の機能及び構成について説明した。なお、本実施形態に係る制御装置２０は、例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やサーバ等の各種の情報処理装置（演算処理装置）によって構成することができる。次に、表示装置３０の機能及び構成について説明する。
【０３２６】
表示装置３０は、各種の情報を表示画面上にテキスト、イメージ等様々な形式で表示することにより、当該情報をユーザに対して視覚的に通知する。本実施形態においては、表示装置３０は、ロボットアーム装置１０の撮像部１４０によって撮影された画像を表示画面上に表示する。具体的には、表示装置３０は、撮像部１４０によって取得された画像信号に各種の画像処理を施す画像信号処理部（図示せず。）や処理された画像信号に基づく画像を表示画面上に表示させる制御を行う表示制御部（図示せず。）等の機能及び構成を有する。なお、表示装置３０は、上記の機能及び構成以外にも、一般的に表示装置が有する各種の機能及び構成を有してもよい。表示装置３０は、図１１に示す表示装置５５０に対応している。
【０３２７】
以上、図１６を参照して、本実施形態に係るロボットアーム装置１０、制御装置２０及び表示装置３０の機能及び構成について説明した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０３２８】
以上説明したように、本実施形態によれば、ロボットアーム装置１０における多リンク構造体であるアーム部１２０が、少なくとも６自由度以上の自由度を有するとともに、当該アーム部１２０を構成する複数の関節部１３０のそれぞれの駆動が駆動制御部１１１によって制御される。そして、当該アーム部１２０の先端には医療用器具が設けられる。このように、各関節部１３０の駆動が制御されることにより、より自由度の高いアーム部１２０の駆動制御が実現され、よりユーザにとって操作性の高い医療用のロボットアーム装置１０が実現される。
【０３２９】
より具体的には、本実施形態によれば、ロボットアーム装置１０において、関節状態検出部１３２によって関節部１３０の状態が検出される。そして、制御装置２０において、当該関節部１３０の状態と、運動目的及び拘束条件とに基づいて、アーム部１２０の駆動を制御するための一般化逆動力学を用いた全身協調制御に関する各種の演算が行われ、演算結果としてのトルク指令値τが算出される。更に、ロボットアーム装置１０において、当該トルク指令値τに基づいてアーム部１２０の駆動が制御される。このように、本実施形態においては、一般化逆動力学を用いた全身協調制御により、アーム部１２０の駆動が制御される。従って、力制御によるアーム部１２０の駆動制御が実現され、よりユーザにとって操作性の高いロボットアーム装置が実現される。また、本実施形態では、全身協調制御において、例えばピボット動作やパワーアシスト動作といった、よりユーザの利便性を向上させる各種の運動目的を実現する制御が可能となる。更に、本実施形態においては、例えばアーム部１２０を手動で移動させたり、ペダルからの操作入力により移動させたりといった、多様な駆動手段が実現されるため、ユーザの利便性の更なる向上が実現される。
【０３３０】
また、本実施形態においては、アーム部１２０の駆動制御について、全身協調制御と併せて理想関節制御が適用される。理想関節制御においては、関節部１３０内部の摩擦や慣性等の外乱成分を推定し、推定した外乱成分を用いたフィードフォワード制御が行われる。従って、摩擦等の外乱成分がある場合であっても、関節部１３０の駆動について理想的な応答を実現することができる。よって、アーム部１２０の駆動制御において、振動等の影響がより少ない、高精度の応答性と高い位置決め精度や安定性が実現される。
【０３３１】
更に、本実施形態においては、アーム部１２０を構成する複数の関節部１３０のそれぞれが、例えば図１３に示すような、理想関節制御に適合した構成を有し、各関節部１３０における回転角度、発生トルク及び粘性抵抗係数を電流値によって制御することができる。このように、各関節部１３０の駆動が電流値によって制御され、また、全身協調制御により各関節部１３０の駆動がアーム部１２０全体の状態を把握しながら制御されるため、カウンターバランスが不要となり、ロボットアーム装置１０の小型化が実現される。
【０３３２】
（６−２−５．運動目的の具体例）
次に、本実施形態に係る運動目的の具体例について説明する。上記（６−２−４．ロボットアーム制御システムの構成）で説明したように、本実施形態においては、全身協調制御によって各種の運動目的が実現される。ここでは、本実施形態に係る運動目的の具体例として、パワーアシスト動作と、ピボット動作について説明する。なお、以下の運動目的の具体例についての説明では、図１６に示す機能ブロック図における参照番号を用いて、本実施形態に係るロボットアーム制御システムの構成部材を表す。
【０３３３】
パワーアシスト動作は、アーム部１２０に作用する重力を打ち消すように関節部１３０の状態を制御するとともに、更に外部から与えられた力の方向へのアーム部１２０の移動をサポートするように関節部１３０の状態を制御する動作である。具体的には、ユーザがアーム部１２０を手動で動かす際に、ユーザによって加えられた力をサポートするようにアーム部１２０の駆動を制御する動作である。より具体的には、パワーアシスト動作を実現するために、まず、重力以外の力がアーム部１２０に作用していない状態における外トルクがトルク検出部１３４によって検出され、検出された外トルクを打ち消す発生トルクを各関節部１３０に生じさせるように、瞬時的な運動目的が設定される。この段階で、アーム部１２０の位置及び姿勢が所定の状態で保持される。この状態で更に外部から（例えばユーザから）外トルクが加えられた場合に、追加的に与えられた外トルクがトルク検出部１３４によって検出され、検出された追加的な外トルクと同じ方向の発生トルクを各関節部１３０に生じさせるという瞬時的な運動目的が更に設定される。このような瞬時的な運動目的に従って各関節部１３０の駆動が制御されることによりパワーアシスト動作が実現される。パワーアシスト動作により、ユーザはより小さい力でアーム部を移動させることができるため、あたかも無重力下でアーム部１２０を動かしているような感覚を得ることができ、ユーザによるアーム部１２０の操作性が向上する。
【０３３４】
ピボット動作は、アーム部１２０の先端に設けられる先端ユニットが、当該先端ユニットの向きが空間上の所定の点に固定された状態で、当該所定の点を頂点とした円錐の面上を移動する、当該円錐の軸を旋回軸とした旋回動作である。具体的に先端ユニットが撮像部１４０である場合であれば、ピボット動作は、アーム部１２０の先端に設けられる撮像部１４０が、撮像部１４０の撮影方向が空間上の所定の点に固定された状態で、当該所定の点を頂点とした円錐の面上を移動する、当該円錐の軸を旋回軸とした旋回動作である。ピボット動作における円錐の頂点に当たる点としては、例えば施術部位が選択される。また、ピボット動作においては、先端ユニット又は撮像部１４０と円錐の頂点に当たる点との距離が一定に保たれた状態で旋回動作が行われてもよい。なお、先端ユニットの向き又は撮像部１４０の撮影方向が空間上の所定の点（例えば施術部位）に固定されることから、ピボット動作はポイントロック動作とも呼ばれる。
【０３３５】
ピボット動作について、図１７及び図１８を参照してより詳細に説明する。図１７は、本開示の一実施形態に係るアーム動作の一具体例であるピボット動作について説明するための説明図である。図１８は、図１７に示すピボット動作を実現するための運動目的及び拘束条件について説明するための説明図である。
【０３３６】
図１７を参照すると、患者７５０上における施術部位がピボット動作における頂点に設定されている。当該頂点をピボット点Ｐｉと呼称する。図１７では、簡単のため、本実施形態に係るロボットアーム装置１０のうち、図１６における撮像部１４０に対応するユニットである撮像ユニット７１３のみを図示している。図１７に示すように、ピボット動作においては、撮像ユニット７１３が円錐Ａの底面の円周上に限り移動することができるように、すなわち、撮像ユニット７１３とピボット点Ｐｉとの距離が一定に保たれた状態で撮像ユニット７１３が円錐Ａの面内を移動するように、運動目的及び拘束条件が設定されてもよい。また、円錐Ａの形状、すなわち、円錐Ａの頂点の角度θや、ピボット点Ｐｉと撮像ユニット７１３との距離は、ユーザによって適宜設定されてよい。例えば、ピボット点Ｐｉと撮像ユニット７１３との距離は撮像ユニット７１３における光学系の焦点距離に調整される。このようなピボット動作を適用することにより、施術部位を等距離からかつ異なる角度から観察できるようになるため、手術を行うユーザの利便性を向上させることができる。
【０３３７】
また、ピボット動作においては、円錐Ａ及び円錐Ｂのように、ピボット点Ｐｉを固定したまま撮像ユニット７１３が移動可能な円錐の位置を移動させることができてもよい。図１７に示す例では、円錐Ａの旋回軸は施術部位に対して略垂直であり、円錐Ｂの旋回軸は施術部位に対して略水平である。このように、例えばピボット動作を行う円錐を、円錐Ａ、Ｂのように、ピボット点Ｐｉを固定したまま略９０度回転できるように、運動目的及び拘束条件が設定されてもよい。このようなピボット動作を適用することにより、施術部位を更に多くの方向から観察できるようになるため、ユーザの利便性を更に向上させることができる。
【０３３８】
なお、図１７に示す例では、撮像ユニット７１３が円錐Ａの底面の円周上に限り移動することができるように運動目的及び拘束条件が設定される例を示しているが、本実施形態に係るピボット動作はかかる例に限定されない。例えば、ピボット点Ｐｉの位置及び円錐Ａ、Ｂの頂点の角度θは固定したまま、ピボット点Ｐｉと撮像ユニット７１３との距離は自由に移動できるように、運動目的及び拘束条件が設定されてもよい。このようなピボット動作を適用することにより、角度は固定したまま撮像ユニット７１３と施術部位との距離だけを変えることができるようになるため、撮像ユニット７１３の焦点距離（フォーカス）を適宜調整することにより施術部位を拡大又は縮小して観察する等、よりユーザの要求に応える施術部位の観察が可能となる。
【０３３９】
次に、図１８を参照して、図１７に示したようなピボット動作を実現するための運動目的及び拘束条件について詳しく説明する。図１８を参照すると、撮像ユニット７１３を有するアーム部７１０がピボット点Ｐｉを基点としてピボット動作を行っている様子が図示されている。なお、図１８では、撮像ユニット７１３とピボット点Ｐｉとの距離が一定に保たれた状態でのピボット動作を例に挙げて説明を行う。アーム部７１０は、複数の関節部７１１ａ、７１１ｂ、７１１ｃと複数のリンク７１２ａ、７１２ｂ、７１２ｃを有し、本実施形態に係る全身協調制御及び理想関節制御によってその駆動が制御されているとする。例えば、アーム部７１０及びその構成部材は、図１２に示した本実施形態に係るアーム部４２０及びその構成部材と同様の構成を有する。
【０３４０】
ここで、アーム部７１０の支点である原点ＯＡを零点とするアーム座標系と、空間上の原点ＯＳを零点とする空間座標系を考える。アーム部７１０の運動はアーム座標系で管理されている。なお、アーム座標系及び空間座標系は、相互の座標系への座標変換が可能であるように定義される。
【０３４１】
空間座標系から見た撮像中心をＰｗとする。また、アーム座標系において、撮像ユニット７１３とリンク７１２ｃとを接続する関節部７１１ｃから、撮像ユニット７１３自体の長さＤと撮像ユニット７１３の焦点距離ｆだけ離れた位置をピボット点Ｐｉとする。
【０３４２】
この状態で、ピボット点Ｐｉと撮像中心Ｐｗとが一致した状態でアーム部７１０が駆動されるように、運動目的及び拘束条件を設ける。すなわち、アーム座標系におけるピボット点Ｐｉを空間座標系における撮像中心Ｐｗに固定するような拘束をアーム座標系において設ける。また、運動目的として、撮像ユニット７１３がピボット点Ｐｉ（すなわち撮像中心Ｐｗ）を頂点とする円錐の面上に位置するような座標や、撮像ユニット７１３がピボット点Ｐｉを向くような撮像ユニット７１３の姿勢が設定される。このような拘束条件及び運動目的の下で全身協調制御が行われることにより、アーム部７１０の動作によって撮像ユニット７１３の位置及び姿勢が変化したとしても、撮像ユニット７１３の向きは常に撮像中心Ｐｗ（すなわち、ピボット点Ｐｉ）を向いたまま、かつ、撮像ユニット７１３と撮像中心Ｐｗとの距離が焦点距離ｆに保たれたままとなる。従って、撮像ユニット７１３と撮像中心Ｐｗとの距離が一定に保たれた状態でのピボット動作が実現される。撮像ユニット７１３と撮像中心Ｐｗ（又はピボット点Ｐｉ）との距離を変化させながらピボット動作を行う際には、上述したピボット点Ｐｉの設定方法を変更すればよい。具体的には、例えば、アーム座標系において、関節部７１１ｃから撮像ユニット７１３自体の長さＤと任意の距離だけ離れた位置をピボット点Ｐｉとし、当該任意の距離を可変なパラメータとすればよい。
【０３４３】
なお、上述したピボット動作とパワーアシスト動作とが組み合わされて用いられてもよい。ピボット動作とパワーアシスト動作とが組み合わされて用いられる場合、例えばユーザが手動で撮像部１４０を移動させる際に、ユーザは無重力下で撮像部１４０を移動させているような感覚でより少ない力で撮像部１４０を移動させることができるとともに、撮像部１４０の移動位置は円錐の面内に制限される。従って、ピボット動作時における撮像部１４０の移動の操作性が向上する。
【０３４４】
以上、本実施形態に係る運動目的の具体例として、パワーアシスト動作及びピボット動作について説明した。なお、本実施形態に係る運動目的はかかる例に限定されない。本実施形態では、例えば以下のような運動目的も実現可能である。
【０３４５】
例えば、撮像部１４０の位置が所定の点で固定されるように、撮像部１４０の座標が運動目的として設定されてもよい。この場合、例えばアーム部１２０の撮像部１４０以外の構成部材に外部から力が与えられた際に、関節部１３０及びリンクも所定の位置で固定され移動しないように運動目的及び拘束条件を設定することも可能であるし、関節部１３０及びリンクは与えられた外力に応じて移動するものの撮像部１４０の位置は固定されるように運動目的及び拘束条件を設定することも可能である。後者の場合、例えば、アーム部１２０が作業の妨げとなり移動させようとする際に、撮像部１４０による撮影画像は固定されたままアーム部１２０の他の構成部材の位置及び姿勢を移動させるといった、より自由度の高い制御が実現される。
【０３４６】
また、例えば、駆動中にアーム部１２０がヒトやモノとの接触を検出した場合に、即座にアーム部１２０の駆動を停止する動作が実現されるように、運動目的及び拘束条件が設定されてもよい。このような動作を行うことにより、アーム部１２０がヒトやモノに衝突する際の危険性を低減することができる。なお、アーム部１２０がヒトやモノと接触したことは、例えば関節状態検出部１３２によって関節部１３０に加えられた外トルクの変化によって検出されてもよい。
【０３４７】
また、例えば、撮像部１４０が空間上において所定の軌跡上を移動するように運動目的が設定されてもよい。具体的には、当該所定の軌跡を表す各点の座標が運動目的として設定されてもよい。このように運動目的が設定されることにより、撮像部１４０の移動可能範囲が当該軌跡上に制限される。更に、当該軌跡を表す各点の座標と併せて、撮像部１４０の速度や各点を通過する時間等が運動目的として設定されることにより、撮像部１４０が所定の軌跡上を所定のタイミングで自動的に移動するオートメーション化された駆動を行うこともできる。このような運動設定に従った駆動制御は、例えばロボットアーム装置１０が所定の作業を自動的に繰り返し行う場合に有効である。
【０３４８】
また、例えば、空間上の所定の領域内にアーム部１２０が侵入しない動作が実現されるように、運動目的及び拘束条件が設定されてもよい。図１１を参照して説明したように、本実施形態においてはユーザが表示画面を見ながら手術を行う。従って、ユーザと表示画面との間の領域にアーム部１２０が位置すると、ユーザの視界を遮ることとなり、手術の効率低下につながる恐れがある。従って、例えばユーザと表示画面の間の領域をアーム部１２０の侵入禁止領域として設定することにより、手術の効率化を図ることができる。
【０３４９】
ここで、このようにアーム部１２０に侵入禁止領域を設定する場合には、アーム部１２０の自由度が６自由度よりも多いことが好ましい。何故ならば、６自由度よりも多い自由度を冗長自由度として利用することができるため、６自由度の駆動を確保しつつ、上記のような侵入禁止領域等にも対応できるからである。このような６自由度よりも多い自由度を有するアーム部を備えるロボットアーム装置の構成について、図１９を参照して詳しく説明する。
【０３５０】
図１９は、本開示の一実施形態に係るロボットアーム装置における冗長自由度を有する変形例の外観を示す概略図である。なお、図１９においても、図１２で定義した方向と同一の座標軸を図示している。
【０３５１】
図１９を参照すると、本変形例に係るロボットアーム装置４５０は、ベース部４６０及びアーム部４７０を備える。また、アーム部４７０は、複数の関節部４７１ａ〜４７１ｇと、関節部４７１ａ〜４７１ｇによって互いに連結される複数のリンク４７２ａ〜４７２ｄと、アーム部４７０の先端に設けられる撮像ユニット４７３を有する。ここで、図１９に示すロボットアーム装置４５０は、図１２を参照して説明したロボットアーム装置４００に対してアーム部４７０の自由度が１つ増加した構成に対応している。従って、ベース部４６０、個々の関節部４７１ａ〜４７１ｇ及びリンク４７２ａ〜４７２ｄ、並びに、撮像ユニット４７３の機能及び構成は、図１２を参照して説明したロボットアーム装置４００のベース部４１０、個々の関節部４２１ａ〜４２１ｆ及びリンク４２２ａ〜４２２ｃ、並びに、撮像ユニット４２３の機能及び構成と同様であるため、詳細な説明は省略する。以下では、ロボットアーム装置４００との相違点であるアーム部４７０の構成について主に説明する。
【０３５２】
本実施形態に係るロボットアーム装置４５０は、７つの関節部４７１ａ〜４７１ｇを有し、アーム部４７０の駆動に関して７自由度が実現されている。具体的には、リンク４７２ａの一端がベース部４６０と連結され、リンク４７２ａの他端が関節部４２１ａを介してリンク４７２ｂの一端と連結される。また、リンク４２２ｂの他端が関節部４７１ｂ、４７１ｃを介してリンク４７２ｃの一端と連結される。更に、リンク４７２ｃの他端が関節部４７１ｄ、４７１ｅを介してリンク４７２ｄの一端と連結され、４７２ｄの他端が関節部４７１ｆ、４７１ｇを介して撮像ユニット４７３と連結される。このように、ベース部４６０を支点として、複数のリンク４７２ａ〜４７２ｄの端同士が、関節部４７１ａ〜４７１ｇによって互いに連結されることにより、ベース部４６０から延伸されるアーム部４７０が構成される。
【０３５３】
また、図１９に示すように、関節部４７１ａ、４７１ｃ、４７１ｅ、４７１ｇは、接続されている各リンク４７２ｂ〜４７２ｄの長軸方向及び接続されている撮像ユニット４７３の撮影方向を回転軸方向とするように設けられており、関節部４７１ｂ、４７１ｄ、４７１ｆは、接続されている各リンク４７２ｃ〜４７２ｄ及び撮像ユニット４７３の連結角度をｙ−ｚ平面内において変更する方向であるｘ軸方向を回転軸方向とするように設けられている。このように、本変形例においては、関節部４７１ａ、４７１ｃ、４７１ｅ、４７１ｇは、いわゆるヨーイングを行う機能を有し、関節部４７１ｂ、４７１ｄ、４７１ｆは、いわゆるピッチングを行う機能を有する。
【０３５４】
このようなアーム部４７０の構成を有することにより、本実施形態に係るロボットアーム装置４５０ではアーム部４７０の駆動に対して７自由度が実現されるため、アーム部４７０の可動範囲内において撮像ユニット４７３を空間内で自由に移動させることができるとともに、冗長自由度を有する。図１９では、図１２と同様に、撮像ユニット４７３の移動可能範囲の一例として半球を図示している。半球の中心点が撮像ユニット４７３によって撮影される施術部位の撮影中心であるとすれば、撮像ユニット４７３の撮影中心を半球の中心点に固定した状態で、撮像ユニット４７３を半球の球面上で移動させることにより、施術部位をあらゆる角度から撮影することができる。本実施形態に係るロボットアーム装置４５０は、更に１つの冗長自由度を有することにより、このような撮像ユニット４７３の半球上の移動とともに、アーム部４７０の軌道を制限することができ、上述した侵入禁止領域のような拘束条件にも容易に対応することができる。侵入禁止領域を設定することにより、例えば、撮像ユニット４７３によって撮影された画像が表示されるモニタと施術者及びスタッフとの間にアーム部４７０が存在しないようにアーム部４７０の駆動を制御することができ、施術者及びスタッフによるモニタの視認が妨げられることを防ぐことができる。また、侵入禁止領域を設定することにより、施術者及びスタッフや周囲の他の機器との干渉（接触）を避けてアーム部４７０が移動するようにアーム部４７０の駆動を制御することが可能となる。
【０３５５】
（６−３．ロボットアーム制御方法の処理手順）
次に、図２０を参照して、本開示の一実施形態に係るロボットアーム制御方法の処理手順について説明する。図２０は、本開示の一実施形態に係るロボットアーム制御方法の処理手順を示すフロー図である。なお、以下では、図１６に示すロボットアーム制御システム１の構成によって本実施形態に係るロボットアーム制御方法が実現される場合を例に挙げて説明を行う。従って、本実施形態に係るロボットアーム制御方法は医療用ロボットアーム制御方法であると言える。なお、以下の本実施形態に係るロボットアーム制御方法の処理手順についての説明において、図１６に示すロボットアーム制御システム１の各構成の機能については、上記（６−２−４．ロボットアーム制御システムの構成）で既に説明しているため、詳細な説明は省略する。
【０３５６】
図２０を参照すると、本実施形態に係るロボットアーム制御方法では、まず、ステップＳ８０１で、関節状態検出部１３２によって関節部１３０の状態が検出される。ここで、関節部１３０の状態とは、例えば関節部１３０における回転角度、発生トルク及び／又は外トルクである。
【０３５７】
次にステップＳ８０３で、ステップＳ８０１で検出された関節部１３０の状態に基づいて、アーム状態取得部２４１によってアーム状態が取得される。アーム状態とは、アーム部１２０の運動の状態のことであり、例えばアーム部１２０の各構成部材の位置、速度、加速度やアーム部１２０の各構成部材に作用する力等であってよい。
【０３５８】
次にステップＳ８０５で、ステップＳ８０３で取得されたアーム状態に基づいて、演算条件設定部２４２によって全身協調制御における演算で用いられる運動目的及び拘束条件が設定される。なお、演算条件設定部２４２はアーム状態に基づいて運動目的を設定しなくてもよく、例えば、入力部２１０からユーザによって入力されるアーム部１２０の駆動についての指示情報に基づいて運動目的を設定してもよいし、記憶部２２０に予め格納されている運動目的を用いてもよい。更に、上記の各方法を適宜組み合わせることにより、運動目的を設定してもよい。また、演算条件設定部２４２は記憶部２２０に予め格納されている拘束条件を用いてもよい。
【０３５９】
次にステップＳ８０７で、アーム状態、運動目的及び拘束条件に基づいて、一般化逆動力学を用いた全身協調制御についての演算が行われ、制御値τａが算出される。なお、ステップＳ８０７で行われる処理は、図１６に示す仮想力算出部２４３及び実在力算出部２４４における一連の処理、すなわち、上記（６−２−２．一般化逆動力学について）で説明した一連の処理であってよい。
【０３６０】
次にステップＳ８０９で、外乱推定値τｄが算出され、当該外乱推定値τｄを用いて、理想関節制御についての演算が行われ、制御値τａから指令値τが算出される。なお、ステップＳ８０９で行われる処理は、図１６に示す理想関節制御部２５０における一連の処理、すなわち、上記（６−２−３．理想関節制御について）で説明した一連の処理であってよい。
【０３６１】
最後にステップＳ８１１で、指令値τに基づいて、駆動制御部１１１によって関節部１３０の駆動が制御される。
【０３６２】
以上、図２０を参照して、本実施形態に係るロボットアーム制御方法の処理手順について説明した。なお、本実施形態においては、図２０に示すステップＳ８０１〜ステップＳ８１１における処理が、アーム部１２０を用いた作業が行われている間繰り返し行われる。従って、本実施形態においては、アーム部１２０を用いた作業が行われている間、アーム部１２０の駆動制御が継続的に行われる。
【０３６３】
（６−４．全身協調制御に係るロボットアーム装置のまとめ）
以上説明したように、本実施形態においては、以下の効果を得ることができる。
【０３６４】
以上説明したように、本実施形態によれば、ロボットアーム装置１０における多リンク構造体であるアーム部１２０が、少なくとも６自由度以上の自由度を有するとともに、当該アーム部１２０を構成する複数の関節部１３０のそれぞれの駆動が駆動制御部１１１によって制御される。そして、当該アーム部１２０の先端には医療用器具が設けられる。このように、各関節部１３０の駆動が制御されることにより、より自由度の高いアーム部１２０の駆動制御が実現され、よりユーザにとって操作性の高い医療用のロボットアーム装置１０が実現される。
【０３６５】
具体的には、本実施形態によれば、ロボットアーム装置１０において、関節状態検出部１３２によって関節部１３０の状態が検出される。そして、制御装置２０において、当該関節部１３０の状態と、運動目的及び拘束条件とに基づいて、アーム部１２０の駆動を制御するための一般化逆動力学を用いた全身協調制御に関する各種の演算が行われ、演算結果としてのトルク指令値τが算出される。更に、ロボットアーム装置１０において、当該トルク指令値τに基づいてアーム部１２０の駆動が制御される。このように、本実施形態においては、一般化逆動力学を用いた全身協調制御により、アーム部１２０の駆動が制御される。従って、力制御によるアーム部１２０の駆動制御が実現され、よりユーザにとって操作性の高いロボットアーム装置が実現される。また、本実施形態では、全身協調制御において、例えばピボット動作やパワーアシスト動作といった、よりユーザの利便性を向上させる各種の運動目的を実現する制御が可能となる。更に、本実施形態においては、例えばアーム部１２０を手動で移動させたり、ペダルからの操作入力により移動させたりといった、多様な駆動手段が実現されるため、ユーザの利便性の更なる向上が実現される。
【０３６６】
また、本実施形態においては、アーム部１２０の駆動制御について、全身協調制御と併せて理想関節制御が適用される。理想関節制御においては、関節部１３０内部の摩擦や慣性等の外乱成分を推定し、推定した外乱成分を用いたフィードフォワード制御が行われる。従って、摩擦等の外乱成分がある場合であっても、関節部１３０の駆動について理想的な応答を実現することができる。よって、アーム部１２０の駆動制御において、振動等の影響がより少ない、高精度の応答性と高い位置決め精度や安定性が実現される。
【０３６７】
更に、本実施形態においては、アーム部１２０を構成する複数の関節部１３０のそれぞれが、例えば図１３に示すような、理想関節制御に適合した構成を有し、各関節部１３０における回転角度、発生トルク及び粘性抵抗係数を電流値によって制御することができる。このように、各関節部１３０の駆動が電流値によって制御され、また、全身協調制御により各関節部１３０の駆動がアーム部１２０全体の状態を把握しながら制御されるため、カウンターバランスが不要となり、ロボットアーム装置１０の小型化が実現される。
【０３６８】
このように、本実施形態によれば、上記（６−１．医療用ロボットアーム装置についての検討）で説明したロボットアーム装置に求められる性能を全て満たすことができる。従って、本実施形態に係るロボットアーム装置を用いた各種の施術において、より効率的に施術を行うことができ、ユーザや患者の疲労や負担をより軽減することが実現される。
【０３６９】
また、本実施形態では、力制御によってロボットアーム装置１０のアーム部１２０が駆動されることにより、万が一駆動中にアーム部１２０が施術者やスタッフ等に干渉（接触）したとしても、アーム部１２０が必要以上の力を発生せず、アーム部１２０が安全に停止する。そして、当該干渉から解放されれば、設定された運動目的に従って所望の位置までアーム部１２０が移動し、施術が継続される。このように、本実施形態では、ロボットアーム装置１０の駆動制御に力制御が用いられることにより、駆動中におけるアーム部１２０と周囲の物体との干渉に対して、より高い安全性が確保される。
【０３７０】
なお、例えば、上記実施形態では、ロボットアーム装置のアーム部の先端ユニットが撮像ユニットであり、図１１に示すように手術時に当該撮像ユニットによって施術部位を撮影する場合について説明したが、本実施形態はかかる例に限定されない。本実施形態に係るロボットアーム制御システム１は、他の先端ユニットを有するロボットアーム装置が他の用途に用いられる場合であっても適用可能である。例えば、先端ユニットは内視鏡や腹腔鏡であってもよいし、超音波検査器や胃カメラ等、他の検査機器であってもよい。
【０３７１】
例えば、腹腔鏡を用いた施術では、患者の体内に腹腔鏡を挿入し、当該腹腔鏡によって撮影された映像を観察しながら、別途挿入される鉗子や電気メス等の術具を用いて各種の処置が行われる。このような施術方法においては、例えば腹腔鏡をロボットアームによって操作しながら、処置用の術具を施術者が直接操作することができれば、１人のユーザによって施術を行うことができ、より効率的な施術が可能となる。しかしながら、一般的な既存のバランス型アームにおいては、操作性の観点から、１人のユーザが、自身の手による術具の操作とロボットアームによる腹腔鏡の操作とを同時に行うことは困難であった。よって、既存の方法では、複数名のスタッフが必要であり、１人の施術者がロボットアームによって腹腔鏡を操作しながら、他の者が術具を用いた処置を行うことが一般的であった。しかし、本実施形態に係るロボットアーム装置では、上述したように、全身協調制御による高い操作性が実現される。また、理想関節制御により、振動等の影響がより少ない、高精度の応答性と高い安定性が実現される。従って、本実施形態によれば、ロボットアーム装置による観察用の腹腔鏡の操作と、自身の手による術具の操作とを、施術者１人で容易に行うことが可能となる。
【０３７２】
また、本実施形態に係るロボットアーム装置は、医療以外の用途に用いられてもよい。本実施形態に係るロボットアーム装置では、理想関節制御により、高精度の応答性と高い安定性が実現されるため、例えば高い精度が求められる工業部品の加工や組み立て等の作業にも対応可能である。
【０３７３】
また、上記実施形態では、ロボットアーム装置の関節部が回転機構を有し、当該回転機構の回転駆動が制御されることによってアーム部の駆動が制御される場合について説明したが、本実施形態はかかる例に限定されない。例えば、本実施形態に係るロボットアーム装置においては、アーム部を構成するリンクがリンクの延伸方向に伸縮する機構（例えば油圧で駆動するものやボールねじを駆動するもの等）を有し、リンクの長さが可変であってもよい。リンクの長さが可変である場合、例えば関節部における回転に加えてリンクの伸縮も考慮した全身協調制御によって、所望の運動目的を達成するようにアーム部の駆動が制御される。
【０３７４】
また、上記実施形態では、ロボットアーム装置におけるアーム部の自由度が６自由度以上である場合について説明したが、本実施形態はかかる例に限定されない。また、ロボットアーム装置におけるアーム部を構成する複数の関節部が全て理想関節制御に対応するアクチュエータを有する場合について説明したが、本実施形態はかかる例に限定されない。本実施形態においては、ロボットアーム装置の用途に応じて多様な運動目的が設定され得る。従って、設定された運動目的が達成可能であれば、アーム部は、６自由度よりも低い自由度を有してもよいし、アーム部を構成する複数の関節部のうちの一部が一般的な関節機構を有する関節部であってもよい。このように、本実施形態においては、アーム部の構成は、運動目的を達成可能であるように構成されればよく、ロボットアーム装置の用途に応じて適宜構成されてよい。
【０３７５】
＜７．ハードウェア構成＞
次に、図２１を参照しながら、図１及び図１６に示す、本実施形態に係るロボットアーム装置１０及び制御装置２０のハードウェア構成について、詳細に説明する。図２１は、本開示の一実施形態に係るロボットアーム装置１０及び制御装置２０のハードウェア構成の一構成例を示す機能ブロック図である。
【０３７６】
ロボットアーム装置１０及び制御装置２０は、主に、ＣＰＵ９０１と、ＲＯＭ９０３と、ＲＡＭ９０５と、を備える。また、ロボットアーム装置１０及び制御装置２０は、更に、ホストバス９０７と、ブリッジ９０９と、外部バス９１１と、インターフェース９１３と、入力装置９１５と、出力装置９１７と、ストレージ装置９１９と、ドライブ９２１と、接続ポート９２３と、通信装置９２５とを備える。
【０３７７】
ＣＰＵ９０１は、演算処理装置及び制御装置として機能し、ＲＯＭ９０３、ＲＡＭ９０５、ストレージ装置９１９又はリムーバブル記録媒体９２７に記録された各種プログラムに従って、ロボットアーム装置１０及び制御装置２０内の動作全般又はその一部を制御する。ＲＯＭ９０３は、ＣＰＵ９０１が使用するプログラムや演算パラメータ等を記憶する。ＲＡＭ９０５は、ＣＰＵ９０１が使用するプログラムや、プログラムの実行において適宜変化するパラメータ等を一次記憶する。これらはＣＰＵバス等の内部バスにより構成されるホストバス９０７により相互に接続されている。ＣＰＵ９０１は、本実施形態においては、例えば、図１及び図１６に示すアーム制御部１１０、関節制御部１３５及び制御部２３０に対応している。
【０３７８】
ホストバス９０７は、ブリッジ９０９を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス９１１に接続されている。また、外部バス９１１には、インターフェース９１３を介して、入力装置９１５、出力装置９１７、ストレージ装置９１９、ドライブ９２１、接続ポート９２３及び通信装置９２５が接続される。
【０３７９】
入力装置９１５は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、レバー及びペダル等、ユーザが操作する操作手段である。また、入力装置９１５は、例えば、赤外線やその他の電波を利用したリモートコントロール手段（いわゆる、リモコン）であってもよいし、ロボットアーム装置１０及び制御装置２０の操作に対応した携帯電話やＰＤＡ等の外部接続機器９２９であってもよい。さらに、入力装置９１５は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、ＣＰＵ９０１に出力する入力制御回路などから構成されている。ロボットアーム装置１０及び制御装置２０のユーザは、この入力装置９１５を操作することにより、ロボットアーム装置１０及び制御装置２０に対して各種のデータを入力したり処理動作を指示したりすることができる。入力装置９１５は、本実施形態においては、例えば、図１６に示す入力部２１０に対応する。また、本実施形態においては、入力装置９１５を介したユーザによる操作入力により、アーム部１２０の駆動における運動目的が設定され、当該運動目的に従って全身協調制御が行われてもよい。
【０３８０】
出力装置９１７は、取得した情報をユーザに対して視覚的又は聴覚的に通知することが可能な装置で構成される。このような装置として、ＣＲＴディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ＥＬディスプレイ装置及びランプ等の表示装置や、スピーカ及びヘッドホン等の音声出力装置や、プリンタ装置等がある。出力装置９１７は、例えば、ロボットアーム装置１０及び制御装置２０が行った各種処理により得られた結果を出力する。具体的には、表示装置は、ロボットアーム装置１０及び制御装置２０が行った各種処理により得られた結果を、テキスト又はイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。本実施形態においては、アーム部１２０の駆動制御に関する各種の情報が、あらゆる形式で出力装置９１７から出力されてよい。例えば、アーム部１２０の駆動制御における、アーム部１２０の各構成部材の移動の軌跡が、グラフの形式で出力装置９１７の表示画面に表示されてもよい。なお、例えば、図１６に示す表示装置３０は、出力装置９１７の表示装置としての機能及び構成と、当該表示装置の駆動を制御するための制御部等の構成を備える装置であってもよい。
【０３８１】
ストレージ装置９１９は、ロボットアーム装置１０及び制御装置２０の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置９１９は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等により構成される。このストレージ装置９１９は、ＣＰＵ９０１が実行するプログラムや各種データ等を格納する。ストレージ装置９１９は、本実施形態においては、例えば、図１及び図１６に示す記憶部２２０に対応する。また、本実施形態においては、ストレージ装置９１９は、一般化逆動力学を用いた全身協調制御に関する演算における演算条件（運動目的及び拘束条件）を記憶することができ、ロボットアーム装置１０及び制御装置２０はストレージ装置９１９に記憶されているこれらの演算条件を用いて全身協調制御に関する演算を行ってもよい。
【０３８２】
ドライブ９２１は、記録媒体用リーダライタであり、ロボットアーム装置１０及び制御装置２０に内蔵、あるいは外付けされる。ドライブ９２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク又は半導体メモリ等のリムーバブル記録媒体９２７に記録されている情報を読み出して、ＲＡＭ９０５に出力する。また、ドライブ９２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク又は半導体メモリ等のリムーバブル記録媒体９２７に記録を書き込むことも可能である。リムーバブル記録媒体９２７は、例えば、ＤＶＤメディア、ＨＤ−ＤＶＤメディア又はＢｌｕ−ｒａｙ（登録商標）メディア等である。また、リムーバブル記録媒体９２７は、コンパクトフラッシュ（登録商標）（ＣＦ：ＣｏｍｐａｃｔＦｌａｓｈ）、フラッシュメモリ又はＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等であってもよい。また、リムーバブル記録媒体９２７は、例えば、非接触型ＩＣチップを搭載したＩＣカード（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  ｃａｒｄ）又は電子機器等であってもよい。本実施形態においては、アーム部１２０の駆動制御に関する各種の情報が、ドライブ９２１によって、各種のリムーバブル記録媒体９２７から読み出され、又は各種のリムーバブル記録媒体９２７に書き込まれてよい。
【０３８３】
接続ポート９２３は、機器をロボットアーム装置１０及び制御装置２０に直接接続するためのポートである。接続ポート９２３の一例として、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）ポート等がある。接続ポート９２３の別の例として、ＲＳ−２３２Ｃポート、光オーディオ端子、ＨＤＭＩ（登録商標）（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）ポート等がある。この接続ポート９２３に外部接続機器９２９を接続することで、ロボットアーム装置１０及び制御装置２０は、外部接続機器９２９から直接各種のデータを取得したり、外部接続機器９２９に各種のデータを提供したりする。本実施形態においては、アーム部１２０の駆動制御に関する各種の情報が、接続ポート９２３を介して、各種の外部接続機器９２９から読み出され、又は各種の外部接続機器９２９に書き込まれてよい。
【０３８４】
通信装置９２５は、例えば、通信網（ネットワーク）９３１に接続するための通信デバイス等で構成された通信インターフェースである。通信装置９２５は、例えば、有線若しくは無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）又はＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カード等である。また、通信装置９２５は、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ又は各種通信用のモデム等であってもよい。この通信装置９２５は、例えば、インターネットや他の通信機器との間で、例えばＴＣＰ／ＩＰ等の所定のプロトコルに則して信号等を送受信することができる。通信装置９２５は、本実施形態においては、例えば、図２に示す通信ユニット１５０、２７０に対応する。また、通信装置９２５に接続される通信網９３１は、有線又は無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、ラジオ波通信又は衛星通信等であってもよい。本実施形態においては、ロボットアーム装置１０の各関節部１３０とアーム部１２０とが、通信装置９２５を介して、異常を検出するための各種の情報やアーム部１２０の駆動制御に関する各種の情報を、互いに送受信してもよい。また、アーム部１２０の駆動制御に関する各種の情報が、通信装置９２５によって、通信網９３１を介して外部の他の機器との間で相互に送受信されてもよい。
【０３８５】
以上、本開示の実施形態に係るロボットアーム装置１０及び制御装置２０の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。なお、図２１では図示しないが、ロボットアーム装置１０は、図１及び図１６に示すアーム部１２０に対応する各種の構成を当然備える。
【０３８６】
なお、上述のような本実施形態に係るロボットアーム装置１０、制御装置２０及び表示装置３０の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【０３８７】
＜８．補足＞
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０３８８】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【０３８９】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）複数のリンクが関節部によって互いに連結されて構成されるアーム部と、前記関節部の駆動を制御することにより前記アーム部を駆動させる駆動制御部と、を備え、前記駆動制御部は、前記関節部の少なくともいずれかに異常が検出された場合に、前記アーム部の運動に対して所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させる、ロボットアーム装置。
（２）前記アーム部が接触することにより外部の物体に与えられる押圧力に応じて前記関節部に生じるトルクに基づいて、前記関節部の異常が検出され、前記駆動制御部は、前記アーム部の運動に対して前記押圧力が所定の範囲に制限された状態で、前記関節部の駆動を制御して前記アーム部を駆動させる、前記（１）に記載のロボットアーム装置。
（３）前記押圧力は、前記アーム部の先端に設けられる先端ユニットによって外部の物体に与えられる力である、前記（２）に記載のロボットアーム装置。
（４）前記先端ユニットに作用する力を検出するセンサが更に備えられ、前記先端ユニットに作用する力に応じて前記関節部に生じるトルクと、前記センサによって検出される力と、に基づいて、前記関節部の異常が検出される、前記（３）に記載のロボットアーム装置。
（５）前記関節部の異常は、前記関節部の回転角度に基づいて検出され、前記駆動制御部は、前記アーム部の運動に対して前記関節部の回転角度が所定の範囲に制限された状態で前記関節部の駆動を制御して前記アーム部を駆動させる、前記（１）に記載のロボットアーム装置。
（６）前記関節部の異常は、前記関節部の回転角速度に基づいて検出され、前記駆動制御部は、前記アーム部の運動に対して前記関節部の回転角速度が所定の範囲に制限された状態で前記関節部の駆動を制御して前記アーム部を駆動させる、前記（１）に記載のロボットアーム装置。
（７）前記関節部は、前記関節部の状態を検出する関節状態検出部を有し、前記関節部の異常は、前記関節状態検出部によって検出される前記関節部の状態に基づいて判断される、前記（１）〜（６）のいずれか１項に記載のロボットアーム装置。
（８）前記関節部の状態は、前記関節部を駆動するために設けられるアクチュエータにおける、モータの回転角度、出力軸の回転角度、出力軸のトルク、モータに供給される電流及びモータの周囲の温度の少なくともいずれかを含む、前記（７）に記載のロボットアーム装置。
（９）前記駆動制御部は、前記関節部で検出された異常の種類に応じて、前記アーム部の運動に所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させる異常回避動作と、異常が検出された前記関節部以外の他の前記関節部の駆動を制御して前記アーム部の自由度を低下させた状態で前記アーム部を駆動させる一部機能停止動作と、前記アーム部を構成する全ての前記関節部の動きが固定される機能停止動作と、のいずれかの動作が実行されるように前記関節部の駆動を制御する、前記（１）〜（８）のいずれか１項に記載のロボットアーム装置。
（１０）前記駆動制御部は、検出された複数の前記関節部の状態に基づいて取得される前記アーム部の状態に基づいて前記関節部の駆動を制御する、前記（１）〜（９）のいずれか１項に記載のロボットアーム装置。
（１１）記駆動制御部は、前記アーム部の状態と、前記アーム部の運動目的及び拘束条件に基づく前記アーム部の協調制御のための制御値と、に基づいて前記関節部の駆動を制御する、前記（１０）に記載のロボットアーム装置。
（１２）前記制御値は、前記アーム部に作用する力と前記アーム部に発生する加速度との関係を記述する操作空間において前記運動目的を達成するために作用される仮想的な力である仮想力と、前記拘束条件に基づいて前記仮想力が前記関節部を駆動するための実在の力に変換されることにより求められる実在力と、に基づいて算出される、前記（１１）に記載のロボットアーム装置。
（１３）前記駆動制御部は、前記制御値に対して外乱の影響を補正することにより算出される指令値、に基づいて前記関節部の駆動を制御する、前記（１１）に記載のロボットアーム装置。
（１４）前記指令値は、検出された前記関節部の状態に基づいて推定される前記関節部の駆動に対する外乱の影響を表す外乱推定値を用いて、前記制御値を補正することにより算出される、前記（１３）に記載のロボットアーム装置。
（１５）前記駆動制御部は、前記アーム部に作用する重力を補償する力、及び外部から更に与えられた力の方向への前記アーム部の移動をサポートする力を生じるように前記関節部の駆動を制御する、前記（１１）〜（１４）のいずれか１項に記載のロボットアーム装置。
（１６）前記駆動制御部は、前記アーム部の先端に設けられる先端ユニットが空間上の所定の点を頂点とした円錐体の面上を移動するピボット動作を行うように前記関節部の駆動を制御する、前記（１１）〜（１４）のいずれか１項に記載のロボットアーム装置。
（１７）前記ピボット動作において、前記先端ユニットと前記所定の点との距離は一定に保たれる、前記（１６）に記載のロボットアーム装置。
（１８）前記ロボットアーム装置は、前記アーム部に少なくとも１つの医療用器具が設けられる、医療用ロボットアーム装置である、前記（１）〜（１７）のいずれか１項に記載のロボットアーム装置。
（１９）複数のリンクが関節部によって互いに連結されて構成されるアーム部における、少なくともいずれかの前記関節部の異常を検出することと、前記アーム部の運動に所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させることと、を含む、ロボットアーム制御方法。
（２０）コンピュータのプロセッサに、複数のリンクが関節部によって互いに連結されて構成されるアーム部における、少なくともいずれかの前記関節部の異常を検出する機能と、前記アーム部の運動に所定の制限が設けられた状態で前記関節部の駆動を制御して、当該異常を回避するように前記アーム部を駆動させる機能と、を実現させる、プログラム。
【符号の説明】
【０３９０】
１、２    ロボットアーム制御システム
１０    ロボットアーム装置
２０    制御装置
３０    表示装置
１１０    アーム制御部
１１１    駆動制御部
１２０    アーム部
１３０    関節部
１３１    関節駆動部
１３２    回転角度検出部
１３３    トルク検出部
１３５    関節制御部
１４０    撮像部
１４５    先端ユニット
１８０    アクチュエータ
２１０    入力部
２２０    記憶部
２３０    制御部
２４０    全身協調制御部
２４１    アーム状態取得部
２４２    演算条件設定部
２４３    仮想力算出部
２４４    実在力算出部
２５０    理想関節制御部
２５１    外乱推定部
２５２    指令値算出部
２６０    異常検出部
【図１】
2019155116.tif 000014
【図２】
2019155116.tif 000015
【図３】
2019155116.tif 000016
【図４】
2019155116.tif 000017
【図５】
2019155116.tif 000018
【図６】
2019155116.tif 000019
【図７】
2019155116.tif 000020
【図８】
2019155116.tif 000021
【図９】
2019155116.tif 000022
【図１０】
2019155116.tif 000023
【図１１】
2019155116.tif 000024
【図１２】
2019155116.tif 000025
【図１３】
2019155116.tif 000026
【図１４Ａ】
2019155116.tif 000027
【図１４Ｂ】
2019155116.tif 000028
【図１５】
2019155116.tif 000029
【図１６】
2019155116.tif 000030
【図１７】
2019155116.tif 000031
【図１８】
2019155116.tif 000032
【図１９】
2019155116.tif 000033
【図２０】
2019155116.tif 000034
【図２１】
2019155116.tif 000035
【手続補正書】
【提出日】平成31年4月15日(2019.4.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のリンクが関節部によって互いに連結されて構成され、医療処置に用いられる医療用器具を保持可能なアーム部と、
前記関節部の動作を制御することにより前記アーム部を制御する制御部と、
を備え、
前記制御部は、前記関節部の少なくともいずれかに所定の状態が検出された場合に、前記所定の状態が検出された関節部の動作を制限し、かつ所定の値以上の外力が付加された場合に前記外力に応じて回転するように制御し、前記所定の状態が検出された関節部以外の関節部の動作を制御して前記アーム部を制御する、
医療用支持アーム装置。
【請求項２】
前記制御部は、少なくとも１つの前記関節部のアクチュエータの駆動を制御することにより前記アーム部の駆動を制御する、
請求項１に記載の医療用支持アーム装置。
【請求項３】
前記制御部は、前記所定の状態が検出された関節部のアクチュエータによる駆動を制限する、
請求項２に記載の医療用支持アーム装置。
【請求項４】
前記制御部は、前記所定の状態が検出された関節部以外の関節部のアクチュエータの駆動を制御することにより、前記アーム部の駆動を継続させる、
請求項３に記載の医療用支持アーム装置。
【請求項５】
前記アーム部が接触することにより外部の物体に与えられる押圧力に応じて前記関節部に生じるトルクに基づいて、前記関節部の所定の状態が検出され、
前記制御部は、前記アーム部の運動に対して前記押圧力が所定の範囲に制限された状態で、前記関節部の動作を制御して前記アーム部を制御する、
請求項１に記載の医療用支持アーム装置。
【請求項６】
前記押圧力は、前記アーム部の先端に設けられる前記医療用器具によって外部の物体に与えられる力である、
請求項５に記載の医療用支持アーム装置。
【請求項７】
前記医療用器具に作用する力を検出するセンサが更に備えられ、
前記医療用器具に作用する力に応じて前記関節部に生じるトルクと、前記センサによって検出される力と、に基づいて、前記関節部の所定の状態が検出される、
請求項６に記載の医療用支持アーム装置。
【請求項８】
前記関節部の所定の状態は、前記関節部の回転角度に基づいて検出され、
前記制御部は、前記アーム部の運動に対して前記関節部の回転角度が所定の範囲に制限された状態で前記関節部の動作を制御して前記アーム部を制御する、
請求項１に記載の医療用支持アーム装置。
【請求項９】
前記関節部の所定の状態は、前記関節部の回転角速度に基づいて検出され、
前記制御部は、前記アーム部の運動に対して前記関節部の回転角速度が所定の範囲に制限された状態で前記関節部の動作を制御して前記アーム部を制御する、
請求項１に記載の医療用支持アーム装置。
【請求項１０】
前記関節部は、前記関節部の状態を検出する関節状態検出部を有し、
前記関節部の所定の状態は、前記関節状態検出部によって検出される前記関節部の状態に基づいて判断される、
請求項１〜９のいずれか１項に記載の医療用支持アーム装置。
【請求項１１】
前記関節部の状態は、前記関節部を駆動するために設けられるアクチュエータにおける、モータの回転角度、出力軸の回転角度、出力軸のトルク、モータに供給される電流及びモータの周囲の温度の少なくともいずれかを含む、
請求項１０に記載の医療用支持アーム装置。
【請求項１２】
前記制御部は、前記関節状態検出部からの出力と所定のしきい値とを比較することにより前記関節部が前記所定の状態であることを検出する、
請求項１０に記載の医療用支持アーム装置。
【請求項１３】
前記制御部は、前記関節状態検出部からの出力が前記所定のしきい値を超過している時間に基づいて前記関節部が前記所定の状態であることを検出する、
請求項１２に記載の医療用支持アーム装置。
【請求項１４】
前記制御部は、前記関節部で検出された前記所定の状態の種類に応じて、前記アーム部の動作を変更する、
請求項１に記載の医療用支持アーム装置。
【請求項１５】
前記制御部は、前記関節部で検出された前記所定の状態の種類に応じて、
前記アーム部の運動に所定の制限が設けられた状態で前記関節部の動作を制御して、当該所定の状態を回避するように前記アーム部を制御する回避動作と、
前記所定の状態が検出された前記関節部以外の他の前記関節部の動作を制御して前記アーム部の自由度を低下させた状態で前記アーム部を制御する一部機能停止動作と、
前記アーム部を構成する全ての前記関節部の動きが固定される機能停止動作と、
のいずれかの動作が実行されるように前記関節部の動作を制御する、
請求項１〜１４のいずれか１項に記載の医療用支持アーム装置。
【請求項１６】
前記制御部は、検出された複数の前記関節部の状態に基づいて取得される前記アーム部の状態に基づいて前記関節部の動作を制御する、
請求項１〜１５のいずれか１項に記載の医療用支持アーム装置。
【請求項１７】
前記制御部は、前記アーム部の状態と、前記アーム部の運動目的及び拘束条件に基づく前記アーム部の協調制御のための制御値と、に基づいて前記関節部の動作を制御する、
請求項１６に記載の医療用支持アーム装置。
【請求項１８】
前記制御値は、前記アーム部に作用する力と前記アーム部に発生する加速度との関係を記述する操作空間において前記運動目的を達成するために作用される仮想的な力である仮想力と、前記拘束条件に基づいて前記仮想力が前記関節部を駆動するための実在の力に変換されることにより求められる実在力と、に基づいて算出される、
請求項１７に記載の医療用支持アーム装置。
【請求項１９】
前記制御部は、前記制御値に対して外乱の影響を補正することにより算出される指令値、に基づいて前記関節部の動作を制御する、
請求項１７に記載の医療用支持アーム装置。
【請求項２０】
前記指令値は、検出された前記関節部の状態に基づいて推定される前記関節部の駆動に対する外乱の影響を表す外乱推定値を用いて、前記制御値を補正することにより算出される、
請求項１９に記載の医療用支持アーム装置。
【請求項２１】
前記制御部は、前記アーム部に作用する重力を補償する力、及び外部から更に与えられた力の方向への前記アーム部の移動をサポートする力を生じるように前記関節部の動作を制御する、
請求項１７〜２０のいずれか１項に記載の医療用支持アーム装置。
【請求項２２】
前記制御部は、前記アーム部の先端に設けられる前記医療用器具が空間上の所定の点を頂点とした円錐体の面上を移動するピボット動作を行うように前記関節部の動作を制御する、
請求項１７〜２０のいずれか１項に記載の医療用支持アーム装置。
【請求項２３】
前記ピボット動作において、前記医療用器具と前記所定の点との距離は一定に保たれる、
請求項２２に記載の医療用支持アーム装置。
【請求項２４】
前記医療用支持アーム装置は、前記アーム部に少なくとも１つの医療用器具が設けられる、支持アーム装置である、
請求項１〜２３のいずれか１項に記載の医療用支持アーム装置。
【請求項２５】
前記制御部は、前記所定の状態が検出された関節部の粘性係数を、前記所定の状態が検出された関節部以外の関節部の粘性係数よりも大きくする、
請求項１に記載の医療用支持アーム装置。
【請求項２６】
複数のリンクが関節部によって互いに連結されて構成され、術部に対する施術に用いられる医療用器具を保持可能なアーム部における、少なくともいずれかの前記関節部の所定の状態を検出することと、
前記所定の状態が検出された関節部の動作を制限し、かつ所定の値以上の外力が負荷された場合に前記外力に応じて回転するように制御し、前記所定の状態が検出された関節部以外の関節部の動作を制御して前記アーム部を制御することと、
を含む、プロセッサにより実行される医療用支持アーム制御方法。
【請求項２７】
コンピュータのプロセッサに、
複数のリンクが関節部によって互いに連結されて構成され、術部に対する施術に用いられる医療用器具を保持可能なアーム部における、少なくともいずれかの前記関節部の所定の状態を検出する機能と、
前記所定の状態が検出された関節部の動作を制限し、かつ所定の値以上の外力が負荷された場合に前記外力に応じて回転するように制御し、前記所定の状態が検出された関節部以外の関節部の動作を制御して前記アーム部を制御する機能と、
を実現させる、プログラム。