KR20240083286A - Motion control system using core engine for robot - Google Patents

Motion control system using core engine for robot Download PDF

Info

Publication number
KR20240083286A
KR20240083286A KR1020220167051A KR20220167051A KR20240083286A KR 20240083286 A KR20240083286 A KR 20240083286A KR 1020220167051 A KR1020220167051 A KR 1020220167051A KR 20220167051 A KR20220167051 A KR 20220167051A KR 20240083286 A KR20240083286 A KR 20240083286A
Authority
KR
South Korea
Prior art keywords
control
control unit
motion
core engine
robot
Prior art date
Application number
KR1020220167051A
Other languages
Korean (ko)
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 KR1020220167051A priority Critical patent/KR20240083286A/en
Publication of KR20240083286A publication Critical patent/KR20240083286A/en

Links

Classifications

    • 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
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4061Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • 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
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39082Collision, real time collision avoidance

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)

Abstract

본 발명은 로봇에 마련된 복수의 작동장치들, 복수의 작동장치들 중 적어도 하나의 작동장치를 제어하여 로봇의 모션을 수행하는 프로그램 및 확인부를 가지는 복수의 컨트롤부들, 컨트롤부별로 적어도 하나의 작동장치의 통제권을 등록하고, 적어도 하나의 모션이 요청되면 복수의 컨트롤부들 중에서 적어도 하나의 모션을 수행할 수 있는 컨트롤부를 검색하는 조절부 및 검색된 컨트롤부의 확인부를 확인하여 검색된 컨트롤부가 적어도 하나의 모션을 수행하기 위해 필요한 작동장치들에 대한 통제권을 가진 컨트롤부인지 여부를 판단하고, 검색된 컨트롤부가 적어도 하나의 모션을 수행하기 위해 필요한 작동장치들에 대한 통제권을 가진 컨트롤부이라고 판단되면 컨트롤부의 실행을 제어하여 작동장치들을 구동시키는 코어엔진을 포함하는 것을 특징으로 하는 로봇용 코어엔진을 이용한 모션 제어 시스템을 제공한다.
본 발명에 따르면 코어엔진을 포함하여 작동장치들에 대한 통제권을 가진 컨트롤부인지 여부를 판단하고, 컨트롤부의 실행을 제어하여 작동장치들을 구동할 수 있다.
한편, 본 명세서는 인천 연구개발 활성화 사업(과제번호 : 2022-연구개발성과사업화-01)의 도움을 받아 작성 되었다.
The present invention provides a plurality of operating devices provided in a robot, a plurality of control units having a program and a confirmation unit that controls at least one of the operating devices to perform the motion of the robot, and at least one operating device for each control unit. registers control rights, and when at least one motion is requested, a control unit that searches for a control unit capable of performing at least one motion among a plurality of control units and a confirmation unit of the searched control unit checks the searched control unit to perform at least one motion. It determines whether the searched control unit is a control unit that has control over the operating devices necessary to perform at least one motion, and controls the execution of the control unit. A motion control system using a core engine for a robot is provided, which includes a core engine that drives actuators.
According to the present invention, it is possible to determine whether the control unit has control over the operating devices, including the core engine, and control the execution of the control unit to drive the operating devices.
Meanwhile, this specification was prepared with the help of the Incheon Research and Development Activation Project (Task Number: 2022-R&D Performance Commercialization-01).

Description

로봇용 코어엔진을 이용한 모션 제어 시스템{MOTION CONTROL SYSTEM USING CORE ENGINE FOR ROBOT}Motion control system using core engine for robots {MOTION CONTROL SYSTEM USING CORE ENGINE FOR ROBOT}

본 발명은 복수의 프로그램 실행을 위한 로봇용 코어엔진을 이용한 모션 제어 시스템에 관한 것이다.The present invention relates to a motion control system using a robot core engine for executing multiple programs.

산업계는 노동력 부족 대비 및 생산성 향상 등을 목적으로 다양한 지능형 로봇을 산업현장에 적극 도입하고 있다. 이에 따라 국내 지능형 로봇의 문제점 개선에 대한 요구가 끊임없이 이어지고 있다. 특히, ROS 기반 솔루션의 한계와 불안정한 동작 제어에 대한 요구가 가장 큰 상황이며, 이 외에도 로봇 조작의 어려움과 낮은 내구성을 극복하기 위한 시도가 계속되고 있다.The industry is actively introducing various intelligent robots into industrial sites for the purpose of preparing for labor shortages and improving productivity. Accordingly, there is a constant demand for improvements in the problems of domestic intelligent robots. In particular, the limitations of ROS-based solutions and the need for unstable motion control are the greatest, and attempts to overcome the difficulty of robot operation and low durability are continuing.

본 발명에서는 이러한 종래 로봇의 한계를 극복하고 시장의 요구를 충족하기 위해, 다양한 기구학적 형상의 로봇에 확장 가능하도록 개발된 복수의 컨트롤부의 충돌을 방지하는 로봇용 코어엔진을 이용한 모션 제어 시스템에 대해 개시하고자 한다.In order to overcome these limitations of conventional robots and meet market demands, the present invention relates to a motion control system using a core engine for robots that prevents collision of multiple control units developed to be expandable to robots of various kinematic shapes. I would like to start.

본 발명의 기술적 과제는 기구학적 형상의 로봇에 확장 가능하도록 개발된 복수의 컨트롤부의 충돌을 방지하는 로봇용 코어엔진을 이용한 모션 제어 시스템을 제공하는 것이다The technical task of the present invention is to provide a motion control system using a core engine for robots that prevents collision of a plurality of control units developed to be expandable to robots of kinematic shape.

본 발명은 로봇에 마련된 복수의 작동장치들, 복수의 작동장치들 중 적어도 하나의 작동장치를 제어하여 로봇의 모션을 수행하는 프로그램 및 확인부를 가지는 복수의 컨트롤부들, 컨트롤부별로 적어도 하나의 작동장치의 통제권을 등록하고, 적어도 하나의 모션이 요청되면 상기 복수의 컨트롤부들 중에서 적어도 하나의 모션을 수행할 수 있는 컨트롤부를 검색하는 조절부 및 검색된 컨트롤부의 확인부를 확인하여 검색된 컨트롤부가 적어도 하나의 모션을 수행하기 위해 필요한 작동장치들에 대한 통제권을 가진 컨트롤부인지 여부를 판단하고, 검색된 컨트롤부가 적어도 하나의 모션을 수행하기 위해 필요한 작동장치들에 대한 통제권을 가진 컨트롤부이라고 판단되면 컨트롤부의 실행을 제어하여 작동장치들을 구동시키는 코어엔진을 포함하는 것을 특징으로 하는 로봇용 코어엔진을 이용한 모션 제어 시스템을 제공한다.The present invention provides a plurality of operating devices provided in a robot, a plurality of control units having a program and a confirmation unit that controls at least one of the operating devices to perform the motion of the robot, and at least one operating device for each control unit. registers control rights, and when at least one motion is requested, a control unit that searches for a control unit capable of performing at least one motion among the plurality of control units, and a confirmation unit of the searched control unit, and checks that the searched control unit performs at least one motion. It determines whether the searched control unit is a control unit that has control over the operating devices required to perform at least one motion, and if it is determined that the searched control unit is a control unit that has control over the operating devices required to perform at least one motion, the execution of the control unit is controlled. Provides a motion control system using a core engine for a robot, which includes a core engine that drives the actuating devices.

본 발명에 따르면 복수 컨트롤부 간의 제어 충돌을 방지할 수 있다. 이로 인해 로봇의 안전성을 확보할 수 있다.According to the present invention, control conflicts between multiple control units can be prevented. This ensures the safety of the robot.

