JP5433304B2 - Robot control apparatus and method - Google Patents

Robot control apparatus and method Download PDF

Info

Publication number
JP5433304B2
JP5433304B2 JP2009124330A JP2009124330A JP5433304B2 JP 5433304 B2 JP5433304 B2 JP 5433304B2 JP 2009124330 A JP2009124330 A JP 2009124330A JP 2009124330 A JP2009124330 A JP 2009124330A JP 5433304 B2 JP5433304 B2 JP 5433304B2
Authority
JP
Japan
Prior art keywords
control
correction
axis
value
joint drive
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.)
Active
Application number
JP2009124330A
Other languages
Japanese (ja)
Other versions
JP2010269421A (en
Inventor
英紀 田中
哲也 久保田
潤 藤森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawasaki Motors Ltd
Original Assignee
Kawasaki Jukogyo KK
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kawasaki Jukogyo KK filed Critical Kawasaki Jukogyo KK
Priority to JP2009124330A priority Critical patent/JP5433304B2/en
Publication of JP2010269421A publication Critical patent/JP2010269421A/en
Application granted granted Critical
Publication of JP5433304B2 publication Critical patent/JP5433304B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)
  • Numerical Control (AREA)

Description

本発明は、ロボットの制御装置及び方法に関する。   The present invention relates to a robot control apparatus and method.

特許文献1に記載の従来技術に係るロボット制御装置は、ロボットのアームの各駆動軸の回転量を示す各軸値を入力する入力手段と、入力手段によって入力された各軸値を、直交座標系におけるロボットのアーム先端の位置およびロボットの姿勢を示す位置姿勢値に順変換する順変換手段と、順変換手段によって順変換された位置姿勢値を、ロボット固有の誤差に基づいて補正する補正手段と、補正手段によって補正された位置姿勢値を、各軸値に逆変換する逆変換手段と、逆変換手段によって逆変換された各軸値をロボットに指示する指示手段とを備える。これにより、ロボットの各軸値による教示に対してもロボットの位置決めを精度高く制御することができる。   The robot control apparatus according to the prior art described in Patent Document 1 includes an input unit that inputs each axis value indicating the amount of rotation of each drive shaft of a robot arm, and each axis value input by the input unit is represented by orthogonal coordinates. Forward conversion means for forward conversion into position and orientation values indicating the position of the robot arm tip in the system and the posture of the robot, and correction means for correcting the position and orientation values forward-converted by the forward conversion means based on errors inherent in the robot And an inverse conversion means for inversely converting the position / orientation value corrected by the correction means into each axis value, and an instruction means for instructing the robot of each axis value inversely converted by the inverse conversion means. As a result, the positioning of the robot can be controlled with high accuracy even for teaching by each axis value of the robot.

特開2006−159361号公報。JP 2006-159361 A.

岡田拓史ほか、「多関節ロボット機構誤差補正方式」、日本機械学会論文集(C編)、51巻、第462号、324頁−331頁、昭和60年2月。Okada Takushi et al., “Multi-joint robot mechanism error correction method”, Transactions of the Japan Society of Mechanical Engineers (C), 51, 462, 324-331, February 1985.

従来技術に係る多関節ロボットにおいては、当該多関節ロボットの直交座標系における位置及び姿勢を示す位置姿勢値を各関節の駆動軸の回転量(以下、軸値という。)のデータに一意に逆変換できない特異点とよばれる位置が存在することが知られている。しかしながら、特許文献1には、補正手段によって補正された位置姿勢値を各軸値に逆変換できない場合の動作については記載されていない。このため、特異点では、ロボットを停止させるか、補正前の位置姿勢値に基づいてロボットを運転させるなどの制御を行う必要があった。このため、多関節ロボットを連続経路制御(以下、CP(Continuous Path)制御という。)することにより、スポット溶接、アーク溶接又はレーザ加工などの軌道の制御が必要とされる動作を行わせているときに、特異点では軌道が急激に変化してしまうという課題があった。また、特異点の近傍でCP制御からPTP(Poin to Point)制御に切り換えた場合、PTP制御を行っている間はロボットの軌道を所望の軌道に一致させることができないという課題があった。   In the articulated robot according to the prior art, the position / orientation value indicating the position and orientation in the Cartesian coordinate system of the articulated robot is uniquely inverted to the rotation amount (hereinafter referred to as axis value) data of the drive shaft of each joint. It is known that there are positions called singular points that cannot be converted. However, Patent Document 1 does not describe an operation in a case where the position / orientation value corrected by the correcting unit cannot be converted back to each axis value. For this reason, at the singular point, it is necessary to perform control such as stopping the robot or operating the robot based on the position and orientation values before correction. For this reason, by performing continuous path control (hereinafter referred to as CP (Continuous Path) control) of the articulated robot, an operation that requires control of the trajectory such as spot welding, arc welding, or laser processing is performed. In some cases, the trajectory suddenly changed at a singular point. In addition, when switching from CP control to PTP (Point to Point) control in the vicinity of a singular point, there is a problem that the robot trajectory cannot be matched with a desired trajectory during PTP control.

本発明の目的は以上の問題点を解決し、補正された位置姿勢値を一意の各軸値に逆変換できない特異点において、ロボットの位置決め精度を従来技術に比較して向上できるロボット制御装置及び方法を提供することにある。   An object of the present invention is to solve the above problems and to provide a robot control device capable of improving the positioning accuracy of a robot compared to the prior art at a singular point where a corrected position and orientation value cannot be converted back into unique axis values. It is to provide a method.

第1の発明に係るロボット制御装置は、少なくとも1つの関節駆動軸を介して複数のリンクが連結してなるロボットの制御点の位置及び姿勢を、所定の制御タイミング毎に制御する制御手段を備えたロボット制御装置において、
上記制御手段は、
上記各制御タイミングにおける上記制御点の位置及び姿勢を表す位置姿勢指令値に基づいて、上記各制御タイミングにおいて、
(a)上記位置姿勢指令値を上記各関節駆動軸の回転量を表す補正前の各軸指令値に逆変換し、
(b)所定の位置姿勢を指示したときの実際の位置姿勢におけるロボット固有の誤差に基づいて、上記位置姿勢指令値を補正して、補正位置姿勢指令値を算出し、
(c)上記補正位置姿勢指令値を上記各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、
(c1)逆変換できるときに、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換し、上記各補正軸指令値から上記補正前の各軸指令値を減算することにより各関節駆動軸の補正値を算出して記憶手段に格納する一方、
(c2)逆変換できないときに、上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出し、上記各推測補正値を上記補正前の各軸指令値に加算することにより上記各補正軸指令値を算出するとともに、上記各推測補正値を各関節駆動軸の補正値として上記記憶手段に格納し、
(d)上記各補正軸指令値に従って上記各関節駆動軸を回転させるように制御することを特徴とする。
According to a first aspect of the present invention, there is provided a robot control apparatus including a control unit that controls the position and orientation of a control point of a robot formed by connecting a plurality of links via at least one joint drive shaft at predetermined control timings. In the robot controller
The control means includes
Based on the position and orientation command value representing the position and orientation of the control point at each control timing, at each control timing,
(A) The position / orientation command value is inversely converted into each axis command value before correction representing the rotation amount of each joint drive shaft,
(B) correcting the position / orientation command value based on a robot-specific error in the actual position / orientation when a predetermined position / orientation is instructed, and calculating a corrected position / orientation command value;
(C) Determining whether or not the corrected position / orientation command value can be inversely converted into each corrected axis command value representing the rotation amount of each joint drive shaft;
(C1) When reverse conversion is possible, each joint drive is performed by reversely converting the corrected position / orientation command value into the correction axis command values and subtracting the axis command values before correction from the correction axis command values. While calculating the axis correction value and storing it in the storage means,
(C2) When reverse conversion cannot be performed, an estimated correction value for each joint drive axis is calculated based on the correction value for each joint drive axis stored in the storage means at at least one control timing before the control timing; The corrected axis command values are calculated by adding the estimated correction values to the uncorrected axis command values, and the estimated correction values are stored in the storage means as correction values of the joint drive axes. ,
(D) Control is performed so that the joint drive shafts are rotated according to the correction axis command values.

上記ロボット制御装置において、上記制御手段は、上記逆変換できないときに、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出し、上記各推測補正値を上記補正前の各軸指令値に加算することにより上記各補正軸指令値を算出するとともに、上記各推測補正値を各関節駆動軸の補正値として上記記憶手段に格納することに代えて、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出し、上記各推測補正値を上記補正前の各軸指令値に加算することにより上記各補正軸指令値を算出することを特徴とする。
In the robot control apparatus, when the control means cannot perform the reverse conversion,
An estimated correction value for each joint drive axis is calculated based on the correction value for each joint drive axis stored in the storage means at at least one control timing before the control timing, and each estimated correction value is calculated before the correction. In addition to calculating each correction axis command value by adding to each axis command value, and storing each estimated correction value as a correction value for each joint drive axis in the storage means,
An estimated correction value for each joint drive axis is calculated based on the correction value for each joint drive axis stored in the storage means at at least one control timing before the control timing, and each estimated correction value is calculated before the correction. The correction axis command values are calculated by adding to each axis command value.

また、上記ロボット制御装置において、上記制御手段は、
上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できる制御タイミングにおいて、当該制御タイミングが上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できない最新の制御タイミングから所定の回数の制御タイミング以内であるか否かを判断し、
上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できる制御タイミングが、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できない最新の制御タイミングから所定の回数の制御タイミング以内であるときは、上記補正位置姿勢指令値を逆変換して得られる各補正軸指令値から上記各軸指令値を減算し、当該減算結果の補正値及び上記制御タイミングの直前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各補正値に基づいて各関節駆動軸の推測補正値を算出することを特徴とする。
In the robot control apparatus, the control means includes
At the control timing at which the corrected position / orientation command value can be converted back to the respective corrected axis command values, the control timing is a predetermined number of times from the latest control timing at which the corrected position / attitude command value cannot be converted back to the corrected axis command values To determine whether it is within the control timing of
The control timing at which the corrected position / orientation command value can be converted back to the corrected axis command value is within a predetermined number of times from the latest control timing at which the corrected position / attitude command value cannot be converted back to the corrected axis command value. When the correction position / orientation command value is inversely converted, each axis command value is subtracted from each correction axis command value obtained by inversely converting the correction position / orientation command value, and at least one control immediately before the correction value of the subtraction result and the control timing. An estimated correction value for each joint drive axis is calculated based on each correction value stored in the storage means at the timing.

さらに、上記ロボット制御装置において、上記制御手段は、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値の平均値を、上記推測補正値とすることを特徴とする。   Further, in the robot control device, when the control means cannot perform the reverse conversion, each joint is based on the correction value of each joint drive shaft stored in the storage means at a plurality of control timings before the control timing. When the estimated correction value of the drive shaft is calculated, an average value of the correction values stored in the storage unit is used as the estimated correction value.

またさらに、上記ロボット制御装置において、上記制御手段は、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値の各差分値に基づいて、上記各関節駆動軸の推測補正値を算出することを特徴とする。   Still further, in the robot control device, when the reverse conversion cannot be performed, each of the control means is based on correction values of the joint drive axes stored in the storage means at a plurality of control timings before the control timing. When calculating the estimated correction value of the joint drive axis, the estimated correction value of each joint drive axis is calculated based on each difference value of each correction value stored in the storage means.

また、上記ロボット制御装置において、上記制御手段は、上記逆変換できないときに、上記制御タイミングの前の1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された補正値を、上記推測補正値とすることを特徴とする。 Further, in the robot control device, when the control unit cannot perform the reverse conversion, each joint is based on a correction value of each joint drive shaft stored in the storage unit at one control timing before the control timing. When the estimated correction value for the drive shaft is calculated, the correction value stored in the storage means is used as each estimated correction value.

さらに、上記ロボット制御装置において、上記制御手段は、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値に対して所定の関数を当てはめ、当該当てはめられた関数を用いて上記各関節駆動軸の推測補正値を算出することを特徴とする。   Further, in the robot control device, when the control means cannot perform the reverse conversion, each joint is based on the correction value of each joint drive shaft stored in the storage means at a plurality of control timings before the control timing. When calculating the estimated correction value of the drive axis, a predetermined function is applied to each correction value stored in the storage unit, and the estimated correction value of each joint drive axis is calculated using the applied function. It is characterized by doing.

またさらに、上記ロボット制御装置において、上記制御手段は、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値に対して予め設定された所定の重みを用いて、上記各補正値の加重平均値を算出し、当該加重平均値を上記推測補正値とすることを特徴とする。 Still further, in the robot control device, when the reverse conversion cannot be performed, each of the control means is based on correction values of the joint drive axes stored in the storage means at a plurality of control timings before the control timing. When calculating the estimated correction value of the joint drive axis, the weighted average value of each correction value is calculated using a predetermined weight set in advance for each correction value stored in the storage unit, The weighted average value is used as each of the estimated correction values.

また、上記ロボット制御装置において、上記制御タイミングの前の複数の制御タイミングは、上記制御タイミングの直前の複数の制御タイミングであることを特徴とする。   In the robot control device, the plurality of control timings before the control timing are a plurality of control timings immediately before the control timing.

第2の発明に係るロボット制御装置は、少なくとも1つの関節駆動軸を介して複数のリンクが連結してなるロボットの制御点の位置及び姿勢を、所定の制御タイミング毎に制御する制御手段を備えたロボット制御装置において、
上記制御手段は、
上記各制御タイミングにおける上記制御点の位置及び姿勢を表す位置姿勢指令値に基づいて、上記各制御タイミングにおいて、
(a)所定の位置姿勢を指示したときの実際の位置姿勢におけるロボット固有の誤差に基づいて、上記位置姿勢指令値を補正して、補正位置姿勢指令値を算出し、
)上記補正位置姿勢指令値を上記各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、
1)逆変換できるときに、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換して当該各補正軸指令値を記憶手段に格納する一方、
2)逆変換できないときに、上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出するとともに上記記憶手段に格納し、
)上記各補正軸指令値に従って上記各関節駆動軸を回転させるように制御することを特徴とする。
According to a second aspect of the present invention, there is provided a robot control apparatus comprising a control means for controlling the position and posture of a control point of a robot formed by connecting a plurality of links via at least one joint drive shaft at predetermined control timings. In the robot controller
The control means includes
Based on the position and orientation command value representing the position and orientation of the control point at each control timing, at each control timing,
(A) correcting the position / orientation command value based on a robot-specific error in the actual position / orientation when a predetermined position / orientation is instructed, and calculating a corrected position / orientation command value;
( B ) determining whether the corrected position / orientation command value can be inversely converted into each corrected axis command value representing the rotation amount of each joint drive shaft;
( B 1) When reverse conversion is possible, the correction position / orientation command value is reversely converted into the correction axis command values and the correction axis command values are stored in the storage means.
( B2 ) When the reverse conversion cannot be performed, each joint drive axis at the control timing is based on the corrected axis command value of each joint drive axis stored in the storage unit at at least one control timing before the control timing. And the correction axis command value is calculated and stored in the storage means,
( C ) Control is performed to rotate the joint drive shafts according to the correction axis command values.

上記ロボット制御装置において、上記制御手段は、上記逆変換できないときに、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出するとともに上記記憶手段に格納することに代えて、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出することを特徴とする。
In the robot control apparatus, when the control means cannot perform the reverse conversion,
Based on the correction axis command value of each joint drive axis stored in the storage means at at least one control timing before the control timing, the correction axis command value of each joint drive axis at the control timing is calculated and Instead of storing in storage means,
Calculating a correction axis command value for each joint drive axis at the control timing based on a correction axis command value for each joint drive axis stored in the storage means at at least one control timing before the control timing; Features.

また、上記ロボット制御装置において、上記制御タイミングの前の少なくとも1つの制御タイミングは、上記制御タイミングの直前の少なくとも1つの制御タイミングであることを特徴とする。 In the robot control device, at least one control timing before the control timing is at least one control timing immediately before the control timing.

