KR940002207B1 - Linear compensating method of robot - Google Patents

Linear compensating method of robot Download PDF

Info

Publication number
KR940002207B1
KR940002207B1 KR1019910004564A KR910004564A KR940002207B1 KR 940002207 B1 KR940002207 B1 KR 940002207B1 KR 1019910004564 A KR1019910004564 A KR 1019910004564A KR 910004564 A KR910004564 A KR 910004564A KR 940002207 B1 KR940002207 B1 KR 940002207B1
Authority
KR
South Korea
Prior art keywords
axis
robot
sampling time
movement
distance
Prior art date
Application number
KR1019910004564A
Other languages
Korean (ko)
Other versions
KR920017772A (en
Inventor
송진일
Original Assignee
삼성전자 주식회사
강진구
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사, 강진구 filed Critical 삼성전자 주식회사
Priority to KR1019910004564A priority Critical patent/KR940002207B1/en
Publication of KR920017772A publication Critical patent/KR920017772A/en
Application granted granted Critical
Publication of KR940002207B1 publication Critical patent/KR940002207B1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/02Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type

Abstract

The linear interpolating method comprises the steps of: obtaining the current position and target position, comparing the movement distance of X axis and the movement distance of Y axis on the X-Y coordinates, and obtaining the movement number; obtaining the movement distance for every sampling time; and calculating the position increment amount for every sampling time and calculating the movement pulse of respective joints; and calculating the position deviation, controlling proportional integration differentiation to the position deviation, and outputting it as a driving control signal of a submotor, thereby reducing sampling time.

Description

로보트의 직선보간(補間)방법Linear interpolation method of robot

제1도는 X-Y 평면에서의 로보트아암 엔드 이펙터의 직선이송 개념도.1 is a conceptual diagram of linear transfer of robot arm end effector in the X-Y plane.

제2도는 직각좌표 X-Y 평면상에서의 X축과 Y축의 이동량에 대한 그래프.2 is a graph of the amount of movement of the X and Y axes in the rectangular coordinates X-Y plane.

제3도는 직각좌표 X-Y 평면상에서의 직선이송을 위한 X, Y과표에 대한 속도분포도.3 is a velocity distribution plot for the X and Y plots for linear travel on a Cartesian coordinate X-Y plane.

제4도는 가감속이 없는 경우 X-Y좌표상에서 이동해야될 거리를 도시한 그래프.4 is a graph showing the distance to be moved on the X-Y coordinate in the absence of acceleration and deceleration.

제5도는 본 발명의 로보트의 직선보간방법을 실현하기 위한 블록도.5 is a block diagram for realizing the linear interpolation method of the robot of the present invention.

제6도는 본 발명에 의한 S자 특성곡선의 가감속에 따른 위치추이를 도시한 그래프.Figure 6 is a graph showing the positional change according to the acceleration and deceleration of the S-shaped characteristic curve according to the present invention.

제7도는 본 발명에 의한 S자 특성곡선의 가감속 그래프.7 is an acceleration and deceleration graph of the S-shaped characteristic curve according to the present invention.

제8도는 본 발명의 동작순서를 도시한 플로우챠트.8 is a flowchart showing the operation procedure of the present invention.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

1 : 마이크로 프로세서 2 : 디지털/아날로그 변환기1: microprocessor 2: digital-to-analog converter

3 : 서보제어부 4 : 서보모터3: Servo controller 4: Servo motor

5 : 타코제너레이터 6 : 엔코더5: taco generator 6: encoder

7 : 업/다운 카운터 8 : 타이머7: up / down counter 8: timer

본 발명은 다관절로보트 아암의 엔드이팩터(End-Effector)를 직각좌표계의 X-Y 평면에서 직선 이송시키기 위한 방법에 관한 것으로써, 특히 직선이송시의 속도분포를 S자 특성곡선을 가진 2차함수로 함으로써 로보트의 구동 개시점과 종료점에서의 개시정밀도와 종료 정밀도를 향상시키고 또한 2차함수 특성곡선의 가감속을 이산시간(discrete-time) 방정식에 의해 실현함으로써 샘플링시간을 단축시키고 직선의 정밀도를향상시킬뿐만 아니라 고속이동이 가능한 로브트의 직선보간방법에 관한 것이다.The present invention relates to a method for linearly transferring an end-effector of an articulated robot arm in the XY plane of a Cartesian coordinate system. In particular, the velocity distribution during linear transfer is a secondary function having an S-shaped characteristic curve. This improves the start accuracy and end accuracy of the robot's driving start and end points, and accelerates and decelerates the quadratic function characteristic curve by using discrete-time equations, thereby reducing the sampling time and improving the accuracy of the straight line. In addition, the present invention relates to a linear interpolation method of a robot capable of moving at high speed as well.

일반적으로 로보트의 직선보간시 직선을 일정거리로 분해한 상태에서 직선의 미소거리에 의해 포인트 투 포인트(PTP : point-to-point)동작을 하여 로보트를 상기 분할되는 직선의 경로를 따라 구동케 하는 방법이 있었으나, 이와 같은 방법은 로보트의 구동개시와 구동종료시 직선이동의 정밀도가 저하된다는 문제점이 있었다.In general, the robot is driven along the path of the divided straight line by performing point-to-point (PTP) operation by the micro-distance of the straight line in the state where the straight line is decomposed to a certain distance during the linear interpolation of the robot. There was a method, but such a method had a problem in that the accuracy of linear movement was lowered when the robot started and stopped.

따라서, 본 발명은 상기와 같은 문제점을 감안해서 이루어진 것으로써, 본 발명 의 목적은 로보트의 구동개시점과 종료점 근처에서 속도분포를 S자 특성곡선을 가진 2차함수로 가감속 함으로써 로보트의 구동개시와 구동종료시 직선이동의 정밀도를 향상시키는 로보트의 직선보간방법을 제공하는데 있다.Accordingly, the present invention has been made in view of the above problems, and an object of the present invention is to start and operate a robot by accelerating and decelerating the speed distribution to a quadratic function having an S-shaped curve near the start and end points of the robot. And to provide a linear interpolation method of the robot to improve the accuracy of the linear movement at the end of the drive.

본 발명의 다른 목적은, 2차함수 특성곡선으로 가감속을 이산시간(discrete-time) 방정식에 의해 실현함으로써 샘플링시간이 단축되므로 직선의 정밀도를 향상시킴과 동시에 고속의 지선이송이 가능한 로보트의 직선보간방법을 제공하는데 있다.Another object of the present invention is to improve the accuracy of the straight line and improve the accuracy of the straight line by simultaneously implementing acceleration and deceleration by the discrete-time equation. To provide an interpolation method.

상기 목적을 달성하기 위하여 본 발명에 의한 로보트의 직선보간방법은 로보트의 관절 좌표계에서의 현재위치와 최종목표 위치로부터 운동학적(kinematics) 방정식에 의해 X-Y평면(World 좌표계)에서의 현재위치와 목표위치를 구한후, 상기 X-Y 평면에서의 X축의 이동거리와 Y축의 이동거리의 크기를 비교하여 이동거리가 큰축에 대해 직선의 이송속도에 대응하여 가감속이 없는 경우의 매 샘플링 시간마다의 이동량으로부터 이동횟수를 구하는 이동횟수 계산스텝과, 이동거리가 짧은 축에 대해 상기 이동횟수로부터 가감속이 없는 경우의 매 샘플링 시간마다의 이동거리를 구하는 이동거리 계산스텝과, 가감속이 없는 경우의 각축의 이동량으로부터 S자 특성곡선을 가진 2차함수 가감속을 행하기 위해 이산시간 방정식에 의해 매 샘플링 시간마다의 위치증분양을 계산한후 로보트 아암의 반운동(reverse kinematics)방정식에 의해 각 관절의 이동펄스를 계산하는 이동펄스 계산스텝과, 각축의 현재위치를 검출하여 위치편차를 계산하고, 상기 위치편차에 비례적분미분(PID)제어를 행한후, 서보모터의 구동제어신호로 출력하는 서보모터의 구동스텝으로 이루어진 것을 특징으로 한다.In order to achieve the above object, the linear interpolation method of the robot according to the present invention includes a current position and a target position in the XY plane (kinematic system) by kinematic equations from the current position and the final target position in the joint coordinate system of the robot. After calculating, compare the magnitude of the moving distance of the X axis and the moving distance of the Y axis in the XY plane, and the number of movements from the amount of movement every sampling time when there is no acceleration and deceleration corresponding to the linear feed speed with respect to the axis with the large movement distance. S-shape from the movement count calculation step to find the, the movement distance calculation step to find the movement distance for every sampling time when there is no acceleration / deceleration from the movement count for the axis with short movement distance, and the movement amount of each axis without acceleration / deceleration. Positioning at every sampling time by discrete time equations to perform quadratic acceleration and deceleration with characteristic curves After calculating the quantity, the movement pulse calculation step of calculating the movement pulse of each joint by the reverse kinematics equation of the robot arm, the current position of each axis is detected, the position deviation is calculated, and the proportional integral to the position deviation After the derivative (PID) control, characterized in that the drive step of the servo motor to output the drive control signal of the servo motor.

이하, 본 발명의 일실시예를 도면을 참조하여 상세히 설명한다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.

제1도는 X-Y 평면에서의 로보트 아암 엔드이펙터의 직선이송 개념도이고, 제2도는 직각좌표 X-Y 평면상에서의 X축과 Y축의 이동량에 대한 그래프이고, 제3도는 직각좌표 X-Y 평면상에서의 직선이송을 위한 X, Y좌표에 대한 속도분포도이고, 제4도는 가감속이 없는 경우 X-Y 좌표상에서 이동해야될 거리를 도시한 그래프이며, 제5도는 본 발명의 로보트의 직선보간방법을 실현하기 위한 블록도이다.1 is a conceptual diagram of the linear movement of the robot arm end effector in the XY plane, and FIG. 2 is a graph of the movement amount of the X and Y axes in the rectangular coordinates XY plane, and FIG. 3 is a graph for the linear movement in the rectangular coordinates XY plane. FIG. 4 is a velocity distribution diagram for X and Y coordinates, and FIG. 4 is a graph showing distances to be moved on XY coordinates when there is no acceleration and deceleration, and FIG. 5 is a block diagram for realizing the linear interpolation method of the robot of the present invention.

또한, 제6도는 본 발명에 의한 S자 특성곡선의 가감속에 따른 위치추이를 도시한 그래프이고, 제7도는 본 발명에 의한 S자 특성곡선의 가감속 그래프이며, 제8도는 본 발명의 동작순서를 도시한 플로우챠트이다.6 is a graph showing the positional change according to the acceleration and deceleration of the S-shaped characteristic curve according to the present invention, and FIG. 7 is a graph of the acceleration and deceleration of the S-shaped characteristic curve according to the present invention, and FIG. It is a flowchart showing the following.

제1도는 2개의 아암(a1, a2)을 가진 로보트가 직각좌표의 X-Y 평면에서 현재위치(c1(xi, yi))로부터 목표위치(C2(xf, yf))까지 직선을 그리면서 이송하는 경우를 도시한 것으로써, 각각의 아암을 구동하기 위한 서보모터(4)가 점(A)과 점(B)에 각각 장착되어 있다.1 shows a robot with two arms (a 1 , a 2 ) drawing a straight line from the current position (c 1 (xi, yi)) to the target position (C 2 (xf, yf)) in the XY plane of the rectangular coordinates. In this case, the servo motor 4 for driving the respective arms is attached to the points A and B, respectively.

또한, 제2도 및 제3도에 있어서, X-Y 평면에서 직선을 그리기 위해서는 X축의 이송속도와 Y축의 이송속도의 비율이

Figure kpo00001
로 항상 일정해야 한다.2 and 3, in order to draw a straight line in the XY plane, the ratio of the feed rate of the X axis and the feed rate of the Y axis is
Figure kpo00001
It should always be constant.

즉, X-Y 평면에서 직선을 그리기 위해서는 각각의 좌표상에서 매 샘플링 시간마다 이송되어야 할 거리의 비율이 일정해야 한다. 따라서 샘플링 시간을 짧게 하면 짧게 할수록 직선정밀도가 향상되는 것이다.That is, in order to draw a straight line in the X-Y plane, the ratio of the distance to be transported every sampling time on each coordinate must be constant. Therefore, the shorter the sampling time, the higher the linear accuracy.

제5도에 있어서, (1)은 마이크로 프로세서이고, (2)는 상기 마이크로 프로세서(1)에서 출력된 디지털값의 속도명령을 아날로그 값으로 변환하는 디지털/아날로그 변환기(Digita1/Analog converter)로써, 상기디지털/아날로그 변환기(2)에서 변환된 아날로그 값을 서보제어부(3)에 입력하여 서보모터(4)의 정방향 및 역방향으로 구동하는 명령신호와 구동속도의 신호를 출력한다.In FIG. 5, (1) is a microprocessor, (2) is a digital / analog converter (Digita1 / Analog converter) for converting a speed command of a digital value output from the microprocessor (1) into an analog value. The analog value converted by the digital / analog converter 2 is input to the servo controller 3 to output a command signal and a drive speed signal for driving the servo motor 4 in the forward and reverse directions.

한편, 상기 서보제어부(3)는 서보모터(4)의 전류궤환신호(Ix)가 궤환됨과 동시에, 상기 서보모터(4)의 구동속도에 따라 타고제너레이터(5)에 의해 검출한 속도궤환신호(Vax)가 궤환되어 서보모터(4)를 서보제어한다.On the other hand, the servo controller 3 is fed back the current feedback signal (Ix) of the servo motor 4, the speed feedback signal detected by the ride generator 5 in accordance with the drive speed of the servo motor (4) Vax) is fed back to servo control the servomotor 4.