또한 복수의 컨트롤부 간의 제어 충돌을 방지할 수 있어 동시에 어려 모션을 취하면서도 안전성을 확보할 수 있고, 로봇의 고장을 방지할 수 있다In addition, control conflicts between multiple control units can be prevented, ensuring safety while simultaneously performing small motions, and preventing robot malfunctions.

또한, 본 발명에 따르면 코어엔진을 포함하여 작동장치들에 대한 통제권을 가진 컨트롤부인지 여부를 판단하고, 컨트롤부의 실행을 제어하여 작동장치들을 구동할 수 있다.In addition, according to the present invention, it is possible to determine whether the control unit has control over the operating devices, including the core engine, and control the execution of the control unit to drive the operating devices.

도 1은 실시예에 따른 로봇용 코어엔진을 이용한 모션 제어 시스템에 마련된 중간레이어의 상세 구성도이다.
도 2는 실시예에 따른 로봇을 제어하기 위한 로봇용 코어엔진을 이용한 모션 제어 시스템의 구성도이다.
도 3은 실시예에 따른 로봇용 코어엔진을 이용한 모션 제어 시스템의 제어 등록권을 획득하는 순서도이다.
도 4는 실시예에 따른 로봇용 코어엔진을 이용한 모션 제어 시스템에 마련된 컨트롤부의 통제권 등록 순서도이다.
Figure 1 is a detailed configuration diagram of an intermediate layer provided in a motion control system using a core engine for a robot according to an embodiment.
Figure 2 is a configuration diagram of a motion control system using a robot core engine to control a robot according to an embodiment.
Figure 3 is a flowchart of obtaining control registration rights for a motion control system using a core engine for a robot according to an embodiment.
Figure 4 is a flowchart of control authority registration of the control unit provided in the motion control system using a core engine for a robot according to an embodiment.

이하에서는 첨부도면을 참조하여 본 발명에 대해 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 실시예에 따른 로봇용 코어엔진을 이용한 모션 제어 시스템에 마련된 중간층의 상세 구성도이고, 도 2는 실시예에 따른 로봇을 제어하기 위한 로봇용 코어엔진을 이용한 모션 제어 시스템의 구성도이다.이하, 첨부된 도면을 참조하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 이하에서 개시되는 실시 예에 한정되지 않는다. 또한 도면에서 본 발명을 명확하게 개시하기 위해서 본 발명과 관계없는 부분은 생략하였으며, 도면에서 동일하거나 유사한 부호들은 동일하거나 유사한 구성요소들을 나타낸다.Figure 1 is a detailed configuration diagram of an intermediate layer provided in a motion control system using a robot core engine according to an embodiment, and Figure 2 is a configuration diagram of a motion control system using a robot core engine for controlling a robot according to an embodiment. Hereinafter, with reference to the attached drawings, embodiments of the present invention will be described in detail so that those skilled in the art can easily practice the present invention. However, the present invention may be implemented in various different forms and is not limited to the embodiments disclosed below. In addition, in order to clearly disclose the present invention in the drawings, parts not related to the present invention are omitted, and identical or similar symbols in the drawings indicate identical or similar components.

본 발명의 목적 및 효과는 하기의 설명에 의해서 자연스럽게 이해되거나 보다 분명해질 수 있으며, 하기의 기재만으로 본 발명의 목적 및 효과가 제한되는 것은 아니다.The purpose and effect of the present invention can be naturally understood or become clearer through the following description, and the purpose and effect of the present invention are not limited to the following description.

본 발명의 목적, 특징 및 장점은 다음의 상세한 설명을 통하여 보다 분명해질 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이, 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세히 설명하기로 한다.The purpose, features and advantages of the present invention will become clearer through the following detailed description. Additionally, in describing the present invention, if it is determined that a detailed description of known techniques related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description will be omitted. Hereinafter, embodiments according to the present invention will be described in detail with reference to the attached drawings.

도 1은 실시예에 따른 로봇용 코어엔진을 이용한 모션 제어 시스템에 마련된 중간레이어의 상세 구성도이고, 도 2는 실시예에 따른 로봇을 제어하기 위한 로봇용 코어엔진을 이용한 모션 제어 시스템의 구성도이다.Figure 1 is a detailed configuration diagram of an intermediate layer provided in a motion control system using a robot core engine according to an embodiment, and Figure 2 is a configuration diagram of a motion control system using a robot core engine for controlling a robot according to an embodiment. am.

도 2에 도시된 바와 같이 로봇용 코어엔진을 이용한 모션 제어 시스템(200)은 물리레이어(210), 중간레이어(220) 및 응용레이어(230)을 포함한다. As shown in FIG. 2, the motion control system 200 using a core engine for a robot includes a physical layer 210, an intermediate layer 220, and an application layer 230.

물리레이어(210)은 로봇(100)에 마련된 하드웨어들로 이루어진다. The physical layer 210 is made up of hardware provided in the robot 100.

물리레이어(210)은 입력부(211), 센서부(212), 작동장치부(213), 출력부(214), 제어부(215)를 포함한다.The physical layer 210 includes an input unit 211, a sensor unit 212, an operating device unit 213, an output unit 214, and a control unit 215.

입력부(211)는 사용자로부터 로봇의 모션 제어 명령을 입력받는 사용자 인터페이스(UI: User Interface, 미도시)와, 로봇 주변의 영상을 획득하는 카메라(111)와, 사용자의 음성 및 주변의 사운드를 검출하는 마이크로폰(112) 등을 포함한다.The input unit 211 includes a user interface (UI: User Interface, not shown) that receives robot motion control commands from the user, a camera 111 that acquires images around the robot, and detects the user's voice and surrounding sounds. Includes a microphone 112, etc.

센서부(212)는 상체의 포즈를 검출하는 포즈 검출부(133)와, 로봇의 착지 여부 및 착지 여부에 대응하는 지지 다리와 스윙 다리를 검출하는 힘/토크 검출부(171)와, 모터의 회전수를 검출하는 인코더(미도시)를 포함한다.The sensor unit 212 includes a pose detector 133 that detects the pose of the upper body, a force/torque detector 171 that detects whether the robot has landed and the support leg and swing leg corresponding to the landing, and the rotation speed of the motor. Includes an encoder (not shown) that detects.

작동장치부(213)는 복수 개의 작동장치로 이루어지고, 이러한 복수 개의 작동장치에는 로봇(100)의 관절(Joint)이 각각 기계적으로 연결되어 있다.The operating device unit 213 is made up of a plurality of operating devices, and the joints of the robot 100 are mechanically connected to the plurality of operating devices.

이러한 복수 개의 작동장치는 각 관절을 구동시키는 모터 등으로 이루어지고, 제어부(215)의 지시에 따라 모터를 구동시킴으로서 사용자의 명령에 대응하는 모션이 수행되도록 한다.These plural actuating devices consist of motors that drive each joint, and the motors are driven according to instructions from the control unit 215 to perform motions corresponding to user commands.

작동장치부(213)는 제어부(215)의 제어 명령을 수행한 결과를 알려 주는 전기적인 인터페이스를 가지고 있다.The operating unit 213 has an electrical interface that reports the results of executing the control commands of the control unit 215.

아울러, 작동장치부(213)는 입력부(211) 및 센서부(212)의 각 검출부를 작동장치로서 더 포함하는 것도 가능하다. 여기서 입력부(211)의 카메라(111) 등이나 센서부(212)의 각 검출부도 제어가 필요한 경우가 있기 때문이다.In addition, the operating device unit 213 may further include each detection unit of the input unit 211 and the sensor unit 212 as an operating device. This is because the camera 111 of the input unit 211, etc., and each detection unit of the sensor unit 212 may also need to be controlled.

