IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アズビル株式会社の特許一覧

<>
  • 特許-ロボット制御装置及びロボット制御方法 図1
  • 特許-ロボット制御装置及びロボット制御方法 図2
  • 特許-ロボット制御装置及びロボット制御方法 図3
  • 特許-ロボット制御装置及びロボット制御方法 図4
  • 特許-ロボット制御装置及びロボット制御方法 図5
  • 特許-ロボット制御装置及びロボット制御方法 図6
  • 特許-ロボット制御装置及びロボット制御方法 図7
  • 特許-ロボット制御装置及びロボット制御方法 図8
  • 特許-ロボット制御装置及びロボット制御方法 図9
  • 特許-ロボット制御装置及びロボット制御方法 図10
  • 特許-ロボット制御装置及びロボット制御方法 図11
  • 特許-ロボット制御装置及びロボット制御方法 図12
  • 特許-ロボット制御装置及びロボット制御方法 図13
  • 特許-ロボット制御装置及びロボット制御方法 図14
  • 特許-ロボット制御装置及びロボット制御方法 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-02
(45)【発行日】2023-05-15
(54)【発明の名称】ロボット制御装置及びロボット制御方法
(51)【国際特許分類】
   B25J 9/10 20060101AFI20230508BHJP
   B25J 13/00 20060101ALI20230508BHJP