도면에서, (7)은 상기 서보모터(4)의 회전량에 따라 펄스신호를 출력하는 엔코더(6)로부터 출력된 펄스신호를 업카운트 또는 다운 카운트하여 로보트의 현재위치를 상기 마이크로 프로세서(1)에 입력하는 업/다운 카운터이고, (8)은 일정한 주기마다 상기 마이크로 프로세서(1)에 인터럽트를 걸어주기 위한 타이머이다. 상기 설명에 있어서, 각 구성장치는 한 축에 대해서만 설명한 것이다.In the drawing, reference numeral 7 denotes the microprocessor 1 by counting up or down counting the pulse signal output from the encoder 6 which outputs the pulse signal according to the rotation amount of the servomotor 4. (8) is a timer for interrupting the microprocessor 1 at regular intervals. In the above description, each constituent device is described only for one axis.

다음에, 본 발명에 의한 로보트의 직선보간방법에 대하여 제1도 내지 제8도를 참조하여 설명한다. 제8도에 있어서, S는 스텝(단계)을 의미하고, 1개의 관절구동에 대해서만 이하에서 예를들어 설명한다.Next, a linear interpolation method of the robot according to the present invention will be described with reference to FIGS. In FIG. 8, S means a step, and only one joint drive is demonstrated below with an example.