출력부(214)는 사운드를 출력하는 스피커, 광을 출력하는 표시등 등을 포함한다.The output unit 214 includes a speaker that outputs sound, an indicator light that outputs light, etc.

제어부(215)는 입력부(211) 및 센서부(212)로부터 전송된 데이터에 기초하여 데이터 연산 처리를 수행함으로써 작동장치부(213) 및 출력부(214)의 구동을 제어한다. 이러한 제어부(215)는 프로세서(215a), 롬(ROM: 215b) 및 램(RAM: 215c)을 포함한다.The control unit 215 controls the operation of the operating device unit 213 and the output unit 214 by performing data operation processing based on data transmitted from the input unit 211 and the sensor unit 212. This control unit 215 includes a processor 215a, ROM 215b, and RAM 215c.

프로세서(215a)는 CPU(Central Processing Unit) 등으로, 소프트웨어의 제어 하에서 애플리케이션과 같은 하드웨어 비의존 프로그램이나, 미들웨어와 같은 하드웨어 의존 프로그램을 실행하여, 로봇(100)의 전체적인 동작을 통괄적으로 제어한다.The processor 215a is a CPU (Central Processing Unit) or the like, and executes hardware-independent programs such as applications or hardware-dependent programs such as middleware under software control to comprehensively control the overall operation of the robot 100.

프로세서(215a)는 롬(215b)이나 램(215c)과 같은 메모리와 버스(BUS)를 통해 접속되어 있다.The processor 215a is connected to memory such as ROM 215b or RAM 215c through a bus.

버스(BUS) 상의 각 구성부(215a, 215b, 215c)는 각각에 고유의 어드레스(메모리 어드레스 또는 I/O 어드레스)가 할당되어 있고, 프로세서(215a)는 어드레스 지정함으로써 버스 상의 적어도 하나의 구성부(215b, 215c)와 통신 가능하다. 여기서 버스는 어드레스 버스, 데이터 버스, 컨트롤 버스를 포함한 공통 시그널 전송로이다.Each of the components 215a, 215b, and 215c on the bus is assigned a unique address (memory address or I/O address), and the processor 215a designates the address to at least one component on the bus. Communication is possible with (215b, 215c). Here, the bus is a common signal transmission path including the address bus, data bus, and control bus.

롬(ROM: Read Only Memory, 215b)은 불휘발성 메모리로 로봇의 모션이나 사고를 제어하기 위한 어플리케이션이나, 하드웨어 구동용 중간레이어 등의 프로그램을 저장한다. ROM (Read Only Memory, 215b) is a non-volatile memory that stores programs such as applications for controlling the motion or thinking of a robot or an intermediate layer for hardware operation.

램(RAM: Random Access Memory, 215c)은 휘발성 메모리로, 프로세서(215a)의 실행 프로그램을 로드하거나, 그 작업 데이터를 일시적으로 보존한다. RAM (Random Access Memory, 215c) is a volatile memory that loads the execution program of the processor 215a or temporarily preserves the work data.

램(215c)은 롬(215b)으로부터 전송되는 어플리케이션이나 중간레이어의 프로그램을 메모리 공간 상에 맵핑한다.The RAM 215c maps the application or intermediate layer program transferred from the ROM 215b onto the memory space.

중간레이어(220)은 로봇의 모션을 수행하기 위한 프로그램 모듈로 이루어진다. 이러한 중간레이어(220)은 접속 모듈(221), 조절부(222), 컨트롤부(223), 코어엔진(224), 타이머 모듈(225)을 포함한다.The middle layer 220 consists of program modules for performing robot motion. This intermediate layer 220 includes a connection module 221, an adjustment unit 222, a control unit 223, a core engine 224, and a timer module 225.

접속 모듈(221)은 외부의 모션 태스크 클라이언트(motion task client, 미도시)로부터 적어도 하나의 모션을 수행하라는 요청을 수신하고, 모션 진행 과정을 피드백한다.The connection module 221 receives a request to perform at least one motion from an external motion task client (not shown) and provides feedback on the motion progress.

아울러 모션 태스크 클라이언트(motion task client, 미도시)는 중간레이어(220)의 접속 모듈(221)에 적어도 하나의 모션을 요청하는 것으로, 모션 태스크 클라이언트는 외부의 프로그램 모듈 또는 입력부(211)인 사용자 인터페이스(UI: User Interface)이다. In addition, a motion task client (not shown) requests at least one motion from the connection module 221 of the middle layer 220, and the motion task client is a user interface that is an external program module or input unit 211. (UI: User Interface).

조절부(222)은 모션 태스크 클라이언트(미도시)에서 요청된 모션이 수행되도록 컨트롤부(223)의 실행을 제어한다.The control unit 222 controls the execution of the control unit 223 so that the motion requested by the motion task client (not shown) is performed.

조절부(222)은 모션 태스크 클라이언트(미도시)로부터 적어도 하나의 모션 수행 시그널이 전송되면, 전송된 모션 수행을 위한 컨트롤부(223)을 선택하고, 선택된 컨트롤부(223)에게 틱 시그널을 전송한다.When at least one motion performance signal is transmitted from a motion task client (not shown), the control unit 222 selects a control unit 223 for performing the transmitted motion and transmits a tick signal to the selected control unit 223. do.

이때, 틱 시그널은 타이머 모듈(225)로부터 전송된 틱 시그널에 대응하여 발생시킨다.At this time, the tick signal is generated in response to the tick signal transmitted from the timer module 225.

조절부(222)은 모션 수행을 위한 컨트롤부(223) 선택 시 해당 모션을 수행하기 위한 컨트롤부가 존재하지 않으면, 해당 모션 수행이 가능한 컨트롤부를 생성한다.When the control unit 223 for performing a motion is selected and a control unit for performing the motion does not exist, the control unit 222 creates a control unit capable of performing the motion.

여기서 해당 모션 수행이 가능한 컨트롤부를 생성하는 것은, 복수의 컨트롤부 중 작동장치의 통제권이 허가되지 않은 컨트롤부를 대상으로 컨트롤부를 검색하고, 검색된 컨트롤부가 해당 모션을 수행 가능 하도록 하는 것이다.Here, creating a control unit capable of performing the corresponding motion means searching for a control unit among a plurality of control units that is not authorized to control the operating device, and enabling the searched control unit to perform the corresponding motion.

조절부(222)은 해당 모션 수행이 가능한 컨트롤부(223)을 검색하고 검색된 컨트롤부(223)을 이루는 프로그램을 생성하고, 해당 모션을 수행하기 위해 필요한 작동장치가 어느 작동장치인지 컨트롤부(223)에게 체크하고, 컨트롤부(223)로부터 체크 결과에 대응하는 작동장치의 정보가 전송되면 전송된 작동장치가 가용 가능한지 판단하고, 해당 작동장치가 가용 불가능하면 해당 작동장치를 제어하려 하는 컨트롤부의 통제권 허가를 취소하고, 해당 작동장치가 가용 가능하면 컨트롤부(223)에게 해당 작동장치를 제어하기 위한 통제권을 중개한다. The control unit 222 searches for a control unit 223 capable of performing the corresponding motion, generates a program constituting the searched control unit 223, and determines which operating device is required to perform the corresponding motion. ), and when the information on the operating device corresponding to the check result is transmitted from the control unit 223, it is determined whether the transmitted operating device is available, and if the operating device is not available, the control of the control unit that attempts to control the operating device is determined. The permission is canceled, and if the corresponding operating device is available, the control authority to control the corresponding operating device is transferred to the control unit 223.

이때 조절부(222)은 컨트롤부가 해당 작동장치의 통제권을 갖도록, 컨트롤부의 작동장치에 대한 통제권을 허가하라는 요청 시그널을 코어엔진(224)으로 전송한다. 아울러 조절부(222)은 컨트롤부를 식별할 수 있는 확인부를 함께 코어엔진(224)으로 전송한다.At this time, the control unit 222 transmits a request signal to the core engine 224 to allow the control unit to control the operating device so that the control unit can control the operating device. In addition, the control unit 222 transmits a confirmation unit that can identify the control unit to the core engine 224.