第3の発明に係るロボット制御方法は、少なくとも1つの関節駆動軸を介して複数のリンクが連結してなるロボットの制御点の位置及び姿勢を、所定の制御タイミング毎に制御する制御ステップを含むロボット制御方法において、
上記制御ステップは、
上記各制御タイミングにおける上記制御点の位置及び姿勢を表す位置姿勢指令値に基づいて、上記各制御タイミングにおいて、
(a)上記位置姿勢指令値を上記各関節駆動軸の回転量を表す補正前の各軸指令値に逆変換し、
(b)所定の位置姿勢を指示したときの実際の位置姿勢におけるロボット固有の誤差に基づいて、上記位置姿勢指令値を補正して、補正位置姿勢指令値を算出し、
(c)上記補正位置姿勢指令値を上記各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、
(c1)逆変換できるときに、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換し、上記各補正軸指令値から上記補正前の各軸指令値を減算することにより各関節駆動軸の補正値を算出して記憶手段に格納する一方、
(c2)逆変換できないときに、上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出し、上記各推測補正値を上記補正前の各軸指令値に加算することにより上記各補正軸指令値を算出するとともに、上記各推測補正値を各関節駆動軸の補正値として上記記憶手段に格納し、
(d)上記各補正軸指令値に従って上記各関節駆動軸を回転させるように制御することを特徴とする。
A robot control method according to a third aspect of the present invention includes a control step of controlling the position and posture of a control point of a robot formed by connecting a plurality of links via at least one joint drive shaft at every predetermined control timing. In the robot control method,
The above control steps are:
Based on the position and orientation command value representing the position and orientation of the control point at each control timing, at each control timing,
(A) The position / orientation command value is inversely converted into each axis command value before correction representing the rotation amount of each joint drive shaft,
(B) correcting the position / orientation command value based on a robot-specific error in the actual position / orientation when a predetermined position / orientation is instructed, and calculating a corrected position / orientation command value;
(C) Determining whether or not the corrected position / orientation command value can be inversely converted into each corrected axis command value representing the rotation amount of each joint drive shaft;
(C1) When reverse conversion is possible, each joint drive is performed by reversely converting the corrected position / orientation command value into the correction axis command values and subtracting the axis command values before correction from the correction axis command values. While calculating the axis correction value and storing it in the storage means,
(C2) When reverse conversion cannot be performed, an estimated correction value for each joint drive axis is calculated based on the correction value for each joint drive axis stored in the storage means at at least one control timing before the control timing; The corrected axis command values are calculated by adding the estimated correction values to the uncorrected axis command values, and the estimated correction values are stored in the storage means as correction values of the joint drive axes. ,
(D) Control is performed so that the joint drive shafts are rotated according to the correction axis command values.

上記ロボット制御方法において、上記制御ステップは、上記逆変換できないときに、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出し、上記各推測補正値を上記補正前の各軸指令値に加算することにより上記各補正軸指令値を算出するとともに、上記各推測補正値を各関節駆動軸の補正値として上記記憶手段に格納することに代えて、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出し、上記各推測補正値を上記補正前の各軸指令値に加算することにより上記各補正軸指令値を算出することを特徴とする。
In the robot control method, when the control step cannot perform the reverse conversion,
An estimated correction value for each joint drive axis is calculated based on the correction value for each joint drive axis stored in the storage means at at least one control timing before the control timing, and each estimated correction value is calculated before the correction. In addition to calculating each correction axis command value by adding to each axis command value, and storing each estimated correction value as a correction value for each joint drive axis in the storage means,
An estimated correction value for each joint drive axis is calculated based on the correction value for each joint drive axis stored in the storage means at at least one control timing before the control timing, and each estimated correction value is calculated before the correction. The correction axis command values are calculated by adding to each axis command value.

また、上記ロボット制御方法において、上記制御ステップは、
上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できる制御タイミングにおいて、当該制御タイミングが上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できない最新の制御タイミングから所定の回数の制御タイミング以内であるか否かを判断し、
上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できる制御タイミングが、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できない最新の制御タイミングから所定の回数の制御タイミング以内であるときは、上記補正位置姿勢指令値を逆変換して得られる各補正軸指令値から上記各軸指令値を減算し、当該減算結果の補正値及び上記制御タイミングの直前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各補正値に基づいて各関節駆動軸の推測補正値を算出することを特徴とする。
In the robot control method, the control step includes:
At a control timing at which the corrected position / orientation command value can be converted back to the corrected axis command value, the control timing can be a predetermined number of times from the latest control timing at which the corrected position / attitude command value cannot be converted back to the corrected axis command value. To determine whether it is within the control timing of
The control timing at which the corrected position / orientation command value can be converted back to the corrected axis command value is within a predetermined number of times from the latest control timing at which the corrected position / attitude command value cannot be converted back to the corrected axis command value. When the correction position / orientation command value is inversely converted, each axis command value is subtracted from each correction axis command value obtained by inversely converting the correction position / orientation command value, and at least one control immediately before the correction value of the subtraction result and the control timing. An estimated correction value for each joint drive axis is calculated based on each correction value stored in the storage means at the timing.

さらに、上記ロボット制御方法において、上記制御ステップは、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値の平均値を、上記推測補正値とすることを特徴とする。   Furthermore, in the robot control method, when the control step cannot be reversely converted, each joint is based on correction values of each joint drive shaft stored in the storage unit at a plurality of control timings before the control timing. When the estimated correction value of the drive shaft is calculated, an average value of the correction values stored in the storage unit is used as the estimated correction value.

またさらに、上記ロボット制御方法において、上記制御ステップは、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値の各差分値に基づいて、上記各関節駆動軸の推測補正値を算出することを特徴とする。   Still further, in the robot control method, when the reverse conversion cannot be performed, each of the control steps is performed based on correction values of the joint drive axes stored in the storage unit at a plurality of control timings before the control timing. When calculating the estimated correction value of the joint drive axis, the estimated correction value of each joint drive axis is calculated based on each difference value of each correction value stored in the storage means.

また、上記ロボット制御方法において、上記制御ステップは、上記逆変換できないときに、上記制御タイミングの前の1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された補正値を、上記推測補正値とすることを特徴とする。 In the robot control method, when the control step cannot be reversely converted, each joint is based on a correction value of each joint drive axis stored in the storage unit at one control timing before the control timing. When the estimated correction value for the drive shaft is calculated, the correction value stored in the storage means is used as each estimated correction value.

さらに、上記ロボット制御方法において、上記制御ステップは、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値に対して所定の関数を当てはめ、当該当てはめられた関数を用いて上記各関節駆動軸の推測補正値を算出することを特徴とする。   Furthermore, in the robot control method, when the control step cannot be reversely converted, each joint is based on correction values of each joint drive shaft stored in the storage unit at a plurality of control timings before the control timing. When calculating the estimated correction value of the drive axis, a predetermined function is applied to each correction value stored in the storage unit, and the estimated correction value of each joint drive axis is calculated using the applied function. It is characterized by doing.

またさらに、上記ロボット制御方法において、上記制御ステップは、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値に対して予め設定された所定の重みを用いて、上記各補正値の加重平均値を算出し、当該加重平均値を上記推測補正値とすることを特徴とする。 Still further, in the robot control method, when the reverse conversion cannot be performed, each of the control steps is performed based on correction values of the joint drive axes stored in the storage unit at a plurality of control timings before the control timing. When calculating the estimated correction value of the joint drive axis, the weighted average value of each correction value is calculated using a predetermined weight set in advance for each correction value stored in the storage unit, The weighted average value is used as each of the estimated correction values.

また、上記ロボット制御方法において、上記制御タイミングの前の複数の制御タイミングは、上記制御タイミングの直前の複数の制御タイミングであることを特徴とする。   In the robot control method, the plurality of control timings before the control timing are a plurality of control timings immediately before the control timing.

第4の発明に係るロボット制御方法は、少なくとも1つの関節駆動軸を介して複数のリンクが連結してなるロボットの制御点の位置及び姿勢を、所定の制御タイミング毎に制御する制御ステップを含むロボット制御方法において、
上記制御ステップは、
上記各制御タイミングにおける上記制御点の位置及び姿勢を表す位置姿勢指令値に基づいて、上記各制御タイミングにおいて、
(a)所定の位置姿勢を指示したときの実際の位置姿勢におけるロボット固有の誤差に基づいて、上記位置姿勢指令値を補正して、補正位置姿勢指令値を算出し、
)上記補正位置姿勢指令値を上記各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、
1)逆変換できるときに、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換して当該各補正軸指令値を記憶手段に格納する一方、
2)逆変換できないときに、上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出するとともに上記記憶手段に格納し、
)上記各補正軸指令値に従って上記各関節駆動軸を回転させるように制御することを特徴とする。
A robot control method according to a fourth aspect of the present invention includes a control step of controlling the position and posture of a control point of a robot formed by connecting a plurality of links via at least one joint drive shaft at every predetermined control timing. In the robot control method,
The above control steps are:
Based on the position and orientation command value representing the position and orientation of the control point at each control timing, at each control timing,
(A) correcting the position / orientation command value based on a robot-specific error in the actual position / orientation when a predetermined position / orientation is instructed, and calculating a corrected position / orientation command value;
( B ) determining whether the corrected position / orientation command value can be inversely converted into each corrected axis command value representing the rotation amount of each joint drive shaft;
( B 1) When reverse conversion is possible, the correction position / orientation command value is reversely converted into the correction axis command values and the correction axis command values are stored in the storage means.
( B2 ) When the reverse conversion cannot be performed, each joint drive axis at the control timing is based on the corrected axis command value of each joint drive axis stored in the storage unit at at least one control timing before the control timing. And the correction axis command value is calculated and stored in the storage means,
( C ) Control is performed to rotate the joint drive shafts according to the correction axis command values.

上記ロボット制御方法において、上記制御ステップは、上記逆変換できないときに、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出するとともに上記記憶手段に格納することに代えて、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出することを特徴とする。
In the robot control method, when the control step cannot perform the reverse conversion,
Based on the correction axis command value of each joint drive axis stored in the storage means at at least one control timing before the control timing, the correction axis command value of each joint drive axis at the control timing is calculated and Instead of storing in storage means,
Calculating a correction axis command value for each joint drive axis at the control timing based on a correction axis command value for each joint drive axis stored in the storage means at at least one control timing before the control timing; Features.

また、上記ロボット制御方法において、上記制御タイミングの前の少なくとも1つの制御タイミングは、上記制御タイミングの直前の少なくとも1つの制御タイミングであることを特徴とする。

In the robot control method, at least one control timing before the control timing is at least one control timing immediately before the control timing.

本発明に係るロボット制御装置及び方法によれば、補正位置姿勢指令値を各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、逆変換できるときに、補正位置姿勢指令値を各補正軸指令値に逆変換し、各補正軸指令値から補正前の各軸指令値を減算することにより各関節駆動軸の補正値を算出して記憶手段に格納する一方、逆変換できないときに、制御タイミングの前の少なくとも1つの制御タイミングにおいて記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出し、各推測補正値を補正前の各軸指令値に加算することにより各補正軸指令値を算出するとともに、各推測補正値を各関節駆動軸の補正値として記憶手段に格納し、各補正軸指令値に従って各関節駆動軸を回転させるように制御するので、補正位置姿勢指令値を一意の各補正軸指令値に逆変換できない特異点において、ロボットの位置決め精度を従来技術に比較して向上できる。   According to the robot control device and method of the present invention, it is determined whether or not the corrected position / orientation command value can be inversely converted to each corrected axis command value representing the rotation amount of each joint drive shaft, and when the inverse conversion can be performed, The correction position / orientation command value is inversely converted to each correction axis command value, and each axis command value before correction is subtracted from each correction axis command value to calculate a correction value for each joint drive axis and store it in the storage means. On the other hand, when reverse conversion cannot be performed, an estimated correction value of each joint drive axis is calculated based on the correction value of each joint drive axis stored in the storage means at at least one control timing before the control timing, and each estimated correction Each correction axis command value is calculated by adding the value to each axis command value before correction, and each estimated correction value is stored in the storage means as a correction value for each joint drive axis. Rotate the joint drive shaft Since the controlled so, the singularity that can not inversely converted correction position and orientation command values to each unique correction axis command value, the positioning accuracy of the robot can be improved as compared with the prior art.

本発明の第1の実施形態に係るロボット制御装置1と、ロボット7と、コンピュータ50と、ティーチペンダント51と、外部記憶装置52とを備えたロボット制御システムの構成を示すブロック図である。1 is a block diagram illustrating a configuration of a robot control system including a robot control device 1, a robot 7, a computer 50, a teach pendant 51, and an external storage device 52 according to a first embodiment of the present invention. 図1のロボット7の構成を示す構成図である。It is a block diagram which shows the structure of the robot 7 of FIG. 図1のコントローラ2によって実行されるロボット制御処理を示すフローチャートである。It is a flowchart which shows the robot control process performed by the controller 2 of FIG. 図3のステップS8において実行される推測補正値算出処理を示すフローチャートである。It is a flowchart which shows the estimation correction value calculation process performed in step S8 of FIG. 図3のロボット制御処理によって算出される軸指令値θnmと、補正軸指令値θcnmと、補正値Dnmの一例を示すグラフである。4 is a graph showing an example of an axis command value θnm, a corrected axis command value θcnm, and a correction value Dnm calculated by the robot control process of FIG. 本発明の第1の実施形態の第1の変形例に係る推測補正値算出処理を示すフローチャートである。It is a flowchart which shows the estimation correction value calculation process which concerns on the 1st modification of the 1st Embodiment of this invention. 本発明の第1の実施形態の第2の変形例に係る推測補正値算出処理を示すフローチャートである。It is a flowchart which shows the estimation correction value calculation process which concerns on the 2nd modification of the 1st Embodiment of this invention. 本発明の第1の実施形態の第3の変形例に係る推測補正値算出処理を示すフローチャートである。It is a flowchart which shows the estimation correction value calculation process which concerns on the 3rd modification of the 1st Embodiment of this invention. 本発明の第1の実施形態の第4の変形例に係る推測補正値算出処理を示すフローチャートである。It is a flowchart which shows the estimation correction value calculation process which concerns on the 4th modification of the 1st Embodiment of this invention. 本発明の第1の実施形態の第5の変形例に係る推測補正値算出処理を示すフローチャートである。It is a flowchart which shows the estimation correction value calculation process which concerns on the 5th modification of the 1st Embodiment of this invention. 本発明の第2の実施形態に係るロボット制御処理を示すフローチャートである。It is a flowchart which shows the robot control processing which concerns on the 2nd Embodiment of this invention. 図11のステップS86において実行される推測補正値算出処理を示すフローチャートである。It is a flowchart which shows the estimation correction value calculation process performed in step S86 of FIG. 図11のロボット制御処理によって算出される軸指令値θnmと、補正軸指令値θcnmと、補正値Dnmの一例を示すグラフである。12 is a graph showing an example of an axis command value θnm, a corrected axis command value θcnm, and a correction value Dnm calculated by the robot control process of FIG. 本発明の第3の実施形態に係るロボット制御処理を示すフローチャートである。It is a flowchart which shows the robot control processing which concerns on the 3rd Embodiment of this invention. 本発明の第4の実施形態に係る現在位置出力処理を示すフローチャートである。It is a flowchart which shows the present position output process which concerns on the 4th Embodiment of this invention. 本発明の第5の実施形態に係るロボット制御処理を示すフローチャートである。It is a flowchart which shows the robot control processing which concerns on the 5th Embodiment of this invention.

以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。   Hereinafter, embodiments according to the present invention will be described with reference to the drawings. In addition, in each following embodiment, the same code | symbol is attached | subjected about the same component.

第1の実施形態.
図1は、本発明の第1の実施形態に係るロボット制御装置1と、ロボット7と、コンピュータ50と、ティーチペンダント51と、外部記憶装置52とを備えたロボット制御システムの構成を示すブロック図であり、図2は、図1のロボット7の構成を示す構成図である。図1において、本実施形態に係るロボット制御装置1は、CPU(Central Processing Unit)にてなるコントローラ2と、メモリ3と、インターフェース回路4と、駆動装置5と、測定装置6とを備えて構成される。
First embodiment.
FIG. 1 is a block diagram showing a configuration of a robot control system including a robot control device 1 according to a first embodiment of the present invention, a robot 7, a computer 50, a teach pendant 51, and an external storage device 52. FIG. 2 is a block diagram showing the configuration of the robot 7 of FIG. In FIG. 1, a robot control apparatus 1 according to the present embodiment includes a controller 2 composed of a CPU (Central Processing Unit), a memory 3, an interface circuit 4, a drive device 5, and a measurement device 6. Is done.