본 발명에 의한 로보트의 직선보간방법이 개시되면, 먼저 스텝 S1에서 제1도에 도시한 바와 같이 수평 다관절 로보트의 1개의 관절좌표에서의 현재값(θ1, θ2)을 업/다운 카운터(7)에 의해 읽어들이고, 스텝 S2에서 X-Y 평면에서의 위치(xi, yi)를 다음식(1), (2)에 의해 구한다.When the linear interpolation method of the robot according to the present invention is started, first, the present value (θ 1 , θ 2 ) in one joint coordinate of the horizontal articulated robot, as shown in FIG. It reads by (7), and the position (xi, yi) in an XY plane is calculated | required by following formula (1) and (2) in step S2.

xi=a1cosθ1+a2cos(θ12)……………………………………………………(1)xi = a 1 cosθ 1 + a 2 cos (θ 1 + θ 2 ). … … … … … … … … … … … … … … … … … … … (One)

yi=a1sinθ1+a2sin(θ12)………………………………………………………(2)yi = a 1 sin θ 1 + a 2 sin (θ 1 + θ 2 ). … … … … … … … … … … … … … … … … … … … … (2)

여기서 a1: 로보트의 제1아암의 길이Where a 1 is the length of the robot's first arm

a2: 로보트의 제2아암의 길이이다.a 2 : length of robot's second arm.