조절부(222)은 코어엔진(224)으로부터 해당 컨트롤부의 통제권 허가 시그널이 전송되면, 해당 컨트롤부와 해당 작동장치의 정보를 컨트롤부 목록에 등록한다.When the control unit 222 receives a control permission signal from the core engine 224, the control unit 222 registers the information of the control unit and the operating device in the control unit list.

조절부(222)은 실행 중인 컨트롤부 목록을 관리하고, 각 컨트롤부(223)의 실행 및 중단 등의 실행 상태를 모니터링하고, 코어엔진(224)으로부터 통제권 위반 시그널이 수신되면 컨트롤부 목록에서 통제권을 위반한 컨트롤부(223)을 삭제한다. The control unit 222 manages the list of running control units, monitors the execution status such as execution and suspension of each control unit 223, and when a control violation signal is received from the core engine 224, the control unit 223 is selected from the control unit list. The control unit 223 that violates is deleted.

여기서 컨트롤부 목록은, 각 작동장치에 대한 통제권을 가진 컨트롤부의 실행 단위의 확인부(ID) 정보를 저장한다.Here, the control unit list stores identification unit (ID) information of the execution unit of the control unit that has control over each operating device.

실행 단위(run unit)는 운영체제(OS: Operating System) 상에서 독립적으로 실행될 수 있는 것으로, 운영체제에 따라 스레드(Thread), 태크스(task) 및 프로세스(Process)가 있다. A run unit can be executed independently on an operating system (OS), and depending on the operating system, there are threads, tasks, and processes.

조절부(222)은 모션 수행 요청 시그널이 전송되면 타이머 모듈(225)의 주기적인 틱 시그널에 대응하여 컨트롤부(223)의 실행을 지시한다.When a motion performance request signal is transmitted, the control unit 222 instructs the control unit 223 to execute in response to the periodic tick signal of the timer module 225.

조절부(222)은 코어엔진(224)에서 제공하는 인터페이스를 동일한 운영체제(OS) 상의 독립적인 실행 단위에서 실행한다.The controller 222 executes the interface provided by the core engine 224 in an independent execution unit on the same operating system (OS).

조절부(222)은 모든 작동장치에 대한 제어 등록권을 갖는다. The control unit 222 has control registration rights for all operating devices.

이 조절부(222)은 코어엔진(224)에게 모든 작동장치에 대한 제어 등록권을 요청한 후 코어엔진(224)으로부터 제어 등록권 허가 시그널이 전송되면 모든 작동장치에 대한 제어 등록권을 획득하게 된다.This control unit 222 requests the core engine 224 for control registration rights for all operating devices and then obtains control registration rights for all operating devices when a control registration right permission signal is transmitted from the core engine 224. .

조절부(222)은 초기화 진행 시 코어엔진(224)에게 제어 등록권 요청이 가능하다. 여기서 제어 등록권은 컨트롤부(223)에게 통제권을 중개 및 컨트롤부(223)의 통제권을 등록하거나 컨트롤부(223)의 통제권을 회수할 수 있는 권리이다.The control unit 222 can request control registration rights from the core engine 224 during initialization. Here, the control registration right is the right to mediate control rights to the control unit 223, register the control rights of the control unit 223, or retrieve control rights from the control unit 223.

컨트롤부(223: 223a, 223b, 223c, ..., 223n)은 적어도 하나의 모션을 해석하여 추상화된 작동장치에 대한 제어 명령으로 변환해 주는 프로그램이다.The control unit 223 (223a, 223b, 223c, ..., 223n) is a program that interprets at least one motion and converts it into a control command for an abstracted operating device.

컨트롤부(223: 223a, 223b, 223c, ..., 223n)은 복수 개로 이루어지고, 각 컨트롤부(223: 223a, 223b, 223c, ..., 223n)은 어느 하나의 모션에 대응하는 프로그램이 마련되어 있다. 이러한 각 컨트롤부(223: 223a, 223b, 223c, ..., 223n)은 각각 운영체제(OS: Operating System) 상의 독립적인 실행 단위를 갖고, 각 컨트롤부의 실행단위는 확인부(ID)를 저장하고 있다. There are a plurality of control units (223: 223a, 223b, 223c, ..., 223n), and each control unit (223: 223a, 223b, 223c, ..., 223n) is a program corresponding to one motion. This is provided. Each of these control units 223 (223a, 223b, 223c, ..., 223n) each has an independent execution unit on an operating system (OS: Operating System), and the execution unit of each control unit stores a confirmation unit (ID). there is.

여기서 실행 단위는 운영 체제에 따라 구분되며, 스레드(Thread), 태스크 및 프로세스 중 어느 하나이다. Here, the execution unit is classified according to the operating system and is one of a thread, task, or process.

복수의 컨트롤부(223: 223a, 223b, 223c, ..., 223n)은 조절부(222)로부터 작동장치의 통제권이 중개되면, 중개된 통제권을 각각 저장한다.When the control of the operating device is transferred from the control unit 222, the plurality of control units 223 (223a, 223b, 223c, ..., 223n) each store the brokered control.

여기서 통제권은 컨트롤부가 작동장치를 제어할 수 있는 권리로, 로봇을 원하는 위치로 이동 제어, 원하는 속도로 이동 제어, 센서 캘리브레이션(calibration) 개시 제어, 원하는 토크 또는 힘으로 이동 제어 등이 있다.Here, the right to control is the right of the control unit to control the operating device, including control of moving the robot to a desired location, control of movement at a desired speed, control of starting sensor calibration, and control of movement with a desired torque or force.

컨트롤부(223)은 조절부(222)로부터 틱 시그널이 전송되면 프로그램을 실행하고 프로그램 실행 결과에 대응하는 제어 명령을 애플리케이션 프로그래밍 인터페이스(API)를 이용하여 코어엔진(224)으로 전송한다.When a tick signal is transmitted from the control unit 222, the control unit 223 executes the program and transmits a control command corresponding to the program execution result to the core engine 224 using an application programming interface (API).

여기서 애플리케이션 프로그래밍 인터페이스(API)는 코어엔진(224)에서 제공하는 인터페이스이다.Here, the application programming interface (API) is an interface provided by the core engine 224.

컨트롤부(223)은 조절부(222)로부터 필요한 작동장치가 어느 작동장치인지에 대한 체크 시그널이 전송되면, 필요한 작동장치를 결정하여 조절부(222)에 전송한다.When a check signal as to which operating device is required is transmitted from the adjusting unit 222, the control unit 223 determines the required operating device and transmits it to the adjusting unit 222.

즉, 컨트롤부(223)은 필요한 작동장치를 결정 시, 접속 모듈(221) 또는 조절부(222)로부터 전송된 모션 데이터에 기초하여 해당 모션을 수행하기 위해 필요한 작동장치를 결정하고, 조절부(222)의 체크에 대응하여 결정된 작동장치의 정보를 전송한다.That is, when determining the necessary operating device, the control unit 223 determines the operating device necessary to perform the motion based on the motion data transmitted from the connection module 221 or the controlling unit 222, and the controlling unit ( The information of the determined operating device is transmitted in response to the check in 222).

또한 컨트롤부(223)은 필요한 작동장치의 통제권을 조절부(222)에게 직접 요청하는 것도 가능하다.Additionally, the control unit 223 can directly request control of the necessary operating device from the control unit 222.

