KR930007781B1 - Position control method of robot - Google Patents

Position control method of robot Download PDF

Info

Publication number
KR930007781B1
KR930007781B1 KR1019900018730A KR900018730A KR930007781B1 KR 930007781 B1 KR930007781 B1 KR 930007781B1 KR 1019900018730 A KR1019900018730 A KR 1019900018730A KR 900018730 A KR900018730 A KR 900018730A KR 930007781 B1 KR930007781 B1 KR 930007781B1
Authority
KR
South Korea
Prior art keywords
axis
acceleration
deceleration
robot
sampling time
Prior art date
Application number
KR1019900018730A
Other languages
Korean (ko)
Other versions
KR920009521A (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 KR1019900018730A priority Critical patent/KR930007781B1/en
Publication of KR920009521A publication Critical patent/KR920009521A/en
Application granted granted Critical
Publication of KR930007781B1 publication Critical patent/KR930007781B1/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D3/00Control of position or direction

Abstract

The method controls the position of a robot arm based on different state equation and linear acceleration and deceleration profiles so that chattering of a robot arm is reduced and high speed and accurate position control is obtained. The method includes the steps of: (A) calculating maximum number of position deviation of each axis, (B) calculating the distance of each axis to be moved during sampling intervals when no acceleration and deceleration motion occur; (C) calculating the moved distance of each axis (D) calculating position deviation of each axis; and (E) calculating control input of each axis using proportional, integral and differential control scheme.

Description

로보트의 위치 제어방법How to control the position of the robot

제1도 및 제2도는 종래의 로보트의 위치제어방법에 있어서의 직선가감속시 매 샘플링 시간마다의위치 증분량을 구하는 방법도.1 and 2 are methods for obtaining the positional increments for every sampling time during linear acceleration and deceleration in the conventional robot position control method.

제3도는 로보트의 복수축이 동시에 출발하여 동시에 목표위치에 도달하기 위한 속도분포도.3 is a velocity distribution diagram for plural axes of the robot starting simultaneously and reaching the target position at the same time.

제4도는 로보트의 각축이 매 샘플링 시간마다 이동해야할 펄스수를 도시한 파형도.4 is a waveform diagram showing the number of pulses each axis of the robot should move at every sampling time.

제5도는 본 발명의 로보트의 위치제어방법에 사용된 위치 제어 시스템도.5 is a position control system diagram used in the position control method of the robot of the present invention.

제6도는 직선가감속을 행할 경우의 목표위치를 도시한 그래프.6 is a graph showing a target position when performing linear acceleration and deceleration.

제7도는 본 발명의 로보트의 위치제어방법의 동작순서를 도시한 플로우챠트.7 is a flowchart showing an operation procedure of the robot's position control method 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 control unit 4: motor

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

7 : 업/다운 카운터7: up / down counter

본 발명은 수평 다관절 로보트 또는 직교 로보트의 위치 제어시에 잔류진동을 억제하고 고속의 위치제어가 가능하며, 이산시간 상태방정식에 의해 가감속을 실현하여 샘플링시간을 감소시키고 고정밀도의 위치제어가 가능토록 하는 로보트의 위치 제어 방법에 관한 것이다.The present invention suppresses residual vibration and enables high-speed position control during position control of a horizontal articulated robot or an orthogonal robot, and realizes acceleration and deceleration by discrete time state equation to reduce sampling time and to achieve high precision position control. It relates to a robot position control method to be possible.

종래, 수평 다관절 로보트 또는 직교로보트의 위치 제어방법에는 여러 가지 방법이 있었다.Conventionally, there have been various methods for controlling the position of a horizontal articulated robot or an orthogonal robot.

즉, 제1도에 도시한 바와 같은 직선 가감속 방식이 있었으나, 이 방식은 마이크로 프로세서에서 매 샘플링 시간마다 목표위치를 계산하기 위해서는 가속 및 감속의 경우, 거리(S)는That is, there was a linear acceleration / deceleration scheme as shown in FIG. 1, but in this scheme, in order to calculate a target position at every sampling time in the microprocessor, the distance S may be

S=1/2 at2……………………………………………………(1)S = 1/2 at 2 ... … … … … … … … … … … … … … … … … … … … (One)

여기서 a : 가속도Where a: acceleration

t : 시간t: time

을 계산해야 하고, 등속의 경우, 거리(S)는, And for constant velocity, the distance (S)

S=vㆍt…………………………………………………………(2)S = v · t... … … … … … … … … … … … … … … … … … … … … … (2)

여기서 v : 속도Where v: speed

t : 시간t: time

을 계산하여야 하므로 상기 마이크로 프로세서에서 가속, 등속 및 감속 영역을 일일이 판별해야 하고 로보트와 같이 축이 늘어나는 경우 상기(1)(2)식을 계산하기 위한 샘플링 시간이 길어지게 되어 위치경로의 정밀도가 떨어지고, 위치제어 시스템이 불안정하게 됨과 동시에 이동거리로부터 직선 가감속 형태의 속도 패턴을 만들때 가속, 감속 및 등속시의 이동거리가 일정하게 정해져 있기 때문에 가속 및 감속을 완료한 후 재차 이동해야 한다는 단점이 있었다.Since the acceleration, constant velocity, and deceleration areas must be determined by the microprocessor, and when the axis is extended like a robot, the sampling time for calculating the equation (1) (2) becomes long, and the accuracy of the position path is reduced. The disadvantage is that the position control system becomes unstable and the movement distance during acceleration, deceleration, and constant velocity is constant when the speed pattern in the form of linear acceleration / deceleration is made from the movement distance. there was.

예를들면, 이동거리가 2010펄스인 경우, 가속 및 감속시의 이동거리를 각각 200펄스로 하고, 등속시 이동거리를 1800펄스로 할때 가감속을 종료하면 2000펄스 밖에 이동을 하지 못하기 때문에 재차 10펄스를 이동하여야만 목표위치에 정확하게 오달할 수 있는 것이다.For example, if the movement distance is 2010 pulses, the movement distance at the time of acceleration and deceleration is 200 pulses, and when the movement distance at the constant speed is 1800 pulses, when acceleration and deceleration is completed, only 2000 pulses can be moved. Only if you move 10 pulses again can you accurately reach the target position.

또한 제2도에 도시한 바와같이 임의의 샘플링 시간에서의 목표위치를 구하기 위해서는 직선 가감속 곡선의 면적을 계산해야 하는데 제2도에 도시한 바와 같이 A부분(사각형 면적 : 위치증분량)만 계산되고, B부분(삼각형 면적)은 계산이 되지 않기 때문에 목표 위치가 정확하게 계산되지 않는다는 문제점이 있었다.In addition, as shown in FIG. 2, in order to obtain a target position at an arbitrary sampling time, the area of the linear acceleration / deceleration curve must be calculated. As shown in FIG. 2, only the portion A (square area: position incremental amount) is calculated. Since the B portion (triangle area) is not calculated, there is a problem that the target position is not calculated correctly.

따라서, 본 발명은 상기와 같은 여러가지 문제점을 감안하여 이루어진 것으로써, 본 발명의 목적은 직선함수 가감속시 가속시의 위치와 감속시의 위치에 대한 직선함수 자체를 마이크로 프로세서에서 매 샘플링 시간마다 계산하지 않고 이산시간 상태방정식에 의해 직선함수 가감속을 실현하여 샘플링 시간을 감소시키고, 위치 경로의 정밀도를 향상시킴과 동시에 고속의 위치제어가 가능한 로보트의 위치제어방법을 제공하는데 있다.Accordingly, the present invention has been made in view of the above-described problems, and an object of the present invention is to calculate the linear function itself for each position during acceleration and deceleration during linear acceleration / deceleration at every sampling time. The present invention provides a robot position control method capable of reducing the sampling time, improving the accuracy of the position path, and enabling high-speed position control by realizing the linear function acceleration / deceleration by the discrete time state equation.

본 발명의 다른 목적은, 각축이 동시에 출발하고, 동시에 목표위치에 도달에 가능하여 축의 운동간섭에 의한 진동발생을 억제하는 로보트의 위치제어방법을 제공하는데 있다.Another object of the present invention is to provide a robot position control method in which each axis starts at the same time and at the same time can reach the target position, thereby suppressing the vibration caused by the motion interference of the axis.

상기 목적을 달성하기 위하여 본 발명에 의한 로보트의 위치제어방법은, 로보트 이동용 서보모터의 구동 전류를 토대로 로보트의 현재위치 및 각축의 위치편차, 최대위치 편차를 구하는 스텝과, 서보모터의 가속이 없는 경우에 매 샘플링 시간마다 이동해야 할 펄스수를 계산하고, 이 펄스수의 횟수를 구하는 스텝과, 가감속이 없는 경우의 매 샘플링 시간마다의 각축의 이동펄스를 구하는 스텝과, 각축의 위치증분량을 구하는 스텝과, 일정싯점에서의 매 샘플링 시간마다의 각축의 목표위치를 구하여 각축의 위치편차를 구하고 이를 비례적분미분 제어하는 스텝과, 상기 비례적분미분 제어값을 토대로 서보모터를 구동시키면서 일정시간이 경과한 상태에서 가감속이 없을 경우의 매 샘플링 시간마다의 이동펄스의 횟수와 동일한지 여부에 따라 각 축마다의 이동펄스를 구하는 스텝과, 상기 일정싯점의 K값이 횟수보다 큰지의 여부에 따라 각축의 이동펄스를 클리어시키거나, 최종목표위치를 판단하는 스텝으로 구성된 로보트 제어방법에 있어서, 상기 각축의 위치증분량은In order to achieve the above object, the method for controlling the position of a robot according to the present invention includes a step of calculating the current position of the robot, the position deviation of each axis, the maximum position deviation, and the acceleration of the servo motor based on the driving current of the robot moving servomotor. In this case, the number of pulses to be moved at every sampling time is calculated, the step of obtaining the number of pulses, the step of obtaining the moving pulses of each axis at each sampling time in the absence of acceleration and deceleration, and the position increment amount of each axis. A step for obtaining the target position of each axis at each sampling time at a predetermined point, and calculating the positional deviation of each axis and controlling the proportional integral derivative, and driving the servo motor based on the proportional integral differential control value. Each horse race according to whether it is equal to the number of moving pulses for every sampling time when there is no acceleration / deceleration in the elapsed state A robot control method comprising: obtaining a plurality of moving pulses; and clearing a moving pulse of each axis or determining a final target position according to whether the K value of the predetermined point is greater than the number of times. Position increment

S(k)=fi(k)-fi(k-n)+S(k-1)S (k) = fi (k) -fi (k-n) + S (k-1)

fo(k)=S(k)/nfo (k) = S (k) / n

(여기서 fi : 가감속이 없을 경우의 매 샘플링 시간마다의 각축의 이동펄스, n : 가감속시정수)에 의해 구하는 것을 특징으로 한다.Where fi is the acceleration pulse of each axis for every sampling time in the absence of acceleration and deceleration, and n is the acceleration and deceleration time constant.

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

제4도는 로보트의 각축이 매 샘플링 시간마다 이동해야 할 펄스수를 도시한 파형도이고, 제5도는 본 발명의 위치 제어 방법에 사용된 위치 제어 시스템도를 도시한 것으로써, 본 발명에서 사용된 위치 제어 시스템을 로보트에 구성된 복수개의 축중에서 한개의 축에 대해서만 도시한 블록도이다.4 is a waveform diagram showing the number of pulses that each axis of the robot should move at every sampling time, and FIG. 5 is a diagram of a position control system used in the position control method of the present invention. A block diagram showing the position control system for only one axis among a plurality of axes configured in the robot.

제4도에 있어서, 사선부분이 로보트의 각축(x, y, z, w)이 매 샘플링 시간(Ts)마다 이동하여야 할 펄스수를 도시한 것이며, Vxmax, Vymax, Vzmax, Vwmax는 각축의 모터의 최고속도이다.In FIG. 4, the diagonal line shows the number of pulses that each axis (x, y, z, w) of the robot should move at every sampling time Ts, and Vxmax, Vymax, Vzmax and Vwmax are the motors of each axis. Is the highest speed.

제5도에 있어서, (1)은 서보모터(4)의 속도명령을 출력하고, 전시스템을 총괄하는 마이크로 프로세서이고, (2)는 상기 마이크로 프로세서(1)에서 출력된 디지털값의 속도명령을 아날로그 값으로 변환하는 디지털/아날로그 변환기(Digital/Analog converter)로써, 상기 변환된 아날로그값을 도시하지 않은 서보 드라이버에 입력하여 서보모터(4)의 정방향 및 역방향으로 구동하는 명령신호와 구동속도의 신호를 출력한다.In Fig. 5, reference numeral 1 denotes a microprocessor that outputs the speed command of the servomotor 4 and controls the entire system, and reference numeral 2 denotes the speed command of the digital value output from the microprocessor 1. A digital / analog converter that converts an analog value into a digital / analog converter, which inputs the converted analog value to a servo driver (not shown) and drives a command signal and a drive speed to drive the servo motor 4 in the forward and reverse directions. Outputs

또한, (3)은 서보모터(4)의 전류궤환신호(Ix)가 궤환됨과 동시에 타코제너레이터(5)가 상기 서보모터(4)의 구동속도에 따라 검출한 속도궤환신호(Vox)가 궤환되면, 이 궤환신호를 토대로 서보모터(4)를 서보 제어하는 서보제어부이며, (7)은 엔코더(6)로 부터 입력된 상기 서보모터(4)의 회전량에 해당하는 펄스신호를 업 카운트 또는 다운 카운트하여 로보트의 현재위치를 상기 마이크로 프로세서(1)에 입력하는 업/다운 카운터이고, (8)은 로보트의 구동속도를 판단하도록 일정한 주기마다 상기 마이크로 프로세서(1)에 인터럽트를 걸어 주기 위한 타이머이다.Further, (3) indicates that the current feedback signal Ix of the servo motor 4 is fed back and the speed feedback signal Vox detected by the taco generator 5 according to the drive speed of the servo motor 4 is fed back. And a servo control unit for controlling the servo motor 4 based on the feedback signal, and (7) up counting or down counting a pulse signal corresponding to the rotation amount of the servo motor 4 input from the encoder 6. An up / down counter that counts and inputs the current position of the robot to the microprocessor 1, and (8) is a timer for interrupting the microprocessor 1 at regular intervals to determine the driving speed of the robot. .

이와 같이 구성되어 있는 본 발명에 의한 로보트의 위치제어방법은 타이머(8)가 일정주기마다 마이크로 프로세서(1)에 인터럽트를 걸어주면 상기 마이크로 프로세서(1)는 상기 타이머(8)에 의해 인터럽트가 걸릴때마다 직선 가감속에 따른 각축의 위치증분량을 계산하여 목표위치를 구라고, 엔코더(6)로부터의 펄스신호를 카운트한 업/다운 카운터(7)에서 입력된 신호를 로보트의 현재 위치를 판단하여 최종목표위치와 현재위치와의 차(差)를 구한 후 비례적분미분(PID) 제어를 행하여 디지털/아날로그 변환기(2)에 입력한다.In the robot position control method according to the present invention configured as described above, when the timer 8 interrupts the microprocessor 1 at regular intervals, the microprocessor 1 is interrupted by the timer 8. Each time the position increment amount of each axis according to the linear acceleration and deceleration is calculated, the target position is calculated, and the current position of the robot is determined based on the signal input from the up / down counter 7 which counted the pulse signal from the encoder 6. After calculating the difference between the final target position and the current position, the control of proportional integral derivative (PID) is performed and input to the digital-to-analog converter 2.

상기 디지털/아날로그 변환기(2)에 입력된 로보트 속도명령에 대한 디지털 값은 아날로그값으로 변환되어 서보제어부(3)에 입력되며, 이에따라 상기 서보제어부(3)에서는 서보모터(4)를 정방향 또는 역방향으로 구동하라는 명령신호와 구동속도신호를 출력하여, 각각의 신호에 따른 모터(4)의 구동에 행해지도록 함과 동시에 상기 서보모터(4)의 전류궤환신호(Ix)와 함께 타코제너레이터(5)로 부터의 속도궤환신호(Vox)가 궤환입력받아서 상술한 바와같은 방법으로 상기 서보모터(4)를 자동제어하게 된다.The digital value for the robot speed command input to the digital / analog converter 2 is converted into an analog value and input to the servo controller 3. Accordingly, the servo controller 3 forwards or reverses the servo motor 4. The taco generator 5 is outputted along with the current feedback signal Ix of the servo motor 4 while outputting a command signal to drive the drive signal and a drive speed signal to drive the motor 4 according to each signal. The speed feedback signal Vox from is received by the feedback input to automatically control the servomotor 4 in the same manner as described above.

다음에, 제7도를 설명한다.Next, FIG. 7 is explained.

제7도는 본 발명의 로보트 위치제어방법의 동작순서를 도시한 플로우챠트로써, 제7도에 있어서 S는 스텝(단계)을 의미한다.7 is a flowchart showing the operation procedure of the robot position control method of the present invention, in which S denotes a step (step).

본 발명은, 로보트의 위치를 제어하는 것이므로, 본 발명의 로보트의 위치를 제어하기 위한 기기가 동작되면 먼저, 스텝 S1에서는 각축의 위치편차를 구한다.Since the present invention is to control the position of the robot, when the device for controlling the position of the robot of the present invention is operated, first, in step S1, the position deviation of each axis is obtained.

즉, 위치편차는 로보트의 목표위치에서 로보트가 구동하는 현재의 위치값을 뺀 값이므로 4축(x, y, z, w)의 위치편차를 x축에 대해서는 Px, y축에 대해서는 Py, x축에 대해서는 Pz, w축에 대해서는 Pw와 규정하여 각각의 축에 대한 위치편차 Px, Py, Pz, Pw를 구하는 것이다.That is, since the position deviation is the target position of the robot minus the current position value of the robot, the position deviation of the 4 axes (x, y, z, w) is Px for the x axis, Py, x for the y axis. By specifying Pz for the axis and Pw for the w-axis, the positional deviations Px, Py, Pz, and Pw for each axis are obtained.

이어서, 스텝 S2에서는 최대위치편차(Pmax)를 구하는데 최대위치편차(Pmax)는 Pmax=MAX{Px, Py, Pz, Pw}로 구해진다.Subsequently, in step S2, the maximum positional deviation Pmax is obtained, and the maximum positional deviation Pmax is obtained by Pmax = MAX_Px, Py, Pz, Pw '.

이에 따라, 가속이 없는 경우에 매 샘플링 시간마다 이동하여야 할 펄스수(fi)의 계산이 가능하며, 예를들어 모터의 최고속도를 3,000rpm이라 하고, 엔코더(6)의 펄스수를 1,000펄스/회선, 타이머(8)에 의한 인터럽트 주기 즉, 샘플링 시간을 1msec로 가정하면, 상기 가속이 없는 경우에 매 샘플링 시간마다 이동하여야 할 펄스수(fi)는Accordingly, in the absence of acceleration, it is possible to calculate the number of pulses (fi) to be moved at every sampling time. For example, the maximum speed of the motor is 3,000 rpm, and the number of pulses of the encoder 6 is 1,000 pulses / If the interrupt cycle by the circuit and the timer 8, i.e., the sampling time is assumed to be 1 msec, the number of pulses to be moved every sampling time in the absence of the acceleration is

(여기서 P은 엔코더(6)의 펄스수, Ts는 샘플링 시간마다)의 공식에 의해Where P is the number of pulses of encoder 6 and Ts is the sampling time.

fi=3000rpm/60sec×1000펄스×1msecfi = 3000rpm / 60sec × 1000pulse × 1msec

=3000rpm/60sec×1000펄스×1×10-3sec= 3000rpm / 60sec × 1000pulse × 1 × 10 -3 sec

=50펄스(pulse)가 된다.= 50 pulses.

상기, 엔코더(6)의 펄스수와 샘플링 시간은 고정된 값이므로 결국 상기 가속이 없는 경우의 매 샘플링 시간(Ts)마다 이동하여야 할 펄스수(fi)값이 변화하려면 모터(4)의 최고속도를 변경하여야만이 가능하며, 물론 샘플링 시간과 엔코더(6)의 펄스수(P)에 의해서도 변화 가능하다.Since the number of pulses and the sampling time of the encoder 6 are fixed values, in order to change the value of the number of pulses to be moved every sampling time Ts without the acceleration, the maximum speed of the motor 4 is changed. Can only be changed, and of course can also be changed by the sampling time and the number of pulses P of the encoder 6.

상기 fi값이 구해졌으므로 스텝 S3에서는 가속이 없는 경우의 매 샘플링 시간마다 이동하여야 할 펄스수(fi)의 횟수(N)를 구하여, 이 횟수(N)는 상기 스텝 S2에서 구해진 최대위치 편차값(Pmax)을 상기 가속이 없는 경우의 매 샘플링 시간마다 이동하여야 할 펄스수(fi)로 나눔으로써 구해진다.Since the fi value is obtained, in step S3, the number N of pulses fi to be moved at every sampling time in the absence of acceleration is obtained, and this number N is the maximum position deviation value ( Pmax) is obtained by dividing by the number of pulses (fi) to be moved at every sampling time in the absence of the acceleration.

즉, 횟수에 의해 구해지는 것이다.That is, the number of times Obtained by

이어서, 스텝 S4에서는 가감속이 없는 경우의 매 샘플링 시간마다의 각축의 이동 펄스(fix, fiy, fiz, fiw)를 구하며, 여기서 상기 스텝 S2에서 구해진 최대위치편차(Pmax)와 x축의 위치편차(Px)가 동일하다고 가정하면(Pmax=Px), 각각의 축에 대한 가감속이 없는 경우 매 샘플링 시간마다의 이동펄스는 x축에 대한 fix=fi, y축에 대한 fiy=Py/N, z축에 대한 fiz=Pz/N, w축에 대한 fiw=Pw/N이 된다.Subsequently, in step S4, the movement pulses (fix, fiy, fiz, fiw) of each axis for each sampling time in the absence of acceleration and deceleration are obtained, where the maximum position deviation Pmax obtained in step S2 and the position deviation Px of the x axis are obtained. Assuming that P is equal to (Pmax = Px), if there is no acceleration or deceleration for each axis, the moving pulse for every sampling time is fixed to fix = fi for the x-axis, fiy = Py / N for the y-axis, and z-axis. Fiz = Pz / N for the w-axis and fiw = Pw / N for the w-axis.

구체적으로 예를들어 Px=4321펄스Specifically, for example, Px = 4321 pulses

Py=3214펄스Py = 3214 pulses

Pz=2413펄스Pz = 2413 pulse

Pw=1234펄스 인 경우When Pw = 1234 pulse

가속이 없는 경우의 매 샘플링 시간마다의 이동퍼스(fi)이 횟수(N)는 N=4321/50=86+21=Qx+Rx가 되어 N=86이 된다.The number of times N is N = 4321/50 = 86 + 21 = Qx + Rx, and the number N of moving compasses for every sampling time in the absence of acceleration becomes N = 86.

따라서, therefore,

가 된다.Becomes

즉, 86번째 까지 가속이 없는 경우에, x, y, z, w축이 매 샘플링 시간마다 이동하여야 할 각각의 펄스수(fix, fiy, fiz, fiw)는 각각 fix=50, fiy=37, fiz=28, fiw=14이며, 87번째에는 각각 fix=21, fiy=32, fiz=5, fiw=30이고, 88번째 부터의 x, y, z, w축이 이동하여야 할 펄스수(fix, fiy, fiz, fix)는 영(Zero)이다.That is, in the case where there is no acceleration up to the 86th time, the number of pulses (fix, fiy, fiz, fiw) that the x, y, z, and w axes should move at every sampling time is fixed = 50, fiy = 37, fiz = 28, fiw = 14, and the 87th fix = 21, fiy = 32, fiz = 5, fiw = 30, and the number of pulses to move the x, y, z, and w axes from the 88th (fix , fiy, fiz, fix) are zero.

이에 따라 스텝 S6에서는 다음의 식을 이용하여 각축의 위치증분량을 구한다.Therefore, in step S6, the positional increment of each axis | shaft is calculated | required using the following formula.

즉, x축의 위치증분량 Sx(k)=fix(k)-fix(k-n)+Sx(k-1)That is, the position increment of the x axis Sx (k) = fix (k) -fix (k-n) + Sx (k-1)

fox(k)=Sx(k)/nfox (k) = Sx (k) / n

y축의 위치증분량 Sy(k)=fiy(k)-fiy(k-n)+Sy(k-1)Position increment of y-axis Sy (k) = fiy (k) -fiy (k-n) + Sy (k-1)

foy(k)=Sy(k)/nfoy (k) = Sy (k) / n

z축의 위치증분량 Sz(k)=fiz(k)-fiz(k-n)+Sz(k-1)Position increment of z-axis Sz (k) = fiz (k) -fiz (k-n) + Sz (k-1)

foz(k)=Sz(k)/nfoz (k) = Sz (k) / n

w축의 위치증분량 Sw(k)=fiw(k)-fiw(k-n)+Sw(k-1)Position increment of w-axis Sw (k) = fiw (k) -fiw (k-n) + Sw (k-1)

fow(k)=Sw(k)/nfow (k) = Sw (k) / n

(fo(k) : 직선가감속시 매 샘플링 시간마다의 위치증분량)에 의해 각축의 위치증분량을 구하는 것이다.The position increment of each axis is calculated by (fo (k): position increment for every sampling time during linear acceleration and deceleration).

여기서, k=0, 1, 2, 3…이므로 스텝 S5에서 상기 각축의 위치증분량을 구하는 공식의 K값에 0을 대입하면, Sx(0)=Sy(0)=Sz(0)=Sw(0)=0이고, fix(k), fiy(k), fiz(k), fiw(k)는 k값이 K≤0인 경우 전부 영(zero)이다.Where k = 0, 1, 2, 3... Therefore, if 0 is substituted into the K value of the formula for calculating the position increment of each axis in step S5, Sx (0) = Sy (0) = Sz (0) = Sw (0) = 0, and fix (k), fiy (k), fiz (k) and fiw (k) are all zero when the k value is K ≦ 0.

또한, 상수 n은 가감속 시정수를 나타내는 상수로써, 예를들어 상수 n=40이고 샘플링주기(Ts)가 Ts=1msec인 경우 직선가감속시 가감속 시정수는 40msec(n×샘플링주기(Ts)=40×1msec)로 결정되며 모터에 부착된 관절의 특성에 따라 상기 n값을 선택하면 가감속 시정수의 변환이 가능하다.In addition, the constant n is a constant representing the acceleration / deceleration time constant. For example, when the constant n = 40 and the sampling period Ts is 1 msec, the acceleration and deceleration time constant is 40 msec (n × sampling period Ts). = 40 x 1 msec), and if the n value is selected according to the characteristics of the joint attached to the motor, the acceleration / deceleration time constant can be converted.