상기 X-Y 평면에서의 위치(xi, yi)가 구해지면 스텝 S3로 나아가서 로보트의 관절좌표에서의 최종목표값(θ3, θ4)을 읽고 스텝 S4에서, 상기 스텝 S3에서 읽은 최종목표값(θ3, θ4)을 참고로 하여 X-Y 평면에서의 목표위치값(xf, yf)은 하기 식(3), (4)에 의해서 구한다.When the positions xi and yi in the XY plane are obtained, the process proceeds to step S3, where the final target values θ 3 and θ 4 are read from the joint coordinates of the robot, and in step S4, the final target values θ read in the step S3. 3 , θ 4 ), the target position values (xf, yf) in the XY plane are obtained by the following equations (3) and (4).

xf=a1cosθ3+a2cos(θ34) ……………………………………………………(3)xf = a 1 cosθ 3 + a 2 cos (θ 3 + θ 4 ). … … … … … … … … … … … … … … … … … … … (3)

yf=a1sinθ3+a2sin(θ34) ………………………………………………………(4)yf = a 1 sin θ 3 + a 2 sin (θ 3 + θ 4 ). … … … … … … … … … … … … … … … … … … … … (4)

로 표시된다Is displayed

이에따라, 제2도에 도시한 바와 같이 X-Y 평면에서의 각축의 위치편차를 스텝 S5에서 구하며 x축 방향의 이동량(xp)은 xp=xf-xi-(5)에 의해서 구하고, y축 방향의 이동량(yp)은 yp=yf-yi-(6)에 의해서 구한다.Accordingly, as shown in FIG. 2, the positional deviation of each axis in the XY plane is obtained in step S5, and the amount of movement xp in the x-axis direction is obtained by xp = xf-xi- (5), and the amount of movement in the y-axis direction. (yp) is obtained by yp = yf-yi- (6).

직선이송속도를 V[㎜/sec]라 할 경우, 상기 X측 방향의 이동량(Xp)과 Y축 방향의 이동량(Yp)과의 대소를 비교한 결과 X축이 크다고 가정하면, 상기 X축의 이송속도를 V[㎜/sec]로 셋팅하며, 제4도에 도시한 바와 같이 가감속이 없는 경우의 매 샘플링 시간(Ts)마다 이동해야할 거리를 Pix[㎜]라 하면, 상기 가감속이 없는 경우의 매 샘플링 시간마다 이동해야할 거리(Pix)는 Pix=V×Ts[㎜]이다.When the linear transfer speed is V [mm / sec], when the magnitude of the movement amount Xp in the X-direction and the movement amount Yp in the Y-axis direction is compared, it is assumed that the X axis is large. If the speed is set to V [mm / sec] and the distance to be moved every sampling time Ts in the absence of acceleration / deceleration as shown in FIG. 4 is Pix [mm], The distance Pix to move for each sampling time is Pix = V x Ts [mm].

예를들어서, 직선의 이송속도(V)가 1000[㎜/sec]이고, 샘플링시간(Ts)이 10msec인 경우 상기 가감속이 없는 경우의 매 샘플링 시간마다 이동해야할 거리(Pix)는 Pix=V×Ts=100[㎜/sec]×10×10-3[sec]=10㎜인 것이다.For example, when the feed rate V of the straight line is 1000 [mm / sec] and the sampling time Ts is 10 msec, the distance Pix to be moved every sampling time without the acceleration / deceleration is Pix = V × Ts = 100 [㎜ / sec] is a × 10 × 10- 3 [sec] = 10㎜.

