KR19980017864A - Robot controller - Google Patents

Robot controller Download PDF

Info

Publication number
KR19980017864A
KR19980017864A KR1019960037685A KR19960037685A KR19980017864A KR 19980017864 A KR19980017864 A KR 19980017864A KR 1019960037685 A KR1019960037685 A KR 1019960037685A KR 19960037685 A KR19960037685 A KR 19960037685A KR 19980017864 A KR19980017864 A KR 19980017864A
Authority
KR
South Korea
Prior art keywords
robot
speed
unit
user
program
Prior art date
Application number
KR1019960037685A
Other languages
Korean (ko)
Other versions
KR0183922B1 (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 KR1019960037685A priority Critical patent/KR0183922B1/en
Publication of KR19980017864A publication Critical patent/KR19980017864A/en
Application granted granted Critical
Publication of KR0183922B1 publication Critical patent/KR0183922B1/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

로봇 제어기(Robot controller)가 개시된다. 이 제어기는, 사용자 입력부; 사용자 출력부; 로봇의 모터를 구동하는 서어보 구동부; 상기 사용자 입력부로부터의 설정값, 내장된 오퍼레이팅 시스템, 및 상기 서어보 구동부로부터의 현재 위치 정보에 따라, 상기 서어보 구동부에 위치 명령을 출력하고, 그 처리 결과를 상기 사용자 출력부에 전송하는 주 제어부;를 갖춘 로봇 제어기에 있어서, 상기 오퍼레이팅 시스템은, 로봇의 각종 제어 프로그램들을 관리하기 위한 파일 관리 프로그램; 상기 사용자 입력부로부터의 설정값을 제어하고, 상기 사용자 출력부에 전송될 처리 결과를 제어하기 위한 사용자 입출력 제어 프로그램; 상기 사용자 입출력 제어 프로그램에서 처리된 설정값을 소정의 파라메터 단위로 변환시키기 위한 파라메터 관리 프로그램; 및 상기 파라메터 관리 프로그램에서 변환된 설정값과 상기 서어보 구동부로부터의 현재 위치 정보를 처리하여, 상기 서어보 구동부에 위치 명령을 출력하기 위한 위치 제어 프로그램;을 포함하는 것을 그 특징으로 한다. 이에 따라 로봇의 동작 중에도 사용자로부터 변경된 동작 속도를 처리하여, 로봇에 대한 이용 효율을 높일수있다.A robot controller is disclosed. The controller includes a user input unit; A user output unit; A servo driver for driving a motor of the robot; A main control unit for outputting a position command to the servo drive unit according to a setting value from the user input unit, a built-in operating system, and current position information from the servo drive unit, and transmitting the processing result to the user output unit; A robot controller comprising: a file management program for managing various control programs of a robot; A user input / output control program for controlling a setting value from the user input unit and controlling a processing result to be sent to the user output unit; A parameter management program for converting a setting value processed by the user input / output control program into a predetermined parameter unit; And a position control program for processing the set value converted by the parameter management program and current position information from the servo driver, and outputting a position command to the servo driver. Accordingly, even during the operation of the robot by processing the operation speed changed by the user, it is possible to increase the use efficiency for the robot.

Description

로봇 제어기Robot controller

본 발명은 로봇 제어기에 관한 것이다.The present invention relates to a robot controller.

도 1에 도시된 바와 같이 종래의 로봇 제어기는, 사용자에 의한 명령 및 설정값을 입력시키기 위한 키 패드(Key pad, 10); 제어 상태를 표시하기 위한 액정 표시(Liquid Crystal Display)부(11); 키 패드(10)로부터의 설정값 및 로딩된 제어 프로그램에 따라 목표 위치 신호를 발생시키고, 그 처리 상태를 액정 표시부(11)에 전송하는 주 제어부(12); 상기 주 제어부(12)의 목표 위치 데이터 및 로봇용 모터에 부착된 엔코더의 신호에 따라 모터 제어 신호를 발생시키는 위치 제어부(13); 및 상기 위치 제어부(13)로부터의 모터 제어 신호에 따라 모터 구동 신호를 출력하는 서어보 구동부(14);로 대별된다.As shown in FIG. 1, a conventional robot controller includes: a key pad 10 for inputting a command and a setting value by a user; A liquid crystal display unit 11 for displaying a control state; A main control unit 12 for generating a target position signal in accordance with the set value from the keypad 10 and the loaded control program, and transmitting the processing state to the liquid crystal display unit 11; A position controller 13 for generating a motor control signal according to the target position data of the main controller 12 and the signal of an encoder attached to the robot motor; And a servo driver 14 for outputting a motor driving signal according to the motor control signal from the position controller 13.

주 제어부(12)는, 오퍼레이팅 시스템을 저장하는 롬(Read Only Memory); 키 패드(10)로부터의 입력 신호 및 액정 표시부(11)로의 출력 신호를 인터페이싱하는 직렬 통신부(121); 로봇 동작 프로그램 및 관련 설정값을 저장하는 비휘발성 램(Non-volatile Random Access Memory, 122); 오퍼레이팅 시스템을 저장하는 롬(Read Only Memory, 123); 및 오퍼레이팅 시스템을 실행하는 CPU(Central Processing Unit, 124);를 갖춘다.The main control unit 12 includes: a ROM (Read Only Memory) for storing an operating system; A serial communication unit 121 for interfacing an input signal from the keypad 10 and an output signal to the liquid crystal display 11; Non-volatile random access memory (122) for storing a robot motion program and associated settings; A read only memory (123) for storing an operating system; And a CPU (Central Processing Unit) 124 for executing the operating system.

위치 제어부(13)는, 로봇용 모터(도시되지 않음)를 제어하기 위한 프로그램을 저장하는 롬(131); 롬(131)에 저장된 프로그램을 실행하는 CPU(132); 프로그램을 실행할 때 가변적인 데이터를 일시적으로 저장하는 램(133); 로봇용 모터에 부착된 엔코더의 신호를 계수하기 위한 계수부(134); 및 CPU(132)로부터 출력되는 제어 신호를 아날로그 신호로 변환하기 위한 디지탈/아날로그 변환기(Digital to Analog Converter, 135);를 갖춘다.The position control unit 13 includes: a ROM 131 for storing a program for controlling a robot motor (not shown); A CPU 132 for executing a program stored in the ROM 131; A RAM 133 for temporarily storing variable data when executing a program; A counting unit 134 for counting a signal of an encoder attached to the robot motor; And a digital to analog converter 135 for converting a control signal output from the CPU 132 into an analog signal.

도 1에서, 사용자가 키 패드(10)를 통하여 로봇의 동작 속도를 설정하면, 그 설정값이 주 제어부(12)의 비휘발성 램(122)에 저장된다. 주 제어부(12)의 CPU(124)는 저장된 설정값을 반영하여 비휘발성 램(122)에 저장된 로봇 동작 프로그램을 실행한다. 이에 따라 주 제어부(12)로부터 위치 제어부(13)에 목표 동작 속도가 입력된다. 위치 제어부(13)의 CPU(132)는, 입력된 목표 동작 속도 및 계수부(134)의 출력을 반영하여 롬(131)에 저장된 프로그램을 실행한다. 위치 제어부(13)의 디지탈/아날로그 변환기(135)는, CPU(132)로부터의 모터 제어 신호를 아날로그 신호로 변환하여, 아날로그 서어보 구동부(14)에 입력시킨다. 이에 따라 아날로그 서어보 구동부(14)는, 모터 구동 신호를 출력하여 로봇의 모터를 구동시킨다.In FIG. 1, when the user sets the operation speed of the robot through the keypad 10, the set value is stored in the nonvolatile RAM 122 of the main controller 12. The CPU 124 of the main control unit 12 executes the robot operation program stored in the nonvolatile RAM 122 by reflecting the stored setting values. In this way, the target operation speed is input from the main control unit 12 to the position control unit 13. The CPU 132 of the position controller 13 executes the program stored in the ROM 131 by reflecting the input target operation speed and the output of the counter 134. The digital-to-analog converter 135 of the position control unit 13 converts the motor control signal from the CPU 132 into an analog signal and inputs it to the analog servo driver 14. As a result, the analog servo drive unit 14 outputs a motor drive signal to drive the motor of the robot.

상기와 같은 종래의 로봇 제어기는 다음과 같은 문제점을 갖는다. 즉, 주 제어부(12)의 CPU(124)가 로봇 동작 프로그램을 실행하는 도중, 사용자가 키 패드(10)를 통하여 설정값을 변경할 수 없다. 즉, 로봇 동작 프로그램이 실행되는 도중에 설정값을 변경하려면, 프로그램의 실행을 중단시켜야 한다. 이에 따라 로봇에 대한 이용 효율이 떨어지게 된다.The conventional robot controller as described above has the following problems. That is, while the CPU 124 of the main control unit 12 executes the robot operation program, the user cannot change the setting value via the keypad 10. That is, to change the set value while the robot motion program is being executed, the execution of the program must be stopped. As a result, the utilization efficiency for the robot is reduced.

본 발명이 이루고자 하는 기술적 과제는, 로봇 동작 프로그램이 실행되는 도중에도 사용자가 설정값을 변경할 수 있는 로봇 제어기를 제공하는 것이다.The technical problem to be achieved by the present invention is to provide a robot controller that allows a user to change a set value even while the robot operation program is executed.

도 1은 종래의 로봇 제어기의 하드웨어를 나타낸 개략적 블록도이다.1 is a schematic block diagram showing hardware of a conventional robot controller.

도 2는 본 발명에 따른 로봇 제어기의 하드웨어를 나타낸 개략적 블록도이다.2 is a schematic block diagram showing the hardware of the robot controller according to the present invention.

도 3은 도 2의 오퍼레이팅 시스템을 설명하기 위한 개략적 블록도이다.FIG. 3 is a schematic block diagram for describing the operating system of FIG. 2.

도 4는 도 3의 오퍼레이팅 시스템에 사용될 전역 변수의 배치도이다.4 is a layout diagram of global variables to be used in the operating system of FIG.

도 5는 도 4의 전역 변수를 이용한 트레젝터리 생성 프로그램의 흐름도이다.5 is a flowchart of a projectile generation program using the global variables of FIG. 4.

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

20...키 패드,21...액정 표시부,20 ... keypad, 21 ... liquid crystal display,

22...디지탈 서어보 구동부,23...주 제어부(23),22.Digital servo drive, 23.Main control (23),

221...계수부,222...디지탈/아날로그 변환기,221 ... coefficients, 222 ... digital to analog converter,

231...직렬 통신부,232...비휘발성 램,231 serial communication unit, 232 nonvolatile RAM,

233...롬,234...CPU,233 ... rom, 234 ... CPU,

30...오퍼레이팅 시스템,301...파일 관리 프로그램,30 ... Operating System, 301 ... File Manager,

302...사용자 입출력 제어 프로그램,303...파라메터 관리 프로그램,302 user I / O control program, 303 parameter management program,

304...위치 제어 프로그램.304 ... Position control program.

상기 기술적 과제를 이루기 위하여 본 발명에 의한 로봇 제어기는, 사용자 입력부; 사용자 출력부; 로봇의 모터를 구동하는 서어보 구동부; 상기 사용자 입력부로부터의 설정값, 내장된 오퍼레이팅 시스템, 및 상기 서어보 구동부로부터의 현재 위치 정보에 따라, 상기 서어보 구동부에 위치 명령을 출력하고, 그 처리 결과를 상기 사용자 출력부에 전송하는 주 제어부;를 갖춘 로봇 제어기에 있어서, 상기 오퍼레이팅 시스템은, 로봇의 각종 제어 프로그램들을 관리하기 위한 파일 관리 프로그램; 상기 사용자 입력부로부터의 설정값을 제어하고, 상기 사용자 출력부에 전송될 처리 결과를 제어하기 위한 사용자 입출력 제어 프로그램; 상기 사용자 입출력 제어 프로그램에서 처리된 설정값을 소정의 파라메터 단위로 변환시키기 위한 파라메터 관리 프로그램; 및 상기 파라메터 관리 프로그램에서 변환된 설정값과 상기 서어보 구동부로부터의 현재 위치 정보를 처리하여, 상기 서어보 구동부에 위치 명령을 출력하기 위한 위치 제어 프로그램;을 포함하는 것을 그 특징으로 한다.In order to achieve the above technical problem, the robot controller according to the present invention includes a user input unit; A user output unit; A servo driver for driving a motor of the robot; A main control unit for outputting a position command to the servo drive unit according to a setting value from the user input unit, a built-in operating system, and current position information from the servo drive unit, and transmitting the processing result to the user output unit; A robot controller comprising: a file management program for managing various control programs of a robot; A user input / output control program for controlling a setting value from the user input unit and controlling a processing result to be sent to the user output unit; A parameter management program for converting a setting value processed by the user input / output control program into a predetermined parameter unit; And a position control program for processing the set value converted by the parameter management program and current position information from the servo driver, and outputting a position command to the servo driver.

이하 첨부된 도면을 참조하면서 본 발명에 따른 바람직한 실시예들을 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings.

도 2에 도시된 바와 같이 본 실시예의 로봇 제어기는, 사용자에 의한 명령 및 설정값을 입력시키기 위한 키 패드(20); 제어 상태를 표시하기 위한 액정 표시부(21); 입력되는 위치 정보와 로봇용 모터의 엔코더 신호에 따라 모터 구동 신호를 발생시키는 디지탈 서어보 구동부(22); 및 상기 사용자 입력부로부터의 설정값, 내장된 오퍼레이팅 시스템, 및 상기 서어보 구동부로부터의 현재 위치 정보에 따라, 상기 서어보 구동부에 위치 명령을 출력하고, 그 처리 결과를 상기 사용자 출력부에 전송하는 주 제어부(23);로 대별된다. 여기서 키 패드(20)의 주요 키는, 로봇 프로그램을 실행시키기 위한 RUN 키, 로봇의 동작 속도를 올리기 위한 SPEED UP 키, 로봇의 동작 속도를 내리기 위한 SPEED DOWN 키, 및 복합 키의 기능을 위한 SHIFT 키 등이다.As shown in FIG. 2, the robot controller of the present embodiment includes: a keypad 20 for inputting a command and a setting value by a user; A liquid crystal display 21 for displaying a control state; A digital servo driver 22 generating a motor driving signal according to the input position information and the encoder signal of the robot motor; And outputting a position command to the servo drive unit according to a set value from the user input unit, a built-in operating system, and current position information from the servo drive unit, and transferring the processing result to the user output unit. Control unit 23; Here, the main key of the keypad 20 is a RUN key for executing the robot program, a SPEED UP key for increasing the operation speed of the robot, a SPEED DOWN key for lowering the operation speed of the robot, and SHIFT for the function of the composite key. Key etc.

디지탈 서어보 구동부(22)는 로봇용 모터의 엔코더 신호를 계수하는 계수부(221); 및 출력되는 모터 구동 신호를 아날로그 신호로 변환시키는 디지탈/아날로그 변환기(222);를 포함한다. 한편 주 제어부(23)는, 키 패드(20)로부터의 입력 신호 및 액정 표시부(21)로의 출력 신호를 인터페이싱하는 직렬 통신부(231); 로봇 동작 프로그램 및 관련 파라메터의 값들을 저장하는 비휘발성 램(232); 오퍼레이팅 시스템이 저장된 롬(233); 및 상기 오퍼레이팅 시스템을 실행하는 CPU(234);를 포함한다.The digital servo driver 22 includes a counter 221 for counting an encoder signal of a robot motor; And a digital / analog converter 222 for converting the output motor driving signal into an analog signal. On the other hand, the main control unit 23 includes a serial communication unit 231 for interfacing the input signal from the keypad 20 and the output signal to the liquid crystal display unit 21; A nonvolatile RAM 232 for storing values of the robot operation program and related parameters; A ROM 233 in which an operating system is stored; And a CPU 234 executing the operating system.

도 3에 도시된 바와 같이 본 실시예의 오퍼레이팅 시스템(30)은, 로봇의 각종 제어 프로그램들을 관리하는 파일 관리 프로그램(301); 키 패드(도 2의 20)로부터의 설정값을 제어하고, 액정 표시부(도 2의 21)에 전송될 처리 결과를 제어하기 위한 사용자 입출력 제어 프로그램(302); 사용자 입출력 제어 프로그램(302)에서 처리된 설정값을 소정의 파라메터 단위로 변환시키기 위한 파라메터 관리 프로그램(303); 및 파라메터 관리 프로그램(303)에서 변환된 설정값과 상기 디지탈 서어보 구동부(도 2의 22)로부터의 현재 위치 정보를 처리하여, 상기 디지탈 서어보 구동부(도 2의 22)에 위치 명령을 출력하기 위한 위치 제어 프로그램(304);을 포함한다. 이와 같은 오퍼레이팅 시스템은 아래와 같은 전역 변수들을 이용하여 실행된다.As shown in Fig. 3, the operating system 30 of the present embodiment includes: a file management program 301 for managing various control programs of the robot; A user input / output control program 302 for controlling the setting value from the keypad (20 in FIG. 2) and controlling the processing result to be transmitted to the liquid crystal display (21 in FIG. 2); A parameter management program 303 for converting the setting values processed by the user input / output control program 302 into predetermined parameter units; And processing the set value converted in the parameter management program 303 and the current position information from the digital servo driver (22 in FIG. 2) to output a position command to the digital servo driver (22 in FIG. 2). It includes; position control program 304 for. This operating system is implemented using the following global variables.

도 4에 도시된 바와 같이 본 실시예의 전역 변수들은, 상기 파라메터 관리 프로그램(도 3의 303)에서 처리된 로봇의 PTP(Point-To-Point) 동작 속도 PARA_PTP_SPEED; 상기 파라메터 관리 프로그램(도 3의 303)에서 처리된 로봇의 CP(Continuous Path) 동작 속도 PARA_CP_SPEED; 키 패드(도 2의 20)로부터 입력되는 속도 변화율 TP_SPEED; 샘플링 시간 동안 로봇의 각 축에 대한 최대 이동 속도 MAX_VELOCITY; 키 패드(도 2의 20)로부터 입력되는 속도 변화율 TP_SPEED가 반영된 최대 이동 속도 NEW_MAX_VELOCITY; 설정된 로봇용 모터의 분당 회전수 RPM; 설정된 분당 회전수 RPM의 정밀도 RESOLUTION; 입력되는 키의 번호 KEY; 및 키 패드(도 2의 20)의 고유 코드 테이블 KEY CODE TABLE;로서 이루어진다. 이와 같은 전역 변수들은, 도 3에 도시된 오퍼레이팅 시스템이 실행될 때에 이용된다. 이에 따라 오퍼레이팅 시스템이 실행될 때 에러 발생율을 최소화할 수 있고, 로봇 제어기의 하드웨어 및 소프트웨어의 규모를 축소할수 있다.As shown in FIG. 4, the global variables of the present embodiment include: PTP (Point-To-Point) operating speed PARA_PTP_SPEED of the robot processed by the parameter management program (303 in FIG. 3); CP (Continuous Path) operation speed PARA_CP_SPEED of the robot processed by the parameter management program (303 of FIG. 3); The rate of change of velocity TP_SPEED input from the keypad 20 (FIG. 2); Maximum travel speed for each axis of the robot during the sampling time MAX_VELOCITY; The maximum moving speed NEW_MAX_VELOCITY reflecting the speed change rate TP_SPEED input from the keypad (20 in FIG. 2); RPM RPM of the robot motor set; Precision of set RPM RPM RESOLUTION; Number of the input key KEY; And a unique code table KEY CODE TABLE of the keypad (20 in FIG. 2). Such global variables are used when the operating system shown in FIG. 3 is executed. This can minimize the error rate when the operating system is executed and reduce the scale of hardware and software of the robot controller.

사용자가 키 패드(도 2의 20)를 통하여 로봇용 모터의 속도(RPM)를 입력하면, CPU(도 2의 234)는 사용자 입출력 제어 프로그램(도 3의 302)을 실행하여, 입력된 모터의 속도를 전역 변수 RPM(도 4의 45) 영역에 저장한다. 이때 로봇이 PTP 동작인 경우, CPU(도 2의 234)는 파라메터 관리 프로그램(도 3의 303)을 실행하여, 전역 변수 RPM(도 4의 45) 영역에 저장된 값을 백분율로 환산한 후, 그 결과를 전역 변수 PARA_PTP_SPEED(도 4의 40) 영역에 저장한다. 한편 로봇이 CP 동작인 경우, CPU(도 2의 234)는 파라메터 관리 프로그램(도 3의 303)을 실행하여, 전역 변수 RPM(도 4의 45) 영역에 저장된 값을 1 초 동안의 이동 거리(milli-meter)로 환산한 후, 그 결과를 전역 변수 PARA_CP_SPEED(도 4의 41) 영역에 저장한다. 이와 같이 저장된 전역 변수의 데이터가 상기 트레젝터리 생성 프로그램에서 이용됨으로써, 로봇의 위치 제어가 수행된다. 트레젝터리 생성 프로그램의 실행 도중에, 사용자가 키 패드(도 2의 20)를 사용하여 모터의 속도를 바꿀 수 있다. 예를 들어, 사용자가 SPEED UP 또는 SPEED DOWN 키를 누를 때마다, 전역 변수 RPM(도 4의 45) 및 PARA_PTP_SPEED(도 4의 40) 또는 PARA_CP_SPEED(도 4의 41)가 1 %씩 가감된다. 또한 사용자가 SHIFT 키를 누른 상태에서 SPEED UP 또는 SPEED DOWN 키를 누를 때마다, 전역 변수 RPM(도 4의 45) 및 PARA_PTP_SPEED(도 4의 40) 또는 PARA_CP_SPEED(도 4의 41)가 10 %씩 가감된다. 이때 가감된 비율은 직렬 통신부(도 2의 231)를 통하여 액정 표시부(도 2의 21)에 표시된다.When the user inputs the speed RPM of the robot motor through the keypad 20 of FIG. 2, the CPU 234 of FIG. 2 executes the user input / output control program 302 of FIG. The speed is stored in the global variable RPM (45 of FIG. 4) region. In this case, when the robot is in the PTP operation, the CPU 234 of FIG. 2 executes the parameter management program 303 of FIG. 3 to convert the value stored in the global variable RPM (45 of FIG. 4) into a percentage, and then The result is stored in the global variable PARA_PTP_SPEED (40 in FIG. 4). On the other hand, when the robot is a CP operation, the CPU (234 of FIG. 2) executes the parameter management program (303 of FIG. 3), and moves the value stored in the global variable RPM (45 of FIG. 4) area for 1 second. milli-meter), and the result is stored in the global variable PARA_CP_SPEED (41 in FIG. 4). The data of the global variables stored as described above are used in the projectile generation program, whereby the position control of the robot is performed. During the execution of the transaction generation program, the user can change the speed of the motor using the keypad (20 in FIG. 2). For example, each time the user presses the SPEED UP or SPEED DOWN key, the global variables RPM (45 in FIG. 4) and PARA_PTP_SPEED (40 in FIG. 4) or PARA_CP_SPEED (41 in FIG. 4) are added or subtracted by 1%. In addition, whenever the user presses the SPEED UP or SPEED DOWN key while holding the SHIFT key, the global variables RPM (45 in FIG. 4) and PARA_PTP_SPEED (40 in FIG. 4) or PARA_CP_SPEED (41 in FIG. 4) are added or decremented by 10%. do. In this case, the added / decreased ratio is displayed on the liquid crystal display (21 in FIG. 2) through the serial communication unit (231 in FIG. 2).