상기 각축의 위치증분량을 구하면, 직선가감속 형태의 속도곡선이 얻어진다.When the positional increment of each axis is obtained, a speed curve in the form of linear acceleration and deceleration is obtained.

또한, 로보트의 정확한 위치 경로를 계산할 수 있도록 S7에서는 상기 각축의 위치증분량으로 얻어진 소숫점 이하의 값을 보정하며, 상기 소숫점 이하값 보정은 다음과 같이 처리한다.Further, in order to calculate the exact position path of the robot, in S7, a value below the decimal point obtained by the position increment of each axis is corrected, and the correction below the decimal point is processed as follows.

즉, Sx(k), Sy(k), Sz(k), Sw(k)를 S(k)로 대표해서 나타내고, 임의의 K시점에서 S(k)/n의 나머지의 누적값을라 할때 만일이면,That is, Sx (k), Sy (k), Sz (k), and Sw (k) are represented by S (k), and the remaining cumulative values of S (k) / n at arbitrary K time points are represented. If you say If,

fo(k) ← fo(k)+1fo (k) ← fo (k) +1

이고, 그렇지 않으면, Otherwise

fo(k) ← fo(k)fo (k) ← fo (k)

이다.to be.

여기서 fo(k)는 각축의 fox(k), foy(k), foz(k), fow(k)를 대표해서 나타낸 것이다.Where fo (k) represents fox (k), foy (k), foz (k), and fow (k) on each axis.