상기 스텝 S5에서 X-Y 평면에서의 각축의 위치편차(Xp, Yp)가 구해졌으므로 스텝 S6으로 나아가서 최대위치편차(Pmax)는 Pmax=MAX{Xp, Yp}에 의해 최대위치편차를 구하고 스텝 S7에서는 정해진 매 샘플링 시간마다 이동해야 할 거리값(Pi)에 의해 Pi의 횟수(N)를 구한다.Since the positional deviations Xp and Yp of the respective axes in the XY plane are obtained in step S5, the process proceeds to step S6 where the maximum positional deviation Pmax is determined by Pmax = MAX {Xp, Yp} and the maximum positional deviation is determined in step S7. The number N of Pis is obtained from the distance value Pi to be moved at every sampling time.

즉, 최대위치편차가 X축의 위치편차와 동일할 경우(Pmax=Px)즉 가감속이 없는 경우의 메 샘플링시간(Ts)마다 이동해야할 거리(Pix)의 횟수(N)는 N=

Figure kpo00002
에 의해서 구해지는 것이다. (여기서 나머지는 Rix라고 한다)That is, when the maximum positional deviation is equal to the positional deviation of the X axis (Pmax = Px), that is, the number N of distances Pix to be moved every mesampling time Ts without acceleration / deceleration is N =
Figure kpo00002
Obtained by (The rest here is called Rix)

따라서, 스텝 S8에서 가가속이 없는 경우의 매 샘플링 시간(Ts)마다 이동해야할 거리(Pix, Piy)가 다음식에 의해 구해진다.Therefore, the distances Pix and Piy to be moved at every sampling time Ts when there is no acceleration in step S8 are obtained by the following equation.

즉, 제4도에 도시한 바와 같이 X축 방향으로 가감속이 없는 경우의 매 샘플링 시간마다 이동해야할 거리(Pix)는, Pix=

Figure kpo00003
이고, X축 방향으로 가감속이 없는 경우의 매 샘플링 시간마다 이동해야할 거리(Piy)는, Piy=
Figure kpo00004
이다. (여기서 나머지는 Riy로 한다.) 예를들어서That is, as shown in FIG. 4, the distance Pix to be moved every sampling time when there is no acceleration / deceleration in the X-axis direction is Pix =
Figure kpo00003
And the distance Piy to be moved at every sampling time in the absence of acceleration and deceleration in the X-axis direction is Piy =
Figure kpo00004
to be. (The rest here is called Riy.) For example

V=1000[㎜/sec], Ts=10[msec]V = 1000 [mm / sec], Ts = 10 [msec]

Px=(Xi-Xf)=400[㎜]Px = (Xi-Xf) = 400 [mm]

Py=(Yi-Yf)=200[㎜]인 경우에,In the case of Py = (Yi-Yf) = 200 [mm],

최대위치편차(Pmax)는 X축의 위치편차(Px)와 동일하므로 Pmax=Px=400[㎜]가 되어 X축 방향으로 가감속이 없는 경우의 매 샘플링 시간마다 이동해야할 거리(Pix)는 Pix=V·Ts=1000[㎜/sec]×10[msec]=10[㎜]이고, 횟수(N)는 N=

Figure kpo00005
=400/10=40회이며, X축 방향으로 가감속이 없는 경우의 매샘플링 시간마다 이동해야할 거리(Piy)는 Piy=Py/N=200/40=5[㎜]가 된다.Since the maximum positional deviation (Pmax) is the same as the positional deviation (Px) of the X-axis, Pmax = Px = 400 [mm], and the distance (Pix) to be moved at every sampling time when there is no acceleration / deceleration in the X-axis direction is Pix = V Ts = 1000 [mm / sec] x 10 [msec] = 10 [mm], and the number N is N =
Figure kpo00005
= 400/10 = 40 times, and the distance Piy to be moved for every sampling time in the absence of acceleration and deceleration in the X-axis direction is Piy = Py / N = 200/40 = 5 [mm].

즉, 가감속이 없는 경우에, 40번째 샘플링까지는 X-Y 평면상의 X축 및 Y축으로 이동해이할 거리는 각각 10[㎜]와 5[㎜]이고, 201번째 샘플링부터는 이동해야할 펄스수가 각각 ○[㎜]이다.That is, in the absence of acceleration and deceleration, the distance to move to the X and Y axes on the XY plane until the 40th sampling is 10 [mm] and 5 [mm], respectively, and the number of pulses to be moved from the 201st sampling is ○ [mm], respectively. .

이어서 스텝 S9에서 0를 K에 대입한후, 스텝 S10에서 다음식에 의해 X-Y 평면에서의 각축의 위치증분량을 구한다.Subsequently, 0 is substituted into K in step S9, and the positional increment of each axis in the X-Y plane is obtained by the following equation in step S10.

Figure kpo00006
Figure kpo00006