도 5를 참조하여 본 실시예의 속도 제어 과정을 상세히 살펴 보기로 한다. 이와 같은 알고리듬을 실행하기 위하여 먼저 상기 전역 변수 PARA_PTP_SPEED(도 4의 40) 또는 PARA_CP_SPEED(도 4의 41)에 대한 로봇의 경로 계획(Pathplan)을 작성한다. 이에 따라 전역 변수 PARA_PTP_SPEED(도 4의 40) 또는 PARA_CP_SPEED(도 4의 41)의 값이 입력되면, 현재 시간에 대한 현재 위치를 알게 된다. 또한 전역 변수 TP_SPEED(도 4의 42)의 반영 여부를 확인하기 위한 플래그 TP_SPEED_READ_FLAG를 마련한다. 도 5에 도시된 알고리듬은 로봇의 PTP 및 CP 동작에 모두 적용된다. 여기서는 로봇의 PTP 동작의 경우를 예를 들어 설명한다.Referring to Figure 5 will be described in detail the speed control process of the present embodiment. In order to execute such an algorithm, first, a path plan of the robot for the global variable PARA_PTP_SPEED (40 in FIG. 4) or PARA_CP_SPEED (41 in FIG. 4) is prepared. Accordingly, when the value of the global variable PARA_PTP_SPEED (40 in FIG. 4) or PARA_CP_SPEED (41 in FIG. 4) is input, the current position with respect to the current time is known. In addition, a flag TP_SPEED_READ_FLAG is provided for checking whether or not the global variable TP_SPEED (42 in FIG. 4) is reflected. The algorithm shown in FIG. 5 applies to both the PTP and CP operation of the robot. Here, the case of PTP operation | movement of a robot is demonstrated to an example.