상기와 같은 방법으로 각축에 대한 소숫점 이하의 값에 대해 보정을 행한 후 스텝 S6에서 구해진 매 샘플링 시간마다의 각축(x, y, z, w)의 위치증분량을 이용하여 스텝 S8에서 매 샘플링 시간마다의 각축에 대한 임의의 K시점에서의 목표위치를 구한다.After correcting the values below the decimal point for each axis in the same manner as described above, each sampling time is determined in step S8 using the position increment of each axis (x, y, z, w) for each sampling time obtained in step S6. The target position at any K time point for each axis is obtained.

상기 각축에 대한 K시점에서의 목표위치(제6도)는The target position (Fig. 6) at the K point with respect to each axis is

에 의해 구해진다.Obtained by

상기 스텝 S8에서 매 샘플링 시간마다의 각축에 대한 K시점에서의 목표위치가 구해졌으므로, 스텝 S9에서는 로보트의 K시점에서의 위치편차를 다음식에 의해 구한다. 나아가서Since the target position at the time of K with respect to each axis in every sampling time is calculated | required in said step S8, in step S9, the positional deviation in the K time of a robot is calculated | required by the following formula. Further

x축에 대한 위치편차=Px(k)-Cx(k)Position deviation with respect to the x axis = Px (k) -Cx (k)