여기서 Sx(0)=Sy(0)=S'y(0)=S'x(0)=0이고 K=0, 1, 2, 3, …이다.Where Sx (0) = Sy (0) = S'y (0) = S'x (0) = 0 and K = 0, 1, 2, 3,... to be.

상기 식(7), (8)에서 알 수 있듯이 나눗셈항이 있기 때문에 소숫점 이하에 대해서 처리를 해야지만 X-Y평면에서 정확한 위치 경로를 계산할 수 있다. 즉 스텝 S11에서 임의의 K시점에서 Sx(k)/n, Sy(k)/n, S'x(k)/n, S'y(k)/n의 나머지 값을 R(k)로 대표해서 나타내고, Pix(k), Piy(k), Vox(k), Voy(k)를 Pi로 대표해서 나타내면As can be seen from the above equations (7) and (8), since there is a division term, it is necessary to process the decimal point or less, but the exact position path can be calculated in the X-Y plane. That is, at step S11, the remaining values of Sx (k) / n, Sy (k) / n, S'x (k) / n, and S'y (k) / n are represented by R (k) at an arbitrary K point. If Pix (k), Piy (k), Vox (k), and Voy (k) are represented by Pi,

Pi(k+1) ←Pi(k+1) +R(k)Pi (k + 1) ← Pi (k + 1) + R (k)

로 하여 식(7), (8)에 의해 위치 증본양을 계산하는 것이다.The position increase amount is calculated by using equations (7) and (8).

상기 식(7), (8)에 의하면 제6도 및 제7도를 도시한 본 발명의 S자 특성곡선이 얻어진다.According to the above formulas (7) and (8), the S-shaped characteristic curve of the present invention shown in Figs. 6 and 7 is obtained.

한편, 상기 가감속 시정수(n)를 20으로 한 경우에 가속시간(tacc) 및 감속시간(tdec)은 tacc=tdec=n×Ts=20×2msec=40[msec]이며, 상기 가감속시간(tacc·tdec)은 모터에 부착된 기계의 특성에 따라 적절하게 선택한다.On the other hand, when the acceleration / deceleration time constant n is 20, the acceleration time tacc and the deceleration time tdec are tacc = tdec = n × Ts = 20 × 2 msec = 40 [msec], and the acceleration / deceleration time (tacc · tdec) is appropriately selected depending on the characteristics of the machine attached to the motor.

상기 스텝 S11에서의 소숫점 이하값 보정이 수행된 다음에는 스텝 S12로 나아가서 매 샘플링 시간마다 X-Y 평면에서의 각축의 목표위치를 다음식을 이용하여 구한다.After the decimal point value correction in step S11 is performed, the flow advances to step S12 to obtain the target position of each axis in the X-Y plane for each sampling time using the following equation.

Figure kpo00007
Figure kpo00007

스텝 S12에서 각축의 목표위치가 구해졌으므로 스텝 S13에서는Since the target position of each axis is obtained in step S12, in step S13

Figure kpo00008
Figure kpo00008

를 이용하여 관절좌표계에서 K시점에서의 각축의 목표위치를 구한다. 이에따라, 스텝 S14에서 임의의 K시점에서의 위치편차가 다음식에 구해진다.Find the target position of each axis at point K in the joint coordinate system using. Accordingly, in step S14, the positional deviation at any K time point is obtained from the following equation.

즉, Pεx(k)=Pθx(k)-Cθx(k)………………………………………………(13)That is, P? X (k) = P? X (k)-C? X (k)... … … … … … … … … … … … … … … … … … (13)

Pεy(k) =Pθy(k)-Cθy(k)………………………………………………(14)P? Y (k) = P? Y (k)-C? Y (k)... … … … … … … … … … … … … … … … … … (14)

(여기서 Cθx(lk), Cθy(k)는 임의의 K시점에서의 각축마다 업/다운 카운터(7)에 의해 읽은 로보트의 현재 위치 값이다)(Cθx (lk) and Cθy (k) are the current position values of the robot read by the up / down counter 7 for each axis at an arbitrary K point)

상기 스텝 S14에서 각축의 위치편차가 판별되었으므로 스텝 S15로 나아가서 다음식에 의해 상기 스텝 s14의 K시점에서의 각축의 위치편차에 비례적분미분(PID : Proportional IntegraI Differential) 제어를 수행한후 디지털/아날로그 변환기(2)에 입력한다. 즉,Since the positional deviation of each axis is determined in step S14, the process proceeds to step S15 and after performing proportional integral derivative (PID) control on the positional deviation of each axis at the time K at step S14 by the following equation, digital / analog Input to transducer 2. In other words,

Figure kpo00009
Figure kpo00009

여기서 T는 샘플링 시간이고, Dx out와 Dy out은 각축의 디지털/아날로그 변환기(2)로 입력되는 값이고, Kpx와 Kpy는 각축의 비례이득(P)이며, Kix와 Kiy는 각축의 적분이득(I)이다.Where T is the sampling time, Dx out and Dy out are the values input to the digital-to-analog converter (2) on each axis, Kpx and Kpy are the proportional gains (P) of each axis, and Kix and Kiy are the integral gains of each axis ( I)