이러한 컨트롤부(223: 223a, 223b, 223c, ..., 223n)은 조절부(222)과의 통신을 위해 정해진 인터페이스에 맞게 구현되어야 한다.These control units 223 (223a, 223b, 223c, ..., 223n) must be implemented according to a designated interface for communication with the control unit 222.

컨트롤부(223: 223a, 223b, 223c, ..., 223n)이 만족해야 하는 인터페이스는, 모션 수행을 위해 필요한 작동장치를 체크하는 getRequiredResources, 타이머 틱(Timer Tick)이 발생했을 때 실행되는 알고리즘인 onTick, 컨트롤부의 실행 단위의 확인부(ID)를 리턴하는 함수인 getId 등이 있다. The interface that the control unit (223: 223a, 223b, 223c, ..., 223n) must satisfy is getRequiredResources, which checks the operating devices required to perform motion, and an algorithm that is executed when a timer tick occurs. There are onTick, getId, a function that returns the confirmation unit (ID) of the execution unit of the control unit, etc.

여기서 제어 알고리즘을 수행하는 onTick은 운영체제(OS) 상의 독립적인 실행 단위에서 실행된다.Here, onTick, which performs the control algorithm, is executed in an independent execution unit on the operating system (OS).

코어엔진(224)은 로봇 하드웨어 추상화 레이어로, 작동장치부(213)의 복수 작동장치 등을 추상화하여 일관된 인터페이스를 통해 사용할 수 있도록 해주는 모듈이다. 즉, 동일 기능을 수행하지만 서로 다른 사양을 가진 작동장치들이 일관되게 접근할 수 있도록 해준다.The core engine 224 is a robot hardware abstraction layer and is a module that abstracts multiple operating devices of the operating device unit 213 and allows them to be used through a consistent interface. In other words, it allows actuators that perform the same function but have different specifications to be accessed consistently.

코어엔진(224)은 컨트롤부(223)로부터 제어 명령이 전송되면 제어 명령을 전송한 컨트롤부(223)이 제어 대상이 되는 작동장치에 대한 통제권의 소유자인지 확인한다.When a control command is transmitted from the control unit 223, the core engine 224 verifies whether the control unit 223 that transmitted the control command is the owner of control rights to the operating device to be controlled.

여기서 통제권 소유자인지 확인하는 것은, 제어 명령을 전송한 컨트롤부(223)의 실행 단위의 확인부와, 조절부(222)에 저장된 작동장치에 대한 통제권을 가진 컨트롤부의 실행 단위의 확인부가 동일한지 비교하는 것이다.Here, checking whether the owner of control rights is confirmed is by comparing whether the confirmation unit of the execution unit of the control unit 223 that transmitted the control command is the same as the confirmation unit of the execution unit of the control unit that has control over the operating device stored in the control unit 222. It is done.

운영체제(OS)에서는 현재 코드를 수행하고 있는 실행 단위의 확인부(ID)를 알아낼 수 있는 시스템 호출을 제공하며, 이에 따라 코어엔진(224)은 컨트롤부의 실행 단위의 확인부(ID) 확인이 가능하다.The operating system (OS) provides a system call to find out the identification unit (ID) of the execution unit currently executing the code, and accordingly, the core engine 224 can check the identification unit (ID) of the execution unit of the control unit. do.

코어엔진(224)은 제어 명령을 전송한 컨트롤부(223)이 제어 대상이 되는 작동장치에 대한 통제권 소유자이면 제어 명령을 작동장치가 판독가능 한 저수준의 제어 명령으로 변환하여 작동장치로 전송한다.If the control unit 223 that transmitted the control command is the owner of control rights to the operating device to be controlled, the core engine 224 converts the control command into a low-level control command that can be read by the operating device and transmits it to the operating device.

코어엔진(224)은 제어 명령을 전송한 컨트롤부(223)이 제어 대상이 되는 작동장치에 대한 통제권 무소유자이면 해당 컨트롤부의 통제권 위반 시그널을 조절부(222)에 전송한다.If the control unit 223 that transmitted the control command does not have control over the operating device to be controlled, the core engine 224 transmits a control violation signal of the control unit to the control unit 222.

이러한 코어엔진(224)은 각 작동장치에 대한 컨트롤부의 통제권을 허가하거나, 각 컨트롤부(223)의 통제권이 회수되도록 하는 인터페이스를 제공한다.This core engine 224 grants control of the control unit for each operating device, or provides an interface that allows control of each control unit 223 to be recovered.

코어엔진(224)이 제공하는 인터페이스는, 제어 등록권을 가진 조절부만 통제권을 중개 및 등록하도록 하는 registerControlRight, 제어 등록권을 가진 조절부만 통제권을 회수하도록 하는 releaseControlRight, 최초 애플리케이션 프로그래밍 인터페이스를 수행하는 조절부가 제어 등록권을 갖도록 하는 registerRegRight, 조절부의 제어 등록권을 회수하는 releaseRegRight 등이 있다.The interface provided by the core engine 224 is registerControlRight, which allows only the controller with control registration rights to mediate and register control rights, releaseControlRight, which allows only controllers with control registration rights to retrieve control rights, and performs the first application programming interface. There are registerRegRight, which allows the control unit to have the control registration right, and releaseRegRight, which retrieves the control registration right from the control unit.

또한 코어엔진(224)은 애플리케이션 프로그래밍 인터페이스(API: Application Programming Interface)을 가진다.Additionally, the core engine 224 has an application programming interface (API).

코어엔진(224)은 조절부(222)로부터 모든 작동장치에 대한 통제권을 등록하기 위한 제어 등록권 요청 시그널이 전송되면, 이미 제어 등록권을 가진 모듈이 존재하는지 확인하고, 이미 제어 등록권을 가진 모듈이 존재하면 제어 등록권 요청을 거절하고, 제어 등록권을 가진 모듈이 비존재하면 제어 등록권을 요청한 조절부(222)에게 제어 등록권 제어 등록권을 허가한다.When a control registration right request signal for registering control rights for all operating devices is transmitted from the control unit 222, the core engine 224 checks whether a module with control registration rights already exists, and determines whether a module that already has control registration rights exists. If the module exists, the request for control registration rights is rejected, and if the module with control registration rights does not exist, the control registration right is granted to the control unit 222 that requested the control registration rights.

여기서 이미 제어 등록권을 가진 모듈이 존재하는지 확인하는 것은, 코어엔진에 제어 등록권이 허가된 모듈의 확인부가 저장되어 있는지 확인하는 것이다.Here, checking whether a module with control registration rights already exists means checking whether the confirmation section of modules with control registration rights is stored in the core engine.

타이머 모듈(225)은 일정 주기마다 틱 시그널(tick signal)를 발생시켜 주는 모듈로, 이 틱 시그널을 조절부(222)에 전송한다. 즉 조절부(222)은 틱 시그널을 컨트롤부(223)에 전송함으로써 복수의 컨트롤부(223)이 틱 시그널에 맞추어 동작된다.The timer module 225 is a module that generates a tick signal at regular intervals, and transmits this tick signal to the controller 222. That is, the control unit 222 transmits a tick signal to the control unit 223, so that the plurality of control units 223 operate in accordance with the tick signal.

응용레이어(230)은 로봇을 동작시키는데 사용되는 복수의 프로그램이 마련되어 있다.The application layer 230 is provided with a plurality of programs used to operate the robot.

이러한 응용레이어(230)은 로봇의 감정을 모델화한 감정 모델과, 본능을 모델화한 본능 모델과, 외부 사상과 로봇이 취하는 모션과의 인과 관계를 순차적으로 기억해 가는 학습 모듈과, 모션 패턴을 모델화한 모션 모델을 가진다. 여기서 모델은 프로그램으로 이루어진다.This application layer 230 includes an emotion model that models the robot's emotions, an instinct model that models the instincts, a learning module that sequentially remembers the causal relationship between external events and the motions taken by the robot, and a motion pattern modeled. It has a motion model. Here, the model consists of a program.