y축에 대한 위치편차=Py(k)-Cy(k)Position deviation with respect to y axis = Py (k) -Cy (k)

z축에 대한 위치편차=Pz(k)-Cz(k)Position deviation with respect to z-axis = Pz (k) -Cz (k)

w축에 대한 위치편차=Pw(k)-Cw(k)Position deviation with respect to w axis = Pw (k) -Cw (k)

(여기서 Cx(k), Cy(k), Cz(k) 및 Cw(k)는 임의의 K시점에서 각축마다의 업/다운 카운터(7)에서 읽은 로보트의 현재 위치값을 의미한다.)(Cx (k), Cy (k), Cz (k) and Cw (k) are the current position values of the robot read by the up / down counter 7 for each axis at any K point.)

상기 스텝 S9에서 K시점에서의 각축의 위치편차가 구해지면, 스텝 S10에서는 상기 스텝 S9에서 구해진 K시점에서의 각축의 위치편차에 비례적분미분(PID : Proportional Integral differential) 제어를 행하며, 다음과 같이 계산한다.When the positional deviation of each axis at time K is found in step S9, in step S10, a proportional integral differential (PID) control is performed on the positional deviation of each axis at time K obtained in step S9. Calculate

여기서, Dxout, Dyout, Dzout, Dwout은 각축의 디지털/아날로그 변환기(2)로 입력되는 값이고, Kpx, Kpy, Kpz, Kpw는 각축의 비례(P)개인이며 KIx, KIy, KIw는 각축의 적분(I)게인이다. 또한 Kdx, Kdy, Kdz, Kdw는 각축의 미분(D)게인이다.Here, Dxout, Dyout, Dzout, and Dwout are values inputted to the digital-to-analog converters 2 on each axis, and Kpx, Kpy, Kpz, and Kpw are proportional (P) individuals of each axis, and KIx, KIy, and KIw are integrals of each axis. (I) Gain. Kdx, Kdy, Kdz, and Kdw are derivative (D) gains of each axis.