또한 Kdx와 Kdy는 각축의 미분이득(D)이미, 스텝 S15에서와 같은 각축의 비례적분미분 이득은 로보트의 운동상태가 최적이 되도록 결정한다.In addition, Kdx and Kdy already determine the derivative gain D of each axis, and the proportional integral gain of each axis as in step S15 determines the optimum state of motion of the robot.

따라서 상기의 Dx out(k), Dy out(k)을 디지털/아날로그 변환기(2)에 출력하고 상기 디지털/아날로그 변환기(2)에 의해 아날로그 값으로 변환된 값이 서보제어부(3)에 입력되어 모터(4)를 구동하는 것이다.Therefore, the values Dx out (k) and Dy out (k) are output to the digital / analog converter 2 and the values converted into analog values by the digital / analog converter 2 are input to the servo controller 3. The motor 4 is driven.

이어서, 스텝 S16에시 K+1 값을 K에 대입한후 스텝 S17로 나아가 K의 값이 가감속이 없을 경우의 매 샘플링 시간마다의 이동펄스(Pi)의 횟수(N)와 동일한가의 여부를 판단하여 동일할 경우(Yes일 경우)에는 스텝 S18)에서 가속이 없는 경우의 매 샘플링 시간마다의 이동펄스(Pi)의 횟수(N)를 구함으로써, 얻어진 각축의 나머지 값(Rix, Riy)을 각축마다의 이동펄스(Pix, Piy)에 대입하여 구하고, 스텝 S19에서 K의 값이 매 샘플링 시간마다의 이동펄스(Pi)의 횟수(N)보다 큰가를 판단하여 클 경우(Yes일 경우)에는 스텝 S20으로 나아가서 각축마다의 이동펄스(Pix, Piy)에 0을 대입하여 계산하고 스텝 S21에서 최종목표위치인가를 판단한다.Subsequently, at step S16, the value of K + 1 is substituted for K, and the flow proceeds to step S17 to determine whether the value of K is equal to the number N of the moving pulses Pi for every sampling time when there is no acceleration or deceleration. If it is the same (Yes), the number N of moving pulses Pi for every sampling time when there is no acceleration is determined in step S18, and the remaining values Rix and Riy of each axis are obtained for each axis. It is determined by substituting the moving pulses Pix and Piy, and if it is determined in step S19 whether the value of K is greater than the number N of the moving pulses Pi for every sampling time, and if it is large (Yes), step S20 Subsequently, it calculates by substituting 0 to the movement pulses Pix and Piy for each axis, and determines whether it is a final target position in step S21.

상기 스텝 S21에서 최종목표위치라고 판단되었을 경우(Yes일 경우)에는 로보트의 구동이 종료되는 것이며, 최종목표위치가 아닐 경우(No일 경우)에는 스텝 S10으로 복귀하여 차후의 동작을 반복한다.If it is determined in step S21 that the final target position (Yes) is reached, the robot is terminated. If the final target position is not (No), the robot returns to step S10 and the subsequent operation is repeated.

한편, 상기 스텝 S17에서 K의 값이 매 샘플링 시간마다의 이동펄스(Pi)의 횟수(n)와 동일하지 않을 경우(K≠N, No일 경우)에는 직접 스텝 S19으로 나아가서 차후의 동작을 수행하며, 상기 스텝 S19에서 K의 값이 매 샘플링 시간마다의 이동펄스(Pi)의 횟수(N)보다 크지 않을 경우(No일 경우)에는 스텝 S21로 나아가서 로보트의 최종목표위치인가를 판단한다.On the other hand, if the value of K in step S17 is not equal to the number n of moving pulses Pi for every sampling time (when K ≠ N, No), the flow proceeds directly to step S19 to perform subsequent operations. If the value of K in step S19 is not greater than the number N of the moving pulses Pi for each sampling time (No), the process proceeds to step S21 to determine whether the robot is the final target position.

상기 설명한 실시예는 수평다관절 로보트에 대한 것이지만, 본 발명은 직교로보트, 수직다관절 로보토에도 적용이 가능함은 물론이다.Although the above-described embodiment is directed to a horizontal articulated robot, the present invention is also applicable to an orthogonal robot and a vertical articulated robot.

이와 같이 본 발명의 로보트의 직선보간방법어 의하면, 직각좌표의 X-Y 평면에서 로보트의 아암종단부 즉 엔드이펙터가 직선을 따라 움직이되 직선의 속도분포를 이산시간상태 방정식에 의해 S자 특성곡선을 가진 2차함수 가감속을 실행하므로 샘플링 시간을 단축하고 직선정밀도가 향상될뿐만 아니라 고속으로 직선이동이 가능하다는 뛰어난 효과가 있다.As described above, according to the linear interpolation method of the robot, the arm end of the robot, that is, the end effector, moves along the straight line in the XY plane of the rectangular coordinates, and the velocity distribution of the straight line is defined by the discrete time state equation. Exciting second function acceleration and deceleration not only shortens the sampling time and improves linear accuracy, but also has an excellent effect of linear movement at high speed.