응용레이어(230)은 중간레이어(220)과 프로그래밍 인터페이스(Programming Interface)를 통해 통신을 수행한다.The application layer 230 communicates with the intermediate layer 220 through a programming interface.

도 3은 실시예에 따른 로봇용 코어엔진을 이용한 모션 제어 시스템에 마련된 조절부가 코어엔진로로부터 제어 등록권을 획득하는 순서도이다.Figure 3 is a flowchart of how a control unit provided in a motion control system using a core engine for a robot according to an embodiment acquires control registration rights from the core engine.

복수의 컨트롤부(223: 223a, 223b, 223c, ..., 223n)이 임의대로 코어엔진(224)을 통해 통제권을 등록하면 각 컨트롤부의 통제권을 조정할 수 없다. If a plurality of control units (223: 223a, 223b, 223c, ..., 223n) arbitrarily register control rights through the core engine 224, the control rights of each control unit cannot be adjusted.

이에 따라 복수의 컨트롤부(223: 223a, 223b, 223c, ..., 223n)이 조절부(222)을 통해서만 통제권을 중개받을 수 있도록 함으로써 복수 컨트롤부의 프로그램 간의 충돌을 방지한다. 이를 구체적으로 설명하면 다음과 같다.Accordingly, a plurality of control units (223: 223a, 223b, 223c, ..., 223n) can receive control only through the control unit 222, thereby preventing conflicts between programs of the plurality of control units. This is explained in detail as follows.

우선, 조절부(222)은 로봇의 모든 작동장치에 대한 통제권을 중개 및 등록하기 위한 제어 등록권을 획득하기 위해 코어엔진(224)에게 제어 등록권을 요청한다. First, the control unit 222 requests control registration rights from the core engine 224 in order to obtain control registration rights to mediate and register control rights for all operating devices of the robot.

이때, 코어엔진(224)은 조절부(222)로부터 제어 등록권 요청 시그널이 수신(301)되면, 제어 등록권을 이미 소유하고 있는 모듈이 존재하고 있는지 확인(302)한다.At this time, when the core engine 224 receives a control registration right request signal from the control unit 222 (301), it checks (302) whether a module that already owns the control registration right exists.

다음 제어 등록권을 소유하고 있는 모듈이 비존재하면 제어 등록권을 요청한 조절부(222)에게 제어 등록권 소유자로 허가(303)한다. 이때 조절부의 확인부를 제어 등록권 소유자로 허가한다.If the module that owns the next control registration right does not exist, the control unit 222 that requested the control registration right is permitted as the owner of the control registration right (303). At this time, the confirmation unit of the control unit is authorized as the holder of the control registration right.

여기서 확인부는 실행 단위의 확인부(ID)로, 실행단위는 운영체제(OS: Operating System) 상에서 독립적으로 실행되는 것으로 운영체제(OS: Operating System)에 따라 태스크(task) 또는 프로세스(Process)로 구분된다.Here, the confirmation part is the confirmation part (ID) of the execution unit, and the execution unit runs independently on the operating system (OS: Operating System) and is divided into tasks or processes depending on the operating system (OS: Operating System). .

반면 제어 등록권을 소유하고 있는 모듈이 존재하면 제어 등록권을 요청한 조절부(222)에게 제어 등록권 요청을 거절(304)한다.On the other hand, if there is a module that owns the control registration right, the control registration right request is rejected (304) by the control unit 222 that requested the control registration right.

도 4는 실시예에 따른 로봇용 코어엔진을 이용한 모션 제어 시스템에 마련된 컨트롤부의 통제권을 등록하는 순서도이다.Figure 4 is a flowchart for registering control rights of a control unit provided in a motion control system using a core engine for a robot according to an embodiment.

예를 들어, 조절부(222)이 작동장치 a1, a2, a4, a5, a6, a7, a8에 대한 제어 등록권을 가지고, 조절부(222)에 컨트롤부별 작동장치의 통제권을 등록한 컨트롤부 목록이 저장되어 있다고 가정한다.For example, the control unit 222 has control registration rights for operating devices a1, a2, a4, a5, a6, a7, and a8, and the control unit list in which control rights for each operating device for each control unit are registered in the control unit 222. Assume this is stored.

이때 컨트롤부 목록에 제1모션(m1)을 수행하기 위한 제1컨트롤부(223a)이 작동장치 a1, a2에 대한 통제권을 가지고 있고, 제2모션(m2)을 수행하기 위한 제2컨트롤부(223b)이 작동장치 a3, a4, a5에 대한 통제권을 가지고 있다고 가정한다.At this time, in the control unit list, the first control unit 223a for performing the first motion (m1) has control over the operating devices a1 and a2, and the second control unit (223a) for performing the second motion (m2) Assume that 223b) has control over actuators a3, a4, and a5.

우선, 접속 모듈(221)로부터 복수의 모션(m1, m2, m3) 수행이 요청되면, 접속 모듈(221)은 복수의 모션(m1, m2, m3) 수행 요청 시그널을 조절부(222)에게 전송한다.First, when performing a plurality of motions (m1, m2, m3) is requested from the connection module 221, the connection module 221 transmits a request signal to perform a plurality of motions (m1, m2, m3) to the controller 222. do.

조절부(222)은 복수의 모션(m1, m2, m3) 수행 요청 시그널이 수신(401)되면 복수의 컨트롤부(223: 223a, 223b, 223c, ..., 223n) 중 복수의 모션(m1, m2, m3)을 수행할 수 있는 컨트롤부를 각각 검색(402)한다. When a request signal to perform a plurality of motions (m1, m2, m3) is received (401), the control unit 222 controls a plurality of motions (m1) among the plurality of control units (223: 223a, 223b, 223c, ..., 223n). , m2, and m3) are searched for in each control unit (402).

이때, 제1모션(m1)을 수행하기 위한 제1컨트롤부(223a)이 검색되고, 또한 제2모션(m2)을 수행하기 위한 제2컨트롤부(223b)이 검색되나, 조절부(222)에 제3모션(m3)을 수행하기 위한 컨트롤부는 검색되지 않는다.At this time, the first control unit 223a for performing the first motion (m1) is searched, and the second control unit 223b for performing the second motion (m2) is searched, but the control unit 222 The control unit for performing the third motion (m3) is not searched.

즉 복수의 모션(m1, m2, m3) 중 어느 하나의 모션인 제3모션(m3)을 수행하기 위한 컨트롤부가 존재하지 않으면, 제3모션(m3)을 수행하기 위한 컨트롤부를 생성(403)한다.That is, if a control unit for performing the third motion (m3), which is one of the plurality of motions (m1, m2, m3), does not exist, a control unit for performing the third motion (m3) is created (403). .

이때 복수의 컨트롤부(223a, 223b, 223c, ..., 223n) 중 작동장치의 통제권이 허가되지 않은 컨트롤부(223c, ..., 223n)을 대상으로 실행 가능한 컨트롤부를 검색하고, 검색된 컨트롤부 중 제3모션 수행이 가능한 컨트롤부를 선택하고, 선택된 컨트롤부 내에 제3모션 수행이 가능하도록 프로그램을 생성함으로써 제3모션 수행이 가능한 컨트롤부를 생성한다. 여기서 생성된 컨트롤부를 제3컨트롤부(223c)이라고 가정한다.At this time, among the plurality of control units (223a, 223b, 223c, ..., 223n), executable control units are searched for control units (223c, ..., 223n) that are not permitted to control the operating device, and the searched control unit is A control unit capable of performing the third motion is created by selecting a control unit capable of performing the third motion among the parts and creating a program to enable the third motion to be performed within the selected control unit. It is assumed that the control unit created here is the third control unit 223c.

