JPH07200018A - Controller for robot - Google Patents
Controller for robotInfo
- Publication number
- JPH07200018A JPH07200018A JP35457893A JP35457893A JPH07200018A JP H07200018 A JPH07200018 A JP H07200018A JP 35457893 A JP35457893 A JP 35457893A JP 35457893 A JP35457893 A JP 35457893A JP H07200018 A JPH07200018 A JP H07200018A
- Authority
- JP
- Japan
- Prior art keywords
- target position
- axis
- torque
- gravity torque
- gravity
- 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.)
- Pending
Links
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、ロボットの軸のバック
ラッシュによる位置決め誤差を防止したロボットの制御
装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a control device for a robot which prevents a positioning error due to backlash of a robot axis.
【0002】[0002]
【従来の技術】多関節ロボットにおいては、モータとア
ーム回転軸との間に減速機が配設されており、この減速
機は、バックラッシュを有している。このバックラッシ
ュによる位置決め精度を向上させるために、特開平4−
233602号公報に記載の技術が知られている。この
技術では、各軸にかかる関節トルクを演算し、その関節
トルクから各軸の撓み角を求め、その撓み角だけ制御目
標位置を補正するということが行われている。このよう
に関節トルクを用いてバックラッシュの補正を行うこと
は、ロボットのようにア−ムの移動方向が反転しても、
ア−ムの重量によってバックラッシュが生じない場合が
あるものには有効な手段である。2. Description of the Related Art In an articulated robot, a speed reducer is arranged between a motor and an arm rotating shaft, and this speed reducer has a backlash. In order to improve the positioning accuracy due to this backlash, JP-A-4-
The technique described in Japanese Patent No. 233602 is known. In this technique, the joint torque applied to each axis is calculated, the bending angle of each axis is calculated from the joint torque, and the control target position is corrected by the bending angle. Correcting the backlash by using the joint torque in this way, even if the arm moving direction is reversed like a robot,
This is an effective means when backlash may not occur due to the weight of the arm.
【0003】[0003]
【発明が解決しようとする課題】しかし、上記の方法で
は、撓み角と関節トルクとの関係は、関節トルクが零に
近い領域では撓み角の関節トルクに対する変化率は極め
て大きくなる。よって、撓み角を正確に求めるには、関
節トルクの零付近において、関節トルクの値の精度が問
題となる。しかしながら、目標位置が重力トルクが0付
近に存在すると、重力トルクが鉛直軸とロボットアーム
との成す角の正弦に比例することから、アームが鉛直軸
を横切ることを重力トルクの符号から正確に判定するこ
とは困難となる。又、関節トルクはハンドが保持する物
体に依存しても変化するために、精度の高い演算値を求
めることは困難である。又、重力トルクが大きい間で、
回転角の向きが変化してもその時にはバックラッシュ誤
差は発生しない。しかし、重力トルクが0付近である間
に回転方向が反転する場合には、実際に重力トルクの向
きが反転してバックラッシュ誤差が発生する。よって、
従来の方式では、多関節ロボットの位置決め精度が良く
ないという問題がある。However, in the above method, the relationship between the bending angle and the joint torque has a very large change rate with respect to the joint torque in the region where the joint torque is close to zero. Therefore, in order to accurately obtain the deflection angle, the accuracy of the joint torque value becomes a problem in the vicinity of zero of the joint torque. However, when the target position is near the gravity torque of 0, the gravity torque is proportional to the sine of the angle formed by the vertical axis and the robot arm. Therefore, it is accurately determined from the sign of the gravity torque that the arm crosses the vertical axis. It will be difficult to do. Further, since the joint torque changes depending on the object held by the hand, it is difficult to obtain a highly accurate calculated value. Also, while the gravity torque is large,
Even if the direction of the rotation angle changes, the backlash error does not occur at that time. However, if the rotation direction is reversed while the gravity torque is near 0, the direction of the gravity torque is actually reversed and a backlash error occurs. Therefore,
The conventional method has a problem in that the positioning accuracy of the articulated robot is not good.
【0004】本発明は上記の課題を解決するために成さ
れたものであり、その目的は、多関節ロボットにおい
て、バックラッシュ補正を正確に行うことで、位置決め
精度を向上させることである。The present invention has been made to solve the above problems, and an object thereof is to improve the positioning accuracy by accurately performing backlash correction in an articulated robot.
【0005】[0005]
【課題を解決するための手段】上記課題を解決するため
の発明の構成は、多関節ロボットのハンド先端の位置及
び姿勢を制御する制御装置において、複数の教示点にお
ける位置及び姿勢を規定した教示データと、ハンド先端
の移動を指令する移動命令語を含む動作プログラムを記
憶したデータ記憶手段と、ハンド先端の現在位置と移動
命令語で規定される目標位置における各軸の重力トルク
を演算する重力トルク演算手段と、目標位置における各
軸の重力トルクの絶対値が所定のしきい値以上の第1状
態に存在するか所定のしきい値より小さい第2状態に存
在するかを判定する大きさ判定手段と、各軸の回転角の
向きが反転するか否かを判定する回転方向判定手段と、
現在位置の重力トルクと目標位置の重力トルクとの向き
とが、相互に反対である反転状態にあるか重力トルクの
向きが同一である非反転状態にあるかを判定するトルク
方向判定手段と、大きさ判定手段により目標位置の重力
トルクの絶対値が第1状態であると判定され、かつトル
ク方向判定手段により目標位置の重力トルクが反転状態
と判定された場合、又は、大きさ判定手段により目標位
置の重力トルクの絶対値が第2状態であると判定され、
かつその第2状態にある間に回転方向反転手段により回
転方向が反転すると判定された場合に、目標位置に対す
る位置決めに関し、各軸の回転角をその軸のバックラッ
シュ分だけ補正するバックラッシュ補正手段とを設けた
ことである。The configuration of the invention for solving the above-mentioned problems is a teaching device which defines the positions and orientations at a plurality of teaching points in a control device for controlling the position and orientation of the hand tip of an articulated robot. Data and a data storage means for storing an operation program including a movement command word for instructing movement of the tip of the hand, and gravity for calculating a gravity torque of each axis at a current position of the hand tip and a target position defined by the movement instruction word. A size for determining the torque calculation means and whether the absolute value of the gravitational torque of each axis at the target position exists in a first state that is equal to or larger than a predetermined threshold value or in a second state that is smaller than the predetermined threshold value. Determination means, rotation direction determination means for determining whether or not the direction of the rotation angle of each axis is reversed,
The direction of the gravity torque at the current position and the direction of the gravity torque at the target position, the torque direction determination means for determining whether the reverse state is the mutually opposite or the non-inverted state where the direction of the gravity torque is the same, When the magnitude determining means determines that the absolute value of the gravitational torque at the target position is in the first state and the torque direction determining means determines that the gravitational torque at the target position is in the inverted state, or by the magnitude determining means. It is determined that the absolute value of the gravity torque at the target position is in the second state,
And, in the second state, when the rotation direction reversing means determines that the rotation direction is reversed, the backlash correction means for correcting the rotation angle of each axis by the backlash of that axis in positioning with respect to the target position. That is to say.
【0006】[0006]
【発明の作用および効果】ロボットのハンド先端が現在
位置から移動命令語で規定される目標位置に位置決めさ
れる場合、現在位置及び目標位置におけるハンド先端の
位置及び姿勢から両位置での重力トルクが演算される。
本発明はこの重力トルク及び各軸の回転方向との関係か
ら目標位置の位置決めに関しバックラッシュ補正が行わ
れる。When the tip of the hand of the robot is positioned from the current position to the target position defined by the movement command, the gravity torque at both positions is determined from the position and orientation of the hand tip at the current position and the target position. Is calculated.
In the present invention, backlash correction is performed for positioning the target position based on the relationship between the gravity torque and the rotation direction of each axis.
【0007】バックラッシュ補正が行われる場合は次の
通りである。 (1)目標位置の重力トルクの絶対値の大きさが所定の
しきい値以上である場合には、現在位置の重力トルクと
目標位置の重力トルクの符号が反対である時。 (2)目標位置の重力トルクの絶対値の大きさが所定の
しきい値よりも小さい場合には、重力トルクが所定のし
きい値によりも小さい間に、回転方向が反転する場合。The case where the backlash correction is performed is as follows. (1) When the magnitude of the absolute value of the gravity torque at the target position is equal to or greater than a predetermined threshold value, the gravity torque at the current position and the gravity torque at the target position have opposite signs. (2) When the magnitude of the absolute value of the gravity torque at the target position is smaller than a predetermined threshold value, the rotation direction is reversed while the gravity torque is smaller than the predetermined threshold value.
【0008】このように、目標位置の重力トルクの絶対
値が大きい場合には、その符号には誤りはないと考えら
れるので、移動命令語による移動過程において重力トル
クの向きが反転するか否かが正確に判定できる。よっ
て、この場合には重力トルクの符号が変化するか否かで
目標位置の回転角をバックラッシュ分だけ補正するかし
ないかが決定できる。As described above, when the absolute value of the gravitational torque at the target position is large, it is considered that there is no error in the sign, so whether or not the direction of the gravitational torque is reversed during the movement process by the movement command. Can be accurately determined. Therefore, in this case, whether or not the rotation angle of the target position is corrected by the amount of backlash can be determined depending on whether or not the sign of the gravity torque changes.
【0009】又、目標位置の重力トルクの絶対値が小さ
い場合、即ち、目標位置の回転角が重力トルクの向きを
反転させる軸の付近に存在する場合には、重力トルクの
符号が正確に判定できない。また、重力トルクが小さい
間での回転角の向きの反転はバックラッシュ誤差を発生
する可能性が大きい。よって、この場合には、移動命令
語による移動過程において、その軸の回転角をバックラ
ッシュ分だけ補正する。尚、目標位置に対してバックラ
ッシュ補正をするか否かは移動経路に沿って順次実行さ
れる。よって、経路の始点、例えば、原点における重力
トルクの符号が正確に判明できていさえすれば、バック
ラッシュ補正をしない場合には前の教示点の重力トルク
と同符号、バックラッシュ補正をする場合には前の教示
点の重力トルクと異符号というようにして、順次、目標
位置の重力トルクの符号を正確に決定することができ
る。When the absolute value of the gravity torque at the target position is small, that is, when the rotation angle of the target position exists near the axis that reverses the direction of the gravity torque, the sign of the gravity torque is accurately determined. Can not. Further, reversing the direction of the rotation angle while the gravitational torque is small may cause a backlash error. Therefore, in this case, the rotation angle of the axis is corrected by the amount of backlash in the movement process by the movement command. Whether or not the backlash correction is performed on the target position is sequentially executed along the movement route. Therefore, as long as the sign of the gravity torque at the starting point of the path, for example, the origin, can be accurately determined, if the backlash correction is not performed, the same sign as the gravity torque of the previous teaching point, the backlash correction is performed. The sign of the gravitational torque at the target position can be successively determined accurately by using a different sign from the gravitational torque at the previous teaching point.
【0010】本発明は、上記のように、重力トルクの反
転を正確に決定することができるため、バックラッシュ
補正が正確となり、多関節ロボットの位置決め精度が向
上する。According to the present invention, since the reversal of the gravitational torque can be accurately determined as described above, the backlash correction becomes accurate and the positioning accuracy of the articulated robot is improved.
【0011】[0011]
【実施例】以下本発明を具体的な実施例に基づいて説明
する。図1は6軸多関節ロボットの機構を示した機構図
である。10がロボット本体であり、フロアに本体10
を固定するベース13が配設され、ベース13上にはコ
ラム12が固設されており、コラム12はボディ14を
回転自在に配設している。ボディ14はアッパーアーム
15を回動自在に軸支し、アッパーアーム15は、フォ
アアーム16を回動自在に軸支している。ボディ14、
アッパーアーム15、フォアアーム16は、それぞれ、
サーボモータSm1,Sm2,Sm3(図2参照)によって、
軸a,b,cの回りに回転駆動される。この回転角はエ
ンコーダE1,E2,E3によって検出される。フォア
アーム16の先端部にはツイストリスト17がd軸の周
りに回転可能に軸支され、ツイストリスト17にはベン
ドリスト9がe軸の周りに回動自在に軸支されている。
ベンドリスト9には先端にフランジ18aを有するスイ
ベルリスト18がf軸の回りに回転可能に軸支されてい
る。また、フランジ18aにはハンド19が取り付けら
れている。d軸、e軸、f軸はサーボモータSm4、Sm
5、Sm6によって駆動され、その回転角はエンコーダE
4,E5,E6によって検出される。ハンド19の開閉
動作は工具駆動回路23により制御される。EXAMPLES The present invention will be described below based on specific examples. FIG. 1 is a mechanism diagram showing the mechanism of a 6-axis articulated robot. 10 is the robot body, and the body 10 is on the floor
A base 13 for fixing the column 12 is disposed, a column 12 is fixedly mounted on the base 13, and a body 14 is rotatably disposed in the column 12. The body 14 rotatably supports the upper arm 15, and the upper arm 15 rotatably supports the forearm 16. Body 14,
The upper arm 15 and the forearm 16 are respectively
Servo motors Sm1, Sm2, Sm3 (see Fig. 2)
It is driven to rotate about axes a, b and c. This rotation angle is detected by the encoders E1, E2, E3. A twist wrist 17 is rotatably supported on the tip of the forearm 16 about the d axis, and a bend list 9 is rotatably supported on the twist wrist 17 about the e axis.
A swivel wrist 18 having a flange 18a at its tip is pivotally supported on the bend wrist 9 so as to be rotatable around the f-axis. A hand 19 is attached to the flange 18a. Servomotors Sm4, Sm for d-axis, e-axis, and f-axis
5, driven by Sm6, its rotation angle is encoder E
4, E5, E6. The opening / closing operation of the hand 19 is controlled by the tool driving circuit 23.
【0012】図2は、本発明のロボットの制御装置の電
気的構成を示したブロックダイヤグラムである。CPU
20には、メモリ25、サーボモータを駆動するための
サーボCPU22a〜22f、動作開始指令、ジョグ運
転の指令、教示点の指示等を行う操作盤26が接続され
ている。ロボットに取付けられた各軸a〜f駆動用のサ
ーボモータSm1〜Sm6は、それぞれサーボCPU22a
〜22fによって駆動される。FIG. 2 is a block diagram showing the electrical construction of the robot controller according to the present invention. CPU
A memory 25, servo CPUs 22a to 22f for driving a servo motor, an operation panel 26 for issuing an operation start instruction, a jog operation instruction, a teaching point instruction, and the like are connected to the memory 20. The servo motors Sm1 to Sm6 for driving the axes a to f attached to the robot are respectively the servo CPU 22a.
Driven by ~ 22f.
【0013】サーボCPU22a〜22fのそれぞれ
は、CPU20から出力される各軸の角度指令値θ1 〜
θ6 、慣性モーメントDi 、重力トルクTi に基づい
て、サーボモータSm1〜Sm6の出力トルクを制御する。
各駆動軸に連結されたエンコーダE1〜E6の出力する
検出角度α1 〜α6 はCPU20及びサーボCPU22
a〜22fに入力しており、CPU20による各軸の慣
性モーメント及び重力トルクの演算及びサーボCPU2
2a〜22fによる位置フィードバック制御、速度フィ
ードバック制御、電流フィードバック制御に用いられ
る。Each of the servo CPUs 22a to 22f outputs an angle command value θ 1 to an angle command value of each axis output from the CPU 20.
The output torque of the servomotors Sm1 to Sm6 is controlled based on θ 6 , the moment of inertia D i , and the gravity torque T i .
The detection angles α 1 to α 6 output by the encoders E1 to E6 connected to the respective drive shafts are the CPU 20 and the servo CPU 22.
a to 22f, the CPU 20 calculates the moment of inertia and gravity torque of each axis, and the servo CPU 2
It is used for position feedback control, speed feedback control, and current feedback control by 2a to 22f.
【0014】メモリ25にはロボットを教示点データに
従って動作させるためのプログラムが記憶されたPA領
域とハンド19の位置と姿勢を表す教示点データを記憶
するPDA領域とフランジ18aから先の重量物、即
ち、ハンド19、又は、ハンド19とそれにより握持さ
れた物体を総合した物体の重心座標(a,b,c)とそ
の質量mL を記憶するSDA領域とサーボパラメータを
記憶するITA領域と補間演算により求められた補間点
における各軸の角度指令値θ1 〜θ6 を記憶するINA
領域とエンコーダE1〜E6から出力された検出角度α
1 〜α6 を記憶するANG領域とが形成されている。In the memory 25, a PA area in which a program for operating the robot according to the teaching point data is stored, a PDA area in which the teaching point data indicating the position and orientation of the hand 19 is stored, and a heavy object ahead of the flange 18a, That is, the hand 19 or the SDA area for storing the barycentric coordinates (a, b, c) of the object including the hand 19 and the object gripped by the hand 19 and its mass m L and the ITA area for storing the servo parameters. INA that stores the angle command values θ 1 to θ 6 of each axis at the interpolation point obtained by the interpolation calculation
Area and detection angle α output from encoders E1 to E6
An ANG area for storing 1 to α 6 is formed.
【0015】各軸のサーボCPU22a〜22fは、図
3に示す回路の機能をシーケンシャルなディジタル制御
により達成するものである。即ち、各回転角の位置のフ
ィードバックループと速度のフィードバックループとで
電流のフィードバックループと速度のフィードフォワー
ドループと加速度のフィードフォワードループとを有し
ている。The servo CPUs 22a to 22f for the respective axes achieve the functions of the circuit shown in FIG. 3 by sequential digital control. That is, it has a current feedback loop, a velocity feed-forward loop, and an acceleration feed-forward loop with a feedback loop at each rotational angle position and a velocity feedback loop.
【0016】次に、本装置の作動について説明する。図
5はRAM25のPA領域に記憶されている動作プログ
ラムである。行番号10、50、90がデータ設定手段
を構成する重量物の重心座標(a,b,c)とその質量
mL とを設定するための命令語である。この命令語の実
行により重心座標(a,b,c)と質量mL のデータが
RAM25のSDA領域に記憶される。命令語の領域A
が重心座標rを表し、領域Bが質量mL を表す。重心座
標(a,b,c)はスイベルリスト18のフランジ18
aの中心に固定されたリンク座標系から見た座標、即
ち、ノーマル、オリエント、アプローチの各座標(mm単
位) で与えられる。又、質量はkg単位で表記される。行
番号10、90は、フランジ18aから先の重量物がハ
ンド19だけの場合のデータ設定に関する命令語であ
り、行番号90はハンド19により物体が握持された場
合のデータ設定に関する命令語である。又、行番号20
及び80のHAND OFF命令語は、ハンド19を開
く命令語であり、行番号40のHAND ON命令語は
ハンド19を閉じる命令語である。さらに、行番号3
0、60、70、100、110のMOVE命令語は指
定された教示点Pnに移動させるための命令語である。Next, the operation of this apparatus will be described. FIG. 5 shows an operation program stored in the PA area of the RAM 25. Line numbers 10, 50 and 90 are command words for setting the barycentric coordinates (a, b, c) of the heavy object forming the data setting means and the mass m L thereof. By executing this command, the barycentric coordinates (a, b, c) and the mass m L data are stored in the SDA area of the RAM 25. Command word area A
Represents the barycentric coordinate r, and the region B represents the mass m L. The center of gravity coordinates (a, b, c) are the flange 18 of the swivel list 18.
It is given by the coordinates viewed from the link coordinate system fixed at the center of a, that is, the normal, oriental, and approach coordinates (in mm). In addition, mass is expressed in kg. Line numbers 10 and 90 are command words related to data setting when the heavy object ahead of the flange 18a is only the hand 19, and line numbers 90 are command words related to data setting when an object is gripped by the hand 19. is there. Also, line number 20
The HAND OFF command of 80 and 80 is a command for opening the hand 19, and the HAND ON command of line number 40 is a command for closing the hand 19. In addition, line number 3
MOVE command words of 0, 60, 70, 100, 110 are command words for moving to the designated teaching point Pn.
【0017】図5の動作プログラムにより、ロボット
は、ハンド19を開いて、P1点に移動し、その後、ハ
ンド19を閉じて物体を握持し、P2点を経由してP3
点に移動して、ハンド19を開いて、物体を放置し、P
4点を経由してP5点に移動することが可能である。According to the operation program shown in FIG. 5, the robot opens the hand 19 and moves to the point P1, then closes the hand 19 to hold the object, and passes through the point P2 to P3.
Move to the point, open the hand 19, leave the object, P
It is possible to move to P5 via 4 points.
【0018】図4は、CPU20による動作プログラム
を解読するための主プログラムのフローチャートであ
る。ステップ100において、MOVE命令語が解読さ
れると、ステップ102において、現在位置から指定さ
れた教示点までハンド19を移動させるための補間演算
が実行される。そして、補間演算により求められた各軸
の角度指令値θ1 〜θ6 はサーボCPU22a〜22f
に出力される。又、ステップ104において、LOAD
命令語が解読されると、ステップ106において、その
命令語に表記されているハンドから先の重量物の重心座
標と質量のデータがRAM25のSDA領域に記憶され
る。又、ステップ108でHAND OFF命令語が解
読されると、ステップ110において、工具駆動回路2
3にハンド19を開く指令を与える。又、ステップ11
2でHAND ON命令語が解読されると、ステップ1
14において、工具駆動回路23にハンド19を閉じる
指令を与える。FIG. 4 is a flow chart of a main program for decoding the operation program by the CPU 20. When the MOVE command is decoded in step 100, an interpolation calculation for moving the hand 19 from the current position to the designated teaching point is executed in step 102. Then, the angle command values θ 1 to θ 6 of the respective axes obtained by the interpolation calculation are the servo CPUs 22a to 22f.
Is output to. In step 104, LOAD
When the command word is decoded, in step 106, the data of the barycentric coordinates and mass of the previous heavy object from the hand described in the command word is stored in the SDA area of the RAM 25. When the HAND OFF command is decoded in step 108, the tool drive circuit 2 is read in step 110.
3 is given an instruction to open the hand 19. Also, step 11
When the HAND ON command is decoded in step 2, step 1
At 14, the tool drive circuit 23 is instructed to close the hand 19.
【0019】ステップ102における教示点間の補間演
算は、図6に示すフローチャートに従って実行される。
補間演算は、良く知られたように、回転主軸法等を用い
て行うことができる(例えば、特開昭62−15400
6号)。ステップ200において、図7に示すバックラ
ッシュ補正量演算プログラムが起動される。The interpolation calculation between the teaching points in step 102 is executed according to the flowchart shown in FIG.
As well known, the interpolation calculation can be performed by using the rotation spindle method or the like (for example, Japanese Patent Laid-Open No. 62-15400).
No. 6). In step 200, the backlash correction amount calculation program shown in FIG. 7 is started.
【0020】図7のステップ300において、現在位置
及び目標位置のワールド座標(床に固定されたO−xy
z系座標)がジョイント座標(ロボットの各軸の回転角
の座標)に変換される。次に、ステップ302におい
て、ロボットの軸を特定する軸変数iが1に初期設定さ
れる。In step 300 of FIG. 7, the world coordinates of the current position and the target position (O-xy fixed on the floor).
z system coordinates) are converted into joint coordinates (coordinates of rotation angles of each axis of the robot). Next, in step 302, an axis variable i that identifies the axis of the robot is initialized to one.
【0021】次に、ステップ304において、現在位置
及び目標位置におけるi軸の回りの重力トルクTc i ,
To i が演算される。尚、i軸の回りのトルクτi は、
次式で良く知られたように、ロボットアームに関するラ
グランジュ関数の微分から求めることができる。Next, at step 304, the gravity torque Tc i about the i-axis at the current position and the target position,
To i is calculated. The torque τ i around the i-axis is
As is well known by the following equation, it can be obtained from the derivative of the Lagrangian function with respect to the robot arm.
【0022】[0022]
【数1】τi =Σj=i nΣk=i jTr(UjkJjUji T)D2θk -
ΣmjgUji jrj 但し、コリオリ力と遠心力の成分は小さいとして上式で
は除外した。Jj はj軸を構成する部材だけによるリン
ク慣性行列、Trは行列式の対角成分の和、mj はj軸リ
ンクの質量、gは重力加速度、 jrj はj軸リンク座標
系で表されたj軸リンクの重心のベクトルであり、D2θ
k は角度の時間に関する2次微分、即ち、角加速度であ
る。又、上式の第1項の展開式において、D2θi の係数
が慣性行列Di となり、第2項がi軸の回りの重力トル
クTi となる。又、Ujkは、[Formula 1] τ i = Σ j = i n Σ k = i j Tr (U jk J j U ji T ) D 2 θ k-
Σm j gU ji j r j However, the components of the Coriolis force and the centrifugal force are small and are excluded from the above equation. J j is the link inertia matrix only by the members forming the j axis, Tr is the sum of the diagonal components of the determinant, m j is the mass of the j axis link, g is the gravitational acceleration, and j r j is the j axis link coordinate system. It is the vector of the center of gravity of the j-axis link represented, and D 2 θ
k is the second derivative of the angle with respect to time, that is, the angular acceleration. In the expansion equation of the first term of the above equation, the coefficient of D 2 θ i becomes the inertia matrix D i , and the second term becomes the gravity torque T i around the i axis. Also, U jk is
【0023】[0023]
【数2】0 (j<iの時)2 (0) (when j <i)
【数3】δ(0A1 1A2…j-1Aj )/δθi =Πs=1 j s-1A s
・δi-1Ai / δθi (j≧iの時) 但し、s≠iである。又、j-1Aj はj軸リンク座標をj
−1軸リンク座標へ変換する同次座標変換行列であり、
0A1 は1軸リンク座標をワールド座標に変換する同次座
標変換行列である。(3) δ ( 0 A 1 1 A 2 … j-1 A j ) / δθ i = Π s = 1 j s-1 A s
Δ i-1 A i / δ θ i (when j ≧ i) where s ≠ i. Also, j-1 A j is the j-axis link coordinate j
-1 is a homogeneous coordinate transformation matrix that transforms to link coordinates,
0 A 1 is a homogeneous coordinate transformation matrix that transforms uniaxial link coordinates into world coordinates.
【0024】Jj は慣性テンソルIijを用いて次の様に
表現することができる。J j can be expressed as follows using the inertia tensor I ij .
【数4】 [Equation 4]
【0025】但し、rix、riy、rizはj軸リンク座標
から見たj軸リンクの重心の座標であり、miはその質
量である。又、However, r ix , r iy , and r iz are the coordinates of the center of gravity of the j-axis link viewed from the j-axis link coordinates, and m i is its mass. or,
【数5】Iij=∫〔δij〔Σxk 2 〕−xiyi 〕dm である。## EQU5 ## I ij = ∫ [δ ij [Σx k 2 ] -x i y i ] dm.
【0026】尚、LOAD命令語によって設定される重
心座標(a,b,c)及び質量mLにより、J6 が変化
する。J6 は、数4において、(rix,riy,riz)=
(a,b,c)、mi =mL とおくことにより求めるこ
とができる。Note that J 6 changes depending on the barycentric coordinates (a, b, c) and the mass m L set by the LOAD command. J 6 is (r ix , r iy , r iz ) =
It can be obtained by setting (a, b, c) and m i = m L.
【0027】数1から、現在位置及び目標位置における
各軸の回りの重力トルクTi が演算される。本実施例で
は、演算時間を短縮するために、他軸との相互作用は小
さいとして、(i,i) 対角成分のみを考慮している。From Equation 1, the gravity torque T i around each axis at the current position and the target position is calculated. In this embodiment, in order to reduce the calculation time, only the (i, i) diagonal component is considered, assuming that the interaction with other axes is small.
【0028】重力トルクが演算されると、ステップ30
6において、目標位置の重力トルクTo i の絶対値が所
定のしきい値Th より小さいか否かが判定される。To
i の絶対値が所定のしきい値Th 以上であれば、ステッ
プ308において、現在位置の重力トルクTc i と目標
位置の重力トルクTo i の積が0以下か否かが判定され
る。即ち、現在位置の重力トルクTc i と目標位置の重
力トルクTo i の符号が異符号か否かが判定される。異
符号であれば、ステップ310において、1補間周期当
たりのバックラッシュ補正量Δθi がAi /nで演算さ
れる。但し、Ai はi軸のバックラッシュ量、nは補間
回数である。When the gravity torque is calculated, step 30
At 6, it is determined whether the absolute value of the gravity torque To i at the target position is smaller than a predetermined threshold Th. To
If the absolute value of i is greater than or equal to the predetermined threshold value Th, it is determined in step 308 whether the product of the gravity torque Tc i at the current position and the gravity torque To i at the target position is 0 or less. That is, it is determined whether the gravity torque Tc i at the current position and the gravity torque To i at the target position have different signs. If the signs are different, in step 310, the backlash correction amount Δθ i per interpolation cycle is calculated by A i / n. However, A i is the backlash amount of the i-axis, and n is the number of interpolations.
【0029】一方、ステップ308で、現在位置の重力
トルクTc i と目標位置の重力トルクTo i の符号が同
符号であると判定されるた場合には、バックラッシュ補
正は不要であるので、ステップ312において、1補間
周期当たりのバックラッシュ補正量Δθi を0とする。On the other hand, if it is determined in step 308 that the gravity torque Tc i at the current position and the gravity torque To i at the target position have the same sign, backlash correction is not necessary, so step In step 312, the backlash correction amount Δθ i per interpolation cycle is set to 0.
【0030】一方、ステップ306において、目標位置
の重力トルクTo i の絶対値が所定のしきい値より小さ
いと判定された場合には、ステップ314において、そ
のことを記憶するためにフラグFi が「1」に設定さ
れ、この場合には1補間当たりのバックラッシュ補正は
行わないので、1補間当たりのバックラッシュ補正量Δ
θi が0に設定される。そして、ステップ316に移行
する。On the other hand, if it is determined in step 306 that the absolute value of the gravitational torque To i at the target position is smaller than the predetermined threshold value, then in step 314 a flag F i is stored to store that fact. It is set to "1", and in this case, the backlash correction per interpolation is not performed, so the backlash correction amount Δ per interpolation is
θ i is set to 0. Then, the process proceeds to step 316.
【0031】次に、ステップ316において、軸変数i
が最大値6に達したか否かが判定され、その値に達して
いない場合には、ステップ318において、軸変数iが
1だけ加算されて、ステップ304に戻り、次の軸に関
する重力トルクの演算が繰り返し実行される。又、軸変
数iが最大値6になれば、本プログラムを終了する。Next, in step 316, the axis variable i
Has reached the maximum value 6, and if it has not reached that value, in step 318, the axis variable i is incremented by 1, and the process returns to step 304 to determine the gravity torque of the next axis. The calculation is repeatedly executed. When the axis variable i reaches the maximum value of 6, this program ends.
【0032】以上の演算が終了すると、図6のステップ
202に戻る。ステップ202において、ワールド座標
系で表記された教示データとして与えられた開始点の位
置及び姿勢と次の位置決め目標点の位置及び姿勢から回
転主軸の方向ベクトルが演算され、ステップ204にお
いて、その回転主軸回りの回転角Θが演算される。次
に、ステップ206において、開始点の位置及び姿勢を
基準とした補間角ΔΘが演算され、次のステップ208
において、その補間角ΔΘを用いて開始点の位置及び姿
勢を補間点における位置及び姿勢に変換するための姿勢
変換行列Rが演算される。When the above calculation is completed, the process returns to step 202 in FIG. In step 202, the direction vector of the rotary spindle is calculated from the position and posture of the start point and the position and posture of the next positioning target point given as the teaching data expressed in the world coordinate system, and in step 204, the rotary spindle is rotated. The rotation angle Θ around is calculated. Next, in step 206, the interpolation angle ΔΘ is calculated based on the position and orientation of the starting point, and the next step 208
At, the posture conversion matrix R for converting the position and posture of the start point into the position and posture at the interpolation point is calculated using the interpolation angle ΔΘ.
【0033】そして、ステップ210において、開始点
の位置及び姿勢を表す同次座標行列に姿勢変換行列を作
用させて、補間点における位置及び姿勢を表す同次座標
行列が演算される。次に、ステップ212において、そ
の補間点におけるワールド座標系で表記された位置及び
姿勢の同次座標変換行列からジョイント座標系での値、
即ち、各軸の回転角θi が演算される。Then, in step 210, the attitude transformation matrix is applied to the homogeneous coordinate matrix representing the position and orientation of the starting point, and the homogeneous coordinate matrix representing the position and orientation at the interpolation point is calculated. Next, in step 212, the value in the joint coordinate system from the homogeneous coordinate transformation matrix of the position and orientation expressed in the world coordinate system at the interpolation point,
That is, the rotation angle θ i of each axis is calculated.
【0034】次に、ステップ214において、フラグF
i が1か否かが判定され、Fi が1でなければ、ステッ
プ216に移行して、その補間点での回転角θi からス
テップ310で演算された1補間当たりのバックラッシ
ュ補正量Δθi が減算補正される。即ち、補正後の回転
角θi =θi −Δθi である。これらの補間点の補正後
の角度指令値θi は、RAM25のINA領域に記憶さ
れる。Next, at step 214, the flag F
Whether i is 1 or not is determined, and if F i is not 1, the process proceeds to step 216, and the backlash correction amount Δθ per interpolation calculated in step 310 from the rotation angle θ i at that interpolation point. i is subtractively corrected. That is, the corrected rotation angle θ i = θ i −Δθ i . The corrected angle command value θ i of these interpolation points is stored in the INA area of the RAM 25.
【0035】一方、ステップ214において、フラグF
i が1であると判定された場合には、ステップ218に
おいて、回転方向反転によるバックラッシュ補正演算が
完了しているか否かが判定され、バックラッシュ補正演
算が完了していない場合には、ステップ220におい
て、目標位置に対応するジョイント座標に対してその軸
の重力トルクが所定のしきい値より小さくなる角度範囲
内の補間点のジョイント座標において、回転方向が反転
しているか否かが判定される。その間の補間点におい
て、回転方向が反転している場合には、ステップ222
において、目標位置の回転角θo i に関して、バックラ
ッシュ補正量Ai が減算補正される。即ち、補正後の回
転角θo i =θo i −Ai である。これらの補間点の補
正後の角度指令値θo i は、RAM25のINA領域に
記憶される。又、この場合には、単位補間毎に補正は行
わないために、1補間当たりの補正量Δθi が0とされ
る。On the other hand, in step 214, the flag F
If i is determined to be 1, it is determined in step 218 whether or not the backlash correction calculation by reversing the rotation direction is completed. If the backlash correction calculation is not completed, step 218 is performed. At 220, it is determined whether or not the rotation direction is reversed at the joint coordinate of the interpolation point within the angle range where the gravity torque of the axis is smaller than the predetermined threshold with respect to the joint coordinate corresponding to the target position. It If the rotation direction is reversed at the interpolation point between them, step 222
At, the backlash correction amount A i is subtractively corrected with respect to the rotation angle θo i of the target position. That is, the corrected rotation angle θo i = θo i −A i . The corrected angle command values θo i of these interpolation points are stored in the INA area of the RAM 25. Further, in this case, since the correction is not performed for each unit interpolation, the correction amount Δθ i per interpolation is set to 0.
【0036】一方、ステップ218において、回転方向
反転によるバックラッシュ補正演算が完了していると判
定された場合には、ステップ224において、目標位置
の角度補正を重複して行なわないようにするために、フ
ラグFi が0に設定される。On the other hand, when it is determined in step 218 that the backlash correction calculation by reversing the rotation direction is completed, in step 224, the angle correction of the target position is not performed in duplicate. , Flag F i is set to 0.
【0037】次に、ステップ226、ステップ228に
おいて、RAM25のINA領域に記憶された補間点の
角度指令値θ1 〜θ6 、慣性モーメント及び重力トルク
に応じてRAM25のITA領域に設定されているサー
ボパラメータDi,Ti がサーボCPU22a〜22fに
出力される。この結果、各軸はバックラッシュ補正が行
われることになり、正確の位置決め制御が可能となる。Next, in steps 226 and 228, the angle command values θ 1 to θ 6 of the interpolation points stored in the INA area of the RAM 25, the moment of inertia and the gravitational torque are set in the ITA area of the RAM 25. The servo parameters D i, T i are output to the servo CPUs 22a to 22f. As a result, backlash correction is performed on each axis, and accurate positioning control is possible.
【0038】そして、ステップ230において、補間点
が教示データとして与えられた目標位置に達したか否か
が判定され、補間が終了していない場合に、次の補間点
の位置及び姿勢の演算のために、ステップ208以下が
実行される。一方、補間が終了した場合には、ステップ
232において、全てのフラグFi を0の初期値に戻し
て、次の命令語を解読するために図4のメインプログラ
ムに戻る。Then, in step 230, it is judged whether or not the interpolation point has reached the target position given as the teaching data, and if the interpolation is not completed, the position and orientation of the next interpolation point is calculated. In order to do so, steps 208 and onward are executed. On the other hand, when the interpolation is completed, all flags F i are returned to the initial value of 0 in step 232, and the process returns to the main program of FIG. 4 to decode the next command word.
【0039】以上述べた実施例では、重力トルクの大き
さを直接求めて、重力トルクによってバックラッシュ補
正を行う場合と移動方向によってバックラッシュ補正を
行う場合を判別している。しかし、ロボットのア−ムの
角度によって重力トルクの大きさを判別できる場合は角
度によって判別しても良い。In the embodiment described above, the magnitude of the gravity torque is directly obtained, and the case where the backlash correction is performed by the gravity torque and the case where the backlash correction is performed by the moving direction are discriminated. However, when the magnitude of the gravitational torque can be determined by the angle of the arm of the robot, the angle may be determined.
【0040】[0040]
【図1】本発明の具体的な実施例装置で使用されるロボ
ットを示した構成図。FIG. 1 is a configuration diagram showing a robot used in an apparatus according to a specific embodiment of the present invention.
【図2】ロボットの制御装置の構成を示したブロック
図。FIG. 2 is a block diagram showing a configuration of a robot control device.
【図3】図2におけるサーボCPUの処理を示したブロ
ック図。FIG. 3 is a block diagram showing a process of a servo CPU in FIG.
【図4】ロボットの位置及び姿勢制御のための主プログ
ラムを示したフローチャート。FIG. 4 is a flowchart showing a main program for controlling the position and attitude of the robot.
【図5】ロボットの位置及び姿勢制御のための動作プロ
グラムを示した説明図。FIG. 5 is an explanatory diagram showing an operation program for controlling the position and orientation of the robot.
【図6】補間演算の手順を示したフローチャート。FIG. 6 is a flowchart showing a procedure of interpolation calculation.
【図7】バックラッシュ補正量の演算手順を示したフロ
ーチャート。FIG. 7 is a flowchart showing a procedure for calculating a backlash correction amount.
10…ロボット 18…スイベルリスト 18a…フランジ 19…ハンド 20…CPU(重力トルク演算手段、大きさ判定手段、
回転方向反転手段、トルク方向判定手段、バックラッシ
ュ補正手段) 22a〜22f…サーボCPU 25…RAM(データ記憶手段) E1〜E6…エンコーダ ステップ304…重力トルク演算手段 ステップ306…大きさ判定手段 ステップ222…回転方向反転手段 ステップ308…トルク方向判定手段 ステップ310,216,222…バックラッシュ補正
手段10 ... Robot 18 ... Swivel list 18a ... Flange 19 ... Hand 20 ... CPU (gravitational torque calculation means, size determination means,
Rotation direction reversal means, torque direction determination means, backlash correction means) 22a to 22f ... Servo CPU 25 ... RAM (data storage means) E1 to E6 ... Encoder step 304 ... Gravity torque calculation means step 306 ... Size determination means step 222 Rotation direction reversing means Step 308 Torque direction determining means Steps 310, 216, 222 ... Backlash correcting means
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 B25J 13/08 G05B 19/18 G05D 17/02 ─────────────────────────────────────────────────── ─── Continuation of the front page (51) Int.Cl. 6 Identification code Internal reference number FI technical display location B25J 13/08 G05B 19/18 G05D 17/02
Claims (1)
勢を制御する制御装置において、 複数の教示点における位置及び姿勢を規定した教示デー
タと、ハンド先端の移動を指令する移動命令語を含む動
作プログラムを記憶したデータ記憶手段と、 前記ハンド先端の現在位置と前記移動命令語で規定され
る目標位置における各軸の重力トルクを演算する重力ト
ルク演算手段と、 前記目標位置における各軸の重力トルクの絶対値が所定
のしきい値以上の第1状態に存在するか所定のしきい値
より小さい第2状態に存在するかを判定する大きさ判定
手段と、 各軸の回転角の向きが反転するか否かを判定する回転方
向判定手段と、 前記現在位置の重力トルクと前記目標位置の重力トルク
との向きとが、相互に反対である反転状態にあるか重力
トルクの向きが同一である非反転状態にあるかを判定す
るトルク方向判定手段と、 前記大きさ判定手段により前記目標位置の前記重力トル
クの絶対値が前記第1状態であると判定された、かつ前
記トルク方向判定手段により前記目標位置の前記重力ト
ルクが前記反転状態と判定された場合、又は、前記大き
さ判定手段により前記目標位置の前記重力トルクの絶対
値が前記第2状態であると判定され、かつその第2状態
である間に前記回転方向判定手段により回転角の向きが
反転すると判定された場合に、前記目標位置に対する位
置決めに関し、各軸の回転角をその軸のバックラッシュ
分だけ補正するバックラッシュ補正手段とを設けたこと
を特徴とするロボットの制御装置。1. A control device for controlling the position and posture of a hand tip of an articulated robot, the teaching data defining the positions and postures at a plurality of teaching points, and an operation including a movement command word for instructing movement of the hand tip. Data storage means that stores a program, gravity torque calculation means that calculates the gravity torque of each axis at the current position of the hand tip and the target position defined by the movement command, and gravity torque of each axis at the target position And a magnitude determining means for determining whether the absolute value of the present value exists in a first state that is equal to or larger than a predetermined threshold value or a second state that is smaller than the predetermined threshold value, and the direction of the rotation angle of each axis is reversed. The direction of the gravity torque at the current position and the direction of the gravity torque at the target position are opposite to each other. The direction of torque is the same as the non-inverted state, the absolute value of the gravity torque at the target position is determined to be in the first state, and When the gravity torque at the target position is determined to be in the inverted state by the torque direction determination means, or when the absolute value of the gravity torque at the target position is determined to be the second state by the magnitude determination means. And the rotation direction determining means determines that the direction of the rotation angle is reversed during the second state, regarding the positioning with respect to the target position, the rotation angle of each axis is equal to the backlash of the axis. A control device for a robot, comprising: a backlash correction means for correction.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35457893A JPH07200018A (en) | 1993-12-27 | 1993-12-27 | Controller for robot |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35457893A JPH07200018A (en) | 1993-12-27 | 1993-12-27 | Controller for robot |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07200018A true JPH07200018A (en) | 1995-08-04 |
Family
ID=18438503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35457893A Pending JPH07200018A (en) | 1993-12-27 | 1993-12-27 | Controller for robot |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07200018A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004103649A1 (en) * | 2003-05-20 | 2004-12-02 | Fujitsu Limited | Method for controlling backlash compensation, backlash compensation controller and program for controlling backlash compensation |
JP2009301081A (en) * | 2008-06-10 | 2009-12-24 | Okuma Corp | Position controller |
JP2010269421A (en) * | 2009-05-22 | 2010-12-02 | Kawasaki Heavy Ind Ltd | Robot control apparatus and method |
EP3260244A1 (en) | 2016-06-20 | 2017-12-27 | Canon Kabushiki Kaisha | Method of controlling robot apparatus, robot apparatus, and method of manufacturing article |
WO2020008751A1 (en) * | 2018-07-02 | 2020-01-09 | パナソニックIpマネジメント株式会社 | Robot control method and robot control device |
WO2020200413A1 (en) * | 2019-04-01 | 2020-10-08 | Robert Bosch Gmbh | Camera system and method for positioning an optical unit of the camera system |
-
1993
- 1993-12-27 JP JP35457893A patent/JPH07200018A/en active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004103649A1 (en) * | 2003-05-20 | 2004-12-02 | Fujitsu Limited | Method for controlling backlash compensation, backlash compensation controller and program for controlling backlash compensation |
US7363109B2 (en) | 2003-05-20 | 2008-04-22 | Fujitsu Limited | Backlash compensation control method, backlash compensation controller and backlash compensation control program |
JP2009301081A (en) * | 2008-06-10 | 2009-12-24 | Okuma Corp | Position controller |
JP2010269421A (en) * | 2009-05-22 | 2010-12-02 | Kawasaki Heavy Ind Ltd | Robot control apparatus and method |
EP3260244A1 (en) | 2016-06-20 | 2017-12-27 | Canon Kabushiki Kaisha | Method of controlling robot apparatus, robot apparatus, and method of manufacturing article |
US10702989B2 (en) | 2016-06-20 | 2020-07-07 | Canon Kabushiki Kaisha | Method of controlling robot apparatus, robot apparatus, and method of manufacturing article |
WO2020008751A1 (en) * | 2018-07-02 | 2020-01-09 | パナソニックIpマネジメント株式会社 | Robot control method and robot control device |
JPWO2020008751A1 (en) * | 2018-07-02 | 2021-07-08 | パナソニックIpマネジメント株式会社 | Robot control method and robot control device |
WO2020200413A1 (en) * | 2019-04-01 | 2020-10-08 | Robert Bosch Gmbh | Camera system and method for positioning an optical unit of the camera system |
US10979642B2 (en) | 2019-04-01 | 2021-04-13 | Robert Bosch Gmbh | Camera system for positioning an optical unit of the camera system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3207728B2 (en) | Control method of redundant manipulator | |
US9002519B2 (en) | Robot control method, robot control device, and robot control system | |
JP3655083B2 (en) | Interface device for positioning the robot | |
US4823279A (en) | Coordinate conversion system and method for controlling an industrial robot | |
US4594671A (en) | Velocity method of controlling industrial robot actuators | |
JPH079606B2 (en) | Robot controller | |
JPH09265313A (en) | Speed arithmetic device for robot and speed arithmetic method for robot | |
JPS591180A (en) | Manipulator executing motion of path controlled | |
JP3207409B2 (en) | Robot tool attitude control method | |
JP3316967B2 (en) | Robot control device | |
JPH07200018A (en) | Controller for robot | |
JPH06190750A (en) | Robot control device | |
WO1995004959A1 (en) | Second generation six-degree-of-freedom virtual pivot hand controller | |
JPH01267706A (en) | Method for controlling robot | |
JPH08155647A (en) | Weaving controller of welding robot | |
JPH1190868A (en) | Robot control device | |
JP2576176B2 (en) | Robot control method | |
JPH11198072A (en) | Minimum time speed controller for robot | |
JP2676721B2 (en) | Control device for articulated robot | |
JPH0760667A (en) | Weaving control device for robot | |
JPS6327723B2 (en) | ||
JP3194829B2 (en) | Robot motion program generation device | |
JPH06289915A (en) | Digital servo controller | |
JPH07104825A (en) | Controller for robot | |
JP3101134B2 (en) | Robot controller |