ここで、詳細後述するように、ロボット制御装置1は、複数の関節駆動軸を介して複数のリンク11〜16が連結してなる多関節ロボット(ロボットアームともいう。)7の制御点Aの制御タイミングTmにおける位置及び姿勢を表す位置姿勢指令値P1m〜P6mに基づいて、各制御タイミングTmにおいて、
(a)位置姿勢指令値P1m〜P6mを各関節駆動軸の回転量を表す補正前の各軸指令値θnmに逆変換し、
(b)所定の位置姿勢を指示したときの実際の位置姿勢におけるロボット固有の誤差に基づいて、位置姿勢指令値P1m〜P6mを補正して、補正位置姿勢指令値Pc1m〜Pc6mを算出し、
(c)補正位置姿勢指令値Pc1m〜Pc6mを各関節駆動軸の回転量を表す各補正軸指令値θcnmに逆変換できるか否かを判断し、
(c1)逆変換できるときに、補正位置姿勢指令値Pc1m〜Pc6mを各補正軸指令値θcnmに逆変換し、各補正軸指令値θcnmから補正前の各軸指令値θnmを減算することにより各関節駆動軸の補正値Dnmを算出してメモリ3に格納する一方、
(c2)逆変換できないときに、制御タイミングTmの直前の3回の制御タイミングにおいてメモリ3に格納された各関節駆動軸の補正値Dnmに基づいて各関節駆動軸の推測補正値DPnmを算出し、各推測補正値DPnmを補正前の各軸指令値θnmに加算することにより各補正軸指令値θcnmを算出するとともに、各推測補正値DPnmを各関節駆動軸の補正値Dnmとしてメモリ3に格納し、
(d)各補正軸指令値θcnmに従って各関節駆動軸を回転させるように制御することを特徴としている。
Here, as will be described in detail later, the robot control apparatus 1 is configured to control a control point A of an articulated robot (also referred to as a robot arm) 7 in which a plurality of links 11 to 16 are connected via a plurality of joint drive shafts. Based on the position and orientation command values P1m to P6m representing the position and orientation at the control timing Tm, at each control timing Tm,
(A) The position / orientation command values P1m to P6m are inversely converted into respective axis command values θnm before correction representing the rotation amount of each joint drive shaft,
(B) correcting the position / orientation command values P1m to P6m based on the robot-specific error in the actual position / orientation when the predetermined position / orientation is instructed, and calculating corrected position / orientation command values Pc1m to Pc6m;
(C) It is determined whether or not the corrected position / orientation command values Pc1m to Pc6m can be inversely converted into the corrected axis command values θcnm representing the rotation amounts of the joint drive shafts.
(C1) When reverse conversion is possible, each of the corrected position / orientation command values Pc1m to Pc6m is converted back to each corrected axis command value θcnm, and each axis command value θnm before correction is subtracted from each corrected axis command value θcnm. While calculating the correction value Dnm of the joint drive axis and storing it in the memory 3,
(C2) When reverse conversion cannot be performed, the estimated correction value DPnm of each joint drive axis is calculated based on the correction value Dnm of each joint drive axis stored in the memory 3 at the three control timings immediately before the control timing Tm. Then, each corrected axis command value θcnm is calculated by adding each estimated correction value DPnm to each axis command value θnm before correction, and each estimated correction value DPnm is stored in the memory 3 as the correction value Dnm of each joint drive axis. And
(D) It is characterized in that each joint drive shaft is controlled to rotate in accordance with each correction axis command value θcnm.

図2において、ロボット7は6軸多関節ロボットであって、基柱10と、リンク11〜16と、回転関節J1,J4,J6と、旋回関節J2,J3,J5と、ハンド17とを備えて構成される。ここで、基柱10の一端は基台9に対して鉛直に固定され、他端は関節J1に連結されている。また、リンク11の各端部は関節J1及びJ2に連結され、リンク12の各端部は関節J2及びJ3に連結され、リンク13の各端部は関節J3及びJ4に連結され、リンク14の各端部は関節J4及びJ5に連結され、リンク15の各端部は関節J5及びJ6に連結されている。さらに、リンク16の一端は関節J6に連結され、リンク16の他端A(以下、制御点Aという。)はハンド17に連結されている。制御点Aに設けられたハンド17には、例えば、溶接トーチ又は把持ハンドなどの所定のツールが取り付けられる。ここで、図2に示すように、ロボット7の作業原点O(基柱10の基台9への固定位置である。)を右手系の直交座標系の原点とし、基台9に直交する方向をZ方向とする。   In FIG. 2, the robot 7 is a six-axis articulated robot, and includes a base 10, links 11 to 16, rotary joints J1, J4, J6, swivel joints J2, J3, J5, and a hand 17. Configured. Here, one end of the base pillar 10 is fixed vertically to the base 9, and the other end is connected to the joint J1. Each end of the link 11 is connected to the joints J1 and J2, each end of the link 12 is connected to the joints J2 and J3, each end of the link 13 is connected to the joints J3 and J4, and Each end is connected to joints J4 and J5, and each end of the link 15 is connected to joints J5 and J6. Further, one end of the link 16 is connected to the joint J 6, and the other end A of the link 16 (hereinafter referred to as a control point A) is connected to the hand 17. For example, a predetermined tool such as a welding torch or a gripping hand is attached to the hand 17 provided at the control point A. Here, as shown in FIG. 2, the work origin O of the robot 7 (the position where the base 10 is fixed to the base 9) is the origin of the right-handed orthogonal coordinate system, and the direction orthogonal to the base 9. Is the Z direction.

図1において、コンピュータ50は、ロボット7の各教示点における制御点Aの位置及びハンド17の姿勢を表す所定の教示データとハンド17の移動速度とに基づいてCP制御を行うことにより、各教示点間において制御点Aが直線を描くようにロボット7の各制御タイミングTm(m=1,2,…,M)毎に制御点Aの位置及びハンド17の姿勢を算出する。そして、コンピュータ50は、各制御タイミングTmにおける制御点Aの位置及びハンド17の姿勢を表す位置姿勢指令値P1m〜P6mを含む制御データをロボット制御装置1に出力する。ここで、制御タイミングTmにおける位置姿勢指令値P1m、P2m及びP3mは、それぞれ制御点AのXYZ座標系におけるX座標、Y座標及びZ座標であり、位置姿勢指令値P4m、P5m及びP6mは、それぞれハンド17のロール角、ピッチ角及びヨー角である。また、ディスプレイ50dは、コンピュータ50の動作状態の表示及びロボット制御装置1から受信した各データの表示を行う。さらに、入力部50iは、例えばキーボードであり、ロボット制御装置1の動作を制御するための指示コマンドなどを入力するためのものである。また、ティーチペンダント51は、ハンド17を人間が把持して目的の位置及び姿勢に移動してロボット7に所定の動作パターンを行わせることにより、ロボット7の各教示点における制御点Aの位置及びハンド17の姿勢を表す所定の教示データを取得し、取得された教示データに基づいてコンピュータ50と同様に制御データを生成するための操作端末である。   In FIG. 1, the computer 50 performs CP control based on predetermined teaching data representing the position of the control point A at each teaching point of the robot 7 and the posture of the hand 17 and the moving speed of the hand 17. The position of the control point A and the posture of the hand 17 are calculated at each control timing Tm (m = 1, 2,..., M) of the robot 7 so that the control point A draws a straight line between the points. Then, the computer 50 outputs control data including position / orientation command values P1m to P6m representing the position of the control point A and the attitude of the hand 17 at each control timing Tm to the robot control device 1. Here, the position / orientation command values P1m, P2m and P3m at the control timing Tm are the X coordinate, Y coordinate and Z coordinate in the XYZ coordinate system of the control point A, respectively, and the position / orientation command values P4m, P5m and P6m are respectively These are the roll angle, pitch angle, and yaw angle of the hand 17. Further, the display 50 d displays the operation state of the computer 50 and displays each data received from the robot control device 1. Furthermore, the input unit 50i is, for example, a keyboard, and is used to input an instruction command for controlling the operation of the robot control apparatus 1. Further, the teach pendant 51 holds the hand 17 by a human and moves it to a target position and posture to cause the robot 7 to perform a predetermined operation pattern, whereby the position of the control point A at each teaching point of the robot 7 and This is an operation terminal for acquiring predetermined teaching data representing the posture of the hand 17 and generating control data based on the acquired teaching data in the same manner as the computer 50.

インターフェース回路4は、コンピュータ50、ティーチペンダント51及び外部記憶装置52から入力された制御データに対してロボット制御装置1との信号変換などの所定のインターフェース処理を実行してコントローラ2に出力する一方、コントローラ2から入力されたデータに対してコンピュータ50、ティーチペンダント51及び外部記憶装置52との信号変換などの所定のインターフェース処理を実行してコンピュータ50に出力する。さらに、コントローラ2は、ロボット制御装置1の全体の動作を制御するとともに、位置姿勢指令値P1m〜P6mをメモリ3に格納し、当該格納された位置姿勢指令値P1m〜P6mに基づいて、詳細後述するロボット制御処理によって各制御タイミングTmにおける各関節Jn(n=1,2,…,6)の駆動軸の回転量である補正軸指令値θcnmを算出し、駆動装置5に出力する。駆動装置5は各関節Jnの駆動軸を回転させるためのアクチュエータであり、コントローラ2からの補正軸指令値θcnmに従って、各関節Jnの駆動軸を回転させる。メモリ3は、コントローラ2によって実行される種々のソフトウェアのプログラムを予め格納する。また、測定装置6は、各関節Jn毎に設けられた角度センサであって、各関節Jnの実際の軸値を各制御タイミングTmにおいて測定し、当該測定された軸値をコントローラ2に出力する。   The interface circuit 4 executes predetermined interface processing such as signal conversion with the robot control device 1 on the control data input from the computer 50, the teach pendant 51, and the external storage device 52, and outputs the control data to the controller 2. Predetermined interface processing such as signal conversion with the computer 50, the teach pendant 51, and the external storage device 52 is executed on the data input from the controller 2 and output to the computer 50. Further, the controller 2 controls the overall operation of the robot control apparatus 1 and stores position / orientation command values P1m to P6m in the memory 3. Based on the stored position / orientation command values P1m to P6m, details will be described later. The corrected axis command value θcnm, which is the rotation amount of the drive shaft of each joint Jn (n = 1, 2,..., 6) at each control timing Tm, is calculated by the robot control processing to be output to the drive device 5. The drive device 5 is an actuator for rotating the drive shaft of each joint Jn, and rotates the drive shaft of each joint Jn according to the correction axis command value θcnm from the controller 2. The memory 3 stores various software programs executed by the controller 2 in advance. The measuring device 6 is an angle sensor provided for each joint Jn, measures the actual axis value of each joint Jn at each control timing Tm, and outputs the measured axis value to the controller 2. .

次に、コントローラ2によって実行されるロボット制御処理を説明する。図3は、図1のコントローラ2によって実行されるロボット制御処理を示すフローチャートであり、図4は、図3のステップS8において実行される推測補正値算出処理を示すフローチャートである。図3において、始めに、ステップS1において、各制御タイミングTmにおける位置姿勢指令値P1m〜P6mがメモリ3から読み出され、ステップS2において、パラメータmが初期値1に設定される。そして、コントローラ2は、ステップS3において、制御タイミングTmにおける位置姿勢指令値P1m〜P6mを各関節Jnの駆動軸の回転量である軸指令値θnmに逆変換する。なお、コントローラ2は、位置姿勢指令値P1m〜P6mを軸指令値θnmに逆変換できなかったときは、所定のエラー処理を行いロボット7の動作を停止させるように駆動装置5を制御し、ロボット制御処理を終了する。   Next, robot control processing executed by the controller 2 will be described. FIG. 3 is a flowchart showing the robot control process executed by the controller 2 of FIG. 1, and FIG. 4 is a flowchart showing the estimated correction value calculation process executed in step S8 of FIG. In FIG. 3, first, in step S1, the position / orientation command values P1m to P6m at each control timing Tm are read from the memory 3, and in step S2, the parameter m is set to an initial value 1. In step S3, the controller 2 reversely converts the position / orientation command values P1m to P6m at the control timing Tm into an axis command value θnm which is the rotation amount of the drive shaft of each joint Jn. When the position / orientation command values P1m to P6m cannot be converted back into the axis command value θnm, the controller 2 controls the driving device 5 so as to stop the operation of the robot 7 by performing a predetermined error process. The control process ends.

引き続き、コントローラ2は、ステップS4において、非特許文献1に記載の「多関節ロボット機構誤差補正方式」を用いて各位置姿勢指令値P1m〜P6mを補正して、当該補正後の補正位置姿勢指令値Pc1m〜Pc6mを算出する。ここで、多関節ロボット機構誤差補正方式は、制御点Aの位置を所定の位置に移動させかつハンド17を所定の姿勢をとるように制御したときの、制御点Aの実際の位置及びハンド17の実際の姿勢からのズレを補正するものである。このようなズレは、ロボット7に固有のたわみ、加工誤差、及び組立誤差などに基づく機構誤差、据付誤差、ならびに各軸の機械原点の誤差に起因する。以下、このような誤差補正方式による補正を、高精度ロボットモデルによる補正という。   Subsequently, in step S4, the controller 2 corrects each of the position / orientation command values P1m to P6m using the “multi-joint robot mechanism error correction method” described in Non-Patent Document 1, and then corrects the corrected position / orientation command. Values Pc1m to Pc6m are calculated. Here, in the articulated robot mechanism error correction method, the actual position of the control point A and the hand 17 when the position of the control point A is moved to a predetermined position and the hand 17 is controlled to assume a predetermined posture. This corrects the deviation from the actual posture. Such a deviation is caused by a mechanism error based on deflection, processing error, assembly error, and the like inherent to the robot 7, an installation error, and an error of the machine origin of each axis. Hereinafter, such correction using the error correction method is referred to as correction using a high-precision robot model.

次に、ステップS5において、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できるか否かが判断され、YESのときはステップS6に進む一方、NOのときはステップS8に進む。ここで、コントローラ2は、補正位置姿勢指令値Pc1m〜Pc6mを補正軸指令値θc1m〜θc6mに逆変換するための連立方程式の判別式を用いて、ステップS5における判断を行う。   Next, in step S5, it is determined whether or not the corrected position / orientation command values Pc1m to Pc6m can be inversely converted into the unique correction axis command values θc1m to θc6m. If YES, the process proceeds to step S6. Proceed to step S8. Here, the controller 2 performs the determination in step S5 using a simultaneous equation discriminant for inversely converting the corrected position / orientation command values Pc1m to Pc6m into the corrected axis command values θc1m to θc6m.

ステップS6において、補正位置姿勢指令値Pc1m〜Pc6mは補正軸指令値θc1m〜θc6mに逆変換され、ステップS7において、補正軸指令値θcnmから補正前の軸指令値θnmを減算することにより、各関節Jnに対する制御タイミングTmにおける各補正値Dnmが算出される。そして、ステップS11に進む。   In step S6, the corrected position / orientation command values Pc1m to Pc6m are inversely converted into corrected axis command values θc1m to θc6m, and in step S7, the axis command value θnm before correction is subtracted from the corrected axis command value θcnm. Each correction value Dnm at the control timing Tm for Jn is calculated. Then, the process proceeds to step S11.

一方、ステップS8において、各関節Jn毎に、図4の「推測補正値算出処理」によって推測補正値DPnmが推測される。図4の推測補正値算出処理では、ステップS21において、制御タイミングTm−1,Tm−2,Tm−3においてメモリ3に格納された補正値Dnm−1,補正値Dnm−2及び補正値Dnm−3の平均値Daveが算出され、ステップS22において、推測補正値DPnmが平均値Daveに設定され、ロボット制御処理に戻る。そして、図3のステップS9において、各関節Jnの補正値Dnmが推測補正値DPnmに設定され、ステップS10において、補正前の軸指令値θnmに補正値Dnmを加算することにより、補正軸指令値θcnmが算出され、ステップS11に進む。   On the other hand, in step S8, the estimated correction value DPnm is estimated for each joint Jn by the “estimated correction value calculation process” of FIG. In the estimated correction value calculation process of FIG. 4, in step S21, the correction value Dnm-1, the correction value Dnm-2, and the correction value Dnm- stored in the memory 3 at the control timings Tm-1, Tm-2, and Tm-3. 3 is calculated, and in step S22, the estimated correction value DPnm is set to the average value Dave, and the process returns to the robot control process. In step S9 in FIG. 3, the correction value Dnm of each joint Jn is set to the estimated correction value DPnm. In step S10, the correction value Dnm is added to the uncorrected axis command value θnm, thereby correcting the corrected axis command value. θcnm is calculated, and the process proceeds to step S11.