상기 비례적분 미분된 상기의 Dxout(k), Dyout(k), Dzout(k), Dwout(k)을 디지털/아날로그 변환기(2)에 입력하고 상기 디지털/아날로그 변환기(2)는 이 값을 아날로그 값으로 변환시킨 후 값이 서브제어부(3)에 입력하여 모터(4)를 구동토록 하는 것이다.The proportional integral derivatives of Dxout (k), Dyout (k), Dzout (k), and Dwout (k) are input to the digital / analog converter 2, and the digital / analog converter 2 converts this value to analog. After converting to a value, the value is inputted to the sub-control unit 3 to drive the motor 4.

이어서, 스텝 S11에서는 위치편차를 판단하기 위한 싯점을 일정시간이 경과한 싯점인 K+1값을 설정하여 K에 대입한 후 스텝 S12에서는 나아가 K의 값이 가감속이 없을 경우 매 샘플링 시간마다의 이동펄스(fi)의 횟수(N)와 동일한가의 여부를 판단한다. 이 판단결과 동일한 경우(Yes일 경우) 스텝 S13에서는 가속이 없는 경우의 매 샘플링 시간마다의 이동펄스(fi)의 횟수(N)를 구함으로써 얻어진 각축의 Rx, Ry, Rz, Rw값을 각축마다의 이동펄스(fix, fiy, fiz, fiw)에 대입하여 구하고, 스텝 S14에서는 K의 값이 매 샘플링 시간마다의 이동펄스(fi)의 횟수(N)보다 큰가를 판단한다. 이 판단결과 클 경우(Yes일 경우)에는 스텝 S15로 나아가서 각축마다의 이동펄스(fix, fiy, fiz, fiw)에 0을 대입하여 계산하고 스텝 S16에서는 그 위치가 최종목표위치인가를 판단한다.Subsequently, in step S11, the position point for judging the positional deviation is set to K + 1, which is the point in which the predetermined time has elapsed, and substituted into K. It is determined whether or not the number N of pulses fi is the same. As a result of this determination (Yes), in step S13, the values of Rx, Ry, Rz, and Rw of each axis obtained by obtaining the number N of the moving pulses fi for every sampling time when there is no acceleration are determined for each axis. It is determined by substituting the moving pulses (fix, fiy, fiz, fiw) of?, And in step S14, it is determined whether the value of K is greater than the number N of the moving pulses fi for every sampling time. If the determination result is large (Yes), the process proceeds to step S15, where 0 is substituted by the movement pulses (fix, fiy, fiz, fiw) for each axis. In step S16, it is determined whether the position is the final target position.

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

