KR101086363B1 - method of controlling robot system using runtime and apparatus thereof - Google Patents

method of controlling robot system using runtime and apparatus thereof Download PDF

Info

Publication number
KR101086363B1
KR101086363B1 KR1020090018044A KR20090018044A KR101086363B1 KR 101086363 B1 KR101086363 B1 KR 101086363B1 KR 1020090018044 A KR1020090018044 A KR 1020090018044A KR 20090018044 A KR20090018044 A KR 20090018044A KR 101086363 B1 KR101086363 B1 KR 101086363B1
Authority
KR
South Korea
Prior art keywords
runtime
robot system
application
application program
module
Prior art date
Application number
KR1020090018044A
Other languages
Korean (ko)
Other versions
KR20100099508A (en
Inventor
박태진
하영열
박상동
윤성민
김민수
김재훈
Original Assignee
삼성중공업 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성중공업 주식회사 filed Critical 삼성중공업 주식회사
Priority to KR1020090018044A priority Critical patent/KR101086363B1/en
Publication of KR20100099508A publication Critical patent/KR20100099508A/en
Application granted granted Critical
Publication of KR101086363B1 publication Critical patent/KR101086363B1/en

Links

Images

Classifications

    • 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
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J18/00Arms
    • B25J18/06Arms flexible
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/06Safety devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/02Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type
    • B25J9/04Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type by rotating at least one arm, excluding the head movement itself, e.g. cylindrical coordinate type or polar coordinate type
    • B25J9/041Cylindrical coordinate type
    • B25J9/042Cylindrical coordinate type comprising an articulated arm
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1689Teleoperation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

런타임을 이용한 로봇 시스템 제어 방법 및 그 장치가 개시된다. 보다 구체적으로는 로봇 시스템에 내장된 마스터 제어기에서 실행되는 런타임을 이용하여 상기 로봇 시스템을 제어하는 방법으로서, 부트 로더를 이용하여 상기 마스터 제어기를 초기화 하는 단계; 상기 마스터 제어기의 메모리에 런타임 실행 코드를 로딩함으로써 상기 런타임을 실행하는 단계; 상기 런타임의 응용 프로그램 로딩 모듈을 이용하여 상기 로봇 시스템의 응용 프로그램을 로딩하는 단계; 및 상기 런타임의 응용 프로그램 인터페이스 모듈을 이용하여 상기 응용 프로그램을 실행하는 단계를 포함하는 런타임을 이용한 로봇 시스템 제어 방법이 제공된다. 이에 의하면 로봇 시스템의 기능 구현을 위한 응용 프로그램을 보다 효율적으로 관리할 수 있다. Disclosed are a method and apparatus for controlling a robot system using a runtime. More specifically, a method of controlling the robot system using a runtime executed in a master controller embedded in the robot system, the method comprising: initializing the master controller using a boot loader; Executing the runtime by loading runtime execution code into the memory of the master controller; Loading an application program of the robotic system using the application program loading module of the runtime; And there is provided a robot system control method using a runtime comprising the step of executing the application program using the application program interface module of the runtime. According to this, the application program for implementing the function of the robot system can be managed more efficiently.

로봇 제어, 내장형 제어기, 런타임 Robot Control, Embedded Controller, Runtime

Description

런타임을 이용한 로봇 시스템 제어 방법 및 그 장치 {method of controlling robot system using runtime and apparatus thereof}Method of controlling robot system using runtime and apparatus thereof

본 발명은 제어 효율성을 개선하기 위해 런타임을 이용하는 로봇 시스템 제어 방법 및 그 장치에 관한 것이다. The present invention relates to a method and apparatus for controlling a robot system using a runtime to improve control efficiency.

산업 현장에서 이용되는 로봇의 경우 그 이동 및 동작을 제어하기 위한 내장 형 제어기가 사용된다. 종래 기술에 따른 내장형 로봇 제어기의 경우 단순 부트 로더 방식을 채용하는 것이 일반적이다. For industrial robots, built-in controllers are used to control their movement and movement. In the case of the embedded robot controller according to the prior art, it is common to adopt a simple boot loader method.

단순 부트 로더 방식의 경우 로봇 제어를 위한 일부 응용 프로그램의 문제가 발생할 경우, 그 문제가 발생한 응용 프로그램만을 초기화함으로써 문제를 해결하는데 어려움이 있다. 따라서, 작은 오류가 발생하는 경우에도 내장형 제어기 전체를 초기화 하여 부트 로더를 재실행하는 방법으로 문제를 해결하는 방법이 이용되었다.In the case of the simple boot loader method, when a problem occurs in some application programs for robot control, it is difficult to solve the problem by initializing only the application program in which the problem occurs. Therefore, even if a small error occurs, a method of resolving the problem by initializing the entire embedded controller and rerunning the boot loader has been used.

또한 종래의 부트 로더 시스템의 경우 동시에 복수개의 응용 프로그램이 실행되는 환경에서 각 응용 프로그램의 프로세스를 효율적으로 관리하지 못하는 난점 이 있었다. In addition, the conventional boot loader system has a difficulty in managing the processes of each application efficiently in an environment in which a plurality of applications are executed at the same time.

따라서, 로봇 시스템의 제어와 관련하여 복수 개의 응용 프로그램을 효율적으로 관리하며, 오류 발생시에도 민첩한 대응을 할 수 있는 제어 방법 및 장치의 개발이 요구되는 상황이다. Therefore, there is a situation in which a control method and an apparatus for efficiently managing a plurality of application programs in connection with the control of the robot system and enabling agile response even when an error occurs are required.

본 발명은 런타임 시스템을 이용하여 내장형 로봇 시스템을 효율적으로 관리하기 위한 방법과 그 장치를 제공하는 것이다.The present invention provides a method and apparatus for efficiently managing an embedded robot system using a runtime system.

본 발명의 일 측면에 따르면, 로봇 시스템에 내장된 마스터 제어기에서 실행되는 런타임을 이용하여 로봇 시스템을 제어하는 방법으로서, 부트 로더를 이용하여 마스터 제어기를 초기화 하는 단계; 마스터 제어기의 메모리에 런타임 실행 코드를 로딩함으로써 런타임을 실행하는 단계; 런타임의 어플리케이션 로더 모듈을 이용하여 로봇 시스템의 응용 프로그램을 로딩하는 단계 및 런타임의 응용 프로그램 인터페이스 모듈을 이용하여 응용 프로그램을 실행하는 단계를 포함하는 런타임을 이용한 로봇 시스템 제어 방법이 제공된다. 이와 같이 로봇 시스템의 제어에 런타임을 도입함으로써 로봇 시스템의 기능 구현을 위한 응용 프로그램의 관리 효율성을 재고할 수 있다.According to an aspect of the present invention, a method for controlling a robot system using a runtime executed in a master controller embedded in a robot system, the method comprising: initializing a master controller using a boot loader; Executing the runtime by loading the runtime execution code into the memory of the master controller; Provided are a method for controlling a robot system using a runtime, including loading an application program of a robot system using an application loader module of a runtime, and executing an application program using an application program interface module of a runtime. By introducing a runtime in the control of the robot system in this way, it is possible to reconsider the management efficiency of the application program for implementing the function of the robot system.

로봇 시스템은 마스터 제어기의 슬레이브 제어기를 더 포함할 수 있고, 이 경우 런타임의 제어기 형상 관리 모듈을 이용하여 상기 슬레이브 제어기의 인식 및 시스템 정보 구성을 동적으로 관리할 수 있다. 이에 의하면 로봇 시스템의 사용자는 호스트 컴퓨터를 통해 마스터 제어기와의 통신을 이용하여 복수 개의 슬레이브 제어기를 관리할 수 있다는 장점이 있다. The robot system may further include a slave controller of the master controller. In this case, the robot controller may dynamically manage recognition and system information configuration of the slave controller using a controller shape management module of the runtime. This has the advantage that the user of the robot system can manage the plurality of slave controllers by using the communication with the master controller through the host computer.

로봇 시스템 제어 방법은 런타임의 데이터 로거 모듈을 이용하여 상기 마스터 제어기의 동작에 대한 이력 정보를 생성할 수 있다. 생성된 이력 정보는 호스트 컴퓨터로 전달될 수 있으며, 이를 통해 로봇 시스템의 오동작 정보 등을 손쉽게 파악할 수 있다. The robot system control method may generate history information on the operation of the master controller using a data logger module at runtime. The generated history information can be transferred to the host computer, through which the malfunction information of the robot system can be easily identified.

응용 프로그램을 실행을 위해 응용 프로그램 인터페이스 모듈은 로봇 시스템의 운영 체제의 시스템 콜을 이용할 수 있다. 응용 프로그램의 실행을 위한 매개 변수는 상기 마스터 제어기의 레지스터를 이용하여 전달될 수 있다.The application program interface module may utilize system calls of the robotic system's operating system to execute the application program. Parameters for the execution of an application can be passed using the registers of the master controller.

본 발명의 다른 측면에 따르면, 로봇 시스템에 내장되며 런타임을 이용하여 로봇 시스템을 제어하는 장치로서, 런타임의 실행을 위한 런타임 코드, 런타임 심볼 테이블 및 로봇 시스템의 기능을 구현하는 어플리케이션 코드를 저장하는 저장부, 런타임의 실행을 위한 연산을 수행하고, 로봇 시스템 제어 장치 내의 신호 흐름을 제어하는 연산부, 및 로봇 시스템의 호스트 컴퓨터와 통신하는 통신부를 포함하고, 런타임은 어플리케이션 코드를 로딩하는 어플리케이션 로더 모듈 및 로딩된 어플리케이션 코드를 실행하는 응용 프로그램 인터페이스 모듈을 포함하는 런타임을 이용한 로봇 시스템 제어 장치가 개시된다. According to another aspect of the present invention, a device embedded in a robot system and controlling a robot system using a runtime, the apparatus stores a runtime code for execution of a runtime, a runtime symbol table, and application code for implementing functions of the robot system. A unit which performs operations for execution of the runtime, controls a signal flow in the robot system control apparatus, and a communication unit which communicates with a host computer of the robot system, wherein the runtime includes an application loader module for loading application code and loading Disclosed is a robot system control apparatus using a runtime including an application program interface module that executes an application code.

로봇 시스템의 제어를 위해 이용되는 런타임은 로봇 시스템에 내장된 슬레이브 제어기의 인식 및 시스템 정보 구성을 동적으로 관리하는 제어기 형상 관리 모듈을 더 포함할 수 있다. 이와 같이 슬레이브 제어기의 정보 구성을 런타임으로 관리함으로써 보다 효율적인 분산 제어 환경을 구현할 수 있다. The runtime used for the control of the robot system may further include a controller shape management module that dynamically manages the recognition and system information configuration of the slave controller embedded in the robot system. As such, by managing information configuration of the slave controller at runtime, a more efficient distributed control environment can be realized.

런타임은 상기 런타임의 모듈의 동작에 대한 이력 정보를 생성하는 데이터 로거 모듈을 더 포함할 수 있으며, 이를 통해 로봇 시스템의 동작 및 오동작에 대한 정보가 효율적으로 관리될 수 있다. The runtime may further include a data logger module for generating history information on the operation of the module of the runtime, through which information about the operation and malfunction of the robot system may be efficiently managed.

전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.Other aspects, features, and advantages other than those described above will become apparent from the following drawings, claims, and detailed description of the invention.

본 발명의 바람직한 실시예에 따르면, 로봇 시스템의 제어에 런타임을 도입함으로써 로봇 시스템의 기능 구현을 위한 응용 프로그램의 관리 효율성을 재고할 수 있다.According to a preferred embodiment of the present invention, by introducing a runtime to the control of the robot system, it is possible to rethink the management efficiency of the application program for implementing the function of the robot system.

이하, 본 발명에 따른 런타임을 이용한 로봇 시스템 제어 방법 및 그 장치의 실시예를 첨부도면을 참조하여 상세히 설명하기로 한다. Hereinafter, an embodiment of a robot system control method and a device using the runtime according to the present invention will be described in detail with reference to the accompanying drawings.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하 는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all transformations, equivalents, and substitutes included in the spirit and scope of the present invention. In the following description of the present invention, if it is determined that the detailed description of the related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, in the description with reference to the accompanying drawings, the same or corresponding components will be given the same reference numerals and duplicate description thereof will be omitted.

도 1은 본 발명의 일 실시예에 따른 런타임을 지원하는 이용한 로봇 제어 시스템이 구현된 환경을 예시한 도면이다. 도 1을 참조하면, 로봇 시스템(100)은 마스터 제어기(110), 마스터 제어기 런타임(120), 제1 슬레이브 제어기(130), 제2 슬레이브 제어기(140)를 포함할 수 있다. 마스터 제어기(110)는 호스트 컴퓨터(150)와 통신함으로써 사용자 명령을 전달받을 수 있다. 1 is a diagram illustrating an environment in which a robot control system using a runtime support according to an embodiment of the present invention is implemented. Referring to FIG. 1, the robot system 100 may include a master controller 110, a master controller runtime 120, a first slave controller 130, and a second slave controller 140. The master controller 110 can receive a user command by communicating with the host computer 150.

로봇 시스템(100)은 복수 개의 매니퓰레이터를 포함할 수 있다. 복수 개의 매니퓰레이터는 마스터 제어기(110) 및/또는 슬레이브 제어기(130, 140)에 의하여 제어된다. The robotic system 100 may include a plurality of manipulators. The plurality of manipulators are controlled by the master controller 110 and / or the slave controllers 130, 140.

마스터 제어기(110)는 로봇 시스템(100)의 메인 제어기로서 호스트 컴퓨터(150)에서의 사용자 명령을 전달받아 슬레이브 제어기(130, 140) 및 로봇 매니퓰레이터를 관리/제어한다. 본 발명의 일 실시예에 따른 마스터 제어기는 단순 부트 로더 방식이 아니라 런타임(120)을 채용함으로써 로봇 시스템(100)의 관리 효율성을 높이는 것에 그 특징이 있다. The master controller 110 receives user commands from the host computer 150 as a main controller of the robot system 100 to manage / control the slave controllers 130 and 140 and the robot manipulator. The master controller according to an embodiment of the present invention is characterized by increasing the management efficiency of the robot system 100 by employing the runtime 120 rather than the simple boot loader method.

슬레이브 제어기(130, 140)에는 각 슬레이브 구동기의 제어 동작에 필요한 기능이 펌웨어의 형태로 구현되어 있다. 슬레이브 제어기(130, 140)는 마스터 제어기(110)와 통신 모듈로 연결되며 마스터 제어기(110)에 의하여 관리된다.In the slave controllers 130 and 140, functions necessary for the control operation of each slave driver are implemented in the form of firmware. The slave controllers 130 and 140 are connected to the master controller 110 by a communication module and are managed by the master controller 110.

호스트 컴퓨터(150)는 로봇 시스템의 사용자가 로봇 시스템(100)을 제어하기 위해 이용하는 단말기이다. 사용자는 호스트 컴퓨터(150)를 통해 마스터 제어기(110)의 런타임(120)에 접속하여 로봇 시스템(100)을 관리한다. The host computer 150 is a terminal used by a user of the robot system to control the robot system 100. The user connects to the runtime 120 of the master controller 110 through the host computer 150 to manage the robot system 100.

도 2는 본 발명의 일 실시예에 따른 런타임 이용 로봇 시스템 제어 장치의 구성도이다. 도 2를 참조하면, 마스터 제어기(110)는 연산부(112), 저장부(114) 및 통신부(118)를 포함하고 있다. 2 is a block diagram of a runtime use robot system control apparatus according to an embodiment of the present invention. Referring to FIG. 2, the master controller 110 includes an operation unit 112, a storage unit 114, and a communication unit 118.

마스터 제어기(110)의 연산부(112)는 마스터 제어기의 중앙 처리 장치(CPU)에 대응되는 것으로, 마스터 제어기 내의 신호 흐름을 제어하고 마스터 제어기에서 수행되는 기능의 수행을 위한 물리적인 연산을 수행한다. 즉 연산부(112)는 런타임의 실행을 위한 연산을 수행하고, 로봇 시스템 제어 장치 내의 신호 흐름을 제어 한다.The operation unit 112 of the master controller 110 corresponds to the central processing unit (CPU) of the master controller, and controls a signal flow in the master controller and performs a physical operation for performing a function performed in the master controller. That is, the operation unit 112 performs an operation for execution of the runtime, and controls the signal flow in the robot system control apparatus.

저장부(114)는 마스터 제어기(110)의 기능 수행을 위해 필요한 데이터를 저장하는 공간으로 마스터 제어기 내의 메모리 칩에 대응된다. 즉, 저장부(114)는 런타임의 실행을 위한 런타임 코드, 런타임 심볼 테이블 및 로봇 시스템의 기능을 구현하는 어플리 케이션 코드를 저장한다. 마스터 제어기(110)의 저장부(114)는 RAM(115)과 비휘발성 메모리(116)로 구분될 수 있다. The storage unit 114 is a space for storing data necessary for performing a function of the master controller 110 and corresponds to a memory chip in the master controller. That is, the storage unit 114 stores the runtime code for the execution of the runtime, the runtime symbol table, and the application code for implementing the functions of the robot system. The storage unit 114 of the master controller 110 may be divided into a RAM 115 and a nonvolatile memory 116.

RAM(115)은 마스터 제어기(110)의 동작 중에 연산의 대상이 되는 정보들을 저장하는 기능을 수행한다. RAM(115)의 경우 일반적으로 비휘발성 메모리(116)에 비하여 빠른 응답 속도를 보이며, 전원의 차단에 따라 그 내용이 초기화 되는 특성을 보인다. RAM(115)은 로봇 시스템(100)의 기동되는 상태에 따라 필요한 다양한 정보들을 저장한다. The RAM 115 performs a function of storing information that is a target of operation during the operation of the master controller 110. In the case of the RAM 115, the response speed is generally higher than that of the nonvolatile memory 116, and the contents of the RAM 115 are initialized when the power is cut off. The RAM 115 stores various pieces of information necessary according to the startup state of the robot system 100.

비휘발성 메모리(116)는 전원의 차단 시에도 그 내용이 유지되는 특성을 가지며, 플래시 메모리 등의 소자를 이용하여 구현된다. 비휘발성 메모리(116)는 런타임 코드, 런타임 심볼 테이블, 로봇 시스템의 기능 구현을 위한 어플리케이션 코드들을 저장하고 있다. 로봇 시스템(100)의 동작 단계에 따라 저장부(114)에 저장되는 정보들은 도 4 내지 도 7을 참조하여 상세히 설명된다. The nonvolatile memory 116 has a characteristic that its contents are maintained even when the power is cut off, and is implemented using a device such as a flash memory. The nonvolatile memory 116 stores runtime code, a runtime symbol table, and application codes for implementing functions of the robotic system. Information stored in the storage unit 114 according to the operation stage of the robot system 100 will be described in detail with reference to FIGS. 4 to 7.

통신부(118)는 로봇 시스템(100)의 호스트 컴퓨터와 통신한다. 즉, 마스터 제어기(110)와 호스트 컴퓨터(150)사이의 신호 전달을 담당한다. 또한 통신부(118)는 마스터 제어기(110)와 로봇 시스템(100)의 다른 부분(예를 들어, 슬레이브 제어기, 매니퓰레이터)과의 통신을 담당한다. 로봇 시스템(100)의 제어를 위한 신호 전달은 TCP 소켓 통신, UDP 통신, TFTP 통신 등의 다양한 방법으로 구현될 수 있으며 통신부(118)는 이러한 통신을 담당하는 네트워킹 하드웨어에 대응된다.The communication unit 118 communicates with a host computer of the robot system 100. That is, it is responsible for signal transmission between the master controller 110 and the host computer 150. In addition, the communication unit 118 is responsible for communication between the master controller 110 and other parts of the robot system 100 (eg, slave controller, manipulator). Signal transmission for the control of the robot system 100 may be implemented in various ways, such as TCP socket communication, UDP communication, TFTP communication, and the communication unit 118 corresponds to the networking hardware responsible for such communication.

마스터 제어기(110)를 구성하는 하드웨어 자체 구성에 대한 설명은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 사람(이하 당업자)에게 자명한 사항이므로 이하 그 구체적인 설명은 생략된다. 로봇 시스템(100)의 제어기를 위한 마스터 제어기(110)의 동작 및 런타임(120)의 구성은 다른 도면을 참조하여 상세히 설명될 것이다. Description of the hardware itself constituting the master controller 110 is obvious to those skilled in the art (hereinafter, those skilled in the art) to which the present invention belongs, the detailed description thereof will be omitted. The operation of the master controller 110 and the configuration of the runtime 120 for the controller of the robotic system 100 will be described in detail with reference to the other figures.

도 3은 본 발명의 일 실시예에 따른 제어기 런타임의 구성을 예시한 도면이 다. 도 3을 참조하면, 마스터 제어기(110)에 포함될 수 있는 기능들이 예시되어 있다. 마스터 제어기(110)의 런타임(120)은 어플레케이션 코드를 로딩하는 어플리케이션 로더 모듈(340) 및 로딩된 어플리케이션 코드를 실행하는 응용 인터페이스 모듈(350)을 포함할 수 있다. 또한, 런타임(120)은 로봇 시스템(100)에 내장된 슬레이브 제어기의 인식 및 시스템 정보 구성을 동적으로 관리하는 제어기 형상 관리 모듈(330)을 포함할 수 있고, 런타임의 모듈의 동작에 대한 이력 정보를 생성하는 데이터 로거 모듈(320)을 포함할 수 있다. 더욱더 상세하게 런타임(120)은 하드웨어 디바이스 드라이버 모듈(310), 하드웨어 관리 모듈, 메모리 관리 모듈, 통신 프로토콜 모듈, 사용자 명령 인터페이스 모듈, 시뮬레이터 인터페이스, 데이터 로거 모듈(320), 제어기 형상관리 모듈(330), 어플리케이션 로더 모듈(340), 응용 프로그램 인터페이스 모듈(350)을 포함할 수 있으며, 이러한 각 기능별 구성요소는 운영체제 커널(360)을 통해 관리될 수 있다. 3 is a diagram illustrating a configuration of a controller runtime according to an embodiment of the present invention. Referring to FIG. 3, the functions that may be included in the master controller 110 are illustrated. The runtime 120 of the master controller 110 may include an application loader module 340 for loading application code and an application interface module 350 for executing the loaded application code. In addition, the runtime 120 may include a controller shape management module 330 that dynamically manages the recognition and system information configuration of the slave controller embedded in the robot system 100, and includes history information on the operation of the module of the runtime. It may include a data logger module 320 to generate. In more detail, the runtime 120 includes a hardware device driver module 310, a hardware management module, a memory management module, a communication protocol module, a user command interface module, a simulator interface, a data logger module 320, a controller configuration management module 330. , An application loader module 340, an application program interface module 350, and each of these functional components may be managed through the operating system kernel 360.

하드웨어 디바이스 드라이버 모듈(310)은 마스터 제어기(110)의 하드웨어 구성요소들을 구동하기 위한 드라이버를 지원하는 모듈로서 운영체제 및 런타임의 각 구성요소들은 이 하드웨어 디바이스 드라이버 모듈(310)을 통해 하드웨어 자원을 활용하게 되며, 하드웨어 사용에 대한 정보는 런타임의 하드웨어 관리기능과 메모리 관리기능을 통해 관리된다.The hardware device driver module 310 is a module supporting a driver for driving the hardware components of the master controller 110 so that each component of the operating system and the runtime can utilize hardware resources through the hardware device driver module 310. Information about hardware usage is managed through runtime hardware management and memory management.

데이터 로거 모듈(320)은 로봇 시스템(100)을 제어하는 마스터 제어기(110) 및 슬레이브 제어기들(130, 140)등의 동작에 대한 이력 정보를 수집하여 기록한다. 이러한 제어 이력 정보는 호스트 컴퓨터(150)에 전송될 수 있다. 데이터 로거 모 듈(320)은 예를 들어 TCP/IP 소켓 통신을 통해 호스트 컴퓨터와 정보를 교환할 수 있다. The data logger module 320 collects and records history information about operations of the master controller 110 and the slave controllers 130 and 140 that control the robot system 100. Such control history information may be transmitted to the host computer 150. The data logger module 320 may exchange information with a host computer via, for example, TCP / IP socket communication.

제어기 형상 관리 모듈(330)은 마스터 제어기와 네트워크를 통해 연결되는 슬레이브 제어기의 인식 및 시스템 정보 구성 등을 동적으로 관리하는 기능을 제공한다.The controller shape management module 330 provides a function of dynamically managing the recognition and system information configuration of the slave controller connected to the master controller through a network.

어플리케이션 로더 모듈(340)은 로봇 시스템(100)의 기능 구현을 위한 응용프로그램 로딩 기능과 심볼테이블 로딩 기능을 제공한다. 어플리케이션 로더 모듈(340)은 마스터 제어기에 저장된 응용 프로그램을 로딩하여 실행시키고 사용자가 별도로 작성한 심볼테이블의 데이터 값을 응용 프로그램에 로딩하는 기능을 제공한다. 또한 이렇게 응용 프로그램 로더를 통해 실행된 응용 프로그램은 런타임의 응용 프로그램 인터페이스를 통해 런타임의 기능들을 호출하여 사용한다. 어플리케이션 로더 모듈(340)의 구체적인 동작은 도 9를 참조하여 설명된다.The application loader module 340 provides an application program loading function and a symbol table loading function for implementing the functions of the robot system 100. The application loader module 340 loads and executes an application program stored in the master controller, and provides a function of loading data values of a symbol table separately prepared by a user into the application program. In addition, an application executed through the application loader may call and use functions of the runtime through the application program interface of the runtime. Specific operations of the application loader module 340 will be described with reference to FIG. 9.

응용 프로그램 인터페이스 모듈(350)은 로봇 시스템(100)의 운영 체제의 시스템 콜을 이용하여 어플리케이션 코드를 실행한다. 또한 어플리케이션 코드의 실행을 위해 참조되는 매개 변수는 로봇 시스템을 제어하는 장치의 레지스트리를 이용하여 전달된다. 즉, 응용 프로그램 인터페이스 모듈(350)은 로봇 시스템의 운영 체제가 제공하는 시스템 콜을 이용하여 응용 프로그램의 실행을 지원하는 API를 지원하는 모듈이다. 응용 프로그램 인터페이스의 호출 및 실행은 도 10을 참조하여 설명될 것이다. The application program interface module 350 executes the application code by using a system call of the operating system of the robot system 100. In addition, the parameters referenced for the execution of application code are passed using the registry of the device controlling the robotic system. That is, the application program interface module 350 is a module that supports an API that supports execution of an application program using a system call provided by an operating system of the robot system. Invocation and execution of the application program interface will be described with reference to FIG.

사용자명령 인터페이스 모듈은 호스트 컴퓨터(150)로부터 사용자 명령을 수 신 받고, 그 수행 결과를 호스트 컴퓨터(150)로 응답하는 기능을 제공한다. 시뮬레이터 인터페이스 모듈은 호스트 컴퓨터(150)상에 탑재된 로봇 시뮬레이션 소프트웨어와의 인터페이스를 제공한다. The user command interface module provides a function of receiving a user command from the host computer 150 and responding to the host computer 150 with the result of the execution. The simulator interface module provides an interface with robot simulation software mounted on the host computer 150.

한편, 본 발명의 일 실시예에 따른 마스터 제어기(110)의 런타임(120)은 범용 직렬통신(UART), 이더넷(Ethernet), IP(Internet Protocol), ARP(Address Resolution Protocol), TCP(Transmission Control Protocol), UDP(User Datagram Protocol), TFTP(Trivial File Transfer Protocol) 등이 통신 프로토콜을 지원할 수 있다. On the other hand, the runtime 120 of the master controller 110 according to an embodiment of the present invention is a universal serial communication (UART), Ethernet (Ethernet), IP (Internet Protocol), ARP (Address Resolution Protocol), TCP (Transmission Control) Protocol, User Datagram Protocol (UDP), Trivial File Transfer Protocol (TFTP), etc. may support the communication protocol.

도 4는 본 발명의 일 실시예에 따른 런타임 이용 로봇 시스템 제어 방법의 흐름도이다. 도 5는 본 발명의 일 실시예에 따른 제어기의 런타임 로딩 동작을 예시한 도면이다. 도 6은 본 발명의 일 실시예에 따른 제어기의 응용 프로그램 로딩 단계를 예시한 도면이다. 도 7은 본 발명의 일 실시예에 따른 제어기의 응용 프로그램 실행 단계를 예시한 도면이다.4 is a flowchart illustrating a method for controlling a runtime using robot system according to an embodiment of the present invention. 5 is a diagram illustrating a runtime loading operation of a controller according to an embodiment of the present invention. 6 is a diagram illustrating an application program loading step of the controller according to an embodiment of the present invention. 7 is a diagram illustrating an application program execution step of the controller according to an embodiment of the present invention.

부트 로더를 이용하여 내장형 제어기를 부팅하는 단계(S410)는 부트 로더를 이용하여 마스터 제어기(110)를 초기화 하는 단계이다. 즉, 로봇 시스템(100)의 제어기를 위해 마스터 제어기(110) 및/또는 슬레이브 제어기들(130, 140)을 초기화하는 과정이다. 이러한 초기화 과정을 통해 마스터 제어기(110)에 런타임(120)을 로딩할 준비가 완료된다. 부트 로더에 의한 로봇 시스템의 초기화 과정에 대한 사항은 당업자에게 자명한 사항으로 이하 상세한 설명은 생략된다. Booting the embedded controller using the boot loader (S410) is a step of initializing the master controller 110 using the boot loader. That is, the process of initializing the master controller 110 and / or slave controllers 130 and 140 for the controller of the robot system 100. Through this initialization process, the runtime controller 120 is ready to load the runtime 120. Details of the initialization process of the robot system by the boot loader are obvious to those skilled in the art, and detailed descriptions thereof will be omitted.

런타임을 로딩하는 단계(S420)는 부트 로더에 의한 로봇 시스템(100) 초기화 과정이 완료된 후에 런타임(120)의 기동을 준비하는 과정이다. 도 5를 참조하면 런타임 로딩 과정은 마스터 제어기(110)의 비휘발성 메모리(116)로부터 RAM(115)에 런타임 코드를 로딩함으로써 수행된다. 부트 로더에 의해 마스터 제어기(110)의 초기화 및 부팅이 완료되면 부트 로더는 비휘발성 메모리(116)에 저장된 런타임 실행코드를 RAM(115)에 로드한다. 부트 로더에 의해 플래시 메모리로부터 런타임 실행 코드의 로딩을 완료되면 부트 로더는 제어기의 제어권한을 런타임 코드에 인계하고 런타임을 실행시킨다. 즉, 마스터 제어기(110)의 메모리에 런타임 실행 코드를 로딩함으로써 런타임(120)을 실행하는 단계이다. 런타임(120)이 실행되면 런타임 실행코드에 프로그래밍된 초기화 정보에 따라 런타임 데이터가 생성된다. The loading of the runtime (S420) is a process of preparing the startup of the runtime 120 after the initialization process of the robot system 100 by the boot loader is completed. Referring to FIG. 5, the runtime loading process is performed by loading runtime code from the nonvolatile memory 116 of the master controller 110 to the RAM 115. When initialization and booting of the master controller 110 are completed by the boot loader, the boot loader loads the runtime executable code stored in the nonvolatile memory 116 into the RAM 115. Upon completion of loading the runtime executable code from the flash memory by the boot loader, the boot loader takes over control of the controller to the runtime code and executes the runtime. In other words, the runtime 120 is executed by loading the runtime execution code into the memory of the master controller 110. When the runtime 120 is executed, runtime data is generated according to initialization information programmed in the runtime execution code.

응용 프로그램을 로딩하는 단계(S430)는 런타임(120)의 어플리케이션 로더 모듈(340)을 이용하여 로봇 시스템의 응용 프로그램을 로딩하는 단계로, 마스터 제어기(110)의 런타임(120)이 실행된 상태에서 로봇 시스템의 기능 구현을 위한 응용 프로그램을 로딩하는 단계이다. 도 6을 참조하면, 응용 프로그램의 로딩은 런타임 심볼테이블과 응용 프로그램(어플리케이션 코드1, 어플리케이션 코드N)을 RAM(115)에 로드함으로써 수행된다. 한편, 호스트 컴퓨터(150)의 사용자는 런타임을 통해 런타임 심볼 테이블을 수정할 수 있다. Loading the application program (S430) is a step of loading the application program of the robot system using the application loader module 340 of the runtime 120, in the state in which the runtime 120 of the master controller 110 is executed This is a step of loading an application program for implementing a function of the robot system. Referring to FIG. 6, loading of an application program is performed by loading a runtime symbol table and an application program (application code 1, application code N) into the RAM 115. Meanwhile, a user of the host computer 150 may modify the runtime symbol table through runtime.

응용 프로그램을 실행하는 단계(S440)는 런타임(120)의 응용 프로그램 인터페이스모듈(350)을 이용하여 응용 프로그램을 실행하는 단계로, 로딩된 응용 프로그램을 실행하여 로봇 시스템(100)의 기능을 구현하는 단계이다. 여기서, 응용 프 로그램 인터페이스 모듈(350)은 로봇 시스템(100)의 운영 체제의 시스템 콜을 이용하고, 응용 프로그램의 실행을 위한 매개 변수는 마스터 제어기(110)의 레지스트리를 이용하여 전달된다. 어플리케이션 코드의 로딩이 완료되면 런타임은 동적으로 프로세스를 생성하여 어플리케이션 코드를 실행시킨다. 이때 어플리케이션 코드는 초기화 정보에 따라 어플리케이션 데이터를 생성하고, 필요할 경우 런타임 심볼테이블을 참조하여 어플리케이션 데이터를 수정할 수 있다. 각 응용프로그램은 운영체제에 의해 별도의 프로세스로 생성되어 관리될 수 있다. 마스터 제어기(110)의 런타임(120)은 이와 같이 동시에 여러 개의 응용 프로그램을 로드하여 실행시킬 수 있다.The execution of the application program (S440) is a step of executing an application program using the application program interface module 350 of the runtime 120. The execution of the loaded application program implements the functions of the robot system 100. Step. Here, the application interface module 350 uses a system call of the operating system of the robot system 100, and parameters for the execution of the application program are transmitted using the registry of the master controller 110. When the application code has finished loading, the runtime dynamically creates a process to run the application code. In this case, the application code may generate the application data according to the initialization information and, if necessary, modify the application data by referring to the runtime symbol table. Each application can be created and managed by a separate process by the operating system. The runtime 120 of the master controller 110 may load and execute several application programs at the same time.

도 8은 본 발명의 일 실시예에 따른 제어기 어플리케이션 호스트 인터페이스를 예시한 도면이다. 8 is a diagram illustrating a controller application host interface according to an embodiment of the present invention.

앞서 언급된 바와 같이 마스터 제어기(110)의 런타임(120)은 어플리케이션-호스트 인터페이스를 통해 호스트 컴퓨터(150)와 정보를 교환할 수 있다. 도 8에서 예시된 바와 같이 어플리케이션-호스트 인터페이스는 사용자 명령 인터페이스 모듈, 시뮬레이터 인터페이스 모듈, 제어기 형상 관리 모듈(330), 메모리 파일 시스템 모듈, 어플리케이션 로더 모듈(340)을 포함할 수 있다. As mentioned above, the runtime 120 of the master controller 110 can exchange information with the host computer 150 via an application-host interface. As illustrated in FIG. 8, the application-host interface may include a user command interface module, a simulator interface module, a controller shape management module 330, a memory file system module, and an application loader module 340.

사용자 명령 인터페이스 모듈은 TCP 소켓통신을 통해 호스트 컴퓨터(150)와 정보를 교환할 수 있다. 호스트 컴퓨터(150)의 사용자 명령창 등을 통해 사용자가 로봇 제어 명령을 입력하면 마스터 제어기(110)의 어플리케이션-호스트 인터페이스의 사용자 명령 인터페이스 모듈이 이를 수신하여 사용자 명령을 수행하고 그 수행 결과를 사용자 명령창에 응답한다. The user command interface module may exchange information with the host computer 150 through TCP socket communication. When a user inputs a robot control command through a user command window of the host computer 150, the user command interface module of the application-host interface of the master controller 110 receives the user command interface module to perform a user command and output the result of the user command. Respond to the window.

시뮬레이터 인터페이스 모듈은 TCP 소켓통신을 통해 호스트 컴퓨터의 로봇 시뮬레이터와 정보를 교환한다. The simulator interface module exchanges information with the robot simulator of the host computer via TCP socket communication.

메모리파일 시스템 모듈은 TFTP 통신을 통해 호스트 컴퓨터의 TFTP 콘솔창과 연결된다. 사용자는 TFTP 명령을 통해 마스터 제어기(110)에 파일을 다운로드하거나 제어기로부터 파일을 업로드할 수 있으며, 파일명 변경, 삭제 등의 작업을 수행할 수 있다. The memory file system module is connected to the TFTP console window of the host computer through TFTP communication. The user may download a file to the master controller 110 or upload a file from the controller through a TFTP command, and may perform operations such as file name change and deletion.

이상에서 언급된 사용자 명령 인터페이스 모듈, 시뮬레이터 인터페이스 모듈, 제어기 형상 관리 모듈(330), 메모리 파일 시스템 모듈, 어플리케이션 로더 모듈(340) 및 응용 프로그램 인터페이스 모듈(350)의 동작은 데이터 로거 클라이언트에 의해 모니터링 될 수 있다. 이와 같은 모니터링 정보는 UDP 소켓통신을 통해 호스트 컴퓨터(150)의 데이터 로거 서버에 전송될 수 있다. The operations of the user command interface module, the simulator interface module, the controller shape management module 330, the memory file system module, the application loader module 340, and the application program interface module 350 mentioned above may be monitored by the data logger client. Can be. Such monitoring information may be transmitted to the data logger server of the host computer 150 through UDP socket communication.

도 9는 본 발명의 일 실시예에 따른 제어기 런타임에 포함된 어플리케이션 로더의 동작을 예시한 도면이다. 9 is a diagram illustrating an operation of an application loader included in a controller runtime according to an embodiment of the present invention.

어플리케이션 로더 모듈(340)은 응용 프로그램 로딩 기능과 심볼테이블 로딩 기능을 제공한다. 런타임 심볼 테이블은 사용자 명령에 의해 구성되거나 파일 형태로 구성되어 플래시 메모리에 저장된다. 또한 응용 프로그램은 응용 프로그램 개발자에 의해 ELF(Executable and Linking Format) 파일 형태로 플래시 메모리에 저장될 수 있다. ELF 파일 형태의 응용 프로그램은 프로그램의 코드 영역, 데이터 영역 및 추가 영역을 포함할 수 있다. The application loader module 340 provides an application program loading function and a symbol table loading function. The runtime symbol table is configured by user commands or in the form of a file and stored in flash memory. In addition, an application program may be stored in flash memory by an application developer in the form of an Executable and Linking Format (ELF) file. An application program in the form of an ELF file may include a code area, a data area, and an additional area of the program.

어플리케이션 로더 모듈(340)이 실행되면 런타임 심볼테이블이 로딩된다. 런타임 심볼 로딩이 완료되면 ELF 파일로부터 프로그램 헤더를 분석하여 각 프로그램 세그먼트가 추출되고, 추출된 프로그램 세그먼트는 RAM(115)에 로딩된다. 응용 프로그램 로딩이 완료되면 어플리케이션 로더 모듈(340)은 이미 로딩된 런타임 심볼 테이블을 검색하여 응용 프로그램의 심볼 데이터와 일치하는 심볼 데이터를 찾아 응용 프로그램의 데이터 영역에 로딩한다.When the application loader module 340 is executed, the runtime symbol table is loaded. When the runtime symbol loading is completed, each program segment is extracted by analyzing a program header from the ELF file, and the extracted program segment is loaded into the RAM 115. When the loading of the application program is completed, the application loader module 340 searches the runtime symbol table that is already loaded, finds the symbol data matching the symbol data of the application program, and loads the symbol data in the application data area.

응용 프로그램과 심볼 테이블의 로딩이 완료되면 런타임(120)은 새로운 응용 프로세스를 생성하여 응용 프로그램을 실행시키기 위해 운영체제의 시스템 콜을 호출한다. 응용 프로그램이 운영체제로부터 새로운 프로세스를 할당 받아 실행되면 응용 프로그램은 프로그램 내부에서 별도의 쓰레드를 생성하여 실행시킬 수 있다. When loading of the application program and the symbol table is completed, the runtime 120 creates a new application process and calls a system call of an operating system to execute the application. When an application runs with a new process allocated from the operating system, the application can create and run a separate thread inside the program.

도 10은 본 발명의 일 실시예에 따른 제어기 런타임의 응응 프로그램 인터페이스를 예시한 도면이다. 10 is a diagram illustrating an application program interface of a controller runtime according to an embodiment of the present invention.

마스터 제어기(110)의 런타임(120)이 제공하는 응용 프로그램 인터페이스 모듈(350)은 모션 API, POSIX API, 통신 API, 제어기 API 및 입출력 API를 포함할 수 있다. 로봇 시스템(100)의 기능을 구현하기 위한 다양한 응용 프로그램은 운영체제가 제공하는 시스템 콜을 통해 런타임(120)의 응용 프로그램 인터페이스(API)를 호출함으로써 실행될 수 있다. The application program interface module 350 provided by the runtime 120 of the master controller 110 may include a motion API, a POSIX API, a communication API, a controller API, and an input / output API. Various application programs for implementing the functions of the robot system 100 may be executed by calling an application program interface (API) of the runtime 120 through a system call provided by the operating system.

API 요청과 함께 전달되는 매개변수와 및 호출된 API에 해당하는 시스템 콜 번호는 마스터 제어기(110)의 시스템 레지스트리에 복사된다. 응용 프로그램에서 API 호출에 의한 시스템 콜이 발생하면 이를 운영체제가 수신하여 처리할 수 있도록 소프트웨어 인터럽트가 발생될 수 있다. The parameters passed with the API request and the system call number corresponding to the called API are copied to the system registry of the master controller 110. When an application program makes a system call by an API call, a software interrupt may be generated so that the operating system can receive and process it.

응용 프로그램에 의한 소프트웨어 인터럽트가 발생되면 운영 체제의 소프트웨어 인터럽트 핸들러 내의 시스템 콜 핸들러(SYSTEM CALL HANDLER)가 운영체제의 시스템 콜 테이블에 등록된 해당 시스템 콜의 핸들러 주소(API주소)를 참조하여 요청된 API를 호출하여 실행시킨다. 이때 호출된 API는 마스터 제어기(110)의 시스템 레지스트리에 저장되어있는 API 요청 파라미터를 매개변수로 입력 받아 처리한다. 소프트웨어 인터럽트와 시스템 콜을 통해 API가 호출되어 실행이 완료되면 그 실행결과는 소프트웨어 인터럽트 핸들러에 의해 응용 프로그램에 반환된다. When a software interrupt is generated by an application, the system call handler (SYSTEM CALL HANDLER) in the software interrupt handler of the operating system refers to the handler address (API address) of the corresponding system call registered in the system call table of the operating system. Call to run At this time, the called API receives and processes API request parameters stored in the system registry of the master controller 110 as parameters. When the API is called through software interrupts and system calls, the execution results are returned to the application by the software interrupt handler.

이제까지 본 발명에 대하여 그 실시예를 중심으로 살펴보았다. 전술한 실시예 외의 많은 실시예들이 본 발명의 특허청구범위 내에 존재한다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the present invention with respect to the embodiment. Many embodiments other than the above-described embodiments are within the scope of the claims of the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

도 1은 본 발명의 일 실시예에 따른 런타임을 지원하는 이용한 로봇 제어 시스템이 구현된 환경을 예시한 도면이다. 1 is a diagram illustrating an environment in which a robot control system using a runtime support according to an embodiment of the present invention is implemented.

도 2는 본 발명의 일 실시예에 따른 런타임 이용 로봇 시스템 제어 장치의 구성도이다.2 is a block diagram of a runtime use robot system control apparatus according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 제어기 런타임의 구성을 예시한 도면이다. 3 is a diagram illustrating a configuration of a controller runtime according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 런타임 이용 로봇 시스템 제어 방법의 흐름도이다. 4 is a flowchart illustrating a method for controlling a runtime using robot system according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 제어기의 런타임 로딩 동작을 예시한 도면이다. 5 is a diagram illustrating a runtime loading operation of a controller according to an embodiment of the present invention.

도 6은 본 발명의 일 실시예에 따른 제어기의 응용 프로그램 로딩 단계를 예시한 도면이다.6 is a diagram illustrating an application program loading step of the controller according to an embodiment of the present invention.

도 7은 본 발명의 일 실시예에 따른 제어기의 응용 프로그램 실행 단계를 예시한 도면이다.7 is a diagram illustrating an application program execution step of the controller according to an embodiment of the present invention.

도 8은 본 발명의 일 실시예에 따른 제어기 어플리케이션 호스트 인터페이스를 예시한 도면이다. 8 is a diagram illustrating a controller application host interface according to an embodiment of the present invention.

도 9는 본 발명의 일 실시예에 따른 제어기 런타임에 포함된 어플리케이션 로더의 동작을 예시한 도면이다. 9 is a diagram illustrating an operation of an application loader included in a controller runtime according to an embodiment of the present invention.

도 10은 본 발명의 일 실시예에 따른 제어기 런타임의 응응 프로그램 인터페 이스를 예시한 도면이다. 10 is a diagram illustrating an application program interface of the controller runtime according to an embodiment of the present invention.

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

100: 로봇 시스템 110: 마스터 제어기100: robot system 110: master controller

120: 런타임 130: 슬레이브 제어기120: runtime 130: slave controller

150: 호스트 컴퓨터150: host computer

112: 연산부 114: 제어부112: calculation unit 114: control unit

116: 통신부116: communication unit

Claims (8)

로봇 시스템에 내장된 마스터 제어기에서 실행되는 런타임을 이용하여 상기 로봇 시스템을 제어하는 방법으로서,A method of controlling the robotic system using a runtime executed in a master controller embedded in the robotic system, 부트 로더를 이용하여 상기 마스터 제어기를 초기화 하는 단계;Initializing the master controller using a boot loader; 상기 마스터 제어기의 메모리에 런타임 실행 코드를 로딩함으로써 상기 런타임을 실행하는 단계;Executing the runtime by loading runtime execution code into the memory of the master controller; 상기 런타임의 어플리케이션 로더 모듈을 이용하여 상기 로봇 시스템의 응용 프로그램을 로딩하는 단계; 및Loading an application program of the robotic system using the application loader module of the runtime; And 상기 런타임의 응용 프로그램 인터페이스 모듈을 이용하여 상기 응용 프로그램을 실행하는 단계를 포함하되,Executing the application program using the application program interface module of the runtime; 상기 로봇 시스템은 상기 마스터 제어기의 슬레이브 제어기를 더 포함하고,The robot system further comprises a slave controller of the master controller, 상기 런타임의 제어기 형상 관리 모듈을 이용하여 상기 슬레이브 제어기의 인식 및 시스템 정보 구성을 동적으로 관리하는 단계를 더 포함하는 Dynamically managing the recognition and system information configuration of the slave controller using the controller shape management module of the runtime; 런타임을 이용한 로봇 시스템 제어 방법.Robot system control method using runtime. 삭제delete 제1항에 있어서,The method of claim 1, 상기 런타임의 데이터 로거 모듈을 이용하여 상기 마스터 제어기의 동작에 대한 이력 정보를 생성하는 단계를 더 포함하는 Generating historical information about an operation of the master controller by using the runtime data logger module. 런타임을 이용한 로봇 시스템 제어 방법.Robot system control method using runtime. 제1항에 있어서,The method of claim 1, 상기 응용 프로그램을 실행 단계에서At the step of running the application 상기 응용 프로그램 인터페이스 모듈은 상기 로봇 시스템의 운영 체제의 시스템 콜을 이용하고, 상기 응용 프로그램의 실행을 위한 매개 변수는 상기 마스터 제어기의 레지스트리를 이용하여 전달되는 The application program interface module uses a system call of an operating system of the robot system, and parameters for executing the application program are transmitted using a registry of the master controller. 런타임을 이용한 로봇 시스템 제어 방법.Robot system control method using runtime. 로봇 시스템에 내장되며 런타임을 이용하여 상기 로봇 시스템을 제어하는 장치로서,An apparatus embedded in a robot system and controlling the robot system using a runtime, 상기 런타임의 실행을 위한 런타임 코드, 런타임 심볼 테이블 및 상기 로봇 시스템의 기능을 구현하는 어플리케이션 코드를 저장하는 저장부;A storage unit storing runtime code for executing the runtime, a runtime symbol table, and application code for implementing a function of the robot system; 상기 런타임의 실행을 위한 연산을 수행하고, 상기 로봇 시스템 제어 장치 내의 신호 흐름을 제어하는 연산부; 및An operation unit configured to perform an operation for executing the runtime and to control a signal flow in the robot system control apparatus; And 상기 로봇 시스템의 호스트 컴퓨터와 통신하는 통신부를 포함하고,A communication unit for communicating with a host computer of the robot system, 상기 런타임은 상기 어플리케이션 코드를 로딩하는 어플리케이션 로더 모듈;The runtime includes an application loader module for loading the application code; 로딩된 어플리케이션 코드를 실행하는 응용 프로그램 인터페이스 모듈 및 An application program interface module that executes the loaded application code, and 상기 로봇 시스템에 내장된 슬레이브 제어기의 인식 및 시스템 정보 구성을 동적으로 관리하는 제어기 형상 관리 모듈을 포함하는 And a controller shape management module for dynamically managing the recognition and system information configuration of the slave controller embedded in the robot system. 런타임을 이용한 로봇 시스템 제어 장치.Robot system control device using runtime. 삭제delete 제5항에 있어서,The method of claim 5, 상기 런타임은 상기 런타임의 모듈의 동작에 대한 이력 정보를 생성하는 데이터 로거 모듈을 더 포함하는 The runtime further comprises a data logger module for generating historical information about the operation of the module of the runtime. 런타임을 이용한 로봇 시스템 제어 장치.Robot system control device using runtime. 제5항에 있어서,The method of claim 5, 상기 응용 프로그램 인터페이스 모듈은 The application program interface module 상기 로봇 시스템의 운영 체제의 시스템 콜을 이용하여 상기 어플리케이션 코드를 실행하고, 상기 어플리케이션 코드의 실행을 위해 참조되는 매개 변수는 상기 로봇 시스템을 제어하는 장치의 레지스트리를 이용하여 전달되는 The application code is executed using a system call of an operating system of the robot system, and a parameter referred to for execution of the application code is transmitted using a registry of a device controlling the robot system. 런타임을 이용한 로봇 시스템 제어 장치.Robot system control device using runtime.
KR1020090018044A 2009-03-03 2009-03-03 method of controlling robot system using runtime and apparatus thereof KR101086363B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090018044A KR101086363B1 (en) 2009-03-03 2009-03-03 method of controlling robot system using runtime and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090018044A KR101086363B1 (en) 2009-03-03 2009-03-03 method of controlling robot system using runtime and apparatus thereof

Publications (2)

Publication Number Publication Date
KR20100099508A KR20100099508A (en) 2010-09-13
KR101086363B1 true KR101086363B1 (en) 2011-11-23

Family

ID=43005796

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090018044A KR101086363B1 (en) 2009-03-03 2009-03-03 method of controlling robot system using runtime and apparatus thereof

Country Status (1)

Country Link
KR (1) KR101086363B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101259826B1 (en) * 2011-03-24 2013-04-30 삼성중공업 주식회사 System and method for managing version of distributed control system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100762366B1 (en) * 2005-12-30 2007-10-01 삼성중공업 주식회사 System for controlling a robot by using a Field Programmable Gate Array device
JP2008524734A (en) 2004-12-27 2008-07-10 シーメンス アクチエンゲゼルシヤフト Control unit of machine with debug function

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008524734A (en) 2004-12-27 2008-07-10 シーメンス アクチエンゲゼルシヤフト Control unit of machine with debug function
KR100762366B1 (en) * 2005-12-30 2007-10-01 삼성중공업 주식회사 System for controlling a robot by using a Field Programmable Gate Array device

Also Published As

Publication number Publication date
KR20100099508A (en) 2010-09-13

Similar Documents

Publication Publication Date Title
WO2020063879A1 (en) Method and apparatus for migrating virtual machine
JP6228177B2 (en) Method, computer program, and apparatus for optimizing loading and booting of an operating system over a communication network in a computer system
WO2012142798A1 (en) Method and apparatus for loading application program
JP2013518733A (en) Robot system control method and apparatus
EP3799697B1 (en) Virtual machine container for applications
JP2008523519A (en) Method for initializing an electronic system containing multiple plug-ins
JP7122969B2 (en) Systems and methods for programming microcontroller data transfers
KR101255685B1 (en) Method and apparatus for dynamic composition using plugin and application execution in robot control software
JP4757589B2 (en) Embedded control method, management apparatus, embedded control apparatus, and embedded control system
CN115617456A (en) Method and device for hybrid operation of virtual machine and container, electronic equipment and readable storage medium
KR101086363B1 (en) method of controlling robot system using runtime and apparatus thereof
EP1935576A1 (en) An industrial robot system
CN114041121A (en) Runtime server for simultaneously executing multiple runtime systems of an automation device
KR20110065183A (en) Method and apparatus for controlling robot system
CN109962788B (en) Multi-controller scheduling method, device and system and computer readable storage medium
KR20110080767A (en) System and method for converting active x control
US10635625B2 (en) Plug connector component, plug connector, plug connector system and method for assembling and operating a plug connector
JP4877257B2 (en) Programmable controller, programmable controller support apparatus, and programmable controller system
CN104678875A (en) Frequency converter configuration method and frequency converter configuration system
JP6099106B2 (en) Method, computer system, and memory device for providing at least one data carrier
US20200183661A1 (en) Method and apparatus for cross-execution of binary embedded software
JP2008299763A (en) Distributed object development tool
Xu et al. RTOC: A Rt-Linux based open robot controller
CN117075973A (en) Novel Linux boot starting and guiding method and system based on RISC-V server CPU
US20160313718A1 (en) Method and controller for flexible process control

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: 20151102

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171031

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181031

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191031

Year of fee payment: 9