JP2022079273A - Robot control device and robot control method - Google Patents
Robot control device and robot control method Download PDFInfo
- Publication number
- JP2022079273A JP2022079273A JP2020190366A JP2020190366A JP2022079273A JP 2022079273 A JP2022079273 A JP 2022079273A JP 2020190366 A JP2020190366 A JP 2020190366A JP 2020190366 A JP2020190366 A JP 2020190366A JP 2022079273 A JP2022079273 A JP 2022079273A
- Authority
- JP
- Japan
- Prior art keywords
- command value
- unit
- joint
- control
- robot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1633—Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
Abstract
Description
この発明は、ロボットの位置姿勢と力を同時に制御可能なロボット制御装置及びロボット制御方法に関する。 The present invention relates to a robot control device and a robot control method capable of simultaneously controlling the position, posture and force of a robot.
垂直多関節ロボット等のロボット(ロボットアーム)では、位置姿勢と力を同時(並列)に制御対象とするロボット制御装置が用いられている(例えば特許文献1参照)。なお、位置姿勢は、ロボットの位置及び姿勢のうちの少なくとも一方を表す。図15~図17に、ロボット制御装置1bの一例を示す。
In robots (robot arms) such as vertical articulated robots, robot control devices that simultaneously (parallel) control the position and posture and force are used (see, for example, Patent Document 1). The position / posture represents at least one of the position and the posture of the robot. 15 to 17 show an example of the
図15に示すロボット制御装置1bは、メイン制御部(上位コントローラ)11b、及び複数の関節制御部(下位コントローラ)15bを備えている。関節制御部15bは、ロボット2が有する関節毎に設けられている。なお、メイン制御部11bと各関節制御部15bとの間は通信線により接続されている。
The
また、図15に示すように、ロボット2は、関節毎に、モータ21及びセンサ22(トルクセンサ23及びエンコーダ24)を有している。モータ21及びセンサ22はそれぞれ、対応する関節制御部15bに対して電力線等により接続されている。トルクセンサ23は、対応する関節のトルクの現在値を検出する。エンコーダ24は、対応する関節の角度の現在値を検出する。なお図16では、モータ21、トルクセンサ23及びエンコーダ24を一組のみ示している。
Further, as shown in FIG. 15, the
メイン制御部11bは、各関節制御部15bに指令値を出力することで、ロボット2全体を制御する。具体的には、メイン制御部11bは、力の指令値及び位置姿勢の指令値並びにロボット2が有する関節毎のトルクの現在値及び角度の現在値に基づいて、当該関節毎の角速度の指令値を演算する。メイン制御部11bは、図16及び図17に示すように、力演算部111b、力制御部112b、位置姿勢演算部113b、位置姿勢制御部114b、指令値合成部115b及び指令値変換部116bを備えている。
The
力演算部111bは、ロボット2が有する関節毎のトルクの現在値に基づいて、ロボット2の力の現在値を演算する。ロボット2が有する関節毎のトルクは関節座標系で表されており、この力演算部111bでは、係数乗算部1111bで関節毎のトルクを並べたベクトルにヤコビ行列の転置の逆行列を乗算して、関節毎のトルクを直交座標系で表された力に変換する。図17において、τはトルクの現在値を表し、Jはヤコビ行列を表し、Fは力の現在値を表している。
The
力制御部112bは、力の指令値及び力演算部111bにより演算された力の現在値に基づいて、力制御の指令値を演算する。この力制御部112bでは、偏差演算器1121bで力の指令値と力の現在値の間の偏差を求め、係数乗算部1122bで偏差演算器1121bによる演算結果の偏差に対してゲインを乗算することで、力制御の指令値を得る。図17において、Frは力の指令値を表し、GFはゲインを表している。
The
位置姿勢演算部113bは、ロボット2が有する関節毎の角度の現在値に基づいて、ロボット2の位置姿勢の現在値を演算する。ロボット2が有する関節毎の角度の現在値は関節座標系で表されており、位置姿勢演算部113bは、関節毎の角度の現在値を直交座標系で表された位置姿勢の現在値に変換する。図17において、θは角度の現在値を表し、Xは位置姿勢の現在値を表している。
The position /
位置姿勢制御部114bは、位置姿勢の指令値及び位置姿勢演算部113bにより演算された位置姿勢の現在値に基づいて、位置姿勢制御の指令値を演算する。この位置姿勢制御部114bでは、偏差演算器1141bで位置姿勢の指令値と位置姿勢の現在値の間の偏差を求め、係数乗算部1142bで偏差演算器1141bによる演算結果の偏差に対してゲインを乗算することで、位置姿勢制御の指令値を得る。図17において、Xrは位置姿勢の指令値を表し、GZはゲインを表している。
The position /
指令値合成部115bは、力制御部112bにより演算された力制御の指令値及び位置姿勢制御部114bにより演算された位置姿勢制御の指令値を合成する。この指令値合成部115bでは、加算器1151bで力制御の指令値と位置姿勢制御の指令値とを加算する。
The command
指令値変換部116bは、指令値合成部115bによる合成結果をロボット2が有する関節毎の角速度の指令値に変換する。この指令値変換部116bでは、係数乗算部1161bで上記合成結果に対してヤコビ行列の逆行列を乗算する。すなわち、指令値変換部116bは、直交座標系で表された指令値を関節座標系で表された指令値に変換する。図17において、θ(ドット)rは角速度の指令値を表している。
The command
関節制御部15bは、メイン制御部11bからの指令に応じ、対応する関節に設けられたモータ21を制御する。関節制御部15bは、図16及び図17に示すように、トルク取得部151b及び関節角制御部152bを備えている。
The
トルク取得部151bは、対応する関節でのトルクの現在値を取得する。このトルク取得部151bにより取得されたトルクの現在値を示すデータは、メイン制御部11b(力演算部111b)に出力される。
The
関節角制御部152bは、メイン制御部11bにより演算された角速度の指令値及びロボット2が有する関節毎の角度の現在値に基づいて、対応する関節に設けられたモータ21に対する指令値を演算する。この関節角制御部152bでは、速度変換部1521bで角度の現在値を角速度の現在値に変換し、減算器1523bで角速度の指令値から速度変換部1521bで得られた角速度の現在値を減算し、PI制御部1524bで減算器1523bによる減算結果に基づいてPI制御を行うことで、モータ21に対する指令値を得る。なお、減算器1523b及びPI制御部1524bは速度制御部1522bを構成している。
The joint
このように、図15~図17に示すロボット制御装置1bでは、複数の関節を連携して操作する必要があり、メイン制御部11bで、多関節の自由度(例えば6自由度)に対して位置姿勢と力を同時に制御演算した結果を合成し、当該合成結果を各軸の関節制御部15bへの信号に変換してから出力する。すなわち、このロボット制御装置1bでは、メイン制御部11bでコンプライアンス制御の主要な演算を実行する。そのため、このロボット制御装置1bでは、調整すべきパラメータを合理的に統合できる等のメリットがある。
As described above, in the
一般に、産業用ロボット等のロボットでは、力制御によって実現が求められる対象として精密な研磨の倣い動作等があり、整定動作又は追従動作のようなダイナミクスの性能向上が常に求められている。
一方、従来のロボット制御装置では、メイン制御部でフィードバック系を構成している。すなわち、このロボット制御装置では、ロボットから物理的にも通信的にも距離のある構成要素でフィードバック制御演算を行うことになる。よって、トルクセンサによるトルクの検出からモータへの指令値の入力までの遅延が長くなる。その結果、このロボット制御装置では、不可避的にむだ時間が入り込む余地が多くなり、安定性を維持できるハイゲイン化を抑制する要因になる。また、むだ時間自体も、リード補償等でキャンセルできる要素ではないため、応答時間への悪影響は避けられない。
このように、従来のロボット制御装置では、力制御の性能(特に速応性)の向上が難しく、更なる改善が求められている。
In general, in robots such as industrial robots, precision polishing imitation motion and the like are required to be realized by force control, and improvement of dynamics performance such as settling motion or follow-up motion is constantly required.
On the other hand, in the conventional robot control device, the feedback system is configured in the main control unit. That is, in this robot control device, the feedback control calculation is performed by a component having a physical and communication distance from the robot. Therefore, the delay from the detection of torque by the torque sensor to the input of the command value to the motor becomes long. As a result, in this robot control device, there is inevitably more room for wasted time, which is a factor that suppresses high gain that can maintain stability. Moreover, since the waste time itself is not an element that can be canceled by lead compensation or the like, an adverse effect on the response time is unavoidable.
As described above, it is difficult to improve the force control performance (particularly quick response) in the conventional robot control device, and further improvement is required.
この発明は、上記のような課題を解決するためになされたもので、従来構成に対して力制御の性能を向上可能となるロボット制御装置を提供することを目的としている。 The present invention has been made to solve the above-mentioned problems, and an object of the present invention is to provide a robot control device capable of improving the force control performance with respect to a conventional configuration.
この発明に係るロボット制御装置は、ロボットの力の指令値及び力の現在値に基づいて力制御の指令値及び当該ロボットが有する関節毎のトルクの指令値を演算し、当該力制御の指令値に基づいて当該関節毎の制御指令値を演算するメイン制御部と、ロボットが有する関節毎に設けられ、対応する関節でのトルクの現在値及びメイン制御部により演算されたトルクの指令値に基づいて当該関節でのトルク制御の指令値を演算し、当該トルク制御の指令値及びメイン制御部により演算された制御指令値に基づいて当該関節に設けられたモータに対する指令値を演算する関節制御部と、メイン制御部による力制御の指令値の演算及び関節制御部によるトルク制御の指令値の演算を有効又は無効に切替える切替部とを備えたことを特徴とする。 The robot control device according to the present invention calculates the command value of force control and the command value of the torque of each joint of the robot based on the command value of the force of the robot and the current value of the force, and the command value of the force control. Based on the main control unit that calculates the control command value for each joint based on the above, the current value of torque at the corresponding joint provided for each joint of the robot, and the command value of torque calculated by the main control unit. The joint control unit calculates the command value of the torque control in the joint, and calculates the command value for the motor provided in the joint based on the command value of the torque control and the control command value calculated by the main control unit. It is characterized by having a switching unit for switching between valid or invalid calculation of a command value for force control by the main control unit and calculation of a command value for torque control by the joint control unit.
この発明によれば、上記のように構成したので、従来構成に対して力制御の性能を向上可能となる。 According to the present invention, since the configuration is as described above, the force control performance can be improved as compared with the conventional configuration.
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1,2は実施の形態1に係るロボット制御装置1の構成例を示す図である。なお、ロボット制御装置1とロボット2との関係は、図15と同様であり、その説明を省略する。
ロボット制御装置1は、ロボット2の位置姿勢と力を同時(並列)に制御可能である。ロボット制御装置1は、図1,2に示すように、メイン制御部(上位コントローラ)11、及び複数の関節制御部(下位コントローラ)15を備えている。関節制御部15は、ロボット2が有する関節毎に設けられている。なお、メイン制御部11と各関節制御部15との間は通信線により接続されている。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
1 and 2 are diagrams showing a configuration example of the
The
メイン制御部11は、各関節制御部15に指令値を出力することで、ロボット2全体を制御する。具体的には、メイン制御部11は、ロボット2の力の指令値及び位置姿勢の指令値並びにロボット2が有する関節毎の角度の現在値及びトルクの現在値に基づいて、当該関節毎のトルクの指令値及び制御指令値を演算する。図1,2では、メイン制御部11が演算する制御指令値は角速度の指令値である。メイン制御部11は、図1,2に示すように、外乱トルク推定部111、力演算部112、トルク指令値変換部113、力制御部114、位置姿勢演算部115、位置姿勢制御部116、指令値合成部(メイン側指令値合成部)117、指令値変換部118及び切替部119を備えている。なお、メイン制御部11は、システムLSI(Large Scale Integration)等の処理回路、又はメモリ等に記憶されたプログラムを実行するCPU(Central Processing Unit)等により実現される。
The
また、位置姿勢演算部115、位置姿勢制御部116及び指令値合成部117は、ロボット制御装置1が位置姿勢と力の双方を制御する場合に必要であり、ロボット制御装置1が力だけを制御する場合は不要である。
また、外乱トルク推定部111はロボット2の構成によっては不要である。
Further, the position /
Further, the disturbance
外乱トルク推定部111は、ロボット2が有する関節毎の角度の現在値に基づいて、当該関節毎のトルクの現在値に含まれる外乱トルク(外乱成分)を推定する。一般的な垂直多関節ロボットでは、各関節で計測されるトルクには、ロボットアームにかかる重力によるトルク(重力トルク)が含まれる。そのため、外乱トルク推定部111における外乱トルクの推定で最も重要なのは、この重力トルクの推定である。また、外乱トルク推定部111は、慣性力又は摩擦力等、重力以外の外乱トルクを推定して合算してもよい。なお、各関節に重力トルクがかからないロボット2では、外乱トルク推定部111は必要ではない。
The disturbance
力演算部112は、ロボット2が有する関節毎のトルクの現在値をロボット2の力の現在値に変換する。力演算部112は、減算器1121及び係数乗算部1122を有している。
The
減算器1121は、トルクの現在値から外乱トルク推定部111により推定された外乱トルクを減算する。図2において、τはトルクの現在値を表している。
係数乗算部1122は、減算器1121による減算結果にヤコビ行列の転置の逆行列を乗算する。図2において、Jはヤコビ行列を表している。
The
The coefficient multiplying unit 1122 multiplies the subtraction result by the
トルクの現在値は重力トルクを含んでいるが、力の指令値は重力を含まない形で与えられるのが一般的である。そこで、力演算部112では、これに合わせるため、トルクの現在値から重力トルクを含む外乱トルクを減算する。また、トルクの現在値は関節座標系で表された値だが、力制御部114では直交座標系で表された力の現在値が必要なので、力演算部112によって変換する。
The current value of torque includes gravity torque, but the command value of force is generally given in a form that does not include gravity. Therefore, in order to match this, the
トルク指令値変換部113は、ロボット2の力の指令値を、ロボット2が有する関節毎のトルクの指令値に変換する。トルク指令値変換部113は、係数乗算部1131及び加算器1132を有している。
The torque command
係数乗算部1131は、力の指令値に対してヤコビ行列の転置行列を乗算する。
加算器1132は、係数乗算部1131による乗算結果に外乱トルク推定部111により推定された外乱トルクを加算する。
The
The
力の指令値は直交座標系で表されており、トルク指令値変換部113は、力の指令値を関節座標系で表されたトルクの指令値に変換する。また、トルクの現在値は重力トルク等の外乱トルクを含んでいる。そこで、トルク指令値変換部113は、これと相殺させるため、トルクの指令値に外乱トルクを加算する。図2において、Frは力の指令値を表し、τrはトルクの指令値を表している。
The force command value is represented by the orthogonal coordinate system, and the torque command
力制御部114は、従来構成と同様に、ロボット2の力の指令値及び力演算部112により演算された力の現在値に基づいて、速度の指令値(力制御の指令値)を演算する。力制御部114は、偏差演算器1141及び係数乗算部1142を有している。
The
偏差演算器1141は、力の指令値と力の現在値との間の偏差を演算によって求める。この演算は、力の指令値から力の現在値を減算することで行われる。
係数乗算部1142は、偏差演算器1141による演算結果の偏差に対してゲインを乗算することで、速度の指令値を得る。図2において、GFはゲインを表している。
The
The
位置姿勢演算部115は、ロボット2が有する関節毎の角度の現在値に基づいて、ロボット2の位置姿勢の現在値を演算する。ロボット2が有する関節毎の角度は関節座標系で表されており、位置姿勢演算部115は、関節毎の角度を直交座標系で表された位置姿勢に変換する。なおロボット2が有する関節毎の角度の現在値は、当該関節毎に設けられたエンコーダ24により検出される。図2において、θは角度の現在値を表し、Xは位置姿勢の現在値を表している。
The position /
位置姿勢制御部116は、ロボット2の位置姿勢の指令値及び位置姿勢演算部115により演算された位置姿勢の現在値に基づいて、速度の指令値(位置姿勢制御の指令値)を演算する。位置姿勢制御部116は、偏差演算器1161及び係数乗算部1162を有している。
The position /
偏差演算器1161は、位置姿勢の指令値と位置姿勢の現在値との間の偏差を演算によって求める。
係数乗算部1162は、偏差演算器1161による演算結果の偏差に対してゲインを乗算することで、速度の指令値を得る。図2において、Xrは位置姿勢の指令値を表し、GZはゲインを表している。
The
The
指令値合成部117は、力制御部114により演算された力制御の指令値である速度の指令値、及び、位置姿勢制御部116により演算された位置姿勢制御の指令値である速度の指令値を合成し、一つの速度の指令値にする。指令値合成部117は、加算器1171を有する。
加算器1171は、力制御部114により演算された速度の指令値と位置姿勢制御部116により演算された速度の指令値とを加算する。
The command
The
指令値変換部118は、指令値合成部117による合成結果をロボット2が有する関節毎の角速度の指令値に変換する。指令値変換部118は、係数乗算部1181を有している。
係数乗算部1181は、指令値合成部117による合成結果に対してヤコビ行列の逆行列を乗算する。すなわち、指令値変換部118は、直交座標系で表された指令値を関節座標系で表された指令値に変換する。図2において、θ(ドット)rは角速度の指令値を表している。
The command
The
切替部119は、メイン制御部11の力制御部114を有効又は無効に切替え、また、関節制御部15のトルク制御部152を有効又は無効に切替える。切替部119による切替え結果は、それぞれメイン制御部11及び関節制御部15に通信等によって通知される。これにより、ロボット制御装置1は、力制御を従来構成のようにメイン制御部11で実行する動作、又は、力制御を関節制御部15で実行する動作に切替え可能となる。
The
なお図1,2では、切替部119がメイン制御部11に設けられた場合を示した。しかしながら、これに限らず、切替部119は、メイン制御部11及び関節制御部15と通信可能であれば他の場所に設けられていてもよい。
Note that FIGS. 1 and 2 show a case where the
関節制御部15は、メイン制御部11からの指令に応じ、対応する関節に設けられたモータ21を制御する。具体的には、関節制御部15は、対応する関節でのトルクの現在値及び角度の現在値並びにメイン制御部11により演算されたトルクの指令値及び制御指令値に基づいて、当該関節に設けられたモータ21に対する指令値を演算する。関節制御部15は、図1,2に示すように、トルク取得部151、トルク制御部152及びモータ制御部153を備えている。モータ制御部153は、関節角制御部154及び指令値合成部(関節側指令値合成部)155を有している。
The
トルク取得部151は、対応する関節でのトルクの現在値を取得する。ロボット2が有する関節毎のトルクの現在値は、当該関節毎に設けられたトルクセンサ23により検出される。
The
トルク制御部152は、トルク取得部151により取得されたトルクの現在値及びメイン制御部11により演算されたトルクの指令値に基づいて、トルク制御の指令値を演算する。トルク制御部152は、減算器1521及びPID制御部1522を有している。
The
減算器1521は、メイン制御部11により演算されたトルクの指令値のうちの対応する関節でのトルクの指令値から、トルク取得部151により取得されたトルクの現在値を減算する。
PID制御部1522は、減算器1521による減算結果に基づいてPID制御を行うことで、トルク制御の指令値を得る。
The
The
関節角制御部154は、対応する関節での角度の現在値及びメイン制御部11により演算された角速度の指令値に基づいて、角速度制御の指令値を演算する。関節角制御部154は、速度変換部1541及び速度制御部1542を有している。速度制御部1542は、減算器1543及びPI制御部1544を有している。
The joint
速度変換部1541は、対応する関節での角度の現在値を角速度の現在値に変換する。
The
減算器1543は、メイン制御部11により演算された角速度の指令値のうちの対応する関節での角速度の指令値から、速度変換部1541により得られた角速度の現在値を減算する。
PI制御部1544は、減算器1543による減算結果に基づいてPI制御を行うことで、角速度制御の指令値を得る。
The
The
指令値合成部155は、トルク制御部152により演算されたトルク制御の指令値及び関節角制御部154により演算された角速度制御の指令値を合成する。図1では、指令値合成部155は、加算器1551を有する。
加算器1551は、トルク制御部152により演算されたトルク制御の指令値と関節角制御部154により演算された角速度制御の指令値とを加算する。この指令値合成部155による合成結果である指令値(電流指令値)は、モータ21に出力される。
The command
The
次に、図1,2に示す実施の形態1に係るロボット制御装置1の動作例について、図3を参照しながら説明する。
図1,2に示す実施の形態1に係るロボット制御装置1の動作例では、図3に示すように、まず、切替部119が、力制御部114を有効又は無効とし、トルク制御部152を有効又は無効とする(ステップST301)。切替部119による切替え結果は、それぞれメイン制御部11及び関節制御部15に通信等によって通知される。
Next, an operation example of the
In the operation example of the
切替部119は、力制御部114を有効又は無効とし、トルク制御部152を有効又は無効とする処理を、例えば図4に示すように制御モードと関連付けて事前に定義し、それに従って実行する。例えば、ロボット2を動作させるプログラムで制御モード「1」を指定するコマンドが実行された場合、切替部119は、それ以降は力制御部114を有効にし、トルク制御部152を無効にする。又は、ロボット制御装置1の制御モードを示すデータを記憶する記憶装置をロボット制御装置1の内部又は外部に設け、切替部119は、定期的に制御モードを示すデータを記憶装置から読出し、そのデータに従って力制御部114及びトルク制御部152を有効又は無効に設定するようにしてもよい。
The
次いで、メイン制御部11は、ロボット2の力の指令値及び位置姿勢の指令値並びにロボット2が有する関節毎の角度の現在値及びトルクの現在値に基づいて、当該関節毎のトルクの指令値及び角速度の指令値を演算する(ステップST302)。なお、切替部119によりトルク制御部152が無効とされた場合には、トルクの指令値は不要となるので、メイン制御部11はトルクの指令値を演算しなくてもよい。
Next, the
次いで、関節制御部15は、対応する関節でのトルクの現在値及び角度の現在値並びにメイン制御部11により演算されたトルクの指令値及び角速度の指令値に基づいて、対応する関節に設けられたモータ21に対する指令値を演算する(ステップST303)。
Next, the
次に、図1,2に示すメイン制御部11の動作例について、図5を参照しながら説明する。
図1,2に示すメイン制御部11の動作例では、図5に示すように、まず、外乱トルク推定部111は、ロボット2が有する関節毎の角度の現在値に基づいて、ロボット2が有する関節にかかる外乱トルクを推定する(ステップST501)。垂直多関節ロボットでは、通常、外乱トルクは重力に起因するトルク(重力トルク)の成分を含む。そのため、外乱トルク推定部111は、角度の現在値から重力トルクを推定し、その値を出力する。なお、角度の現在値から重力トルクを推定する方法は公知技術であるため、その説明を省略する。また、外乱トルク推定部111は、慣性力又は摩擦力等、重力以外に起因する外乱トルクを推定し、それらの値を出力値に加算してもよい。
Next, an operation example of the
In the operation example of the
次いで、トルク指令値変換部113は、ロボット2の力の指令値をロボット2が有する関節毎のトルクの指令値に変換する(ステップST502)。図1,2では、まず、係数乗算部1131が、力の指令値に対してヤコビ行列の転置行列を乗算する。なお、ヤコビ行列はロボット2の関節の角度によって変わるので、適宜更新する必要がある。そして、加算器1132が、係数乗算部1131による乗算結果に外乱トルク推定部111により推定された外乱トルクを加算する。これにより、トルクの指令値とトルクの現在値との間で、重力トルク等の外乱トルクが相殺され、所望の制御が可能となる。
Next, the torque command
また、力演算部112は、ロボット2が有する関節毎のトルクの現在値をロボット2の力の現在値に変換する(ステップST503)。図1,2では、減算器1121が、トルクの現在値から外乱トルク推定部111により演算された外乱トルクを減算し、係数乗算部1122が、減算器1121による減算結果に対してヤコビ行列の転置の逆行列を乗算する。垂直多関節ロボットでは、通常、トルク取得部151により取得されるトルクの現在値は重力に起因するトルク成分を含む。そのため、力演算部112は、トルクから力へ変換する前に、重力トルクを含む外乱トルクを減算して除去することで、外乱トルクを含まない外力推定値を、力の現在値として得ることができる。
Further, the
次いで、力制御部114は、ロボット2の力の指令値及び力演算部112により得られた力の現在値に基づいて、速度の指令値(力制御の指令値)を演算する(ステップST504)。図1,2では、偏差演算器1141が、力の指令値と力の現在値との間の偏差を演算によって求め、係数乗算部1142が、偏差演算器1141による演算結果の偏差に対してゲインを乗算することで、速度の指令値を得る。
なお、切替部119により力制御部114が無効にされた場合には、例えば、力制御部114は上記演算を省略して0を出力する。
Next, the
When the
また、位置姿勢演算部115は、ロボット2が有する関節毎の角度の現在値に基づいて、ロボット2の位置姿勢の現在値を演算する(ステップST505)。
Further, the position /
次いで、位置姿勢制御部116は、ロボット2の位置姿勢の指令値及び位置姿勢演算部115により演算された位置姿勢の現在値に基づいて、速度の指令値(位置姿勢制御の指令値)を演算する(ステップST506)。図1,2では、偏差演算器1161が、位置姿勢の指令値と位置姿勢の現在値との間の偏差を演算し、係数乗算部1162が、偏差演算器1161による演算結果の偏差に対してゲインを乗算することで、速度の指令値を得る。なお、位置の偏差は、指令値の座標値から現在値の座標値を減算することで得られる。姿勢の偏差は、現在値の姿勢から指令値の姿勢への回転変換を求めることで得ることができる。
Next, the position /
次いで、指令値合成部117は、力制御部114により演算された速度の指令値及び位置姿勢制御部116により演算された速度の指令値を合成し、1つの速度の指令値を得る(ステップST507)。
Next, the command
次いで、指令値変換部118は、指令値合成部117による合成結果をロボット2が有する関節毎の角速度の指令値に変換する(ステップST508)。図1,2では、係数乗算部1181が、指令値合成部117による合成結果に対してヤコビ行列の逆行列を乗算することで、関節毎の角速度の指令値を得る。
Next, the command
なお上記では、力制御部114を無効にする方法として、力制御部114の出力を0にする方法を示したが、同じ効果が得られるのであればこれに限らない。例えば、力制御部114が係数乗算部1142のゲインを0にする、又は、指令値合成部117が位置姿勢制御部116により演算された速度の指令値をそのまま出力し、力制御部114により演算された速度の指令値と合成しない、といった手段でも力制御部114の無効化を実現できる。
In the above, as a method of disabling the
次に、図1,2に示す関節制御部15の動作例について、図6を参照しながら説明する。
図1,2に示す関節制御部15の動作例では、図6に示すように、まず、トルク取得部151は、対応する関節でのトルクの現在値を取得する(ステップST601)。
Next, an operation example of the
In the operation example of the
次いで、トルク制御部152は、トルク取得部151により取得されたトルクの現在値及びメイン制御部11により演算されたトルクの指令値に基づいて、トルク制御の指令値を演算する(ステップST602)。図1,2では、減算器1521が、メイン制御部11により演算されたトルクの指令値のうちの対応する関節でのトルクの指令値からトルク取得部151により取得されたトルクの現在値を減算し、PID制御部1522が、減算器1521による減算結果に基づいてPID制御を行うことで、トルク制御の指令値を得る。
なお、切替部119によりトルク制御部152が無効にされた場合には、例えば、トルク制御部152は上記演算を省略して0を出力する。
Next, the
When the
また、関節角制御部154は、メイン制御部11により演算された角速度の指令値に基づいて、角速度制御の指令値を演算する(ステップST603)。図1,2では、速度変換部1541が、対応する関節での角度の現在値を角速度の現在値に変換し、減算器1543が、メイン制御部11により演算された角速度の指令値のうちの当該関節での角速度の指令値から速度変換部1541により得られた角速度の現在値を減算し、PI制御部1544が、減算器1543による減算結果に基づいてPI制御を行うことで、角速度制御の指令値を得る。
Further, the joint
次いで、指令値合成部155は、トルク制御部152により演算されたトルク制御の指令値及び関節角制御部154により演算された角速度制御の指令値を合成する(ステップST604)。図1,2では、加算器1551が、トルク制御部152により演算されたトルク制御の指令値と関節角制御部154により演算された角速度制御の指令値とを加算する。この指令値合成部155による合成結果である指令値(電流指令値)は、モータ21に出力される。
Next, the command
なお上記では、トルク制御部152を無効にする方法として、トルク制御部152の出力を0にする方法を示したが、同じ効果が得られるのであればこれに限らない。例えば、トルク制御部152がPID制御部1222のゲインを0にする、又は、指令値合成部155が関節角制御部154により演算された角速度制御の指令値をそのまま出力し、トルク制御部152により演算されたトルク制御の指令値と合成しない、といった手段でもトルク制御部152の無効化を実現できる。
In the above, as a method of disabling the
また、実施の形態1に係るロボット制御装置1では、図4の制御モード「3」で示すように、力制御部114及びトルク制御部152の両方を有効にすることもできる。但し、この場合には、2つの制御が干渉しないようにすることが好ましい。例えば、力制御部114は低周波帯域で制御を行い、トルク制御部152は高周波帯域で制御を行う等のように、制御する周波数帯域を分ける等して、相互に影響を与えないようにすることが好ましい。
Further, in the
また、切替部119が切替えを実行するタイミングによっては、モータ21に出力される電流指令値が大きく変動する場合がある。これを避けるため、ロボット制御装置1は、切替部119による切替えの際にローパスフィルタ等によって平滑化処理を行い、電流指令値の変動を抑制してもよい。
Further, the current command value output to the
次に、実施の形態1に係るロボット制御装置1による効果について説明する。
上述したように、従来のロボット制御装置1bでは、メイン制御部11bでフィードバック系を構成している。すなわち、このロボット制御装置1bでは、ロボット2から物理的にも通信的にも距離のある構成要素でフィードバック制御演算を行うことになる。よって、トルクセンサ23によるトルクの検出からモータ21への指令値の入力までの遅延が長くなる。その結果、このロボット制御装置1bでは、不可避的にむだ時間が入り込む余地が多くなり、安定性を維持できるハイゲイン化を抑制する要因になる。また、むだ時間自体も、リード補償等でキャンセルできる要素ではないため、応答時間への悪影響は避けられない。
Next, the effect of the
As described above, in the conventional
これに対し、実施の形態1に係るロボット制御装置1において、切替部119がトルク制御部152を用いて力制御を行うようにした場合は、関節制御部15でトルク制御に対する演算を実施することで、トルクセンサ23によるトルクの検出からモータ21への指令値の入力までの遅延が短くなり、むだ時間が入り込む余地を削減できる。すなわち、実施の形態1に係るロボット制御装置1は、安定性を維持できるコントローラのハイゲイン化に相当する調整(関節単位の1変数制御のゲイン調整)も可能になる。このように、実施の形態1に係るロボット制御装置1では、従来構成に対して力制御の性能(特に速応性)の向上が可能となる。
On the other hand, in the
また、実施の形態1に係るロボット制御装置1において、切替部119が力制御部114を用いて力制御を行うようにした場合は、従来構成と同様に、メイン制御部11で力制御に対する演算が行われるので、全関節を連携させて手先6軸の制御ができる、調整すべきパラメータを合理的に統合できる等、従来構成のメリットが得られる。すなわち、力制御の速応性の向上よりも、従来構成のメリットを優先したい場合は、切替部119によって従来構成と同様にすることができる。
Further, in the
このように、このロボット制御装置1では、切替部119によって、力に対する高速な応答が必要な場合は関節制御部15のトルク制御部152を有効にする、応答が低速であっても手先6軸を精密に制御したい場合はメイン制御部11の力制御部114を有効にするといったように、状況毎に求められる性能に合わせた構成を選択することができる。
As described above, in the
以上のように、この実施の形態1によれば、ロボット制御装置1は、ロボット2の力の指令値及び力の現在値に基づいて力制御の指令値及び当該ロボット2が有する関節毎のトルクの指令値を演算し、当該力制御の指令値に基づいて当該関節毎の制御指令値を演算するメイン制御部11と、ロボット2が有する関節毎に設けられ、対応する関節でのトルクの現在値及びメイン制御部11により演算されたトルクの指令値に基づいて当該関節でのトルク制御の指令値を演算し、当該トルク制御の指令値及びメイン制御部11により演算された制御指令値に基づいて当該関節に設けられたモータ21に対する指令値を演算する関節制御部15と、メイン制御部11による力制御の指令値の演算及び関節制御部15によるトルク制御の指令値の演算を有効又は無効に切替える切替部119とを備えた。これにより、実施の形態1に係るロボット制御装置1は、従来構成に対して力制御の性能を向上可能となる。また、このロボット制御装置1は、従来構成の方が高性能となる場合であっても、必要な性能を発揮することが可能となる。
As described above, according to the first embodiment, the
なお、実施の形態1では関節角制御部154が関節制御部15に設けられた場合を示した。しかしながら、これに限らず、関節角制御部154はメイン制御部11に設けられていてもよい。例えば、ロボット2が低速で動作する場合等であれば、関節角制御部154がメイン制御部11に設けられていることによる影響は少ないと考えられる。
また、関節角制御部154は必須の構成ではなく、ロボット制御装置1から取除いてもよい。
In the first embodiment, the case where the joint
Further, the joint
実施の形態2.
実施の形態1では、関節制御部15において、メイン制御部11で演算された角速度の指令値を用いて角速度制御の指令値を演算し、その後、トルク制御の指令値及び角速度制御の指令値を合成する場合を示した。しかしながら、これに限らず、関節制御部15において、メイン制御部11で演算された角速度の指令値のうちの対応する関節での角速度の指令値及びトルク制御の指令値を合成した後、その合成結果を用いて角速度制御の指令値を演算してもよい。
図7,8は実施の形態2に係るロボット制御装置1の構成例を示す図である。図7,8に示す実施の形態2に係るロボット制御装置1は、図1,2に示す実施の形態1に係るロボット制御装置1に対し、関節角制御部154及び指令値合成部155を指令値合成部(関節側指令値合成部)156及び関節角制御部157に変更している。実施の形態2に係るロボット制御装置1におけるその他の構成は実施の形態1に係るロボット制御装置1と同様であり、同一の符号を付してその説明を省略する。
In the first embodiment, the
7 and 8 are diagrams showing a configuration example of the
指令値合成部156は、メイン制御部11により演算された角速度の指令値のうちの対応する関節での角速度の指令値及びトルク制御部152により演算されたトルク制御の指令値を合成する。図8では、指令値合成部156は、加算器1561を有する。
加算器1561は、メイン制御部11により演算された角速度の指令値のうちの対応する関節での角速度の指令値とトルク制御部152により演算されたトルク制御の指令値とを加算する。
The command
The
関節角制御部157は、対応する関節での角度の現在値及び指令値合成部156による合成結果に基づいて、角速度制御の指令値を演算する。関節角制御部157は、速度変換部1571及び速度制御部1572を有している。速度制御部1572は、減算器1573及びPI制御部1574を有している。
The joint
速度変換部1571は、対応する関節での角度の現在値を角速度の現在値に変換する。
The
減算器1573は、指令値合成部156による合成結果から速度変換部1571により得られた角速度の現在値を減算する。
PI制御部1574は、減算器1573による減算結果に基づいてPI制御を行うことで、角速度制御の指令値を得る。
この関節角制御部157により演算された角速度制御の指令値(電流指令値)は、対応する関節に設けられたモータ21に出力される。
The
The
The command value (current command value) of the angular velocity control calculated by the joint
実施の形態2における切替部119は、実施の形態1における切替部119と同様に、メイン制御部11の力制御部114を有効又は無効に切替え、関節制御部15のトルク制御部152を有効又は無効に切替える。実施の形態1と同様に、実施の形態2における力制御部114及びトルク制御部152は、切替部119によって無効にされた場合には出力を0にする等して、その機能が無効化される。
Similar to the
このように、実施の形態2に係るロボット制御装置1では、関節制御部15が、メイン制御部11により演算された角速度の指令値のうちの対応する関節での角速度の指令値及びトルク制御の指令値を合成し、その合成結果に基づいて角速度制御を実施する。この実施の形態2に係るロボット制御装置1についても、実施の形態1に係るロボット制御装置1と同様の効果が得られる。また、実施の形態2に係るロボット制御装置1は、従来のコンプライアンス制御に近い対応関係となる。
As described above, in the
実施の形態3.
実施の形態1,2では、切替部119が、力制御部114及びトルク制御部152を有効又は無効に切替える場合を示した。しかしながら、これに限らず、関節制御部15に位置姿勢を制御する機能を持たせた上で、切替部119を、上記に加え、メイン制御部11の位置姿勢制御部116及び関節制御部15の位置姿勢制御を有効又は無効に切替え可能としてもよい。
図9,10は実施の形態3に係るロボット制御装置1の構成例を示す図である。図9,10に示す実施の形態3に係るロボット制御装置1は、図7,8に示す実施の形態2に係るロボット制御装置1に対し、メイン制御部11に逆運動学演算部120を追加し、関節制御部15に角度制御部158を追加している。また、指令値合成部156を指令値合成部(関節側指令値合成部)159に変更しており、指令値合成部159は角度制御部158とも接続される。更に、上述のように、切替部119は、実施の形態2における切替部119に対し、位置姿勢の制御を有効又は無効に切替える機能が追加されている。実施の形態3に係るロボット制御装置1におけるその他の構成は実施の形態2に係るロボット制御装置1と同様であり、同一の符号を付してその説明を省略する。
In the first and second embodiments, the
9 and 10 are diagrams showing a configuration example of the
逆運動学演算部120は、ロボット2の位置姿勢の指令値に基づいて、当該位置姿勢の指令値を実現するような、関節毎の角度の指令値を演算によって求める。この演算は逆運動学として公知であるため、その説明を省略する。なお、位置姿勢の指令値の時系列が先行して得られる場合は、逆運動学演算部120は、上記演算をオフラインで事前に行ってもよい。また、逆運動学演算部120は、位置姿勢の指令値が与えられる度に、上記演算を行ってもよい。
The inverse
角度制御部158は、対応する関節での角度の現在値及び逆運動学演算部120により演算された角度の指令値に基づいて、当該関節の角度を制御するための、当該関節の角度制御の指令値を演算によって求める。角度制御部158は、減算器1581及びP制御部1582を有している。
The
減算器1581は、逆運動学演算部120により演算された角度の指令値のうちの対応する関節での角度の指令値から角度の現在値を減算する。
P制御部1582は、減算器1581による減算結果に基づいて、P制御(比例制御)を行うことで、角度制御の指令値を得る。
The
The
指令値合成部159は、メイン制御部11により演算された角速度の指令値のうちの対応する関節での角速度の指令値、トルク制御部152により演算されたトルク制御の指令値、及び、角度制御部158により演算された角度制御の指令値を合成する。図10では、指令値合成部159は、加算器1591を有する。
加算器1591は、メイン制御部11により演算された角速度の指令値のうちの対応する関節での角速度の指令値と、トルク制御部152により演算されたトルク制御の指令値と、角度制御部158により演算された角度制御の指令値とを加算する。
The command
The
そして、速度制御部1572は、この指令値合成部159による合成結果(角速度の指令値)に基づいて、対応する関節の角速度を制御する。
Then, the
切替部119は、力制御部114及びトルク制御部152に加え、位置姿勢制御部116及び角度制御部158を有効又は無効に切替える。図11に、制御モードと、それぞれの制御部(力制御部114、トルク制御部152、位置姿勢制御部116及び角度制御部158)の有効又は無効との対応関係の一例を示す。この図11に示すように、力制御部114を有効にする場合には位置姿勢制御部116を有効にし、力制御部114を無効にする場合には角度制御部158を有効にするのが好ましいが、この他の組合せも可能である。
The
次に、切替部119により位置姿勢制御部116が無効にされた場合、及び、切替部119により角度制御部158が無効にされた場合での、それぞれの無効化方法について説明する。
Next, when the position /
位置姿勢制御部116を無効にする場合には、例えば、位置姿勢制御部116による演算結果に関わらず、位置姿勢制御部116は常に0を出力すればよい。又は、位置姿勢制御部116が係数乗算部1162のゲインを0にしても同じ効果が得られる。この他、指令値合成部117の動作を変更し、力制御部114の演算結果をそのまま指令値変換部118に出力し、位置姿勢制御部116の演算結果が、メイン制御部11により演算される角速度の指令値に反映されないようにしてもよい。なお、力制御部114と位置姿勢制御部116の両方が無効となった場合には、指令値合成部117は常に0を出力することでも、両方の制御動作を無効化できる。また、位置姿勢制御部116は、自身の動作を停止してもよい。
When disabling the position /
角度制御部158を無効にする場合には、例えば、角度制御部158による演算結果に関わらず、角度制御部158は常に0を出力すればよい。又は、角度制御部158がP制御部1582のゲインを0にしても同じ効果が得られる。この他、指令値合成部159の動作を変更し、メイン制御部11により演算された角速度の指令値のうちの対応する関節での角速度の指令値及びトルク制御部152により演算されたトルク制御の指令値だけを合成して、角度制御部158の演算結果が速度制御部1572の制御に反映されないようにしてもよい。また、角度制御部158は、自身の動作を停止してもよい。
When disabling the
また、切替部119は上記の4つの制御部を有効又は無効に切替えるだけではなく、それぞれの制御部のゲイン等のような制御設定も同時に切替えてもよい。
Further, the
なお上記では、トルク制御部152により演算されたトルク制御の指令値が、メイン制御部11により演算された角速度の指令値のうちの対応する関節での角速度の指令値、及び、角度制御部158により演算された角度制御の指令値と合成される場合を示した。しかしながら、これに限らず、実施の形態1に係るロボット制御装置1のように、トルク制御の指令値が、速度制御部1542により演算された角速度制御の指令値と合成されるようにしてもよい。この場合は、関節制御部15は、メイン制御部11により演算された角速度の指令値のうちの対応する関節での角速度の指令値、及び、角度制御部158により演算された角度制御の指令値を合成し、速度制御部1542はその合成結果に基づいて当該関節での角速度を制御する。
In the above, the torque control command value calculated by the
実施の形態3に係るロボット制御装置1では、力制御に加え、位置姿勢の制御もメイン制御部11と関節制御部15とで切替え可能となる。これにより、実施の形態3に係るロボット制御装置1では、実施の形態1,2に係るロボット制御装置1に対し、制御性能が向上し、調整が容易になるといった効果が期待できる。
In the
実施の形態4.
実施の形態1~3では、切替部119の動作を、ロボット2を動作させるプログラムから直接指定する、又は、ロボット制御装置1の内部又は外部に設けられた記憶装置に手動で書込むといった方法で指定する、ということを想定していた。しかしながら、これに限らず、切替部119の動作を自動で指定することも可能である。
Embodiment 4.
In the first to third embodiments, the operation of the
図12は実施の形態4に係るロボット制御装置1の構成例を示す図である。図12に示す実施の形態4に係るロボット制御装置1は、図1,7,9に示す実施の形態1~3に係るロボット制御装置1に対し、分析部121及び判定部122を追加している。実施の形態4に係るロボット制御装置1におけるその他の構成は実施の形態1~3に係るロボット制御装置1と同様であり、同一の符号を付してその説明を省略する。なお図12では、メイン制御部11が有する構成のうち、切替部119、分析部121及び判定部122以外の構成については記載を省略している。
FIG. 12 is a diagram showing a configuration example of the
分析部121は、ロボット2が行う作業内容、ロボット2を動作させるプログラム、及び、ロボット2の制御設定のうちの1つ以上を分析する。分析部121は、作業分析部1211、プログラム分析部1212及び制御設定分析部1213のうちの1つ以上の構成を有する。図12では、分析部121が、作業分析部1211、プログラム分析部1212及び制御設定分析部1213を有する場合を示している。
The
作業分析部1211は、ロボット2が実行しようとする作業を分析する。すなわち、作業分析部1211は、通信等により、ロボット2が次にどの力作業(例えば、研磨、切削、塗装又は嵌合)を行うかを取得する。
The
プログラム分析部1212は、ロボット2を動作させるプログラムのコマンド又はその引数を分析する。すなわち、プログラム分析部1212は、通信等により、ロボット2で次に実行されるコマンド又はその引数を取得する。
The
制御設定分析部1213は、力制御のゲイン等のような制御設定を分析する。すなわち、制御設定分析部1213は、通信等により、ロボット制御装置1に現在設定されているゲイン又はコンプライアンス等の設定情報を取得する。
The control setting
判定部122は、分析部121による分析結果に基づいて、切替部119による切替えを決定する。
The
ここで、判定部122は、作業分析部1211によりロボット2が実行しようとする作業が分析された場合、その分析結果及び事前に決められたルールに基づいて、どの制御モードが適切かを判定する。例えば、判定部122は、作業分析部1211によりロボット2の次の作業が研磨であると分析された場合、力制御部114を有効にしてトルク制御部152は無効にする。
Here, when the work to be executed by the
また、判定部122は、プログラム分析部1212によりロボット2を動作させるプログラムのコマンド又はその引数が分析された場合、その分析結果及び事前に決められたルールに基づいて、どの制御モードが適切かを判定する。例えば、判定部122は、プログラム分析部1212によりロボット2が次に押し付けを実行するコマンドが取得された場合、力制御部114を有効にしてトルク制御部152は無効にする。また例えば、判定部122は、プログラム分析部1212によりロボット2が次に面合わせを実行するコマンドが取得された場合、力制御部114を無効にしてトルク制御部152は有効にする。なお、判定部122は、同じコマンドでも引数によって適切な切替えが異なる場合、引数も含めて切替部119の切替えを決定する。
Further, when the command of the program for operating the
また、判定部122は、制御設定分析部1213により力制御のゲイン等のような制御設定が分析された場合、その分析結果及び事前に決められたルールに基づいて、どの制御モードが適切かを判定する。例えば、判定部122は、制御設定分析部1213によりデカルト座標系における特定の一方向だけ力制御のゲイン(GF)が設定されていると分析された場合、デカルト座標系の6軸で連携した精密な力制御が必要と考えられるので、力制御部114を有効にしてトルク制御部152は無効にする。一方、判定部122は、上記のような精密な力制御が不要であり、全ての関節でコンプライアンスを高くすれば十分である場合には、力制御部114を無効にしてトルク制御部152は有効にする。
Further, when the control setting
なお上記では、判定部122が、1つの分析結果に基づいて、切替部119の動作を決定する場合を示した。しかしながら、これに限らず、判定部122は、複数の分析結果から総合的に切替部119の動作を決定する、又は、複数の分析結果の多数決を取って切替部119の動作を決定する、といった方法で動作を決定してもよい。
In the above, the case where the
判定部122による判定結果は、通信によって切替部119に伝達される。そして、切替部119は、この判定結果に基づいて、メイン制御部11及び関節制御部15の動作を切替える。これにより、力制御(及び位置姿勢制御)がどちらの制御部で実行されるかが切替わり、ロボット制御装置1の挙動が変わる。
The determination result by the
実施の形態4に係るロボット制御装置1では、実施の形態1~3に係るロボット制御装置1に対し、ユーザがどの制御部を有効にし、無効にするかをその都度手動で指定しなくても、適切な切替えが自動で行われるので、ユーザにとって使い易くなるという効果がある。
In the
実施の形態5.
実施の形態4に係るロボット制御装置1では、切替部119の動作が自動化された場合を示した。しかしながら、このロボット制御装置1では、その切替部119の動作を決める判定部122の動作は事前に決める必要があった。これに対し、この判定部122の動作を学習によって自動で決めることも可能である。
Embodiment 5.
In the
図13は実施の形態5に係るロボット制御装置1の構成例を示す図である。図13に示す実施の形態5に係るロボット制御装置1は、図12に示す実施の形態4に係るロボット制御装置1に対し、学習部123及びロボットシミュレータ124を追加している。実施の形態5に係るロボット制御装置1におけるその他の構成は実施の形態4に係るロボット制御装置1と同様であり、同一の符号を付してその説明を省略する。なお図13では、メイン制御部11が有する構成のうち、切替部119、分析部121、判定部122、学習部123及びロボットシミュレータ124以外の構成については記載を省略している。
FIG. 13 is a diagram showing a configuration example of the
学習部123は、ロボット2が行う作業内容、ロボット2を動作させるプログラム及びロボット2の制御設定のうちの1つ以上と、切替部119の切替えによるロボット2の動作における性能値との関係を学習する。
The
この際、学習部123は、まず、ロボット2が行う作業内容、ロボット2を動作させるプログラム、及び、ロボット2の制御設定のうちの1つ以上の組合せを多数用意し、その組合わせでロボットシミュレータ124のロボット2を模擬的に動作させ、ロボット2の位置姿勢の指令値及び位置姿勢の現在値、並びに、力の指令値及び力の現在値等を取得する。学習部123は、この処理を切替部119が実行可能な全ての組合わせについて行う。そして、学習部123は、位置姿勢の指令値と位置姿勢の現在値との偏差、及び、力の指令値と力の現在値との偏差等を用いて性能を評価し、性能値を算出する。
At this time, the
より具体的には、学習部123は、ロボット2が行う作業内容、作業開始位置を基準とした位置指令の軌道パタン、作業開始時からの力指令値の時系列パタン、又は、ツール座標系を基準とした各軸のコンプライアンス設定等と、切替部119の制御モード毎の性能値との関係を、教師有り学習で学習する。例えば図14に示すように、学習部123は、作業内容、位置指令軌道、力指令時系列、及び、コンプライアンス設定毎に、制御モード毎の性能値を求め、収集する。学習部123は、上記の処理を多数の事例について行う。なお、ロボットシミュレータ124は必須の構成ではないが、学習部123による学習には非常に多くのデータが必要であるため、その学習は実機ではなくロボットシミュレータ124で行う方がよい。
More specifically, the
学習部123による学習が成功すると、その学習結果に基づいて、これから実行しようとするロボット2の作業内容、ロボット2を動作させるプログラム、又は、ロボット2の制御設定から、切替部119の制御モード毎の性能値を予測することが可能となる。そのため、判定部122は、学習部123による学習結果(性能値)に基づいて、切替部119による切替えを決定する。すなわち、判定部122は、最も高い性能を出すことが予測される制御モードを最良と判断し、その結果を切替部119に通知する。そして、切替部119はその通知に基づいて、ロボット制御装置1内の制御部を有効又は無効に切替える。
When the learning by the
なお、判定部122は、学習済みのデータに同様な事例が無い場合といった理由で適切な判定が難しい場合は、学習に基づいた判定ではなく、実施の形態4のように、事前に人が決めたルールに従って判定するようにしてもよい。
If it is difficult to make an appropriate determination because there is no similar case in the learned data, the
実施の形態5に係るロボット制御装置1では、判定部122の動作を前もって人が決めなくても、学習した結果に基づいて適切な切替えが自動で決められる。そのため、実施の形態5に係るロボット制御装置1は、実施の形態4に係るロボット制御装置1に対し、切替えルールを決めることが容易となり、また、制御性能が更に向上するといった効果が期待できる。
In the
また、本願発明はその発明の範囲内において、各実施の形態の自由な組合わせ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。例えば、実施の形態1~5では関節角制御部が速度制御を行う例を用いて説明したが、加速度又は電流等の他の物理量の制御を介して位置姿勢の制御を行うことも可能である。 Further, in the present invention, within the scope of the invention, it is possible to freely combine each embodiment, modify any component of each embodiment, or omit any component in each embodiment. be. For example, in the first to fifth embodiments, the joint angle control unit controls the speed, but it is also possible to control the position and posture through the control of other physical quantities such as acceleration or current. ..
1 ロボット制御装置
2 ロボット
11 メイン制御部
15 関節制御部
21 モータ
22 センサ
23 トルクセンサ
24 エンコーダ
111 外乱トルク推定部
112 力演算部
113 トルク指令値変換部
114 力制御部
115 位置姿勢演算部
116 位置姿勢制御部
117 指令値合成部(メイン側指令値合成部)
118 指令値変換部
119 切替部
120 逆運動学演算部
121 分析部
122 判定部
123 学習部
124 ロボットシミュレータ
151 トルク取得部
152 トルク制御部
153 モータ制御部
154 関節角制御部
155 指令値合成部(関節側指令値合成部)
156 指令値合成部(関節側指令値合成部)
157 関節角制御部
158 角度制御部
159 指令値合成部(関節側指令値合成部)
1121 減算器
1122 係数乗算部
1131 係数乗算部
1132 加算器
1141 偏差演算器
1142 係数乗算部
1161 偏差演算器
1162 係数乗算部
1171 加算器
1181 係数乗算部
1211 作業分析部
1212 プログラム分析部
1213 制御設定分析部
1521 減算器
1522 PID制御部
1541 速度変換部
1542 速度制御部
1543 減算器
1544 PI制御部
1551 加算器
1561 加算器
1571 速度変換部
1572 速度制御部
1573 減算器
1574 PI制御部
1581 減算器
1582 P制御部
1591 加算器
1
118 Command
156 Command value synthesis unit (joint side command value synthesis unit)
157 Joint
1121 subtractor 1122
Claims (9)
前記ロボットが有する関節毎に設けられ、対応する関節でのトルクの現在値及び前記メイン制御部により演算されたトルクの指令値に基づいて当該関節でのトルク制御の指令値を演算し、当該トルク制御の指令値及び前記メイン制御部により演算された制御指令値に基づいて当該関節に設けられたモータに対する指令値を演算する関節制御部と、
前記メイン制御部による力制御の指令値の演算及び前記関節制御部によるトルク制御の指令値の演算を有効又は無効に切替える切替部と
を備えたロボット制御装置。 The command value of force control and the command value of torque for each joint of the robot are calculated based on the command value of the force of the robot and the current value of the force, and the control command for each joint is calculated based on the command value of the force control. The main control unit that calculates the value and
A command value for torque control at the joint is calculated based on the current value of the torque at the corresponding joint and the command value of the torque calculated by the main control unit, which is provided for each joint of the robot, and the torque is calculated. A joint control unit that calculates a command value for a motor provided in the joint based on a control command value and a control command value calculated by the main control unit, and a joint control unit.
A robot control device including a switching unit for switching between valid or invalid calculation of a command value for force control by the main control unit and calculation of a command value for torque control by the joint control unit.
前記ロボットが有する関節毎の角度の現在値に基づいて重力トルクを含む外乱トルクを推定する外乱トルク推定部と、
前記ロボットが有する関節毎のトルクの現在値及び前記外乱トルク推定部により推定された外乱トルクに基づいて当該ロボットの力の現在値を演算する力演算部と、
前記ロボットの力の指令値及び前記外乱トルク推定部により推定された外乱トルクに基づいて当該ロボットが有する関節毎のトルクの指令値を演算するトルク指令値変換部とを備えた
ことを特徴とする請求項1記載のロボット制御装置。 The main control unit
A disturbance torque estimation unit that estimates a disturbance torque including gravity torque based on the current value of the angle of each joint of the robot, and a disturbance torque estimation unit.
A force calculation unit that calculates the current value of the robot's force based on the current value of the torque of each joint of the robot and the disturbance torque estimated by the disturbance torque estimation unit.
It is characterized by having a torque command value conversion unit that calculates a command value of torque for each joint of the robot based on a command value of the force of the robot and a disturbance torque estimated by the disturbance torque estimation unit. The robot control device according to claim 1.
トルク制御の指令値及び前記メイン制御部により演算された制御指令値のうちの対応する関節での制御指令値を合成することで、前記モータに対する指令値を得る関節側指令値合成部を備えた
ことを特徴とする請求項1又は請求項2記載のロボット制御装置。 The joint control unit
It is provided with a joint-side command value synthesizer that obtains a command value for the motor by synthesizing the control command value at the corresponding joint among the command value of torque control and the control command value calculated by the main control unit. The robot control device according to claim 1 or 2, wherein the robot control device is characterized by the above.
前記関節制御部は、
前記メイン制御部により演算された角速度の指令値に基づいて対応する関節での角速度制御の指令値を演算する関節角制御部と、
トルク制御の指令値及び前記関節角制御部により演算された角速度制御の指令値を合成することで、前記モータに対する指令値を得る関節側指令値合成部とを備えた
ことを特徴とする請求項1又は請求項2記載のロボット制御装置。 The main control unit calculates the command value of the angular velocity as the control command value, and then
The joint control unit
A joint angle control unit that calculates an angular velocity control command value at a corresponding joint based on an angular velocity command value calculated by the main control unit.
The claim is characterized by comprising a joint-side command value synthesizing unit that obtains a command value for the motor by synthesizing a torque control command value and an angular velocity control command value calculated by the joint angle control unit. 1 or the robot control device according to claim 2.
前記関節制御部は、
トルク制御の指令値及び前記メイン制御部により演算された角速度の指令値のうちの対応する関節での角速度の指令値を合成する関節側指令値合成部と、
前記関節側指令値合成部による合成結果に基づいて対応する関節での角速度制御の指令値を演算することで、前記モータに対する指令値を得る関節角制御部とを備えた
ことを特徴とする請求項1又は請求項2記載のロボット制御装置。 The main control unit calculates the command value of the angular velocity as the control command value, and then
The joint control unit
A joint-side command value synthesizer that synthesizes the command value of the angular velocity at the corresponding joint among the command value of the torque control and the command value of the angular velocity calculated by the main control unit.
A claim characterized by being provided with a joint angle control unit that obtains a command value for the motor by calculating a command value for angular speed control at a corresponding joint based on a synthesis result by the joint side command value synthesis unit. Item 1 or the robot control device according to claim 2.
前記ロボットが有する関節毎の角度の現在値に基づいて、当該ロボットの位置姿勢の現在値を演算する位置姿勢演算部と、
位置姿勢の指令値に基づいて、前記ロボットが有する関節毎の角度の指令値を演算する逆運動学演算部と、
位置姿勢の指令値及び前記位置姿勢演算部により演算された位置姿勢の現在値に基づいて位置姿勢制御の指令値を演算する位置姿勢制御部と、
力制御の指令値及び前記位置姿勢制御部により演算された位置姿勢制御の指令値を合成することで、前記ロボットが有する関節毎の制御指令値を得るメイン側指令値合成部とを備え、
前記関節制御部は、
対応する関節での角度の現在値及び前記逆運動学演算部により演算された角度の指令値に基づいて対応する関節での角度制御の指令値を演算する角度制御部と、
トルク制御の指令値、前記角度制御部により演算された角度制御の指令値及び前記メイン制御部により演算された制御指令値のうちの対応する関節での制御指令値を合成する関節側指令値合成部とを備え、
前記切替部は、前記メイン制御部による力制御の指令値の演算及び位置姿勢制御の指令値の演算、並びに、前記関節制御部によるトルク制御の指令値の演算及び角度制御の指令値の演算を有効又は無効に切替える
ことを特徴とする請求項1から請求項5のうちの何れか1項記載のロボット制御装置。 The main control unit
A position / posture calculation unit that calculates the current value of the position / posture of the robot based on the current value of the angle of each joint of the robot.
An inverse kinematics calculation unit that calculates the command value of the angle of each joint of the robot based on the command value of the position and posture.
A position / posture control unit that calculates a position / posture control command value based on a position / posture command value and a position / posture current value calculated by the position / posture calculation unit.
It is equipped with a main-side command value synthesis unit that obtains control command values for each joint possessed by the robot by synthesizing the command values for force control and the command values for position / attitude control calculated by the position / attitude control unit.
The joint control unit
An angle control unit that calculates the command value for angle control at the corresponding joint based on the current value of the angle at the corresponding joint and the command value of the angle calculated by the inverse kinematics calculation unit.
Joint side command value synthesis that synthesizes the control command value at the corresponding joint among the command value of torque control, the command value of angle control calculated by the angle control unit, and the control command value calculated by the main control unit. With a part,
The switching unit calculates a command value for force control and a command value for position / attitude control by the main control unit, and also calculates a command value for torque control and a command value for angle control by the joint control unit. The robot control device according to any one of claims 1 to 5, wherein the robot control device is switched between valid and invalid.
前記分析部による分析結果に基づいて、前記切替部による切替えを決定する判定部とを備えた
ことを特徴とする請求項1から請求項6のうちの何れか1項記載のロボット制御装置。 An analysis unit that analyzes one or more of the work contents performed by the robot, the program for operating the robot, and the control settings of the robot.
The robot control device according to any one of claims 1 to 6, further comprising a determination unit for determining switching by the switching unit based on an analysis result by the analysis unit.
前記判定部は、前記学習部により学習された性能値に基づいて、前記切替部による切替えを決定する
ことを特徴とする請求項7記載のロボット制御装置。 A learning unit that learns the relationship between one or more of the work contents performed by the robot, the program for operating the robot, and the control settings of the robot, and the performance value in the operation of the robot by switching the switching unit. When,
The robot control device according to claim 7, wherein the determination unit determines switching by the switching unit based on the performance value learned by the learning unit.
前記メイン制御部が、前記ロボットの力の指令値及び力の現在値に基づいて力制御の指令値及び当該ロボットが有する関節毎のトルクの指令値を演算し、当該力制御の指令値に基づいて当該関節毎の制御指令値を演算し、
前記関節制御部が、対応する関節でのトルクの現在値及び前記メイン制御部により演算されたトルクの指令値に基づいて当該関節でのトルク制御の指令値を演算し、当該トルク制御の指令値及び前記メイン制御部により演算された制御指令値に基づいて当該関節に設けられたモータに対する指令値を演算し、
切替部が、前記メイン制御部による力制御の指令値の演算及び前記関節制御部によるトルク制御の指令値の演算を有効又は無効に切替える
ことを特徴とするロボット制御方法。 It is a robot control method using a robot control device including a main control unit and a joint control unit provided for each joint of the robot.
The main control unit calculates a force control command value and a torque command value for each joint of the robot based on the force command value of the robot and the current force value, and is based on the force control command value. The control command value for each joint is calculated.
The joint control unit calculates a torque control command value at the joint based on the current value of the torque at the corresponding joint and the torque command value calculated by the main control unit, and the torque control command value. And, based on the control command value calculated by the main control unit, the command value for the motor provided in the joint is calculated.
A robot control method characterized in that a switching unit switches between valid or invalid calculation of a command value for force control by the main control unit and calculation of a command value for torque control by the joint control unit.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020190366A JP2022079273A (en) | 2020-11-16 | 2020-11-16 | Robot control device and robot control method |
CN202111325613.9A CN114505849A (en) | 2020-11-16 | 2021-11-10 | Robot control device and robot control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020190366A JP2022079273A (en) | 2020-11-16 | 2020-11-16 | Robot control device and robot control method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022079273A true JP2022079273A (en) | 2022-05-26 |
Family
ID=81548651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020190366A Withdrawn JP2022079273A (en) | 2020-11-16 | 2020-11-16 | Robot control device and robot control method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2022079273A (en) |
CN (1) | CN114505849A (en) |
-
2020
- 2020-11-16 JP JP2020190366A patent/JP2022079273A/en not_active Withdrawn
-
2021
- 2021-11-10 CN CN202111325613.9A patent/CN114505849A/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
CN114505849A (en) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gierlak et al. | Adaptive position/force control for robot manipulator in contact with a flexible environment | |
JP4896276B2 (en) | ROBOT, ROBOT CONTROL DEVICE, CONTROL METHOD, AND CONTROL PROGRAM | |
Braganza et al. | Tracking control for robot manipulators with kinematic and dynamic uncertainty | |
KR20140147267A (en) | Control Method and Device for Position-Based Impedance Controlled Industrial Robot | |
WO2001038048A1 (en) | Robot controller | |
KR102312368B1 (en) | System, method for controlling redundant robot, and a recording medium having computer readable program for executing the method | |
CN107336244B (en) | Intuitive force guiding method and device for robot | |
Madsen et al. | Adaptive feedforward control of a collaborative industrial robot manipulator using a novel extension of the Generalized Maxwell-Slip friction model | |
US20190287007A1 (en) | Machine learning device, servo control device, servo control system, and machine learning method | |
JP2013136123A (en) | Assisting device and assisting method for teaching operation for robot | |
JP2014136260A (en) | Control device | |
JP2007076807A (en) | Power assist device and its adaptive model prediction control method | |
JP2019020826A (en) | Force control device, force control method and force control program | |
JP2020004080A (en) | Output device, control device, and method of outputting evaluation function value | |
Escorcia-Hernández et al. | A new solution for machining with RA-PKMs: Modelling, control and experiments | |
Gracia et al. | Cooperative transport tasks with robots using adaptive non-conventional sliding mode control | |
JP2008217260A (en) | Force feedback apparatus | |
JP2007102748A (en) | Position controller, method and program for controlling position | |
JP2022079273A (en) | Robot control device and robot control method | |
Baptista et al. | Fuzzy predictive algorithms applied to real-time force control | |
JPH05111889A (en) | Control of variable control type robot | |
Ren et al. | Robust adaptive multi-task tracking control of redundant manipulators with dynamic and kinematic uncertainties and unknown disturbances | |
US8670869B2 (en) | Robot controller | |
JPH10111701A (en) | Learning-type automatic cell device and learning method | |
US20210138652A1 (en) | Robot Control Using Model-Predictive Interaction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20230726 |