(57)【要約】【課題】追従誤差を低減することができるロボット制御装置、ロボット装置、ロボット制御のパラメータ調整方法、およびプログラムを提供すること。【解決手段】ログ取得部は、ロボットアームの対象部位をフィードバック制御によって所定の経路に追従させた際の動作データを取得する。第１の調整部は、前記ログ取得部により取得された前記動作データに基づいて、前記経路と前記対象部位の位置との追従誤差を調整するように前記ロボットアームの動作を計算するための第１物理パラメータを調整する。第２の調整部は、前記第１の調整部により調整された前記第１物理パラメータに基づいて、前記ロボットアームを前記経路に追従させた軌道を計算し、計算結果に基づいて、前記ロボットアームのフィードフォワード制御に用いられる第２物理パラメータを調整する。【選択図】図１
2020032481.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームの対象部位をフィードバック制御によって所定の経路に追従させた際の動作データを取得するログ取得部と、
前記ログ取得部により取得された前記動作データに基づいて、前記経路と前記対象部位の位置との追従誤差を低減するように前記ロボットアームの動作を計算するための第１物理パラメータを調整する第１の調整部と、
前記第１の調整部により調整された前記第１物理パラメータに基づいて、前記ロボットアームを前記経路に追従させた軌道を計算し、計算結果に基づいて、前記ロボットアームのフィードフォワード制御に用いられる第２物理パラメータを調整する第２の調整部と、を備える、
ロボット制御装置。
【請求項２】
前記第１の調整部は、前記ログ取得部により取得された前記動作データに基づいて、前記経路と前記対象部位の位置との追従誤差を最小とするように前記ロボットアームの動作を計算するための動力学モデルに含まれる前記第１物理パラメータを最適化する、
請求項１に記載のロボット制御装置。
【請求項３】
前記第２の調整部は、前記第１の調整部により調整された前記第１物理パラメータに基づいて、前記ロボットアームを前記経路に追従させた軌道を計算し、計算結果と逆動力学モデルとに基づいて、前記ロボットアームのフィードフォワード制御に用いられる前記第２物理パラメータを最適化する、
請求項１または２に記載のロボット制御装置。
【請求項４】
前記第１の調整部は、類型化された基本図形で表される経路セグメント毎に前記ロボットアームの動作を計算するための動力学モデルに含まれる前記第１物理パラメータを最適化し、
前記第２の調整部は、前記経路セグメント毎に前記フィードフォワード制御に用いられる前記第２物理パラメータを最適化する、
請求項１から３のうちいずれか１項に記載のロボット制御装置。
【請求項５】
前記フィードフォワード制御に用いられる前記第２物理パラメータを前記経路セグメント毎に切り替えてフィードフォワード制御を実行するフィードフォワード制御部を更に備える、
請求項４に記載のロボット制御装置。
【請求項６】
ロボットアームの対象部位をフィードバック制御によって所定の経路に追従させた際の動作データを取得するログ取得部と、
前記ログ取得部により取得された前記動作データに基づいて、前記経路と前記対象部位の位置との追従誤差を低減するように前記ロボットアームの動作を計算するための第１物理パラメータを調整する第１の調整部と、
前記第１の調整部により調整された前記第１物理パラメータに基づいて、前記ロボットアームを前記経路に追従させた軌道を計算し、計算結果に基づいて、前記ロボットアームのフィードフォワード制御に用いられる第２物理パラメータを調整する第２の調整部と、
前記フィードフォワード制御に用いられる前記第２物理パラメータを類型化された基本図形で表される経路セグメント毎に切り替えてフィードフォワード制御を実行するフィードフォワード制御部と、を備える、
ロボット制御装置。
【請求項７】
複数の可動軸により可動する複数のアームを備えるロボットアームと、
ロボットアームの対象部位をフィードバック制御によって所定の経路に追従させた際の動作データを取得するログ取得部と、
前記ログ取得部により取得された前記動作データに基づいて、前記経路と前記対象部位の位置との追従誤差を低減するように前記ロボットアームの動作を計算するための第１物理パラメータを調整する第１の調整部と、
前記第１の調整部により調整された前記第１物理パラメータに基づいて、前記ロボットアームを前記経路に追従させた軌道を計算し、計算結果に基づいて、前記ロボットアームのフィードフォワード制御に用いられる第２物理パラメータを調整する第２の調整部と、を備える、
ロボット装置。
【請求項８】
コンピュータが、
ロボットアームの対象部位をフィードバック制御によって所定の経路に追従させた際の動作データを取得し、
前記動作データに基づいて、前記経路と前記対象部位の位置との追従誤差を低減するように前記ロボットアームの動作を計算するための第１物理パラメータを調整し、
調整された前記第１物理パラメータに基づいて、前記ロボットアームを前記経路に追従させた軌道を計算し、
計算結果により得られた前記経路への追従誤差を低減するようにフィードフォワード制御に用いられる第２物理パラメータを調整する、
ロボット制御のパラメータ調整方法。
【請求項９】
コンピュータが、
ロボットアームの対象部位をフィードバック制御によって所定の経路に追従させた際の動作データを記憶部から取得し、
前記動作データを前記記憶部から読み出して、前記動作データに基づいて、前記経路と前記対象部位の位置との追従誤差を低減するように前記ロボットアームの動作を計算するための第１物理パラメータを調整した第１計算結果を前記記憶部に記憶させ、
前記第１計算結果を前記記憶部から読み出して、前記第１計算結果により調整された前記第１物理パラメータに基づいて、前記ロボットアームを前記経路に追従させた軌道を計算した第２計算結果を前記記憶部に記憶させ、
前記第２計算結果を前記記憶部から読み出して、前記第２計算結果に基づいて、前記ロボットアームのフィードフォワード制御に用いられる第２物理パラメータを調整した第３計算結果を前記記憶部に記憶させる、
ロボット制御のパラメータ調整方法。
【請求項１０】
コンピュータに、
ロボットアームの対象部位をフィードバック制御によって所定の経路に追従させた際の動作データを取得させ、
前記動作データに基づいて、前記経路と前記対象部位の位置との追従誤差を低減するように前記ロボットアームの動作を計算するための第１物理パラメータを調整させ、
前記第１物理パラメータに基づいて、前記ロボットアームを前記経路に追従させた軌道を計算させ、
計算結果に基づいて、前記ロボットアームのフィードフォワード制御に用いられる第２物理パラメータを最適化させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ロボット制御装置、ロボット装置、ロボット制御のパラメータ調整方法、およびプログラムに関する。
【背景技術】
【０００２】
生産などの現場で用いられるような、ロボットアームの先端を所望の経路に追従させる軌道追従制御において、精度の良い追従性能を得るには、正確な動力学モデルの同定に基づくモデルベースト制御が必要である。しかしながら、一般には、正確な動力学モデルを同定することは困難である。
【０００３】
これに対して、ロボットアーム先端の軌道追従制御において、正確な動力学モデルを必要としない、繰り返し学習制御を用いてロボットアームを制御するというアプローチも考えられている。例えば、精度の良い追従性能を得るために付加されるフィードフォワード制御の入力を生成するために、ロボットを繰り返し動作させながら、適切な制御パラメータを獲得する技術が知られている。しかしながら、ロボットアームに危険が及ばないように、安全なパラメータを選択しながら繰り返し動作させることは、手間がかかる上に、ロボットアームのメカニズムの摩耗を招く。そのため、ロボットアーム先端の軌道追従制御において、計算機シミュレーションを用いてオフラインでの繰り返し学習を行うような制御が望まれている。
【０００４】
近年、計算機能力が向上しているため、ロボットアームの動力学モデルに基づくシミュレータを構築し、オフラインでの繰り返し学習を行ったロボットアーム先端の軌道追従制御を行うことが可能となっている。例えば、エンドトゥエンドの深層学習を用いてロボットアーム先端の軌道のマニピュレーションスキルを獲得することが行われている。
【０００５】
これは、報酬ベースの強化学習であり、教師なし学習の枠組みで構築される軌道追従制御である。上記のようなあらかじめ経路が与えられた軌道追従制御のような教師あり学習の枠組みに用いるオフラインシミュレータは精度が必要となる。そのため、ロボットアーム先端の軌道追従制御においては正確な動力学モデルを同定することが必要となっていた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−０４１４７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする課題は、ロボットアーム先端の軌道追従制御において、追従誤差を低減することができるロボット制御装置、ロボット装置、ロボット制御のパラメータ調整方法、およびプログラムを提供することである。
【課題を解決するための手段】
【０００８】
実施形態のロボット制御装置は、ログ取得部と、第１の調整部と、第２の調整部とを持つ。ログ取得部は、ロボットアームの対象部位をフィードバック制御によって所定の経路に追従させた際の動作データを取得する。第１の調整部は、前記ログ取得部により取得された前記動作データに基づいて、前記経路と前記対象部位の位置との追従誤差を低減するように前記ロボットアームの動作を計算するための第１物理パラメータを調整する。第２の調整部は、前記第１の調整部により調整された前記第１物理パラメータに基づいて、前記ロボットアームを前記経路に追従させた軌道を計算し、計算結果に基づいて、前記ロボットアームのフィードフォワード制御に用いられる第２物理パラメータを調整する。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態のロボット制御装置の構成の一例を示すブロック図。
【図２】第１の実施形態のロボット制御装置の構成の一例を示す図。
【図３】水平面におけるロボットアームの先端の軌道の一例を示す図。
【図４】フィードバックに基づいてロボットアームを制御するロボット制御装置の構成の一例を示すブロック図。
【図５】フィードバックに基づいたロボットアームの動力学モデルによる処理を行うシミュレータの一例を示すブロック図。
【図６】動力学モデルの物理パラメータの最適化（第１の最適化）の処理を行う制御装置１３の一例を示すブロック図。
【図７】図３（ｄ）に示される円軌道における第１の最適化の前後の動作軌跡の一例を示す図。
【図８】フィードフォワード制御用の逆動力学モデルの物理パラメータの最適化を行うシミュレータの構成の一例を示すブロック図。
【図９】図３（ｄ）の円軌道における第２の最適化の前後の動作軌跡の一例を示す図。
【図１０】ＰＩＤ制御に基づくフィードバックと逆動力学モデルに基づくフィードフォワードを組み合わせたロボット制御装置の一例を示すブロック図。
【図１１】学習前のロボットアームの動作と学習後のロボットアームの動作との比較結果の一例を示す図。
【図１２】ロボット制御装置において実行される処理の流れの一例を示すフローチャート。
【図１３】第２の実施形態の学習前のロボットアームの動作と学習後のロボットアームの動作との比較結果の一例を示す図。
【図１４】第３の実施形態の図３（ａ）、（ｂ）、（ｃ）、（ｄ）の各動作において、初期同定値から第１の最適化および２の最適化で得られた物理パラメータの一例を示す図。
【発明を実施するための形態】
【００１０】
以下、実施形態のロボット制御装置、ロボット装置、ロボット制御のパラメータ調整方法、およびプログラムを、図面を参照して説明する。
【００１１】
（第１の実施形態）
図１は、第１の実施形態のロボット制御装置Ｓの構成の一例を示すブロック図である。ロボット制御装置Ｓは、２リンク（２軸）のロボットアームＡと、制御装置１３とを備える。ロボットアームＡは、制御装置１３により制御される。
【００１２】
制御装置１３は、例えば、フィードバック制御部１４と、ログ取得部１５と、逆座標変換部１６と、フィードフォワード制御部１７シミュレータ２０と、記憶部３０とを備える。
【００１３】
フィードバック制御部１４、逆座標変換部１６、フィードフォワード制御部１７、シミュレータ２０の各機能部のうち一部または全部は、ＣＰＵ（Central Processing Unit）等のプロセッサがプログラム（ソフトウェア）を実行することで実現される。また、これらの各機能部のうち一部または全部は、ＬＳＩ（Large Scale Integration）やＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）、ＧＰＵ（Graphics Processing Unit）等のハードウェアによって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予めＨＤＤ（Hard Disk Drive）やフラッシュメモリ、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）などで構成される記憶部３０に格納されていてもよいし、ＤＶＤやＣＤ−ＲＯＭなどの着脱可能な記憶媒体に格納されており、記憶媒体がドライブ装置に装着されることで記憶部３０にインストールされてもよい。
【００１４】
フィードバック制御部１４は、例えば、モータ回転角度を検出するエンコーダ信号をフィードバックするＰＩＤ（比例・積分・微分）制御を行うＰＩＤ制御器である。フィードバック制御部１４は、モータＭの角度を検出するエンコーダの出力値に基づいてＰＩＤ制御を行う。フィードバック制御部１４は、与えられた経路を実現するために、各軸のモータＭの回転角度の目標値となるようにモータＭを制御してロボットアームＡが目標値軌道への追従するための制御を行う。
【００１５】
ログ取得部１５は、ロボットアームＡの経路追従時の動作データを取得する。ログ取得部１５は、例えば、モータ電流指令値とエンコーダ値を時系列で監視し、動作データを取得する。ログ取得部１５は、記憶部３０に記憶された動作データを読み出してもよい。
【００１６】
逆座標変換部１６は、ロボットアームＡの目標値軌道を演算する。２リンクのロボットアームＡの目標値軌道は、２次元平面内の軌道であるため、逆座標変換部１６は、直角座標系での直線や円の軌道に基づいて、公知の逆座標変換の演算によって、各軸の回転角度の軌道として演算する（図３参照）。
【００１７】
ただし、目標値軌道は時間軸で指定されているので、回転角度だけでなく、回転角速度や回転角加速度軌道も陰に指定されている。ただし、フィードバック制御部１４の演算では、回転角度目標値軌道だけが用いられる。
【００１８】
フィードフォワード制御部１７は、フィードフォワード制御用の逆動力学モデルに適用される、最適化された物理パラメータを用いてロボットアームＡの各モータをフィードフォワード制御する。フィードフォワード制御部１７の処理については後述する。
【００１９】
シミュレータ２０は、ロボットアームＡの動作を計算するための動力学モデルおよび逆動力学モデルを動作させて動力学モデルおよび逆動力学モデルに含まれる物理パラメータを最適化する。シミュレータ２０の処理については後述する。
【００２０】
記憶部３０には、例えば、フィードバック制御に用いられる動力学モデルに含まれる物理パラメータが記憶される。また、記憶部３０には、例えば、フィードフォワード制御に用いられる逆動力学モデルに含まれる物理パラメータが記憶される。記憶部３０は、例えば、ＨＤＤ、フラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）、ＲＯＭ、またはＲＡＭ等の記憶装置を備える。
【００２１】
図２は、第１の実施形態のロボット制御装置Ｓの構成の一例を示す図である。ロボットアームは、第１リンクと第２リンクとを備える。第１リンク３は、基端３ａが床面などに固定された基台１に対して回転自在に支持されているアームである。第１リンク３は、例えば、第１モータ４が駆動源となって第１減速機５で減速されて基台１に対して鉛直方向に沿った第１軸２回りに回転する。第１リンク３の基台１に対する回転角は、第１エンコーダ６により検出される。
【００２２】
第２リンク８は、基端８ａが第１リンク３の先端３ｂにおいて第１リンク３に対して回転自在に支持されているアームである。第２リンク８は、例えば、第２モータ９が駆動源となって第２減速機１０で減速されて第１リンク３に対して鉛直方向に沿った第２軸７周りに回転する。第２リンク８の第１リンク３に対する回転角は、第２エンコーダ１１により検出される。このような構成により、ロボットアームＡは、制御装置１３により制御されて第２リンク８の先端８ｂを水平面の可動範囲内において任意の軌道に沿って動作する。
【００２３】
図３は、水平面におけるロボットアームＡの先端８ｂの軌道の一例を示す図である。経路に追従させるロボットアームＡの対象部位は、ロボットアームＡの先端であるが、他の部位であってもよい。ロボットアームＡの先端の軌道は、例えば、所定の２次元平面において任意図形で構成される経路が与えられている。任意図形で構成される経路は、任意図形を直線や円弧などの類型化された基本図形で表される経路セグメント毎に分割して、経路セグメント毎に計算された制御値に基づいてロボットアームＡの制御が行われる。
【００２４】
図４は、フィードバックに基づいてロボットアームＡを制御するロボット制御装置の構成の一例を示すブロック図である。ロボットアームＡは、各軸を駆動するモータＭ、減速機ＧおよびリンクＬで構成される。モータＭは、例えば、上記のように第１モータ４と第２モータ９とを含む。減速機Ｇは、例えば、上記のように第１減速機５と第２減速機１０とを含む。リンクＬは、例えば、上記のように第１リンクと第２リンクとを含む。
【００２５】
図５は、フィードバックに基づいたロボットアームＡの動力学モデルによる処理を行うシミュレータ２０の一例を示すブロック図である。シミュレータ２０は、例えば、パーソナルコンピュータなどの計算機上に実現される。シミュレータ２０は、例えば、制御装置１３において実行されるものであってもよい。シミュレータ２０において、ロボットアームＡの実機を稼働させる代わりに以下に示す動力学モデル２１が実行される。動力学モデル２１は、ロボットアームＡの動作を計算するモデルである。動力学モデル２１は、シミュレータ２０において、ロボットアームＡの実機を計算機上の仮想的なモデルで置き換えたものである。
【００２６】
動力学モデルでは、例えば、ロボットアームＡを、弾性関節（各軸の減速機をバネ要素）を持つ多リンク機構として２階の微分方程式で記述する。２リンクロボットアームの動力学モデルは非線形であり、次のようなモータ側とリンク側の２組の式が与えられる。
【００２７】
【数１】
2020032481.tif 000003
ただし、
【００２８】
【数２】
2020032481.tif 000004
である。
【００２９】
ここで、α、β、γをリンクの長さや重心位置、質量、慣性より構成されるパラメータとすると、リンク慣性行列は、次式のように表される。
【００３０】
【数３】
2020032481.tif 000005
パラメータα、β、γの詳細は、次式である。
【００３１】
【数４】
2020032481.tif 000006
ただし、
【００３２】
【数５】
2020032481.tif 000007
である。
【００３３】
遠心トルク・コリオリトルクベクトルについては、次式が与えられる。
【数６】
2020032481.tif 000008
【００３４】
式（１）〜（４）で現れる、各部の慣性モーメントや摩擦係数、バネ係数などの物理パラメータ（２リンクのロボットアームＡでは１５個）はあらかじめ同定しておく必要がある。この時点での、物理パラメータの初期同定誤差は、後述の第１の最適化によって回復することができるものである。
【００３５】
本実施形態では、弾性関節モデル、すなわち、各軸の減速機においてバネ係数を１つ持つモデルを用いているが、軸ねじれ（モータ回転角度とリンク回転角度がねじれること）に起因するロボットアームＡの振動を抑制する制御系を設計することを意図したものではない。そのため、本実施形態では、剛体関節モデルより多くの物理パラメータを用いて実機に近い挙動を動力学モデル２１が適用されたシミュレータ２０で再現することを意図したものである。
【００３６】
本実施形態では、ＰＩＤ制御器を用いたフィードバック制御部１４において、軸ねじれを陽にフィードバックするなどの振動抑制制御系を併用することも可能である。フィードバック制御部１４は、次式に基づいて、フィードバック制御のための演算を行う。
【００３７】
【数７】
2020032481.tif 000009
ただし、
【００３８】
【数８】
2020032481.tif 000010
であり、シミュレータ２０では、ロボットアームＡの実機と同じ制御ゲインが設定される。
【００３９】
図６は、動力学モデル２１の物理パラメータの最適化（第１の最適化）の処理を行う制御装置１３の一例を示すブロック図である。第１の調整部２２は、シミュレータ２０における動力学モデル２１に対して、ログ取得部１５に記録された時系列の動作データを用いた２乗規範に基づく評価関数を用いて経路とロボットアームＡの先端の位置との追従誤差を最小とするように物理パラメータ（上述した１５個）の最適化を行う。
【００４０】
以下、図３（ｄ）に示される円軌道を例にとって、第１の最適化について説明する。図７は、図３（ｄ）に示される円軌道における第１の最適化の前後の動作軌跡の一例を示す図である。図７（ａ）の上段のグラフには、目標値である円軌道の経路が破線で示されている。
【００４１】
Ｘ＝０［ｍｍ］、Ｙ＝０［ｍｍ］の位置に設置されている全長８００［ｍｍ］の２リンクのロボットアームＡを制御して、ロボットアームＡの先端がＸ＝６００［ｍｍ］、Ｙ＝０［ｍｍ］を起点とし、左回りに直径１０［ｍｍ］の円の軌道を約０．４秒で描かせる実験を実機およびシミュレータにより行う。
【００４２】
図７（ａ）の上段のグラフには、ロボットアームＡの実機で描いた軌道が１点鎖線で示されている。同図から明らかなように軌跡は円ではなく卵形になっている。これは、ロボットアームＡの制御において、ＰＩＤ制御器によるフィードバック制御だけでは上記のように設定された円軌道に追従できないことを示している。
【００４３】
図７（ａ）の上段のグラフには、動力学モデル２１に基づくシミュレータ２０（図５参照）で描かれた軌跡が実線で示されている。この場合も同様に卵形の軌跡となっているが、ロボットアームＡの実機の軌跡と比して誤差が生じている。これは、シミュレータ２０で設定された動力学モデルが２１完全にロボットアームＡの実機を表現していないことを意味する。そもそも、式（１）〜（４）に示される動力学モデル２１が近似モデルであり、当然、物理パラメータの同定誤差が存在する。
【００４４】
そこで、シミュレータ２０に円軌道を描かせた時に、ロボットアームＡの実機の軌跡に一致するように動力学モデル２１の物理パラメータ（１５個）を最適化する処理を行わせる。
【００４５】
第１の調整部２２は、ログ取得部１５で記録したロボットアームＡの実機の動作データとシミュレータ２０の動作データを用いて、非線形最小２乗法に基づく物理パラメータの最適化を行う。この最適化の評価関数は、次式のような２乗規範で与える。
【００４６】
【数９】
2020032481.tif 000011
【００４７】
ここで、右辺第１、２項は、ロボットアームＡの実機とシミュレータ２０で設定される各軸のモータ回転角度の誤差の２乗を表し、右辺第３、４項は、電流指令値の誤差の２乗を表している。右辺第１、２項のｒは、単位系が異なるモータ回転角度と電流指令値のオーダを調整するために導入した重みである。式（６）で与えられる２乗規範の評価関数は、公知の数値解法である非線形最小２乗法（例えば、Levenberg-Marquardt法）で最小化できる。第１の調整部２２は、評価関数を用いて物理パラメータ１５個を探索する。すなわち、第１の調整部２２は、評価関数を用いてオフラインでの繰り返し学習制御をすることによって、各軸のモータＭの回転角度の誤差を最小化することができる。
【００４８】
第１の調整部２２において実行される第１の最適化によって、図７（ｂ）の上段のように１点鎖線のロボットアームＡの実機と実線のシミュレータ２０の軌跡が一致するようになる。つまり、図３（ｄ）の円軌道については、実機を動作させることなく、オフラインのシミュレータ２０で再現できることになる。
【００４９】
図７（ａ）の下段は、第１の最適化前のロボットアーム実機とシミュレータの軌跡の半径方向の誤差であり、図７（ｂ）の下段は、第１の最適化後の誤差である。後者は前者に比較して、誤差のピーク値が約１／１０になっていることがわかる。
【００５０】
ＰＩＤ制御器に基づくフィードバック制御だけでは、図７のような円軌道に追従できないので、逆動力学モデルに基づくフィードフォワード制御を導入する。しかしながら、弾性関節に基づく動力学モデルの式（１）を逆転すること（電流指令値ｕ＝の形で表すこと）は、高次微分が必要になるので実装が複雑になる。そこで、フィードフォワード制御を簡略化するために剛体関節に基づく動力学モデルを導出する。式（１）で
［θＬ＝ＮＧθＭ］
と置くと、
【００５１】
【数１０】
2020032481.tif 000012
が導かれる。ここでＭ、ｃ、Ｄは、
【００５２】
【数１１】
2020032481.tif 000013
であり、それぞれモータ回転角度だけで表現した剛体関節モデルとしての慣性行列、遠心トルク・コリオリトルクベクトル、粘性摩擦行列である。
【００５３】
Ｍ、ｃ内のパラメータ４個をｍ１、ｍ２、ｍ３、ｍ４、Ｄ内のパラメータ２個をｄ１、ｄ２と表現しておく。よって、簡略化した動力学モデルの物理パラメータの数は、クーロン摩擦トルクｆＭ１、ｆＭ２の２つと合わせて８個になり、簡略化前の動力学モデルである式（１）の物理パラメータ１５個の約半分になる。本実施形態の動作では、簡略化によるロボットアームの振動が問題になることはない。
【００５４】
式（７）を用いれば、剛体関節で簡略化した逆動力学モデルに基づくフィードフォワード制御は、モータ回転角度での目標値θＭＲを用いて次式で与えられる。
【００５５】
【数１２】
2020032481.tif 000014
このτＦＦを式（５）で与えられるフィードバック制御であるＰＩＤ制御の右辺に加えることによって、フィードフォワード付きＰＩＤ制御が実現できる。
【００５６】
このように、フィードフォワード制御では、回転角度目標値θＭＲだけでなく、回転角速度目標値θ’ＭＲと回転角加速度目標値θ”ＭＲも用いるので、目標値軌道への追従性を向上させることができる。
【００５７】
図８は、フィードフォワード制御用の逆動力学モデルの物理パラメータの最適化を行うシミュレータ２０の構成の一例を示すブロック図である。シミュレータ２０には、フィードフォワード制御用の逆動力学モデルの物理パラメータの最適化を行うために、第２の調整部２３と、フィードフォワード制御部１７と、順座標変換部２５とが追加されている。第２の調整部２３は、後述のように、逆動力学モデルの物理パラメータの最適化を行う。順座標変換部２５は、モータ回転角度を順座標変換してロボットアーム先端の直角座標系での座標値ｘ、ｙを算出する。
【００５８】
図９は、図３（ｄ）の円軌道における第２の最適化の前後の動作軌跡の一例を示す図である。図９（ａ）の上段の実線は、フィードフォワード付きＰＩＤ制御を用いた場合の動力学モデルに基づくシミュレータ２０で描いた円軌道の軌跡である。このシミュレータ２０では、既に最適化した物理パラメータ１５個を用いた動力学モデル２１を用いており、さらに、最適化した物理パラメータから算出したパラメータ８個を用いたフィードフォワード制御部１７が付加されている。
【００５９】
図９（ａ）の上段に示されるように、破線で示した目標値である円軌道の経路からの誤差が図７に比較して減少しており、フィードフォワード制御の効果がわかる。しかし、まだ、円軌道の経路の左上の部分の軌跡で誤差が残っている。
【００６０】
第２の調整部２３は、図６で最適化した物理パラメータ１５個を用いた動力学モデル２１に基づいて、順座標変換部２５により算出されたロボットアーム先端の直角座標系での座標値ｘ、ｙと、目標値である円軌道の直角座標系での座標値ｘＲ、ｙＲとを用いて非線形最小２乗法に基づくフィードフォワード制御用の逆動力学モデルの物理パラメータ８個の最適化を行う。この最適化の評価関数は、次式（１０）で与えられる。
【００６１】
【数１３】
2020032481.tif 000015
ここで、右辺第１項は、円軌道のＸ軸方向の誤差の２乗、第２項は、円軌道のＹ軸方向の誤差の２乗を表している。
【００６２】
第２の調整部２３は、式（１０）で与えられる２乗規範の評価関数を用いて、非線形最小２乗法に基づいて、逆動力学モデルの物理パラメータ８個を探索する。すなわち、第２の調整部２３は、オフラインでの繰り返し学習制御をすることによって、逆動力学モデルの物理パラメータ８個を算出し、ロボットアームＡの制御誤差を最小化することができる。
【００６３】
第２の調整部２３により実行される第２の最適化によって、図９(a)の上段では左上に誤差が残っていたフィードフォワード付きＰＩＤ制御のシミュレータの円軌道の軌跡が、図９（ｂ）の上段では大きく改善されていることがわかる。図９（ａ）の下段は、第２の最適化前の円軌道の軌跡の半径方向の誤差であり、第９（ｂ）の下段は、第２の最適化後の誤差である。後者は前者に比較して、誤差のピーク値が１／２以下になっていることがわかる。
【００６４】
図１０は、ＰＩＤ制御に基づくフィードバックと逆動力学モデルに基づくフィードフォワードを組み合わせたロボット制御装置Ｓの一例を示すブロック図である。フィードバック制御部１４は、第１の調整部２２により最適化された動力学モデルの物理パラメータを用いて経路におけるモータＭの制御値を算出する。
【００６５】
図１１は、学習前のロボットアームＡの動作と学習後のロボットアームＡの動作との比較結果の一例を示す図である。図１１（ａ）には、第１の最適化および２の最適化前のＰＩＤ制御のみにより制御された学習前のロボットアームＡの実機の円軌道動作における軌跡（上段）と半径方向の誤差（下段）が示されている。
【００６６】
図１１（ｂ）には、第１の最適化後及び第２の最適化後にフィードフォワード制御が付加された学習後のロボットアームＡの実機の円軌道動作における軌跡（上段）と半径方向の誤差（下段）が示されている。学習後のロボットアームＡの実機の円軌道動作では、最適化された物理パラメータ８個によるフィードフォワード制御が実現されている。
【００６７】
上述したように、まず１回目のロボットアームＡの実機を円軌道を描くように動作させた際の動作データを用いて、シミュレータ２０は、動力学モデルを用いたオフラインでの２回の最適化を行う。すなわち、シミュレータ２０による２回の最適化による繰り返し学習制御を実行すれば、制御装置１３による２回目のロボットアームＡの実機の円軌道を描く動作では、誤差が大きく改善されることは明らかである。
【００６８】
次に、ロボット制御装置Ｓにおいて実行される処理の流れについて説明する。図１２は、ロボット制御装置Ｓにおいて実行される処理の流れの一例を示すフローチャートである。
【００６９】
ログ取得部１５は、ロボットアームＡをフィードバック制御により経路に追従させた際の動作データを取得する（ステップＳ１００）。このとき、ログ取得部１５は、モータＭのエンコーダの出力値や制御値を監視して動作データを取得してもよいし、記憶部３０に記憶された動作データを取得してもよい。
【００７０】
第１の調整部２２は、動作データとロボットアームＡの動力学モデルを用いたシミュレーションによるロボットアームＡの先端の軌跡との間の追従誤差を最小とするように動力学モデルに含まれる第１物理パラメータを最適化する（ステップＳ１０２）。第１の調整部２２は、最適化した第１物理パラメータの計算結果を記憶部３０に記憶する。
【００７１】
第２の調整部２３は、記憶部３０に記憶された最適化した第１物理パラメータの計算結果を読み出し、最適化された第１物理パラメータが適用されたロボットアームＡの動力学モデルに基づいて、ロボットアームＡの先端を経路に追従させた軌跡を計算する（ステップＳ１０４）。このとき、第２の調整部２３は、記憶部３０に計算結果を記憶する。
【００７２】
第２の調整部２３は、記憶部３０に記憶された計算結果に基づいて、フィードフォワード制御に用いられる第２物理パラメータを最適化する（ステップＳ１０６）。このとき、第２の調整部２３は、記憶部３０に最適化した第２物理パラメータの計算結果を記憶する。
【００７３】
以上説明した第１の実施形態のロボット制御装置、ロボット制御のパラメータ調整方法およびプログラムによれば、任意図形で構成される経路が与えられたロボットアーム先端の軌道追従制御において、追従誤差を低減することができる。ロボット制御装置によれば、ロボットアームを１回動作させた学習用の動作データを取得することで、追従誤差を低減するためのフィードフォワード制御のための物理パラメータを最適化することができる。
【００７４】
（第２の実施形態）
次に、第２の実施形態では、図３（ｂ）で示されるＹ軸方向の直線軌道動作について説明する。２リンクのロボットアームＡの先端によって、Ｘ＝６００［ｍｍ］、Ｙ＝５００［ｍｍ］を起点とし、Ｘ＝６００［ｍｍ］、Ｙ＝−５００［ｍｍ］を終点として約１．４秒で直線の軌道を描く場合について説明する。
【００７５】
図１３は、第２の実施形態の学習前のロボットアームＡの動作と学習後のロボットアームＡの動作との比較結果の一例を示す図である。図１３の上段には、第１の最適化および２の最適化前のＰＩＤ制御のみにより制御された学習前のロボットアームＡの実機の直線動作における軌跡が示されている。図１３の下段には、第１の最適化後及び第２の最適化後にフィードフォワード制御が付加された学習後のロボットアームＡの実機の直線軌道動作における軌跡が示されている。
【００７６】
上述したように、まず１回目のロボットアームＡの実機が直線軌道を描くように動作させた際の動作データを用いて、シミュレータ２０は、動力学モデルを用いたオフラインでの２回の最適化を行う。すなわち、シミュレータ２０による２回の最適化による繰り返し学習制御を実行すれば、制御装置１３による２回目のロボットアームＡの実機の直線軌道を描く動作において、追従誤差を大きく低減することができる。
【００７７】
上述した第１の実施形態および第２の実施形態を適用すれば、図３（ａ）で示されるＸ軸方向の直線軌道動作や、図４（ｃ）で示される直径１００［ｍｍ］の円軌道動作においても、上述した繰り返し学習制御を実行することにより同様な学習効果が得られる。
【００７８】
（第３の実施形態）
図１４は、第３の実施形態の図３（ａ）、（ｂ）、（ｃ）、（ｄ）の各動作において、初期同定値から第１の最適化および２の最適化で得られた物理パラメータの一例を示す図である。図１４（ａ）には、第１の最適化で得られた物理パラメータ１５個が示されている。図１４（ｂ）には、第２の最適化で得られたフィードフォワード用物理パラメータ８個が示されている。動力学モデル用やフィードフォワード用の物理パラメータにおいて、本来、慣性モーメントなどは不変のものであるが、各動作において全て異なる値で同定されている。この理由として、式（１）の動力学モデルは、あくまでも近似モデルであるので、シミュレータ２０では、物理パラメータの自由度を用いて、各動作データにフィッティングしているためである。
【００７９】
任意図形で構成される経路が与えられたロボットアームの軌道追従制御においては、シミュレータ２０において任意図形を直線や円弧の類型化された経路セグメントに分割し、セグメント毎に上述した２回の最適化を行ってフィードフォワードの逆動力学モデルに含まれる物理パラメータを設定する。
【００８０】
そして、フィードフォワード制御部１７は、逆動力学モデルに含まれる物理パラメータを経路セグメント毎に対応して切り替えてフィードフォワード制御を実行する。これにより、ロボット制御装置Ｓによれば、ロボットアームＡに設定された経路が任意図形で構成されていても経路全体で追従誤差が低減された良好な軌道追従特性が得られる。
【００８１】
以上説明した第３の実施形態のロボット制御装置、ロボット制御のパラメータ調整方法、およびプログラムによれば、ニューラルネットワークのようなブラックボックスモデルとは異なり、動力学モデルに基づいているため、経路追従の速度だけが変わるようなケースでも、物理パラメータを流用して運用できる。
【００８２】
以上説明した実施形態のロボット制御装置Ｓは、例えば、ロボットアームＡのキャリブレーションに適用される。作業者は、例えば、ロボットアームＡにシミュレータ２０がインストールされた制御装置１３を接続してロボットアームＡを動作させ、動作データに基づいて繰り返し学習制御を行ってロボットアームＡの動作を最適化する。また、シミュレータ２０は、制御装置１３と別体の端末装置に構成されていてもよい。例えば、シミュレータ２０がインストールされた端末装置により、ロボットアームＡを動作させ、動作データに基づいて各物理パラメータを調整し、調整した物理パラメータのデータを制御装置１３に出力するようにしてもよい。
【００８３】
上記実施形態では、制御装置１３をロボットアームＡと別体の装置として説明したが、制御装置１３は、ロボットアームＡに内蔵されているものであってもよい。
【００８４】
以上説明した少なくともひとつの実施形態によれば、ロボットアームＡの対象部位をフィードバック制御によって所定の経路に追従させた際の動作データを取得するログ取得部１５と、ログ取得部１５により取得された動作データに基づいて、経路と対象部位の位置との追従誤差を低減するようにロボットアームの動作を計算するための第１物理パラメータを調整する第１の調整部２２と、前記第１の調整部により調整された前記第１物理パラメータに基づいて、前記ロボットアームを前記経路に追従させた軌道を計算し、計算結果に基づいて、前記ロボットアームのフィードフォワード制御に用いられる第２物理パラメータを調整する第２の調整部２３と、を持つことにより、任意図形で構成される経路が与えられたロボットアーム先端の軌道追従制御において、追従誤差を低減することができる。
【００８５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００８６】
１…基台、２…第１軸、３…第１リンク、４…第１モータ、５…第１減速機、６…第１エンコーダ、７…第２軸、８…第２リンク、９…第２モータ、１０…第２減速機、１１…第２エンコーダ、１２…負荷、１３…制御装置、１４…フィードバック制御部、１５…ログ取得部、１６…逆座標変換部、１７…フィードフォワード制御部、２０…シミュレータ、２１…ロボットアームの動力学モデル、２２…第１の調整部、２３…第２の調整部、２５…順座標変換部、３０…記憶部、Ａ…ロボットアーム、Ｍ…モータ、Ｇ…減速機、Ｌ…リンク、Ｓ…ロボット制御装置
【図１】
2020032481.tif 000016
【図２】
2020032481.tif 000017
【図３】
2020032481.tif 000018
【図４】
2020032481.tif 000019
【図５】
2020032481.tif 000020
【図６】
2020032481.tif 000021
【図７】
2020032481.tif 000022
【図８】
2020032481.tif 000023
【図９】
2020032481.tif 000024
【図１０】
2020032481.tif 000025
【図１１】
2020032481.tif 000026
【図１２】
2020032481.tif 000027
【図１３】
2020032481.tif 000028
【図１４】
2020032481.tif 000029