ステップS11では、各関節Jnの補正値Dnmはメモリ3に格納され、ステップS12において、コントローラ2は、補正軸指令値θcnmに基づいてロボット7を動作させるようにロボット駆動装置5を制御する。次に、ステップS13において、制御タイミングTmが最後の制御タイミングTMより前の制御タイミングであるか否かが判断され、YESのときはロボット制御処理を終了し、NOのときはステップS14においてパラメータmに1を加算してステップS3に戻る。   In step S11, the correction value Dnm of each joint Jn is stored in the memory 3, and in step S12, the controller 2 controls the robot drive device 5 to operate the robot 7 based on the correction axis command value θcnm. Next, in step S13, it is determined whether or not the control timing Tm is a control timing before the last control timing TM. If YES, the robot control process is terminated. If NO, the parameter m is determined in step S14. 1 is added to and the process returns to step S3.

なお、制御タイミングT2又はT3において補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できなかった場合には、直前の1つ又は2つの制御タイミングにおいてメモリ3に格納された各補正値Dnmを用いて図4の推測補正値算出処理を行う。制御タイミングT1において補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できなかった場合には、ロボット制御処理を終了する。   If the corrected position / orientation command values Pc1m to Pc6m cannot be converted back into the unique corrected axis command values θc1m to θc6m at the control timing T2 or T3, they are stored in the memory 3 at the immediately preceding one or two control timings. The estimated correction value calculation process shown in FIG. If the corrected position / orientation command values Pc1m to Pc6m cannot be converted back into the unique corrected axis command values θc1m to θc6m at the control timing T1, the robot control process is terminated.

図5は、図3のロボット制御処理によって算出される軸指令値θnmと、補正軸指令値θcnmと、補正値Dnmの一例を示すグラフである。図5において、制御タイミングT1〜T4では、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換可能であり、図3のステップS5においてYESであると判断されている。しかしながら、制御タイミングT5及びT6では、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに変換不可能であり、図3のステップS5においてNOであると判断されている。このため、例えば、制御タイミングT5では、制御タイミングT2,T3,T4においてメモリ3に格納された各補正値Dn2,Dn3,Dn4の平均値であるDPn5が補正値Dn5として用いられている。   FIG. 5 is a graph showing an example of the axis command value θnm, the corrected axis command value θcnm, and the correction value Dnm calculated by the robot control process of FIG. In FIG. 5, at the control timings T1 to T4, the corrected position / orientation command values Pc1m to Pc6m can be inversely converted into the unique corrected axis command values θc1m to θc6m, and it is determined as YES in step S5 of FIG. . However, at the control timings T5 and T6, the corrected position / orientation command values Pc1m to Pc6m cannot be converted into the unique corrected axis command values θc1m to θc6m, and it is determined as NO in step S5 of FIG. Therefore, for example, at the control timing T5, DPn5 that is an average value of the correction values Dn2, Dn3, and Dn4 stored in the memory 3 at the control timings T2, T3, and T4 is used as the correction value Dn5.

以上詳述したように、本実施形態によれば、制御タイミングTmにおいて補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できないときにも、制御タイミングTmの直前の3回の制御タイミングにおいてメモリ3に格納された補正値に基づいて制御タイミングTmにおける補正値Dnmを推測して補正軸指令値θcnmを算出する。従って、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できない特異点においても、従来技術に比較してロボット7の軌跡が急激に変化することなく、位置決め精度を向上できる。   As described above in detail, according to the present embodiment, even when the corrected position / orientation command values Pc1m to Pc6m cannot be reversely converted into the unique corrected axis command values θc1m to θc6m at the control timing Tm, immediately before the control timing Tm. Based on the correction value stored in the memory 3 at three control timings, the correction value Dnm at the control timing Tm is estimated to calculate the correction axis command value θcnm. Therefore, even at a singular point where the corrected position / orientation command values Pc1m to Pc6m cannot be converted back to the unique correction axis command values θc1m to θc6m, the trajectory of the robot 7 does not change abruptly as compared with the prior art, and positioning accuracy is improved. It can be improved.

なお、本実施形態において、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できないときに、制御タイミングTmの直前の3回の制御タイミングにおいてメモリ3に格納された補正値Dnmを用いて推測補正値DPnmを算出した。しかしながら、本発明はこれに限られず、制御タイミングTmの直前の複数の制御タイミングにおいてメモリ3に格納された補正値Dnmを用いて推測補正値DPnmを算出すればよい。   In the present embodiment, when the corrected position / orientation command values Pc1m to Pc6m cannot be converted back into the unique corrected axis command values θc1m to θc6m, they are stored in the memory 3 at the three control timings immediately before the control timing Tm. The estimated correction value DPnm was calculated using the correction value Dnm. However, the present invention is not limited to this, and the estimated correction value DPnm may be calculated using the correction values Dnm stored in the memory 3 at a plurality of control timings immediately before the control timing Tm.

第1の実施形態の第1の変形例.
図6は、本発明の第1の実施形態の第1の変形例に係る推測補正値算出処理を示すフローチャートである。図6のステップS31において、メモリ3に格納された補正値Dnm−3から補正値Dnm−2を減算して差分値DD1を算出し、ステップS32において、メモリ3に格納された補正値DDnm−2から補正値DDnm−1を減算して差分値DD2を算出する。そして、ステップS33において、差分値DD3から差分値DD1を減算して差分値DD3を算出する。さらに、ステップS34において、メモリ3に格納された補正値Dnm−1に差分値DD3を加算することにより、制御タイミングTmにおける関節Jnの軸値の推測補正値DPnmを算出し、図3のロボット制御処理に戻る。本変形例によれば、制御タイミングTmにおいて補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに変換できないときに、直前の制御タイミングTm−3,Tm−2,Tm−1においてメモリ3に格納された各補正値Dnm−3,Dnm−2,Dnm−1の各差分値DD1及びDD2を用いて推測補正値DPnmを算出するので、第1の実施形態と同様の効果を奏する。
First modified example of the first embodiment.
FIG. 6 is a flowchart showing an estimated correction value calculation process according to the first modification of the first embodiment of the present invention. In step S31 of FIG. 6, the difference value DD1 is calculated by subtracting the correction value Dnm-2 from the correction value Dnm-3 stored in the memory 3, and in step S32, the correction value DDnm-2 stored in the memory 3 is calculated. The correction value DDnm-1 is subtracted from the difference value DD2. In step S33, the difference value DD3 is calculated by subtracting the difference value DD1 from the difference value DD3. Further, in step S34, by adding the difference value DD3 to the correction value Dnm-1 stored in the memory 3, an estimated correction value DPnm of the axis value of the joint Jn at the control timing Tm is calculated, and the robot control of FIG. Return to processing. According to this modification, when the corrected position / orientation command values Pc1m to Pc6m cannot be converted into the unique corrected axis command values θc1m to θc6m at the control timing Tm, the immediately preceding control timings Tm-3, Tm-2, and Tm-1 are obtained. Since the estimated correction value DPnm is calculated using the difference values DD1 and DD2 of the correction values Dnm-3, Dnm-2, and Dnm-1 stored in the memory 3, the same effects as in the first embodiment are obtained. Play.

なお、本変形例において、制御タイミングTmの直前の3回の制御タイミングにおいてメモリ3に格納された補正値Dnmの各差分値DD1及びDD2を用いて推測補正値DPnmを算出した。しかしながら、本発明はこれに限られず、制御タイミングTmの直前の3回以上の複数の制御タイミングにおいてメモリ3に格納された補正値Dnmの各差分値を用いて推測補正値DPnmを算出すればよい。   In this modification, the estimated correction value DPnm is calculated using the difference values DD1 and DD2 of the correction value Dnm stored in the memory 3 at the three control timings immediately before the control timing Tm. However, the present invention is not limited to this, and the estimated correction value DPnm may be calculated using each difference value of the correction value Dnm stored in the memory 3 at a plurality of control timings three or more times immediately before the control timing Tm. .

第1の実施形態の第2の変形例.
図7は、本発明の第1の実施形態の第2の変形例に係る推測補正値算出処理を示すフローチャートである。図7のステップS41において、メモリ3に格納された補正値Dnm−1を推測補正値DPnmとし、図3のロボット制御処理に戻る。本変形例によれば、制御タイミングTmにおいて補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに変換できないときに、直前の制御タイミングTm−1においてメモリ3に格納された補正値Dnm−1を推測補正値DPnmとするので、第1の実施形態に比較して短時間で推測補正値DPnmを推測できる。
Second modification of the first embodiment.
FIG. 7 is a flowchart showing an estimated correction value calculation process according to the second modification of the first embodiment of the present invention. In step S41 in FIG. 7, the correction value Dnm-1 stored in the memory 3 is set as the estimated correction value DPnm, and the process returns to the robot control process in FIG. According to this modification, when the corrected position / orientation command values Pc1m to Pc6m cannot be converted into the unique corrected axis command values θc1m to θc6m at the control timing Tm, the correction stored in the memory 3 at the immediately preceding control timing Tm−1. Since the value Dnm-1 is set as the estimated correction value DPnm, the estimated correction value DPnm can be estimated in a short time compared to the first embodiment.

第1の実施形態の第3の変形例.
図8は、本発明の第1の実施形態の第3の変形例に係る推測補正値算出処理を示すフローチャートである。図8のステップS51において、メモリ3に格納された制御タイミングTmの直前の所定の数の制御タイミングにおいてメモリ3に格納された補正値Dnmに対して所定の関数を当てはめ、当該当てはめられた関数を用いて推測補正値DPnmを算出し、図3のロボット制御処理に戻る。具体的には、例えば、制御タイミングTmの直前の5個の制御タイミングTm−5〜Tm−1においてメモリ3に格納された各補正値Dnm−5〜Dnm−1に対して3次関数を当てはめ、当該当てはめられた3次関数を用いて制御タイミングTmにおける推測補正値DPnmを算出する。本変形例によれば、制御タイミングTmにおいて補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに変換できないときに、直前の所定の数の制御タイミングにおいてメモリ3に格納された各補正値Dnmを用いて推測補正値DPnmを算出するので、第1の実施形態と同様の効果を奏する。
Third modification of the first embodiment.
FIG. 8 is a flowchart showing an estimated correction value calculation process according to the third modification of the first embodiment of the present invention. In step S51 of FIG. 8, a predetermined function is applied to the correction value Dnm stored in the memory 3 at a predetermined number of control timings immediately before the control timing Tm stored in the memory 3, and the applied function is The estimated correction value DPnm is used to calculate, and the process returns to the robot control process of FIG. Specifically, for example, a cubic function is applied to each of the correction values Dnm-5 to Dnm-1 stored in the memory 3 at five control timings Tm-5 to Tm-1 immediately before the control timing Tm. The estimated correction value DPnm at the control timing Tm is calculated using the fitted cubic function. According to this modified example, when the corrected position / orientation command values Pc1m to Pc6m cannot be converted into the unique corrected axis command values θc1m to θc6m at the control timing Tm, they are stored in the memory 3 at the predetermined predetermined number of control timings. Since the estimated correction value DPnm is calculated using each correction value Dnm, the same effects as those of the first embodiment can be obtained.

第1の実施形態の第4の変形例.
図9は、本発明の第1の実施形態の第4の変形例に係る推測補正値算出処理を示すフローチャートである。図9のステップS61において、W1>W2>W3となるように予め設定された重みW3,W2,W1を用いて、メモリ3に格納された補正値Dnm−3〜Dnm−1の加重平均値Davew1を算出する。具体的には、重みW1,W2,W3は、それぞれ、0.5,0.3,0.2に予め設定される。そして、ステップS62において、加重平均値Davew1を推測補正値DPnmとして図3のロボット制御処理に戻る。本変形例によれば、制御タイミングTmに近い制御タイミングに対してより大きい重みWmを与えて加重平均値Davew1を算出するので、第1の実施形態に比較して、精度良く推測補正値DPnmを推測できる。
Fourth modified example of the first embodiment.
FIG. 9 is a flowchart showing an estimated correction value calculation process according to the fourth modification of the first embodiment of the present invention. In step S61 of FIG. 9, the weighted average value Davew1 of the correction values Dnm-3 to Dnm-1 stored in the memory 3 using the weights W3, W2, and W1 set in advance so that W1>W2> W3. Is calculated. Specifically, the weights W1, W2, and W3 are preset to 0.5, 0.3, and 0.2, respectively. In step S62, the weighted average value Dave1 is set as the estimated correction value DPnm, and the process returns to the robot control process of FIG. According to the present modification, the weighted average value Davew1 is calculated by giving a larger weight Wm to the control timing close to the control timing Tm, so that the estimated correction value DPnm can be calculated with higher accuracy than in the first embodiment. I can guess.

なお、本変形例において、制御タイミングTmの直前の3回の制御タイミングにおいてメモリ3に格納された補正値Dnmを用いて推測補正値DPnmを算出した。しかしながら、本発明はこれに限られず、制御タイミングTmの直前の複数の制御タイミングにおいてメモリ3に格納された補正値Dnmを用いて推測補正値DPnmを算出すればよい。   In this modification, the estimated correction value DPnm is calculated using the correction value Dnm stored in the memory 3 at the three control timings immediately before the control timing Tm. However, the present invention is not limited to this, and the estimated correction value DPnm may be calculated using the correction values Dnm stored in the memory 3 at a plurality of control timings immediately before the control timing Tm.

第1の実施形態の第5の変形例.
図10は、本発明の第1の実施形態の第5の変形例に係る推測補正値算出処理を示すフローチャートである。本変形例では、図3のステップS11において、各関節Jnの補正値Dnmをメモリ3に格納するときに、当該補正値Dnmが図3のステップS7の処理によって算出されたか推測補正値算出処理によって算出されたかを示すフラグをともに格納する。図10のステップS71において、ステップS7の処理によって算出された補正値が推測補正値算出処理によって推測された補正値に対する重みよりも大きくなるように予め設定された重みW3,W2,W1を用いて、メモリ3に格納された補正値Dnm−3〜Dnm−1の加重平均値Davew2を算出する。具体的には、ステップS7の処理によって算出された補正値に対する重みは推測補正値算出処理によって推測された補正値に対する重みの2倍の値に予め設定される。そして、ステップS72において、加重平均値Davew2を推測補正値DPnmとして図3のロボット制御処理に戻る。本変形例によれば、ステップS7の処理によって算出された補正値に対する重みを推測補正値算出処理によって推測された補正値に対する重みより大きく設定されるので、第1の実施形態に比較して、精度良く推測補正値DPnmを推測できる。
Fifth modification of the first embodiment.
FIG. 10 is a flowchart showing an estimated correction value calculation process according to the fifth modification of the first embodiment of the present invention. In this modification, when the correction value Dnm of each joint Jn is stored in the memory 3 in step S11 of FIG. 3, whether the correction value Dnm was calculated by the process of step S7 of FIG. A flag indicating whether it has been calculated is stored together. In step S71 of FIG. 10, weights W3, W2, and W1 set in advance so that the correction value calculated by the process of step S7 is larger than the weight for the correction value estimated by the estimation correction value calculation process. The weighted average value Dave2 of the correction values Dnm-3 to Dnm-1 stored in the memory 3 is calculated. Specifically, the weight for the correction value calculated by the process of step S7 is preset to a value twice the weight for the correction value estimated by the estimated correction value calculation process. In step S72, the weighted average value Dave2 is set as the estimated correction value DPnm, and the process returns to the robot control process of FIG. According to the present modification, the weight for the correction value calculated by the process of step S7 is set larger than the weight for the correction value estimated by the estimation correction value calculation process. Therefore, compared to the first embodiment, The estimated correction value DPnm can be estimated with high accuracy.