【FI】
B25J9/10 A
B25J13/00 Z
【請求項の数】 7
(21)【出願番号】P 2019112098
(22)【出願日】2019-06-17
(65)【公開番号】P2020203340
(43)【公開日】2020-12-24
【審査請求日】2022-03-24
(73)【特許権者】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】110003166
【氏名又は名称】弁理士法人山王内外特許事務所
(74)【代理人】
【識別番号】100101133
【弁理士】
【氏名又は名称】濱田 初音
(74)【代理人】
【識別番号】100199749
【弁理士】
【氏名又は名称】中島 成
(74)【代理人】
【識別番号】100197767
【弁理士】
【氏名又は名称】辻岡 将昭
(74)【代理人】
【識別番号】100201743
【弁理士】
【氏名又は名称】井上 和真
(72)【発明者】
【氏名】田原 鉄也
(72)【発明者】
【氏名】大川 陽一
【審査官】松浦 陽
(56)【参考文献】
【文献】特開2016-168650(JP,A)
【文献】特開平02-310609(JP,A)
【文献】特開2018-043300(JP,A)
【文献】特開2005-242794(JP,A)
【文献】特開2015-085426(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
ロボットの力の指令値又は当該ロボットが有する関節毎のトルクの指令値を低周波成分及び高周波成分に分離する第1周波数分離部と、
前記ロボットの力の現在値又は当該ロボットが有する関節毎のトルクの現在値を低周波成分及び高周波成分に分離する第2周波数分離部と、
前記第1周波数分離部により前記ロボットの力の指令値の高周波成分が得られた場合には当該高周波成分に基づいて前記ロボットが有する関節毎のトルクの指令値の高周波成分を演算し、前記第1周波数分離部により前記ロボットが有する関節毎のトルクの指令値の高周波成分が得られた場合には当該高周波成分を取得し、前記第1周波数分離部により得られた低周波成分及び前記第2周波数分離部により得られた低周波成分に基づいて力制御の指令値を演算し、当該力制御の指令値に基づいて前記ロボットが有する関節毎の制御指令値を演算するメイン制御部と、
前記ロボットが有する関節毎に設けられ、前記第2周波数分離部により得られた高周波成分及び前記メイン制御部により得られたトルクの指令値の高周波成分に基づいてトルク制御の指令値を演算し、当該トルク制御の指令値及び当該メイン制御部により演算された制御指令値に基づいて対応する関節に設けられたモータに対する指令値を演算する関節制御部とを備え、
前記第1周波数分離部及び前記第2周波数分離部は、前記メイン制御部及び前記関節制御部の外部又は内部に設けられた
ことを特徴とするロボット制御装置。
【請求項2】
メイン制御部と、ロボットが有する関節毎に設けられた関節制御部とを備えたロボット制御装置であって、
ロボットの力の指令値又は当該ロボットが有する関節毎のトルクの指令値を低周波成分及び高周波成分に分離する第1周波数分離部と、
前記ロボットが有する関節毎のトルクの現在値から低周波成分を得るローパスフィルタと、前記ローパスフィルタにより得られた低周波成分と前記関節毎のトルクの指令値の高周波成分とを加算する加算部と、前記加算部により得られた成分からトルクの現在値を減算することでトルクの指令値とトルクの現在値との差の高周波成分を得る減算部とを有し、前記トルクの現在値の低周波成分及び前記トルクの指令値と前記トルクの現在値との差の高周波成分を出力する第2周波数分離部とを有し
前記第1周波数分離部、前記ローパスフィルタ及び前記加算部は前記メイン制御部に設けられ、
前記減算部は前記関節制御部に設けられているとともに、
前記メイン制御部は、
前記第1の周波数分離部、前記ローパスフィルタ及び前記加算部に加え、
前記第1周波数分離部により前記ロボットの力の指令値の高周波成分が得られた場合には当該高周波成分に基づいて前記ロボットが有する関節毎のトルクの指令値の高周波成分を演算し、前記第1周波数分離部により前記ロボットが有する関節毎のトルクの指令値の高周波成分が得られた場合には当該高周波成分を取得し、前記第1周波数分離部により得られた低周波成分及び前記第2周波数分離部により得られた低周波成分に基づいて力制御の指令値を演算し、当該力制御の指令値に基づいて前記ロボットが有する関節毎の制御指令値を演算する部分を備え、
前記関節制御部は、
前記減算部に加え、
前記ロボットが有する関節毎に設けられ、前記第2周波数分離部により得られた前記トルクの指令値と前記トルクの現在値との差の高周波成分に基づいてトルク制御の指令値を演算し、当該トルク制御の指令値及び前記メイン制御部により演算された制御指令値に基づいて対応する関節に設けられたモータに対する指令値を演算する部分を備えた
ことを特徴とするロボット制御装置。
【請求項3】
前記関節制御部は、
トルク制御の指令値及び前記メイン制御部により演算された関節毎の制御指令値を合成することで、前記モータに対する指令値を得る指令値合成部を備えた
ことを特徴とする請求項1又は請求項2記載のロボット制御装置。
【請求項4】
前記メイン制御部は、前記制御指令値として、前記力制御の指令値に基づいて前記ロボットが有する関節毎の角速度の指令値を演算し、
前記関節制御部は、
前記メイン制御部により演算された関節毎の角速度の指令値に基づいて、角速度制御の指令値を演算する関節角制御部と、
トルク制御の指令値及び前記関節角制御部により演算された角速度制御の指令値を合成することで、前記モータに対する指令値を得る指令値合成部とを備えた
ことを特徴とする請求項1又は請求項2記載のロボット制御装置。
【請求項5】
前記メイン制御部は、前記制御指令値として、前記力制御の指令値に基づいて前記ロボットが有する関節毎の角速度の指令値を演算し、
前記関節制御部は、
トルク制御の指令値及び前記メイン制御部により演算された関節毎の角速度の指令値を合成する指令値合成部と、
前記指令値合成部による合成結果に基づいて角速度制御の指令値を演算することで、前記モータに対する指令値を得る関節角制御部とを備えた
ことを特徴とする請求項1又は請求項2記載のロボット制御装置。
【請求項6】
第1周波数分離部と、第2周波数分離部と、メイン制御部と、ロボットが有する関節毎に設けられた関節制御部とを備え、前記第1周波数分離部及び前記第2周波数分離部は、前記メイン制御部及び前記関節制御部の外部又は内部に設けられたロボット制御装置によるロボット制御方法であって、
前記第1周波数分離部は、前記ロボットの力の指令値又は当該ロボットが有する関節毎のトルクの指令値を低周波成分及び高周波成分に分離し、
前記第2周波数分離部は、前記ロボットの力の現在値又は当該ロボットが有する関節毎のトルクの現在値を低周波成分及び高周波成分に分離し、
前記メイン制御部は、前記第1周波数分離部により前記ロボットの力の指令値の高周波成分が得られた場合には当該高周波成分に基づいて前記ロボットが有する関節毎のトルクの指令値の高周波成分を演算し、前記第1周波数分離部により前記ロボットが有する関節毎のトルクの指令値の高周波成分が得られた場合には当該高周波成分を取得し、前記第1周波数分離部により得られた低周波成分及び前記第2周波数分離部により得られた低周波成分に基づいて力制御の指令値を演算し、当該力制御の指令値に基づいて前記ロボットが有する関節毎の制御指令値を演算し、
前記関節制御部は、前記第2周波数分離部により得られた高周波成分及び前記メイン制御部により得られたトルクの指令値の高周波成分に基づいてトルク制御の指令値を演算し、当該トルク制御の指令値及び当該メイン制御部により演算された制御指令値に基づいて対応する関節に設けられたモータに対する指令値を演算する
ことを特徴とするロボット制御方法。
【請求項7】
イン制御部と、ロボットが有する関節毎に設けられた関節制御部とを備え、第1周波数分離部と、ローパスフィルタ、加算部及び減算部を有する第2周波数分離部を含み、前記第1周波数分離部、前記ローパスフィルタ及び前記加算部は前記メイン制御部に設けられ、前記減算部は前記関節制御部に設けられたロボット制御装置によるロボット制御方法であって、
前記第1周波数分離部は、前記ロボットの力の指令値又は当該ロボットが有する関節毎のトルクの指令値を低周波成分及び高周波成分に分離し、
前記ローパスフィルタは、前記ロボットが有する関節毎のトルクの現在値から低周波成分を得て、
前記加算部は、前記ローパスフィルタにより得られた低周波成分と前記関節毎のトルクの指令値の高周波成分とを加算し、
前記減算部は、前記加算部により得られた成分からトルクの現在値を減算することでトルクの指令値とトルクの現在値との差の高周波成分を得て、
前記第2周波数分離部は、前記トルクの現在値の低周波成分及び前記トルクの指令値と前記トルクの現在値との差の高周波成分を出力し、
前記メイン制御部のうちの前記第1周波数分離部、前記ローパスフィルタ及び前記加算部以外の部分において、前記第1周波数分離部により前記ロボットの力の指令値の高周波成分が得られた場合には当該高周波成分に基づいて前記ロボットが有する関節毎のトルクの指令値の高周波成分を演算し、前記第1周波数分離部により前記ロボットが有する関節毎のトルクの指令値の高周波成分が得られた場合には当該高周波成分を取得し、前記第1周波数分離部により得られた低周波成分及び前記第2周波数分離部により得られた低周波成分に基づいて力制御の指令値を演算し、当該力制御の指令値に基づいて前記ロボットが有する関節毎の制御指令値を演算し、
前記関節制御部のうちの前記減算部以外の部分において、前記第2周波数分離部により得られた前記トルクの指令値と前記トルクの現在値との差の高周波成分に基づいてトルク制御の指令値を演算し、当該トルク制御の指令値及び前記メイン制御部により演算された制御指令値に基づいて対応する関節に設けられたモータに対する指令値を演算する
ことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ロボットの位置姿勢と力を同時に制御可能なロボット制御装置及びロボット制御方法に関する。
【背景技術】
【0002】
垂直多関節ロボット等のロボット(ロボットアーム)では、位置姿勢と力を同時(並列)に制御対象とするロボット制御装置が用いられている(例えば特許文献1参照)。なお、位置姿勢は、ロボットの位置及び姿勢のうちの少なくとも一方を表す。図13図15に、ロボット制御装置1bの一例を示す。
【0003】
図13に示すロボット制御装置1bは、メイン制御部(上位コントローラ)11b、及び複数の関節制御部(下位コントローラ)12bを備えている。関節制御部12bは、ロボット2が有する関節毎に設けられている。なお、メイン制御部11bと各関節制御部12bとの間は通信線により接続されている。
【0004】
また、図13に示すように、ロボット2は、関節毎に、モータ21及びセンサ22(トルクセンサ23及びエンコーダ24)を有している。モータ21及びセンサ22はそれぞれ、対応する関節制御部12bに対して電力線等により接続されている。トルクセンサ23は、対応する関節のトルクの現在値を検出する。エンコーダ24は、対応する関節の角度の現在値を検出する。なお図14では、モータ21、トルクセンサ23及びエンコーダ24を一組のみ示している。
【0005】
メイン制御部11bは、各関節制御部12bに指令値を出力することで、ロボット2全体を制御する。具体的には、メイン制御部11bは、力の指令値及び位置姿勢の指令値並びにロボット2が有する関節毎のトルクの現在値及び角度の現在値に基づいて、当該関節毎の角速度の指令値を演算する。メイン制御部11bは、図14及び図15に示すように、力演算部111b、力制御部112b、位置姿勢演算部113b、位置姿勢制御部114b、指令値合成部115b及び指令値変換部116bを備えている。
【0006】
力演算部111bは、ロボット2が有する関節毎のトルクの現在値に基づいて、ロボット2の力の現在値を演算する。ロボット2が有する関節毎のトルクは関節座標系で表されており、この力演算部111bでは、係数乗算部1111bで関節毎のトルクを並べたベクトルにヤコビ行列の転置の逆行列を乗算して、関節毎のトルクを直交座標系で表された力に変換する。図15において、τはトルクの現在値を表し、Jはヤコビ行列を表し、Fは力の現在値を表している。
【0007】
力制御部112bは、力の指令値及び力演算部111bにより演算された力の現在値に基づいて、力制御の指令値を演算する。この力制御部112bでは、偏差演算器1121bで力の指令値と力の現在値の間の偏差を求め、係数乗算部1122bで偏差演算器1121bによる演算結果の偏差に対してゲインを乗算することで、力制御の指令値を得る。図15において、Frは力の指令値を表し、Gはゲインを表している。
【0008】
位置姿勢演算部113bは、ロボット2が有する関節毎の角度の現在値に基づいて、ロボット2の位置姿勢の現在値を演算する。ロボット2が有する関節毎の角度の現在値は関節座標系で表されており、位置姿勢演算部113bは、関節毎の角度の現在値を直交座標系で表された位置姿勢の現在値に変換する。図15において、θは角度の現在値を表し、Xは位置姿勢の現在値を表している。
【0009】
位置姿勢制御部114bは、位置姿勢の指令値及び位置姿勢演算部113bにより演算された位置姿勢の現在値に基づいて、位置姿勢制御の指令値を演算する。この位置姿勢制御部114bでは、偏差演算器1141bで位置姿勢の指令値と位置姿勢の現在値の間の偏差を求め、係数乗算部1142bで偏差演算器1141bによる演算結果に対してゲインを乗算することで、位置姿勢制御の指令値を得る。図15において、Xrは位置姿勢の指令値を表し、Gはゲインを表している。
【0010】
指令値合成部115bは、力制御部112bにより演算された力制御の指令値及び位置姿勢制御部114bにより演算された位置姿勢制御の指令値を合成する。この指令値合成部115bでは、加算器1151bで力制御の指令値と位置姿勢制御の指令値とを加算する。
【0011】
指令値変換部116bは、指令値合成部115bによる合成結果を、ロボット2が有する関節毎の角速度の指令値に変換する。この指令値変換部116bでは、係数乗算部1161bで上記合成結果に対してヤコビ行列の逆行列を乗算する。すなわち、指令値変換部116bは、直交座標系で表された指令値を関節座標系で表された指令値に変換する。図15において、θ(ドット)rは角速度の指令値を表している。
【0012】
関節制御部12bは、メイン制御部11bからの指令に応じ、対応する関節に設けられたモータ21を制御する。関節制御部12bは、図14に示すように、トルク取得部121b及び関節角制御部122bを備えている。
【0013】
トルク取得部121bは、対応する関節でのトルクの現在値を取得する。このトルク取得部121bにより取得されたトルクの現在値を示すデータは、メイン制御部11b(力演算部111b)に出力される。
【0014】
関節角制御部122bは、メイン制御部11bにより演算された角速度の指令値及びロボット2が有する関節毎の角度の現在値に基づいて、対応する関節に設けられたモータ21に対する指令値を演算する。この関節角制御部122bでは、速度変換部1221bで角度の現在値を角速度の現在値に変換し、減算器1223bで角速度の指令値から速度変換部1221bで得られた角速度の現在値を減算し、PI制御部1224bで減算器1223bによる減算結果に基づいてPI制御を行うことで、モータ21に対する指令値を得る。
【0015】
このように、図13図15に示すロボット制御装置1bでは、複数の関節を連携して操作する必要があり、メイン制御部11bで、多関節の自由度(例えば6自由度)に対して位置姿勢と力を同時に制御演算した結果を合成し、当該合成結果を各軸の関節制御部12bへの信号に変換してから出力する。すなわち、このロボット制御装置1bでは、メイン制御部11bでコンプライアンス制御の主要な演算を実行する。そのため、このロボット制御装置1bでは、調整すべきパラメータを合理的に統合できる等のメリットがある。
【先行技術文献】
【特許文献】
【0016】
【文献】特開2016-168650号公報
【発明の概要】
【発明が解決しようとする課題】
【0017】
一般に、産業用ロボット等のロボットでは、力制御によって実現が求められる対象として精密な研磨の倣い動作等があり、整定動作又は追従動作のようなダイナミクスの性能向上が常に求められている。
一方、従来のロボット制御装置では、メイン制御部でフィードバック系を構成している。すなわち、このロボット制御装置では、ロボットから物理的にも通信的にも距離のある構成要素でフィードバック制御演算を行うことになる。よって、トルクセンサによるトルクの検出からモータへの指令値の入力までの遅延が長くなる。その結果、このロボット制御装置では、不可避的にむだ時間が入り込む余地が多くなり、安定性を維持できるハイゲイン化を抑制する要因になる。また、むだ時間自体も、リード補償等でキャンセルできる要素ではないため、応答時間への悪影響は避けられない。
このように、従来のロボット制御装置では、力制御の性能(特に速応性)の向上が難しく、更なる改善が求められている。
【0018】
この発明は、上記のような課題を解決するためになされたもので、従来構成に対して力制御の性能を向上可能であるロボット制御装置を提供することを目的としている。
【課題を解決するための手段】
【0019】
この発明に係るロボット制御装置は、ロボットの力の指令値又は当該ロボットが有する関節毎のトルクの指令値を低周波成分及び高周波成分に分離する第1周波数分離部と、ロボットの力の現在値又は当該ロボットが有する関節毎のトルクの現在値を低周波成分及び高周波成分に分離する第2周波数分離部と、第1周波数分離部によりロボットの力の指令値の高周波成分が得られた場合には当該高周波成分に基づいてロボットが有する関節毎のトルクの指令値の高周波成分を演算し、第1周波数分離部によりロボットが有する関節毎のトルクの指令値の高周波成分が得られた場合には当該高周波成分を取得し、第1周波数分離部により得られた低周波成分及び第2周波数分離部により得られた低周波成分に基づいて力制御の指令値を演算し、当該力制御の指令値に基づいてロボットが有する関節毎の制御指令値を演算するメイン制御部と、ロボットが有する関節毎に設けられ、第2周波数分離部により得られた高周波成分及びメイン制御部により得られたトルクの指令値の高周波成分に基づいてトルク制御の指令値を演算し、当該トルク制御の指令値及び当該メイン制御部により演算された制御指令値に基づいて対応する関節に設けられたモータに対する指令値を演算する関節制御部とを備え、第1周波数分離部及び第2周波数分離部は、メイン制御部及び関節制御部の外部又は内部に設けられたことを特徴とする。
【発明の効果】
【0020】
この発明によれば、上記のように構成したので、従来構成に対して力制御の性能を向上可能となる。
【図面の簡単な説明】
【0021】
図1】実施の形態1に係るロボット制御装置の構成例を示す図である。
図2】実施の形態1に係るロボット制御装置の構成例を示す図である。
図3図3A図3Bは、実施の形態1における周波数分離部の構成例を示す図である。
図4】実施の形態1に係るロボット制御装置の動作例を示すフローチャートである。
図5】実施の形態1におけるメイン制御部の動作例を示すフローチャートである。
図6】実施の形態1における関節制御部の動作例を示すフローチャートである。
図7】実施の形態1に係るロボット制御装置による低周波力制御と高周波トルク制御の一例を示す図である。
図8】実施の形態1に係るロボット制御装置の別の構成例を示す図である。
図9】実施の形態2に係るロボット制御装置の構成例を示す図である。
図10】実施の形態2に係るロボット制御装置の構成例を示す図である。
図11】実施の形態3に係るロボット制御装置の構成例を示す図である。
図12】実施の形態3における周波数分離部の構成例を示す図である。
図13】従来のロボット制御装置を含むロボットシステムの構成例を示す図である。
図14】従来のロボット制御装置の構成例を示す図である。
図15】従来のロボット制御装置の構成例を示す図である。
【発明を実施するための形態】
【0022】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1,2は実施の形態1に係るロボット制御装置1の構成例を示す図である。なお、ロボット制御装置1とロボット2との関係は、図13と同様であり、その説明を省略する。
ロボット制御装置1は、ロボット2の位置姿勢と力を同時(並列)に制御する。ロボット制御装置1は、図1,2に示すように、メイン制御部(上位コントローラ)11、及び複数の関節制御部(下位コントローラ)12を備えている。関節制御部12は、ロボット2が有する関節毎に設けられている。なお、メイン制御部11と各関節制御部12との間は通信線により接続されている。
【0023】
メイン制御部11は、各関節制御部12に指令値を出力することで、ロボット2全体を制御する。具体的には、メイン制御部11は、ロボット2の力の指令値及び位置姿勢の指令値並びにロボット2が有する関節毎の角度の現在値及びトルクの現在値の低周波成分に基づいて、当該関節毎のトルクの指令値の高周波成分及び制御指令値を演算する。図1,2では、メイン制御部11が演算する制御指令値は角速度の指令値である。メイン制御部11は、図1に示すように、周波数分離部(第1周波数分離部)111、トルク指令値変換部112、力演算部113、力制御部114、位置姿勢演算部115、位置姿勢制御部116、指令値合成部117、及び指令値変換部118を備えている。ただし、位置姿勢演算部115、位置姿勢制御部116、指令値合成部117は、力と位置姿勢の双方を制御する場合に必要であり、力だけを制御する場合は不要である。なお、メイン制御部11は、システムLSI(Large Scale Integration)等の処理回路、又はメモリ等に記憶されたプログラムを実行するCPU(Central Processing Unit)等により実現される。
【0024】
周波数分離部111は、力の指令値を低周波成分及び高周波成分に分離する。図1,2において、Frは力の指令値を表している。
なお、周波数分離部111は、低周波域と高周波域を、例えば、トルクセンサ23によるトルクの検出からモータ21への指令値の入力までの遅延量に基づいて、設定する。例えば、周波数分離部111は、上記遅延量が5ms程度であった場合、その10倍である50ms程度を境にして低周波域と高周波域を設定する。後述する周波数分離部122についても同様である。
【0025】
トルク指令値変換部112は、周波数分離部111により得られた力の指令値の高周波成分を、ロボット2が有する関節毎のトルクの指令値の高周波成分に変換する。トルク指令値変換部112は、係数乗算部1121を有している。係数乗算部1121は、力の指令値の高周波成分に対してヤコビ行列の転置行列を乗算する。力の指令値の高周波成分は直交座標系で表されており、トルク指令値変換部112は、力の指令値の高周波成分を関節座標系で表されたトルクの指令値の高周波成分に変換する。図2において、Jはヤコビ行列を表し、τrはトルクの指令値を表している。
【0026】
力演算部113は、ロボット2が有する関節毎のトルクの現在値の低周波成分を、力の現在値の低周波成分に変換する。力演算部113は、係数乗算部1131を有している。係数乗算部1131は、トルクの現在値の低周波成分に対してヤコビ行列の転置の逆行列を乗算する。トルクの現在値の低周波成分は関節座標系で表された値であるが、力制御部114では直交座標系で表された力の指令値が必要であるため、力演算部113によって変換する。なお、ロボット2が有する関節毎のトルクの現在値の低周波成分は、周波数分離部122により得られる。
【0027】
力制御部114は、周波数分離部111により得られた力の指令値の低周波成分及び力演算部113により得られた力の現在値の低周波成分に基づいて、速度の指令値(低周波力制御の指令値)を演算する。この力制御部114は、力制御のうちの低周波域の制御(定常応答の制御)を実行することになる。力制御部114は、減算器1141及び係数乗算部1142を有している。
【0028】
減算器1141は、力の指令値の低周波成分と力の現在値の低周波成分との間の偏差を減算によって求める。
係数乗算部1142は、減算器1141により求められた偏差に対してゲインを乗算することで、速度の指令値を得る。図2において、Gは力の偏差に対するゲインを表している。
【0029】
位置姿勢演算部115は、ロボット2が有する関節毎の角度の現在値に基づいて、ロボット2の位置姿勢の現在値を演算する。ロボット2が有する関節毎の角度は関節座標系で表されており、位置姿勢演算部115は、関節毎の角度を直交座標系で表された位置姿勢に変換する。なお、ロボット2が有する関節毎の角度の現在値は、当該関節毎に設けられたエンコーダ24により検出される。図2において、θは角度の現在値を表し、Xは位置姿勢の現在値を表している。
【0030】
位置姿勢制御部116は、位置姿勢の指令値及び位置姿勢演算部115により演算された位置姿勢の現在値に基づいて、速度の指令値(位置姿勢制御の指令値)を演算する。位置姿勢制御部116は、偏差演算器1161及び係数乗算部1162を有している。
【0031】
偏差演算器1161は、位置姿勢の指令値と位置姿勢の現在値との間の偏差を演算によって求める。
係数乗算部1162は、偏差演算器1161による演算結果の偏差に対してゲインを乗算することで、速度の指令値を得る。図2において、Xrは位置姿勢の指令値を表し、Gはゲインを表している。
【0032】
指令値合成部117は、力制御部114により演算された速度の指令値と位置姿勢制御部116により演算された速度の指令値とを加算することで合成し、1つの速度の指令値を得る。指令値合成部117は、加算器1171を有する。加算器1171は、力制御部114により演算された速度の指令値と位置姿勢制御部116により演算された速度の指令値とを加算する。
【0033】
指令値変換部118は、指令値合成部117により得られた速度の指令値を、ロボット2が有する関節毎の角速度の指令値に変換する。指令値変換部118は、係数乗算部1181を有している。係数乗算部1181は、指令値合成部117により得られた速度の指令値に対してヤコビ行列の逆行列を乗算する。すなわち、指令値変換部118は、直交座標系で表された指令値を関節座標系で表された指令値に変換する。図2において、θ(ドット)rは角速度の指令値を表している。
【0034】
関節制御部12は、メイン制御部11からの指令に応じ、対応する関節に設けられたモータ21を制御する。具体的には、関節制御部12は、対応する関節でのトルクの現在値並びにメイン制御部11により演算されたトルクの指令値の高周波成分及び制御指令値に基づいて、対応する関節に設けられたモータ21に対する指令値を演算する。図1,2では、上記制御指令値は角速度の指令値である。関節制御部12は、図1に示すように、トルク取得部121、周波数分離部(第2周波数分離部)122、トルク制御部123及びモータ制御部124を備えている。モータ制御部124は、関節角制御部125及び指令値合成部126を有している。
【0035】
トルク取得部121は、対応する関節でのトルクの現在値を取得する。ロボット2が有する関節毎のトルクの現在値は、当該関節毎に設けられたトルクセンサ23により検出される。
【0036】
周波数分離部122は、トルク取得部121により取得されたトルクの現在値を低周波成分及び高周波成分に分離する。
【0037】
トルク制御部123は、周波数分離部122により得られたトルクの現在値の高周波成分及びメイン制御部11により演算されたトルクの指令値の高周波成分に基づいて、トルク制御の指令値を演算する。このトルク制御部123は、力制御のうちの高周波域の制御(過渡応答の制御)を実行することになる。トルク制御部123は、減算器1231及びPI制御部1232を有している。
【0038】
減算器1231は、メイン制御部11により演算されたトルクの指令値の高周波成分から、周波数分離部122により得られたトルクの現在値の高周波成分を減算する。
PI制御部1232は、減算器1231による減算結果に基づいてPI制御を行うことで、トルク制御の指令値を得る。
【0039】
関節角制御部125は、メイン制御部11により演算された角速度の指令値に基づいて、角速度制御の指令値を演算する。関節角制御部125は、速度変換部1251及び速度制御部1252を有している。速度制御部1252は、減算器1253及びPI制御部1254を有している。
【0040】
速度変換部1251は、対応する関節での角度の現在値を角速度の現在値に変換する。
【0041】
減算器1253は、メイン制御部11により演算された角速度の指令値から、速度変換部1251により得られた角速度の現在値を減算する。
PI制御部1254は、減算器1253による減算結果に基づいてPI制御を行うことで、角速度制御の指令値を得る。
【0042】
指令値合成部126は、トルク制御部123により演算されたトルク制御の指令値及び関節角制御部125により演算された角速度制御の指令値を合成する。図2では、指令値合成部126は、加算器1261を有する。加算器1261は、トルク制御部123により演算されたトルク制御の指令値と関節角制御部125により演算された角速度制御の指令値とを加算する。この指令値合成部126による合成結果である指令値(電流指令値)は、モータ21に出力される。
【0043】
次に、周波数分離部111の構成例について、図3を参照しながら説明する。図3では周波数分離部111の構成例を示しているが、周波数分離部122についても同様である。
図3Aに示す周波数分離部111は、ローパスフィルタ1111及びハイパスフィルタ1112を有している。
ローパスフィルタ1111は、外部から入力された信号の低周波成分のみを通す。
ハイパスフィルタ1112は、外部から入力された信号の高周波成分のみを通す。
なお、ローパスフィルタ1111とハイパスフィルタ1112は、カットオフ周波数が同一(略同一の意味を含む)であることが望ましい。
【0044】
図3Bに示す周波数分離部111は、ローパスフィルタ1113及び減算器1114を有している。
ローパスフィルタ1113は、外部から入力された信号の低周波成分のみを通す。
減算器1114は、外部から入力された信号からローパスフィルタ1113を通過した信号を減算する。減算器1114により得られる信号は、外部から入力された信号の高周波成分である。
【0045】
なお図3では、周波数分離部111がローパスフィルタ1113を有する場合を示した。しかしながら、これに限らず、周波数分離部111は、ローパスフィルタ1113の代わりに、重み付き移動平均等のように平滑化効果のある他の信号処理手法を用いた構成を有していてもよい。
【0046】
次に、図1,2に示す実施の形態1に係るロボット制御装置1の動作例について、図4を参照しながら説明する。
図1,2に示す実施の形態1に係るロボット制御装置1の動作例では、図4に示すように、まず、メイン制御部11は、ロボット2の力の指令値及び位置姿勢の指令値並びにロボット2が有する関節毎の角度の現在値及びトルクの現在値の低周波成分に基づいて、当該関節毎のトルクの指令値の高周波成分及び角速度の指令値を演算する(ステップST401)。
【0047】
次いで、関節制御部12は、対応する関節でのトルクの現在値並びにメイン制御部11により演算されたトルクの指令値の高周波成分及び角速度の指令値に基づいて、対応する関節に設けられたモータ21に対する指令値を演算する(ステップST402)。
【0048】
次に、図1,2に示すメイン制御部11の動作例について、図5を参照しながら説明する。
図1,2に示すメイン制御部11の動作例では、図5に示すように、まず、周波数分離部111は、力の指令値を低周波成分及び高周波成分に分離する(ステップST501)。
【0049】
次いで、トルク指令値変換部112は、周波数分離部111により得られた力の指令値の高周波成分を、ロボット2が有する関節毎のトルクの指令値の高周波成分に変換する(ステップST502)。図1,2では、係数乗算部1121が、力の指令値の高周波成分に対してヤコビ行列の転置行列を乗算する。なお、ヤコビ行列はロボット2の関節の角度によって変わるので、適宜更新する必要がある。
【0050】
また、力演算部113は、ロボット2が有する関節毎のトルクの現在値の低周波成分を、力の現在値の低周波成分に変換する(ステップST503)。図1,2では、係数乗算部1131が、トルクの現在値の低周波成分に対してヤコビ行列の転置の逆行列を乗算する。なお、トルク取得部121が取得するトルクの現在値は通常、重力に起因するトルク成分を含むので、トルクから力へ変換する前に、トルクの現在値の低周波成分からこの重力起因トルク成分の推定値を減算して除去すると良い。
【0051】
次いで、力制御部114は、周波数分離部111により得られた力の指令値の低周波成分及び力演算部113により得られた力の現在値の低周波成分に基づいて、速度の指令値(低周波力制御の指令値)を演算する(ステップST504)。図1,2では、減算器1141が、力の指令値の低周波成分と力の現在値の低周波成分との間の偏差を減算によって求め、係数乗算部1142が、減算器1141により求められた偏差に対してゲインを乗算することで、速度の指令値を得る。
【0052】
また、位置姿勢演算部115は、ロボット2が有する関節毎の角度の現在値に基づいて、ロボット2の位置姿勢の現在値を演算する(ステップST505)。
【0053】
次いで、位置姿勢制御部116は、位置姿勢の指令値及び位置姿勢演算部115により演算された位置姿勢の現在値に基づいて、速度の指令値(位置姿勢制御の指令値)を演算する(ステップST506)。図1,2では、偏差演算器1161が、位置姿勢の指令値と位置姿勢の現在値との間の偏差を演算し、係数乗算部1162が、偏差演算器1161による演算結果の偏差に対してゲインを乗算することで、速度の指令値を得る。なお、位置の偏差は、指令値の座標値から現在値の座標値を減算することで得られる。姿勢の偏差は、現在値の姿勢から指令値の姿勢への回転変換を求めることで得ることができる。
【0054】
次いで、指令値合成部117は、力制御部114により演算された速度の指令値と位置姿勢制御部116により演算された速度の指令値とを加算することで合成し、1つの速度の指令値を得る(ステップST507)。
【0055】
次いで、指令値変換部118は、指令値合成部117により得られた速度の指令値を、ロボット2が有する関節毎の角速度の指令値に変換する(ステップST508)。図1,2では、係数乗算部1181が、指令値合成部117により得られた速度の指令値に対してヤコビ行列の逆行列を乗算することで、関節毎の角速度の指令値を得る。
【0056】
次に、図1,2に示す関節制御部12の動作例について、図6を参照しながら説明する。
図1,2に示す関節制御部12の動作例では、図6に示すように、まず、トルク取得部121は、対応する関節でのトルクの現在値を取得する(ステップST601)。
【0057】
次いで、周波数分離部122は、トルク取得部121により取得されたトルクの現在値を低周波成分及び高周波成分に分離する(ステップST602)。
【0058】
次いで、トルク制御部123は、周波数分離部122により得られたトルクの現在値の高周波成分及びメイン制御部11により演算されたトルクの指令値の高周波成分に基づいて、トルク制御の指令値を演算する(ステップST603)。図1,2では、減算器1231が、メイン制御部11により演算されたトルクの指令値の高周波成分から周波数分離部122により得られたトルクの現在値の高周波成分を減算し、PI制御部1232が、減算器1231による減算結果に基づいてPI制御を行うことで、トルク制御の指令値を得る。
【0059】
また、関節角制御部125は、メイン制御部11により演算された角速度の指令値に基づいて、角速度制御の指令値を演算する(ステップST604)。図1,2では、速度変換部1251が、対応する関節での角度の現在値を角速度の現在値に変換し、減算器1253が、メイン制御部11により演算された角速度の指令値から速度変換部1251により得られた角速度の現在値を減算し、PI制御部1254が、減算器1253による減算結果に基づいてPI制御を行うことで、角速度制御の指令値を得る。
【0060】
次いで、指令値合成部126は、トルク制御部123により演算されたトルク制御の指令値及び関節角制御部125により演算された角速度制御の指令値を合成する(ステップST605)。図1,2では、加算器1261が、トルク制御部123により演算されたトルク制御の指令値と関節角制御部125により演算された角速度制御の指令値とを加算する。この指令値合成部126による合成結果である指令値(電流指令値)は、モータ21に出力される。
【0061】
次に、実施の形態1に係るロボット制御装置1による力制御について説明する。
図7は、実施の形態1に係るロボット制御装置1による低周波力制御と高周波トルク制御の一例を示す図である。図7において、太線実線矢印は力又はトルクの低周波成分の流れを示し、細線実線矢印は力又はトルクの高周波成分の流れを示している。また、太線実線矢印と細線実線矢印とが並列している箇所は、力又はトルクが周波数で分離されていない箇所を示している。また、破線矢印は位置姿勢制御のみに関連する箇所を示している。
【0062】
図7において、低周波成分に関しては、力制御部114で、力の現在値の低周波成分が力の指令値の低周波成分に一致するように制御される。力の現在値の低周波成分は、トルクの現在値が周波数分離部122で周波数分離されたものが力演算部113で力に変換されることで得られる。また、力の指令値の低周波成分は、力の指令値が周波数分離部111で周波数分離されることで得られる。そして、力制御部114で生成した指令値は、指令値合成部117、指令値変換部118、速度制御部1252及び指令値合成部126を経て、モータ21を駆動する。このようにして、実施の形態1に係るロボット制御装置1では、力の低周波成分が制御され、定常応答が制御される。
【0063】
また、図7において、高周波成分に関しては、トルク制御部123で、トルクの現在値の高周波成分がトルクの指令値の高周波成分に一致するように制御される。トルクの現在値の高周波成分は、トルクの現在値が周波数分離部122で周波数分離されることで得られる。トルクの指令値の高周波成分は、力の指令値が周波数分離部111で周波数分離されたものがトルク指令値変換部112で変換されることで得られる。トルク制御部123が生成した指令値は、指令値合成部126を経て、モータ21を駆動する。このようにして、実施の形態1に係るロボット制御装置1では、力の高周波成分が制御され、過渡応答が制御される。
【0064】
そして、実施の形態1に係るロボット制御装置1では、上記の2つの制御が指令値合成部126で合成されることで、全体として力の指令値に力の現在値が一致するように制御される。
【0065】
次に、実施の形態1に係るロボット制御装置1による効果について説明する。
上述したように、従来のロボット制御装置1bでは、メイン制御部11bでフィードバック系を構成している。すなわち、このロボット制御装置1bでは、ロボット2から物理的にも通信的にも距離のある構成要素でフィードバック制御演算を行うことになる。よって、トルクセンサ23によるトルクの検出からモータ21への指令値の入力までの遅延が長くなる。その結果、このロボット制御装置1bでは、不可避的にむだ時間が入り込む余地が多くなり、安定性を維持できるハイゲイン化を抑制する要因になる。また、むだ時間自体も、リード補償等でキャンセルできる要素ではないため、応答時間への悪影響は避けられない。
【0066】
これに対し、実施の形態1に係るロボット制御装置1では、力制御の実行を過渡応答の制御(高周波域)と定常応答の制御(低周波域)に分割し、過渡応答の制御については、関節制御部12に近い側に配設可能なトルクセンサ23の値を制御することで実現し、下位コントローラ(図中の関節制御部12)側で制御の主要な演算を実行する。これにより、実施の形態1に係るロボット制御装置1では、むだ時間が入り込む余地を削減して速応性を高められる。すなわち、実施の形態1に係るロボット制御装置1では、安定性を維持できるコントローラのハイゲイン化に相当する調整(関節単位の1変数制御のゲイン調整)も可能になる。
一方で、実施の形態1に係るロボット制御装置1では、定常応答の制御は従来同様に上位コントローラ(メイン制御部11)で、複数の関節を連携して制御する。これにより、実施の形態1に係るロボット制御装置1では、定常偏差のような定常的な制御特性は従来と同様になる。すなわち、関節制御部12は関節単位の制御であり、定常的な制御偏差が発生する場合がある。例えば、Z軸方向に力制御を行っている際にX軸方向の外力が外乱として加わると、Z軸方向の力の現在値と目標値との間に偏差が生じるといったことが起こる。このような外乱は関節単位の制御では抑制できないため、制御偏差が生じる。これに対し、実施の形態1に係るロボット制御装置1では、定常応答の制御をメイン制御部11で行っており、上記課題を解決できる。そして、速応性に影響するのは主に過渡応答の制御(高周波域)なので、従来技術が持っていた速応性の改善が難しいという課題も解決できる。
【0067】
なお上記では、周波数分離部111は力の指令値を周波数分離し、周波数分離部122はトルクの現在値を周波数分離する場合を示した。一方、例えばトルク指令値変換部112及び力演算部113のように、トルクと力は相互に変換が可能である。そのため、周波数分離部111は、力の指令値をトルクの指令値に変換した後に、周波数分離を行ってもよい。同様に、周波数分離部122は、トルクの現在値を力の現在値に変換した後に、周波数分離を行ってもよい。別言すれば、力とトルクの相互変換と、周波数分離部111,122による演算を入替えたとしても、周波数分離部111が力の指令値を周波数分離したり、周波数分離部122がトルクの現在値を周波数分離したりするのと同等となる。また、周波数分離部111にトルクの指令値が入力されてもよいし、周波数分離部122に力の現在値が入力されてもよい。
【0068】
また、力の指令値とトルクの現在値を別々に周波数分離する代わりに、力の指令値からトルクの現在値を差し引いた偏差を周波数分離してもよい。これは、周波数分離部111と周波数分離部122を1つに統合したものと解釈でき、同等となる。
【0069】
また上記では、周波数分離部111がメイン制御部11の内部に設けられた場合を示した。しかしながら、これに限らず、周波数分離部111がメイン制御部11の外部に設けられていてもよい。
また上記では、周波数分離部122が関節制御部12の内部に設けられた場合を示した。しかしながら、これに限らず、周波数分離部122が関節制御部12の外部に設けられていてもよい。
図8では、周波数分離部111及び周波数分離部122が、メイン制御部11及び関節制御部12の外部に設けられた場合を示している。
【0070】
以上のように、この実施の形態1によれば、ロボット制御装置1は、ロボット2の力の指令値又は当該ロボット2が有する関節毎のトルクの指令値を低周波成分及び高周波成分に分離する周波数分離部111と、ロボット2の力の現在値又は当該ロボット2が有する関節毎のトルクの現在値を低周波成分及び高周波成分に分離する周波数分離部122と、周波数分離部111により得られた高周波成分に基づいてロボット2が有する関節毎のトルクの指令値の高周波成分を演算し、周波数分離部111により得られた低周波成分及び周波数分離部122により得られた低周波成分に基づいて力制御の指令値を演算し、当該力制御の指令値に基づいてロボット2が有する関節毎の制御指令値を演算するメイン制御部11と、ロボット2が有する関節毎に設けられ、周波数分離部122により得られた高周波成分及びメイン制御部11により演算されたトルクの指令値の高周波成分に基づいてトルク制御の指令値を演算し、当該トルク制御の指令値及び当該メイン制御部11により演算された制御指令値に基づいて対応する関節に設けられたモータ21に対する指令値を演算する関節制御部12とを備え、周波数分離部111及び周波数分離部122は、メイン制御部11及び関節制御部12の外部又は内部に設けられた。これにより、実施の形態1に係るロボット制御装置1は、従来構成に対して力制御の性能を向上可能となる。また、実施の形態1に係るロボット制御装置1は、制御偏差を抑制可能となる。
【0071】
実施の形態2.
実施の形態1では、関節制御部12において、メイン制御部11で演算された角速度の指令値を用いて角速度制御の指令値を演算し、その後、トルク制御の指令値及び角速度制御の指令値を合成する場合を示した。しかしながら、これに限らず、関節制御部12において、トルク制御の指令値及びメイン制御部11で演算された角速度の指令値を合成した後、その合成結果を用いて角速度制御の指令値を演算してもよい。
図9,10は実施の形態2に係るロボット制御装置1の構成例を示す図である。図9,10に示す実施の形態2に係るロボット制御装置1は、図1,2に示す実施の形態1に係るロボット制御装置1に対し、関節角制御部125及び指令値合成部126を指令値合成部127及び関節角制御部128に変更している。その他の構成は同様であり、同一の符号を付してその説明を省略する。
【0072】
指令値合成部127は、メイン制御部11により演算された角速度の指令値及びトルク制御部123により演算されたトルク制御の指令値を合成する。図10では、指令値合成部127は、加算器1271を有する。加算器1271は、メイン制御部11により演算された角速度の指令値とトルク制御部123により演算されたトルク制御の指令値とを加算する。
【0073】
関節角制御部128は、指令値合成部127による合成結果に基づいて、角速度制御の指令値を演算する。関節角制御部128は、速度変換部1281及び速度制御部1282を有している。速度制御部1282は、減算器1283及びPI制御部1284を有している。
【0074】
速度変換部1281は、対応する関節での角度の現在値を角速度の現在値に変換する。
【0075】
減算器1283は、指令値合成部127による合成結果から、速度変換部1281により得られた角速度の現在値を減算する。
PI制御部1284は、減算器1283による減算結果に基づいてPI制御を行うことで、角速度制御の指令値を得る。
この関節角制御部128により演算された角速度制御の指令値(電流指令値)は、対応する関節に設けられたモータ21に出力される。
【0076】
このように、実施の形態2に係るロボット制御装置1では、角速度の指令値及びトルク制御の指令値を合成し、その合成結果に基づいて角速度制御を実施する。この実施の形態2に係るロボット制御装置1についても、実施の形態1に係るロボット制御装置1と同様の効果が得られる。また、実施の形態2に係るロボット制御装置1は、従来のコンプライアンス制御に近い対応関係となる。
【0077】
実施の形態3.
図1,2に示す実施の形態1に係るロボット制御装置1では、周波数分離部122が関節制御部12に設けられた場合を示した。しかしながら、これに限らず、周波数分離部122は、メイン制御部11と関節制御部12とに分割されて設けられていてもよい。
図11は実施の形態3に係るロボット制御装置1の構成例を示す図である。図11に示す実施の形態3に係るロボット制御装置1は、図1,2に示す実施の形態1に係るロボット制御装置1に対し、周波数分離部122をローパスフィルタ119、加算部120及び減算部129に変更している。ローパスフィルタ119、加算部120及び減算部129は、ロボット2が有する関節毎に設けられている。図11,12に示すように、ローパスフィルタ119、加算部120及び減算部129は、周波数分離部(第2周波数分離部)13を構成する。その他の構成は同様であり、同一の符号を付してその説明を省略する。なお、図12において、(低)は低周波成分を示し、(高)は高周波成分を示し、(低+高)は両方の成分、すなわち元の信号であることを示している。
【0078】
ローパスフィルタ119は、メイン制御部11に設けられ、トルク取得部121により取得されたトルクの現在値の低周波成分のみを通す。
加算部120は、メイン制御部11に設けられ、ローパスフィルタ119を通過したトルクの現在値の低周波成分と、トルク指令値変換部112により得られたトルクの指令値の高周波成分とを加算する。
【0079】
減算部129は、関節制御部12に設けられ、加算部120による加算結果から、トルク取得部121により取得されたトルクの現在値を減算する。減算部129による出力は、トルクの指令値の高周波成分からトルクの現在値の高周波成分を減算した値となる。
【0080】
なお、実施の形態3に係るロボット制御装置1による位置姿勢の制御は、実施の形態1に係るロボット制御装置1による位置姿勢の制御と同様である。実施の形態3に係るロボット制御装置1による力制御(低周波制御)は、周波数分離部13で得られたトルクの現在値の低周波成分を力演算部113で力の現在値の低周波成分に変換したものを用いて行っており、実施の形態1に係るロボット制御装置1による力制御と実質的に同一である。一方、実施の形態3に係るロボット制御装置1によるトルク制御(高周波制御)は、実施の形態1に係るロボット制御装置1によるトルク制御とは異なる。以下では、このトルク制御に関する部分についてのみ説明を行う。
【0081】
実施の形態3に係るロボット制御装置1では、トルク取得部121により取得されたトルクの現在値は関節制御部12で分岐された後、一方はメイン制御部11へと出力される。メイン制御部11へと出力されたトルクの現在値は、ローパスフィルタ119に入力され、トルクの現在値の低周波成分が得られる。この信号は、力演算部113と加算部120に出力される。加算部120は、トルク指令値変換部112により得られたトルクの指令値の高周波成分とトルクの現在値の低周波成分を加算して、関節制御部12へと出力する。関節制御部12へと出力された上記加算値は、減算部129に入力され、トルクの現在値が減算される。その結果、メイン制御部11からのトルクの現在値の低周波成分と、トルク取得部121により取得されたトルクの現在値の低周波成分とが相殺されるため、トルクの現在値の高周波成分が残る。このトルクの現在値の高周波成分は、トルクの指令値の高周波成分から減算され、周波数分離部13からはトルクの偏差(指令値と現在値との差)の高周波成分が出力される。このトルクの偏差の高周波成分は、トルク制御部123に出力される。以降は、実施の形態1と同様である。
【0082】
この実施の形態3に係るロボット制御装置1では、関節制御部12内にフィルタ処理等を行う構成が存在しないため、トルク制御機能を有する関節制御部12であれば変更なくそのまま利用できるという利点がある。
【0083】
なお、減算部129が加算部120から得るトルクの現在値の低周波成分は、周波数分離部13に入力されたトルクの現在値から見ると2回の通信を経て得られる値であるため、遅延が存在する。よって、厳密には、低周波成分が完全に相殺されるわけではない。しかしながら、低周波成分は元々変化がゆっくりであり、遅延がローパスフィルタ119の時定数と比較して十分に小さければ遅延の影響は小さくなる。
【0084】
また図11,12では、ローパスフィルタ119を用いた場合を示している。しかしながら、これに限らず、カルマンフィルタ又はオブザーバを用いてトルクの現在値の低周波成分を推定してもよい。
【0085】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組合わせ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。例えば、実施の形態1-3では、メイン制御部が角速度の指令値を演算し、関節角制御部が速度制御を行う例を用いて説明したが、メイン制御部が加速度又は電流等の他の物理量の指令値を演算し、関節角制御部がそれらの物理量の制御を行うことで位置姿勢と力の制御を行うことも可能である。
【符号の説明】
【0086】
1 ロボット制御装置
2 ロボット
11 メイン制御部
12 関節制御部
13 周波数分離部(第2周波数分離部)
21 モータ
22 センサ
23 トルクセンサ
24 エンコーダ
111 周波数分離部(第1周波数分離部)
112 トルク指令値変換部
113 力演算部
114 力制御部
115 位置姿勢演算部
116 位置姿勢制御部
117 指令値合成部
118 指令値変換部
119 ローパスフィルタ
120 加算部
121 トルク取得部
122 周波数分離部(第2周波数分離部)
123 トルク制御部
124 モータ制御部
125 関節角制御部
126 指令値合成部
127 指令値合成部
128 関節角制御部
129 減算部
1111 ローパスフィルタ
1112 ハイパスフィルタ
1113 ローパスフィルタ
1114 減算器
1121 係数乗算部
1131 係数乗算部
1141 減算器
1142 係数乗算部
1161 偏差演算器
1162 係数乗算部
1171 加算器
1181 係数乗算部
1231 減算器
1232 PI制御部
1251 速度変換部
1252 速度制御部
1253 減算器
1254 PI制御部
1261 加算器
1271 加算器
1281 速度変換部
1282 速度制御部
1283 減算器
1284 PI制御部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15