만약, 제3모션 수행이 가능한 컨트롤부가 미리 생성되어 있는 경우에는 컨트롤부 생성 과정을 생략 가능하다.If a control unit capable of performing the third motion has been created in advance, the control unit creation process can be omitted.

다음 컨트롤부(223)은 접속 모듈(221)로부터 구체적인 모션 데이터를 수신(404)한다. 이때 컨트롤부(223)은 모션 데이터를 조절부(22)로부터 전송받는 것도 가능하다.Next, the control unit 223 receives specific motion data from the connection module 221 (404). At this time, the control unit 223 can also receive motion data from the control unit 22.

다음 컨트롤부(223)은 모션 데이터 내의 각종 파라미터들을 해석하여 제3모션을 수행하기 위해 필요한 작동장치를 결정(405)한다.Next, the control unit 223 analyzes various parameters in the motion data and determines the operating device required to perform the third motion (405).

다음 조절부(222)은 제3모션(m3)을 수행하기 위해 필요한 작동장치가 어느 작동장치인지 제3컨트롤부(223c)에게 체크(406)한다.Next, the control unit 222 checks (406) the third control unit 223c which operating device is required to perform the third motion m3.

이때 제3컨트롤부(223c)은 조절부(222)의 체크 시그널에 따라 결정된 작동장치의 정보를 조절부(222)에 전송한다.At this time, the third control unit 223c transmits the information on the operating device determined according to the check signal of the control unit 222 to the control unit 222.

조절부(222)은 제3컨트롤부(223c)로부터 결정된 작동장치의 정보가 전송되면 전송된 작동장치가 가용 가능한지 판단(407)하고, 해당 작동장치가 가용 불가능하면 작동장치를 제어하려 하는 제3컨트롤부(223c)의 통제권 허가를 취소하고, 해당 작동장치가 가용 가능하면 제3컨트롤부(223c)에게 해당 작동장치를 제어하기 위한 통제권을 중개(408)한다. When information on the operating device determined from the third control unit 223c is transmitted, the control unit 222 determines (407) whether the transmitted operating device is available, and if the operating device is not available, the third control unit 223c attempts to control the operating device. The control permission of the control unit 223c is canceled, and if the corresponding operating device is available, the control right to control the corresponding operating device is relayed to the third control unit 223c (408).

아울러, 조절부(222)이 컨트롤부(223)에게 필요한 작동장치를 체크하는 것이 아니라, 컨트롤부(223)이 조절부(222)에게 필요한 작동장치에 대한 통제권을 요청하는 것도 가능하다. In addition, it is possible for the control unit 222 to request control of the necessary operation devices from the control unit 222 rather than checking the control unit 223 for necessary operating devices.

이 경우 컨트롤부(223)이 조절부(222)에게 통제권을 요청할 수 있도록, 조절부(222)이 askCtrlRigh와 같은 인터페이스를 제공해 주는 것이 가능하다. 여기서 askCtrlRight()의 인자로는 최소한 컨트롤부의 실행 단위의 확인부와 필요 작동장치 목록이 제공되어 조절부(222)이 어느 컨트롤부(223)에 의해 어느 작동장치의 통제권이 요청되었는지 알 수 있어야 한다.In this case, it is possible for the control unit 222 to provide an interface such as askCtrlRigh so that the control unit 223 can request control from the control unit 222. Here, as an argument to askCtrlRight(), at least a confirmation unit of the execution unit of the control unit and a list of necessary operating devices must be provided so that the control unit 222 can know which control unit 223 has requested control of which operating device. .

다음 조절부(222)은 제3컨트롤부(223c)이 작동장치 a6, a7, a8의 통제권을 갖도록, 제3컨트롤부(223c)에게 작동장치 a6, a7, a8에 대한 통제권을 허가하라는 요청 시그널을 코어엔진(224)으로 전송한다. Next, the control unit 222 sends a request signal to allow the third control unit 223c to control the actuating devices a6, a7, and a8 so that the third control unit 223c has control over the actuating devices a6, a7, and a8. is transmitted to the core engine (224).

아울러 조절부(222)은 제3컨트롤부(223c)을 식별할 수 있는 확인부를 함께 코어엔진(224)으로 전송한다.In addition, the control unit 222 transmits a confirmation unit that can identify the third control unit 223c to the core engine 224.

다음 코어엔진(224)은 조절부(222)로부터 제3컨트롤부(223c)의 통제권 허가 시그널이 전송되면, 제3컨트롤부(223c)의 통제권 허가 신청을 한 조절부가 제어 등록권 소유자인지 확인(409)한다.Next, when the control right permission signal of the third control unit 223c is transmitted from the control unit 222, the core engine 224 checks whether the control unit that applied for control permission permission of the third control unit 223c is the control registration right holder ( 409).

이때 제3컨트롤부(223c)의 통제권 허가 신청을 한 조절부의 확인부와 코어엔진(224)에 저장된 제어 등록권 소유자의 확인부가 동일한지 비교함으로써 제3컨트롤부(223c)의 통제권 허가 신청을 한 조절부가 제어 등록권 소유자인지 확인한다.At this time, the control right permission application for the third control unit 223c is applied by comparing whether the confirmation unit of the control unit that applied for control permission permission of the third control unit 223c and the confirmation unit of the control registration right holder stored in the core engine 224 are the same. Verifies whether the control unit is the holder of the control registration rights.

다음 코어엔진(224)은 제3컨트롤부(223c)의 통제권 허가 신청을 한 조절부의 확인부가 코어엔진(224)에 저장된 제어 등록권 소유자의 확인부가 동일하면 제3컨트롤부(223c)의 확인부와 작동장치 a6, a7, a8에 대한 통제권을 등록(410)한다.Next, the core engine 224 determines whether the confirmation unit of the third control unit 223c, which has applied for control permission, is the same as the confirmation unit of the control registration right holder stored in the core engine 224, then the confirmation unit of the third control unit 223c. and register control rights to actuators a6, a7, and a8 (410).

다음, 조절부(222)은 컨트롤부 목록에 제3컨트롤부(223c)의 확인부와 작동장치 a6, a7, a8에 대한 통제권을 등록(411)한다.Next, the control unit 222 registers the control authority for the confirmation unit and the operating devices a6, a7, and a8 of the third control unit 223c in the control unit list (411).

이와 같이 복수의 컨트롤부(223: 223a, 223b, 223c, ..., 223n)은 필요로 하는 작동장치에 대한 통제권을 요청하려면 반드시 조절부(222)로부터 중개를 받는다. 이에 따라 조절부(222)은 시스템 전반적인 통제권에 대해 통제할 수 있다. 이 과정은 로봇의 모션 제어 초기화 과정에서 이루어지나, 실행 도중 이루어지는 것도 가능하다.In this way, the plurality of control units 223 (223a, 223b, 223c, ..., 223n) must receive mediation from the control unit 222 in order to request control over the required operating device. Accordingly, the control unit 222 can control the overall control of the system. This process is performed during the robot's motion control initialization, but can also be performed during execution.

상기한 본 발명의 바람직한 실시 예는 예시의 목적으로 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경 및 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 상기의 특허청구 범위에 속하는 것으로 보아야 할 것이다. The preferred embodiments of the present invention described above have been disclosed for illustrative purposes, and those skilled in the art will be able to make various modifications, changes, and additions within the spirit and scope of the present invention, and such modifications, changes, and additions will be possible. should be regarded as falling within the scope of the above patent claims.

본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서, 여러 가지 치환, 변형 및 변경이 가능하므로, 본 발명은 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.Those of ordinary skill in the technical field to which the present invention pertains can make various substitutions, modifications and changes without departing from the technical spirit of the present invention. Therefore, the present invention is limited to the above-described embodiments and the accompanying drawings. It is not limited by

