(57)【要約】  検出される外力に応じて制御対象の動作を制御することが可能な制御装置の提供。制御対象が備える力覚センサにより検出される第１の外力と、前記力覚センサを可動させる前記制御対象の可動部が備えるトルクセンサにより検出されるトルクに基づき推定される第２の外力との比較を行い、トルク指令値を前記比較の結果に基づき補正することで、前記制御対象の動作を制御する制御部（２１０−１）、を備える、制御装置（２００）。
2020017370.tif 000002
【特許請求の範囲】
【請求項１】
制御対象が備える力覚センサにより検出される第１の外力と、前記力覚センサを可動させる前記制御対象の可動部が備えるトルクセンサにより検出されるトルクに基づき推定される第２の外力との比較を行い、トルク指令値を前記比較の結果に基づき補正することで、前記制御対象の動作を制御する制御部、
を備える、制御装置。
【請求項２】
前記制御部は、前記比較により抽出される前記第１の外力と前記第２の外力との差分に基づきゲインを調整し、前記ゲインを前記トルク指令値に適用することで、前記制御対象が安全性を優先して動作する第１のモードと、前記制御対象が作業の精度を優先して動作する第２のモードとの切り替えを制御する、請求項１に記載の制御装置。
【請求項３】
前記制御部は、前記差分に基づき、前記制御対象に作用する第３の外力の作用状態に応じて、前記第１のモードと前記第２のモードとを切り替える、請求項２に記載の制御装置。
【請求項４】
前記制御部は、前記制御対象に想定内の前記第３の外力が作用している前記作用状態である場合、前記第１のモードを設定する、請求項３に記載の制御装置。
【請求項５】
前記制御部は、第１の値に近づくように前記ゲインを調整することで前記第１のモードを設定する、請求項４に記載の制御装置。
【請求項６】
前記制御部は、前記制御対象に想定外の前記第３の外力が作用している前記作用状態である場合、前記第２のモードを設定する、請求項３に記載の制御装置。
【請求項７】
前記制御部は、第２の値に近づくように前記ゲインを調整することで前記第２のモードを設定する、請求項６に記載の制御装置。
【請求項８】
前記制御部は、前記ゲインを連続的に変化させることで、前記第１のモードと前記第２のモードとを連続的に切り替える、請求項２に記載の制御装置。
【請求項９】
前記制御部は、前記差分が所定の範囲内の値である場合、前記ゲインを連続的に変化させる、請求項８に記載の制御装置。
【請求項１０】
前記制御部は、前記ゲインを非連続的に変化させることで、前記第１のモードと前記第２のモードとを非連続的に切り替える、請求項２に記載の制御装置。
【請求項１１】
前記制御部は、前記差分が所定の閾値以上であるか否かに応じて、前記ゲインをステップ状に変化させる、請求項１０に記載の制御装置。
【請求項１２】
前記制御部は、前記トルク、及び前記制御対象の姿勢に基づき推定される推定トルクに前記ゲインを乗算した値に基づき、前記トルク指令値を補正する、請求項２に記載の制御装置。
【請求項１３】
前記制御部は、前記トルクから前記制御対象の動作のみに起因して生じたトルクである外トルクを減算することで、前記推定トルクを推定する、請求項１２に記載の制御装置。
【請求項１４】
前記制御部は、前記制御対象の関節角度に基づき逆動力学演算を行うことで、前記外トルクを算出する、請求項１３に記載の制御装置。
【請求項１５】
制御対象が備える力覚センサにより検出される第１の外力と、前記力覚センサを可動させる前記制御対象の可動部が備えるトルクセンサにより検出されるトルクに基づき推定される第２の外力との比較を行い、トルク指令値を前記比較の結果に基づき補正することで、前記制御対象の動作を制御すること、
を含む、プロセッサにより実行される制御方法。
【請求項１６】
アクチュエータを有する可動部と、前記可動部によって複数のリンクが連結されたアーム部と、前記可動部に作用するトルクを検出するトルクセンサと、前記アーム部の先端に作用する第１の外力を検出する力覚センサと、を備える、アーム装置と、
前記第１の外力と、前記トルクに基づき推定される第２の外力との比較を行い、トルク指令値を前記比較の結果に基づき補正することで、前記アーム装置の動作を制御する制御部、を備える、制御装置と、
を備える、制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、制御装置、制御方法、及び制御システムに関する。
【背景技術】
【０００２】
近年、人間と共存及び共働するロボットに関する技術が注目されている。当該技術の一例として、ロボットの動作を制御する技術が普及し始めている。【０００３】
下記特許文献１には、ロボットに備えられたセンサが検出するロボットに作用する外力等に基づき、ロボットの動作が補正されることで、ロボットに生じる振動が抑制される技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１２４４５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の技術は、例えば、ロボットが周囲の人間又は物体等に接触した際に、位置制御によりロボットに生じる振動を抑えることができる。しかしながら、当該技術は、ロボットの力の制御までは行わないため、ロボットが人間又は物体等に与える衝撃等を抑えることはできず、人間に怪我を負わせたり、周囲の物体を破損したりすることが起こり得る。そのため、ロボットが周囲の人間又は物体等に接触した際に、ロボットの力を制御すること、又はロボットが受動性を持った動作を行うこと等により、人間又は物体等へ与える衝撃を抑制するような動作をロボットが行うことが望まれる。【０００６】
そこで、本開示では、検出される外力に応じて制御対象の動作を制御することが可能な、新規かつ改良された制御装置、制御方法、及び制御システムを提案する。
【課題を解決するための手段】
【０００７】
本開示によれば、制御対象が備える力覚センサにより検出される第１の外力と、前記力覚センサを可動させる前記制御対象の可動部が備えるトルクセンサにより検出されるトルクに基づき推定される第２の外力との比較を行い、トルク指令値を前記比較の結果に基づき補正することで、前記制御対象の動作を制御する制御部、を備える、制御装置が提供される。【０００８】
また、本開示によれば、制御対象が備える力覚センサにより検出される第１の外力と、前記力覚センサを可動させる前記制御対象の可動部が備えるトルクセンサにより検出されるトルクに基づき推定される第２の外力との比較を行い、トルク指令値を前記比較の結果に基づき補正することで、前記制御対象の動作を制御すること、を含む、プロセッサにより実行される制御方法が提供される。【０００９】
また、本開示によれば、アクチュエータを有する可動部と、前記可動部によって複数のリンクが連結されたアーム部と、前記可動部に作用するトルクを検出するトルクセンサと、前記アーム部の先端に作用する第１の外力を検出する力覚センサと、を備える、アーム装置と、前記第１の外力と、前記トルクに基づき推定される第２の外力との比較を行い、トルク指令値を前記比較の結果に基づき補正することで、前記アーム装置の動作を制御する制御部、を備える、制御装置と、を備える、制御システムが提供される。
【発明の効果】
【００１０】
以上説明したように本開示によれば、検出される外力に応じて制御対象の動作を制御することが可能となる。【００１１】
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１２】
【図１】本開示の一実施形態に係るアーム装置の概略構成を示す説明図である。
【図２】比較例に係る制御部の機能構成例を示すブロック図である。
【図３】第１の実施形態に係る制御システムの構成例を示すブロック図である。
【図４】同実施形態に係る制御部の機能構成例を示すブロック図である。
【図５】同実施形態に係るゲインの連続的変化の例を示す説明図である。
【図６】同実施形態に係るゲインのステップ状変化の例を示す説明図である。
【図７】同実施形態に係る閾値群の例を示す説明図である。
【図８】同実施形態に係る制御部の処理ブロックの構成例を示すブロック図である。
【図９】同実施形態に係る制御装置の動作例を示すフローチャートである。
【図１０】第２の実施形態に係る制御部の処理ブロックの構成例を示すブロック図である。
【図１１】第３の実施形態に係る制御部の処理ブロックの構成例を示すブロック図である。
【図１２】第４の実施形態に係る制御部の処理ブロックの構成例を示すブロック図である。
【図１３】本開示の一実施形態に係るアーム装置及び制御装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１４】
なお、説明は以下の順序で行うものとする。
１．概要
２．第１の実施形態
２．１．構成例
２．２．動作例
３．第２の実施形態
３．１．構成例
３．２．動作例
４．第３の実施形態
４．１．構成例
４．２．動作例
５．第４の実施形態
５．１．構成例
５．２．動作例
６．ハードウェア構成例
７．まとめ
【００１５】
＜＜１．概要＞＞
以下では、図１、図２を参照しながら、本開示の一実施形態の概要について説明する。以下では、本開示の一実施形態に係る制御装置による制御対象をアーム装置とし、制御装置が当該アーム装置の動作を制御する例について説明する。なお、制御対象は、アーム装置に限定されない。
【００１６】
＜１．１．アーム装置の概要＞
図１は、本開示の一実施形態に係るアーム装置１００の概略構成を示す説明図である。アーム装置１００は、例えば、複数の関節部１０２、複数のリンク１０４、及び先端部１０６で構成される。図１に示すように、アーム装置１００は、４つの関節部１０２ａ〜１０２ｄと、４つのリンク１０４ａ〜１０４ｄと、１つの先端部１０６とを有する。４つのリンク１０４ａ〜１０４ｄは、４つの関節部１０２ａ〜１０２ｄ及び先端部１０６を連結する。具体的に、図１に示すように、リンク１０４ａは、関節部１０２ａと関節部ｂ１０２ｂとを連結する。また、リンク１０４ｂは、関節部１０２ｂと関節部１０２ｃとを連結する。また、リンク１０４ｃは、関節部１０２ｃと関節部１０２ｄとを連結する。また、リンク１０４ｄは、関節部１０２ｄと先端部１０６とを連結する。
【００１７】
関節部１０２は、複数のリンク１０４を互いに回動可能に連結する機能を有する。例えば、関節部１０２ａ〜１０２ｄは、リンク１０４ａ〜１０４ｄを互いに回動可能に連結する。そして、関節部１０２ａ〜１０２ｄが回転して動作することにより、アーム装置１００の動作が制御される。ここで、以下の説明においては、アーム装置１００の各構成部材の位置とは、動作制御のために規定している空間における位置（座標）を意味し、各構成部材の姿勢とは、動作制御のために規定している空間における任意の軸に対する向き（角度）を意味する。また、以下の説明では、アーム装置１００の動作（又は動作制御）とは、関節部１０２ａ〜１０２ｄの動作（又は動作制御）を行うことによりアーム装置１００の各構成部材の位置及び姿勢が変化される（変化が制御される）ことをいう。
【００１８】
また、関節部１０２及びリンク１０４の各々は、所定の回転軸に対して回転する可動部を有する。例えば、関節部１０２及びリンク１０４の各々は、アクチュエータを有し、当該アクチュエータの駆動により所定の回転軸に対して回転する。関節部１０２及びリンク１０４の各々における回転がそれぞれ制御されることにより、例えば、アーム装置１００を伸ばしたり、縮めたり（折り畳んだり）、捻ったりといった、アーム装置１００の動作が制御される。なお、本実施形態に係るアーム装置１００は、４つの関節部１０２ａ〜１０２ｄ及び４つのリンク１０４ａ〜１０４ｄの各々に可動部を有するため、８つの自由度（ＤｏＦ：Ｄｅｇｒｅｅｓ  ｏｆ  Ｆｒｅｅｄｏｍ）を有する。よって、アーム装置１００は、一般的にロボットアームの位置と姿勢を制御するために必要とされる６つの自由度（位置の３自由度＋姿勢の３自由度）以上の自由度を有するため、冗長自由度を持つアーム装置である。
【００１９】
なお、上述の例では、アーム装置１００は、４つの関節部１０２、４つのリンク１０４、及び８つの可動部を有しているが、関節部１０２、リンク１０４、及び可動部の数は特に限定されない。例えば、アーム装置１００が有する関節部１０２、リンク１０４、及び可動部の数は、先端部１０６の位置及び姿勢の自由度を考慮して、所望の自由度を実現するように適宜設定されてもよい。また、関節部１０２及びリンク１０４の形状、及び関節部１０２の回転軸の方向等も、図１に示す例に限定されず、先端部１０６の位置及び姿勢の自由度を考慮して、所望の自由度を実現するように適宜設定されてもよい。
【００２０】
なお、本開示の一実施形態では、関節部１０２ａ〜１０２ｄに設けられるアクチュエータとして、仮想アクチュエータ（ＶＡ：Ｖｉｒｔｕａｌｉｚｅｄ  Ａｃｔｕａｔｏｒ）とが設けられる。仮想アクチュエータは、モータ、エンコーダ、減速機、及びトルクセンサを一体にしたアクチュエータユニットである。仮想アクチュエータは、関節部１０２ａ〜１０２ｄが理想的な応答を行うように関節部の動作を制御（以下では、ＶＡ制御とも称される）し、理論モデルに従った応答を得ることができる。これにより、アーム装置１００は、アーム装置１００に作用する外力に対して受動性を持った動作を行うことができる。なお、仮想アクチュエータの詳細については、本願出願人による先行特許出願である国際公開第２０１５／０４６０８１号を参照することができる。
【００２１】
上述したように、本実施形態に係る関節部１０２ａ〜１０２ｄは回転機構を有する。そのため、以下の説明において、関節部１０２ａ〜１０２ｄの動作制御とは、具体的には、関節部１０２ａ〜１０２ｄの関節角度及び／又は発生トルク（関節部１０２ａ〜１０２ｄが発生させるトルク）が制御されることを意味する。また、発生トルクは、トルクセンサにより検出され得る。例えば、本開示の一実施形態のようにアクチュエータとして仮想アクチュエータが用いられる場合、発生トルクは、仮想アクチュエータが有するトルクセンサにより検出される。一方、一般的なアクチュエータが用いられる場合、それだけでは発生トルクを検出できないため、関節部１０２ａ〜１０２ｄに別途トルクセンサが設けられてもよい。
【００２２】
リンク１０４ａ〜１０４ｅは棒状の部材であり、関節部１０２により互いに連結される。例えば、関節部１０２ａは、リンク１０４ａとリンク１０４ｂとを回動可能に連結する。また、関節部１０２ｂは、リンク１０４ｂとリンク１０４ｃとを回動可能に連結する。また、関節部１０２ｃは、リンク１０４ｃとリンク１０４ｄとを回動可能に連結する。また、関節部１０２ｄは、リンク１０４ｄとリンク１０４ｅとを回動可能に連結する。
【００２３】
アーム装置１００の先端部１０６には、多様な先端ユニットが設けられ得る。本開示の一実施形態では、例えば、先端ユニットとしてセンサ装置が設けられる。センサ装置は、多様なセンサを含み得る。例えば、センサ装置は、カメラ、サーモカメラ、デプスセンサ、マイクロフォン（以下、マイクとも称する）、圧力センサ、静電センサ、歪センサ、力覚センサ、慣性センサ及び生体センサを含み得る。なお、先端部１０６は、センサ装置として、これらのうち一つ又は複数を組み合わせ含んでも良いし、同一種類の装置を複数含んでも良い。本開示の一実施形態における先端部１０６は、センサ装置として力覚センサを含む。
【００２４】
カメラは、ＲＧＢカメラ等の、レンズ系、駆動系、及び撮像素子を有し、画像（静止画像又は動画像）を撮像する撮像装置である。サーモカメラは、赤外線等により撮像対象の温度を示す情報を含む撮像画像を撮像する撮像装置である。デプスセンサは、赤外線測距装置、超音波測距装置、ＬｉＤＡＲ（Ｌａｓｅｒ  Ｉｍａｇｉｎｇ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｒａｎｇｉｎｇ）又はステレオカメラ等の深度情報を取得する装置である。マイクは、周囲の音を収音し、アンプおよびＡＤＣ（Ａｎａｌｏｇ  Ｄｉｇｉｔａｌ  Ｃｏｎｖｅｒｔｅｒ）を介してデジタル信号に変換した音声データを出力する装置である。圧力センサは、外部から加えられた圧力を検出する装置である。静電センサは、静電容量の変化を検出する装置であり、例えば人体等の近接を検出可能な装置である。歪センサは、外部から引張力又は圧縮力を加えられることで発生する伸び又は縮みを検出する装置である。力覚センサは、力及びモーメントを検出する装置である。慣性センサは、加速度及び角速度を検出する装置である。生体センサは、心拍及び体温等の生体情報を検出する装置である。
【００２５】
また、先端部１０６には、先端ユニットとして、エンドエフェクタが設けられてもよい。エンドエフェクタは、例えば、ハンド及びグリッパ等を含み得る。
【００２６】
以上、図１を参照しながら、アーム装置１００の概略構成について説明した。なお、アーム装置１００は、アーム装置１００を統合的に制御する制御装置により、その関節部１０２の動作が制御される。当該制御装置は、アーム装置１００内に設けられてもよいし、アーム装置１００とネットワークで接続された外部サーバ等として用意されてもよい。以下では、図２を参照しながら、比較例に係る制御部について説明する。
【００２７】
＜１．２．アーム装置の制御＞
以下では、本開示の一実施形態に係る制御部を説明するにあたり、まずは比較例に係る制御部について説明する。図２は、比較例に係る制御部３１０の機能構成例を示すブロック図である。上述したアーム装置１００を統合的に制御する制御部の一例として、図２に示す機能構成を有する制御部３１０がある。当該制御部３１０は、図２に示すように、デカルト空間制御部３１２、トルク指令値算出部３１４、補正部３１５、ＶＡ制御部３１６、及び順運動学演算部３１８を備える。
【００２８】
制御部３１０は、制御対象２０（アーム装置１００）を制御するための指令値を算出するための上位ブロックとして、デカルト空間制御部３１２、及びトルク指令値算出部３１４を有する。当該２つのブロックにより、アーム装置１００全体の位置、及び姿勢を決定するための全軸協調制御系が構築されている。デカルト空間制御部３１２は、アーム装置１００の現在の位置及び姿勢を示す現在位置姿勢ｘ、及びアーム装置１００を動作した際の目標の位置及び姿勢を示す目標位置姿勢ｘｄに基づき、デカルト空間における指令加速度値（現在位置姿勢ｘの２階微分値）を算出する。なお、現在位置姿勢ｘは、順運動学演算部３１８がアーム装置１００の関節部１０２の関節角度ｑに基づく順運動学演算を行うことで算出される。トルク指令値算出部３１４は、デカルト空間制御部３１２が算出した指令加速度値（現在位置姿勢ｘの２階微分値）を、関節空間における指令値τａ（以下では、トルク指令値τａとも称される）に変換する。
【００２９】
また、制御部３１０は、上位ブロックで算出されたトルク指令値τａに基づき制御対象２０の動作を制御する下位ブロックとして、補正部３１５、及びＶＡ制御部３１６を有する。補正部３１５は、トルク指令値τａをトルクセンサが検出する外部から加えられる外トルクτｅで補正する。具体的に、補正部３１５は、トルク指令値τａに外トルクτｅを加算することで、トルク指令値τａを補正する。補正部３１５は、補正したトルク指令値τをＶＡ制御部３１６へ出力する。ＶＡ制御部３１６は、外力トルクを加算して受動性を考慮したトルク指令値τ（以下では、最終トルク指令値τとも称される）をアーム装置１００内のモータ指令部へ出力する。そして、アーム装置１００は、ＶＡ制御部３１６から入力された最終トルク指令値τに基づき、関節部１０２を動作させる。そして、関節部１０２が動作後の関節角度ｑが順運動学演算部３１８へ出力される。このようにして、アーム装置１００は、外力に対する受動性を持った動作を行うことができる。
【００３０】
上述のように、アーム装置１００に対してＶＡ制御が行われることで、アーム装置１００の作業における安全性が向上する。しかしながら、上述の制御部３１０の構成では、ＶＡ制御により安全性が向上する一方で、アーム装置１００の作業の精度が低下してしまうという問題点がある。作業精度低下の主な要因として、トルクセンサが検出する外トルクτｅが挙げられる。なぜならば、外トルクτｅは、ＶＡ制御系においては指令値となる一方、全軸協調制御系においては外乱として作用してしまうからである。
【００３１】
また、作業精度低下の他の要因として、アーム装置１００の設計誤差、及び演算誤差等が挙げられる。作業空間における力、及びモーメントは、関節部１０２のトルクセンサが検出する外トルクτｅ、アーム装置１００の姿勢、及びアーム装置１００の構成等に基づき算出される。そのため、アーム装置１００の設計誤差、及び演算誤差等により、算出される力、及びモーメントに誤差が生じると、アーム装置１００の作業の精度が低下してしまう。
【００３２】
本開示の実施形態は、上記の点に着目して発想されたものである。本開示の実施形態では、検出される外力に応じて制御対象の動作を制御することが可能な技術を提案する。例えば、検出される外力に応じて、制御対象を動作させる際の動作モードを切り替えることが可能な制御システムを提案する。具体的に、当該制御システムは、制御対象が精度の高い動作（第１の動作）を行う高精度モードと、制御対象が安全性の高い動作（第２の動作）を行う高安全モードとの切り替えを制御する。
【００３３】
当該制御システムは、アクチュエータ、及びトルクを検出するトルクセンサを有する関節部１０２と、関節部１０２によって複数のリンク１０４が連結されたアーム部とで構成されるアーム装置１００を含む。また、アーム装置１００のアーム部の先端部１０６には、先端部１０６に作用する外力の実測値（第１の外力）を検出する力覚センサが設けられる。また、当該制御システムは、アーム装置１００の動作を制御する制御部を有する制御装置も含む。制御部は、例えば、外力の実測値と、外トルクと動力学演算に基づき推定される外力の推定値（第２の外力）との比較を行い、アーム装置１００への運動目的（制御指令）に基づき算出されるトルク指令値を比較の結果に基づき補正することで、アーム装置１００の動作を制御する。
【００３４】
具体的に、制御部は、外力の実測値と外力の推定値との比較の結果に基づきゲインを調整し、ゲインを適用することでトルク指令値を補正する。より具体的に、制御部は、トルク、アーム装置１００の姿勢と動力学演算に基づき推定される推定トルクにゲインを乗算することで、ゲインを適用する。そして、制御部は、推定トルクにゲインを乗算した値に基づき、トルク指令値を補正する。
【００３５】
以上、図１、図２を参照しながら、本開示の一実施形態の概要について説明した。続いて、第１の実施形態について説明する。
【００３６】
＜＜２．第１の実施形態＞＞
以下では、第１の実施形態について説明する。なお、第１の実施形態では、トルクセンサが検出するデータを用いたＶＡ制御により高安全モードを実現する。また、第１の実施形態では、力覚センサが検出するデータを用いたインピーダンス制御により高精度モードを実現するものとする。
【００３７】
＜２．１．構成例＞
以下では、図３〜図８を参照しながら、第１の実施形態に係る構成例について説明する。
【００３８】
＜２．１．１．制御システム１０の構成例＞
図３は、第１の実施形態に係る制御システム１０の構成例を示すブロック図である。図３に示すように、制御システム１０は、アーム装置１００、及び制御装置２００を含み得る。
【００３９】
（１）アーム装置１００
図３に示すように、アーム装置１００は、センサ部１１０、及び関節動作部１２０を含み得る。
【００４０】
（１−１）センサ部１１０
センサ部１１０は、多様なセンサを含み得る。センサ部１１０は、例えば、図３に示すように、力覚センサ１１２、及びトルクセンサ１１４を含む。力覚センサ１１２は、アーム装置１００の先端部１０６に設けられ、先端部１０６に作用する外力、及びモーメントを検出する。アーム装置１００の先端部１０６は、高精度な作業が必要とされる作業空間により近い位置である。力覚センサ１１２は、当該位置に設けられることで、アーム装置１００の他の位置に設けられる場合と比較して、より高精度な力及びモーメントを検出することができる。なお、力覚センサ１１２は、３次元から６次元の外力、及びモーメントを検出する。また、力覚センサ１１２は、基本的に、アーム装置１００の関節部１０２が動作した際のアーム装置１００の動作に応じて可動し、データを検出する。なお、力覚センサ１１２は、アーム装置１００の関節部１０２が停止している際も、データを検出してもよい。また、トルクセンサ１１４は、アーム装置１００の関節部１０２ａ〜１０２ｄの各々に設けられ、関節部１０２ａ〜１０２ｄの各々に作用するトルクを検出する。なお、トルクセンサ１１４は、関節部１０２の回転軸周りにおける１次元のトルクを検出する。
【００４１】
（１−２）関節動作部１２０
関節動作部１２０は、関節部１０２を動作させる機能を有する。例えば、関節動作部１２０は、制御装置２００から入力される最終トルク指令値τに基づき、関節部１０２を動作させる。そして、関節動作部１２０は、動作後の関節部１０２の関節角度ｑを制御装置２００へ出力する。
【００４２】
（２）制御装置２００
制御装置２００は、図３に示すように、制御部２１０−１、及び記憶部２３０を含み得る。
【００４３】
（２−１）制御部２１０−１
制御部２１０−１は、アーム装置１００の動作を制御する機能を有する。例えば、制御部２１０−１は、アーム装置１００のセンサ部１１０が検出するデータに基づき、アーム装置１００の動作の制御に必要な情報を算出する。具体的に、制御部２１０−１は、力覚センサ１１２とトルクセンサ１１４が検出したデータに基づき、アーム装置１００に対するトルク指令値τを算出する。また、制御部２１０−１は、力覚センサ１１２とトルクセンサ１１４が検出したデータの関係に基づき、必要に応じてトルク指令値τを補正する。例えば、制御部２１０−１は、トルク、アーム装置１００の姿勢（例えば、関節角度）と動力学演算に基づき推定される推定トルクにゲインを乗算した値を用いて、トルク指令値を補正する。そして、制御部２１０−１は、最終的なトルク指令値である最終トルク指令値τをアーム装置１００の関節動作部１２０に出力し、関節動作部１２０に関節部１０２の動作を制御させる。
【００４４】
（２−２）記憶部２３０
記憶部２３０は、各種データを記憶する機能を有する。例えば、記憶部２３０は、アーム装置１００のセンサ部１１０が検出したセンサデータを記憶する。また、記憶部２３０は、制御部２１０−１の制御処理において出力されるデータを記憶する。また、記憶部２３０は、各種アプリケーション等のプログラム、及びデータ等を記憶する。なお、記憶部２３０が記憶するデータは、上述の例に限定されない。
【００４５】
＜２．１．２．制御部２１０−１の機能構成例＞
図４は、第１の実施形態に係る制御部２１０−１の機能構成例を示すブロック図である。図４に示すように、制御部２１０−１は、全軸協調制御部２１１−１及び関節制御部２２０−１を備える。
【００４６】
（１）全軸協調制御部２１１−１
図４に示すように、全軸協調制御部２１１−１は、デカルト空間制御部２１２−１、トルク指令値算出部２１４−１、外力推定部２１６−１、外トルク適応制御部２１８−１、及び補正部２１９−１を備える。
【００４７】
（１−１）デカルト空間制御部２１２−１
デカルト空間制御部２１２−１は、デカルト空間における指令値を算出する機能を有する。例えば、デカルト空間制御部２１２−１は、アーム装置１００を動作した際の目標の位置及び姿勢を示す目標位置姿勢ｘｄと、アーム装置１００の先端部１０６の力覚センサ１１２が検出する外力Ｆｓ（外力の実測値）に基づき、デカルト空間における指令加速度値（現在位置姿勢ｘの２階微分値）を算出する。そして、デカルト空間制御部２１２−１は、算出したデカルト空間における指令加速度値をトルク指令値算出部２１４−１へ出力する。
【００４８】
（１−２）トルク指令値算出部２１４−１
トルク指令値算出部２１４−１は、デカルト空間における指令加速度値を関節空間における指令値τａ（トルク指令値τａ）に変換する機能を有する。例えば、トルク指令値算出部２１４−１は、デカルト空間制御部２１２−１が算出した指令加速度値（現在位置姿勢ｘの２階微分値）に基づき、関節部１０２の角加速度（関節角度ｑの２階微分値）を算出する。次いで、トルク指令値算出部２１４−１は、角加速度（関節角度ｑの２階微分値）に基づき、トルク指令値τａを算出する。そして、トルク指令値算出部２１４−１は、算出したトルク指令値τａを補正部２１９−１へ出力する。
【００４９】
（１−３）外力推定部２１６−１
外力推定部２１６−１は、アーム装置１００の先端部１０６に作用していると推定される推定外力Ｆｅｘ（外力の推定値）を算出する機能を有する。例えば、外力推定部２１６−１は、アーム装置１００の関節部１０２の関節角度ｑ、角速度（関節角度ｑの微分値）、及び角加速度（関節角度ｑの２階微分値）に基づき、逆動力学演算を行う。そして、外力推定部２１６−１は、外トルクτｅに含まれると推定されるアーム装置１００の動作のみに起因して生じたトルク（重力、遠心力等）である外トルク（τにキャレットを付して表す）を算出する。以下では、関節角度ｑ、角速度（関節角度ｑの微分値）、及び角加速度（関節角度ｑの２階微分値）は、まとめて関節部１０２の現在状態とも称される。次いで、外力推定部２１６−１は、トルクセンサが検出する外トルクτｅと外トルク（キャレットを付したτ）との差分を推定外トルク（推定トルク）τｅｘとして算出する。具体的に、外力推定部２１６−１は、外トルクτｅから外トルク（キャレットを付したτ）を減算して推定外トルクτｅｘを算出する。これにより、アーム装置１００の動作のみに起因して生じたトルクがキャンセルされるため、外力推定部２１６−１は、人や環境等との衝突で発生した外トルク成分を算出することができる。次いで、外力推定部２１６−１は、推定外トルクτｅｘに基づき、推定外力Ｆｅｘを算出する。そして、外力推定部２１６−１は、算出した推定外力Ｆｅｘを外トルク適応制御部２１８−１へ出力する。
【００５０】
（１−４）外トルク適応制御部２１８−１
外トルク適応制御部２１８−１は、高精度モードと高安全モードとを切り替える機能を有する。例えば、外トルク適応制御部２１８−１は、外力Ｆｓと推定外力Ｆｅｘとを比較して差分εを抽出し、当該差分εに基づき、アーム装置１００の全体に作用する外力（第３の外力）の作用状態を検出する。以下では、アーム装置１００の全体に作用する外力は、全体外力とも称される。次いで、外トルク適応制御部２１８−１は、作用状態に応じて高精度モードと高安全モードとを切り替える。差分εの抽出に用いられる推定外力Ｆｅｘは、外力推定部２１６−１による算出時に、アーム装置１００の動作のみに起因して生じたトルク（重力、遠心力等）がキャンセルされ、人や環境等との衝突で発生した外トルク成分として算出されている。そのため、外トルク適応制御部２１８−１は、差分εの抽出にあたり、当該推定外力Ｆｅｘと力覚センサが検出する外力Ｆｓとを同レベルで扱うことができる。
【００５１】
アーム装置１００に想定外の全体外力が作用している作用状態である場合、外トルク適応制御部２１８−１は、例えば、動作モードを高安全モードに切り替える。これは、即ち、力覚センサ１１２とトルクセンサ１１４との２つのセンサ系の間で不整合が生じたと判定されたことを意味する。そのため、外トルク適応制御部２１８−１は、力覚センサ１１２が検出する外力Ｆｓとトルクセンサ１１４が検出する外トルクτｅとを用いて安全性の高い力制御を行う高安全モードに切り替える。外トルク適応制御部２１８−１は、例えば、所定の値（第２の値）に近づくようにゲインαを調整することで、動作モードとして高安全モードを設定する。具体的に、外トルク適応制御部２１８−１は、ゲインαが１に近づくように設定する。そして、外トルク適応制御部２１８−１は、推定外トルクτｅｘにゲインαを乗じたατｅｘを補正部２１９−１へ出力する。なお、ゲインαが示す値は、０≦α≦１の範囲の値であるとする。また、所定の値（第２の値）には、０≦α≦１の条件を満たす任意の値が設定されてよい。
【００５２】
アーム装置１００に想定内の全体外力が作用している作用状態である場合、外トルク適応制御部２１８−１は、例えば、動作モードを高精度モードに切り替える。これは、即ち、力覚センサ１１２とトルクセンサ１１４との２つのセンサ系の間で整合が取れていると判定されたことを意味する。そのため、外トルク適応制御部２１８−１は、力覚センサ１１２が検出する外力Ｆｓのみを用いた精度の高い作業を行う高精度モードに切り替える。外トルク適応制御部２１８−１は、例えば、所定の値（第１の値）に近づくようにゲインαを調整することで、動作モードとして高精度モードを設定する。具体的に、外トルク適応制御部２１８−１は、ゲインαが０に近づくように設定する。また、力覚センサ１１２とトルクセンサ１１４との２つのセンサ系の間で整合が取れており、周囲の人間または物体等と接触する危険性がなく作業ができると想定される場合、外トルク適応制御部２１８−１は、ゲインαを０にしてもよい。これにより、外トルク適応制御部２１８−１は、ατｅｘを０として補正部２１９−１へ出力することができる。即ち、外トルク適応制御部２１８−１は、トルクセンサが検出する外トルクτｅの入力を無効化することができる。なお、所定の値（第１の値）には、０≦α≦１の条件を満たす任意の値が設定されてよい。
【００５３】
作用状態は、差分εと所定の閾値との比較に基づき、外トルク適応制御部２１８−１に検出される。例えば、差分εが所定の閾値以上である場合、作用状態は、アーム装置１００に想定外の全体外力が作用している作用状態である。また、差分εが所定の閾値以上でない場合、作用状態は、アーム装置１００に想定内の全体外力が作用している作用状態である。なお、作用状態の判定条件は、上述の例に限定されず、任意の判定条件であってもよい。
【００５４】
ゲインαは、差分εに基づき、任意の方法で外トルク適応制御部２１８−１に調整される。例えば、外トルク適応制御部２１８−１は、ゲインαを連続的に変化させる。これにより、外トルク適応制御部２１８−１は、高精度モードと高安全モードとを連続的に切り替えてよい。図５は、第１の実施形態に係るゲインの連続的変化の例を示す説明図である。図５の左側のゲインαの連続的変化の例１は、ゲインαが線形型で連続的に変化する例を示す。図５の中央のゲインαの連続的変化の例２は、ゲインαが多項式型で連続的に変化する例を示す。図５の右側のゲインαの連続的変化の例３は、ゲインαが非線形型（テーブル参照型）で連続的に変化する例を示す。図５の各々の図の例に示すように、差分εが所定の範囲内（例えば、閾値ＴＨＲ１から閾値ＴＨＲ２の範囲内）の値である場合、外トルク適応制御部２１８−１は、ゲインαを０から１まで連続的に変化させてもよい。なお、差分εが閾値ＴＨＲ１からＴＨＲ２の範囲内である場合、ゲインαは、非線形関数型、学習型等で連続的に変化してもよい。このように、ゲインαの連続的な変化により動作モードが連続的に切り替えられることで、アーム装置１００は、動作モードの切り替え時における動作の変化を滑らかに行うことができる。なお、以下では、閾値ＴＨＲ１及び閾値ＴＨＲ２等の複数の閾値は、まとめて閾値群とも称される。
【００５５】
また、外トルク適応制御部２１８−１は、ゲインαを非連続的に変化させてもよい。これにより、外トルク適応制御部２１８−１は、高精度モードと高安全モードとを非連続的に切り替えてよい。図６は、第１の実施形態に係るゲインのステップ状変化の例を示す説明図である。図６のゲインαのステップ状変化の例に示すように、差分εが所定の閾値以上であるか否かに応じて、外トルク適応制御部２１８−１は、ゲインαを０または１のいずれか一方となるようにステップ状に変化させてもよい。
【００５６】
なお、動作モードが高安全モードである時に、差分εが小さくなり、アーム装置１００に想定外の外力Ｆｓが作用していないと判定されたとする。その場合、外トルク適応制御部２１８−１は、動作モードを高安全モードから高精度モードへシームレスに切り替えてもよい。一方、動作モードが高精度モードである時に、差分εが大きくなり、アーム装置１００に想定外の外力Ｆｓが作用していると判定されたとする。その場合、外トルク適応制御部２１８−１は、動作モードを高精度モードから高安全モードへシームレスに切り替えてもよい。
【００５７】
閾値群は、適応的に変更されてもよい。図７は、本開示の実施形態に係る閾値群の例を示す説明図である。例えば、外トルク適応制御部２１８−１は、アーム装置１００に指令されるタスクの内容に応じて閾値群を変更する。具体的に、タスクの内容が人とのインタラクションや動的な環境における動作を示す場合、アーム装置１００は安全性の高い動作を行うことを求められるため、外トルク適応制御部２１８−１は、図７の左側の閾値群の例１のように、ＴＨＲ１及びＴＨＲ２を設定する。また、タスクの内容が精密加工や液体運搬等の動作を示す場合、アーム装置１００は精度の高い動作を求められるため、外トルク適応制御部２１８−１は、図７の右側の閾値群の例２のように、ＴＨＲ３及びＴＨＲ４を設定する。
【００５８】
なお閾値群は、記憶部２３０にて、テーブルに直接的な値として保持されてもよいし、関数により表現され保持されてもよい。デーブルに直接的な値として保持される場合、閾値群は、例えば、｛ＴＨＲ１、ＴＨＲ２｝、｛ＴＨＲ３、ＴＨＲ４｝のように保持される。また、関数により表現される場合、閾値群は、例えば、ＴＨＲ３＝ｆ（ＴＨＲ１，ＴＨＲ２，ｐａｒａｍ）、ＴＨＲ４＝ｆ’（ＴＨＲ１，ＴＨＲ２，ｐａｒａｍ）のように表現される。
【００５９】
また、上述の例では、動作モードとして高精度モードと高安全モードとの２つのモードの切り替えについて説明したが、動作モードは、アーム装置１００の作業内容に応じて、他のモードに切り替えられてもよい。例えば、動作モードは、アーム装置１００に作用する想定外の外力Ｆｓに対して、アーム装置１００が敏感な動作を行う敏感モードに切り替えられてもよい。敏感モードの場合、外トルク適応制御部２１８−１は、ゲインαが１．０である領域が多くなるように閾値群を設定する。これにより、アーム装置１００が推定外トルクτｅｘの影響を受けやすくなるため、外トルク適応制御部２１８−１は、アーム装置１００が外力Ｆｓに対してより敏感に動作するように動作を制御することができる。また、動作モードは、アーム装置１００に作用する想定外の外力Ｆｓに対して、アーム装置１００が鈍感な動作を行う鈍感モードに切り替えられてもよい。鈍感モードの場合、外トルク適応制御部２１８−１は、ゲインαが０．０である領域が多くなるように閾値群を設定する。これにより、アーム装置１００が推定外トルクτｅｘの影響を受けづらくなるため、外トルク適応制御部２１８−１は、アーム装置１００が外力Ｆｓに対してより鈍感に動作するように動作を制御することができる。
【００６０】
なお、外トルク適応制御部２１８−１は、例えば、過去に外力推定部２１６−１から入力された推定外力Ｆｅｘの値、過去に調整したゲインαの値等に基づき機械学習を行い、当該機械学習の結果に基づき、ゲインαを調整してもよい。
【００６１】
（１−５）補正部２１９−１
補正部２１９−１は、最終トルク指令値τを算出する機能を有する。例えば、補正部２１９−１は、高安全モード、または高精度モードの各々のモードに応じて調整されたゲインαが適用されたατｅｘに基づき、トルク指令値τａを補正し、最終トルク指令値τを算出する。具体的に、補正部２１９−１は、動作モードが高安全モードである場合、トルク指令値τａにατｅｘを加算することで、トルク指令値τａを補正する。これにより、補正部２１９−１は、アーム装置１００が力覚センサ１１２により検出される外力Ｆｓとトルクセンサ１１４により検出される外トルクτｅとに基づき受動性を持った動作をするように最終トルク指令値τを算出することができる。そして、補正部２１９−１は、算出した最終トルク指令値τを関節制御部２２０−１へ出力する。
【００６２】
また、補正部２１９−１は、動作モードが高精度モードである場合、ατｅｘを用いずにτａをそのまま最終トルク指令値τとする。これにより、補正部２１９−１は、アーム装置１００が力覚センサ１１２により検出される外力Ｆｓのみに基づき精度の高い作業を行うように最終トルク指令値τを算出することができる。そして、補正部２１９−１は、算出した最終トルク指令値τを関節制御部２２０−１へ出力する。なお、補正部２１９−１は、動作モードが高精度モードである場合であっても、トルク指令値τａとατｅｘとを加算することにより、トルク指令値τａを補正して最終トルク指令値τを算出してもよい。
【００６３】
（２）関節制御部２２０−１
関節制御部２２０−１は、最終トルク指令値τに基づき、制御対象の動作を制御する機能を有する。関節制御部２２０−１は、高安全モードにおいて補正部２１９−１から最終トルク指令値τが入力された場合、当該最終トルク指令値τに基づき、アーム装置１００が受動性を持った動作を行うように、アーム装置１００の関節部１０２の動作を制御する。受動性を持った動作として、例えば、関節制御部２２０−１は、アーム装置１００が人間と接触した際に、アーム装置１００が人間との接触方向と反対方向へ移動して人間から離れる動作を行うように、関節部１０２を動作させる。また、高精度モードにおいて補正部２１９−１から最終トルク指令値τが入力された場合、当該最終トルク指令値τに基づき、アーム装置１００が高精度な作業を行うように、アーム装置１００の関節部１０２の動作を制御する。なお、関節制御部２２０−１は、トルクセンサが検出する外トルクτｅが無効化された上で算出された最終トルク指令値τが補正部２１９−１から入力された場合、アーム装置１００の関節部１０２のアクチュエータの制御剛性を上げることができる。これにより、関節制御部２２０−１は、アーム装置１００の先端部１０６により高精度な作業を行わせることができる。
【００６４】
以上、図３〜図７を参照しながら、第１の実施形態に係る制御部２１０−１の機能構成例について説明した。続いて、第１の実施形態に係る制御部２１０−１の各構成要素における処理の詳細について説明する。
【００６５】
＜２．１．３．制御部２１０−１の処理ブロック構成例＞
図８は、第１の実施形態に係る制御部２１０−１の処理ブロックの構成例を示すブロック図である。図８に示すように、デカルト空間制御部２１２−１は、処理ブロック２１２−１Ａを備える。また、トルク指令値算出部２１４−１は、処理ブロック２１４−１Ａ、及び処理ブロック２１４−１Ｂを備える。また、外力推定部２１６−１は、処理ブロック２１６−１Ａ、処理ブロック２１６−１Ｂ、及び処理ブロック２１６−１Ｃを備える。また、外トルク適応制御部２１８−１は、処理ブロック２１８−１Ａ、処理ブロック２１８−１Ｂ、及び処理ブロック２１８−１Ｃを備える。また、関節制御部２２０−１は、処理ブロック２２０−１Ａを備える。
【００６６】
（１）処理ブロック２１２−１Ａ
処理ブロック２１２−１Ａは、デカルト空間における指令加速度値（現在位置姿勢ｘの２階微分値）を算出する処理を行う。例えば、処理ブロック２１２−１Ａは、目標姿勢位置ｘｄと力覚センサ１１２が検出した外力Ｆｓとに基づき、デカルト空間における指令加速度値（現在位置姿勢ｘの２階微分値）を算出する。アーム装置１００の現在位置姿勢をｘとすると、外力の実測値Ｆｓは、以下の数式（１）のように示される。
【００６７】
【数１】
2020017370.tif 000003
【００６８】
なお、数式（１）のＭはインピーダンス制御における慣性行列を、Ｄはインピーダンス制御における粘性行列を、Ｋはインピーダンス制御における剛性行列を示している。
【００６９】
処理ブロック２１２−１Ａは、ｅ＝（ｘ−ｘｄ）として数式（１）を変形した以下の数式（２）により、デカルト空間における指令加速度値（現在位置姿勢ｘの２階微分値）を算出する。そして、処理ブロック２１２−１Ａは、算出したデカルト空間における指令加速度値（現在位置姿勢ｘの２階微分値）を処理ブロック２１４−１Ａへ出力する。
【００７０】
【数２】
2020017370.tif 000004
【００７１】
（２）処理ブロック２１４−１Ａ
処理ブロック２１４−１Ａは、関節部１０２の角加速度（関節角度ｑの２階微分値）を算出する処理を行う。例えば、処理ブロック２１４−１Ａは、ヤコビ行列Ｊの一般化逆行列Ｊ＋を用いることで、デカルト空間における指令加速度値（現在位置姿勢ｘの２階微分値）から関節部１０２の角加速度（関節角度ｑの２階微分値）を算出する。そして、処理ブロック２１４−１Ａは、算出した角加速度（関節角度ｑの２階微分値）を処理ブロック２１４−１Ｂへ出力する。なお、処理ブロック２１４−１Ａにおける関節部１０２の角加速度（関節角度ｑの２階微分値）の算出方法は、ヤコビ行列Ｊの一般化逆行列Ｊ＋を用いる方法に限定されない。例えば、関節部１０２の角加速度（関節角度ｑの２階微分値）は、特異点回避型の逆行列を用いる方法により算出されてもよい。
【００７２】
（３）処理ブロック２１４−１Ｂ
処理ブロック２１４−１Ｂは、トルク指令値τａを算出する処理を行う。例えば、処理ブロック２１４−１Ｂは、角加速度（関節角度ｑの２階微分値）に基づき逆動力学（ＩＤ：Ｉｎｖｅｒｓｅ  Ｄｙｎａｍｉｃｓ）演算を行うことで、トルク指令値τａを算出する。そして、処理ブロック２１４−１Ｂは、算出したトルク指令値τａを補正部２１９−１へ出力する。
【００７３】
（４）処理ブロック２１６−１Ａ
処理ブロック２１６−１Ａは、外トルク（キャレットを付したτ）を算出する処理を行う。例えば、処理ブロック２１６−１Ａは、関節部１０２の関節角度ｑに基づき逆動力学演算を行うことで、外トルク（キャレットを付したτ）を算出する。具体的に、処理ブロック２１６−１Ａは、関節部１０２の関節角度ｑから、角速度（関節角度ｑの微分値）及び角加速度（関節角度ｑの２階微分値）を算出することで関節部１０２の現在状態を検出する。そして、処理ブロック２１６−１Ａは、当該現在状態に基づき逆動力学演算を行うことで、外トルク（キャレットを付したτ）を算出する。そして、処理ブロック２１６−１Ａは、算出した外トルク（キャレットを付したτ）を処理ブロック２１６−１Ｂへ出力する。なお、外トルク（キャレットを付したτ）は、以下の数式（３）により算出される。
【００７４】
【数３】
2020017370.tif 000005
【００７５】
なお、数式（３）のキャレットを付したＭは慣性行列を、キャレットを付したｃは遠心力及びコリオリ力を、キャレットを付したｇは重力項を示している。
【００７６】
また、外トルク（キャレットを付したτ）は、機械要素の摩擦、バックラッシ、及びハーネス捻転等のモデル化により算出されてもよい。例えば、機械要素（例えば摩擦）がモデル化された場合、外トルク（キャレットを付したτ）は、上記数式（３）ではなく、以下の数式（４）により算出される。
【００７７】
【数４】
2020017370.tif 000006
【００７８】
数式（４）に示すキャレットを付したｈを有する項は摩擦項を示している。クーロン摩擦力をＦｃ、符号関数をｓｇｎ（）、粘性摩擦をＤとすると、摩擦項は、以下の数式（５）により算出される。
【００７９】
【数５】
2020017370.tif 000007
【００８０】
また、外トルク（キャレットを付したτ）は、弾性アクチュエータ（ＳＥＡ：Ｓｅｒｉｅｓ  Ｅｌａｓｔｉｃ  Ａｃｔｕａｔｏｒ）のバネ要素のモデル化により算出されてもよい。弾性アクチュエータは、例えば、モータとリンクとの間に弾性体であるバネが備えられた機構である。モータ側の関節角度をθ、バネの関節剛性をＫ、リンク側の関節角度をｑとすると、外トルク（キャレットを付したτ）は、上記数式（３）及び数式（４）ではなく、以下の数式（６）により算出される。
【００８１】
【数６】
2020017370.tif 000008
【００８２】
（５）処理ブロック２１６−１Ｂ
処理ブロック２１６−１Ｂは、推定外トルクτｅｘを算出する処理を行う。例えば、処理ブロック２１６−１Ｂは、トルクセンサ１１４が検出する外トルクτｅから処理ブロック２１６−１Ａが算出した外トルク（キャレットを付したτ）を減算することで、外トルクτｅｘを算出する。そして、処理ブロック２１６−１Ｂは、算出した外トルク（キャレットを付したτ）を処理ブロック２１６−１Ｃ，及び処理ブロック２１８−１Ｃへ出力する。
【００８３】
（６）処理ブロック２１６−１Ｃ
処理ブロック２１６−１Ｃは、推定外力Ｆｅｘを算出する処理を行う。例えば、処理ブロック２１６−１Ｃは、ヤコビ行列Ｊを用いることで、推定外トルクτｅｘから推定外力Ｆｅｘを算出する。そして、処理ブロック２１６−１Ｃは、算出した推定外力Ｆｅｘを処理ブロック２１８−１Ａへ出力する。
【００８４】
（７）処理ブロック２１８−１Ａ
処理ブロック２１８−１Ａは、差分εを算出する処理を行う。例えば、処理ブロック２１８−１Ａは、処理ブロック２１６−１Ｃから入力される推定外力Ｆｅｘから力覚センサ１１２が検出する外力Ｆｓを減算することで、差分εを算出する。そして、処理ブロック２１８−１Ａは、算出した差分εを処理ブロック２１８−１Ｂへ出力する。
【００８５】
（８）処理ブロック２１８−１Ｂ
処理ブロック２１８−１Ｂは、ゲインαを調整する処理を行う。例えば、処理ブロック２１８−１Ｂは、処理ブロック２１８−１Ａが算出した差分εに基づき、ゲインαを調整する。そして、処理ブロック２１８−１Ｂは、調整後のゲインαを処理ブロック２１８−１Ｃへ出力する。
【００８６】
（９）処理ブロック２１８−１Ｃ
処理ブロック２１８−１Ｃは、推定外トルクτｅｘにゲインαを適用する処理を行う。例えば、処理ブロック２１８−１Ｃは、処理ブロック２１６−１Ｂから入力される推定外トルクτｅｘと処理ブロック２１８−１Ｂが調整したゲインαとを乗算することでατｅｘを算出する。そして、処理ブロック２１８−１Ｃは、算出したατｅｘを補正部２１９−１へ出力する。
【００８７】
（１０）処理ブロック２２０−１Ａ
処理ブロック２２０−１Ａは、ＶＡ制御に関する処理を行う。例えば、処理ブロック２２０−１Ａは、トルクセンサ１１４が検出した外トルクに基づき補正された最終トルク指令値τが補正部２１９−１から入力されると、アーム装置１００（制御対象２０）が受動性を持った動作を行うように関節部１０２の動作を制御する。
【００８８】
以上、図３〜図８を参照しながら、第１の実施形態に係る構成例について説明した。続いて、第１の実施形態に係る動作例について説明する。
【００８９】
＜２．２．動作例＞
以下では、図９を参照しながら、第１の実施形態に係る制御装置２００の動作例について説明する。図９は、第１の実施形態に係る制御装置２００の動作例を示すフローチャートである。
【００９０】
図９に示すように、まず、制御装置２００は、力覚センサ１１２が検出する外力Ｆｓ、及びトルクセンサ１１４が検出する外トルクτｅを取得する（ステップＳ１０００）。制御装置２００は、関節部１０２の現在状態に基づく逆動力学演算と外トルクτｅにより、推定外トルクτｅｘを算出する（ステップＳ１００２）。制御装置２００は、推定外トルクτｅｘに基づき推定される推定外力Ｆｅｘを算出する（ステップＳ１００４）。制御装置２００は、算出した推定外力Ｆｅｘと力覚センサ１１２が検出した外力Ｆｓとの差分εを算出する（ステップＳ１００６）。
【００９１】
差分εを算出後、制御装置２００は、差分εの閾値群を設定する（ステップＳ１００８）。なお、ステップＳ１００８にて、当該閾値群は、距離情報ｄ、アーム装置１００に対する付く指令、又はアーム装置１００の過去の動作履歴のいずれに基づき決定されてもよい。制御装置２００は、設定した差分εの閾値群に基づき、算出した差分εに応じたゲインαを設定する（ステップＳ１０１０）。ゲインαを設定後、制御装置２００は、制御指令値に基づき算出したトルク指令値τａを、推定外トルクτｅｘにゲインαを適用したατｅｘで補正し、最終トルク指令値τを算出する（ステップＳ１０１２）。そして、制御装置２００は、最終トルク指令値τに基づき、制御対象であるアーム装置１００の関節部１０２を動作させることで、アーム装置１００の動作を制御し（ステップＳ１０１４）、処理を終了する。
【００９２】
以上、図９を参照しながら、第１の実施形態に係る制御部２１０−１の動作例について説明した。
【００９３】
以上、図３〜図９を参照しながら、第１の実施形態について説明した。続いて、第２〜第４の実施形態について説明する。なお、以下に説明する第２〜第４の実施形態に係る制御システム１０は、制御部２１０の処理ブロックの構成のみが第１の実施形態の制御システム１０と異なる。したがって、以下では、第１の実施形態と相違する事項である制御部２１０の処理ブロックの構成を主に説明し、第１の実施形態と重複する事項の詳細な説明を省略する。
【００９４】
＜＜３．第２の実施形態＞＞
以下では、図１０を参照しながら、第２の実施形態について説明する。上述の第１の実施形態では、高精度モードが力覚センサにより検出されるデータを用いたインピーダンス制御により実現される例について説明した。第２の実施形態では、高精度モードがＰＩＤ（Ｐｒｏｐｏｒｔｉｏｎａｌ  Ｉｎｔｅｇｒａｌ  Ｄｉｆｆｅｒｅｎｔｉａｌ）制御により実現される例について説明する。第２の実施形態では、制御部２１０−２のデカルト空間制御部２１２−２の処理ブロックにて、第１の実施形態とは異なる処理が実行される。以下では、当該異なる処理について、主に説明する。
【００９５】
＜３．１．構成例＞  
＜３．１．１．制御システム１０の構成例＞
第２の実施形態に係る制御システム１０の構成は、第１の実施形態にて説明した制御システム１０の構成と同一である。したがって、本節では、制御システム１０の構成に関する詳細な説明を省略する。
【００９６】
＜３．１．２．制御部２１０−２の機能構成例＞
第２の実施形態に係る制御部２１０−２の機能構成は、第１の実施形態にて説明した制御部２１０−１の機能構成と同一である。したがって、本節では、制御部２１０−２の機能構成に関する詳細な説明を省略する。
【００９７】
＜３．１．３．制御部２１０−２の処理ブロック構成例＞
図１０は、第２の実施形態に係る制御部２１０−２の処理ブロックの構成例を示すブロック図である。図１０に示すように、第２の実施形態に係る制御部２１０−２の処理ブロック構成は、デカルト空間制御部２１２−２にて処理ブロック２１２−２Ａの処理が実行される点が第１の実施形態と異なる。したがって、本節では、処理ブロック２１２−２Ａに関してのみ説明し、他の処理ブロックに関する詳細な説明を省略する。
【００９８】
処理ブロック２１２−２Ａは、デカルト空間における指令加速度値（現在位置姿勢ｘの２階微分値）を算出する処理を行う。例えば、処理ブロック２１２−２Ａは、目標姿勢位置ｘｄに基づき、デカルト空間における指令加速度値（現在位置姿勢ｘの２階微分値）を算出する。アーム装置１００の現在位置姿勢をｘとすると、デカルト空間における指令加速度値（現在位置姿勢ｘの２階微分値）は、以下の数式（７）のように示される。
【００９９】
【数７】
2020017370.tif 000009
【０１００】
なお、数式（７）のＫｐはＰＩＤ制御における比例ゲイン、ＫｄはＰＩＤ制御における微分ゲイン、ＫｉはＰＩＤ制御における積分ゲインを示している。また、ｅ＝ｘ−ｘｄ、微分を示すｓ、積分を示す１／ｓを用いて数式（７）を簡略化すると、数式（７）は以下の数式（８）のようになる。
【０１０１】
【数８】
2020017370.tif 000010
【０１０２】
処理ブロック２１２−２Ａは、数式（８）により、デカルト空間における指令加速度値（現在位置姿勢ｘの２階微分値）を算出する。そして、処理ブロック２１２−２Ａは、算出したデカルト空間における指令加速度値（現在位置姿勢ｘの２階微分値）を処理ブロック２１４−１Ａへ出力する。
【０１０３】
上述のように、第１の実施形態では高精度モードがインピーダンス制御により実現される例、第２の実施形態では高精度モードがＰＩＤ制御により実現される例について説明したが、高精度モードの制御方法は上述の例に限定されない。例えば、高精度モードは、ハイブリッド制御により制御されてもよい。
【０１０４】
以上、図１０を参照しながら、第２の実施形態に係る構成例について説明した。続いて、第２の実施形態に係る動作例について説明する。
【０１０５】
＜３．２．動作例＞
第２の実施形態に係る制御装置２００の動作は、第１の実施形態にて説明した制御装置２００の動作と同一である。したがって、本節では、制御装置２００の動作例に関する詳細な説明を省略する。
【０１０６】
以上、図１０を参照しながら、第２の実施形態について説明した。続いて、第３の実施形態について説明する。
【０１０７】
＜＜４．第３の実施形態＞＞
以下では、図１１を参照しながら、第３の実施形態について説明する。上述の第１の実施形態では、高安全モードの制御にＶＡ制御を用いる例について説明した。第３の実施形態では、高精度モードにおける位置制御にＶＡ制御を用いる例について説明する。第３の実施形態では、制御部２１０−３の関節角度指令値算出部２１４−３の処理ブロック、外力推定部２１６−３の処理ブロック、及び外トルク適応制御部２１８−３の処理ブロックにて、第１の実施形態とは異なる処理が実行される。以下では、当該異なる処理について主に説明する。
【０１０８】
＜４．１．構成例＞  
＜４．１．１．制御システム１０の構成例＞
第３の実施形態に係る制御システム１０の構成は、第１の実施形態にて説明した制御システム１０の構成と同一である。したがって、本節では、制御システム１０の構成に関する詳細な説明を省略する。
【０１０９】
＜４．１．２．制御部２１０−３の機能構成例＞
第３の実施形態に係る制御部２１０−３の機能構成は、第１の実施形態にて説明した制御部２１０−１の機能構成と同一である。したがって、本節では、制御部２１０−３の機能構成に関する詳細な説明を省略する。
【０１１０】
＜４．１．３．制御部２１０−３の処理ブロック構成例＞
図１１は、第３の実施形態に係る制御部２１０−３の処理ブロックの構成例を示すブロック図である。図１１に示すように、第３の実施形態に係る制御部２１０−３の処理ブロック構成は、トルク指令値算出部２１４−１ではなく、関節角度指令値算出部２１４−３を有する点が第１の実施形態と異なる。また、制御部２１０−３の処理ブロック構成は、外力推定部２１６−３にて、処理ブロック２１６−１Ａ〜２１６−１Ｃに加えて、処理ブロック２１６−３Ｄの処理が実行される点が第１の実施形態と異なる。また、制御部２１０−３の処理ブロック構成は、外トルク適応制御部２１８−３にて、処理ブロック２１８−３Ｄが実行する処理が第１の実施形態と異なる。したがって、本節では、関節角度指令値算出部２１４−３、処理ブロック２１６−３Ｄ、及び処理ブロック２１８−３Ｄに関してのみ説明し、他の処理ブロックに関する詳細な説明を省略する。
【０１１１】
（１）関節角度指令値算出部２１４−３
関節角度指令値算出部２１４−３は、関節角度指令値ｑａを算出する処理を行う。関節角度指令値算出部２１４−３は、まず、積分処理を行う。例えば、関節角度指令値算出部２１４−３は、処理ブロック２１２−１Ａから入力されるデカルト空間における指令加速度値（現在位置姿勢ｘの２階微分値）を積分することで、現在位置姿勢ｘの１階微分値を算出する。続けて、関節角度指令値算出部２１４−３は、現在位置姿勢ｘの１階微分値を積分することで、現在位置姿勢ｘを算出する。次いで、関節角度指令値算出部２１４−３は、例えば、現在位置姿勢ｘに基づき逆運動学（ＩＫ：Ｉｎｖｅｒｓｅ  Ｋｉｎｅｍａｔｉｃｓ）演算を行うことで、関節角度指令値ｑａを算出する。そして、関節角度指令値算出部２１４−３は、算出した関節角度指令値ｑａを補正部２１９−１へ出力する。
【０１１２】
（３）処理ブロック２１６−３Ｄ
処理ブロック２１６−３Ｄは、推定関節角度ｑｅｘを算出する処理を行う。例えば、処理ブロック２１６−３Ｄは、以下の数式（９）により推定関節角度ｑｅｘを算出する。そして、処理ブロック２１６−３Ｄは、算出した推定関節角度ｑｅｘを処理ブロック２１８−３Ｄへ出力する。なお、数式（９）のＩａは関節部１０２の仮想イナーシャ、ｖａは関節部１０２の内部の仮想的な粘性係数である。
【０１１３】
【数９】
2020017370.tif 000011
【０１１４】
（４）処理ブロック２１８−３Ｄ
処理ブロック２１８−３Ｄは、推定関節角度ｑｅｘにゲインαを適用する処理を行う。例えば、処理ブロック２１８−３Ｄは、処理ブロック２１６−３Ｄから入力される推定関節角度ｑｅｘと処理ブロック２１８−１Ｂが調整したゲインαとを乗算することでαｑｅｘを算出する。そして、処理ブロック２１８−３Ｄは、算出したαｑｅｘを補正部２１９−１へ出力する。
【０１１５】
以上、図１１を参照しながら、第３の実施形態に係る構成例について説明した。上述のように、第３の実施形態に係る制御部２１０−３は、他の実施形態に係る制御部２１０−３と異なり、トルクではなく角度に基づき、制御対象の制御を行う。続いて、第３の実施形態に係る動作例について説明する。
【０１１６】
＜４．２．動作例＞
第３の実施形態に係る制御装置２００の動作は、第１の実施形態にて説明した制御装置２００の動作と同一である。したがって、本節では、制御装置２００の動作例に関する詳細な説明を省略する。
【０１１７】
以上、図１１を参照しながら、第３の実施形態について説明した。続いて、第４の実施形態について説明する。
【０１１８】
＜＜５．第４の実施形態＞＞
以下では、図１２を参照しながら、第４の実施形態について説明する。上述の第１の実施形態では、外トルク適応制御部２１８−１に対して、力覚センサ１１２が検出する外力Ｆｓ、及びトルクセンサ１１４が検出する外トルクτｅに基づき算出される推定外力Ｆｅｘが入力される例について説明した。第４の実施形態では、外トルク適応制御部２１８−４に対して、アーム装置１００に外力Ｆｓが作用する前の周辺情報も入力される例について説明する。第４の実施形態では、制御部２１０−４の外トルク適応制御部２１８−４の処理ブロックにて、第１の実施形態とは異なる処理が実行される。以下では、当該異なる処理について主に説明する。
【０１１９】
＜５．１．構成例＞
＜５．１．１．制御システム１０の構成例＞
第４の実施形態に係る制御システム１０の構成は、第１の実施形態にて説明した制御システム１０の構成と同一である。したがって、本節では、制御システム１０の構成に関する詳細な説明を省略する。
【０１２０】
＜５．１．２．制御部２１０−４の機能構成例＞
第４の実施形態に係る制御部２１０−４の機能構成は、第１の実施形態にて説明した制御部２１０−１の機能構成と同一である。したがって、本節では、制御部２１０−４の機能構成に関する詳細な説明を省略する。
【０１２１】
＜５．１．３．制御部２１０−４の処理ブロック構成例＞
図１２は、第４の実施形態に係る制御部２１０−４の処理ブロックの構成例を示すブロック図である。図１２に示すように、第４の実施形態に係る制御部２１０−４の処理ブロック構成は、外トルク適応制御部２１８−４の処理ブロック２１８−４Ｅにおける処理が第１の実施形態と異なる。したがって、本節では、処理ブロック２１８−４Ｅに関してのみ説明し、他の処理ブロックに関する詳細な説明を省略する。
【０１２２】
処理ブロック２１８−４Ｅは、ゲインαを調整する処理を行う。例えば、処理ブロック２１８−４Ｅは、処理ブロック２１８−１Ａから入力される差分εに加え、外部から入力される距離情報ｄに基づき、ゲインαを調整する。そして、処理ブロック２１８−４Ｅは、調整後のゲインαを処理ブロック２１８−１Ｃへ出力する。
【０１２３】
距離情報ｄは、例えば、アーム装置１００に対して外力Ｆｓが作用する前に、センサ部１１０により検出され、処理ブロック２１８−４Ｅへ入力される。距離情報ｄを検出するセンサ部１１０は、例えば、ステレオカメラ、及び単眼カメラ等のビジョンセンサ、Ｐｈｏｔｏｒｅｆｌｅｃｔｏｒ、及びＴｏＦ（Ｔｉｍｅ  ｏｆ  Ｆｌｉｇｈｔ）センサ等の距離センサ等である。また、センサ部１１０は、３Ｄ  ＬｉＤＡＲ（Ｌａｓｅｒ  Ｉｍａｇｉｎｇ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｒａｎｇｉｎｇ）、及びＬａｓｅｒ  Ｒａｎｇｅ  Ｆｉｎｄｅｒ等の測距装置であってもよい。距離情報ｄは、具体的に、アーム装置１００から周囲の人間または物体等までの距離を示す情報である。処理ブロック２１８−４Ｅは、人間または物体等までの距離を予め知ることで、人間または物体等を回避することを考慮したゲインαの調整を行うことができる。これにより、アーム装置１００は、人間または物体等までの距離を考慮した動作をすることで不要な接触を回避することができ、作業における安全性をより向上することができる。
【０１２４】
以上、図１２を参照しながら、第４の実施形態に係る構成例について説明した。続いて、第４の実施形態に係る動作例について説明する。
【０１２５】
＜５．２．動作例＞
第４の実施形態に係る制御装置２００の動作は、第１の実施形態にて説明した制御装置２００の動作と同一である。したがって、本節では、制御装置２００の動作例に関する詳細な説明を省略する。
【０１２６】
以上、図１２を参照しながら、第４の実施形態について説明した。続いて、本開示の一実施形態に係るアーム装置１００及び制御装置２００のハードウェア構成について説明する。
【０１２７】
＜＜６．ハードウェア構成例＞＞
以下では、図１２を参照しながら、本開示の一実施形態に係るアーム装置１００及び制御装置２００のハードウェア構成例について説明する。図１２は、本開示の一実施形態に係るアーム装置１００及び制御装置２００のハードウェア構成例を示すブロック図である。本実施形態に係る制御システム１０おける制御処理は、ソフトウェアと、以下に説明するハードウェアとの協働により実現される。
【０１２８】
図１２に示すように、制御装置９００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０３、及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０５を備える。また、制御装置９００は、ホストバス９０７、ブリッジ９０９、外部バス９１１、インタフェース９１３、入力装置９１５、出力装置９１７、ストレージ装置９１９、ドライブ９２１、接続ポート９２３、及び通信装置９２５を備える。なお、ここで示すハードウェア構成は一例であり、構成要素の一部が省略されてもよい。また、ハードウェア構成は、ここで示される構成要素以外の構成要素をさらに含んでもよい。
【０１２９】
（ＣＰＵ９０１、ＲＯＭ９０３、ＲＡＭ９０５）
ＣＰＵ９０１は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０３、ＲＡＭ９０５、又はストレージ装置９１９に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０３は、ＣＰＵ９０１に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。ＲＡＭ９０５には、例えば、ＣＰＵ９０１に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。これらはＣＰＵバスなどから構成されるホストバス９０７により相互に接続されている。ＣＰＵ９０１、ＲＯＭ９０３およびＲＡＭ９０５は、例えば、ソフトウェアとの協働により、図３を参照して説明した制御部２１０−１の機能を実現し得る。
【０１３０】
（ホストバス９０７、ブリッジ９０９、外部バス９１１、インタフェース９１３）
ＣＰＵ９０１、ＲＯＭ９０３、ＲＡＭ９０５は、例えば、高速なデータ伝送が可能なホストバス９０７を介して相互に接続される。一方、ホストバス９０７は、例えば、ブリッジ９０９を介して比較的データ伝送速度が低速な外部バス９１１に接続される。また、外部バス９１１は、インタフェース９１３を介して種々の構成要素と接続される。
【０１３１】
（入力装置９１５）
入力装置９１５は、例えば、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチ及びレバー等、ユーザによって情報が入力される装置によって実現される。また、入力装置９１５は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、制御装置９００の操作に対応した携帯電話やＰＤＡ等の外部接続機器であってもよい。さらに、入力装置９１５は、例えば、上記の入力手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、ＣＰＵ９０１に出力する入力制御回路などを含んでいてもよい。制御装置９００のユーザは、この入力装置９１５を操作することにより、制御装置９００に対して各種のデータを入力したり処理動作を指示したりすることができる。
【０１３２】
他にも、入力装置９１５は、ユーザに関する情報を検知する装置により形成され得る。例えば、入力装置９１５は、画像センサ（例えば、カメラ）、深度センサ（例えば、ステレオカメラ）、加速度センサ、ジャイロセンサ、地磁気センサ、光センサ、音センサ、測距センサ、力センサ等の各種のセンサを含み得る。また、入力装置９１５は、制御装置９００の姿勢、移動速度等、制御装置９００自身の状態に関する情報や、制御装置９００の周辺の明るさや騒音等、制御装置９００の周辺環境に関する情報を取得してもよい。また、入力装置９１５は、ＧＮＳＳ（Ｇｌｏｂａｌ  Ｎａｖｉｇａｔｉｏｎ  Ｓａｔｅｌｌｉｔｅ  Ｓｙｓｔｅｍ）衛星からのＧＮＳＳ信号（例えば、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）衛星からのＧＰＳ信号）を受信して装置の緯度、経度及び高度を含む位置情報を測定するＧＮＳＳモジュールを含んでもよい。また、位置情報に関しては、入力装置９１５は、Ｗｉ−Ｆｉ（登録商標）、携帯電話・ＰＨＳ・スマートフォン等との送受信、または近距離通信等により位置を検知するものであってもよい。入力装置９１５は、例えば、図３を参照して説明したセンサ部１１０の機能を実現し得る。
【０１３３】
（出力装置９１７）
出力装置９１７は、取得した情報をユーザに対して視覚的又は聴覚的に通知することが可能な装置で形成される。このような装置として、ＣＲＴディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ＥＬディスプレイ装置、レーザープロジェクタ、ＬＥＤプロジェクタ及びランプ等の表示装置や、スピーカ及びヘッドホン等の音声出力装置や、プリンタ装置等がある。出力装置９１７は、例えば、制御装置９００が行った各種処理により得られた結果を出力する。具体的には、表示装置は、制御装置９００が行った各種処理により得られた結果を、テキスト、イメージ、表、グラフ等、様々な形式で視覚的に表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して聴覚的に出力する。
【０１３４】
（ストレージ装置９１９）
ストレージ装置９１９は、制御装置９００の記憶部の一例として形成されたデータ格納用の装置である。ストレージ装置９１９は、例えば、ＨＤＤ等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等により実現される。ストレージ装置９１９は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。このストレージ装置９１９は、ＣＰＵ９０１が実行するプログラムや各種データ及び外部から取得した各種のデータ等を格納する。ストレージ装置９１９は、例えば、図３を参照して説明した記憶部２３０の機能を実現し得る。
【０１３５】
（ドライブ９２１）
ドライブ９２１は、記憶媒体用リーダライタであり、制御装置９００に内蔵、あるいは外付けされる。ドライブ９２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記憶媒体に記録されている情報を読み出して、ＲＡＭ９０５に出力する。また、ドライブ９２１は、リムーバブル記憶媒体に情報を書き込むこともできる。
【０１３６】
（接続ポート９２３）
接続ポート９２３は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＲＳ−２３２Ｃポート、又は光オーディオ端子等のような外部接続機器を接続するためのポートである。
【０１３７】
（通信装置９２５）
通信装置９２５は、例えば、ネットワーク９３０に接続するための通信デバイス等で形成された通信インタフェースである。通信装置９２５は、例えば、有線若しくは無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）又はＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カード等である。また、通信装置９２５は、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ又は各種通信用のモデム等であってもよい。この通信装置９２５は、例えば、インターネットや他の通信機器との間で、例えばＴＣＰ／ＩＰ等の所定のプロトコルに則して信号等を送受信することができる。
【０１３８】
なお、ネットワーク９３０は、ネットワーク９３０に接続されている装置から送信される情報の有線、または無線の伝送路である。例えば、ネットワーク９３０は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ｅｔｈｅｒｎｅｔ（登録商標）を含む各種のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などを含んでもよい。また、ネットワーク９３０は、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ−Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）などの専用回線網を含んでもよい。
【０１３９】
以上、図１３を参照しながら、本実施形態に係るアーム装置１００及び制御装置２００のハードウェア構成例について説明した。上記の各構成要素は、汎用的な部材を用いて実現されていてもよいし、各構成要素の機能に特化したハードウェアにより実現されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
【０１４０】
＜＜７．まとめ＞＞
以上説明したように、本開示の実施形態に係る制御装置２００は、制御対象が備える力覚センサにより検出される外力を取得する。また、制御装置２００は、力覚センサを可動させる制御対象の可動部が備えるトルクセンサにより検出されるトルクを取得する。次いで、制御装置２００は、取得したトルクに基づき、制御対象に作用していると推定される推定外力を算出する。そして、制御装置２００は、外力と推定外力との比較を行い、外力に基づき算出されるトルク指令値を比較の結果に基づき補正することで、制御対象の動作を制御する。
【０１４１】
上述のように、制御装置２００は、力覚センサが検出する外力と、トルクセンサが検出するトルクとに基づき、制御対象に作用していると推定される推定外力を算出することができる。また、制御装置２００は、当該推定外力と力覚センサが検出する外力とを比較することで、トルク指令値を補正し、制御対象の動作を制御することができる。即ち、制御装置２００は、トルクセンサが検出するトルクに応じてトルク指令値を補正することができ、補正されたトルク指令値に応じて制御対象の動作を制御することができる。
【０１４２】
よって、検出される外力に応じて制御対象の動作を制御することが可能な、新規かつ改良された制御装置、制御方法、及び制御システムを提供することが可能である。
【０１４３】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１４４】
例えば、本明細書において説明した各装置は、単独の装置として実現されてもよく、一部または全部が別々の装置として実現されても良い。例えば、図３に示したアーム装置１００、制御装置２００は、単独の装置として実現されてもよい。また、例えば、図３に示した制御装置２００が、アーム装置１００とネットワーク等で接続されたサーバ装置として実現されてもよい。
【０１４５】
また、本明細書においてフローチャートを用いて説明した処理は、必ずしも図示された順序で実行されなくてもよい。いくつかの処理ステップは、並列的に実行されてもよい。また、追加的な処理ステップが採用されてもよく、一部の処理ステップが省略されてもよい。
【０１４６】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【０１４７】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
制御対象が備える力覚センサにより検出される第１の外力と、前記力覚センサを可動させる前記制御対象の可動部が備えるトルクセンサにより検出されるトルクに基づき推定される第２の外力との比較を行い、トルク指令値を前記比較の結果に基づき補正することで、前記制御対象の動作を制御する制御部、
を備える、制御装置。
（２）
前記制御部は、前記比較により抽出される前記第１の外力と前記第２の外力との差分に基づきゲインを調整し、前記ゲインを前記トルク指令値に適用することで、前記制御対象が安全性を優先して動作する第１のモードと、前記制御対象が作業の精度を優先して動作する第２のモードとの切り替えを制御する、前記（１）に記載の制御装置。
（３）
前記制御部は、前記差分に基づき、前記制御対象に作用する第３の外力の作用状態に応じて、前記第１のモードと前記第２のモードとを切り替える、前記（２）に記載の制御装置。
（４）
前記制御部は、前記制御対象に想定内の前記第３の外力が作用している前記作用状態である場合、前記第１のモードを設定する、前記（３）に記載の制御装置。
（５）
前記制御部は、第１の値に近づくように前記ゲインを調整することで前記第１のモードを設定する、前記（４）に記載の制御装置。
（６）
前記制御部は、前記制御対象に想定外の前記第３の外力が作用している前記作用状態である場合、前記第２のモードを設定する、前記（３）〜（５）のいずれか一項に記載の制御装置。
（７）
前記制御部は、第２の値に近づくように前記ゲインを調整することで前記第２のモードを設定する、前記（６）に記載の制御装置。
（８）
前記制御部は、前記ゲインを連続的に変化させることで、前記第１のモードと前記第２のモードとを連続的に切り替える、前記（２）〜（７）のいずれか一項に記載の制御装置。
（９）
前記制御部は、前記差分が所定の範囲内の値である場合、前記ゲインを連続的に変化させる、前記（８）に記載の制御装置。
（１０）
前記制御部は、前記ゲインを非連続的に変化させることで、前記第１のモードと前記第２のモードとを非連続的に切り替える、前記（２）〜（７）のいずれか一項に記載の制御装置。
（１１）
前記制御部は、前記差分が所定の閾値以上であるか否かに応じて、前記ゲインをステップ状に変化させる、前記（１０）に記載の制御装置。
（１２）
前記制御部は、前記トルク、及び前記制御対象の姿勢に基づき推定される推定トルクに前記ゲインを乗算した値に基づき、前記トルク指令値を補正する、前記（２）〜（１１）のいずれか一項に記載の制御装置。
（１３）
前記制御部は、前記トルクから前記制御対象の動作のみに起因して生じたトルクである外トルクを減算することで、前記推定トルクを推定する、前記（１２）に記載の制御装置。
（１４）
前記制御部は、前記制御対象の関節角度に基づき逆動力学演算を行うことで、前記外トルクを算出する、前記（１３）に記載の制御装置。
（１５）
制御対象が備える力覚センサにより検出される第１の外力と、前記力覚センサを可動させる前記制御対象の可動部が備えるトルクセンサにより検出されるトルクに基づき推定される第２の外力との比較を行い、トルク指令値を前記比較の結果に基づき補正することで、前記制御対象の動作を制御すること、
を含む、プロセッサにより実行される制御方法。
（１６）
アクチュエータを有する可動部と、前記可動部によって複数のリンクが連結されたアーム部と、前記可動部に作用するトルクを検出するトルクセンサと、前記アーム部の先端に作用する第１の外力を検出する力覚センサと、を備える、アーム装置と、
前記第１の外力と、前記トルクに基づき推定される第２の外力との比較を行い、トルク指令値を前記比較の結果に基づき補正することで、前記アーム装置の動作を制御する制御部、を備える、制御装置と、
を備える、制御システム。
【符号の説明】
【０１４８】
１０    制御システム
１００  アーム装置
１０２  関節部
１０４  リンク
１０６  先端部
１１０  センサ部
１１２  力覚センサ
１１４  トルクセンサ
１２０  関節動作部
２００  制御装置
２１０  制御部
２１１  全軸協調制御部
２１２  デカルト空間制御部
２１４  トルク指令値算出部
２１６  外力推定部
２１８  外トルク適応制御部
２１９  補正部
２２０  関節制御部
２３０  記憶部
【図１】
2020017370.tif 000012
【図２】
2020017370.tif 000013
【図３】
2020017370.tif 000014
【図４】
2020017370.tif 000015
【図５】
2020017370.tif 000016
【図６】
2020017370.tif 000017
【図７】
2020017370.tif 000018
【図８】
2020017370.tif 000019
【図９】
2020017370.tif 000020
【図１０】
2020017370.tif 000021
【図１１】
2020017370.tif 000022
【図１２】
2020017370.tif 000023
【図１３】
2020017370.tif 000024
【国際調査報告】
2020017370.tif 000025
2020017370.tif 000026
2020017370.tif 000027