なお、本変形例において、制御タイミングTmの直前の3回の制御タイミングにおいてメモリ3に格納された補正値Dnmを用いて推測補正値DPnmを算出した。しかしながら、本発明はこれに限られず、制御タイミングTmの直前の複数の制御タイミングにおいてメモリ3に格納された補正値Dnmを用いて推測補正値DPnmを算出すればよい。   In this modification, the estimated correction value DPnm is calculated using the correction value Dnm stored in the memory 3 at the three control timings immediately before the control timing Tm. However, the present invention is not limited to this, and the estimated correction value DPnm may be calculated using the correction values Dnm stored in the memory 3 at a plurality of control timings immediately before the control timing Tm.

第2の実施形態.
図11は、本発明の第2の実施形態に係るロボット制御処理を示すフローチャートであり、図12は、図11のステップS86において実行される推測補正値算出処理を示すフローチャートである。本実施形態に係るロボット制御処理は、第1の実施形態に係るロボット制御処理に比較して、補正位置姿勢指令値Pc1m〜Pc6mを各補正軸指令値θcnmに逆変換できる制御タイミングTmにおいて、当該制御タイミングTmが補正位置姿勢指令値Pc1m〜Pc6mを各補正軸指令値θcnmに逆変換できない最新の制御タイミングから3回の制御タイミング以内であるか否かを判断し、補正位置姿勢指令値Pc1m〜Pc6mを各補正軸指令値θcnmに逆変換できる制御タイミングが、補正位置姿勢指令値Pc1m〜Pc6mを各補正軸指令値θcnmに逆変換できない最新の制御タイミングから3回の制御タイミング以内であるときは、補正位置姿勢指令値Pc1m〜Pc6mを逆変換して得られる各軸指令値θctnmから各軸指令値θnmを減算し、当該減算結果の仮の補正値Dtnm及び制御タイミングTmの直前の2つの制御タイミングTm−1,Tm−2においてメモリ3に格納された各補正値Dtnm−1,Dtm−2に基づいて各関節駆動軸の推測補正値DPnmを算出することを特徴している。
Second embodiment.
FIG. 11 is a flowchart showing the robot control process according to the second embodiment of the present invention, and FIG. 12 is a flowchart showing the estimated correction value calculation process executed in step S86 of FIG. Compared with the robot control process according to the first embodiment, the robot control process according to the present embodiment is performed at the control timing Tm at which the corrected position / orientation command values Pc1m to Pc6m can be converted back to the corrected axis command values θcnm. It is determined whether or not the control timing Tm is within three control timings from the latest control timing at which the corrected position / orientation command values Pc1m to Pc6m cannot be converted back into the respective correction axis command values θcnm, and the corrected position / orientation command values Pc1m to When the control timing at which Pc6m can be converted back to each corrected axis command value θcnm is within three control timings from the latest control timing at which corrected position / orientation command values Pc1m to Pc6m cannot be converted back to each corrected axis command value θcnm From each axis command value θctnm obtained by inversely converting the corrected position / orientation command values Pc1m to Pc6m, each axis The command value θnm is subtracted, and each correction value Dtnm−1, Dtm− stored in the memory 3 at the provisional correction value Dtnm of the subtraction result and the two control timings Tm−1 and Tm−2 immediately before the control timing Tm. The estimated correction value DPnm of each joint drive shaft is calculated based on 2.

図11において、始めに、ステップS1において、各制御タイミングTmにおける位置姿勢指令値P1m〜P6mがメモリ3から読み出される。そして、ステップS81においてパラメータkが初期値0に設定され、ステップS2において、パラメータmが初期値1に設定される。そして、コントローラ2は、ステップS3において、制御タイミングTmにおける位置姿勢指令値P1m〜P6mを各関節Jnの駆動軸の回転量である軸指令値θnmに逆変換する。なお、コントローラ2は、位置姿勢指令値P1m〜P6mを軸指令値θnmに逆変換できなかったときは、所定のエラー処理を行いロボット7の動作を停止させるように駆動装置5を制御し、ロボット制御処理を終了する。   In FIG. 11, first, in step S <b> 1, position / orientation command values P <b> 1 m to P <b> 6 m at each control timing Tm are read from the memory 3. In step S81, the parameter k is set to an initial value 0, and in step S2, the parameter m is set to an initial value 1. In step S3, the controller 2 reversely converts the position / orientation command values P1m to P6m at the control timing Tm into an axis command value θnm which is the rotation amount of the drive shaft of each joint Jn. When the position / orientation command values P1m to P6m cannot be converted back into the axis command value θnm, the controller 2 controls the driving device 5 so as to stop the operation of the robot 7 by performing a predetermined error process. The control process ends.

引き続き、コントローラ2は、ステップS4において、高精度ロボットモデルによって各位置姿勢指令値P1m〜P6mを補正して、当該補正後の補正位置姿勢指令値Pc1m〜Pc6mを算出する。次に、ステップS5において、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できるか否かが判断され、YESのときはステップS82に進む一方、NOのときはステップS84に進みパラメータkが0に設定され、関節Jn毎に、図4の「推測補正値算出処理」によって推測補正値DPnmが推測されてステップS9に進む。   Subsequently, in step S4, the controller 2 corrects the position / orientation command values P1m to P6m using the high-precision robot model, and calculates the corrected corrected position / orientation command values Pc1m to Pc6m. Next, in step S5, it is determined whether or not the corrected position / orientation command values Pc1m to Pc6m can be inversely converted into the unique correction axis command values θc1m to θc6m. If YES, the process proceeds to step S82, whereas if NO, Proceeding to step S84, the parameter k is set to 0, and for each joint Jn, the estimated correction value DPnm is estimated by the “estimated correction value calculating process” of FIG. 4, and the process proceeds to step S9.

ステップS82では、パラメータkに1が加算される。そして、ステップS83において、パラメータkが3以下であるか否かが判断され、YESのときはステップS86に進む一方、NOのときはステップS6に進む。ステップS6において、補正位置姿勢指令値Pc1m〜Pc6mは補正軸指令値θc1m〜θc6mに逆変換され、ステップS7において、補正軸指令値θcnmから軸指令値θnmを減算することにより、各関節Jnに対する制御タイミングTmにおける各補正値Dnmが算出される。そして、ステップS11に進む。   In step S82, 1 is added to the parameter k. In step S83, it is determined whether or not the parameter k is 3 or less. If YES, the process proceeds to step S86. If NO, the process proceeds to step S6. In step S6, the corrected position / orientation command values Pc1m to Pc6m are inversely converted into corrected axis command values θc1m to θc6m. In step S7, the axis command value θnm is subtracted from the corrected axis command value θcnm, thereby controlling each joint Jn. Each correction value Dnm at timing Tm is calculated. Then, the process proceeds to step S11.

ステップS86では、関節Jn毎に、図12の「推測補正値算出処理」によって推測補正値DPnmが推測される。具体的には、図12のステップS201において、補正位置姿勢指令値Pc1m〜Pc6mを仮の補正軸指令値θct1m〜θct6mに逆変換する。そして、ステップS202において、仮の補正軸指令値θcnmから軸指令値θnmを減算することにより、各関節Jnに対する仮の補正値Dtnmを算出する。さらに、ステップS203において、仮の補正値Dtnmならびに補正値Dnm−1及びDnm−2
の平均値Dave1を算出し、ステップS204において、算出された平均値Dave1を推測補正値DPnmとして、ロボット制御処理に戻る。
In step S86, the estimated correction value DPnm is estimated for each joint Jn by the “estimated correction value calculation process” of FIG. Specifically, in step S201 of FIG. 12, the corrected position / orientation command values Pc1m to Pc6m are inversely converted to temporary correction axis command values θct1m to θct6m. In step S202, the temporary correction value Dtnm for each joint Jn is calculated by subtracting the axial command value θnm from the temporary correction axis command value θcnm. Further, in step S203, the temporary correction value Dtnm and the correction values Dnm-1 and Dnm-2.
The average value Dave1 is calculated, and in step S204, the calculated average value Dave1 is set as the estimated correction value DPnm, and the process returns to the robot control process.

ステップS9では、各関節Jnの補正値Dnmが推測補正値DPnmに設定され、ステップS10において、軸指令値θnmに補正値Dnmを加算することにより補正軸指令値θcnmが算出され、ステップS11に進む。   In step S9, the correction value Dnm of each joint Jn is set to the estimated correction value DPnm. In step S10, the correction value Dnm is calculated by adding the correction value Dnm to the axis command value θnm, and the process proceeds to step S11. .

ステップS11では、各関節Jnの補正値Dnmはメモリ3に格納され、ステップS12において、コントローラ2は、補正軸指令値θcnmに基づいてロボット7を動作させるようにロボット駆動装置5を制御する。次に、ステップS13において、制御タイミングTmが最後の制御タイミングTMより前の制御タイミングであるか否かが判断され、YESのときはロボット制御処理を終了し、NOのときはステップS14においてパラメータmに1を加算してステップS3に戻る。   In step S11, the correction value Dnm of each joint Jn is stored in the memory 3, and in step S12, the controller 2 controls the robot drive device 5 to operate the robot 7 based on the correction axis command value θcnm. Next, in step S13, it is determined whether or not the control timing Tm is a control timing before the last control timing TM. If YES, the robot control process is terminated. If NO, the parameter m is determined in step S14. 1 is added to and the process returns to step S3.

図13は、図11のロボット制御処理によって算出される軸指令値θnmと、補正軸指令値θcnmと、補正値Dnmの一例を示すグラフである。図13において、制御タイミングT1〜T4及びT7〜T10では、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換可能であり、図3のステップS5においてYESであると判断されている。しかしながら、制御タイミングT5及びT6では、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに変換不可能であり、図3のステップS5においてNOであると判断されている。このため、例えば、制御タイミングT5では、制御タイミングT2,T3,T4における各補正値Dn2,Dn3,Dn4の平均値であるDPn5が補正値Dn5として用いられている。また、制御タイミングT7,T8,T9は、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できない状態から逆変換できる状態に変化した後の3回以内の各制御タイミングである。このため、図12の推測補正値算出処理によって推測補正値DPnmが算出されている。さらに、制御タイミングT10は、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できない状態から逆変換できる状態に変化した後の4回目の制御タイミングであるので、推測補正値算出処理は行われていない。   FIG. 13 is a graph showing an example of the axis command value θnm, the corrected axis command value θcnm, and the correction value Dnm calculated by the robot control process of FIG. In FIG. 13, at the control timings T1 to T4 and T7 to T10, the corrected position / orientation command values Pc1m to Pc6m can be inversely converted to the unique corrected axis command values θc1m to θc6m, and YES in step S5 of FIG. It has been judged. However, at the control timings T5 and T6, the corrected position / orientation command values Pc1m to Pc6m cannot be converted into the unique corrected axis command values θc1m to θc6m, and it is determined as NO in step S5 of FIG. Therefore, for example, at the control timing T5, DPn5 that is an average value of the correction values Dn2, Dn3, Dn4 at the control timings T2, T3, T4 is used as the correction value Dn5. The control timings T7, T8, and T9 are each controlled within three times after the corrected position / orientation command values Pc1m to Pc6m are changed from a state where the corrected position / orientation command values Pc1m to Pc6m cannot be converted back to the unique corrected axis command values θc1m to θc6m. It is timing. For this reason, the estimated correction value DPnm is calculated by the estimated correction value calculation process of FIG. Further, the control timing T10 is the fourth control timing after the correction position / orientation command values Pc1m to Pc6m are changed from the state in which the correction position / orientation command values Pc1m to Pc6m cannot be converted back to the unique correction axis command values θc1m to θc6m. The correction value calculation process is not performed.

以上詳述したように、本実施形態によれば、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できない状態から逆変換できる状態に変化した後の3回以内の各制御タイミングにおいて、図12の推測補正値算出処理によって推測補正値DPnmを算出した。従って、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できない状態から逆変換できる状態に変化したときに、第1の実施形態に比較して、補正軸指令値θcnmの変化が小さくなり、ハンド17を滑らかに動作させて位置決め精度を向上できる。   As described in detail above, according to the present embodiment, within three times after the corrected position / orientation command values Pc1m to Pc6m are changed from the state in which the corrected position / orientation command values Pc1m to Pc6m cannot be converted back to the unique corrected axis command values θc1m to θc6m. At each control timing, the estimated correction value DPnm was calculated by the estimated correction value calculation process of FIG. Therefore, when the corrected position / orientation command values Pc1m to Pc6m are changed from the state in which the corrected position / orientation command values Pc1m to Pc6m cannot be converted back to the unique correction axis command values θc1m to θc6m to the state in which they can be converted back, the corrected axis command values are compared. The change in θcnm becomes small, and the positioning accuracy can be improved by operating the hand 17 smoothly.

なお、本実施形態において、図12の推測補正値算出処理によって補正値を推測した。しかしながら、本発明はこれに限られず、制御タイミングTmにおける仮の補正値Dtnmならびに制御タイミングTmの直前の少なくとも1つの制御タイミングにおいてメモリ3に格納された補正値Dnmを用いて、第1の実施形態の第1乃至第5の変形例に係る推測補正値算出処理と同様の推測補正値算出処理によって推測補正値DPnmを算出してもよい。また、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できない状態から逆変換できる状態に変化した制御タイミングTmの直前の3回の制御タイミングTm−1,Tm−2,Tm−3においてメモリ3に格納された補正値DPnmを用いて、第1の実施形態又は第1の実施形態の第1乃至第5の変形例に係る推測補正値算出処理によって推測補正値DPnmを算出してもよい。   In the present embodiment, the correction value is estimated by the estimated correction value calculation process of FIG. However, the present invention is not limited to this, and the first embodiment uses the temporary correction value Dtnm at the control timing Tm and the correction value Dnm stored in the memory 3 at least at one control timing immediately before the control timing Tm. The estimated correction value DPnm may be calculated by the estimated correction value calculating process similar to the estimated correction value calculating process according to the first to fifth modifications. Further, the three control timings Tm-1 and Tm- immediately before the control timing Tm when the corrected position / orientation command values Pc1m to Pc6m are changed from the state where the corrected position / orientation command values Pc1m to Pc6m cannot be converted back to the unique corrected axis command values θc1m to θc6m. The correction value DPnm stored in the memory 3 at 2 and Tm−3, and the estimated correction value by the estimated correction value calculation process according to the first embodiment or the first to fifth modifications of the first embodiment. DPnm may be calculated.

第3の実施形態.
上述した各実施形態及び各変形例において、コンピュータ50は、各制御タイミングTmにおける制御点Aの位置及びハンド17の姿勢を表す位置姿勢指令値P1m〜P6mを含む制御データをロボット制御装置1に出力した。本実施形態において、コンピュータ50は、以下の3つの制御データDa,Db及びDcのうちの1つの制御データをロボット制御装置1に出力する。
Third embodiment.
In each embodiment and each modification described above, the computer 50 outputs control data including the position / orientation command values P1m to P6m representing the position of the control point A and the attitude of the hand 17 at each control timing Tm to the robot control device 1. did. In the present embodiment, the computer 50 outputs one control data of the following three control data Da, Db, and Dc to the robot controller 1.

(1)制御データDa.
各制御タイミングTmにおける制御点Aの位置及びハンド17の姿勢を表す位置姿勢指令値P1m〜P6mを含む。
(2)制御データDb.
各制御タイミングTmにおける、ロボット7の固有の誤差に起因する位置ずれの補正が必要な各関節Jnの軸指令値θanmを含む。
(3)制御データDc.
各制御タイミングTmにおける、ロボット7の固有の誤差に起因する位置ずれの補正が不要な各関節Jnの軸指令値θnmを含む。
(1) Control data Da.
Position / orientation command values P1m to P6m representing the position of the control point A and the attitude of the hand 17 at each control timing Tm are included.
(2) Control data Db.
It includes the axis command value θanm of each joint Jn that needs to be corrected for displacement caused by the inherent error of the robot 7 at each control timing Tm.
(3) Control data Dc.
The axis command value θnm of each joint Jn that does not require correction of displacement due to the inherent error of the robot 7 at each control timing Tm is included.