상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타낸 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.In the above-described exemplary system, the methods are described on a flowchart basis as a series of steps or blocks; however, the invention is not limited to the order of the steps, and some steps may occur simultaneously or in a different order than other steps as described above. You can. Additionally, those skilled in the art will understand that the steps shown in the flowchart are not exclusive and that other steps may be included or one or more steps in the flowchart may be deleted without affecting the scope of the present invention.

100: 로봇
200: 로봇용 코어엔진을 이용한 모션 제어 시스템
210: 물리레이어 220: 중간레이어
230: 응용레이어
100: Robot
200: Motion control system using core engine for robots
210: Physical layer 220: Middle layer
230: Application layer

Claims (5)

로봇에 마련된 복수의 작동장치들;
상기 복수의 작동장치들 중 적어도 하나의 작동장치를 제어하여 상기 로봇의 모션을 수행하는 프로그램 및 확인부를 가지는 복수의 컨트롤부들;
컨트롤부별로 상기 적어도 하나의 작동장치의 통제권을 등록하고, 적어도 하나의 모션이 요청되면 상기 복수의 컨트롤부들 중에서 상기 적어도 하나의 모션을 수행할 수 있는 컨트롤부를 검색하는 조절부; 및
상기 검색된 컨트롤부의 상기 확인부를 확인하여 상기 검색된 컨트롤부가 상기 적어도 하나의 모션을 수행하기 위해 필요한 작동장치들에 대한 통제권을 가진 컨트롤부인지 여부를 판단하고, 상기 검색된 컨트롤부가 상기 적어도 하나의 모션을 수행하기 위해 필요한 작동장치들에 대한 통제권을 가진 컨트롤부이라고 판단되면 상기 컨트롤부의 실행을 제어하여 상기 작동장치들을 구동시키는 코어엔진을 포함하는 것을 특징으로 하는 로봇용 코어엔진을 이용한 모션 제어 시스템.
A plurality of operating devices provided on the robot;
a plurality of control units having a program and a confirmation unit that controls at least one operating device among the plurality of operating devices to perform motion of the robot;
a control unit that registers control rights of the at least one operating device for each control unit and, when at least one motion is requested, searches for a control unit capable of performing the at least one motion among the plurality of control units; and
The confirmation unit of the searched control unit is checked to determine whether the searched control unit is a control unit that has control over operating devices required to perform the at least one motion, and the searched control unit performs the at least one motion. A motion control system using a core engine for a robot, characterized in that it includes a core engine that controls the execution of the control unit and drives the operating devices when it is determined that the control unit has control over the operating devices required for the operation.
제 1 항에 있어서,
상기 복수의 컨트롤부들은 상기 적어도 하나의 모션을 수행할 수 있는 복수의 작동장치들을 결정하고, 상기 결정된 복수의 작동장치들에 대한 통제권들을 상기 조절부에 요청하는 로봇용 코어엔진을 이용한 모션 제어 시스템.
According to claim 1,
A motion control system using a core engine for a robot in which the plurality of control units determine a plurality of operating devices capable of performing the at least one motion, and request control rights for the determined plurality of operating devices from the control unit. .
제 1 항에 있어서,
상기 조절부는 상기 코어엔진에게 상기 로봇에 마련된 모든 작동장치에 대한 통제권 등록을 위한 제어 등록권들을 요청하고, 상기 코어엔진으로부터 제어 등록권 허가 시그널이 전송되면 상기 모든 작동장치에 대한 제어 등록권들을 등록하는 로봇용 코어엔진을 이용한 모션 제어 시스템.
According to claim 1,
The control unit requests control registration rights for registering control rights for all operating devices provided in the robot from the core engine, and when a control registration right permission signal is transmitted from the core engine, it registers control registration rights for all operating devices. A motion control system using a core engine for robots.
제 3 항에 있어서,
상기 코어엔진은 상기 조절부로부터 상기 모든 작동장치의 제어 등록권 요청 시그널이 수신되면 이미 제어 등록권들을 소유하고 있는 모듈이 있는지 확인하고 상기 제어 등록권들을 소유하고 있는 모듈이 존재하지 않으면 상기 제어 등록권들을 요청한 조절부에게 상기 모든 작동장치에 대한 제어 등록권들을 허가하는 로봇용 코어엔진을 이용한 모션 제어 시스템.
According to claim 3,
When a request signal for control registration rights of all operating devices is received from the controller, the core engine checks whether there is a module that already owns control registration rights, and if there is no module that owns control registration rights, the core engine performs the control registration. A motion control system using a core engine for a robot that grants control registration rights for all operating devices to the control unit that requests rights.
제 1 항에 있어서,
일정 주기마다 틱 시그널을 발생시키는 타이머 모듈을 더 포함하고,
상기 조절부는 상기 타이머 모듈로부터의 상기 틱 시그널에 대응하여 상기 검색된 컨트롤부에 프로그램을 실행할 것을 지시하는 로봇용 코어엔진을 이용한 모션 제어 시스템.
According to claim 1,
It further includes a timer module that generates a tick signal at regular intervals,
A motion control system using a core engine for a robot in which the control unit instructs the searched control unit to execute a program in response to the tick signal from the timer module.
KR1020220167051A 2022-12-02 2022-12-02 Motion control system using core engine for robot KR20240083286A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220167051A KR20240083286A (en) 2022-12-02 2022-12-02 Motion control system using core engine for robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220167051A KR20240083286A (en) 2022-12-02 2022-12-02 Motion control system using core engine for robot

Publications (1)

Publication Number Publication Date
KR20240083286A true KR20240083286A (en) 2024-06-12

Family

ID=91469596

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220167051A KR20240083286A (en) 2022-12-02 2022-12-02 Motion control system using core engine for robot

Country Status (1)

Country Link
KR (1) KR20240083286A (en)

Similar Documents

Publication Publication Date Title
US9227319B2 (en) Robot control system and method
US9108316B2 (en) Method and system for in-production optimization of the parameters of a robot used for assembly
JP5149258B2 (en) Robot component management device
JP7427113B2 (en) Robot demonstration learning skills template
KR102543212B1 (en) System and method for controlling robot
US10727930B2 (en) Radio repeater selection apparatus and machine learning device
US20200130184A1 (en) Machine tool system
Salman et al. Fogification of industrial robotic systems: Research challenges
KR102522511B1 (en) System and method for controlling multi-degree-of-freedom robot
Vistein et al. Flexible and continuous execution of real-time critical robotic tasks
KR20240083286A (en) Motion control system using core engine for robot
US20220402121A1 (en) Control and monitoring of a machine arrangement
US20150149398A1 (en) Method and apparatus for decision migration in a multi-component robot
JP2019081204A (en) Robot control method, control terminal, and robot system
JP7478862B2 (en) ROBOT CONTROL DEVICE, ROBOT CONTROLLER, ROBOT CONTROL METHOD, TERMINAL DEVICE, AND TERMINAL CONTROL METHOD
Akkaladevi et al. Programming-free approaches for human–robot collaboration in assembly tasks
US11992948B2 (en) Real-time robotics control framework
WO2023145362A1 (en) Robot control system and method of configuring robot control system
Dai et al. A PLCopen-Based Approach for Utilizing Powerful Industrial Robot Functions in PLC-Controlled Applications
KR20240024878A (en) Cooperation control system for machine tool and working robot and method thereof
JPH08106320A (en) Automatic machine and control method for automatic machine
JP2023111376A (en) Robot control system and control device
Steiner et al. Self-Management within a Software Architecture for Parallel Kinematic Machines
KR101594014B1 (en) Method and apparatus for migrating decision in multi-components robot
WO2023136062A1 (en) Control system and program