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

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

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

<>
  • 特許-ロボット制御装置及びロボット制御方法 図1
  • 特許-ロボット制御装置及びロボット制御方法 図2
  • 特許-ロボット制御装置及びロボット制御方法 図3
  • 特許-ロボット制御装置及びロボット制御方法 図4
  • 特許-ロボット制御装置及びロボット制御方法 図5
  • 特許-ロボット制御装置及びロボット制御方法 図6
  • 特許-ロボット制御装置及びロボット制御方法 図7
  • 特許-ロボット制御装置及びロボット制御方法 図8
  • 特許-ロボット制御装置及びロボット制御方法 図9
  • 特許-ロボット制御装置及びロボット制御方法 図10
  • 特許-ロボット制御装置及びロボット制御方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-22
(45)【発行日】2023-06-30
(54)【発明の名称】ロボット制御装置及びロボット制御方法
(51)【国際特許分類】
   B25J 9/10 20060101AFI20230623BHJP
   B25J 13/08 20060101ALI20230623BHJP
【FI】
B25J9/10 A
B25J13/08 Z
【請求項の数】 4
(21)【出願番号】P 2019043626
(22)【出願日】2019-03-11
(65)【公開番号】P2020146765
(43)【公開日】2020-09-17
【審査請求日】2021-12-23
(73)【特許権者】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】110003166
【氏名又は名称】弁理士法人山王内外特許事務所
(74)【代理人】
【識別番号】100101133
【弁理士】
【氏名又は名称】濱田 初音
(74)【代理人】
【識別番号】100199749
【弁理士】
【氏名又は名称】中島 成
(74)【代理人】
【識別番号】100197767
【弁理士】
【氏名又は名称】辻岡 将昭
(74)【代理人】
【識別番号】100201743
【弁理士】
【氏名又は名称】井上 和真
(72)【発明者】
【氏名】田原 鉄也
【審査官】松浦 陽
(56)【参考文献】
【文献】特開平08-118275(JP,A)
【文献】特開2016-168650(JP,A)
【文献】特開平09-044253(JP,A)
【文献】特開平03-214303(JP,A)
【文献】特開平10-230493(JP,A)
【文献】特開平06-023682(JP,A)
【文献】特開2017-158417(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
力の指令値及び位置姿勢の指令値並びにロボットが複数有する関節毎の角度の現在値に基づいて、当該関節毎のトルクの指令値及び位置姿勢制御の指令値を演算するメイン制御部と、
前記ロボットが複数有する関節毎に設けられ、関節毎のトルクの現在値を検知可能な手段から取得された対応する関節でのトルクの現在値並びに前記メイン制御部により演算されたトルクの指令値及び位置姿勢制御の指令値に基づいて、対応する関節に設けられたモータに対する指令値を演算する関節制御部とを備え、
前記メイン制御部は、
力の指令値を、ロボットが複数有する関節毎のトルクの指令値に変換するトルク指令値変換部を有し、
前記関節制御部は、
対応する関節でのトルクの現在値及び前記メイン制御部により演算されたトルクの指令値に基づいて、トルク制御の指令値を演算するトルク制御部と、
前記トルク制御部により演算されたトルク制御の指令値と、前記メイン制御部により演算された位置姿勢制御の指令値又は前記メイン制御部により演算された位置姿勢制御の指令値に基づいて速度、加速度、電流又はトルクの制御の指令値を演算する関節角制御部により演算された制御の指令値とを合成する指令値合成部とを有する
ことを特徴とするロボット制御装置。
【請求項2】
前記指令値合成部は、前記メイン制御部により演算された位置姿勢制御の指令値及び前記トルク制御部により演算されたトルク制御の指令値を合成することで、前記モータに対する指令値を得る
ことを特徴とする請求項1記載のロボット制御装置。
【請求項3】
前記関節制御部は、前記関節角制御部を有し、
前記関節制御部は、前記メイン制御部により演算された位置姿勢制御の指令値に基づいて、角速度制御の指令値を演算し、
前記指令値合成部は、前記トルク制御部により演算されたトルク制御の指令値及び前記関節角制御部により演算された角速度制御の指令値を合成することで、前記モータに対する指令値を得る
ことを特徴とする請求項1記載のロボット制御装置。
【請求項4】
メイン制御部と、ロボットが複数有する関節毎に設けられた関節制御部とを備えたロボット制御装置によるロボット制御方法であって、
前記メイン制御部は、力の指令値及び位置姿勢の指令値並びにロボットが複数有する関節毎の角度の現在値に基づいて、当該関節毎のトルクの指令値及び位置姿勢制御の指令値を演算し、
前記関節制御部は、関節毎のトルクの現在値を検知可能な手段から取得された対応する関節でのトルクの現在値並びに前記メイン制御部により演算されたトルクの指令値及び位置姿勢制御の指令値に基づいて、対応する関節に設けられたモータに対する指令値を演算し、
前記メイン制御部は、
力の指令値を、ロボットが複数有する関節毎のトルクの指令値に変換するトルク指令値変換部を有し、
前記関節制御部は、
対応する関節でのトルクの現在値及び前記メイン制御部により演算されたトルクの指令値に基づいて、トルク制御の指令値を演算するトルク制御部と、
前記トルク制御部により演算されたトルク制御の指令値と、前記メイン制御部により演算された位置姿勢制御の指令値又は前記メイン制御部により演算された位置姿勢制御の指令値に基づいて速度、加速度、電流又はトルクの制御の指令値を演算する関節角制御部により演算された制御の指令値とを合成する指令値合成部とを有する
ことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ロボットの位置姿勢と力を同時に制御可能なロボット制御装置及びロボット制御方法に関する。
【背景技術】
【0002】
垂直多関節ロボット等のロボット(ロボットアーム)では、位置姿勢と力を同時(並列)に制御対象とするロボット制御装置が用いられている(例えば特許文献1参照)。なお、位置姿勢は、ロボットの位置及び姿勢のうちの少なくとも一方を表す。図9図11に、ロボット制御装置1bの一例を示す。
【0003】
図9に示すロボット制御装置1bは、メイン制御部(上位コントローラ)11b、及び複数の関節制御部(下位コントローラ)12bを備えている。関節制御部12bは、ロボット2が有する関節毎に設けられている。なお、メイン制御部11bと各関節制御部12bとの間は通信線により接続されている。
【0004】
また、図9に示すように、ロボット2は、関節毎に、モータ21及びセンサ22(トルクセンサ23及びエンコーダ24)を有している。モータ21及びセンサ22はそれぞれ、対応する関節制御部12bに対して電力線等により接続されている。トルクセンサ23は、対応する関節でのトルクの現在値を検出する。エンコーダ24は、対応する関節の角度の現在値を検出する。なお図10では、モータ21、トルクセンサ23及びエンコーダ24を一組のみ示している。
【0005】
メイン制御部11bは、各関節制御部12bに指令値を出力することで、ロボット2全体を制御する。具体的には、メイン制御部11bは、力の指令値及び位置姿勢の指令値並びにロボット2が有する関節毎のトルクの現在値及び角度の現在値に基づいて、当該関節毎の速度の指令値を演算する。メイン制御部11bは、図10及び図11に示すように、力演算部111b、力制御部112b、位置姿勢演算部113b、位置姿勢制御部114b、指令値合成部115b及び指令値変換部116bを備えている。
【0006】
力演算部111bは、ロボット2が有する関節毎のトルクの現在値に基づいて、ロボット2の力の現在値を演算する。ロボット2が有する関節毎のトルクは関節座標系で表されており、力演算部111bは、関節毎のトルクを直交座標系で表された力に変換する。図11において、τはトルクの現在値を表し、Fは力の現在値を表している。
【0007】
力制御部112bは、力の指令値及び力演算部111bにより演算された力の現在値に基づいて、力制御の指令値を演算する。この力制御部112bでは、偏差演算器1121bで力の指令値と力の現在値との間の偏差を求め、係数乗算部1122bで偏差演算器1121bによる演算結果の偏差に対してゲインを乗算することで、力制御の指令値を得る。図11において、Frは力の指令値を表し、Gはゲインを表している。
【0008】
位置姿勢演算部113bは、ロボット2が有する関節毎の角度の現在値に基づいて、ロボット2の位置姿勢の現在値を演算する。ロボット2が有する関節毎の角度の現在値は関節座標系で表されており、位置姿勢演算部113bは、関節毎の角度の現在値を直交座標系で表された位置姿勢の現在値に変換する。図11において、θは角度の現在値を表し、Xは位置姿勢の現在値を表している。
【0009】
位置姿勢制御部114bは、位置姿勢の指令値及び位置姿勢演算部113bにより演算された位置姿勢の現在値に基づいて、位置姿勢制御の指令値を演算する。この位置姿勢制御部114bでは、偏差演算器1141bで位置姿勢の指令値と位置姿勢の現在値との間の偏差を求め、係数乗算部1142bで偏差演算器1141bによる演算結果に対してゲインを乗算することで、位置姿勢制御の指令値を得る。図11において、Xrは位置姿勢の指令値を表し、Gはゲインを表している。
【0010】
指令値合成部115bは、力制御部112bにより演算された力制御の指令値及び位置姿勢制御部114bにより演算された位置姿勢制御の指令値を合成する。この指令値合成部115bでは、加算器1151bで力制御の指令値と位置姿勢制御の指令値とを加算する。
【0011】
指令値変換部116bは、指令値合成部115bによる合成結果を、ロボット2が有する関節毎の角速度の指令値に変換する。この指令値変換部116bでは、係数乗算部1161bで上記合成結果に対してヤコビ行列の逆行列を乗算する。すなわち、指令値変換部116bは、直交座標系で表された指令値を関節座標系で表された指令値に変換する。図11において、Jはヤコビ行列を表し、θ(ドット)rは角速度の指令値を表している。
【0012】
関節制御部12bは、メイン制御部11bからの指令に応じ、対応する関節に設けられたモータ21を制御する。関節制御部12bは、図10に示すように、トルク取得部121b及び関節角制御部122bを備えている。
【0013】
トルク取得部121bは、対応する関節でのトルクの現在値を取得する。このトルク取得部121bにより取得されたトルクの現在値を示すデータは、メイン制御部11b(力演算部111b)に出力される。
【0014】
関節角制御部122bは、メイン制御部11bにより演算された角速度の指令値及びロボット2が有する関節毎の角度の現在値に基づいて、対応する関節に設けられたモータ21に対する指令値を演算する。この関節角制御部122bでは、速度変換部1221bで角度の現在値を角速度の現在値に変換し、減算器1223bで角速度の指令値から速度変換部1221bで得られた角速度の現在値を減算し、PI制御部1224bで減算器1223bによる減算結果に基づいてPI制御を行うことで、モータ21に対する指令値を得る。
【0015】
このように、図9図11に示すロボット制御装置1bでは、複数の関節を連携して操作する必要があり、メイン制御部11bで、多関節の自由度(例えば6自由度)に対して位置姿勢と力を同時に制御演算した結果を合成し、当該合成結果を各軸の関節制御部12bへの信号に変換してから出力する。すなわち、このロボット制御装置1bでは、メイン制御部11bでコンプライアンス制御の主要な演算を実行する。そのため、このロボット制御装置1bでは、調整すべきパラメータを合理的に統合できる等のメリットがある。
【先行技術文献】
【特許文献】
【0016】
【文献】特開2016-168650号公報
【発明の概要】
【発明が解決しようとする課題】
【0017】
一般に、産業用ロボット等のロボットでは、力制御によって実現が求められる対象として精密な研磨の倣い動作等があり、整定動作又は追従動作のようなダイナミクスの性能向上が常に求められている。
一方、従来のロボット制御装置では、メイン制御部でフィードバック系を構成している。すなわち、このロボット制御装置では、ロボットから物理的にも通信的にも距離のある構成要素でフィードバック制御演算を行うことになる。よって、トルクセンサによるトルクの検出からモータへの指令値の入力までの遅延が長くなる。その結果、このロボット制御装置では、不可避的にむだ時間が入り込む余地が多くなり、安定性を維持できるハイゲイン化を抑制する要因になる。また、むだ時間自体も、リード補償等でキャンセルできる要素ではないため、応答時間への悪影響は避けられない。
このように、従来のロボット制御装置では、力制御の性能(特に速応性)の向上が難しく、更なる改善が求められている。
【0018】
この発明は、上記のような課題を解決するためになされたもので、従来構成に対して力制御の性能を向上可能なロボット制御装置を提供することを目的としている。
【課題を解決するための手段】
【0019】
この発明に係るロボット制御装置は、力の指令値及び位置姿勢の指令値並びにロボットが複数有する関節毎の角度の現在値に基づいて、当該関節毎のトルクの指令値及び位置姿勢制御の指令値を演算するメイン制御部と、ロボットが複数有する関節毎に設けられ、関節毎のトルクの現在値を検知可能な手段から取得された対応する関節でのトルクの現在値並びにメイン制御部により演算されたトルクの指令値及び位置姿勢制御の指令値に基づいて、対応する関節に設けられたモータに対する指令値を演算する関節制御部とを備え、メイン制御部は、力の指令値を、ロボットが複数有する関節毎のトルクの指令値に変換するトルク指令値変換部を有し、関節制御部は、対応する関節でのトルクの現在値及びメイン制御部により演算されたトルクの指令値に基づいて、トルク制御の指令値を演算するトルク制御部と、トルク制御部により演算されたトルク制御の指令値と、メイン制御部により演算された位置姿勢制御の指令値又はメイン制御部により演算された位置姿勢制御の指令値に基づいて速度、加速度、電流又はトルクの制御の指令値を演算する関節角制御部により演算された制御の指令値とを合成する指令値合成部とを有することを特徴とする。
【発明の効果】
【0020】
この発明によれば、上記のように構成したので、従来構成に対して力制御の性能を向上可能となる。
【図面の簡単な説明】
【0021】
図1】実施の形態1に係るロボット制御装置の構成例を示す図である。
図2】実施の形態1に係るロボット制御装置の構成例を示す図である。
図3】実施の形態1に係るロボット制御装置の動作例を示すフローチャートである。
図4】実施の形態1におけるメイン制御部の動作例を示すフローチャートである。
図5】実施の形態1における関節制御部の動作例を示すフローチャートである。
図6図6A図6Bは、実施の形態1に係るロボット制御装置による効果を説明するための図であり、図6Aは実施の形態1に係るロボット制御装置を用いた場合でのシミュレーション結果の一例を示す図であり、図6Bは従来のロボット制御装置を用いた場合でのシミュレーション結果の一例を示す図である。
図7】実施の形態2に係るロボット制御装置の構成例を示す図である。
図8】実施の形態2に係るロボット制御装置の構成例を示す図である。
図9】従来のロボット制御装置を含むロボットシステムの構成例を示す図である。
図10】従来のロボット制御装置の構成例を示す図である。
図11】従来のロボット制御装置の構成例を示す図である。
【発明を実施するための形態】
【0022】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1,2は実施の形態1に係るロボット制御装置1の構成例を示す図である。なお、ロボット制御装置1とロボット2との関係は、図9と同様であり、その説明を省略する。
ロボット制御装置1は、ロボット2の位置姿勢と力を同時(並列)に制御する。ロボット制御装置1は、図1,2に示すように、メイン制御部(上位コントローラ)11、及び複数の関節制御部(下位コントローラ)12を備えている。関節制御部12は、ロボット2が有する関節毎に設けられている。なお、メイン制御部11と各関節制御部12との間は通信線により接続されている。
【0023】
メイン制御部11は、各関節制御部12に指令値を出力することで、ロボット2全体を制御する。具体的には、メイン制御部11は、力の指令値及び位置姿勢の指令値並びにロボット2が有する関節毎の角度の現在値に基づいて、当該関節毎のトルクの指令値及び位置姿勢制御の指令値を演算する。図1,2では、位置姿勢制御の指令値は速度の指令値である。メイン制御部11は、図1に示すように、トルク指令値変換部111、位置姿勢演算部112、位置姿勢制御部113及び指令値変換部114を備えている。なお、メイン制御部11は、システムLSI(Large Scale Integration)等の処理回路、又はメモリ等に記憶されたプログラムを実行するCPU(Central Processing Unit)等により実現される。
【0024】
トルク指令値変換部111は、力の指令値を、ロボット2が有する関節毎のトルクの指令値に変換する。トルク指令値変換部111は、係数乗算部1111を有している。係数乗算部1111は、力の指令値に対してヤコビ行列の転置行列を乗算する。力の指令値は直交座標系で表されており、トルク指令値変換部111は、力の指令値を関節座標系で表されたトルクの指令値に変換する。図2において、Frは力の指令値を表し、Jはヤコビ行列を表し、τrはトルクの指令値を表している。
【0025】
位置姿勢演算部112は、ロボット2が有する関節毎の角度の現在値に基づいて、ロボット2の位置姿勢の現在値を演算する。ロボット2が有する関節毎の角度は関節座標系で表されており、位置姿勢演算部112は、関節毎の角度を直交座標系で表された位置姿勢に変換する。なおロボット2が有する関節毎の角度の現在値は、当該関節毎に設けられたエンコーダ24により検出される。図2において、θは角度の現在値を表し、Xは位置姿勢の現在値を表している。
【0026】
位置姿勢制御部113は、位置姿勢の指令値及び位置姿勢演算部112により演算された位置姿勢の現在値に基づいて、速度の指令値(位置姿勢制御の指令値)を演算する。位置姿勢制御部113は、偏差演算器1131及び係数乗算部1132を有している。
【0027】
偏差演算器1131は、位置姿勢の指令値と位置姿勢の現在値との間の偏差を演算によって求める。
係数乗算部1132は、偏差演算器1131による演算結果の偏差に対してゲインを乗算することで、速度の指令値を得る。図2において、Xrは位置姿勢の指令値を表し、Gはゲインを表している。
【0028】
指令値変換部114は、位置姿勢制御部113により演算された速度の指令値を、ロボット2が有する関節毎の角速度の指令値に変換する。指令値変換部114は、係数乗算部1141を有している。係数乗算部1141は、位置姿勢制御部113により演算された速度の指令値に対してヤコビ行列の逆行列を乗算する。すなわち、指令値変換部114は、直交座標系で表された指令値を関節座標系で表された指令値に変換する。図2において、θ(ドット)rは角速度の指令値を表している。
【0029】
関節制御部12は、メイン制御部11からの指令に応じ、対応する関節に設けられたモータ21を制御する。具体的には、関節制御部12は、対応する関節でのトルクの現在値並びにメイン制御部11により演算されたトルクの指令値及び角速度の指令値(位置姿勢制御の指令値)に基づいて、対応する関節に設けられたモータ21に対する指令値を演算する。関節制御部12は、図1に示すように、トルク取得部121、トルク制御部122及びモータ制御部123を備えている。モータ制御部123は、関節角制御部124及び指令値合成部125を有している。
【0030】
トルク取得部121は、対応する関節でのトルクの現在値を取得する。ロボット2が有する関節毎のトルクの現在値は、当該関節毎に設けられたトルクセンサ23により検出される。
【0031】
トルク制御部122は、対応する関節でのトルクの現在値及びメイン制御部11により演算されたトルクの指令値に基づいて、トルク制御の指令値を演算する。トルク制御部122は、減算器1221及びPI制御部1222を有している。
【0032】
減算器1221は、メイン制御部11により演算されたトルクの指令値から、トルク取得部121により取得されたトルクの現在値を減算する。
PI制御部1222は、減算器1221による減算結果に基づいてPI制御を行うことで、トルク制御の指令値を得る。
【0033】
関節角制御部124は、メイン制御部11により演算された角速度の指令値に基づいて、角速度制御の指令値を演算する。関節角制御部124は、速度変換部1241及び速度制御部1242を有している。速度制御部1242は、減算器1243及びPI制御部1244を有している。
【0034】
速度変換部1241は、対応する関節での角度の現在値を角速度の現在値に変換する。
【0035】
減算器1243は、メイン制御部11により演算された角速度の指令値から、速度変換部1241により得られた角速度の現在値を減算する。
PI制御部1244は、減算器1243による減算結果に基づいてPI制御を行うことで、角速度制御の指令値を得る。
【0036】
指令値合成部125は、トルク制御部122により演算されたトルク制御の指令値及び関節角制御部124により演算された角速度制御の指令値を合成する。図1では、指令値合成部125は、加算器1251を有する。加算器1251は、トルク制御部122により演算されたトルク制御の指令値と関節角制御部124により演算された角速度制御の指令値とを加算する。この指令値合成部125による合成結果である指令値(電流指令値)は、モータ21に出力される。
【0037】
次に、図1,2に示す実施の形態1に係るロボット制御装置1の動作例について、図3を参照しながら説明する。
図1,2に示す実施の形態1に係るロボット制御装置1の動作例では、図3に示すように、まず、メイン制御部11は、力の指令値及び位置姿勢の指令値並びにロボット2が有する関節毎の角度の現在値に基づいて、当該関節毎のトルクの指令値及び角速度の指令値(位置姿勢制御の指令値)を演算する(ステップST301)。
【0038】
次いで、関節制御部12は、対応する関節でのトルクの現在値並びにメイン制御部11により演算されたトルクの指令値及び角速度の指令値に基づいて、対応する関節に設けられたモータ21に対する指令値を演算する(ステップST302)。
【0039】
次に、図1,2に示すメイン制御部11の動作例について、図4を参照しながら説明する。
図1,2に示すメイン制御部11の動作例では、図4に示すように、まず、トルク指令値変換部111は、力の指令値を、ロボット2が有する関節毎のトルクの指令値に変換する(ステップST401)。図1,2では、係数乗算部1111が、力の指令値に対してヤコビ行列の転置行列を乗算する。なお、ヤコビ行列はロボット2の関節の角度によって変わるので、適宜更新する必要がある。また、トルク取得部121が取得するトルクの現在値は通常、重力に起因するトルク成分を含むので、このトルク成分を相殺するようトルク指令値にこの重力起因トルク成分の推定値を重畳すると良い。
【0040】
また、位置姿勢演算部112は、ロボット2が有する関節毎の角度の現在値に基づいて、ロボット2の位置姿勢の現在値を演算する(ステップST402)。
【0041】
次いで、位置姿勢制御部113は、位置姿勢の指令値及び位置姿勢演算部112により演算された位置姿勢の現在値に基づいて、速度の指令値(位置姿勢制御の指令値)を演算する(ステップST403)。図1,2では、偏差演算器1131が、位置姿勢の指令値と位置姿勢の現在値との間の偏差を演算し、係数乗算部1132が、偏差演算器1131による演算結果の偏差に対してゲインを乗算することで、速度の指令値を得る。なお、位置の偏差は、指令値の座標値から現在値の座標値を減算することで得られる。姿勢の偏差は、現在値の姿勢から指令値の姿勢への回転変換を求めることで得ることができる。
【0042】
次いで、指令値変換部114は、位置姿勢制御部113により演算された速度の指令値を、ロボット2が有する関節毎の角速度の指令値に変換する(ステップST404)。図1,2では、係数乗算部1141が、位置姿勢制御部113により演算された速度の指令値に対してヤコビ行列の逆行列を乗算することで、関節毎の角速度の指令値を得る。
【0043】
次に、図1,2に示す関節制御部12の動作例について、図5を参照しながら説明する。
図1,2に示す関節制御部12の動作例では、図5に示すように、まず、トルク取得部121は、対応する関節でのトルクの現在値を取得する(ステップST501)。
【0044】
次いで、トルク制御部122は、対応する関節でのトルクの現在値及びメイン制御部11により演算されたトルクの指令値に基づいて、トルク制御の指令値を演算する(ステップST502)。図1,2では、減算器1221が、メイン制御部11により演算されたトルクの指令値からトルク取得部121により取得されたトルクの現在値を減算し、PI制御部1222が、減算器1221による減算結果に基づいてPI制御を行うことで、トルク制御の指令値を得る。
【0045】
また、関節角制御部124は、メイン制御部11により演算された角速度の指令値に基づいて、角速度制御の指令値を演算する(ステップST503)。図1,2では、速度変換部1241が、対応する関節での角度の現在値を角速度の現在値に変換し、減算器1243が、メイン制御部11により演算された角速度の指令値から速度変換部1241により得られた角速度の現在値を減算し、PI制御部1244が、減算器1243による減算結果に基づいてPI制御を行うことで、角速度制御の指令値を得る。
【0046】
次いで、指令値合成部125は、トルク制御部122により演算されたトルク制御の指令値及び関節角制御部124により演算された角速度制御の指令値を合成する(ステップST504)。図1,2では、加算器1251が、トルク制御部122により演算されたトルク制御の指令値と関節角制御部124により演算された角速度制御の指令値とを加算する。この指令値合成部125による合成結果である指令値(電流指令値)は、モータ21に出力される。
【0047】
次に、実施の形態1に係るロボット制御装置1による効果について説明する。
上述したように、従来のロボット制御装置1bでは、メイン制御部11bでフィードバック系を構成している。すなわち、このロボット制御装置1bでは、ロボット2から物理的にも通信的にも距離のある構成要素でフィードバック制御演算を行うことになる。よって、トルクセンサ23によるトルクの検出からモータ21への指令値の入力までの遅延が長くなる。その結果、このロボット制御装置1では、不可避的にむだ時間が入り込む余地が多くなり、安定性を維持できるハイゲイン化を抑制する要因になる。また、むだ時間自体も、リード補償等でキャンセルできる要素ではないため、応答時間への悪影響は避けられない。
【0048】
これに対し、実施の形態1に係るロボット制御装置1のように、メイン制御部11で力制御に対する演算を実施するのではなく、関節制御部12でトルク制御に対する演算を実施することで、トルクセンサ23によるトルクの検出からモータ21への指令値の入力までの遅延が短くなり、むだ時間が入り込む余地を削減できる。すなわち、実施の形態1に係るロボット制御装置1は、安定性を維持できるコントローラのハイゲイン化に相当する調整(関節単位の1変数制御のゲイン調整)も可能になる。このように、実施の形態1に係るロボット制御装置1では、従来構成に対して力制御の性能(特に速応性)の向上が可能となる。
【0049】
図6は、実施の形態1に係るロボット制御装置1による効果を説明するための図である。図6Aは実施の形態1に係るロボット制御装置1を用いた場合でのシミュレーション結果の一例を示す図であり、図6Bは従来のロボット制御装置1bを用いた場合でのシミュレーション結果の一例を示す図である。図6では、ロボット2で物体をZ軸方向に押し付けた際のシミュレーション結果を示している。なお、ロボット2による押付け力の目標値は10[N]としている。図6A及び図6Bにおいて、横軸は時間[s]を示し、縦軸はロボット2によるZ軸方向への押付け力を示している。
この場合、図6Bに示すように、従来のロボット制御装置1bを用いた場合には、ロボット2によるZ軸方向への押付け力が目標値に整定するまでの時間(整定時間)が3.03[s]となっている。これに対し、図6Aに示すように、実施の形態1に係るロボット制御装置1を用いた場合には、整定時間が0.47[s]となっている。すなわち、実施の形態1に係るロボット制御装置1を用いた場合には、従来のロボット制御装置1bを用いた場合に対し、ロボット2によるZ軸方向への押付け力が短い時間で目標値に整定していることがわかる。
【0050】
また図6Bでは、従来のロボット制御装置1bにおける、力偏差の算出から速度指令値の算出までのゲインは、-2.0×10-3となる。これに対し、図6Aでは、実施の形態1に係るロボット制御装置1における、力偏差の算出から速度指令値の算出までのゲインに相当する等価ゲインは、-9.2×10-3となる。すなわち、実施の形態1に係るロボット制御装置1では、従来のロボット制御装置1bに対して高いゲインでの力制御が実現できていることがわかる。なお、実施の形態1に係るロボット制御装置1では、実際には力偏差から速度指令値を算出していないので、上記で示したゲインは実際のゲインではなく換算値である。
【0051】
なお、図1,2に示すロボット制御装置1では、速度制御に関するゲインを0にすることで単体のトルク制御を実現でき、また、トルク制御に関するゲインを0にすることで通常の速度制御を実現できる。
【0052】
以上のように、この実施の形態1によれば、ロボット制御装置1は、力の指令値及び位置姿勢の指令値並びにロボット2が有する関節毎の角度の現在値に基づいて、当該関節毎のトルクの指令値及び位置姿勢制御の指令値を演算するメイン制御部11と、ロボット2が有する関節毎に設けられ、対応する関節でのトルクの現在値並びにメイン制御部11により演算されたトルクの指令値及び位置姿勢制御の指令値に基づいて、対応する関節に設けられたモータ21に対する指令値を演算する関節制御部12とを備えた。これにより、実施の形態1に係るロボット制御装置1は、従来構成に対して力制御の性能を向上可能となる。
【0053】
なお、実施の形態1では関節角制御部124が関節制御部12に設けられた場合を示した。しかしながら、これに限らず、関節角制御部124はメイン制御部11に設けられていてもよい。例えば、ロボット2が低速で動作する場合等であれば、関節角制御部124がメイン制御部11に設けられていることによる影響は少ないと考えられる。
また、関節角制御部124は必須の構成ではなく、ロボット制御装置1から取除いてもよい。
【0054】
実施の形態2.
実施の形態1では、関節制御部12において、メイン制御部11で演算された角速度の指令値(位置姿勢制御の指令値)を用いて角速度制御の指令値を演算し、その後、トルク制御の指令値及び角速度制御の指令値を合成する場合を示した。しかしながら、これに限らず、関節制御部12において、トルク制御の指令値及びメイン制御部11で演算された角速度の指令値(位置姿勢制御の指令値)を合成した後、その合成結果を用いて角速度制御の指令値を演算してもよい。
図7,8は実施の形態2に係るロボット制御装置1の構成例を示す図である。図7,8に示す実施の形態2に係るロボット制御装置1は、図1,2に示す実施の形態1に係るロボット制御装置1に対し、関節角制御部124及び指令値合成部125を指令値合成部126及び関節角制御部127に変更している。その他の構成は同様であり、同一の符号を付してその説明を省略する。
【0055】
指令値合成部126は、メイン制御部11により演算された角速度の指令値(位置姿勢制御の指令値)及びトルク制御部122により演算されたトルク制御の指令値を合成する。図8では、指令値合成部126は、加算器1261を有する。加算器1261は、メイン制御部11により演算された角速度の指令値とトルク制御部122により演算されたトルク制御の指令値とを加算する。
【0056】
関節角制御部127は、指令値合成部126による合成結果に基づいて、角速度制御の指令値を演算する。関節角制御部127は、速度変換部1271及び速度制御部1272を有している。速度制御部1272は、減算器1273及びPI制御部1274を有している。
【0057】
速度変換部1271は、対応する関節での角度の現在値を角速度の現在値に変換する。
【0058】
減算器1273は、指令値合成部126による合成結果から、速度変換部1271により得られた角速度の現在値を減算する。
PI制御部1274は、減算器1273による減算結果に基づいてPI制御を行うことで、角速度制御の指令値を得る。
この関節角制御部127により演算された角速度制御の指令値(電流指令値)は、対応する関節に設けられたモータ21に出力される。
【0059】
このように、実施の形態2に係るロボット制御装置1では、位置姿勢制御の指令値及びトルク制御の指令値を合成し、その合成結果に基づいて角速度制御を実施する。この実施の形態2に係るロボット制御装置1についても、実施の形態1に係るロボット制御装置1と同様の効果が得られる。また、実施の形態2に係るロボット制御装置1は、従来のコンプライアンス制御に近い対応関係となる。
【0060】
また、本願発明はその発明の範囲内において、各実施の形態の自由な組合わせ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。例えば、実施の形態1,2では関節角制御部が速度制御を行う例を用いて説明したが、加速度又は電流等の他の物理量の制御を介して位置姿勢の制御を行うことも可能である。
【符号の説明】
【0061】
1 ロボット制御装置
2 ロボット
11 メイン制御部
12 関節制御部
21 モータ
22 センサ
23 トルクセンサ
24 エンコーダ
111 トルク指令値変換部
112 位置姿勢演算部
113 位置姿勢制御部
114 指令値変換部
121 トルク取得部
122 トルク制御部
123 モータ制御部
124 関節角制御部
125 指令値合成部
126 指令値合成部
127 関節角制御部
1111 係数乗算部
1131 偏差演算器
1132 係数乗算部
1141 係数乗算部
1221 減算器
1222 PI制御部
1241 速度変換部
1242 速度制御部
1243 減算器
1244 PI制御部
1251 加算器
1261 加算器
1271 速度変換部
1272 速度制御部
1273 減算器
1274 PI制御部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11