상기와 같은 상태에서 CPU(도 2의 234)가 로봇 제어 프로그램을 실행하는 도중에 사용자로부터 속도 변경 데이터가 입력되면, CPU(도 2의 234)는 목표 위치 GOAL_POSITION 및 현재 위치 CURRENT_POSITION을 입력받는다(단계 501). 다음에 목표 위치 GOAL_POSITION와 현재 위치 CURRENT_POSITION의 차이인 위치 증분량 DELTA_POSITION을 계산한다(단계 502). 다음에 샘플링 주기 당 로봇 축의 최대 속도 MAX_VELOCITY(도 4의 43)를 MAX_VELOCITY = (RPM/60)·RESOLUTION·샘플링 주기·(PARA_PTP_SPEED/100) 식에 의하여 계산한다(단계 503). 다음에 상기 플래그 TP_SPEED_READ_FLAG의 상태가 '1'인지를 확인하여(단계 504), '1'이면 '0'이 될 때까지 기다려서, '0'이 되면 '1'로 전환시킨다(단계 505). 다음에 입력되는 속도 변화율 TP_SPEED가 반영된 최대 이동 속도 NEW_MAX_VELOCITY(도 4의 44)를 NEW_MAX_VELOCITY = MAX_VELOCITY·(TP_SPEED/100) 식에 의하여 계산한다(단계 506). 다음에 상기 플래그 TP_SPEED_READ_FLAG의 상태를 '0'으로 전환한 후(단계 507), 상기 위치 증분량 DELTA_POSITION의 값이 변경된 최대 이동 속도 NEW_MAX_VELOCITY(도 4의 44) 이하인지를 확인한다(단계 508). 확인 후, 이하이면 변경된 최대 이동 속도 NEW_MAX_VELOCITY(도 4의 44)의 값을 위치 증분량 DELTA_POSITION의 값과 같게 저장한 후(단계 509), 소정의 가감속 루틴을 호출하여 실행시킨다(단계 510). 상기 가감속 루틴의 실행 결과는 디지탈 서어보 구동부(도 2의 22)에 전송되어, 로봇용 모터의 회전 속도가 가감속된다. 다음에 DELTA_POSITION과 최대 이동 속도 NEW_MAX_VELOCITY(도 4의 44)의 차이를 계산하여, 그결과를 DELTA_POSITION의 값으로서 저장한다(단계 511). 그리고 저장된 DELTA_POSITION의 값이 '0'인지를 확인하여(단계 512), '0'이 아니면 '0'이 될때까지 상기 단계 504 이하를 반복한다.If the speed change data is input from the user while the CPU (234 of FIG. 2) executes the robot control program in the above state, the CPU (234 of FIG. 2) receives the target position GOAL_POSITION and the current position CURRENT_POSITION (step 501). ). Next, the position increment amount DELTA_POSITION, which is the difference between the target position GOAL_POSITION and the current position CURRENT_POSITION, is calculated (step 502). Next, the maximum speed MAX_VELOCITY (43 in FIG. 4) of the robot axis per sampling cycle is calculated according to the formula MAX_VELOCITY = (RPM / 60), RESOLUTION, sampling period, (PARA_PTP_SPEED / 100) (step 503). Next, it is checked whether the state of the flag TP_SPEED_READ_FLAG is '1' (step 504). If '1', it waits until '0', and if it is '0', it switches to '1' (step 505). Next, the maximum moving speed NEW_MAX_VELOCITY (44 in FIG. 4) reflecting the speed change rate TP_SPEED input next is calculated by the formula NEW_MAX_VELOCITY = MAX_VELOCITY · (TP_SPEED / 100) (step 506). Next, after the state of the flag TP_SPEED_READ_FLAG is switched to '0' (step 507), it is checked whether the value of the position increment amount DELTA_POSITION is equal to or less than the changed maximum moving speed NEW_MAX_VELOCITY (44 in FIG. 4) (step 508). After confirmation, if less than or equal to the value of the changed maximum moving speed NEW_MAX_VELOCITY (44 in Fig. 4) is stored equal to the value of the position increment amount DELTA_POSITION (step 509), the predetermined acceleration / deceleration routine is called and executed (step 510). The execution result of the acceleration / deceleration routine is transmitted to the digital servo driver (22 in Fig. 2), whereby the rotational speed of the robot motor is accelerated and decelerated. Next, the difference between DELTA_POSITION and the maximum movement speed NEW_MAX_VELOCITY (44 in Fig. 4) is calculated, and the result is stored as the value of DELTA_POSITION (step 511). Then, it is checked whether the value of the stored DELTA_POSITION is '0' (step 512), and if the value is not '0', step 504 or less is repeated until it becomes '0'.