한편, 상기 스텝 S12에서 K의 값이 매 샘플링 시간마다의 이동펄스(fi)의 횟수(N)와 동일하지 않을 경우(KN, No일 경우)에는 직접 스텝 S14로 나아가고 상기 스텝 S14에서 K의 값이 매 샘플링 시간마다의 이동펄스(fi)의 횟수(N)보다 크지 않을 경우(No일 경우)에는 직접 스텝 S16으로 나아가서 로보트의 최종목표위치인가를 판단하고, 그 판단결과에 따라 차후 동작을 실행한다.On the other hand, when the value of K in step S12 is not equal to the number N of the moving pulses fi for every sampling time (K) N, No), go directly to step S14, and if the value of K in step S14 is not greater than the number N of moving pulses fi for every sampling time (No), go directly to step S16. It is determined whether the robot is in the final target position, and subsequent operation is executed according to the determination result.

이와 같이 본 발명의 로보트의 위치제어방법에 의하면, 직선가감속에 의해 각축을 구동하고, 이산시간 상대방정식에 의해 매 샘플링 시간마다의 목표위치를 연산하므로 위치경로의 정밀도가 양호해지며 진동이 없는 고속제어가 가능할 뿐만아니라, 각축이 동시에 출발하여 동시에 종료되므로 축의 운동간섭에 의해 발생되는 진동을 감소시킬 수 있는 뛰어난 효과가 있다.Thus, according to the position control method of the robot of the present invention, each axis is driven by linear acceleration and deceleration, and the target position for every sampling time is calculated by discrete time counterpart formula, so that the accuracy of the position path is good and the vibration is high speed. Not only can control be performed, but each axis starts and ends at the same time, so there is an excellent effect of reducing the vibration caused by the motion interference of the axis.