ここで、各関節Jnの補正が不要な補正軸指令値θcnmは、ロボット7に固有の誤差に起因する位置のズレが考慮された軸値であり、具体的には、ティーチペンダント51を使用してロボット7を目的の位置及び姿勢に直接的に移動させて教示し、あるいはハンド17を人間が把持して目的の位置及び姿勢に移動して教示し、教示した位置及び姿勢を計測することによって得られた各関節Jnの各軸値を測定することによって得られる。   Here, the correction axis command value θcnm that does not require correction of each joint Jn is an axis value that takes into account a positional deviation caused by an error inherent in the robot 7. Specifically, the teach pendant 51 is used. Then, the robot 7 is directly moved to the target position and posture for teaching, or the hand 17 is held by the human and moved to the target position and posture for teaching, and the taught position and posture are measured. It is obtained by measuring each axis value of each obtained joint Jn.

図14は、本発明の第3の実施形態に係るロボット制御処理を示すフローチャートである。ステップS91において、メモリ3内の制御データが、各制御タイミングTmにおける位置姿勢指令値P1m〜P6mを含むか否かが判断され、YESのときはステップS92において図3のロボット制御処理が実行されてロボット制御処理を終了する一方、NOのときはステップS93に進む。ステップS93において、メモリ3内の制御データが、各制御タイミングTmにおける補正が必要な軸指令値θanmを含むか否かが判断され、YESのときはステップS94に進む一方、NOのときはステップS95に進む。   FIG. 14 is a flowchart showing a robot control process according to the third embodiment of the present invention. In step S91, it is determined whether or not the control data in the memory 3 includes the position / orientation command values P1m to P6m at each control timing Tm. If YES, the robot control process of FIG. 3 is executed in step S92. While the robot control process ends, the process proceeds to step S93 when the determination is NO. In step S93, it is determined whether or not the control data in the memory 3 includes an axis command value θanm that needs to be corrected at each control timing Tm. If YES, the process proceeds to step S94. If NO, step S95 is performed. Proceed to

ステップS94では、ロボット7には誤差が無いと仮定して、軸指令値θanmを直交座標系における位置姿勢指令値P1m〜P6mに順変換し、ステップS92に進む。一方、ステップS95において、補正が不要な軸指令値θnmに基づいてロボット7を動作させるようにロボット駆動装置5を制御してロボット制御処理を終了する。   In step S94, assuming that there is no error in the robot 7, the axis command value θanm is forward-converted to position / orientation command values P1m to P6m in the orthogonal coordinate system, and the process proceeds to step S92. On the other hand, in step S95, the robot driving device 5 is controlled to operate the robot 7 based on the axis command value θnm that does not require correction, and the robot control process is terminated.

本実施形態によれば、第1の実施形態に比較して、コンピュータ50から制御データDa、Db及びDcのうちのどの制御データが入力されても、ロボット7の固有の誤差に基づいて補正された補正軸指令値θcnmに従ってロボット7の動作を制御できる。特に、制御データDcが入力される場合、各駆動軸のメカストッパおよびソフトリミットが指示通りに作用するので、各軸の動作領域の限界を確実に把握したい場合に有効である。   According to the present embodiment, as compared with the first embodiment, any control data of the control data Da, Db, and Dc input from the computer 50 is corrected based on the inherent error of the robot 7. The operation of the robot 7 can be controlled in accordance with the corrected axis command value θcnm. In particular, when the control data Dc is input, the mechanical stopper and the soft limit of each drive axis act as instructed, which is effective when it is desired to reliably grasp the limit of the operation area of each axis.

さらに、例えば、ロボット7の動作範囲の限界近くで誤差に基づく補正量が適正でないために、あるいはオフラインでの制御データ作成のときに回避すべきケーブルなどのデータが漏れていたために、一部の制御データに対して、人間による直接的な教示が行われることがある。オフラインによる制御データが、人間によって修正されると、オフラインによる制御データと、人間による直接教示の制御データとが混在することになる。本実施形態によれば、制御データDb及び制御データDcを用いることができるので、オフラインの教示データが人間による教示によって修正を加えられても、従来技術に比較してロボット7の位置決め精度を向上できる。   Furthermore, for example, because the correction amount based on the error is not appropriate near the limit of the operation range of the robot 7, or because data such as a cable to be avoided when creating control data offline is leaked, The control data may be directly taught by a human. When the offline control data is corrected by a human, the offline control data and the direct teaching control data by a human are mixed. According to the present embodiment, since the control data Db and the control data Dc can be used, the positioning accuracy of the robot 7 is improved as compared with the prior art even when the off-line teaching data is corrected by teaching by a human. it can.

第4の実施形態.
図15は、本発明の第4の実施形態に係る現在位置出力処理を示すフローチャートである。コントローラ2は、第1又は第2の実施形態に係るロボット制御処理と同期して、各制御タイミングTmにおいて現在位置出力処理を行う。図15のステップS301において、コントローラ2は、測定装置6により各関節Jnの軸値のタイミングTmにおける測定値αnを取得する。そして、ステップS302において、コンピュータ50からの指示コマンドに従って、取得した測定値αnを逆補正するか否かを判断し、YESのときはステップS303に進む一方、NOのときはステップS307に進む。ここで、逆補正とは、測定値αnからロボット制御処理のステップS7又はS9において算出された補正値Dnmを差し引くことをいう。ステップS307では、測定値αnをコンピュータ50に出力して、現在位置出力処理を終了する。一方、ステップS303では、測定値αnからメモリ3に格納された補正値Dnmを減算することにより逆補正された軸値θDnが算出され、ステップS304に進む。ステップS304において、コンピュータ50からの指示コマンドに従って、ロボット7の現在位置を各軸値として出力するか否かが判断され、YESのときはステップS306に進む一方、NOのときはステップS305に進む。ステップS306において、逆補正された軸値θDnをコンピュータに出力して、現在位置出力処理を終了する。また、ステップS305において、逆補正された軸値θDnは表示用位置姿勢値PDnに順変換されてコンピュータ50に出力され、現在位置出力処理を終了する。コンピュータ50は、ロボット制御装置1からの軸値の測定値αn、逆補正された軸値θDn又は表示用位置姿勢値PDnをディスプレイ50dに出力して表示する。
Fourth embodiment.
FIG. 15 is a flowchart showing a current position output process according to the fourth embodiment of the present invention. The controller 2 performs current position output processing at each control timing Tm in synchronization with the robot control processing according to the first or second embodiment. In step S301 in FIG. 15, the controller 2 acquires the measurement value αn at the timing Tm of the axis value of each joint Jn using the measurement device 6. In step S302, it is determined whether or not to reversely correct the acquired measurement value αn in accordance with an instruction command from the computer 50. If YES, the process proceeds to step S303. If NO, the process proceeds to step S307. Here, reverse correction refers to subtracting the correction value Dnm calculated in step S7 or S9 of the robot control process from the measured value αn. In step S307, the measurement value αn is output to the computer 50, and the current position output process is terminated. On the other hand, in step S303, the reversely corrected axis value θDn is calculated by subtracting the correction value Dnm stored in the memory 3 from the measured value αn, and the process proceeds to step S304. In step S304, it is determined whether to output the current position of the robot 7 as each axis value in accordance with an instruction command from the computer 50. If YES, the process proceeds to step S306. If NO, the process proceeds to step S305. In step S306, the reversely corrected axis value θDn is output to the computer, and the current position output process is terminated. In step S305, the inversely corrected axis value θDn is forward-converted to the display position / orientation value PDn and output to the computer 50, and the current position output process is terminated. The computer 50 outputs and displays the measured value αn of the axis value from the robot controller 1, the reversely corrected axis value θDn, or the display position / posture value PDn on the display 50d.

本実施形態によれば、制御タイミングTmにおいて計測された軸値αnをメモリ3に格納された補正値Dnmを用いて逆補正して出力することができる。   According to the present embodiment, the axis value αn measured at the control timing Tm can be reversely corrected using the correction value Dnm stored in the memory 3 and output.

第5の実施形態.
図16は、本発明の第5の実施形態に係るロボット制御処理を示すフローチャートである。本実施形態に係るロボット制御処理は、第2の実施形態に係るロボット制御処理(図11参照。)に比較して、補正位置姿勢指令値Pc1m〜Pc6mを各関節駆動軸の回転量を表す各補正軸指令値θcnmに逆変換できるか否かを判断し、逆変換できるときに、補正位置姿勢指令値Pc1m〜Pc6mを上記各補正軸指令値θcnmに逆変換してメモリ3に格納する一方、逆変換できないときに、上制御タイミングTmの直前の3回の制御タイミングにおいてメモリ3に格納された各関節駆動軸の補正軸指令値θcnmに基づいて、制御タイミングTmにおける各関節駆動軸の補正軸指令値θcnmを算出するとともにメモリ3に格納したことを特徴としている。具体的には、図16のロボット制御処理は、図11のステップS84及びS86における各処理をステップS101及びS104における各処理にそれぞれ置き換え、ステップS9,S10における各処理をステップS102における処理に置き換え、ステップS11における処理をステップS103における処理に置き換えたものである。
Fifth embodiment.
FIG. 16 is a flowchart showing a robot control process according to the fifth embodiment of the present invention. Compared with the robot control process (see FIG. 11) according to the second embodiment, the robot control process according to the present embodiment uses the corrected position / orientation command values Pc1m to Pc6m to represent the rotation amount of each joint drive shaft. It is determined whether or not it can be converted back to the corrected axis command value θcnm, and when it can be converted back, the corrected position / orientation command values Pc1m to Pc6m are converted back to the corrected axis command values θcnm and stored in the memory 3, When reverse conversion cannot be performed, the correction axis of each joint drive axis at the control timing Tm based on the correction axis command value θcnm of each joint drive axis stored in the memory 3 at the three control timings immediately before the upper control timing Tm The command value θcnm is calculated and stored in the memory 3. Specifically, the robot control process in FIG. 16 replaces the processes in steps S84 and S86 in FIG. 11 with the processes in steps S101 and S104, and replaces the processes in steps S9 and S10 with the processes in step S102. The process in step S11 is replaced with the process in step S103.

ステップS5において、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できないと判断されたときには、ステップS101の処理が実行される。ステップS101において、各関節Jn毎に、制御タイミングTmの直前の3回の制御タイミングTm−3,Tm−2,Tm−1においてメモリ3に格納された各補正軸指令値θcnm−3,θcnm−2,θcnm−1に基づいて推測補正軸指令値θPnmを推測し、ステップS102に進む。具体的には、補正軸指令値θcnm−3,θcnm−2,θcnm−1の平均値を推測補正軸指令値θPnmとする。   If it is determined in step S5 that the corrected position / orientation command values Pc1m to Pc6m cannot be inversely converted to the unique correction axis command values θc1m to θc6m, the process of step S101 is executed. In step S101, for each joint Jn, the corrected axis command values θcnm-3 and θcnm− stored in the memory 3 at the three control timings Tm−3, Tm−2 and Tm−1 immediately before the control timing Tm. The estimated correction axis command value θPnm is estimated based on 2, θcnm−1, and the process proceeds to step S102. Specifically, the average value of the correction axis command values θcnm−3, θcnm−2, and θcnm−1 is set as the estimated correction axis command value θPnm.

また、ステップS83において、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できない状態から逆変換できる状態に変化した後の3回以内の各制御タイミングであると判断されたときには、補正位置姿勢指令値Pcnmと、補正軸指令値θcnm−2と、補正軸指令値θcnm−1とに基づいて、各関節Jn毎に推測補正軸指令値θPnmを推測して、ステップS102に進む。具体的には、補正位置姿勢指令値Pcnmを仮の補正軸指令値θt1nmに逆変換し、各関節毎Jn毎に、仮の補正軸指令値θt1nmと、補正軸指令値θcnm−2と、補正軸指令値θcnm−1との平均値を推測補正軸指令値θPnmとする。   Further, in step S83, it is determined that the control timings are within three times after the correction position / orientation command values Pc1m to Pc6m are changed from the state where the correction position / orientation command values Pc1m to Pc6m cannot be converted back to the unique correction axis command values θc1m to θc6m. When it is determined, the estimated corrected axis command value θPnm is estimated for each joint Jn based on the corrected position / orientation command value Pcnm, the corrected axis command value θcnm-2, and the corrected axis command value θcnm−1. Proceed to S102. Specifically, the corrected position / orientation command value Pcnm is inversely converted into a temporary correction axis command value θt1nm, and the temporary correction axis command value θt1nm, the correction axis command value θcnm-2, and the correction are performed for each joint Jn. The average value with the axis command value θcnm−1 is set as the estimated correction axis command value θPnm.

ステップS102において、軸補正指令値θcnmを推測補正軸指令値θPnmに設定する。また、図11のステップS11に代えて、ステップS103において、各関節Jnの補正軸指令値θcnmをメモリ3に格納する。本実施形態は、第2の実施形態と同様の効果を奏する。   In step S102, the axis correction command value θcnm is set to the estimated correction axis command value θPnm. Further, in place of step S11 in FIG. 11, the correction axis command value θcnm of each joint Jn is stored in the memory 3 in step S103. This embodiment has the same effect as the second embodiment.

なお、ステップS101において、各関節Jn毎に、制御タイミングTmの直前の3回の制御タイミングTm−3,Tm−2,Tm−1においてメモリ3に格納された各補正軸指令値θcnm−3,θcnm−2,θcnm−1の平均値を推測補正軸指令値θPnmとした。しかしながら、本発明はこれに限られず、制御タイミングTmの直前の少なくとも1つの制御タイミングにおいてメモリ3に格納された各補正軸指令値に基づいて、例えば、第1の実施形態の第1乃至第5の変形例に係る推測補正値算出処理と同様の演算を行って、推測補正軸指令値θPnmを算出すればよい。また、ステップS83においてYESと判断されたときは、制御タイミングTmにおける仮の補正軸指令値θt1nmならびに制御タイミングTmの直前の少なくとも1つの制御タイミングにおいてメモリ3に格納された補正軸指令値θcnmを用いて、第1の実施形態の第1乃至第5の変形例に係る推測補正値算出処理と同様の推測補正値算出処理によって推測補正軸指令値θPnmを算出してもよい。   In step S101, for each joint Jn, each correction axis command value θcnm-3 stored in the memory 3 at the three control timings Tm-3, Tm-2, Tm-1 immediately before the control timing Tm. The average value of θcnm−2 and θcnm−1 was used as the estimated correction axis command value θPnm. However, the present invention is not limited to this, and based on each correction axis command value stored in the memory 3 at at least one control timing immediately before the control timing Tm, for example, the first to fifth of the first embodiment. The estimated correction axis command value θPnm may be calculated by performing the same calculation as the estimated correction value calculation process according to the modified example. If YES is determined in the step S83, the provisional correction axis command value θt1nm at the control timing Tm and the correction axis command value θcnm stored in the memory 3 at at least one control timing immediately before the control timing Tm are used. Thus, the estimated correction axis command value θPnm may be calculated by the estimated correction value calculation process similar to the estimated correction value calculation process according to the first to fifth modifications of the first embodiment.

上記各実施形態及び各変形例において、ロボット制御装置1は6軸多関節ロボット7の動作を制御した。しかしながら、本発明はこれに限られず、補正位置姿勢指令値を一意の補正軸指令値に逆変換できない特異点を有する、1軸ロボット、4軸多関節ロボット、5軸多関節ロボット又は7軸多関節ロボットなどの少なくとも1つの関節駆動軸を介して複数のリンクが連結してなるロボットの動作を制御してもよい。   In the above embodiments and modifications, the robot control apparatus 1 controls the operation of the six-axis articulated robot 7. However, the present invention is not limited to this, and a single-axis robot, a four-axis multi-joint robot, a five-axis multi-joint robot, or a seven-axis multi-point robot having a singular point that cannot reversely convert the corrected position / orientation command value into a unique corrected axis command value. You may control the operation | movement of the robot which a some link connects via at least 1 joint drive shaft, such as a joint robot.

また、上記各実施形態及び各変形例において、コントローラ2は、補正位置姿勢指令値Pc1m〜Pc6mを補正軸指令値θc1m〜θc6mに逆変換するための連立方程式の判別式を用いて、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できるか否かを判断した。しかしながら、本発明はこれに限られず、関節J5の軸値の絶対値が0度近傍の値であるか否か、又は、制御点AのXYZ座標系における位置がロボット7の可動範囲内であるか否かに基づいて、上記判断を行ってもよい。   In each of the above embodiments and modifications, the controller 2 uses the simultaneous equation discriminant for inversely converting the corrected position / orientation command values Pc1m to Pc6m into the corrected axis instruction values θc1m to θc6m. It was determined whether or not the command values Pc1m to Pc6m can be inversely converted to the unique corrected axis command values θc1m to θc6m. However, the present invention is not limited to this, and whether or not the absolute value of the axis value of the joint J5 is a value near 0 degrees, or the position of the control point A in the XYZ coordinate system is within the movable range of the robot 7. The above determination may be made based on whether or not.