이와같이 트레젝터리 생성 프로그램을 실행시킴으로써, 로봇의 동작중에도 로봇의 이동속도를 변경할수있다.By running the projectile generation program in this way, the movement speed of the robot can be changed even during the operation of the robot.

본 발명은 상기 실시예들에 한정되지 않고, 당업자의 수준에서 그 변형 및 개량이 가능하다.The present invention is not limited to the above embodiments, and modifications and improvements are possible at the level of those skilled in the art.

이상 설명된 바와 같이 본 발명에 따른 로봇 제어기에 의하면, 로봇의 동작 중에도 사용자로부터 변경된 동작 속도를 처리하여, 로봇에 대한 이용 효율을 높일 수 있다.As described above, according to the robot controller according to the present invention, the operation speed changed by the user may be processed even during the operation of the robot, thereby increasing the use efficiency of the robot.

Claims (15)

사용자 입력부; 사용자 출력부; 로봇의 모터를 구동하는 서어보 구동부; 상기 사용자 입력부로부터의 설정값, 내장된 오퍼레이팅 시스템, 및 상기 서어보 구동부로부터의 현재 위치 정보에 따라, 상기 서어보 구동부에 위치 명령을 출력하고, 그처리 결과를 상기 사용자출력부에 전송하는 주 제어부;를 갖춘 로봇 제어기에 있어서,A user input unit; A user output unit; A servo driver for driving a motor of the robot; A main control unit for outputting a position command to the servo drive unit according to a setting value from the user input unit, a built-in operating system, and current position information from the servo drive unit, and transmitting the processing result to the user output unit; In a robot controller with; 상기 오퍼레이팅 시스템은,The operating system, 로봇의 각종 제어 프로그램들을 관리하기 위한 파일 관리프로그램;A file management program for managing various control programs of the robot; 상기 사용자 입력부로부터의 설정값을 제어하고, 상기 사용자 출력부에 전송될 처리 결과를 제어하기 위한 사용자입출력 제어 프로그램;A user input / output control program for controlling a setting value from the user input unit and controlling a processing result to be sent to the user output unit; 상기 사용자 입출력 제어 프로그램에서 처리된 설정값을 소정의 파라메터 단위로 변환시키기 위한 파라메터 관리 프로그램; 및A parameter management program for converting a setting value processed by the user input / output control program into a predetermined parameter unit; And 상기 파라메터 관리 프로그램에서 변환된 설정값과 상기 서어보 구동부로부터의 현재 위치 정보를 처리하여, 상기 서어보 구동부에 위치 명령을 출력하기 위한 위치 제어 프로그램;을 포함하는 것을 그 특징으로 하는 로봇 제어기.And a position control program for processing the set value converted by the parameter management program and the current position information from the servo drive unit, and outputting a position command to the servo drive unit. 제1항에 있어서, 상기 서어보 구동부는,The servo drive of claim 1, 상기 로봇의 모터에 부착된 엔코더의 신호를 계수하는 계수부; 및A counting unit for counting a signal of an encoder attached to the motor of the robot; And 출력되는 모터 구동 신호를 아날로그 신호로 변환시키는 디지탈/아날로그 변환기;를 포함하는 디지탈 서어보 구동부인 것을 그 특징으로하는 로봇 제어기.And a digital servo drive unit for converting an output motor driving signal into an analog signal. 제1항에 있어서, 상기 주 제어부는,The method of claim 1, wherein the main control unit, 상기 사용자 입력부로부터의 입력 신호 및 상기 사용자출력부로의 출력신호를 인터페이싱하는 직렬 통신부;A serial communication unit for interfacing an input signal from the user input unit and an output signal to the user output unit; 로봇 동작 프로그램 및 관련 파라메터의 값들을 저장하는 비휘발성 램;A nonvolatile RAM for storing values of the robot operation program and related parameters; 상기 오퍼레이팅 시스템이 저장된 롬; 및A ROM in which the operating system is stored; And 상기 오퍼레이팅 시스템을 실행하는 CPU;를 포함하는 것을 그 특징으로 하는 로봇 제어기.And a CPU for executing the operating system. 제1항에 있어서, 상기 위치 제어 프로그램은,According to claim 1, wherein the position control program, 상기 서어보 구동부에 출력되는 위치 정보를 구하기 위한 트레젝터리 생성 프로그램을 포함하는 것을 그 특징으로 하는 로봇 제어기.And a projectile generating program for obtaining positional information output from the servo drive unit. 제4항에 있어서, 상기 오퍼레이팅 시스템은,The method of claim 4, wherein the operating system, 소정의 전역 변수들을 이용하는 것을 그 특징으로 하는 로봇 제어기.Robot controller characterized in that it uses certain global variables. 제5항에 있어서, 상기 전역 변수들은,The method of claim 5, wherein the global variable, 상기 파라메터 관리 프로그램에서 처리된 로봇의 동작속도;An operating speed of the robot processed by the parameter management program; 상기 키 패드로부터 입력되는 속도 변화율;A rate of change of velocity input from the keypad; 샘플링 시간 동안 로봇의 각 축에 대한 제1 최대 이동속도;A first maximum travel speed with respect to each axis of the robot during the sampling time; 상기 키 패드로부터 입력되는 속도 변화율이 반영된 제2 최대 이동속도;A second maximum moving speed reflecting a speed change rate input from the keypad; 설정된 로봇용 모터의 분당 회전수;Set revolutions per minute of the robot motor; 상기 분당 회전수의 정밀도;Precision of the revolutions per minute; 입력되는 키의 번호; 및The number of the key being entered; And 상기 키 패드의 각 키에 대한 고유코드;를 포함하는 것을 그 특징으로 하는 로봇 제어기.And a unique code for each key of the keypad. 제6항에 있어서, 상기 로봇의 동작 속도는,According to claim 6, The operating speed of the robot, 상기 로봇이 PTP 동작을 하는 경우에 적용되는 것을 그 특징으로 하는 로봇 제어기.And the robot is applied when the robot performs a PTP operation. 제6항에 있어서, 상기 로봇의 동작 속도는,According to claim 6, The operating speed of the robot, 상기 로봇이 CP 동작을 하는 경우에 적용되는 것을 그 특징으로 하는 로봇 제어기.And the robot is applied when the robot performs a CP operation. 제6항에 있어서,The method of claim 6, 사용자가 상기 키 패드를 통하여 상기 로봇의 모터의 분당 회전수를 입력하면, 상기 CPU는 상기 사용자 입출력 제어 프로그램을 실행하여, 상기 분당 회전수를 상기 전역 변수 영역에 저장하는것을 그 특징으로 하는 로봇제어기.When the user inputs the revolutions per minute of the motor of the robot through the keypad, the CPU executes the user input / output control program and stores the revolutions per minute in the global variable region. . 제9항에 있어서,The method of claim 9, 상기 CPU는 상기 파라메터 관리프로그램을 실행하여, 상기 분당 회전수의 전역 변수 영역에 저장된 값을 백분율로 환산한 후, 그 결과를 상기 로봇의 동작 속도의 전역 변수 영역에 저장하는 것을 그 특징으로 하는 로봇 제어기.The CPU executes the parameter management program, converts the value stored in the global variable area of the revolutions per minute into a percentage, and stores the result in the global variable area of the operating speed of the robot. Controller. 제6항에 있어서,The method of claim 6, 상기 로봇의 동작 속도의 전역 변수에 대한 로봇의 경로 계획이 작성되는 것을 그 특징으로 하는 로봇 제어기.And a robot route plan for a global variable of the robot's operating speed is prepared. 제11항에 있어서,The method of claim 11, 상기 로봇의 동작 속도의 전역 변수에 대한 반영 여부를 확인시키는 플래그가 마련되는 것을 그 특징으로 하는 로봇 제어기.And a flag for confirming whether or not the robot reflects the global variable of the operation speed of the robot is provided. 제12항에 있어서, 상기 트레젝터리 생성 프로그램은,The method of claim 12, wherein the projectile generation program, (a1) 로봇 제어 프로그램을 실행하는 도중에 사용자로부터 속도 변경 데이터가 입력되면, 상기 로봇의 경로 계획에 따른 목표 위치 및 현재 위치를 입력받는 단계;(a1) if speed change data is input from the user while executing the robot control program, receiving a target position and a current position according to a path plan of the robot; (a2) 상기 목표 위치와 현재 위치의 차이인 위치 증분량을 계산하는 단계;(a2) calculating a position increment amount that is a difference between the target position and the current position; (a3) 샘플링 주기 당 로봇 축의 제1 최대 이동 속도를 계산하는 단계;(a3) calculating a first maximum moving speed of the robot axis per sampling period; (a4) 상기 플래그의 상태가 '1'인지를 확인하여, '1'이면 '0'이 될 때까지 기다려서, '0'이 되면 '1'로 전환시키는 단계;(a4) checking whether the state of the flag is '1', waiting for '0' if it is '1', and switching to '1' if it is '0'; (a5) 입력되는 속도 변화율이 반영된 제2 최대 이동 속도를 계산하는 단계;(a5) calculating a second maximum moving speed reflecting an input speed change rate; (a6) 상기 플래그의 상태를 '0'으로 전환한 후, 상기 제2 최대 이동 속도 이하인지를 확인하는 단계;(a6) switching the state of the flag to '0' and checking whether the flag is less than or equal to the second maximum moving speed; (a7) 확인 후, 이하이면 변경된 제2 최대 이동 속도의 값을 상기 위치 증분량의 값과 같게 저장한 후, 소정의 가감속 루틴을 호출하여 실행시키는 단계;(a7) after confirming, storing the changed value of the second maximum movement speed equal to the value of the position increment amount, if called, and then calling and executing a predetermined acceleration / deceleration routine; (a8) 상기 위치 증분량과 제2 최대 이동 속도의 차이를 계산하여, 그 결과를 상기 위치 증분량의 값으로서 저장하는 단계; 및(a8) calculating a difference between the position increment and the second maximum movement speed, and storing the result as a value of the position increment; And (a9) 저장된 위치 증분량의 값이 '0'인지를 확인하여, '0'이 아니면 '0'이 될 때까지 상기 단계 a4 이하를 반복하는 단계;를 포함하는 것을 그 특징으로 하는 로봇 제어기.(a9) checking whether the value of the stored position increment is '0', and repeating step a4 or less until the value is '0' if it is not '0'. 제13항에 있어서, 상기 단계 a3은,The method of claim 13, wherein step a3, 제1 최대 이동 속도를 MAX_VELOCITY, 상기 분당 회전수를 RPM, 상기 분당 회전수의 정밀도를 RESOLUTION, 그리고 상기 파라메터 관리 프로그램에서 처리된 로봇의 동작 속도를 PARA_PTP_SPEED라 하면, MAX_VELOCITY = (RPM/60)·RESOLUTION·샘플링 주기·(PARA_PTP_SPEED/100) 식에 의하여 계산되는것을 그 특징으로 하는 로봇 제어기.MAX_VELOCITY = (RPM / 60) · RESOLUTION when the first maximum moving speed is MAX_VELOCITY, the revolutions per minute RPM, the precision of the revolutions per minute is RESOLUTION, and the operation speed of the robot processed by the parameter management program is PARA_PTP_SPEED. Sampling period: Robot controller characterized in that it is calculated by the formula (PARA_PTP_SPEED / 100). 제14항에 있어서, 상기 단계 a5는,The method of claim 14, wherein step a5, 제2 최대 이동 속도를 NEW_MAX_VELOCITY, 그리고 상기 속도 변화율을 TP_SPEED라 하면, NEW_MAX_VELOCITY = MAX_VELOCITY·(TP_SPEED/100) 식에 의하여 계산되는 것을 그 특징으로 하는 로봇 제어기.And the second maximum moving speed is NEW_MAX_VELOCITY, and the speed change rate is TP_SPEED.
KR1019960037685A 1996-08-31 1996-08-31 Robot controller KR0183922B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960037685A KR0183922B1 (en) 1996-08-31 1996-08-31 Robot controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960037685A KR0183922B1 (en) 1996-08-31 1996-08-31 Robot controller

