JP5433304B2 - Robot control apparatus and method - Google Patents
Robot control apparatus and method Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 145
- 238000012937 correction Methods 0.000 claims description 467
- 238000006243 chemical reaction Methods 0.000 claims description 55
- 230000008569 process Effects 0.000 description 108
- 238000004364 calculation method Methods 0.000 description 30
- 230000004048 modification Effects 0.000 description 28
- 238000012986 modification Methods 0.000 description 28
- 238000012545 processing Methods 0.000 description 14
- 101100425597 Solanum lycopersicum Tm-1 gene Proteins 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000005259 measurement Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000003466 welding Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012888 cubic function Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 1
Images
Landscapes
- Numerical Control (AREA)
- Manipulator (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
従来技術に係る多関節ロボットにおいては、当該多関節ロボットの直交座標系における位置及び姿勢を示す位置姿勢値を各関節の駆動軸の回転量(以下、軸値という。)のデータに一意に逆変換できない特異点とよばれる位置が存在することが知られている。しかしながら、特許文献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,
本発明の目的は以上の問題点を解決し、補正された位置姿勢値を一意の各軸値に逆変換できない特異点において、ロボットの位置決め精度を従来技術に比較して向上できるロボット制御装置及び方法を提供することにある。 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)所定の位置姿勢を指示したときの実際の位置姿勢におけるロボット固有の誤差に基づいて、上記位置姿勢指令値を補正して、補正位置姿勢指令値を算出し、
(b)上記補正位置姿勢指令値を上記各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、
(b1)逆変換できるときに、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換して当該各補正軸指令値を記憶手段に格納する一方、
(b2)逆変換できないときに、上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出するとともに上記記憶手段に格納し、
(c)上記各補正軸指令値に従って上記各関節駆動軸を回転させるように制御することを特徴とする。
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)所定の位置姿勢を指示したときの実際の位置姿勢におけるロボット固有の誤差に基づいて、上記位置姿勢指令値を補正して、補正位置姿勢指令値を算出し、
(b)上記補正位置姿勢指令値を上記各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、
(b1)逆変換できるときに、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換して当該各補正軸指令値を記憶手段に格納する一方、
(b2)逆変換できないときに、上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出するとともに上記記憶手段に格納し、
(c)上記各補正軸指令値に従って上記各関節駆動軸を回転させるように制御することを特徴とする。
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.
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。 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
ここで、詳細後述するように、ロボット制御装置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
(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
(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
(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
図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
インターフェース回路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
次に、コントローラ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
引き続き、コントローラ2は、ステップS4において、非特許文献1に記載の「多関節ロボット機構誤差補正方式」を用いて各位置姿勢指令値P1m〜P6mを補正して、当該補正後の補正位置姿勢指令値Pc1m〜Pc6mを算出する。ここで、多関節ロボット機構誤差補正方式は、制御点Aの位置を所定の位置に移動させかつハンド17を所定の姿勢をとるように制御したときの、制御点Aの実際の位置及びハンド17の実際の姿勢からのズレを補正するものである。このようなズレは、ロボット7に固有のたわみ、加工誤差、及び組立誤差などに基づく機構誤差、据付誤差、ならびに各軸の機械原点の誤差に起因する。以下、このような誤差補正方式による補正を、高精度ロボットモデルによる補正という。
Subsequently, in step S4, the
次に、ステップ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
ステップ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
ステップ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
なお、制御タイミング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
図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
以上詳述したように、本実施形態によれば、制御タイミング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
なお、本実施形態において、補正位置姿勢指令値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
第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
なお、本変形例において、制御タイミング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
第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
第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
第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
なお、本変形例において、制御タイミング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
第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
なお、本変形例において、制御タイミング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
第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
図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
引き続き、コントローラ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
ステップ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
図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
なお、本実施形態において、図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
第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
(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
(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
(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
ここで、各関節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
図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
ステップS94では、ロボット7には誤差が無いと仮定して、軸指令値θanmを直交座標系における位置姿勢指令値P1m〜P6mに順変換し、ステップS92に進む。一方、ステップS95において、補正が不要な軸指令値θnmに基づいてロボット7を動作させるようにロボット駆動装置5を制御してロボット制御処理を終了する。
In step S94, assuming that there is no error in the
本実施形態によれば、第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
さらに、例えば、ロボット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
第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
本実施形態によれば、制御タイミング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
第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
ステップ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
また、ステップ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
なお、ステップ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
上記各実施形態及び各変形例において、ロボット制御装置1は6軸多関節ロボット7の動作を制御した。しかしながら、本発明はこれに限られず、補正位置姿勢指令値を一意の補正軸指令値に逆変換できない特異点を有する、1軸ロボット、4軸多関節ロボット、5軸多関節ロボット又は7軸多関節ロボットなどの少なくとも1つの関節駆動軸を介して複数のリンクが連結してなるロボットの動作を制御してもよい。
In the above embodiments and modifications, the
また、上記各実施形態及び各変形例において、コントローラ2は、補正位置姿勢指令値Pc1m〜Pc6mを補正軸指令値θc1m〜θc6mに逆変換するための連立方程式の判別式を用いて、補正位置姿勢指令値Pc1m〜Pc6mを一意の補正軸指令値θc1m〜θc6mに逆変換できるか否かを判断した。しかしながら、本発明はこれに限られず、関節J5の軸値の絶対値が0度近傍の値であるか否か、又は、制御点AのXYZ座標系における位置がロボット7の可動範囲内であるか否かに基づいて、上記判断を行ってもよい。
In each of the above embodiments and modifications, the
さらに、上記各実施形態及び各変形例において、コントローラ2は、コンピュータ50からの制御データをメモリ3に格納し、格納された制御データに従ってロボット7の動作を制御した。しかしながら、本発明はこれに限られず、上記制御データをティーチペンダント51又は外部記憶装置52から読み出してもよい。
Further, in each of the above-described embodiments and modifications, the
またさらに、図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
また、図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
以上詳述したように、本発明に係るロボット制御装置及び方法によれば、補正位置姿勢指令値を各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、逆変換できるときに、補正位置姿勢指令値を各補正軸指令値に逆変換し、各補正軸指令値から補正前の各軸指令値を減算することにより各関節駆動軸の補正値を算出して記憶手段に格納する一方、逆変換できないときに、制御タイミングの前の少なくとも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)
上記制御手段は、
上記各制御タイミングにおける上記制御点の位置及び姿勢を表す位置姿勢指令値に基づいて、上記各制御タイミングにおいて、
(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.
上記制御手段は、
上記各制御タイミングにおける上記制御点の位置及び姿勢を表す位置姿勢指令値に基づいて、上記各制御タイミングにおいて、
(a)所定の位置姿勢を指示したときの実際の位置姿勢におけるロボット固有の誤差に基づいて、上記位置姿勢指令値を補正して、補正位置姿勢指令値を算出し、
(b)上記補正位置姿勢指令値を上記各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、
(b1)逆変換できるときに、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換して当該各補正軸指令値を記憶手段に格納する一方、
(b2)逆変換できないときに、上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出するとともに上記記憶手段に格納し、
(c)上記各補正軸指令値に従って上記各関節駆動軸を回転させるように制御することを特徴とするロボット制御装置。 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
上記制御ステップは、
上記各制御タイミングにおける上記制御点の位置及び姿勢を表す位置姿勢指令値に基づいて、上記各制御タイミングにおいて、
(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.
上記制御ステップは、
上記各制御タイミングにおける上記制御点の位置及び姿勢を表す位置姿勢指令値に基づいて、上記各制御タイミングにおいて、
(a)所定の位置姿勢を指示したときの実際の位置姿勢におけるロボット固有の誤差に基づいて、上記位置姿勢指令値を補正して、補正位置姿勢指令値を算出し、
(b)上記補正位置姿勢指令値を上記各関節駆動軸の回転量を表す各補正軸指令値に逆変換できるか否かを判断し、
(b1)逆変換できるときに、上記補正位置姿勢指令値を上記各補正軸指令値に逆変換して当該各補正軸指令値を記憶手段に格納する一方、
(b2)逆変換できないときに、上記制御タイミングの前の少なくとも1つの制御タイミングにおいて上記記憶手段に格納された各関節駆動軸の補正軸指令値に基づいて、上記制御タイミングにおける各関節駆動軸の補正軸指令値を算出するとともに上記記憶手段に格納し、
(c)上記各補正軸指令値に従って上記各関節駆動軸を回転させるように制御することを特徴とするロボット制御方法。 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
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)
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)
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 |
-
2009
- 2009-05-22 JP JP2009124330A patent/JP5433304B2/en active Active
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 | |
JP6044511B2 (en) | Robot control method and robot system | |
JP2013132731A (en) | Robot control system, robot system and robot control method | |
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 | |
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 | |
JP7165951B2 (en) | Robot control method | |
JP4960589B2 (en) | Robot control apparatus and robot control method | |
JP5382148B2 (en) | Robot motion control apparatus and motion control method thereof | |
JP2014180726A (en) | Compensating device for spring constant of multi-joint robot |
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 |