さらに、上記各実施形態及び各変形例において、コントローラ2は、コンピュータ50からの制御データをメモリ3に格納し、格納された制御データに従ってロボット7の動作を制御した。しかしながら、本発明はこれに限られず、上記制御データをティーチペンダント51又は外部記憶装置52から読み出してもよい。   Further, in each of the above-described embodiments and modifications, the controller 2 stores the control data from the computer 50 in the memory 3 and controls the operation of the robot 7 according to the stored control data. However, the present invention is not limited to this, and the control data may be read from the teach pendant 51 or the external storage device 52.

またさらに、図3及び図11のロボット制御処理のステップS11において、各関節Jnの補正値Dnmをメモリ3に格納したが、本発明はこれに限られず、ステップS5において、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できると判断されたときにのみ、各関節Jnの補正値Dnmをメモリ3に格納してもよい。また、図3及び図11のロボット制御処理において、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できないときに、制御タイミングTmの直前の3回の制御タイミングにおいてメモリ3に格納された各関節駆動軸の補正値Dnmに基づいて各関節駆動軸の推測補正値DPnmを算出した。しかしながら、本発明はこれに限られず、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できないときに、制御タイミングTmの前の少なくとも1つの制御タイミングにおいてメモリ3に格納された各関節駆動軸の補正値Dnmに基づいて各関節駆動軸の推測補正値DPnmを算出してもよい。   Furthermore, in step S11 of the robot control process of FIGS. 3 and 11, the correction value Dnm of each joint Jn is stored in the memory 3, but the present invention is not limited to this, and in step S5, the corrected position / orientation command value Pc1m The correction value Dnm of each joint Jn may be stored in the memory 3 only when it is determined that .about.Pc6m can be inversely converted to the unique correction axis command values .theta.c1m to .theta.c6m. Further, in the robot control processing of FIGS. 3 and 11, when the corrected position / orientation command values Pc1m to Pc6m cannot be converted back to the unique corrected axis command values θc1m to θc6m, the control timing is three times immediately before the control timing Tm. Based on the correction value Dnm of each joint drive axis stored in the memory 3, the estimated correction value DPnm of each joint drive axis was calculated. However, the present invention is not limited to this, and when the corrected position / orientation command values Pc1m to Pc6m cannot be inversely converted into the unique corrected axis command values θc1m to θc6m, the memory 3 is stored in at least one control timing before the control timing Tm. The estimated correction value DPnm for each joint drive axis may be calculated based on the stored correction value Dnm for each joint drive axis.

また、図16のロボット制御処理のステップS103において、各関節Jnの補正軸指令値θcnmをメモリ3に格納したが、本発明はこれに限られず、ステップS5において、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できると判断されたときにのみ、各関節Jnの補正軸指令値θcnmをメモリ3に格納してもよい。さらに、図16のロボット制御処理において、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できないときに、制御タイミングTmの直前の3回の制御タイミングにおいてメモリ3に格納された各関節Jnの補正軸指令値θcnmに基づいて各関節駆動軸の推測補正軸指令値θPnmを算出した。しかしながら、本発明はこれに限られず、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できないときに、制御タイミングTmの前の少なくとも1つの制御タイミングにおいてメモリ3に格納された各関節Jnの補正軸指令値θcnmに基づいて各関節駆動軸の推測補正軸指令値θPnmを算出してもよい。   Further, in step S103 of the robot control process of FIG. 16, the correction axis command value θcnm of each joint Jn is stored in the memory 3. However, the present invention is not limited to this, and in step S5, the corrected position / orientation command values Pc1m to Pc6m are stored. The correction axis command value θcnm of each joint Jn may be stored in the memory 3 only when it is determined that can be inversely converted to the unique correction axis command values θc1m to θc6m. Further, in the robot control process of FIG. 16, when the corrected position / orientation command values Pc1m to Pc6m cannot be converted back into the unique correction axis command values θc1m to θc6m, the memory 3 is stored at the three control timings immediately before the control timing Tm. Based on the stored correction axis command value θcnm of each joint Jn, the estimated correction axis command value θPnm of each joint drive axis was calculated. However, the present invention is not limited to this, and when the corrected position / orientation command values Pc1m to Pc6m cannot be inversely converted into the unique corrected axis command values θc1m to θc6m, the memory 3 is stored in at least one control timing before the control timing Tm. The estimated correction axis command value θPnm for each joint drive axis may be calculated based on the stored correction axis command value θcnm for each joint Jn.

以上詳述したように、本発明に係るロボット制御装置及び方法によれば、補正位置姿勢指令値を各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、逆変換できるときに、補正位置姿勢指令値を各補正軸指令値に逆変換し、各補正軸指令値から補正前の各軸指令値を減算することにより各関節駆動軸の補正値を算出して記憶手段に格納する一方、逆変換できないときに、制御タイミングの前の少なくとも1つの制御タイミングにおいて記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出し、各推測補正値を補正前の各軸指令値に加算することにより各補正軸指令値を算出するとともに、各推測補正値を各関節駆動軸の補正値として記憶手段に格納し、各補正軸指令値に従って各関節駆動軸を回転させるように制御するので、補正位置姿勢指令値を一意の各補正軸指令値に逆変換できない特異点において、ロボットの位置決め精度を従来技術に比較して向上できる。   As described above in detail, according to the robot control device and method of the present invention, it is determined whether or not the corrected position / orientation command value can be inversely converted into each corrected axis command value representing the rotation amount of each joint drive shaft. When reverse conversion is possible, the correction position and orientation command value is converted back to each correction axis command value, and the correction value for each joint drive axis is calculated by subtracting each axis command value before correction from each correction axis command value. And when the reverse conversion cannot be performed, the estimated correction value of each joint drive axis based on the correction value of each joint drive axis stored in the storage means at at least one control timing before the control timing And calculating each correction axis command value by adding each estimated correction value to each axis command value before correction, and storing each estimated correction value in the storage means as a correction value for each joint drive axis, Each function according to each correction axis command value And controls to rotate the drive shaft, the singularity that can not inversely converted correction position and orientation command values to each unique correction axis command value, the positioning accuracy of the robot can be improved as compared with the prior art.

1…ロボット制御装置、
2…コントローラ、
3…メモリ、
4…インターフェース回路、
5…駆動装置、
6…測定装置、
7…ロボット、
9…基台、
10…基柱、
11〜16…リンク、
17…ハンド、
50…コンピュータ、
50d…ディスプレイ、
50i…入力部、
51…ティーチペンダント、
52…外部記憶装置、
A…制御点、
J1〜J6…関節。
1 ... Robot controller,
2 ... Controller,
3 ... Memory,
4 ... Interface circuit,
5 ... Drive device,
6 ... Measuring device,
7 ... Robot,
9 ... the base,
10 ...
11-16 ... link,
17 ... hand,
50 ... computer,
50d ... display,
50i ... input section,
51 ... Teach pendant,
52. External storage device,
A: Control point,
J1-J6 ... Joints.

Claims (24)