Publications (2)

Publication Number Publication Date
KR19980017864A true KR19980017864A (en) 1998-06-05
KR0183922B1 KR0183922B1 (en) 1999-05-01

Family

ID=19472404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960037685A KR0183922B1 (en) 1996-08-31 1996-08-31 Robot controller

Country Status (1)

Country Link
KR (1) KR0183922B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100575322B1 (en) * 1998-12-31 2007-11-09 주식회사 로보테크 Robot teaching pendant
KR101142762B1 (en) * 2009-09-30 2012-05-21 한양대학교 산학협력단 Operating controller of movable robot, operating control method thereof and movable robot system using the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100575322B1 (en) * 1998-12-31 2007-11-09 주식회사 로보테크 Robot teaching pendant
KR101142762B1 (en) * 2009-09-30 2012-05-21 한양대학교 산학협력단 Operating controller of movable robot, operating control method thereof and movable robot system using the same

Also Published As

Publication number Publication date
KR0183922B1 (en) 1999-05-01

Similar Documents

Publication Publication Date Title
US4528632A (en) Industrial articulated robot linear interpolation control device
US4064395A (en) Machine control system employing a programmable machine function controller
GB2038035A (en) Multiprocessor numerical control system
US7548795B2 (en) Numerical control system
CN100461053C (en) Numerical controller
JP4576260B2 (en) Motor control device
JPH1169886A (en) Drive control integrated circuit for stepping motor and stepping motor with drive control integrated circuit
US5373439A (en) Method for controlling the traveling path of a robot during acceleration and deceleration
KR0183922B1 (en) Robot controller
EP0070654A2 (en) Motion controller
US4503372A (en) Method and apparatus for sensing present position in position control system
US6842651B1 (en) Programmable controller having plural speed pattern generators
US6571138B1 (en) Location programming apparatus and location programming method
JPH1189291A (en) Acceleration/deceleration control method of motor
JPH04213707A (en) Angular positioning device
US5121040A (en) Positioning control apparatus
JP3130426B2 (en) Motor control device
US5392217A (en) Apparatus and method for controlling acceleration and deceleration for numerically controlled machine
US5909371A (en) Process of operating a numerical control with critical-time and non-critical-time processes in a real time system
JP2000163114A (en) Intra-interpolation curve acceleration and deceleration processing method
JP2996445B2 (en) Multi-axis drive
SU723514A1 (en) Grinding machine control device
JP2000139099A (en) Motor controller
JP2001245493A (en) Motor controller
SU1216102A1 (en) Automatic control device for transporting mechanism

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20061129

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee