KR100520779B1 - Multi joints position control device uning fpga - Google Patents
Multi joints position control device uning fpga Download PDFInfo
- Publication number
- KR100520779B1 KR100520779B1 KR10-2003-0001384A KR20030001384A KR100520779B1 KR 100520779 B1 KR100520779 B1 KR 100520779B1 KR 20030001384 A KR20030001384 A KR 20030001384A KR 100520779 B1 KR100520779 B1 KR 100520779B1
- Authority
- KR
- South Korea
- Prior art keywords
- position control
- axis position
- processor
- interpolator
- unit
- Prior art date
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60Q—ARRANGEMENT OF SIGNALLING OR LIGHTING DEVICES, THE MOUNTING OR SUPPORTING THEREOF OR CIRCUITS THEREFOR, FOR VEHICLES IN GENERAL
- B60Q1/00—Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor
- B60Q1/26—Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor the devices being primarily intended to indicate the vehicle, or parts thereof, or to give signals, to other traffic
- B60Q1/2696—Mounting of devices using LEDs
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60Q—ARRANGEMENT OF SIGNALLING OR LIGHTING DEVICES, THE MOUNTING OR SUPPORTING THEREOF OR CIRCUITS THEREFOR, FOR VEHICLES IN GENERAL
- B60Q1/00—Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor
- B60Q1/26—Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor the devices being primarily intended to indicate the vehicle, or parts thereof, or to give signals, to other traffic
- B60Q1/30—Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor the devices being primarily intended to indicate the vehicle, or parts thereof, or to give signals, to other traffic for indicating rear of vehicle, e.g. by means of reflecting surfaces
- B60Q1/302—Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor the devices being primarily intended to indicate the vehicle, or parts thereof, or to give signals, to other traffic for indicating rear of vehicle, e.g. by means of reflecting surfaces mounted in the vicinity, e.g. in the middle, of a rear window
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60Q—ARRANGEMENT OF SIGNALLING OR LIGHTING DEVICES, THE MOUNTING OR SUPPORTING THEREOF OR CIRCUITS THEREFOR, FOR VEHICLES IN GENERAL
- B60Q1/00—Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor
- B60Q1/26—Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor the devices being primarily intended to indicate the vehicle, or parts thereof, or to give signals, to other traffic
- B60Q1/34—Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor the devices being primarily intended to indicate the vehicle, or parts thereof, or to give signals, to other traffic for indicating change of drive direction
- B60Q1/343—Manually actuated switching arrangements therefor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60Q—ARRANGEMENT OF SIGNALLING OR LIGHTING DEVICES, THE MOUNTING OR SUPPORTING THEREOF OR CIRCUITS THEREFOR, FOR VEHICLES IN GENERAL
- B60Q1/00—Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor
- B60Q1/26—Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor the devices being primarily intended to indicate the vehicle, or parts thereof, or to give signals, to other traffic
- B60Q1/44—Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor the devices being primarily intended to indicate the vehicle, or parts thereof, or to give signals, to other traffic for indicating braking action or preparation for braking, e.g. by detection of the foot approaching the brake pedal
- B60Q1/444—Arrangement of optical signalling or lighting devices, the mounting or supporting thereof or circuits therefor the devices being primarily intended to indicate the vehicle, or parts thereof, or to give signals, to other traffic for indicating braking action or preparation for braking, e.g. by detection of the foot approaching the brake pedal with indication of the braking strength or speed changes, e.g. by changing shape or intensity of the indication
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R16/00—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
- B60R16/005—Electro-mechanical devices, e.g. switched
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60Q—ARRANGEMENT OF SIGNALLING OR LIGHTING DEVICES, THE MOUNTING OR SUPPORTING THEREOF OR CIRCUITS THEREFOR, FOR VEHICLES IN GENERAL
- B60Q2400/00—Special features or arrangements of exterior signal lamps for vehicles
- B60Q2400/20—Multi-color single source or LED matrix, e.g. yellow blinker and red brake lamp generated by single lamp
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
본 발명은 FPGA를 이용한 다 축 위치 제어장치에 관한 것으로, 특히 파이프 라인의 구조를 위해 PID 제어를 위한 다수개의 처리기와 하나의 보간기용 처리기가 동시에 실행되는 다 축 위치 제어장치에 관한 것이다.The present invention relates to a multi-axis position control apparatus using an FPGA, and more particularly, to a multi-axis position control apparatus in which a plurality of processors for PID control and a processor for an interpolator are simultaneously executed for a pipeline structure.
본 발명에 따른 다 축 위치 제어장치는 중앙처리장치가 내장된 로봇제어 시스템의 다 축 위치 제어장치에 있어서, 상기 중앙처리장치와 통신하여 목표위치 데이터를 전달받는 연결부와, 상기 중앙처리장치로부터 전달되는 목표위치 데이터에 따라 보간 구간을 분할하는 보간기와, 상기 보간기로부터 전달되는 상기 목표위치 데이터에 의한 다 축 위치 제어신호를 출력하는 제어 출력부와, 상기 다 축 위치 제어신호의 결과값을 실시간으로 전달받아 병렬신호로 변환하는 되먹임 입력부와, 상기 보간기로부터 전달되는 상기 목표위치 데이터와 상기 되먹임 입력부로부터 변환된 다 축 위치 제어신호의 결과값에 따라 비례미분적분 제어계산을 수행하는 앞먹임 PID 제어기로 구성되는 것을 특징으로 한다.The multi-axis position control apparatus according to the present invention is a multi-axis position control apparatus of a robot control system having a central processing unit, the connection portion receiving the target position data by communicating with the central processing unit, and transfers from the central processing unit An interpolator for dividing the interpolation section according to the target position data, a control output unit for outputting the multi-axis position control signal based on the target position data transmitted from the interpolator, and a result value of the multi-axis position control signal in real time. A feedback input unit for converting a parallel signal into a parallel signal, and performing a proportional derivative control calculation according to a result value of the target position data transmitted from the interpolator and the multi-axis position control signal converted from the feedback input unit. It is characterized by consisting of a controller.
Description
본 발명은 FPGA를 이용한 다 축 위치 제어장치에 관한 것으로, 특히 파이프 라인의 구조를 위해 PID 제어를 위한 다수개의 처리기와 하나의 보간기용 처리기가 동시에 실행되는 다 축 위치 제어장치에 관한 것이다.The present invention relates to a multi-axis position control apparatus using an FPGA, and more particularly, to a multi-axis position control apparatus in which a plurality of processors for PID control and a processor for an interpolator are simultaneously executed for a pipeline structure.
이동형 로봇 개발에 있어서 기존의 로봇 제어 시스템의 크기와 전력 소모는 많은 부담으로 느껴져 왔다. 기존의 로봇 제어 시스템은 제어를 위해 DSP나 마이크로 콘트롤러를 사용하였다. 이는 많은 부가적인 회로를 필요로 하고 이에 따른 추가적인 전력을 소모하여야 한다. 이러한 보드 레벨 축 제어기를 다 축에 적용하기 위해서는 제한된 프로세서 능력으로 복수의 보드가 필요하거나 개발의 어려움이 있는 고성능 DSP를 필요하게 된다.In developing a mobile robot, the size and power consumption of a conventional robot control system have been felt to be a heavy burden. Conventional robot control systems use DSPs or microcontrollers for control. This requires many additional circuits and therefore consumes additional power. In order to apply such a board-level axis controller to multiple axes, a plurality of boards are required with limited processor capability or a high performance DSP with difficulty in development is required.
또한, CPU의 발전에 따른 PC의 성능이 월등히 좋아짐에 따라 로봇 제어기의 형태가 독립적인 보드 개발에서 PC 기반의 시스템으로 전환되고 있다. 이러한 추세에 맞추어 PC를 산업용 제어기에 적용하기 위한 RTOS(Real Time Operating System)의 개발이 활발히 이루어지고 있다. 로봇 제어기가 RTOS를 이용한 PC 기반으로 전환되는데에는 Context Switching에 따른 다음과 같은 어려운 점을 가지고 있다.In addition, as the performance of the PC is greatly improved due to the development of the CPU, the robot controller is shifting from an independent board development to a PC-based system. In line with this trend, the development of a real time operating system (RTOS) for applying a PC to an industrial controller is being actively performed. The robot controller is converted to PC based using RTOS and has the following difficulties due to context switching.
주기적인 고주파 샘플링 시간에 동작해야 하는 축 위치 제어부를 PC를 이용하여 개발하게 되면 RTOS에서는 주기적인 인터럽트에 의한 Context Switching이 발생한다. Context Switching 작업은 순차적으로 실행되는 CPU에서 인터럽트 이전에 수행하던 작업을 정리하고, 새로운 작업을 위해 준비하는 작업이다. PC로 축 위치 제어부를 개발하게 되면, 위치 제어를 위한 계산 시간보다 더 많은 시간을 Context Switching에 소비하여야만 한다는 단점이 있다.If the axis position control part that needs to operate at periodic high frequency sampling time is developed by using PC, Context Switching by periodic interrupt occurs in RTOS. Context Switching is a task that cleans up tasks that were performed before interruption in a sequentially executed CPU and prepares them for new tasks. Developing an axis position controller with a PC has the disadvantage of spending more time in context switching than computation time for position control.
더구나, 모션 제어에 있어 움직이는 순간과 움직이지 않는 순간에 계산량이 다르다는 것이다. 로봇이 움직이는 순간에는 위치제어뿐 아니라, 궤적 발생, 역기구학 등의 로봇 의존적인 계산이 필요한 반면, 로봇이 움직이지 않는 순간에는 정지를 위한 위치제어 작업만 수행한다. 따라서 로봇 움직임이 없는 때 비교적 계산시간이 적은 위치 제어를 위해 Context Switching 시간을 허비하는 것은 CPU를 효율적으로 이용하지 못하는 것이다. 특히 로봇 시스템은 모션 제어뿐 아니라 센서 연결, 사용자 연결, 인텔리젼트 작업 등의 복합적인 작업을 하는 시스템이므로, 불필요한 CPU 활용은 다른 작업에 방해하는 요인이 될 수 있다.Moreover, in motion control, the amount of computation is different at the moment of motion and at the moment of motion. At the moment the robot moves, robot-dependent calculations such as trajectory generation and inverse kinematics are required, while at the moment the robot does not move, only the position control operation for stopping is performed. Therefore, wasteing the context switching time for the position control which requires relatively little computation time when there is no robot movement does not use the CPU efficiently. In particular, since the robot system is a system that performs complex tasks such as sensor connection, user connection, and intelligent operation as well as motion control, unnecessary CPU utilization may be a factor that interferes with other tasks.
따라서, 본 발명의 목적은 상기와 같은 단점을 보완하기 위해 디지털 회로를 하나의 칩에 집적하여 보드의 부피를 감소시킴과 동시에 파이프 라인 구조를 이용하여 다 축 적용시 같은 시간에 더 많은 제어계산을 가능하게 하는 다 축 위치 제어장치를 제공함에 있다.Accordingly, an object of the present invention is to reduce the volume of the board by integrating the digital circuit in one chip to compensate for the above disadvantages, and at the same time more control calculation at the same time in the multi-axis application using the pipeline structure It is to provide a multi-axis position control device that makes it possible.
또한, 하드웨어 보간기를 이용하여 Context Switching에 의한 CPU에 부담을 덜어준다.Also, the hardware interpolator is used to reduce the burden on the CPU by context switching.
상기 목적을 달성하기 위한 본 발명의 다 축 위치 제어장치는 중앙처리장치가 내장된 로봇제어 시스템의 다 축 위치 제어장치에 있어서, 상기 중앙처리장치와 통신하여 목표 위치 데이터를 전달받는 연결부-상기 연결부는 상기 중앙처리장치와 상기 다 축 위치 제어 프로세서의 상호 배제적인 접근을 위하여 상기 중앙처리장치에서 상기 다 축 위치 제어 프로세서로의 더블 버퍼와, 상기 다 축 위치 제어 프로세서에서 상기 중앙처리장치로의 더블 버퍼로 구성됨-와, 상기 중앙처리장치로부터 전달되는 목표 위치 데이터에 따라 보간 구간을 분할하는 보간기와, 상기 보간기로부터 전달되는 상기 목표 위치 데이터에 의한 다 축 위치 제어신호를 출력하는 제어 출력부와, 상기 다 축 위치 제어신호의 결과값을 실시간으로 전달받아 병렬신호로 변환하는 되먹임 입력부와, 상기 보간기로부터 전달되는 상기 목표 위치 데이터와 상기 되먹임 입력부로부터 변환된 다 축 위치 제어신호의 결과값에 따라 비례미분적분 제어계산을 수행하는 앞먹임 PID 제어기를 포함한다.여기서 상기 제어 출력부는 상기 다 축 위치 제어신호를 아날로그 신호로 변환하는 DA 제어신호 발생부와, 상기 다 축의 모터를 구동하기 위한 신호를 발생시키는 PWM 신호 발생부로 구성된다.또한 상기 앞먹임 PID 제어기는 P 오차, I 오차, D 오차를 구하고 앞먹임 값은 입력값을 출력값으로 바로 바이패스하는 곱셈 전 처리기와, 상기 중앙처리장치에서 상기 다 축 위치 제어 프로세서 방향으로의 더블 버퍼에 저장된 게인 값과 이전에 나온 오차값을 곱셈 처리하는 곱셈 처리기와, 다수개의 덧셈기와 쉬프트 레지스터로 구성되어 상기 곱셈 처리기에서의 출력값을 서로 더하는 곱셈 후 처리기로 구성된다.또한 상기 보간기와 상기 앞먹임 PID 제어기는 파이프라인 구조로 이루어진다.The multi-axis position control device of the present invention for achieving the above object is a multi-axis position control device of the robot control system with a built-in central processing unit, the connection unit receiving the target position data in communication with the central processing unit-the connection unit A double buffer from the central processing unit to the multi-axis position control processor and a double buffer from the multi-axis position control processor to the central processing unit for mutually exclusive access of the central processing unit and the multi-axis position control processor. And an interpolator for dividing the interpolation section according to the target position data transmitted from the central processing unit, and a control output unit for outputting a multi-axis position control signal based on the target position data transmitted from the interpolator. Receiving the result of the multi-axis position control signal in real time and converting the result into a parallel signal. And a feed-in PID controller configured to perform proportional differential control calculation according to a result of the target position data transmitted from the interpolator and the multi-axis position control signal converted from the feedback input unit. The output unit is composed of a DA control signal generator for converting the multi-axis position control signal into an analog signal, and a PWM signal generator for generating a signal for driving the motor of the multi-axis. A pre-multiplier processor that bypasses an input value to an output value by calculating the I error, D error, and the front feed value, and the gain value previously stored in the double buffer from the CPU to the multi-axis position control processor A multiplication processor for multiplying values, a plurality of adders and shift registers It consists of a multiplication post-processor that adds the output values from each other in. In addition, the interpolation group and the feed forward PID controller comprises a pipeline.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 실시예에 의한 로봇제어 시스템의 블록 구성도이다.1 is a block diagram of a robot control system according to an embodiment of the present invention.
도시된 바와 같이, 본 발명은 크게 그래픽 사용자 인터페이스(GUI)(10)와, 미들웨어부(20)와, 네트워크부(30)와, 모션 컨트롤(motion control)부(40)와, 센서 컨트롤(sensor control)부(50)와, 다 축 위치 제어프로세서(multi joint position control processor)(60)와, 모터 구동부(70)와, 센서데이터 입력부(80)와, 다수개의 모터(90) 및 센서(100)로 구성된다.As shown, the present invention largely includes a graphical user interface (GUI) 10, a middleware unit 20, a network unit 30, a motion control unit 40, and a sensor control unit. control unit 50, multi joint position control processor 60, motor drive unit 70, sensor data input unit 80, a plurality of motors 90 and sensors 100 It is composed of
상기 그래픽 사용자 인터페이스(10)는 사용자가 로봇을 제어하기 위해 명령을 주거나 로봇의 상태를 모니터링할 수 있는 인터페이스이다.The graphical user interface 10 is an interface that allows a user to give a command or monitor the status of the robot to control the robot.
상기 모션 컨트롤부(40)는 상기 그래픽 사용자 인터페이스(10)를 통한 상기 사용자의 명령을 상기 미들웨어부(20)를 통해 전달받아 로봇의 속도, 위치, 좌표 제어등을 수행한다.The motion control unit 40 receives the user's command through the graphical user interface 10 through the middleware unit 20 to perform the speed, position, coordinate control of the robot.
상기 다축위치 제어프로세서(60)는 상기 모션 컨트롤부(40)로부터 전달되는 목표 위치값에 따라 로봇의 다수개의 축의 위치를 제어한다. 여기서, 다수개의 축은 동기화되어 위치제어되거나 아니면, 특정 축만이 위치제어될 수 있다.The multi-axis position control processor 60 controls the position of the plurality of axes of the robot in accordance with the target position value transmitted from the motion control unit 40. Here, the plurality of axes can be synchronized and positioned or only a specific axis can be positioned.
상기 모터 구동부(70)는 상기 다축위치 제어프로세서(60)의 제어에 의해 다수개의 축이 상기 목표 위치값만큼 제어될 수 있도록 상기 모터(90)를 구동한다.The motor driver 70 drives the motor 90 so that a plurality of axes can be controlled by the target position value by the control of the multi-axis position control processor 60.
상기 센서(100)는 로봇의 각종 상태를 상기 사용자가 인식할 수 있도록 하기 위해 로봇의 특정 부위에 설치되어 감지된 데이터를 상기 센서데이터 입력부(80)로 전달한다.The sensor 100 transmits the sensed data installed in a specific part of the robot to the sensor data input unit 80 so that the user can recognize various states of the robot.
상기 센서 컨트롤부(50)는 상기 센서데이터 입력부(80)로부터 전달되는 상기 로봇의 상태 감지 데이터를 실시간으로 입력받아 상기 그래픽 사용자 인터페이스(10)로 전달함에 따라 상기 사용자는 다수개의 센서로부터 전달되는 상기 로봇의 상태를 실시간으로 확인할 수 있게 된다.The sensor controller 50 receives the state detection data of the robot transmitted from the sensor data input unit 80 in real time and transmits the detected state data to the graphic user interface 10 so that the user is transferred from a plurality of sensors. The status of the robot can be checked in real time.
그리고, 상기 네트워크부(30)는 상기 사용자가 본 발명의 로봇제어 시스템과 네트웍으로 형성된 단말기와 통신을 하여 데이터를 송수신하는데 사용되고, 상기 미들웨어부(20)는 상기 그래픽 사용자 인터페이스(10)와, 상기 네트워크부(30), 상기 모션 컨트롤부(40) 및 상기 센서 컨트롤부(50)의 매개체 역할을 수행하여 상호간에 연합될 수 있도록 한다.In addition, the network unit 30 is used by the user to communicate with the terminal formed of the network and the robot control system of the present invention to transmit and receive data, the middleware unit 20 is the graphical user interface 10 and the It serves as a medium of the network unit 30, the motion control unit 40 and the sensor control unit 50 to be associated with each other.
상기와 같이 구성되는 본 발명의 로봇제어 시스템은 상위 제어기의 개발을 지원하기 위해 오픈 소스의 범용 운영체제인 리눅스(Linux)를 사용하여 구현하였다. 특히, 상기 모션 컨트롤부(40)와 상기 센서 컨트롤부(50)의 실시간 처리를 위해 리눅스의 드라이버 모듈의 형태로 실시간 처리를 지원하는 실시간 운영체제인 RT(Real Time) 리눅스를 사용하였다.The robot control system of the present invention configured as described above is implemented using Linux, which is an open source general-purpose operating system, to support the development of the upper level controller. In particular, for real-time processing of the motion control unit 40 and the sensor control unit 50, RT (Real Time) Linux, which is a real-time operating system that supports real-time processing in the form of a driver module of Linux, was used.
도 2는 도 1의 모션 컨트롤부의 구성을 나타내는 블록 구성도이다.FIG. 2 is a block diagram illustrating a configuration of the motion control unit of FIG. 1.
도시된 바와 같이, 본 발명의 모션 컨트롤부(40)는 리눅스의 드라이버 모듈의 형태로 실시간 운영체제의 지원하에 구동되며 커맨드 디코더(41)와, 궤적 발생부(42)와, 역기구학 계산부(43)와, 인터페이스 컨트롤부(44)와, 기구학 계산부(45)로 구성된다.As shown, the motion control unit 40 of the present invention is driven under the support of a real-time operating system in the form of a driver module of Linux, and includes a command decoder 41, a trajectory generating unit 42, and an inverse kinematic calculation unit 43. ), An interface control unit 44, and a kinematic calculation unit 45.
상기 커맨드 디코더(41)는 상기 도 1에서 설명한 미들웨어부(20)와의 인터페이싱 처리를 한다.The command decoder 41 performs an interfacing process with the middleware unit 20 described with reference to FIG. 1.
그리고, 상기 궤적 발생부(42)는 로봇의 가속, 감속, 등속에 관한 계산을 하고, 상기 역기구학 계산부(43)는 로봇의 다수개의 축 값을 계산하며, 상기 기구학 계산부(45)는 상기 축 값으로부터 월드(world) 좌표값을 계산하여 상기 커맨드 디코더(41)로 전달한다.The trajectory generation unit 42 calculates acceleration, deceleration, and constant velocity of the robot, and the inverse kinematic calculation unit 43 calculates a plurality of axis values of the robot, and the kinematic calculation unit 45 A world coordinate value is calculated from the axis value and transmitted to the command decoder 41.
상기 인터페이스 컨트롤부(44)는 다축위치 제어프로세서(60)와의 인터페이싱 처리를 한다.The interface control unit 44 performs an interfacing process with the multi-axis position control processor 60.
도 3은 도 1의 다축위치 제어프로세서의 구성을 나타내는 블록 구성도이다.3 is a block diagram illustrating a configuration of the multi-axis position control processor of FIG. 1.
도시된 바와 같이, 본 발명의 다축위치 제어프로세서(60)는 크게 계산장치(110)와, 주변장치(120)와, 레지스터(130)로 구성된다.As shown, the multi-axis position control processor 60 of the present invention is largely composed of a computing device 110, a peripheral device 120, and a register 130.
상기 계산장치(110)는 보간기(interpolator)(111)와 앞먹임 PID 제어기(112)로 구성되고, 상기 주변장치(120)는 상위 CPU 연결부(121)와 되먹임 입력부(122)와 제어출력부(123)로 구성된다.The computing device 110 is composed of an interpolator 111 and a feedback PID controller 112, the peripheral device 120 is the upper CPU connection unit 121, feedback input unit 122 and the control output unit It consists of 123.
상기 보간기(111)는 선형 보간기로써 계산시간이 많이 걸리는 궤적 발생, 역기구학 등의 로봇 의존적인 계산시간 때문에 제어 샘플링 시간이 길어지는 것을 방지한다. 이러한 보간기(111)는 다음의 수식1과 같은 선형 방식으로 i는 0보다 크고 2m보다 같거나 작은 정수이다.The interpolator 111 is a linear interpolator and prevents the control sampling time from lengthening due to robot-dependent calculation time such as trajectory generation and inverse kinematics that require a lot of calculation time. The interpolator 111 is an integer greater than 0 and less than or equal to 2 m in a linear manner as shown in Equation 1 below.
Pp(i) = i×(Pd-P)/2m+Pdp -------------------- (수식1)P p (i) = i × (P d -P) / 2 m + P dp -------------------- (Equation 1)
하드웨어 구현에서 보간기는 보다 간단한 형태를 가질 수 있다. 도 4는 부호방식의 보간기 회로의 구성을 나타낸다. 부호방식의 보간기는 양방향 모터 구동을 가능하게 한다.In a hardware implementation, an interpolator may have a simpler form. 4 shows the configuration of a coded interpolator circuit. The coded interpolator enables bidirectional motor drive.
상기 앞먹임 PID 제어기(112)는 앞먹임 PID 제어계산을 수행하는 것으로써 앞먹임 값을 가능하게 하여 속도, 가속도, 저크 등의 상위 CPU(200)에서 결정된 값에 의해 앞먹임 가능하며, 아래와 같은 I saturation 방식의 앞먹임 PID 제어식인 수식2를 사용한다.The front feed PID controller 112 enables the front feed value by performing the front feed PID control calculation and can feed the feed by the value determined in the upper CPU 200 such as speed, acceleration, jerk, and the like. Equation 2, which is a front-feed PID control of I saturation method, is used.
m(n)=1/2GS[KP×e(n)+Ki×s(n)+Kd×{e(n)-e(n-1)}+f(n)] --------- (수식2)m (n) = 1/2 GS [K P × e (n) + K i × s (n) + K d × {e (n) -e (n-1)) + f (n)] - ------- (Equation 2)
상기 수식2의 하드웨어 구현에 있어 공통적으로 사용되는 요소를 기준으로 3 개의 처리기로 나뉘었다. 특히 한 클럭 내에 출력 가능한 곱셈 회로는 비교적 많은 양의 회로를 가지고, 이로 인해 처리시간 또한 길다는 특성이 있다.The processor is divided into three processors based on elements commonly used in the hardware implementation of Equation 2. In particular, a multiplication circuit capable of outputting in one clock has a relatively large amount of circuits, and therefore, processing time is long.
본 발명에서는 기능적인 그리고 회로적인 요인으로 상기 앞먹임 PID 제어기(112)는 도 5에 도시된 바와 같이 곱셈 전 처리기(112a)와, 곱셈 처리기(112b)와, 곱셈 후 처리기(112c)로 구분된다.In the present invention, as a functional and circuit factor, the front PID controller 112 is divided into a pre-multiplication processor 112a, a multiplication processor 112b, and a multiplication processor 112c as shown in FIG. .
상기 곱셈 전 처리기(112a)는 P 오차인 e(n), I 오차인 s(n), D 오차인 (e(n)-e(n-1))를 구하고, 앞먹임 값은 입력값을 출력값으로 바로 bypass한다.The pre-multiplication processor 112a obtains the P error, e (n), the I error, s (n), and the D error, (e (n) -e (n-1)). Directly bypass the output value.
상기 곱셈 처리기(112b)는 상기 상위 CPU(200)에서 다축위치 제어프로세서(60) 방향의 더블 버퍼에 저장된 게인 값과 이전에 나온 오차값을 곱셈 처리한다.The multiplication processor 112b multiplies the gain value stored in the double buffer in the direction of the multi-axis position control processor 60 by the upper CPU 200 and the previously obtained error value.
상기 곱셈 후 처리기(112c)는 몇 개의 덧셈기와 몇 개의 쉬프트 레지스터로 구성되며, 상기 곱셈 처리기(112b)에서의 출력 값을 서로 더하고 제어출력장치에게 그 합을 넘겨준다.The multiplication processor 112c is composed of several adders and several shift registers, and adds the output values of the multiplication processor 112b to each other and passes the sums to the control output device.
상기 보간기(111)와 상기 앞먹임 PID 제어기(112)의 곱셈 전 처리기(112a)와, 곱셈 처리기(112b)와, 곱셈 후 처리기(112c)는 동시에 실행되며 동시에 접근 가능한 레지스터 그룹(112d)을 가지고 있다.The pre-multiplication processor 112a, the multiplication processor 112b, and the multiplication processor 112c of the interpolator 111 and the front feed PID controller 112 are executed simultaneously and simultaneously accessible to the register group 112d. Have.
특히, 상기 계산장치(110)는 단 하나의 장치로 다 축을 제어하는 방식인 파이프 라인 구조로 구현된다.In particular, the calculation device 110 is implemented in a pipeline structure that is a method of controlling multiple axes with only one device.
또한, 상기 보간기(111)와 상기 곱셈 전 처리기(112a), 곱셈 처리기(112b), 곱셈 후 처리기(112c)의 연결을 위해 하나의 순차기(미도시됨)가 사용되는데 이 순차기의 값에 의해 각 처리기가 가지고 있는 마이크로 코드에 따라 프로세서가 처리해야 할 작업들이 선정되고, 또한 이 순차기의 값에 따라 각 처리기에 입출력 될 레지스터 그룹(112d)과 2개의 더블버퍼(112e)에 저장되어 있는 데이터의 주소값이 결정되게 된다.In addition, one sequencer (not shown) is used to connect the interpolator 111, the pre-multiplication processor 112a, the multiplication processor 112b, and the multiplication processor 112c. According to the microcode of each processor, the tasks to be processed by the processor are selected, and according to the values of the sequencers, the tasks are stored in the register group 112d and the two double buffers 112e to be input and output to each processor. The address value of the existing data is determined.
이어서, 상기 주변장치(120)의 상위 CPU 연결부(121)는 상위 CPU(200)와 다축위치 제어프로세서(60)의 상호 배제적인 접근을 위해서 더블 버퍼를 이용하여 구현된다.Subsequently, the upper CPU connection unit 121 of the peripheral device 120 is implemented using a double buffer for mutually exclusive access of the upper CPU 200 and the multi-axis position control processor 60.
상기 더블 버퍼는 도 6에 도시된 바와 같이 두 개의 접근면을 가지고 있고, A면에서 접근하는 메모리와 B면에서 접근하는 메모리가 메모리 선택 신호(Memory Selection Signal)에 따라 항상 다르게 구현되어 있는 형태이다.As shown in FIG. 6, the double buffer has two access surfaces, and the memory accessed from the A surface and the memory accessed from the B surface are always implemented differently according to the memory selection signal. .
이는 양방향 메모리를 사용하였을 경우 발생하는 상호 배제 문제를 해결하기 위함이다. 즉, 상기 상위 CPU(200)에서 상기 다축위치 제어프로세서(60)로의 연결에 1개, 상기 다축위치 제어프로세서(60)에서 상기 상위 CPU(200)로의 연결에 1개로 할당된다. 여기서, 양방향 더블 버퍼를 사용하지 않고, 단방향 더블 버퍼를 2개 사용한 이유는 서로 데이터 전송하는 시기가 다르고, 필요에 따라 둘 중에 하나의 더블 버퍼로는 데이트 전송이 발생하지 않을 수가 있기 때문이다. 각 더블 버퍼에는 다음의 표 1과 같은 데이터가 저장된다.This is to solve the mutual exclusion problem that occurs when the bidirectional memory is used. That is, one is allocated to a connection from the upper CPU 200 to the multi-axis position control processor 60 and one to a connection from the multi-axis position control processor 60 to the upper CPU 200. The reason why two bidirectional double buffers are not used and two unidirectional double buffers is used is that the data transfer time is different from each other, and data transfer may not occur with one of the double buffers if necessary. Each double buffer stores the data shown in Table 1 below.
상기 되먹임 입력부(122)는 모터의 엔코더 신호를 입력받아 위치 되먹임을 추출하는데 사용하는 것으로써 4 채배 엔코더 해석기, 계수기, 1bit time 외란 제거기로 구분되며 제어 축 수에 비례한 개수가 필요하다. 특히, 상기 1bit time 외란 제거기는 엔코더 신호에 임펄스 노이즈를 제거하는 기능을 수행한다.The feedback input unit 122 is used to extract the position feedback by receiving the encoder signal of the motor. The feedback input unit 122 is classified into a 4-fold encoder analyzer, a counter, and a 1-bit time disturbance remover, and requires a number proportional to the number of control axes. In particular, the 1-bit time disturbance canceller removes impulse noise from the encoder signal.
상기 제어출력부(123)는 외부 서보 구동을 위한 직렬 DA 제어신호 발생부(123a)와 PWM 신호 발생부(123b)로 구분된다.The control output unit 123 is divided into a serial DA control signal generator 123a and a PWM signal generator 123b for external servo driving.
상기 직렬 DA 제어신호 발생부(123a)는 아나로그 제어 입력을 받는 외부 서보를 지원하기 위해 직렬 주변 장치 연결 프로토콜로 DA에 아날로그 값에 대응하는 디지털 값을 출력하는 회로이다.The serial DA control signal generator 123a is a circuit that outputs a digital value corresponding to an analog value to the DA as a serial peripheral connection protocol to support an external servo receiving an analog control input.
상기 PWM 신호 발생부(123b)는 DC 모터 구동 위해 같은 주기에 듀티비를 달리하여 원하는 값을 출력하는 회로이다. 하나의 기준계수기에 원하는 축 수 만큼의 비교기로 구현 가능하다. DC 모터를 H-Bridge로 구동하는데 유용하게 사용될 수 있다.The PWM signal generator 123b is a circuit that outputs a desired value by varying the duty ratio in the same period for driving the DC motor. One reference counter can be implemented with as many comparators as you want. This can be useful for driving a DC motor with H-Bridge.
도 7에서는 기준 계수기의 하위 2 비트인 stage에 의해 각 계산유닛이 수행하여야 하는 PID 제어계산이 어떠한 계산을 수행하는지를 보여주며, 도 8은 계수기의 상위 비트에 의해 축 번호와 보간기에서 사용하는 I와 더블버퍼의 메모리 선택 신호와 상위 CPU와의 연결을 위한 인터럽트 발생 시기를 나타내는 것이다.In FIG. 7, the PID control calculation that each calculation unit should perform is performed by a stage, which is the lower two bits of the reference counter, and FIG. 8 shows the axis number and I used in the interpolator by the upper bits of the counter. And the interrupt selection for the connection between the memory selection signal of the double buffer and the upper CPU.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the scope of the following claims, but also by those equivalent to the scope of the claims.
상술한 바와 같이, 디지털 회로를 하나의 칩에 집적함으로써 보드의 부피를 감소시킴과 동시에 파이프 라인 구조를 이용함으로써 다 축 적용시 같은 시간에 더 많은 제어계산을 가능하게 할 수 있다.As described above, by integrating the digital circuit into one chip, the board volume can be reduced, and the pipeline structure can be used to enable more control calculations at the same time in multi-axis applications.
또한, 하드웨어 보간기를 이용하여 Context Switching에 의한 CPU에 부담을 덜어준다.Also, the hardware interpolator is used to reduce the burden on the CPU by context switching.
또한, FPGA를 이용하여 보드상에서 재 프로그램을 함으로써 모터 축 수 또는 제어방식 또는 CPU 연결방식의 변화에 개발시간을 단축할 수 있다는 효과가 있다.In addition, reprogramming on the board using FPGAs can reduce development time due to changes in the number of motor axes, control methods, or CPU connections.
도 1은 본 발명의 실시예에 의한 로봇제어 시스템의 블록 구성도.1 is a block diagram of a robot control system according to an embodiment of the present invention.
도 2는 도 1의 모션 컨트롤부의 구성을 나타내는 블록 구성도.FIG. 2 is a block diagram illustrating a configuration of the motion control unit of FIG. 1. FIG.
도 3은 도 1의 다축위치 제어프로세서의 구성을 나타내는 블록 구성도.3 is a block diagram showing the configuration of the multi-axis position control processor of FIG.
도 4는 부호방식의 보간기 회로의 구성을 나타내는 블록 구성도.Fig. 4 is a block diagram showing the structure of a coded interpolator circuit.
도 5는 본 발명의 실시예에 의한 앞먹임 PID 제어기의 구성을 나타내는 블록 구성도.Figure 5 is a block diagram showing the configuration of the front feed PID controller according to an embodiment of the present invention.
도 6은 본 발명의 실시예에 의한 더블 버퍼의 구성을 나타내는 블록 구성도.6 is a block diagram showing the configuration of a double buffer according to an embodiment of the present invention;
도 7은 본 발명의 실시예에 의한 계산장치에 의해 수행되는 PID 제어계산방법을 나타내는 도면.7 is a diagram showing a PID control calculation method performed by a calculation device according to an embodiment of the present invention.
도 8은 본 발명의 실시예에 의한 상위 CPU와의 연결을 위한 계산과정을 나타내는 도면.< 도면의 주요부분에 대한 부호 설명>8 is a diagram illustrating a calculation process for connection with a higher CPU according to an embodiment of the present invention.
삭제delete
10 : 그래픽 사용자 인터페이스 20 : 미들웨어부10: graphical user interface 20: middleware unit
30 : 네트워크부 40 : 모션 컨트롤부30: network portion 40: motion control portion
41 : 커맨드 디코더 42 : 궤적 발생부41: command decoder 42: trajectory generation unit
43 : 역기구학 계산부 44 : 인터페이스 컨트롤부43: inverse kinematics calculation unit 44: interface control unit
45 : 기구학 계산부 50 : 센서 컨트롤부45: kinematic calculation unit 50: sensor control unit
60 : 다축위치 제어프로세서 70 : 모터 구동부60: multi-axis position control processor 70: motor drive unit
80 : 센서데이터 입력부 90 : 다수개의 모터80: sensor data input unit 90: a plurality of motors
100 : 센서 110 : 계산장치100: sensor 110: calculator
111 : 보간기 112 : 앞먹임 PID 제어기111: interpolator 112: front feed PID controller
120 : 주변장치 121 : 상위 CPU 연결부120: peripheral device 121: upper CPU connection
122 : 되먹임 입력부 123 : 제어출력부122: feedback input unit 123: control output unit
130 : 레지스터130: register
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0001384A KR100520779B1 (en) | 2003-01-09 | 2003-01-09 | Multi joints position control device uning fpga |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0001384A KR100520779B1 (en) | 2003-01-09 | 2003-01-09 | Multi joints position control device uning fpga |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040064104A KR20040064104A (en) | 2004-07-16 |
KR100520779B1 true KR100520779B1 (en) | 2005-10-12 |
Family
ID=37354772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2003-0001384A KR100520779B1 (en) | 2003-01-09 | 2003-01-09 | Multi joints position control device uning fpga |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100520779B1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170034755A (en) * | 2015-09-21 | 2017-03-29 | 주식회사 레인보우 | A realtime robot control system coupled gpos and a realtime device control system |
WO2017052061A1 (en) * | 2015-09-21 | 2017-03-30 | 주식회사 레인보우 | Gpos-connected real-time robot control system and real-time device control system using same |
WO2017052059A1 (en) * | 2015-09-21 | 2017-03-30 | 주식회사 레인보우 | Real-time control system, real-time control device and system control method |
KR102004228B1 (en) * | 2018-01-31 | 2019-07-26 | 강원대학교산학협력단 | The universal high speed/precision controller for six axis manipulator |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101313245B1 (en) * | 2012-02-10 | 2013-09-30 | 삼성중공업 주식회사 | Motion control Chip |
CN106998165A (en) * | 2017-04-27 | 2017-08-01 | 佛山三电智能科技有限公司 | A kind of multiaxis electric current loop implementation method of FPGA |
-
2003
- 2003-01-09 KR KR10-2003-0001384A patent/KR100520779B1/en active IP Right Grant
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170034755A (en) * | 2015-09-21 | 2017-03-29 | 주식회사 레인보우 | A realtime robot control system coupled gpos and a realtime device control system |
WO2017052061A1 (en) * | 2015-09-21 | 2017-03-30 | 주식회사 레인보우 | Gpos-connected real-time robot control system and real-time device control system using same |
WO2017052059A1 (en) * | 2015-09-21 | 2017-03-30 | 주식회사 레인보우 | Real-time control system, real-time control device and system control method |
CN108025436A (en) * | 2015-09-21 | 2018-05-11 | 株式会社虹之机器 | Real-time control system, real-time control apparatus and system control method |
CN108136577A (en) * | 2015-09-21 | 2018-06-08 | 株式会社虹之机器 | General-purpose operating system coordinated type real-time machine people control system and utilize its real-time device control system |
US10864635B2 (en) | 2015-09-21 | 2020-12-15 | Rainbow Robotics | GPOS-connected real-time robot control system and real-time device control system using same |
KR102235947B1 (en) * | 2015-09-21 | 2021-04-05 | 주식회사 레인보우로보틱스 | A realtime robot control system coupled gpos and a realtime device control system |
US11135719B2 (en) | 2015-09-21 | 2021-10-05 | Rainbow Robotics | Real-time control system, real-time control device and system control method |
CN108136577B (en) * | 2015-09-21 | 2021-10-08 | 株式会社虹之机器 | Universal operating system linkage type real-time robot control system and real-time equipment control system using same |
KR102004228B1 (en) * | 2018-01-31 | 2019-07-26 | 강원대학교산학협력단 | The universal high speed/precision controller for six axis manipulator |
Also Published As
Publication number | Publication date |
---|---|
KR20040064104A (en) | 2004-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Martinov et al. | From classic CNC systems to cloud-based technology and back | |
US5038089A (en) | Synchronized computational architecture for generalized bilateral control of robot arms | |
JP3282470B2 (en) | Numerical control device using personal computer and control method thereof | |
US7778814B2 (en) | Method and device for simulating an automation system | |
Tan et al. | Minimum time trajectory planner for the discrete dynamic robot model with dynamic constraints | |
KR100762366B1 (en) | System for controlling a robot by using a Field Programmable Gate Array device | |
KR100520779B1 (en) | Multi joints position control device uning fpga | |
CN108772839B (en) | Master-slave operation and man-machine integrated system | |
CN106774178B (en) | Automatic control system and method and mechanical equipment | |
Zieliński et al. | Mechatronic design of open-structure multi-robot controllers | |
KR100853167B1 (en) | System for Controlling a Robot of Network Based Embedded | |
EP0269374A3 (en) | Modular robot control system | |
CN111381552A (en) | Driving and control integrated technical framework | |
CN111384876A (en) | Dual-axis motor driving system and method based on dual-core processing | |
CN115314534A (en) | Real-time optimization simulation robot system based on EtherCAT communication protocol | |
Bejczy et al. | A synchronized computational architecture for generalized bilateral control of robot arms | |
Jean et al. | Efficient adaptive hybrid control strategies for robots in constrained manipulation | |
Lim et al. | Advanced motion control of mechatronic systems via a high-speed DSP and a parallel processing transputer network | |
CN115122302A (en) | Six-degree-of-freedom parallel platform master-slave control system based on IMU | |
Kozlowski et al. | Universal multiaxis control system for electric drives | |
JPH09269811A (en) | Robot controller | |
JP2005535946A (en) | Modular functional blocks for field-oriented control systems | |
KR100925274B1 (en) | Circuit and apparatus for controlling multi-axis motion | |
JP2004025428A (en) | Communication method of robot control device, and robot control device | |
JP2516589B2 (en) | Control device for robot |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121002 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20131001 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20141001 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20191001 Year of fee payment: 15 |