KR930007780B1 - Position control method of robot - Google Patents

Position control method of robot Download PDF

Info

Publication number
KR930007780B1
KR930007780B1 KR1019900018729A KR900018729A KR930007780B1 KR 930007780 B1 KR930007780 B1 KR 930007780B1 KR 1019900018729 A KR1019900018729 A KR 1019900018729A KR 900018729 A KR900018729 A KR 900018729A KR 930007780 B1 KR930007780 B1 KR 930007780B1
Authority
KR
South Korea
Prior art keywords
axis
deceleration
acceleration
robot
sampling time
Prior art date
Application number
KR1019900018729A
Other languages
Korean (ko)
Other versions
KR920009520A (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 KR1019900018729A priority Critical patent/KR930007780B1/en
Publication of KR920009520A publication Critical patent/KR920009520A/en
Application granted granted Critical
Publication of KR930007780B1 publication Critical patent/KR930007780B1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Control Of Position Or Direction (AREA)
  • Feedback Control In General (AREA)
  • Numerical Control (AREA)

Abstract

The method controls position of a robot arm based on differential state equation and S-shape acceleration and deceleration profile so that chattering of a robot arm is reduced and high speed and precise position control is obtained. The method includes the steps of: (A) calculating the maximum number of position deviation of each axis; (B) calculating the distance of each axis to be moved during sampling intervals when no accerleration and deceleration motion occurs; (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 (PID).

Description

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

제1도는 종래의 로보트의 위치제어방법에 있어서의 직선가감속 방식을 도시한 그래프.1 is a graph showing a linear acceleration / deceleration method in a conventional robot position control method.

제2도는 종래의 로보트의 위치제어방법에 있어서의 지수함수 가감속 방식을 도시한 그래프.2 is a graph showing an exponential function acceleration / deceleration method in a 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 waveform diagram of a straight line and an exponential acceleration and deceleration used in the present invention.

제7도는 본 발명의 로보트의 위치제어방법의 동작순서를 도시한 플로우챠트.7 is a flowchart showing an operation procedure of the robot's position control method of the present invention.

제8도는 직선 및 지수함수 가감속시 목표위치를 도시한 그래프.8 is a graph showing target positions during acceleration and deceleration of straight lines and exponential functions.

* 도면의 주요부분에 대한 부호의 설명* 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 equations to reduce sampling time and 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도에 도시한 바와같은 직선 가감속 방식이 있었으나, 이방식은 속도(v) 대 시간(t)의 관계에 있어서, 0축을 중심으로 하여 A, B, C, D점(로보트구동개시점, 종료점 및 방향전환점)에서 속도가 불연속적으로 되었기 때문에 강성이 없는 로보트 등에 진동을 발생시키는 원인이 되어 로보트의 위치를 결정하는 시간이 길어진다는 단점이 있었다.That is, there was a linear acceleration / deceleration method as shown in FIG. 1, but this method has A, B, C, and D points (robot driving dog) centered on the 0 axis in the relationship between speed (v) and time (t). Since the speed is discontinuous at the starting point, the end point, and the turning point), it causes vibrations in the robot without rigidity, which leads to a long time for determining the position of the robot.

또한, 제2도에 도시한 바와같은 지수함수 가감속 방식은, 가속시(E)의 속도(V(t))는 V(t)=Vmax{1-exp(t/τ}(τ ; 지수함수의 시정수)이고, 매 샘플링 시간(Ts)마다의 모터의 속도(V(Ts)는 V(Ts)=Vmax{1-exp(Ts/τ}가 되어, 이때의 위치(P(Ts))는In addition, in the exponential function acceleration / deceleration method as shown in FIG. 2, the speed V (t) at the time of acceleration E is V (t) = Vmax {1-exp (t / τ} (τ; exponent). Time constant of the function), and the motor speed V (Ts) for each sampling time Ts becomes V (Ts) = Vmax {1-exp (Ts / τ}, and the position P (Ts) )

P(Ts)=V(Ts)·Ts=Vmax{1-exp(Ts/τ}·Ts …………………… (1)P (Ts) = V (Ts) · Ts = Vmax {1-exp (Ts / τ) · Ts …………………… (1)

가 되며, 감속시(F)의 모터의 속도(V(t))는 V(t)=Vmax·exp(-t/τ)가 되고, 매 샘플링 시간마다의 모터의 속도(V(Ts))는The motor speed V (t) at the time of deceleration F becomes V (t) = Vmax · exp (-t / τ), and the motor speed V (Ts) for each sampling time. Is

V(Ts)=Vmax·exp(-Ts=Vmax·exp(-Ts/τ)가 되어 이때의 위치(P(Ts))는V (Ts) = Vmax · exp (-Ts = Vmax · exp (-Ts / τ), and the position (P (Ts)) at this time is

P(Ts)=V(Ts)·Ts=Vmax·exp(-Ts/τ)Ts …………………… (2)P (Ts) = V (Ts) · Ts = Vmax · exp (−Ts /?) Ts... … … … … … … … (2)

가 되는 관계로 마이크로프로세서에서 매 샘플링 시간마다 가속 또는 감속을 판별하여 상기 (1) 또는 (2)식을 이용하여 각축마다 계산을 해야하기 때문에 결과적으로 샘플링 시간이 길어지게 되고, 위치경로의 정밀도가 떨어지며 위치제어시스템이 불안정해진다는 문제점이 있었다.Since the acceleration or deceleration is determined at every sampling time by the microprocessor and the calculation is performed for each axis by using the equation (1) or (2), the sampling time becomes long and the position path accuracy is increased. There was a problem that the position control system became unstable.

또한, 수평 다관절 로보트와 같이 복수개(4축)의 축을 갖는 경우 각축이 동시에 출발하고 동시에 구동 종료되게 하여 축의 운동간섭에 의해 발생되는 진동을 방지하기 위해서는 제3도에 도시한 바와같은 각축의 이동량(Px(K), Py(K))축을 이용하여 각축의 속도분포를 결정하여야 하는데 상기 속도분포 결정에는 상당한 어려움이 수반되었다.In addition, in the case of having a plurality of (four axes) axes, such as a horizontal articulated robot, the movement amount of each axis as shown in FIG. The velocity distribution of each axis should be determined using the (Px (K), Py (K)) axes, which involved considerable difficulty.

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

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

상기 목적을 달성하기 위하여 본 발명에 의한 로보트의 위치제어방법은, 로보트 이동용 서보모터의 구동 전류를 토대로 로보트의 현재위치 및 각축의 위치편차, 최대위치 편차를 구하는 스텝과, 서보모터의 가속이 없는 경우의 매 샘플링 시간마다 이동해야 할 펄스 수를 계산하고, 이 펄스 수의 횟수를 구하는 스텝과, 가감속이 없는 경우의 매 샘플링 시간마다의 각축의 이동펄스를 구하는 스텝과, 각축의 위치증분량을 구하는 스텝과, 일정싯점에서의 매 샘플링 시간마다의 각축의 목표위치를 구하여 각축의 위치편차를 구하고 이를 비례적분미분 제어하는 스텝과, 상기 비례적미분 제어값을 토대로 서보모터를 구동시키면서 일정시간이 경과한 상태에서 가감속이 없을 경우의 매 샘플링 시간마다의 이동펄스의 횟수와 동일한지 여부에 따라 각 축 마다의 이동펄스를 구하는 스텝과, 상기 일정싯점의 값이 횟수보다 큰지의 여부에 따라 각축의 이동펄스를 클리어시키거나 최종목표위치를 판단하는 스텝으로 구성된 로보트 제어방법에 있어서, 상기 각축의 위치증분량은 직선 및 지수함수 가감속형태의 속도곡선이 얻어지도록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. The number of pulses to be moved at every sampling time in the case of calculating the number of pulses, the step of calculating the pulses of movement of each axis at every sampling time in the absence of acceleration and deceleration, and the position increment of each axis. A step of obtaining the step, the target position of each axis at every sampling time at a fixed point, and calculating the positional deviation of each axis and controlling the proportional integral derivative, and driving the servo motor based on the proportional differential control value Each axis depends on whether it is equal to the number of moving pulses for every sampling time when there is no acceleration or deceleration in the elapsed state. A robot control method comprising the steps of: obtaining a plurality of moving pulses and a step of clearing the moving pulses of each axis or determining the final target position according to whether the value of the fixed point is greater than the number of times. The quantity is calculated so that the speed curve in the form of straight line and exponential function

fo(k)=fo(k-1)+[fi(k)-fo(k-1]/Afo (k) = fo (k-1) + [fi (k) -fo (k-1) / A

S(k)=fo(k)-fo(K-n)+s(k-1)S (k) = fo (k) -fo (K-n) + s (k-1)

f'o(K)=s(k)/nf'o (K) = s (k) / n

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

이하, 본 발명의 일실시예를 도면을 참조하여 상세히 설명한다.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 position control system diagram 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도에 있어서, 사선부분이 로보트의 각축(s, y, z, w)이 매 샘플링 시간(Ts)마다 이동하여야 할 펄스수를 도시한 것이며, Vxmax, Vymax, Vzmax, Vwmax는 각축의 모터의 최고속도이다.In FIG. 4, the diagonal line shows the number of pulses that each axis (s, 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 for outputting a speed command of the servomotor 4, and reference numeral 2 denotes a digital for converting a speed command of a digital value output from the microprocessor 1 into an analog value. As a digital / analog converter, the converted analog value is inputted to a servo driver (not shown) to output a command signal and a drive speed signal for driving the servomotor 4 in the forward and reverse directions.

또한, (3)은 서보모터(4)의 전류궤한신호(Ix)가 궤환됨과 동시에 타코제너레이터(5)가 상기 서보모터(4)의 구동속도에 따라 검출한 속도궤환속도(Vox)가 궤환되면, 이 궤환신호를 토대로 서보모터(4)를 서보제어하는 서보제어부이며, (7)은 엔코더(6)로 부터 입력된 상기 서보모터(4)의 회전량에 해당하는 펄스신호를 업 카운트 또는 다운 카운트하여 로보트의 현재위치를 상기 마이크로프로세서(1)에 입력하는 업/다운 카운터이고, (8)은 로보트 구동속도를 판단하도록 일정한 주기마다 상기 마이크로프로세서(1)에 인터럽트를 주기 위한 타이머이다.In addition, (3) when the current limit signal Ix of the servo motor 4 is fed back and the speed feedback speed 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 robot driving speed.

이와같이 구성되어 있는 본 발명에 의한 로보트의 위치제어방법은, 타이머(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 every predetermined period, the microprocessor 1 is interrupted by the timer 8. Each time, the target position is calculated by calculating the position increment of each axis according to the linear and exponential function acceleration and deceleration, and the current of the robot is based on the signal input from the up / down counter (7) which counted the pulse signal from the encoder (6). After determining the position, the difference between the final target position and the current position is obtained, and then the proportional integral derivative control 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-to-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. Outputs a command signal and a drive speed signal to drive the motor to drive the motor 4 according to each signal, and at the same time the tacho generator 5 together with the current limiting speed Ix of the servo motor 4. The servo motor 4 is automatically controlled in the same manner as described above by receiving the feedback signal of the speed feedback signal Vox from

다음에 제7도를 설명한다.Next, Fig. 7 will be described.

제7도는 본 발명의 로보트의 위치제어방법의 동작순서를 도시한 플로우챠트로써, 제7도에 있어서 S는 스텝(단계)을 의미한다.FIG. 7 is a flowchart showing the operation procedure of the robot's position control method of the present invention. In FIG. 7, S means a 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, z축에 대해서는 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 driven by the robot, the position deviation of 4 axes (x, y, z, w) is Px for the x axis, Py, z for the y axis. PZ for the axis and Pw for the W axis are defined, and 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 pulse number of the encoder 6 is 1,000 pulses / revolution. It is assumed that the interrupt period by the timer 8, that is, the sampling time is 1 msec, and in the absence of the acceleration, the number of pulses to be moved every sampling time is

(여기서 p는 엔코더(6)의 펄스 수, T는 시간이다)의 공식에 의해(Where p is the number of pulses of encoder 6, T is time)

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

-3-3

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

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

상기, 엔코더(6)의 펄스 수와 샘플링 시간은 고정된 값이므로 결국 상기 가속이 없는 경우의 매 샘플링 시간마다 이동하여야 할 펄스 수(fi)값이 변화하려면 모터(4)의 최고속도를 변경하여야만이 가능하며, 물론 샘플링 시간과 엔코더(6)의 펄스 수(P)에 의해서도 변화 가능하다.Since the number of pulses and the sampling time of the encoder 6 are fixed values, the maximum speed of the motor 4 must be changed in order to change the number of pulses (fi) to be moved at every sampling time in the absence of the acceleration. This can be done, of course, by the sampling time and the pulse number 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 moving pulses (fix, fiy fiz, fiw) of each axis for each sampling time in the case of no acceleration / 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 movement 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 펄스 Py=3214 펄스 Pz=2413 펄스 Pw=1234 펄스인 경우 가속이 없는 경우에 매 샘플링 시간마다의 이동펄스(fi)의 횟수(N)는 N=4321/50=86+21=Qx+Rx가 되어 N=86이 된다.Specifically, for example, in the case of Px = 4321 pulse Py = 3214 pulse Pz = 2413 pulse Pw = 1234 pulse, when there is no acceleration, the number N of moving pulses fi for every sampling time is N = 4321/50 = 86 + 21 = Qx + Rx, where 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, fiw)는 영(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, the 87th fix = 21, fiy = 32, fiz = 5, fiw = 30, and the number of pulses to which the x, y, z and w axes from the 88th should move , fiy, fiz, fiw) are zero.

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

x축의 위치증분량 fox(k)=fox(k-1)+[fix(k)-fox(k-1)]/APosition increment of the x-axis fox (k) = fox (k-1) + [fix (k) -fox (k-1)] / A

Sx(k)=fox(k)-fox(k-n)+Sx(k-1)Sx (k) = fox (k) -fox (k-n) + Sx (k-1)

f'ox(k)=Sx(k)/nf'ox (k) = Sx (k) / n

y축의 위치증분량 fox(k)=foy(k-1)+[fiy(k)-foy(k-1)]/APosition increment of y-axis fox (k) = foy (k-1) + [fiy (k) -foy (k-1)] / A

Sy(k)=foy(k)-foy(k-n)+Sy(k-1)Sy (k) = foy (k) -foy (k-n) + Sy (k-1)

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

z축의 위치증분량 foz(k)=foz(k-1)+[fiz(k)-foz(k-1)]/APosition increment of the z axis foz (k) = foz (k-1) + [fiz (k) -foz (k-1)] / A

Sz(k)=foz(k)-foz(k-n)+Sz(k-1)Sz (k) = foz (k) -foz (k-n) + Sz (k-1)

f'oz(k)=Sz(k)/nf'oz (k) = Sz (k) / n

w축의 위치증분량 fow(k)=fow(k-1)+[fiw(k)-fow(k-1)]/APosition increment of the w-axis fow (k) = fow (k-1) + [fiw (k) -fow (k-1)] / A

Sw(k)=fow(k)-fow(k-n)+Sw(k-1)Sw (k) = fow (k) -fow (k-n) + Sw (k-1)

f'ow(k)=Sw(k)/nf'ow (k) = Sw (k) / n

(S(k) : 식을 계산하기 위한 매개변수 .fo(k) : 지수함수 가감속시 매 샘플링 시간마다의 위치중분량 .fo'(k) : 지수함수 및 직선 가감속시 매 샘플링 시간마다의 위치증분량)에 의해 각축의 위치 증분량을 구하는 것이다.(S (k): Parameter for calculating the equation .fo (k): Position weight per sampling time during exponential acceleration and deceleration .fo '(k): Every sampling time during exponential function and linear acceleration and deceleration The position increment of each axis is calculated by the position increment of.

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

상기 각축의 위치중분량을 구하는데 있어서의 A는 지수함수 가감속시의 시정수이며, n은 직선 가감속시의 시정수이다. 따라서, 모터에 부착된 관절의 특성에 따라 직선 및 지수함수 가감속시의 시정수는 상기 A와 n값을 적절히 선택함으로써 결정된다. 즉 A와 n값에 의해 가감속 곡선을 변화시킬 수 있다.A is a time constant at the time of exponential function acceleration / deceleration, and n is a time constant at the time of linear acceleration / deceleration in determining the amount of position in each axis. Therefore, the time constant at the time of linear and exponential function acceleration / deceleration is determined by appropriately selecting the A and n values according to the characteristics of the joint attached to the motor. That is, the acceleration / deceleration curve can be changed by the values A and n.

상기 각축의 위치증분량을 구하면, 제6도에 도시한 바와같은 직선 및 지수함수 가감속 형태의 속도곡선이 얻어진다.When the positional increments of the respective axes are obtained, a speed curve in the form of a straight line and an exponential function acceleration / deceleration as shown in Fig. 6 is obtained.

또한, 로보트의 정확한 위치경로를 계산할수 있도록 스텝 S7에서는 상기 각축의 위치증분량으로 얻어진 소숫점 이하의 값을 보정하며, 상기 소숫점 이하값 보정은 다음과 같이 처리한다.Further, in order to be able to calculate the accurate position path of the robot, in step 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.

즉, fox(k-1),foy(k-1),foz(k-2),fow(k-1)를 fo(k-1)로 대표해서 나타내고, fix(k),fiz(k), fiy(k) fiw(k)를 fi(k)로 대표해서 나타내면 임의의 k 시점에서,That is, fox (k-1), foy (k-1), foz (k-2) and fow (k-1) are represented by fo (k-1), and fix (k) and fiz (k) If fiy (k) fiw (k) is represented by fi (k), at any k time point,

[fi(k)-fo(k-1)]/A의 나머지 누적값(R(i)이 영(zero)보다 클때 즉,The remaining cumulative value of [fi (k) -fo (k-1)] / A ( When R (i) is greater than zero,

[{fi(k)-fo(k-1)}/A>0 그리고R[{fi(i)-fo(i-1)}/A]>A[{Fi (k) -fo (k-1)} / A> 0 and R [{fi (i) -fo (i-1)} / A] > A

이면, fo(k) ← fo(k)+1If, then fo (k) ← fo (k) +1

R ←R-A 이고, 그렇지 않으면 R ← RA otherwise

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

R 이며 R is

역으로 임의의 K시점에서{fi(k(-fo(k-1)}/A의 나머지의 누적값(R(i)이 영(zero)보다 작을때Conversely, at any K time, {fi (k (-fo (k-1)} / A cumulative value of the rest of A) R (i) is less than zero

즉, [{fi(k)-fo(k-1)}/A]<0 그리고R[{fi(i)-fo(i-1)}]/A}]<AThat is, [{fi (k) -fo (k-1)} / A] <0 and R [{fi (i) -fo (i-1)}] / A}] <A

이면 fo(k) ← fo(k)-1If fo (k) ← fo (k) -1

R ←이고, 그렇지 않으면 R ← , Otherwise

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

R ←R 이다. R ← R is.

또한 Sx(k),Sy(k)를 S(K)로 대표해서 나타내고 S(k)/n의 나머지의 누적값을R(i)라 할 경우,In addition, Sx (k) and Sy (k) are represented by S (K), and the remaining cumulative values of S (k) / n are represented. If R (i),

R(i)>n 이면, If R (i)> n,

f'o(k) ← fo'(k)+1f'o (k) ← fo '(k) +1

R(i) ←R(i)-n이고, 그렇지 않으면, R (i) ← R (i) -n, otherwise,

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

R(i) ←R(i)이다. R (i) ← R (i).

여기서 f'o(k)는 각축의 f'ox(k),f'oy(k),f'oz(k),f'ow(k)를 대표해서 나타낸 것이다.Here, f'o (k) represents f'ox (k), f'oy (k), f'oz (k), and f'ow (k) of 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, every sampling time is determined in step S8 by using the position increment amount 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 시점에서의 목표위치(제8도)는The target position (Fig. 8) at the K point with respect to each axis is

Px(k)=f'ox(i)Px (k) = f'ox (i)

Py(k)=f'oy(i)Py (k) = f'oy (i)

Pz(k)=f'oz(i)Pz (k) = f'oz (i)

Pw(k)=f'ow(i) 에 의해 구해진다.Pw (k) = It is obtained by f'ow (i).

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

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 time point.)

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

여기서, Dxout,Dyout,Dzout,Dwout은 각축의 디지털/아날로그 변환기(2)로 입력되는 값이고 KPz,KPy,KPz,KPw는 각축의 비례(P) 게인이며 KIx,KIy,KIz,KIw는 각축의 직분(I)의 게인이다. 또한 KDx,KDyKDz,KDw는 각축의 미분(D) 게인이다.Here, Dxout, Dyout, Dzout, and Dwout are values inputted to the digital-to-analog converters 2 on each axis, and K Pz , K Py , K Pz , K Pw are proportional gains of each axis and K Ix , K Iy , K Iz and K Iw are gains of the integral (I) of each axis. K Dx , K Dy K Dz , and K Dw are derivative (D) gains of each axis.

상기 비례적분미분된 Dxout(k),dyout(k),Dzout(k),Dwout(k)를 디지털/아날로그 변화기(2)에 입력하고, 상기 디지털/아날로그 변환기(2)는 이 값을 아날로그 값으로 변환시킨후 서보제어부(3)에 입력하고, 모터(4)를 구동토록하는 것이다.The proportional integral derivatives 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 into an analog value. After converting the signal to the servo control unit 3, the motor 4 is driven.

이어서, 스텝 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, a position point for determining the positional deviation is inserted into K by setting the K + 1 value after a predetermined time has elapsed, and then in step S12, when the value of K has no acceleration or deceleration, the moving pulse for every sampling time It is determined whether or not the number N of (fi) is the same. If this determination result is the same (Yes), in step S13, the Rx, Ry, Rz, and Rw values of each axis are obtained for each axis obtained by obtaining the number N of moving pulses fi for every sampling time when there is no acceleration. It is determined by substituting the moving pulses of (fix, fiy, fiz, fiw), and in step S14, it is determined whether the value of k is larger than the number N of the moving pulses fi for every sampling time. If the result of the determination is large (Yes), the process proceeds to step S15, where 0 is substituted for the moving pulses (fix, fiy, fiz, fiw) for each axis, and 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)와 동일하지 않을경우(K=N,No일 경우)에는 스텝 S14로 나아가고 상기 스텝 S14에서 K의 값이 매 샘플링 시간마다의 이동펄스(fi)의 횟수(N)보다 크지 않을 경우(No일 경우)에는 역시 직접 스텝 S16으로 나아가서 로보트의 최종목표위치인가를 판단하고, 그 판단결과에 따라 차후동작을 실행한다.On the other hand, if the value of K in step S12 is not equal to the number N of the moving pulses fi for every sampling time (when K = N, No), the process proceeds to step S14 and the value of K in step S14. If the value is not greater than the number N of the moving pulses fi for every sampling time (No), go directly to step S16 to determine whether or not the robot is the final target position. Run

이와같이 본 발명의 로보트의 위치제어방법에 의하면, 직선 및 지수함수 가감속에 의해 각축을 구동하고, 이산시간 상태방정식에 의해 매 샘플링 시간마다의 목표위치를 연산하므로 위치경로의 정밀도가 양호해지며 전동이 없는 고속제어가 가능할 뿐만 아니라, 각축이 동시에 출발하여 동시에 종료되므로 축의 운동간섭에 의해 발생되는 진동을 감소시킬수 있는 뛰어난 효과가 있다.As described above, according to the robot position control method, each axis is driven by a straight line and an exponential function acceleration and deceleration, and the target position for every sampling time is calculated by the discrete time state equation, so that the accuracy of the position path is improved. Not only high speed control is possible, 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 of each axis and the maximum position deviation 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 / deceleration of the servomotor 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 weight of the position of 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, and the movement pulse for every sampling time when there is no acceleration or 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 according to whether the number is equal to the number of times, and whether the value of the fixed point is greater than the number of times In the robot control method comprising the steps of clearing the moving pulse of each axis or determining the final target position according to whether or not the position increment amount of each axis is obtained so that the speed curve of the linear and exponential function acceleration / deceleration type is obtained. fo(k)=fo(k-1)+[fi(k)-fo(k-1)]/Afo (k) = fo (k-1) + [fi (k) -fo (k-1)] / A S(k)=fo(k) - fo(k-n)+s(k-1)S (k) = fo (k)-fo (k-n) + s (k-1) f'o(k)=s(k)/nf'o (k) = s (k) / n (여기서 S(k) : 식을 계산하기 위한 매개변수, fo(k) : 지수함수 가감속시 매 샘플링 시간마다의 위치증분량. fo'(k) : 지수함수 및 직선 가감속시 매 샘플링 시간마다의 위치중분량. fi : 가감속이 없을 경우 매 샘플링 시간마다의 각축의 이동펄스. A : 지수함수 가감속시의 시정수. n : 직선 가감속시의 시정수)에 의해 구하는 것을 특징으로 하는 로보트의 위치제어방법.Where S (k) is a parameter for calculating the equation, fo (k) is the positional increment for every sampling time during acceleration and deceleration, and fo '(k) is every sampling time during exponential and linear acceleration and deceleration. The positional weight of each position fi: Movement pulse of each axis for every sampling time when there is no acceleration / deceleration A: Time constant at exponential function acceleration / deceleration n: Time constant at linear acceleration / deceleration) Robot position control method.
KR1019900018729A 1990-11-19 1990-11-19 Position control method of robot KR930007780B1 (en)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
KR920009520A KR920009520A (en) 1992-06-25
KR930007780B1 true KR930007780B1 (en) 1993-08-19

Family

ID=19306197

Family Applications (1)

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

Country Status (1)

Country Link
KR (1) KR930007780B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4331358A1 (en) * 1992-10-12 1994-04-14 Braun Melsungen Ag Process for the quantitative selective removal or preparation of tumor necrosis factor (TNF) and / or lipopolysaccharides (LPS) from aqueous liquids
DE19515554C2 (en) * 1995-04-27 1999-06-17 Braun Melsungen Ag Use of an agent and device for the simultaneous extracorporeal elimination of tumor necrosis factor alpha and bacterial lipopolysaccharides from whole blood and / or blood plasma

Also Published As

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

Similar Documents

Publication Publication Date Title
US5134354A (en) Servo motor control apparatus
JP6435872B2 (en) Numerical control device and control method
KR930007775B1 (en) Linear interpolating method of robot
JPH03228106A (en) Control system for servo motor
KR930011004B1 (en) Position control method of robot
EP0790543A1 (en) Method for switching a control mode of a servo control system
KR930007780B1 (en) Position control method of robot
KR930007779B1 (en) Position control method of robot
JPH08211943A (en) Backlash correcting method using disturbance observer
KR930007781B1 (en) Position control method of robot
KR970005566B1 (en) Method of controlling backlash acceleration
EP0374255B1 (en) Method of controlling servo motor
JPH03110603A (en) Backlash correction control system for servo motor
JP3388426B2 (en) Pulse train control method of motor that enables arbitrary interpolation
JPH02137006A (en) Speed controller
JPS62229412A (en) Positioning device
JP2703099B2 (en) Conveyor tracking method for industrial robots
KR0160699B1 (en) Method for circular error compensation of robot
JP2003337607A (en) Method for controlling speed of numerical control apparatus
KR100231829B1 (en) Control method nad device of twin servo type stage
KR940002207B1 (en) Linear compensating method of robot
JPH0258106A (en) Accelerating/decelerating time constant control system
JP2728260B2 (en) Servo control device
JPH07168626A (en) Method for acceleration and deceleration control
KR940001204B1 (en) Method of compensating linear movement 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