Claims (1)

로보트 이동용 서보모터의 구동위치를 토대로 로보트의 현재위치 및 각축의 위치편차, 최대위치편차를 구하는 스텝과, 서보모터의 가감속이 없는 경우에 매 샘플링 시간마다 이동해야 할 펄스수를 계산하고, 이 펄스수의 횟수를 구하는 스텝과, 가감속이 없는 경우의 매 샘플링 시간마다의 각축의 이동펄스를 구하는 스텝과, 각축의 위치증분량을 구하는 스텝과, 일정싯점에서의 매 샘플링 시간마다의 각축의 목표위치를 구하여 각축의 위치편차를 구하고 이를 비례적분미분 제어하는 스텝과, 상기 비례적분미분 제어값을 토대로 서보모터를 구동시키면서 일정시간이 경과한 상태에서 가감속이 없을 경우의 매 샘플링 시간마다의 이동펄스의 횟수와 동일한지 여부에 따라 각축마다의 이동펄스를 구하는 스텝과, 상기 일정싯점의 값이 횟수보다 큰지의 여부에 따라 각축의 이동펄스를 클리어시키거나, 최종목표위치를 판단하는 스텝으로 구성된 로보트 제어방법에 있어서, 상기 각축의 위치증분량은 직선함수 가감속 형태의 속도곡선이 얻어지도록Steps for calculating the current position of the robot, the position deviation and maximum position deviation of the robot based on the driving position of the robot moving servomotor, and the number of pulses to be moved at every sampling time in the absence of acceleration and deceleration of the servo motor are calculated. A step for obtaining the number of times, a step for obtaining a moving pulse of each axis for every sampling time in the absence of acceleration and deceleration, a step for calculating the position increment amount for each axis, and a target position for each axis for each sampling time at a fixed point To obtain the positional deviation of each axis and control the proportional integral derivative control, and the movement pulse of each sampling time when there is no acceleration and deceleration in the state where a certain time has elapsed while driving the servo motor based on the proportional integral differential control value. Obtaining a moving pulse for each axis depending on whether the number is equal to the number of times; In the robot control method comprising the steps of clearing the movement pulse of each axis or determining the final target position according to whether or not, the position increment amount of each axis is such that a speed curve in the form of a linear function acceleration / deceleration is obtained. S(k)=fi(k)-fi(k-n)+S(k-1)S (k) = fi (k) -fi (k-n) + S (k-1) fo(k)=S(k)/nfo (k) = S (k) / n (여기서 S(k) : 매개변수, fo(k) : 직선가감속시 매 샘플링 시간마다의 위치증분량, fi : 가감속이 없을 경우의 매 샘플링 시간마다의 각축의 이동펄스, n : 가감속시정수)에 의해 구하는 것을 특징으로 하는 로보트의 위치제어방법.(Where S (k): parameter, fo (k): position increment for every sampling time when linear acceleration and deceleration, fi: movement pulse of each axis for every sampling time without acceleration and deceleration, n: acceleration and deceleration time constant Robot position control method characterized in that obtained by.
KR1019900018730A 1990-11-19 1990-11-19 Position control method of robot KR930007781B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019900018730A KR930007781B1 (en) 1990-11-19 1990-11-19 Position control method of robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019900018730A KR930007781B1 (en) 1990-11-19 1990-11-19 Position control method of robot

Publications (2)

Publication Number Publication Date
KR920009521A KR920009521A (en) 1992-06-25
KR930007781B1 true KR930007781B1 (en) 1993-08-19

Family

ID=19306198

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900018730A KR930007781B1 (en) 1990-11-19 1990-11-19 Position control method of robot

Country Status (1)

Country Link
KR (1) KR930007781B1 (en)

Also Published As

Publication number Publication date
KR920009521A (en) 1992-06-25

Similar Documents

Publication Publication Date Title
EP0423357B1 (en) Device for controlling servo motor
KR930007775B1 (en) Linear interpolating method of robot
JP3129622B2 (en) Quadrant projection correction method in full closed loop system
EP1505463B1 (en) Position control device and position control method for machine tools
US5986422A (en) Control mode changing over method for servo control system
EP0292574B1 (en) Numerical controller
JP2875646B2 (en) Backlash acceleration correction device
KR930011004B1 (en) Position control method of robot
KR930007781B1 (en) Position control method of robot
JPH08211943A (en) Backlash correcting method using disturbance observer
KR930007780B1 (en) Position control method of robot
KR930007779B1 (en) Position control method of robot
KR970005566B1 (en) Method of controlling backlash acceleration
EP0072870A1 (en) Backlash compensation system for dual position-feedback control systems
JPS61190604A (en) Position control method for feedback control
EP0556412B1 (en) Method of controlling feed-forward of servo motor
EP0374255A1 (en) Method of controlling servo motor
JPH03110603A (en) Backlash correction control system for servo motor
KR0160699B1 (en) Method for circular error compensation of robot
JPS62229412A (en) Positioning device
JP2843378B2 (en) Robot control method and device
JP2724054B2 (en) Positioning control device
JP2564326B2 (en) Digital position servo system
KR930007776B1 (en) Linear interpolating method of robot
KR940002207B1 (en) Linear compensating method 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: 7

LAPS Lapse due to unpaid annual fee