少なくとも1つの関節駆動軸を介して複数のリンクが連結してなるロボットの制御点の位置及び姿勢を、所定の制御タイミング毎に制御する制御手段を備えたロボット制御装置において、
上記制御手段は、
上記各制御タイミングにおける上記制御点の位置及び姿勢を表す位置姿勢指令値に基づいて、上記各制御タイミングにおいて、
(a)上記位置姿勢指令値を上記各関節駆動軸の回転量を表す補正前の各軸指令値に逆変換し、
(b)所定の位置姿勢を指示したときの実際の位置姿勢におけるロボット固有の誤差に基づいて、上記位置姿勢指令値を補正して、補正位置姿勢指令値を算出し、
(c)上記補正位置姿勢指令値を上記各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、
(c1)逆変換できるときに、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換し、上記各補正軸指令値から上記補正前の各軸指令値を減算することにより各関節駆動軸の補正値を算出して記憶手段に格納する一方、
(c2)逆変換できないときに、上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出し、上記各推測補正値を上記補正前の各軸指令値に加算することにより上記各補正軸指令値を算出するとともに、上記各推測補正値を各関節駆動軸の補正値として上記記憶手段に格納し、
(d)上記各補正軸指令値に従って上記各関節駆動軸を回転させるように制御することを特徴とするロボット制御装置。
In a robot control apparatus comprising a control means for controlling the position and posture of a control point of a robot formed by connecting a plurality of links via at least one joint drive shaft at every predetermined control timing,
The control means includes
Based on the position and orientation command value representing the position and orientation of the control point at each control timing, at each control timing,
(A) The position / orientation command value is inversely converted into each axis command value before correction representing the rotation amount of each joint drive shaft,
(B) correcting the position / orientation command value based on a robot-specific error in the actual position / orientation when a predetermined position / orientation is instructed, and calculating a corrected position / orientation command value;
(C) Determining whether or not the corrected position / orientation command value can be inversely converted into each corrected axis command value representing the rotation amount of each joint drive shaft;
(C1) When reverse conversion is possible, each joint drive is performed by reversely converting the corrected position / orientation command value into the correction axis command values and subtracting the axis command values before correction from the correction axis command values. While calculating the axis correction value and storing it in the storage means,
(C2) When reverse conversion cannot be performed, an estimated correction value for each joint drive axis is calculated based on the correction value for each joint drive axis stored in the storage means at at least one control timing before the control timing; The corrected axis command values are calculated by adding the estimated correction values to the uncorrected axis command values, and the estimated correction values are stored in the storage means as correction values of the joint drive axes. ,
(D) A robot control device that controls to rotate each joint drive shaft according to each correction axis command value.
上記制御手段は、上記逆変換できないときに、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出し、上記各推測補正値を上記補正前の各軸指令値に加算することにより上記各補正軸指令値を算出するとともに、上記各推測補正値を各関節駆動軸の補正値として上記記憶手段に格納することに代えて、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出し、上記各推測補正値を上記補正前の各軸指令値に加算することにより上記各補正軸指令値を算出することを特徴とする請求項1記載のロボット制御装置。
When the control means cannot perform the reverse conversion,
An estimated correction value for each joint drive axis is calculated based on the correction value for each joint drive axis stored in the storage means at at least one control timing before the control timing, and each estimated correction value is calculated before the correction. In addition to calculating each correction axis command value by adding to each axis command value, and storing each estimated correction value as a correction value for each joint drive axis in the storage means,
An estimated correction value for each joint drive axis is calculated based on the correction value for each joint drive axis stored in the storage means at at least one control timing before the control timing, and each estimated correction value is calculated before the correction. 2. The robot control apparatus according to claim 1, wherein each of the corrected axis command values is calculated by adding to each of the axis command values.
上記制御手段は、
上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できる制御タイミングにおいて、当該制御タイミングが上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できない最新の制御タイミングから所定の回数の制御タイミング以内であるか否かを判断し、
上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できる制御タイミングが、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できない最新の制御タイミングから所定の回数の制御タイミング以内であるときは、上記補正位置姿勢指令値を逆変換して得られる各補正軸指令値から上記各軸指令値を減算し、当該減算結果の補正値及び上記制御タイミングの直前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各補正値に基づいて各関節駆動軸の推測補正値を算出することを特徴とする請求項1又は2記載のロボット制御装置。
The control means includes
At the control timing at which the corrected position / orientation command value can be converted back to the respective corrected axis command values, the control timing is a predetermined number of times from the latest control timing at which the corrected position / attitude command value cannot be converted back to the corrected axis command values To determine whether it is within the control timing of
The control timing at which the corrected position / orientation command value can be converted back to the corrected axis command value is within a predetermined number of times from the latest control timing at which the corrected position / attitude command value cannot be converted back to the corrected axis command value. When the correction position / orientation command value is inversely converted, each axis command value is subtracted from each correction axis command value obtained by inversely converting the correction position / orientation command value, and at least one control immediately before the correction value of the subtraction result and the control timing. 3. The robot control apparatus according to claim 1, wherein an estimated correction value for each joint drive axis is calculated based on each correction value stored in the storage means at a timing.
上記制御手段は、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値の平均値を、上記推測補正値とすることを特徴とする請求項1乃至3のうちのいずれか1つに記載のロボット制御装置。   The control means calculates an estimated correction value for each joint drive axis based on correction values for each joint drive axis stored in the storage means at a plurality of control timings before the control timing when the reverse conversion cannot be performed. 4. The robot control apparatus according to claim 1, wherein an average value of the correction values stored in the storage unit is used as the estimated correction value. 上記制御手段は、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値の各差分値に基づいて、上記各関節駆動軸の推測補正値を算出することを特徴とする請求項1乃至3のうちのいずれか1つに記載のロボット制御装置。   The control means calculates an estimated correction value for each joint drive axis based on correction values for each joint drive axis stored in the storage means at a plurality of control timings before the control timing when the reverse conversion cannot be performed. 4. The estimated correction value of each joint drive shaft is calculated based on each difference value of each correction value stored in the storage means. The robot control device described in one. 上記制御手段は、上記逆変換できないときに、上記制御タイミングの前の1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された補正値を、上記推測補正値とすることを特徴とする請求項1乃至3のうちのいずれか1つに記載のロボット制御装置。 The control means calculates an estimated correction value of each joint drive axis based on the correction value of each joint drive axis stored in the storage means at one control timing before the control timing when the reverse conversion cannot be performed. when, the correction value stored in the storage means, the robot control apparatus according to any one of claims 1 to 3, characterized in that the above guess correction value. 上記制御手段は、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値に対して所定の関数を当てはめ、当該当てはめられた関数を用いて上記各関節駆動軸の推測補正値を算出することを特徴とする請求項1乃至3のうちのいずれか1つに記載のロボット制御装置。   The control means calculates an estimated correction value for each joint drive axis based on correction values for each joint drive axis stored in the storage means at a plurality of control timings before the control timing when the reverse conversion cannot be performed. A predetermined function is applied to each correction value stored in the storage means, and an estimated correction value for each joint drive shaft is calculated using the applied function. The robot control device according to any one of 1 to 3. 上記制御手段は、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値に対して予め設定された所定の重みを用いて、上記各補正値の加重平均値を算出し、当該加重平均値を上記推測補正値とすることを特徴とする請求項1乃至3のうちのいずれか1つに記載のロボット制御装置。 The control means calculates an estimated correction value for each joint drive axis based on correction values for each joint drive axis stored in the storage means at a plurality of control timings before the control timing when the reverse conversion cannot be performed. A weighted average value of each correction value is calculated using a predetermined weight set in advance for each correction value stored in the storage means, and the weighted average value is calculated as each estimated correction value. The robot control apparatus according to any one of claims 1 to 3, wherein the robot control apparatus is configured as follows. 上記制御タイミングの前の複数の制御タイミングは、上記制御タイミングの直前の複数の制御タイミングであることを特徴とする請求項乃至8のうちのいずれか1つに記載のロボット制御装置。 The robot control apparatus according to claim 4 , wherein the plurality of control timings before the control timing are a plurality of control timings immediately before the control timing. 少なくとも1つの関節駆動軸を介して複数のリンクが連結してなるロボットの制御点の位置及び姿勢を、所定の制御タイミング毎に制御する制御手段を備えたロボット制御装置において、
上記制御手段は、
上記各制御タイミングにおける上記制御点の位置及び姿勢を表す位置姿勢指令値に基づいて、上記各制御タイミングにおいて、
(a)所定の位置姿勢を指示したときの実際の位置姿勢におけるロボット固有の誤差に基づいて、上記位置姿勢指令値を補正して、補正位置姿勢指令値を算出し、
)上記補正位置姿勢指令値を上記各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、
1)逆変換できるときに、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換して当該各補正軸指令値を記憶手段に格納する一方、
2)逆変換できないときに、上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出するとともに上記記憶手段に格納し、
)上記各補正軸指令値に従って上記各関節駆動軸を回転させるように制御することを特徴とするロボット制御装置。
In a robot control apparatus comprising a control means for controlling the position and posture of a control point of a robot formed by connecting a plurality of links via at least one joint drive shaft at every predetermined control timing,
The control means includes
Based on the position and orientation command value representing the position and orientation of the control point at each control timing, at each control timing,
(A) correcting the position / orientation command value based on a robot-specific error in the actual position / orientation when a predetermined position / orientation is instructed, and calculating a corrected position / orientation command value;
( B ) determining whether the corrected position / orientation command value can be inversely converted into each corrected axis command value representing the rotation amount of each joint drive shaft;
( B 1) When reverse conversion is possible, the correction position / orientation command value is reversely converted into the correction axis command values and the correction axis command values are stored in the storage means.
( B2 ) When the reverse conversion cannot be performed, each joint drive axis at the control timing is based on the corrected axis command value of each joint drive axis stored in the storage unit at at least one control timing before the control timing. And the correction axis command value is calculated and stored in the storage means,
( C ) A robot control device that controls the joint drive shafts to rotate according to the correction axis command values.
上記制御手段は、上記逆変換できないときに、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出するとともに上記記憶手段に格納することに代えて、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出することを特徴とする請求項10記載のロボット制御装置。
When the control means cannot perform the reverse conversion,
Based on the correction axis command value of each joint drive axis stored in the storage means at at least one control timing before the control timing, the correction axis command value of each joint drive axis at the control timing is calculated and Instead of storing in storage means,
Calculating a correction axis command value for each joint drive axis at the control timing based on a correction axis command value for each joint drive axis stored in the storage means at at least one control timing before the control timing; 11. The robot control apparatus according to claim 10, wherein
上記制御タイミングの前の少なくとも1つの制御タイミングは、上記制御タイミングの直前の少なくとも1つの制御タイミングであることを特徴とする請求項10又は11記載のロボット制御装置。 12. The robot control apparatus according to claim 10, wherein the at least one control timing before the control timing is at least one control timing immediately before the control timing. 少なくとも1つの関節駆動軸を介して複数のリンクが連結してなるロボットの制御点の位置及び姿勢を、所定の制御タイミング毎に制御する制御ステップを含むロボット制御方法において、
上記制御ステップは、
上記各制御タイミングにおける上記制御点の位置及び姿勢を表す位置姿勢指令値に基づいて、上記各制御タイミングにおいて、
(a)上記位置姿勢指令値を上記各関節駆動軸の回転量を表す補正前の各軸指令値に逆変換し、
(b)所定の位置姿勢を指示したときの実際の位置姿勢におけるロボット固有の誤差に基づいて、上記位置姿勢指令値を補正して、補正位置姿勢指令値を算出し、
(c)上記補正位置姿勢指令値を上記各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、
(c1)逆変換できるときに、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換し、上記各補正軸指令値から上記補正前の各軸指令値を減算することにより各関節駆動軸の補正値を算出して記憶手段に格納する一方、
(c2)逆変換できないときに、上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出し、上記各推測補正値を上記補正前の各軸指令値に加算することにより上記各補正軸指令値を算出するとともに、上記各推測補正値を各関節駆動軸の補正値として上記記憶手段に格納し、
(d)上記各補正軸指令値に従って上記各関節駆動軸を回転させるように制御することを特徴とするロボット制御方法。
In a robot control method including a control step of controlling the position and posture of a control point of a robot formed by connecting a plurality of links via at least one joint drive shaft at every predetermined control timing.
The above control steps are:
Based on the position and orientation command value representing the position and orientation of the control point at each control timing, at each control timing,
(A) The position / orientation command value is inversely converted into each axis command value before correction representing the rotation amount of each joint drive shaft,
(B) correcting the position / orientation command value based on a robot-specific error in the actual position / orientation when a predetermined position / orientation is instructed, and calculating a corrected position / orientation command value;
(C) Determining whether or not the corrected position / orientation command value can be inversely converted into each corrected axis command value representing the rotation amount of each joint drive shaft;
(C1) When reverse conversion is possible, each joint drive is performed by reversely converting the corrected position / orientation command value into the correction axis command values and subtracting the axis command values before correction from the correction axis command values. While calculating the axis correction value and storing it in the storage means,
(C2) When reverse conversion cannot be performed, an estimated correction value for each joint drive axis is calculated based on the correction value for each joint drive axis stored in the storage means at at least one control timing before the control timing; The corrected axis command values are calculated by adding the estimated correction values to the uncorrected axis command values, and the estimated correction values are stored in the storage means as correction values of the joint drive axes. ,
(D) A robot control method characterized by controlling the joint drive shafts to rotate according to the correction axis command values.
上記制御ステップは、上記逆変換できないときに、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出し、上記各推測補正値を上記補正前の各軸指令値に加算することにより上記各補正軸指令値を算出するとともに、上記各推測補正値を各関節駆動軸の補正値として上記記憶手段に格納することに代えて、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出し、上記各推測補正値を上記補正前の各軸指令値に加算することにより上記各補正軸指令値を算出することを特徴とする請求項13記載のロボット制御方法。
When the control step cannot perform the reverse conversion,
An estimated correction value for each joint drive axis is calculated based on the correction value for each joint drive axis stored in the storage means at at least one control timing before the control timing, and each estimated correction value is calculated before the correction. In addition to calculating each correction axis command value by adding to each axis command value, and storing each estimated correction value as a correction value for each joint drive axis in the storage means,
An estimated correction value for each joint drive axis is calculated based on the correction value for each joint drive axis stored in the storage means at at least one control timing before the control timing, and each estimated correction value is calculated before the correction. 14. The robot control method according to claim 13, wherein each of the corrected axis command values is calculated by adding to each of the axis command values.
上記制御ステップは、
上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できる制御タイミングにおいて、当該制御タイミングが上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できない最新の制御タイミングから所定の回数の制御タイミング以内であるか否かを判断し、
上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できる制御タイミングが、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換できない最新の制御タイミングから所定の回数の制御タイミング以内であるときは、上記補正位置姿勢指令値を逆変換して得られる各軸補正指令値から上記各軸指令値を減算し、当該減算結果の補正値及び上記制御タイミングの直前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各補正値に基づいて各関節駆動軸の推測補正値を算出することを特徴とする請求項13又は14記載のロボット制御方法。
The above control steps are:
At the control timing at which the corrected position / orientation command value can be converted back to the respective corrected axis command values, the control timing is a predetermined number of times from the latest control timing at which the corrected position / attitude command value cannot be converted back to the corrected axis command values To determine whether it is within the control timing of
The control timing at which the corrected position / orientation command value can be converted back to the corrected axis command value is within a predetermined number of times from the latest control timing at which the corrected position / attitude command value cannot be converted back to the corrected axis command value. If it is, each axis command value is subtracted from each axis correction command value obtained by inversely converting the corrected position and orientation command value, and at least one control immediately before the correction value of the subtraction result and the control timing 15. The robot control method according to claim 13, wherein an estimated correction value for each joint drive axis is calculated based on each correction value stored in the storage means at a timing.
上記制御ステップは、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値の平均値を、上記推測補正値とすることを特徴とする請求項13乃至15のうちのいずれか1つに記載のロボット制御方法。   The control step calculates an estimated correction value of each joint drive axis based on the correction value of each joint drive axis stored in the storage unit at a plurality of control timings before the control timing when the reverse conversion cannot be performed. The robot control method according to claim 13, wherein an average value of each correction value stored in the storage unit is used as the estimated correction value. 上記制御ステップは、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値の各差分値に基づいて、上記各関節駆動軸の推測補正値を算出することを特徴とする請求項13乃至15のうちのいずれか1つに記載のロボット制御方法。   The control step calculates an estimated correction value of each joint drive axis based on the correction value of each joint drive axis stored in the storage unit at a plurality of control timings before the control timing when the reverse conversion cannot be performed. The estimated correction value of each joint drive shaft is calculated based on each difference value of each correction value stored in the storage means. The robot control method described in one. 上記制御ステップは、上記逆変換できないときに、上記制御タイミングの前の1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された補正値を、上記推測補正値とすることを特徴とする請求項13乃至15のうちのいずれか1つに記載のロボット制御方法。 The control step calculates an estimated correction value of each joint drive axis based on a correction value of each joint drive axis stored in the storage means at one control timing before the control timing when the reverse conversion cannot be performed. when, the correction value stored in the storage means, the robot control method according to any one of claims 13 to 15, characterized in that the above guess correction value. 上記制御ステップは、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値に対して所定の関数を当てはめ、当該当てはめられた関数を用いて上記各関節駆動軸の推測補正値を算出することを特徴とする請求項13乃至15のうちのいずれか1つに記載のロボット制御方法。   The control step calculates an estimated correction value of each joint drive axis based on the correction value of each joint drive axis stored in the storage unit at a plurality of control timings before the control timing when the reverse conversion cannot be performed. A predetermined function is applied to each correction value stored in the storage means, and an estimated correction value for each joint drive shaft is calculated using the applied function. The robot control method according to any one of 13 to 15. 上記制御ステップは、上記逆変換できないときに、上記制御タイミングの前の複数の制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正値に基づいて各関節駆動軸の推測補正値を算出するときに、上記記憶手段に格納された各補正値に対して予め設定された所定の重みを用いて、上記各補正値の加重平均値を算出し、当該加重平均値を上記推測補正値とすることを特徴とする請求項13乃至15のうちのいずれか1つに記載のロボット制御方法。 The control step calculates an estimated correction value of each joint drive axis based on the correction value of each joint drive axis stored in the storage unit at a plurality of control timings before the control timing when the reverse conversion cannot be performed. A weighted average value of each correction value is calculated using a predetermined weight set in advance for each correction value stored in the storage means, and the weighted average value is calculated as each estimated correction value. The robot control method according to any one of claims 13 to 15, wherein: 上記制御タイミングの前の複数の制御タイミングは、上記制御タイミングの直前の複数の制御タイミングであることを特徴とする請求項16乃至20のうちのいずれか1つに記載のロボット制御方法。 The robot control method according to any one of claims 16 to 20, wherein the plurality of control timings before the control timing are a plurality of control timings immediately before the control timing. 少なくとも1つの関節駆動軸を介して複数のリンクが連結してなるロボットの制御点の位置及び姿勢を、所定の制御タイミング毎に制御する制御ステップを含むロボット制御方法において、
上記制御ステップは、
上記各制御タイミングにおける上記制御点の位置及び姿勢を表す位置姿勢指令値に基づいて、上記各制御タイミングにおいて、
(a)所定の位置姿勢を指示したときの実際の位置姿勢におけるロボット固有の誤差に基づいて、上記位置姿勢指令値を補正して、補正位置姿勢指令値を算出し、
)上記補正位置姿勢指令値を上記各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、
1)逆変換できるときに、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換して当該各補正軸指令値を記憶手段に格納する一方、
2)逆変換できないときに、上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出するとともに上記記憶手段に格納し、
)上記各補正軸指令値に従って上記各関節駆動軸を回転させるように制御することを特徴とするロボット制御方法。
In a robot control method including a control step of controlling the position and posture of a control point of a robot formed by connecting a plurality of links via at least one joint drive shaft at every predetermined control timing.
The above control steps are:
Based on the position and orientation command value representing the position and orientation of the control point at each control timing, at each control timing,
(A) correcting the position / orientation command value based on a robot-specific error in the actual position / orientation when a predetermined position / orientation is instructed, and calculating a corrected position / orientation command value;
( B ) determining whether the corrected position / orientation command value can be inversely converted into each corrected axis command value representing the rotation amount of each joint drive shaft;
( B 1) When reverse conversion is possible, the correction position / orientation command value is reversely converted into the correction axis command values and the correction axis command values are stored in the storage means.
( B2 ) When the reverse conversion cannot be performed, each joint drive axis at the control timing is based on the corrected axis command value of each joint drive axis stored in the storage unit at at least one control timing before the control timing. And the correction axis command value is calculated and stored in the storage means,
( C ) A robot control method comprising controlling the joint drive shafts to rotate according to the correction axis command values.
上記制御ステップは、上記逆変換できないときに、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出するとともに上記記憶手段に格納することに代えて、
上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出することを特徴とする請求項22記載のロボット制御方法。
When the control step cannot perform the reverse conversion,
Based on the correction axis command value of each joint drive axis stored in the storage means at at least one control timing before the control timing, the correction axis command value of each joint drive axis at the control timing is calculated and Instead of storing in storage means,
Calculating a correction axis command value for each joint drive axis at the control timing based on a correction axis command value for each joint drive axis stored in the storage means at at least one control timing before the control timing; 23. The robot control method according to claim 22, wherein
上記制御タイミングの前の少なくとも1つの制御タイミングは、上記制御タイミングの直前の少なくとも1つの制御タイミングであることを特徴とする請求項22又は23記載のロボット制御方法。 24. The robot control method according to claim 22, wherein the at least one control timing before the control timing is at least one control timing immediately before the control timing.
JP2009124330A 2009-05-22 2009-05-22 Robot control apparatus and method Active JP5433304B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009124330A JP5433304B2 (en) 2009-05-22 2009-05-22 Robot control apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009124330A JP5433304B2 (en) 2009-05-22 2009-05-22 Robot control apparatus and method

Publications (2)

Publication Number Publication Date
JP2010269421A JP2010269421A (en) 2010-12-02
JP5433304B2 true JP5433304B2 (en) 2014-03-05

Family

ID=43417874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009124330A Active JP5433304B2 (en) 2009-05-22 2009-05-22 Robot control apparatus and method

Country Status (1)

Country Link
JP (1) JP5433304B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6057284B2 (en) * 2012-10-09 2017-01-11 シンフォニアテクノロジー株式会社 Articulated robot and semiconductor wafer transfer device
DE112014006610B4 (en) 2014-04-24 2019-09-19 Mitsubishi Electric Corporation Robot control device and robot control method
CN104750023A (en) * 2015-02-13 2015-07-01 河北联合大学 Model based welding robot offline training data acquisition method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2688372B2 (en) * 1989-08-04 1997-12-10 富士通株式会社 Robot trajectory control device
JPH03175503A (en) * 1989-12-04 1991-07-30 Nec Corp Positioning error correction system
JP3748454B2 (en) * 1993-05-14 2006-02-22 株式会社安川電機 Industrial robot controller
JPH07200018A (en) * 1993-12-27 1995-08-04 Toyoda Mach Works Ltd Controller for robot
JP3380327B2 (en) * 1994-04-11 2003-02-24 新日本製鐵株式会社 Deflection correction control method for parallel link manipulator
JP4960589B2 (en) * 2004-12-08 2012-06-27 川崎重工業株式会社 Robot control apparatus and robot control method
JP4494247B2 (en) * 2005-02-15 2010-06-30 三菱電機株式会社 Robot control apparatus and control method

Also Published As

Publication number Publication date
JP2010269421A (en) 2010-12-02

Similar Documents

Publication Publication Date Title
JP6924142B2 (en) Robot system
JP6238628B2 (en) Robot device, robot control method, robot control program, and part manufacturing method using robot device
JP5191738B2 (en) Manipulator control method and control system
JP6351293B2 (en) Robot system and article manufacturing method
WO2017064851A1 (en) Method for teaching robot and device for controlling robot arm
JP5531996B2 (en) 6-axis robot offset detection method
US20140031982A1 (en) Robotic system and robot control device
KR101713326B1 (en) Method and apparatus for operating a manipulator
JP2015033747A (en) Robot system, robot control device and robot control method
JP2015202534A (en) Robot control device and robot system for robot moved according to input power
JP2017094440A (en) Direct teaching method of robot
JP6044511B2 (en) Robot control method and robot system
JP5672173B2 (en) 6-axis robot offset detection method
JP2017164870A (en) Robot device and control method for robot device
JP2010231575A (en) Device and method for instruction of off-line of robot, and robot system
JP6652310B2 (en) Robot system, robot arm control method, program, recording medium, and article manufacturing method
JP2019177432A (en) Robot system and control method
US11865697B2 (en) Robot system and method for operating same
JP5433304B2 (en) Robot control apparatus and method
JP5786550B2 (en) 6-axis robot offset detection method
JP6576824B2 (en) Robot controller
JP2005052913A (en) Robot controller
WO2019215998A1 (en) Robot control method
JP4960589B2 (en) Robot control apparatus and robot control method
JP5382148B2 (en) Robot motion control apparatus and motion control method thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130821

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131209

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5433304

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250