(57)【要約】【課題】従来構成に対して力制御の性能を向上可能とする。【解決手段】力の指令値及び位置姿勢の指令値並びにロボット２が有する関節毎の角度の現在値に基づいて、当該関節毎のトルクの指令値及び位置姿勢制御の指令値を演算するメイン制御部１１と、ロボット２が有する関節毎に設けられ、対応する関節でのトルクの現在値並びにメイン制御部１１により演算されたトルクの指令値及び位置姿勢制御の指令値に基づいて、対応する関節に設けられたモータ２１に対する指令値を演算する関節制御部１２とを備えた。【選択図】図１
2020146765.tif 000002
【特許請求の範囲】
【請求項１】
力の指令値及び位置姿勢の指令値並びにロボットが有する関節毎の角度の現在値に基づいて、当該関節毎のトルクの指令値及び位置姿勢制御の指令値を演算するメイン制御部と、
前記ロボットが有する関節毎に設けられ、対応する関節でのトルクの現在値並びに前記メイン制御部により演算されたトルクの指令値及び位置姿勢制御の指令値に基づいて、対応する関節に設けられたモータに対する指令値を演算する関節制御部と
を備えたロボット制御装置。
【請求項２】
前記関節制御部は、
対応する関節でのトルクの現在値及び前記メイン制御部により演算されたトルクの指令値に基づいて、トルク制御の指令値を演算するトルク制御部と、
前記メイン制御部により演算された位置姿勢制御の指令値及び前記トルク制御部により演算されたトルク制御の指令値を合成することで、前記モータに対する指令値を得る指令値合成部とを備えた
ことを特徴とする請求項１記載のロボット制御装置。
【請求項３】
前記関節制御部は、
対応する関節でのトルクの現在値及び前記メイン制御部により演算されたトルクの指令値に基づいて、トルク制御の指令値を演算するトルク制御部と、
前記メイン制御部により演算された位置姿勢制御の指令値に基づいて、角速度制御の指令値を演算する関節角制御部と、
前記トルク制御部により演算されたトルク制御の指令値及び前記関節角制御部により演算された角速度制御の指令値を合成することで、前記モータに対する指令値を得る指令値合成部とを備えた
ことを特徴とする請求項１記載のロボット制御装置。
【請求項４】
前記関節制御部は、
対応する関節でのトルクの現在値及び前記メイン制御部により演算されたトルクの指令値に基づいて、トルク制御の指令値を演算するトルク制御部と、
前記メイン制御部により演算された位置姿勢制御の指令値及び前記トルク制御部により演算されたトルク制御の指令値を合成する指令値合成部と、
前記指令値合成部による合成結果に基づいて角速度制御の指令値を演算することで、前記モータに対する指令値を得る関節角制御部とを備えた
ことを特徴とする請求項１記載のロボット制御装置。
【請求項５】
メイン制御部と、ロボットが有する関節毎に設けられた関節制御部とを備えたロボット制御装置によるロボット制御方法であって、
前記メイン制御部は、力の指令値及び位置姿勢の指令値並びにロボットが有する関節毎の角度の現在値に基づいて、当該関節毎のトルクの指令値及び位置姿勢制御の指令値を演算し、
前記関節制御部は、対応する関節でのトルクの現在値並びに前記メイン制御部により演算されたトルクの指令値及び位置姿勢制御の指令値に基づいて、対応する関節に設けられたモータに対する指令値を演算する
ことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボットの位置姿勢と力を同時に制御可能なロボット制御装置及びロボット制御方法に関する。
【背景技術】
【０００２】
垂直多関節ロボット等のロボット（ロボットアーム）では、位置姿勢と力を同時（並列）に制御対象とするロボット制御装置が用いられている（例えば特許文献１参照）。なお、位置姿勢は、ロボットの位置及び姿勢のうちの少なくとも一方を表す。図９〜図１１に、ロボット制御装置１ｂの一例を示す。
【０００３】
図９に示すロボット制御装置１ｂは、メイン制御部（上位コントローラ）１１ｂ、及び複数の関節制御部（下位コントローラ）１２ｂを備えている。関節制御部１２ｂは、ロボット２が有する関節毎に設けられている。なお、メイン制御部１１ｂと各関節制御部１２ｂとの間は通信線により接続されている。
【０００４】
また、図９に示すように、ロボット２は、関節毎に、モータ２１及びセンサ２２（トルクセンサ２３及びエンコーダ２４）を有している。モータ２１及びセンサ２２はそれぞれ、対応する関節制御部１２ｂに対して電力線等により接続されている。トルクセンサ２３は、対応する関節でのトルクの現在値を検出する。エンコーダ２４は、対応する関節の角度の現在値を検出する。なお図１０では、モータ２１、トルクセンサ２３及びエンコーダ２４を一組のみ示している。
【０００５】
メイン制御部１１ｂは、各関節制御部１２ｂに指令値を出力することで、ロボット２全体を制御する。具体的には、メイン制御部１１ｂは、力の指令値及び位置姿勢の指令値並びにロボット２が有する関節毎のトルクの現在値及び角度の現在値に基づいて、当該関節毎の速度の指令値を演算する。メイン制御部１１ｂは、図１０及び図１１に示すように、力演算部１１１ｂ、力制御部１１２ｂ、位置姿勢演算部１１３ｂ、位置姿勢制御部１１４ｂ、指令値合成部１１５ｂ及び指令値変換部１１６ｂを備えている。
【０００６】
力演算部１１１ｂは、ロボット２が有する関節毎のトルクの現在値に基づいて、ロボット２の力の現在値を演算する。ロボット２が有する関節毎のトルクは関節座標系で表されており、力演算部１１１ｂは、関節毎のトルクを直交座標系で表された力に変換する。図１１において、τはトルクの現在値を表し、Ｆは力の現在値を表している。
【０００７】
力制御部１１２ｂは、力の指令値及び力演算部１１１ｂにより演算された力の現在値に基づいて、力制御の指令値を演算する。この力制御部１１２ｂでは、偏差演算器１１２１ｂで力の指令値と力の現在値との間の偏差を求め、係数乗算部１１２２ｂで偏差演算器１１２１ｂによる演算結果の偏差に対してゲインを乗算することで、力制御の指令値を得る。図１１において、Ｆｒは力の指令値を表し、ＧＦはゲインを表している。
【０００８】
位置姿勢演算部１１３ｂは、ロボット２が有する関節毎の角度の現在値に基づいて、ロボット２の位置姿勢の現在値を演算する。ロボット２が有する関節毎の角度の現在値は関節座標系で表されており、位置姿勢演算部１１３ｂは、関節毎の角度の現在値を直交座標系で表された位置姿勢の現在値に変換する。図１１において、θは角度の現在値を表し、Ｘは位置姿勢の現在値を表している。
【０００９】
位置姿勢制御部１１４ｂは、位置姿勢の指令値及び位置姿勢演算部１１３ｂにより演算された位置姿勢の現在値に基づいて、位置姿勢制御の指令値を演算する。この位置姿勢制御部１１４ｂでは、偏差演算器１１４１ｂで位置姿勢の指令値と位置姿勢の現在値との間の偏差を求め、係数乗算部１１４２ｂで偏差演算器１１４１ｂによる演算結果に対してゲインを乗算することで、位置姿勢制御の指令値を得る。図１１において、Ｘｒは位置姿勢の指令値を表し、ＧＺはゲインを表している。
【００１０】
指令値合成部１１５ｂは、力制御部１１２ｂにより演算された力制御の指令値及び位置姿勢制御部１１４ｂにより演算された位置姿勢制御の指令値を合成する。この指令値合成部１１５ｂでは、加算器１１５１ｂで力制御の指令値と位置姿勢制御の指令値とを加算する。
【００１１】
指令値変換部１１６ｂは、指令値合成部１１５ｂによる合成結果を、ロボット２が有する関節毎の角速度の指令値に変換する。この指令値変換部１１６ｂでは、係数乗算部１１６１ｂで上記合成結果に対してヤコビ行列の逆行列を乗算する。すなわち、指令値変換部１１６ｂは、直交座標系で表された指令値を関節座標系で表された指令値に変換する。図１１において、Ｊはヤコビ行列を表し、θ（ドット）ｒは角速度の指令値を表している。
【００１２】
関節制御部１２ｂは、メイン制御部１１ｂからの指令に応じ、対応する関節に設けられたモータ２１を制御する。関節制御部１２ｂは、図１０に示すように、トルク取得部１２１ｂ及び関節角制御部１２２ｂを備えている。
【００１３】
トルク取得部１２１ｂは、対応する関節でのトルクの現在値を取得する。このトルク取得部１２１ｂにより取得されたトルクの現在値を示すデータは、メイン制御部１１ｂ（力演算部１１１ｂ）に出力される。
【００１４】
関節角制御部１２２ｂは、メイン制御部１１ｂにより演算された角速度の指令値及びロボット２が有する関節毎の角度の現在値に基づいて、対応する関節に設けられたモータ２１に対する指令値を演算する。この関節角制御部１２２ｂでは、速度変換部１２２１ｂで角度の現在値を角速度の現在値に変換し、減算器１２２３ｂで角速度の指令値から速度変換部１２２１ｂで得られた角速度の現在値を減算し、ＰＩ制御部１２２４ｂで減算器１２２３ｂによる減算結果に基づいてＰＩ制御を行うことで、モータ２１に対する指令値を得る。
【００１５】
このように、図９〜図１１に示すロボット制御装置１ｂでは、複数の関節を連携して操作する必要があり、メイン制御部１１ｂで、多関節の自由度（例えば６自由度）に対して位置姿勢と力を同時に制御演算した結果を合成し、当該合成結果を各軸の関節制御部１２ｂへの信号に変換してから出力する。すなわち、このロボット制御装置１ｂでは、メイン制御部１１ｂでコンプライアンス制御の主要な演算を実行する。そのため、このロボット制御装置１ｂでは、調整すべきパラメータを合理的に統合できる等のメリットがある。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２０１６−１６８６５０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
一般に、産業用ロボット等のロボットでは、力制御によって実現が求められる対象として精密な研磨の倣い動作等があり、整定動作又は追従動作のようなダイナミクスの性能向上が常に求められている。
一方、従来のロボット制御装置では、メイン制御部でフィードバック系を構成している。すなわち、このロボット制御装置では、ロボットから物理的にも通信的にも距離のある構成要素でフィードバック制御演算を行うことになる。よって、トルクセンサによるトルクの検出からモータへの指令値の入力までの遅延が長くなる。その結果、このロボット制御装置では、不可避的にむだ時間が入り込む余地が多くなり、安定性を維持できるハイゲイン化を抑制する要因になる。また、むだ時間自体も、リード補償等でキャンセルできる要素ではないため、応答時間への悪影響は避けられない。
このように、従来のロボット制御装置では、力制御の性能（特に速応性）の向上が難しく、更なる改善が求められている。
【００１８】
この発明は、上記のような課題を解決するためになされたもので、従来構成に対して力制御の性能を向上可能なロボット制御装置を提供することを目的としている。
【課題を解決するための手段】
【００１９】
この発明に係るロボット制御装置は、力の指令値及び位置姿勢の指令値並びにロボットが有する関節毎の角度の現在値に基づいて、当該関節毎のトルクの指令値及び位置姿勢制御の指令値を演算するメイン制御部と、ロボットが有する関節毎に設けられ、対応する関節でのトルクの現在値並びにメイン制御部により演算されたトルクの指令値及び位置姿勢制御の指令値に基づいて、対応する関節に設けられたモータに対する指令値を演算する関節制御部とを備えたことを特徴とする。
【発明の効果】
【００２０】
この発明によれば、上記のように構成したので、従来構成に対して力制御の性能を向上可能となる。
【図面の簡単な説明】
【００２１】
【図１】実施の形態１に係るロボット制御装置の構成例を示す図である。
【図２】実施の形態１に係るロボット制御装置の構成例を示す図である。
【図３】実施の形態１に係るロボット制御装置の動作例を示すフローチャートである。
【図４】実施の形態１におけるメイン制御部の動作例を示すフローチャートである。
【図５】実施の形態１における関節制御部の動作例を示すフローチャートである。
【図６】図６Ａ、図６Ｂは、実施の形態１に係るロボット制御装置による効果を説明するための図であり、図６Ａは実施の形態１に係るロボット制御装置を用いた場合でのシミュレーション結果の一例を示す図であり、図６Ｂは従来のロボット制御装置を用いた場合でのシミュレーション結果の一例を示す図である。
【図７】実施の形態２に係るロボット制御装置の構成例を示す図である。
【図８】実施の形態２に係るロボット制御装置の構成例を示す図である。
【図９】従来のロボット制御装置を含むロボットシステムの構成例を示す図である。
【図１０】従来のロボット制御装置の構成例を示す図である。
【図１１】従来のロボット制御装置の構成例を示す図である。
【発明を実施するための形態】
【００２２】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態１．
図１，２は実施の形態１に係るロボット制御装置１の構成例を示す図である。なお、ロボット制御装置１とロボット２との関係は、図９と同様であり、その説明を省略する。
ロボット制御装置１は、ロボット２の位置姿勢と力を同時（並列）に制御する。ロボット制御装置１は、図１，２に示すように、メイン制御部（上位コントローラ）１１、及び複数の関節制御部（下位コントローラ）１２を備えている。関節制御部１２は、ロボット２が有する関節毎に設けられている。なお、メイン制御部１１と各関節制御部１２との間は通信線により接続されている。
【００２３】
メイン制御部１１は、各関節制御部１２に指令値を出力することで、ロボット２全体を制御する。具体的には、メイン制御部１１は、力の指令値及び位置姿勢の指令値並びにロボット２が有する関節毎の角度の現在値に基づいて、当該関節毎のトルクの指令値及び位置姿勢制御の指令値を演算する。図１，２では、位置姿勢制御の指令値は速度の指令値である。メイン制御部１１は、図１に示すように、トルク指令値変換部１１１、位置姿勢演算部１１２、位置姿勢制御部１１３及び指令値変換部１１４を備えている。なお、メイン制御部１１は、システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等の処理回路、又はメモリ等に記憶されたプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等により実現される。
【００２４】
トルク指令値変換部１１１は、力の指令値を、ロボット２が有する関節毎のトルクの指令値に変換する。トルク指令値変換部１１１は、係数乗算部１１１１を有している。係数乗算部１１１１は、力の指令値に対してヤコビ行列の転置行列を乗算する。力の指令値は直交座標系で表されており、トルク指令値変換部１１１は、力の指令値を関節座標系で表されたトルクの指令値に変換する。図２において、Ｆｒは力の指令値を表し、Ｊはヤコビ行列を表し、τｒはトルクの指令値を表している。
【００２５】
位置姿勢演算部１１２は、ロボット２が有する関節毎の角度の現在値に基づいて、ロボット２の位置姿勢の現在値を演算する。ロボット２が有する関節毎の角度は関節座標系で表されており、位置姿勢演算部１１２は、関節毎の角度を直交座標系で表された位置姿勢に変換する。なおロボット２が有する関節毎の角度の現在値は、当該関節毎に設けられたエンコーダ２４により検出される。図２において、θは角度の現在値を表し、Ｘは位置姿勢の現在値を表している。
【００２６】
位置姿勢制御部１１３は、位置姿勢の指令値及び位置姿勢演算部１１２により演算された位置姿勢の現在値に基づいて、速度の指令値（位置姿勢制御の指令値）を演算する。位置姿勢制御部１１３は、偏差演算器１１３１及び係数乗算部１１３２を有している。
【００２７】
偏差演算器１１３１は、位置姿勢の指令値と位置姿勢の現在値との間の偏差を演算によって求める。
係数乗算部１１３２は、偏差演算器１１３１による演算結果の偏差に対してゲインを乗算することで、速度の指令値を得る。図２において、Ｘｒは位置姿勢の指令値を表し、ＧＺはゲインを表している。
【００２８】
指令値変換部１１４は、位置姿勢制御部１１３により演算された速度の指令値を、ロボット２が有する関節毎の角速度の指令値に変換する。指令値変換部１１４は、係数乗算部１１４１を有している。係数乗算部１１４１は、位置姿勢制御部１１３により演算された速度の指令値に対してヤコビ行列の逆行列を乗算する。すなわち、指令値変換部１１４は、直交座標系で表された指令値を関節座標系で表された指令値に変換する。図２において、θ（ドット）ｒは角速度の指令値を表している。
【００２９】
関節制御部１２は、メイン制御部１１からの指令に応じ、対応する関節に設けられたモータ２１を制御する。具体的には、関節制御部１２は、対応する関節でのトルクの現在値並びにメイン制御部１１により演算されたトルクの指令値及び角速度の指令値（位置姿勢制御の指令値）に基づいて、対応する関節に設けられたモータ２１に対する指令値を演算する。関節制御部１２は、図１に示すように、トルク取得部１２１、トルク制御部１２２及びモータ制御部１２３を備えている。モータ制御部１２３は、関節角制御部１２４及び指令値合成部１２５を有している。
【００３０】
トルク取得部１２１は、対応する関節でのトルクの現在値を取得する。ロボット２が有する関節毎のトルクの現在値は、当該関節毎に設けられたトルクセンサ２３により検出される。
【００３１】
トルク制御部１２２は、対応する関節でのトルクの現在値及びメイン制御部１１により演算されたトルクの指令値に基づいて、トルク制御の指令値を演算する。トルク制御部１２２は、減算器１２２１及びＰＩ制御部１２２２を有している。
【００３２】
減算器１２２１は、メイン制御部１１により演算されたトルクの指令値から、トルク取得部１２１により取得されたトルクの現在値を減算する。
ＰＩ制御部１２２２は、減算器１２２１による減算結果に基づいてＰＩ制御を行うことで、トルク制御の指令値を得る。
【００３３】
関節角制御部１２４は、メイン制御部１１により演算された角速度の指令値に基づいて、角速度制御の指令値を演算する。関節角制御部１２４は、速度変換部１２４１及び速度制御部１２４２を有している。速度制御部１２４２は、減算器１２４３及びＰＩ制御部１２４４を有している。
【００３４】
速度変換部１２４１は、対応する関節での角度の現在値を角速度の現在値に変換する。
【００３５】
減算器１２４３は、メイン制御部１１により演算された角速度の指令値から、速度変換部１２４１により得られた角速度の現在値を減算する。
ＰＩ制御部１２４４は、減算器１２４３による減算結果に基づいてＰＩ制御を行うことで、角速度制御の指令値を得る。
【００３６】
指令値合成部１２５は、トルク制御部１２２により演算されたトルク制御の指令値及び関節角制御部１２４により演算された角速度制御の指令値を合成する。図１では、指令値合成部１２５は、加算器１２５１を有する。加算器１２５１は、トルク制御部１２２により演算されたトルク制御の指令値と関節角制御部１２４により演算された角速度制御の指令値とを加算する。この指令値合成部１２５による合成結果である指令値（電流指令値）は、モータ２１に出力される。
【００３７】
次に、図１，２に示す実施の形態１に係るロボット制御装置１の動作例について、図３を参照しながら説明する。
図１，２に示す実施の形態１に係るロボット制御装置１の動作例では、図３に示すように、まず、メイン制御部１１は、力の指令値及び位置姿勢の指令値並びにロボット２が有する関節毎の角度の現在値に基づいて、当該関節毎のトルクの指令値及び角速度の指令値（位置姿勢制御の指令値）を演算する（ステップＳＴ３０１）。
【００３８】
次いで、関節制御部１２は、対応する関節でのトルクの現在値並びにメイン制御部１１により演算されたトルクの指令値及び角速度の指令値に基づいて、対応する関節に設けられたモータ２１に対する指令値を演算する（ステップＳＴ３０２）。
【００３９】
次に、図１，２に示すメイン制御部１１の動作例について、図４を参照しながら説明する。
図１，２に示すメイン制御部１１の動作例では、図４に示すように、まず、トルク指令値変換部１１１は、力の指令値を、ロボット２が有する関節毎のトルクの指令値に変換する（ステップＳＴ４０１）。図１，２では、係数乗算部１１１１が、力の指令値に対してヤコビ行列の転置行列を乗算する。なお、ヤコビ行列はロボット２の関節の角度によって変わるので、適宜更新する必要がある。また、トルク取得部１２１が取得するトルクの現在値は通常、重力に起因するトルク成分を含むので、このトルク成分を相殺するようトルク指令値にこの重力起因トルク成分の推定値を重畳すると良い。
【００４０】
また、位置姿勢演算部１１２は、ロボット２が有する関節毎の角度の現在値に基づいて、ロボット２の位置姿勢の現在値を演算する（ステップＳＴ４０２）。
【００４１】
次いで、位置姿勢制御部１１３は、位置姿勢の指令値及び位置姿勢演算部１１２により演算された位置姿勢の現在値に基づいて、速度の指令値（位置姿勢制御の指令値）を演算する（ステップＳＴ４０３）。図１，２では、偏差演算器１１３１が、位置姿勢の指令値と位置姿勢の現在値との間の偏差を演算し、係数乗算部１１３２が、偏差演算器１１３１による演算結果の偏差に対してゲインを乗算することで、速度の指令値を得る。なお、位置の偏差は、指令値の座標値から現在値の座標値を減算することで得られる。姿勢の偏差は、現在値の姿勢から指令値の姿勢への回転変換を求めることで得ることができる。
【００４２】
次いで、指令値変換部１１４は、位置姿勢制御部１１３により演算された速度の指令値を、ロボット２が有する関節毎の角速度の指令値に変換する（ステップＳＴ４０４）。図１，２では、係数乗算部１１４１が、位置姿勢制御部１１３により演算された速度の指令値に対してヤコビ行列の逆行列を乗算することで、関節毎の角速度の指令値を得る。
【００４３】
次に、図１，２に示す関節制御部１２の動作例について、図５を参照しながら説明する。
図１，２に示す関節制御部１２の動作例では、図５に示すように、まず、トルク取得部１２１は、対応する関節でのトルクの現在値を取得する（ステップＳＴ５０１）。
【００４４】
次いで、トルク制御部１２２は、対応する関節でのトルクの現在値及びメイン制御部１１により演算されたトルクの指令値に基づいて、トルク制御の指令値を演算する（ステップＳＴ５０２）。図１，２では、減算器１２２１が、メイン制御部１１により演算されたトルクの指令値からトルク取得部１２１により取得されたトルクの現在値を減算し、ＰＩ制御部１２２２が、減算器１２２１による減算結果に基づいてＰＩ制御を行うことで、トルク制御の指令値を得る。
【００４５】
また、関節角制御部１２４は、メイン制御部１１により演算された角速度の指令値に基づいて、角速度制御の指令値を演算する（ステップＳＴ５０３）。図１，２では、速度変換部１２４１が、対応する関節での角度の現在値を角速度の現在値に変換し、減算器１２４３が、メイン制御部１１により演算された角速度の指令値から速度変換部１２４１により得られた角速度の現在値を減算し、ＰＩ制御部１２４４が、減算器１２４３による減算結果に基づいてＰＩ制御を行うことで、角速度制御の指令値を得る。
【００４６】
次いで、指令値合成部１２５は、トルク制御部１２２により演算されたトルク制御の指令値及び関節角制御部１２４により演算された角速度制御の指令値を合成する（ステップＳＴ５０４）。図１，２では、加算器１２５１が、トルク制御部１２２により演算されたトルク制御の指令値と関節角制御部１２４により演算された角速度制御の指令値とを加算する。この指令値合成部１２５による合成結果である指令値（電流指令値）は、モータ２１に出力される。
【００４７】
次に、実施の形態１に係るロボット制御装置１による効果について説明する。
上述したように、従来のロボット制御装置１ｂでは、メイン制御部１１ｂでフィードバック系を構成している。すなわち、このロボット制御装置１ｂでは、ロボット２から物理的にも通信的にも距離のある構成要素でフィードバック制御演算を行うことになる。よって、トルクセンサ２３によるトルクの検出からモータ２１への指令値の入力までの遅延が長くなる。その結果、このロボット制御装置１では、不可避的にむだ時間が入り込む余地が多くなり、安定性を維持できるハイゲイン化を抑制する要因になる。また、むだ時間自体も、リード補償等でキャンセルできる要素ではないため、応答時間への悪影響は避けられない。
【００４８】
これに対し、実施の形態１に係るロボット制御装置１のように、メイン制御部１１で力制御に対する演算を実施するのではなく、関節制御部１２でトルク制御に対する演算を実施することで、トルクセンサ２３によるトルクの検出からモータ２１への指令値の入力までの遅延が短くなり、むだ時間が入り込む余地を削減できる。すなわち、実施の形態１に係るロボット制御装置１は、安定性を維持できるコントローラのハイゲイン化に相当する調整（関節単位の１変数制御のゲイン調整）も可能になる。このように、実施の形態１に係るロボット制御装置１では、従来構成に対して力制御の性能（特に速応性）の向上が可能となる。
【００４９】
図６は、実施の形態１に係るロボット制御装置１による効果を説明するための図である。図６Ａは実施の形態１に係るロボット制御装置１を用いた場合でのシミュレーション結果の一例を示す図であり、図６Ｂは従来のロボット制御装置１ｂを用いた場合でのシミュレーション結果の一例を示す図である。図６では、ロボット２で物体をＺ軸方向に押し付けた際のシミュレーション結果を示している。なお、ロボット２による押付け力の目標値は１０［Ｎ］としている。図６Ａ及び図６Ｂにおいて、横軸は時間［ｓ］を示し、縦軸はロボット２によるＺ軸方向への押付け力を示している。
この場合、図６Ｂに示すように、従来のロボット制御装置１ｂを用いた場合には、ロボット２によるＺ軸方向への押付け力が目標値に整定するまでの時間（整定時間）が３．０３［ｓ］となっている。これに対し、図６Ａに示すように、実施の形態１に係るロボット制御装置１を用いた場合には、整定時間が０．４７［ｓ］となっている。すなわち、実施の形態１に係るロボット制御装置１を用いた場合には、従来のロボット制御装置１ｂを用いた場合に対し、ロボット２によるＺ軸方向への押付け力が短い時間で目標値に整定していることがわかる。
【００５０】
また図６Ｂでは、従来のロボット制御装置１ｂにおける、力偏差の算出から速度指令値の算出までのゲインは、−２．０×１０−３となる。これに対し、図６Ａでは、実施の形態１に係るロボット制御装置１における、力偏差の算出から速度指令値の算出までのゲインに相当する等価ゲインは、−９．２×１０−３となる。すなわち、実施の形態１に係るロボット制御装置１では、従来のロボット制御装置１ｂに対して高いゲインでの力制御が実現できていることがわかる。なお、実施の形態１に係るロボット制御装置１では、実際には力偏差から速度指令値を算出していないので、上記で示したゲインは実際のゲインではなく換算値である。
【００５１】
なお、図１，２に示すロボット制御装置１では、速度制御に関するゲインを０にすることで単体のトルク制御を実現でき、また、トルク制御に関するゲインを０にすることで通常の速度制御を実現できる。
【００５２】
以上のように、この実施の形態１によれば、ロボット制御装置１は、力の指令値及び位置姿勢の指令値並びにロボット２が有する関節毎の角度の現在値に基づいて、当該関節毎のトルクの指令値及び位置姿勢制御の指令値を演算するメイン制御部１１と、ロボット２が有する関節毎に設けられ、対応する関節でのトルクの現在値並びにメイン制御部１１により演算されたトルクの指令値及び位置姿勢制御の指令値に基づいて、対応する関節に設けられたモータ２１に対する指令値を演算する関節制御部１２とを備えた。これにより、実施の形態１に係るロボット制御装置１は、従来構成に対して力制御の性能を向上可能となる。
【００５３】
なお、実施の形態１では関節角制御部１２４が関節制御部１２に設けられた場合を示した。しかしながら、これに限らず、関節角制御部１２４はメイン制御部１１に設けられていてもよい。例えば、ロボット２が低速で動作する場合等であれば、関節角制御部１２４がメイン制御部１１に設けられていることによる影響は少ないと考えられる。
また、関節角制御部１２４は必須の構成ではなく、ロボット制御装置１から取除いてもよい。
【００５４】
実施の形態２．
実施の形態１では、関節制御部１２において、メイン制御部１１で演算された角速度の指令値（位置姿勢制御の指令値）を用いて角速度制御の指令値を演算し、その後、トルク制御の指令値及び角速度制御の指令値を合成する場合を示した。しかしながら、これに限らず、関節制御部１２において、トルク制御の指令値及びメイン制御部１１で演算された角速度の指令値（位置姿勢制御の指令値）を合成した後、その合成結果を用いて角速度制御の指令値を演算してもよい。
図７，８は実施の形態２に係るロボット制御装置１の構成例を示す図である。図７，８に示す実施の形態２に係るロボット制御装置１は、図１，２に示す実施の形態１に係るロボット制御装置１に対し、関節角制御部１２４及び指令値合成部１２５を指令値合成部１２６及び関節角制御部１２７に変更している。その他の構成は同様であり、同一の符号を付してその説明を省略する。
【００５５】
指令値合成部１２６は、メイン制御部１１により演算された角速度の指令値（位置姿勢制御の指令値）及びトルク制御部１２２により演算されたトルク制御の指令値を合成する。図８では、指令値合成部１２６は、加算器１２６１を有する。加算器１２６１は、メイン制御部１１により演算された角速度の指令値とトルク制御部１２２により演算されたトルク制御の指令値とを加算する。
【００５６】
関節角制御部１２７は、指令値合成部１２６による合成結果に基づいて、角速度制御の指令値を演算する。関節角制御部１２７は、速度変換部１２７１及び速度制御部１２７２を有している。速度制御部１２７２は、減算器１２７３及びＰＩ制御部１２７４を有している。
【００５７】
速度変換部１２７１は、対応する関節での角度の現在値を角速度の現在値に変換する。
【００５８】
減算器１２７３は、指令値合成部１２６による合成結果から、速度変換部１２７１により得られた角速度の現在値を減算する。
ＰＩ制御部１２７４は、減算器１２７３による減算結果に基づいてＰＩ制御を行うことで、角速度制御の指令値を得る。
この関節角制御部１２７により演算された角速度制御の指令値（電流指令値）は、対応する関節に設けられたモータ２１に出力される。
【００５９】
このように、実施の形態２に係るロボット制御装置１では、位置姿勢制御の指令値及びトルク制御の指令値を合成し、その合成結果に基づいて角速度制御を実施する。この実施の形態２に係るロボット制御装置１についても、実施の形態１に係るロボット制御装置１と同様の効果が得られる。また、実施の形態２に係るロボット制御装置１は、従来のコンプライアンス制御に近い対応関係となる。
【００６０】
また、本願発明はその発明の範囲内において、各実施の形態の自由な組合わせ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。例えば、実施の形態１，２では関節角制御部が速度制御を行う例を用いて説明したが、加速度又は電流等の他の物理量の制御を介して位置姿勢の制御を行うことも可能である。
【符号の説明】
【００６１】
１  ロボット制御装置
２  ロボット
１１  メイン制御部
１２  関節制御部
２１  モータ
２２  センサ
２３  トルクセンサ
２４  エンコーダ
１１１  トルク指令値変換部
１１２  位置姿勢演算部
１１３  位置姿勢制御部
１１４  指令値変換部
１２１  トルク取得部
１２２  トルク制御部
１２３  モータ制御部
１２４  関節角制御部
１２５  指令値合成部
１２６  指令値合成部
１２７  関節角制御部
１１１１  係数乗算部
１１３１  偏差演算器
１１３２  係数乗算部
１１４１  係数乗算部
１２２１  減算器
１２２２  ＰＩ制御部
１２４１  速度変換部
１２４２  速度制御部
１２４３  減算器
１２４４  ＰＩ制御部
１２５１  加算器
１２６１  加算器
１２７１  速度変換部
１２７２  速度制御部
１２７３  減算器
１２７４  ＰＩ制御部
【図１】
2020146765.tif 000003
【図２】
2020146765.tif 000004
【図３】
2020146765.tif 000005
【図４】
2020146765.tif 000006
【図５】
2020146765.tif 000007
【図６】
2020146765.tif 000008
【図７】
2020146765.tif 000009
【図８】
2020146765.tif 000010
【図９】
2020146765.tif 000011
【図１０】
2020146765.tif 000012
【図１１】
2020146765.tif 000013