Claims (2)

로보트의 관절좌표계에서의 현재위치와 최종목표위치로부터 운동(kinematics)방정식에 의해 X-Y평면(World 좌표계)에서의 현재위치와 목표위치를 구한후, 상기 X-Y 평면에서 X축의 이동거리와 Y축의 이동거리의 크기를 비교하여 이동거리가 큰축에 대해 직선의 이송속도에 대응하여 가감속이 없는 경우의 매 샘플링 시간마다의 이동량으로부터 이동횟수를 구하는 이동횟수 계산스텝과, 이동거리가 짧은 축에 대해 상기 이동횟수로부터 가감속이 없는 경우의 매 샘플링 시간마다의 이동거리를 구하는 이동거리 계산스텝과, 가감속이 없는 경우의 각축의 이동량으로부터 S자 특성곡선을 가진 2차함수 가감속을 행하기 위해 이산시간 방정식에 의해 매 샘플링 시간마다의 위치 증분양을 계산한후 로보트 아암의 반운동(reverse kinematics)방정식에 의해 각 관절의 이동펄스를 계산하는 이동펄스 계산스텝과, 각축의 현재위치를 검출하여 위치편차를 계산하고, 상기 위치편차에 비례적분미분(PID) 제어를 행한후, 서보모터의 구동제어신호로 출력하는 서보모터의 구동스텝으로 이루어진 것을 특징으로 하는 로보트의 직선보간방법.After calculating the current position and target position in the XY plane (World coordinate system) by the kinematic equation from the current position and final target position in the joint coordinate system of the robot, the movement distance of the X axis and the movement distance of the Y axis in the XY plane The number of movements to calculate the number of movements from the amount of movement for every sampling time when there is no acceleration and deceleration corresponding to the feed speed of the straight line with respect to the axis with a large distance, and the number of movements for the axis with a short distance. The travel distance calculation step to find the travel distance for every sampling time in the absence of acceleration and deceleration, After calculating the positional increments for each sampling time, the joint kinematics equations of the robot arms The movement pulse calculation step of calculating the pulse, the current position of each axis is detected, the position deviation is calculated, the proportional integral derivative (PID) control is performed on the position deviation, and the servo motor outputs the drive control signal of the servo motor. A linear interpolation method for a robot, comprising a driving step. 제1항에 있어서, 상기 비례적분미분된 값은 디지털/아날로그 변환기에 의해 아날로그 값으로 변환된 후 서보제어부에 입력되어 모터를 구동하는 것을 특징으로 하는 로보트의 직선보간방법.The linear interpolation method of claim 1, wherein the proportional integral value is converted into an analog value by a digital / analog converter and then input to a servo control unit to drive a motor.
KR1019910004564A 1991-03-22 1991-03-22 Linear compensating method of robot KR940002207B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019910004564A KR940002207B1 (en) 1991-03-22 1991-03-22 Linear compensating method of robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019910004564A KR940002207B1 (en) 1991-03-22 1991-03-22 Linear compensating method of robot

Publications (2)

Publication Number Publication Date
KR920017772A KR920017772A (en) 1992-10-21
KR940002207B1 true KR940002207B1 (en) 1994-03-19

Family

ID=19312386

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019910004564A KR940002207B1 (en) 1991-03-22 1991-03-22 Linear compensating method of robot

Country Status (1)

Country Link
KR (1) KR940002207B1 (en)

Also Published As

Publication number Publication date
KR920017772A (en) 1992-10-21

Similar Documents

Publication Publication Date Title
KR930007775B1 (en) Linear interpolating method of robot
CN111026164B (en) Robot target tracking trajectory planning method
US4617502A (en) Method and apparatus for controlling a robot hand along a predetermined path
JP2899075B2 (en) Synchronous drive device and synchronous drive method
US5373221A (en) Method and system for estimating robot tool center point speed
JP2728399B2 (en) Robot control method
EP0258447A1 (en) Method of returning to origin
KR940002207B1 (en) Linear compensating method of robot
CN109773781B (en) Linear soft floating control method of industrial robot without sensor
JPH04352012A (en) Robot-position controlling method
KR930007776B1 (en) Linear interpolating method of robot
KR940001204B1 (en) Method of compensating linear movement of robot
JP2830205B2 (en) Robot control device
KR0160699B1 (en) Method for circular error compensation of robot
JP3121920B2 (en) Acceleration / deceleration control device
JPH10161750A (en) Travel speed control system
JPH0623928B2 (en) Robot hand trajectory correction method
KR0160999B1 (en) Error compensation method for the circular trajectory of robot
KR930007780B1 (en) Position control method of robot
KR930007781B1 (en) Position control method of robot
JPH0625928B2 (en) Robot circular arc orbit controller
KR930007779B1 (en) Position control method of robot
JPS6160447B2 (en)
JP2506157B2 (en) Robot controller
KR0154433B1 (en) Method for circular error compensation of robot

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 19970829

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee