KR101350798B1 - 오프로스 플랫폼에 기반하여 제어되는 로봇 시스템 및 그 로봇 제어방법 - Google Patents

오프로스 플랫폼에 기반하여 제어되는 로봇 시스템 및 그 로봇 제어방법 Download PDF

Info

Publication number
KR101350798B1
KR101350798B1 KR1020120131121A KR20120131121A KR101350798B1 KR 101350798 B1 KR101350798 B1 KR 101350798B1 KR 1020120131121 A KR1020120131121 A KR 1020120131121A KR 20120131121 A KR20120131121 A KR 20120131121A KR 101350798 B1 KR101350798 B1 KR 101350798B1
Authority
KR
South Korea
Prior art keywords
opros
lua
lua script
component
module
Prior art date
Application number
KR1020120131121A
Other languages
English (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 KR1020120131121A priority Critical patent/KR101350798B1/ko
Application granted granted Critical
Publication of KR101350798B1 publication Critical patent/KR101350798B1/ko

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/1628Programme controls characterised by the control loop
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)
  • Numerical Control (AREA)

Abstract

오프로스 플랫폼에 기반하여 제어되는 로봇 시스템 및 그 로봇 제어방법이 개시된다. 본 발명의 로봇 시스템은 통상의 오프로스(OPRoS) 플랫폼에 기반하면서도 오프로스-루아 컴포넌트 및 루아 스크립트의 이중 구조로 제시되는 제어명령을 처리할 수 있게 된다. 루아 스크립트는 별도의 그래피컬 편집기를 통해 생성되는 것으로서, 사용자는 오프로스 컴포넌트를 생성함에 있어 그래픽 사용자 인터페이스를 이용하여 간단히 제어 코드를 생성할 수 있게 된다.

Description

오프로스 플랫폼에 기반하여 제어되는 로봇 시스템 및 그 로봇 제어방법{Robot System Controlled on the Basis of OPRoS Platform and Control Method thereof}
본 발명은 오프로스(OPRoS) 플랫폼에 기반하여 제어되는 로봇 시스템에 관한 것으로서, 종래의 오프로스 컴포넌트 이외에 그래피컬 편집기에 의해 작성된 루아 스크립트(Lua Script)를 함께 처리하여 제어되는 로봇 시스템 및 그 제어방법에 관한 것이다.
현재 로봇사업은 전 세계적으로 급속히 성장하고 있다. 특히 미국, 유럽, 일본은 이미 막대한 자본을 투자하여 로봇 관련 기술을 개발 중에 있다. 이것은 로봇 서비스에 대한 요구가 사회적으로 높아졌기 때문이다.
오프로스(OPRoS: Open Platform for Robotic Services)는 컴포넌트(Component) 기반의 오픈소스 플랫폼이며, 통합개발도구와 로봇에서 동작하는 프레임워크, 서버, 시험 및 검증도구로 구성되어 있다. 오프로스는 로봇용 플랫폼과 통합된 개발환경을 제공하여 콘텐츠 개발을 용이하게 하는데 목적이 있다.
오프로스에 의하면, 프로세서에서 실행되는 어플리케이션을 더욱 쉽게 구현할 수 있고 추상화된 에이피아이(API: Application Programming Interface)(이하, 'API'라 함)를 사용하기 때문에 하드웨어에 독립적으로 설계될 수 있어 하드웨어가 바뀌더라도 그대로 사용할 수 있는 장점이 있다.
종래의 오프로스에 의한 로봇 제어에 의하면, 로봇에는 오프로스 실행 엔진이 설치되고, 관리자가 오프로스 편집기를 이용하여 작성한 오프로스 컴포넌트를 로봇에로딩하면 오프로스 실행 엔진이 해당 컴포넌트를 처리함으로써 로봇의 제어가 이루어진다. 이러한 과정을 통해, 로봇은 오프로스 컴포넌트에 의해 설계된 동작을 수행하게 된다.
다만, 이러한 오프로스 컴포넌트의 저작(또는 그 저작 수단)은 컴포넌트 내의 입력과 출력 포트를 지정하고, 컴포넌트 간의 연결 관계를 설정하는 기능만을 가지고 있으며 실질적인 컴포넌트로서의 동작 내용은 생성된 템플릿 코드 내에서 하드 코드로 직접 추가해야 하는 불편이 있었다.
예컨대, 컴포넌트를 구성하게 될 일부 연산이나 제어 코드는 좀 더 편리한 방법, 예컨대 그래픽 사용자 인터페이스(Graphic User Interface)를 통해 구현할 수 있다면 좀 더 편리해질 수 있을 것이다. 다만, 이러한 기능은 기존의 오프로스 실행 엔진 체제를 그대로 유지하는 범위에서 수행되어야 할 것이다.
본 발명의 목적은, 종래의 오프로스 저작툴에 그래픽컬 편집기와 XML(Extensible Markup Language) 표현기, 루아 스크립트(Lua Script) 변환기를 넣어서 사용자가 기존에 손으로 소스를 코딩하던 내용을 비주얼적으로 손쉽게 프로그래밍을 할 수 있게 함과 동시에, 이렇게 생성된 오프로스-루아 컴포넌트와 루아 스크립트를 오프로스 플랫폼 기반에서 처리할 수 있는 로봇 시스템 및 그 로봇 제어방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명에 따른 오프로스(OPRoS) 플랫폼 기반의 로봇 시스템의 로봇 제어방법은, (1) 오프로스-루아 컴포넌트와 루아 스크립트(Lus Script)가 저장매체의 기 설정된 폴더에 저장되되, 상기 오프로스-루아 컴포넌트는 오프로스 플랫폼에서 처리되는 오프로스 컴포넌트에 더하여 상기 루아 스크립트와의 연동 코드를 포함하고, 상기 루아 스크립트는 로봇의 제어에 관한 코드가 포함된 단계, (2) 오프로스 실행엔진이 상기 오프로스-루아 컴포넌트를 실행하는 중에 상기 루아 스크립트 실행을 위한 초기화를 수행하는 단계 (3) 상기 오프로스 실행엔진이 상기 오프로스-루아 컴포넌트를 실행하는 중에, 상기 루아 스크립트를 호출하는 호출함수에 따라 루아 스크립트 실행엔진을 호출하는 단계, 그리고 (4) 상기 루아 스크립트 실행엔진이 상기 저장매체에 저장된 상기 루아 스크립트를 파싱하여 실행하고 그 결과를 기 설정된 포트로 출력하는 단계를 포함한다.
여기서, 상기 루아 스크립트는 상기 포트와 모듈 자체에 대한 정보에 더하여, 상기 포트와 모듈 또는 모듈과 모듈 간의 연결관계에 대한 정보를 포함하는 것으로서, (1) 오프로스 그래픽 편집기의 그래피컬 편집기가 사용자로부터 로봇 제어용 오프로스 기반의 코딩에 필요한 포트(Port)와 모듈의 연결관계를 입력받는 단계; (2) XML 생성기가 상기 그래피컬 편집기가 입력받은 연결관계를 XML 파일로 생성하는 단계; 및 (3) 루아 스크립트 변환기가 상기 XML 생성기가 생성한 XML 파일을 상기 루아 스크립트로 변환하는 단계를 통해 생성하되, 상기 모듈은 연산, 변수, 상수, 반복, 조건, 형변환, 지연 및 종료 중 어느 하나일 수 있다.
본 발명의 다른 실시 예에 따른 오프로스(OPRoS) 플랫폼 기반의 로봇 시스템은 오프로스-루아 컴포넌트와 루아 스크립트(Lus Script)가 기 설정된 폴더에 저장되는 저장매체와, 상기 오프로스-루아 컴포넌트를 실행하는 오프로스 실행엔진과, 상기 루아 스크립트를 호출하는 호출함수에 따라 상기 오프로스 실행엔진에 의해 호출되어 상기 저장매체에 저장된 상기 루아 스크립트를 파싱하여 실행하는 루아 스크립트 실행엔진을 포함한다.
본 발명의 로봇 시스템은 통상의 오프로스 컴포넌트 이외에 루아 스크립트를 처리함으로써, 관리자로 하여금 통상의 오프로스 컴포넌트 내부에서의 연산 및 제어에 관한 일부를 그래픽 사용자 인터페이스(GUI) 기반의 저작 수단을 사용하여 생성 및 편집할 수 있게 하였다.
이러한 방식에 의하면, 로봇 내부 동작을 외부 스크립트에서 자유롭게 변경하고 컴포넌트를 쉽게 이식할 수 있다.
또한, 이러한 방식은 여러 컴포넌트의 결과를 받아 연산과 제어를 수행하여 결과를 구하는 등의 컴포넌트에 적용하기에 적합하다.
도 1은 본 발명에 의한 로봇 시스템을 도시한 블록도,
도 2는 도 1의 그래피컬 편집기의 그래픽 사용자 인터페이스의 일 예를 도시한 도면,
도 3은 본 발명의 로봇 시스템의 제어방법의 설명에 제공되는 흐름도이다.
이하 도면을 참조하여 본 발명을 더욱 상세히 설명한다.
도 1을 참조하면, 본 발명의 로봇 시스템(110)은 제어부(111)와, 저장매체(113)를 포함한다. 본 발명의 로봇 시스템(110)은 제어부(111)와 저장매체(113) 이외에도 다양한 구성을 당연히 포함한다. 다만, 본 발명의 설명에 필수적인 구성이 아니므로, 이하에서는 예외적인 경우를 제외하고는 도면에 표시하거나 설명하지 아니한다.
저장매체(113)의 특정 폴더(배포 폴더)에는 본 발명에 특유한 루아 스크립트(Lua Script)(113a)와, 오프로스-루아 컴포넌트(OPRoS-Lua Component)(113b)가 저장된다.
루아 스크립트(113a)는 종래의 오프로스 컴포넌트의 일부를 분리하여 별도로 생성된 코드이다. 종래의 오프로스 플랫폼에서 로봇 제어는 오프로스 실행엔진 상에서 처리될 오프로스 컴포넌트를 생성하고, 해당 오프로스 컴포넌트를 로봇에 설치함으로써 수행되었다. 본 발명의 로봇 시스템은 이러한 종래의 오프로스 컴포넌트의 일부를 그래픽 사용자 인터페이스(GUI: Graphic User Interface)를 통해 간편하게 구현할 수 있도록 하고, 해당 GUI를 통해 만들어지는 코드는 종래의 오프로스 컴포넌트에 포함시키지 않고 별도의 스크립트 형태로 생성하며, 이 스크립트를 '루아 스크립트'라 한다. 를 통해 구현할 수 있다면 좀 더 편리해질 수 있을 것이다. 루아 스크립트(113a)에 대하여는 아래에서 다시 설명한다.
오프로스-루아 컴포넌트는 종래에 사용되던 일반적인 형태의 오프로스 컴포넌트에 더하여 '루아 엔진 연동코드(이하, 간단히 '연동코드'라 함)'가 포함하며, 종래의 오프로스 컴포넌트와 구분하기 위해 '오프로스-루아 컴포넌트'라 칭한다. 오프로스-루아 컴포넌트도 종래의 오프로스 컴포넌트처럼 확장자가 'dll'인 파일로 생성된다. 연동코드는 아래에서 설명될 '루아 스크립트 실행엔진(Lua Script Execution Engine, 간단히 'LSE'라 함)을 호출하기 위한 연동 코드이다. 아래에서 다시 설명하겠지만, 오프로스-루아 컴포넌트(113b)가 LSE를 호출하면, LSE가 루아 스크립트(113a)를 파싱하여 실행하게 된다.
제어부(111)는 시스템 전체를 제어하며, 본 발명의 제어부(111)는 특별히 오프로스 실행엔진(111a)과 루아 스크립트 실행엔진(LSE)(111b)을 포함한다.
이하에서는, 제어부(111), 오프로스 실행엔진(111a) 그리고 루아 스크립트 실행엔진(LSE)(111b)이 하드웨어적 구성인 것처럼 설명되고 표현되겠지만, 사실상의 제어부(111)는 통상의 알려진 로봇 시스템이 기본적으로 보유한 하드웨어인 프로세서 칩과, 그 칩에 의해 동작하는 프로그램(소프트웨어)으로 구현되는 기능적인 구성을 나타낼 수 있다. 마찬가지로, 오프로스 실행엔진(111a)과 루아 스크립트 실행엔진(LSE)(111b)도 컴퓨터에 의해 해석되어 그 지정된 일련의 명령들을 처리하도록 할 수 있는 프로그램 언어로 기록된 소프트웨어로서 로봇 시스템(110)에 설치되어 프로세서 칩에 의해 수행되는 적어도 하나의 프로그램일 수 있다.
오프로스 실행엔진(111a)은 오프로스 편집기에 의해 생성되는 종래의 오프로스 컴포넌트를 처리하기 위한 엔진이며, 오프로스-루아 컴포넌트(113b) 역시 실행시킬 수 있다.
LSE(111b)는 오프로스-루아 컴포넌트(113b)에 의해 호출되어 실행되며, 오프로스-루아 컴포넌트(113b)에 의해 호출되면 저장매체(113) 내의 배포 폴더에 저장된 루아 스크립트(113a)를 파싱하여 실행시킨다.
한편, 루아 스크립트(113a)와 오프로스-루아 컴포넌트(113b)는 본 발명에 의한 별도의 오프로스 그래픽 편집기에서 생성될 수 있다.
도 1을 참조하면, 오프로스 그래픽 편집기(130)가 로봇 시스템(110)과 분리되어 도시되어 있으나 이에 한정되지 아니하고, 로봇 시스템(110)과 오프로스 그래픽 편집기(130)이 각종 통신 인터페이스로 연결되어 전체가 하나의 로봇 시스템을 형성할 수 있다.
도 1의 오프로스 그래픽 편집기(130)는 오프로스 기본 편집기(131)와, 그래피컬 편집기(133)와, XML 생성기(135)와 스크립트 변환기(137)를 포함한다.
오프로스 기본 편집기(131)는 기본적으로 종래의 오프로스 편집 기능을 구비하되, 본 발명의 오프로스-루아 컴포넌트(113b)를 생성한다. 따라서 오프로스 기본 편집기(131)가 생성하는 컴포넌트에는 연동코드가 포함된다.
연동코드는 루아 스크립트(113a)의 실행을 위한 초기화 코드를 포함한다. 예컨대, 연동코드는 다음의 표 1과 같이 정의될 수 있으며, 이러한 코드가 오프로스 기본 편집기(131)에 의해 생성되는 오프로스-루아 컴포넌트(113b)에 포함된다.
onInitialize()
{
pLua = luaL-newstate();
if(plua != NULL){
luaL_openlibs(pLua);
}
이와 별개로, 오프로스-루아 컴포넌트(113b)에는 루아 스크립트(113a)를 호출 함수도 포함된다. 루아 스크립트 호출함수는 별개로 정의되지 않고 종래에 오프로스 컴포넌트에서 사용되는 함수 중에서, 예컨대 'onExecute()' 함수를 이용하는 것이 바람직하다. 그래야만, 종래의 오프로스 실행엔진만을 구비한 로봇 시스템이 루아 스크립트 실행엔진만을 추가적으로 포팅하는 방법으로 루아 스크립트를 처리할 수 있기 때문이다. OnExecute() 함수의 템플릿 코드 내에는 데이터 포트로 입력된 데이터 값을 루아 스크립트의 글로벌 값으로 넣는 코드와, 루아 스크립트가 실행된 후의 결과 값을 가져와서 데이터 포트로 출력하는 코드가 삽입된다.
위에서 설명한 오프로스 실행엔진(111a)이 오프로스-루아 컴포넌트(113b)를 실행하면서 위 함수에 의해 루아 스크립트(113a)의 실행을 위한 초기화가 이루어지고, 오프로스-루아 컴포넌트(113b) 내에 포함된 OnExecute가 주어진 주기대로 반복하여 실행된다. OnExecute가 반복 실행시마다 루아 스크립트(113a)가 실행되는 것이다.
그래피컬 편집기(133)는 루아 스크립트의 형식으로 만들어질 포트(port)와 모듈을 생성하기 위한 사용자 편집기로서, 도 2에 예시적으로 도시된 것처럼 그래픽 사용자 인터페이스로 되어 있다. 모듈에는 연산, 변수, 상수, 반복, 조건, 형변환, 지연, 종료 등의 모듈이 포함될 수 있다.
그래피컬 편집기(133)는 처리 가능한 포트 또는 모듈 아이콘화하여 배치하고 사용자의 선택을 대기한다. 사용자가 배치된 아이콘 중 복수 개의 아이콘을 선택하고 배치하면 해당 배치관계를 표시하고, 사용자의 제어에 따라 해당 배치된 복수 개의 아이콘의 연결관계를 표시할 수 있다. 나아가, 그래피컬 편집기(133)는 각 포트 또는 모듈의 실행에 필요한 속성값을 입력받아 표시할 수 있다.
도 2의 예에 의하면, 각 포트와 모듈은 사각형의 아이콘으로 표시되어 있으며, 모듈 이름과 변수명(또는 값)이 함께 표시된다. 예컨대, 도 2의 (a)에 도시된 'Var' 아이콘의 경우, 모듈 이름은 변수(Variable)이고, 변수명은 'int detectG'임을 알 수 있다. 도 2의 (b)는 'int SE_CG'라는 포트를 나타내는 아이콘이다.
모듈과 모듈, 또는 모듈과 포트 사이의 연결관계는 아이콘 사이를 연결하는 선으로 표시되었다. 도 2의 예에서, 일반적인 순서에 의한 연결은 실선(→)으로 나타내고, 조건 모듈(if)의 결과가 참인 경우의 연결은 점선(--->)으로 표시하고, 조건 모듈(if)의 결과가 참인 경우의 연결은 점선(이점쇄선)으로 표시하였다.
이처럼, 그래피컬 편집기(133)를 사용하면, 사용자는 종래의 오프로스 편집기에서 직접 코드값을 입력하는 수고를 줄이고, 간편하게 제어명령 코드를 생성할 수 있게 된다.
XML 생성기(135)는 그래피컬 편집기(133)의 편집 결과를 XML(Extensible Markup Language) 파일로 생성한다. 스크립트 변환기(137)는 XML 생성기가 생성한 XML 파일을 루아 스크립트(113a)로 최종 변환하며 필요한 경우 로봇 시스템(110)의 저장매체(113)에 배포할 수 있다.
XML 생성기(135)가 생성하는 XML 파일에는 모듈(또는 포트) 자체에 대한 정의, 모듈(또는 포트) 간의 연결관계 등을 포함된다.
아래 표 2는 도 2의 (a)의 모듈 'Var'와 그 연결관계 등을 나타내는 XML 파일의 부분이다.

<Module id="VAR_CG" type="variable">
<input>
<binding>POP_CG</binding>
</input>
<output>
<binding>IF_CG</binding>
</output>
<props>
<prop name="type">int</prop>
<prop name="var_name">detectG</prop>
<prop name="arg_1">POP_CG</prop>
</props>
</Module>
여기서, <input>은 앞에 연결된 모듈에 대해 정의하고 있고, <output>은 뒤에 연결된 모듈을 정의한다. <props>는 해당 모듈의 속성을 나타내고, <prop name= >은 현재 모듈에 대한 각종 정보를 포함한다.
또한, 루아 스크립트(113a)도 스크립트 변환기(137)에 기 설정된 변환 알고리즘에 따라 XML 파일을 변환한 것이므로, 그래피컬 편집기(133)를 통해 사용자가 작성한 편집 내용(포트/모듈, 그 연결관계 정보)이 그대로 포함된다. 스크립트 변환기(137)의 변환 알고리즘은 LSE(111b)에 의해 해석될 수 있는 것으로 미리 약속된 어떠한 형태도 가능할 것이다. 다음의 표 3은 루아 스크립트의 일부로서, 표 2의 XML 파일을 변환한 것이다.

-- VAR_CG
VAR_CG_InVal = nil; VAR_CG_OutVal = nil;
VAR_CG_Complete = false;

-- VAR_CG
::VAR_CG_ENTRY::
if Previous_Module == "POP_CG" and POP_CG_Complete == false then goto POP_CG_ENTRY; end;
VAR_CG_InVal = POP_CG_OutVal;
detectG = VAR_CG_InVal;
VAR_CG_OutVal = detectG;
VAR_CG_Complete = true;
Previous_Module = "VAR_CG";
goto IF_CG_ENTRY;
이상에 설명된 오프로스 그래픽 편집기(130)를 이용하면, 사용자는 종래에 오프로스 컴포넌트를 모두 직접 작성하던 것을 그래픽 사용자 인터페이스를 통해 간편하게 작성할 수 있다.
이와 같이, 작성된 오프로스-루아 컴포넌트(113b)와 루아 스크립트(113a)는 종래의 오프로스 실행엔진만을 구비한 로봇 시스템에서 처리될 수 없으며, 본 발명의 로봇 시스템(110)에서 도 3을 통해 설명되는 방법으로 처리될 수 있다. 이하에서는 도 3을 참조하여, 본 발명의 로봇 시스템의 오프로스 제어방법을 설명한다.
<오프로스-루아 컴포넌트와 루아 스크립트 배포: S301>
오프로스-루아 컴포넌트(113b)와 루아 스크립트(113a)는 로봇 시스템(110)의 저장매체(113)의 특정 폴더에 저장된다. 앞서 설명한 바와 같이, 오프로스-루아 컴포넌트(113b)는 dll 파일로 저장되며, 루아 컴포넌트는 별도의 확장자(예컨대, lua)를 가질 수 있다.
<오프로스 실행엔진의 개시: S303>
오프로스 실행엔진(111a)이 기 약속된 특정 폴더에 저장된 오프로스-루아 컴포넌트(113b)를 읽어 와 실행한다. 오프로스 실행엔진(111a)이 종래 로봇 시스템의 오프로스 실행엔진과 동일한 것이므로, 이러한 과정은 종래의 오프로스 컴포넌트를 읽어 와 실행하는 과정과 동일하게 수행되면서 관련 과정을 수행한다.
<루아 스크립트 초기화: S305>
먼저, 오프로스 실행엔진(111a)은 그 오프로스-루아 컴포넌트(113b)의 실행 중에 표 1의 함수 부분을 만나면, 그에 따라 루아 스크립트(113a)의 실행을 위한 초기화를 진행한다(S305).
<루아 스크립트 호출 및 실행: S307 내지 S309>
초기화가 완료되고 오프로스-루아 컴포넌트(113b) 내에 포함된 루아 스크립트 호출 함수(OnExecute 함수)가 실행되면, LSE(111b)가 저장매체(113)의 특정 폴더에 저장된 루아 스크립트(113a)를 호출하여 실행한다.
예컨대, 오프로스 실행엔진(111a)이 오프로스-루아 컴포넌트(113b)인 실행 파일(dll)을 실행하면서 OnExecute() 함수를 주기적으로 반복 실행하게 된다. OnExecute가 반복 실행시마다 LSE(111b)를 호출하고, LSE(111b)는 저장매체(113)에 저장된 루아 스크립트(113a) 상의 제어명령대로 연산처리한다.
OnExecute() 함수 내에 정의된 바에 따라, LSE(111b)는 루아 스크립트(113a)를 실행에 필요한 데이터 값이 제공되고, 루아 스크립트(113a)를 실행한 결과 값이 특정 데이터 포트로 출력된다.
<오프로스-루아 컴포넌트의 실행 종료>
OnExecute()에 의한 루아 스크립트(113a)의 실행이 완료되면 LSE(111b)는 그 결과 값을 오프로스-루아 컴포넌트(113b)에게 제공하며, 오프로스 실행엔진(111a)은 원래의 오프로스-루아 컴포넌트(113b)의 실행으로 돌아가게 된다.
이상의 과정을 통해, 본 발명의 로봇 시스템(110)은 통상의 오프로스 플랫폼에 기반하면서도 오프로스-루아 컴포넌트 및 루아 스크립트의 이중 구조로 제시되는 제어명령을 처리할 수 있게 된다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.

Claims (5)

  1. 오프로스(OPRoS) 플랫폼 기반의 로봇 시스템의 로봇 제어방법에 있어서,
    오프로스-루아 컴포넌트와 루아 스크립트(Lus Script)가 저장매체의 기 설정된 폴더에 저장되되, 상기 오프로스-루아 컴포넌트는 오프로스 플랫폼에서 처리되는 오프로스 컴포넌트에 더하여 상기 루아 스크립트와의 연동 코드를 포함하고, 상기 루아 스크립트는 로봇의 제어에 관한 코드가 포함된 단계;
    오프로스 실행엔진이 상기 오프로스-루아 컴포넌트를 실행하는 중에 상기 루아 스크립트 실행을 위한 초기화를 수행하는 단계;
    상기 오프로스 실행엔진이 상기 오프로스-루아 컴포넌트를 실행하는 중에, 상기 루아 스크립트를 호출하는 호출함수에 따라 루아 스크립트 실행엔진을 호출하는 단계; 및
    상기 루아 스크립트 실행엔진이 상기 저장매체에 저장된 상기 루아 스크립트를 파싱하여 실행하고 그 결과를 기 설정된 포트로 출력하는 단계를 포함하는 것을 특징으로 하는 오프로스 플랫폼 기반의 로봇 시스템의 제어방법.
  2. 제1항에 있어서,
    상기 루아 스크립트는,
    오프로스 그래픽 편집기의 그래피컬 편집기가 사용자로부터 로봇 제어용 오프로스 기반의 코딩에 필요한 포트(Port)와 모듈의 연결관계를 입력받는 단계;
    XML 생성기가 상기 그래피컬 편집기가 입력받은 연결관계를 XML 파일로 생성하는 단계; 및
    루아 스크립트 변환기가 상기 XML 생성기가 생성한 XML 파일을 상기 루아 스크립트로 변환하는 단계를 통해 생성하되,
    상기 모듈은 연산, 변수, 상수, 반복, 조건, 형변환, 지연 및 종료 중 어느 하나인 것을 특징으로 하는 오프로스 플랫폼 기반의 로봇 시스템의 제어방법.
  3. 제2항에 있어서,
    상기 루아 스크립트는 상기 포트와 모듈 자체에 대한 정보에 더하여, 상기 포트와 모듈 또는 모듈과 모듈 간의 연결관계에 대한 정보를 포함하는 것을 특징으로 하는 오프로스 플랫폼 기반의 로봇 시스템의 제어방법.
  4. 오프로스(OPRoS) 플랫폼 기반의 로봇 시스템에 있어서,
    오프로스-루아 컴포넌트와 루아 스크립트(Lus Script)가 기 설정된 폴더에 저장되되, 상기 오프로스-루아 컴포넌트는 오프로스 플랫폼에서 처리되는 오프로스 컴포넌트에 더하여 상기 루아 스크립트와의 연동 코드를 포함하고, 상기 루아 스크립트는 로봇의 제어에 관한 코드가 포함된 저장매체;
    상기 오프로스-루아 컴포넌트를 실행하고, 상기 오프로스-루아 컴포넌트의 실행 중에 상기 루아 스크립트 실행을 위한 초기화를 수행하는 오프로스 실행엔진; 및
    상기 루아 스크립트를 호출하는 호출함수에 따라 상기 오프로스 실행엔진에 의해 호출되어, 상기 저장매체에 저장된 상기 루아 스크립트를 파싱하여 실행하고 그 결과를 기 설정된 포트로 출력하는 루아 스크립트 실행엔진을 포함하는 것을 특징으로 하는 오프로스 플랫폼 기반의 로봇 시스템.
  5. 제4항에 있어서,
    상기 루아 스크립트는 상기 포트와 모듈 자체에 대한 정보에 더하여, 상기 포트와 모듈 또는 모듈과 모듈 간의 연결관계에 대한 정보를 포함하는 것을 특징으로 하는 오프로스 플랫폼 기반의 로봇 시스템.




KR1020120131121A 2012-11-19 2012-11-19 오프로스 플랫폼에 기반하여 제어되는 로봇 시스템 및 그 로봇 제어방법 KR101350798B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120131121A KR101350798B1 (ko) 2012-11-19 2012-11-19 오프로스 플랫폼에 기반하여 제어되는 로봇 시스템 및 그 로봇 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120131121A KR101350798B1 (ko) 2012-11-19 2012-11-19 오프로스 플랫폼에 기반하여 제어되는 로봇 시스템 및 그 로봇 제어방법

Publications (1)

Publication Number Publication Date
KR101350798B1 true KR101350798B1 (ko) 2014-01-16

Family

ID=50145386

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120131121A KR101350798B1 (ko) 2012-11-19 2012-11-19 오프로스 플랫폼에 기반하여 제어되는 로봇 시스템 및 그 로봇 제어방법

Country Status (1)

Country Link
KR (1) KR101350798B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105278445A (zh) * 2015-11-05 2016-01-27 广州擎天实业有限公司 同步发电机励磁调节器控制程序的二次开发方法
CN105446341A (zh) * 2015-12-28 2016-03-30 宜宾学院 一种基于ros的变电站巡检机器人底盘
CN108108165A (zh) * 2016-11-25 2018-06-01 盛趣信息技术(上海)有限公司 图形接口编辑系统及方法
CN111113430A (zh) * 2019-12-31 2020-05-08 深圳市优必选科技股份有限公司 一种机器人及其末端控制方法和装置
CN113138758A (zh) * 2020-01-17 2021-07-20 福建天晴数码有限公司 一种可视化Lua代码生成的方法及终端
US11548149B2 (en) 2017-09-29 2023-01-10 Hanwha Co., Ltd. Method for coding robot control device, program, and robot control device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259113A (ja) 2001-03-02 2002-09-13 Sharp Corp 音声マクロ処理装置、その方法、そのコンピュータ・プログラムおよびそのプログラムを記録した記録媒体
KR101096617B1 (ko) 2010-03-25 2011-12-21 동서대학교산학협력단 공간 멀티 인터랙션 기반 3차원 입체 인터랙티브 비전 시스템 및 그 방법
KR101154380B1 (ko) 2011-08-09 2012-07-09 (주)갈릭소프트 스크립트 언어로 제작된 컨텐츠를 이기종 임베디드 기기에서 실행이 가능하도록 하기 위한 임베디드 기기의 컨텐츠 실행 환경 설정 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259113A (ja) 2001-03-02 2002-09-13 Sharp Corp 音声マクロ処理装置、その方法、そのコンピュータ・プログラムおよびそのプログラムを記録した記録媒体
KR101096617B1 (ko) 2010-03-25 2011-12-21 동서대학교산학협력단 공간 멀티 인터랙션 기반 3차원 입체 인터랙티브 비전 시스템 및 그 방법
KR101154380B1 (ko) 2011-08-09 2012-07-09 (주)갈릭소프트 스크립트 언어로 제작된 컨텐츠를 이기종 임베디드 기기에서 실행이 가능하도록 하기 위한 임베디드 기기의 컨텐츠 실행 환경 설정 방법

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105278445A (zh) * 2015-11-05 2016-01-27 广州擎天实业有限公司 同步发电机励磁调节器控制程序的二次开发方法
CN105446341A (zh) * 2015-12-28 2016-03-30 宜宾学院 一种基于ros的变电站巡检机器人底盘
CN108108165A (zh) * 2016-11-25 2018-06-01 盛趣信息技术(上海)有限公司 图形接口编辑系统及方法
US11548149B2 (en) 2017-09-29 2023-01-10 Hanwha Co., Ltd. Method for coding robot control device, program, and robot control device
CN111113430A (zh) * 2019-12-31 2020-05-08 深圳市优必选科技股份有限公司 一种机器人及其末端控制方法和装置
CN111113430B (zh) * 2019-12-31 2021-07-27 深圳市优必选科技股份有限公司 一种机器人及其末端控制方法和装置
CN113138758A (zh) * 2020-01-17 2021-07-20 福建天晴数码有限公司 一种可视化Lua代码生成的方法及终端
CN113138758B (zh) * 2020-01-17 2023-06-06 福建天晴数码有限公司 一种可视化Lua代码生成的方法及终端

Similar Documents

Publication Publication Date Title
KR101350798B1 (ko) 오프로스 플랫폼에 기반하여 제어되는 로봇 시스템 및 그 로봇 제어방법
US9442744B2 (en) Multilingual build integration for compiled applications
US20170286068A1 (en) Development support system
US20090013312A1 (en) Executable High-Level Trace File Generation System and Method
CN106775744B (zh) 一种生成静态库的方法和装置
US20080127060A1 (en) Dynamic mating of a modified user interface with pre-modified user interface code library
JP2012529093A (ja) スクリーンキャプチャに関する方法、システムおよびコンピュータ・プログラム
CN112214210A (zh) 后勤业务规则引擎及其配置方法、装置、设备和存储介质
CN104049974A (zh) 控件动态组装方法和系统
KR20060120539A (ko) 그래피컬 프로그래밍 장치 및 프로그래머블 표시기
CN112199855A (zh) 热工水力仿真软件动态生成方法、装置、设备及介质
CN111985055A (zh) 一种模型封装方法、装置及电子设备
CN110659030B (zh) Unity项目编译方法、系统、计算机设备及存储介质
CN111078217A (zh) 脑图生成方法、装置和计算机可读存储介质
CN104063231A (zh) 一种基于hit-tena的试验资源快速接入方法
CN114217789A (zh) 功能组件拓展方法、装置、设备、存储介质及程序产品
CN113778405A (zh) 一种跨平台app构建方法、装置、系统及介质
JP4735854B2 (ja) Plcのプログラム開発支援装置
CN115509519A (zh) 一种前端ui组件库构建方法及系统
JP5657183B2 (ja) 第1のコンピュータ・プログラムが第2のコンピュータ・プログラムのアプリケーション・ロジックを実行することを可能にするための方法および装置、第1のコンピュータ・プログラムと第2のコンピュータ・プログラムとのインターフェースをとるためのコンピュータ・プログラム・コードを生成するための方法および装置、コンピュータ・プログラム、ならびに第1のコンピュータ・プログラムが第2のコンピュータ・プログラムのアプリケーション・ロジックを実行することを可能にするためのソフトウェア・インターフェースを提供するための方法(コンピュータ・プログラム・インターフェース)
WO2021024520A1 (ja) 情報処理装置、サポートプログラムおよびサポートシステム
CN111596906A (zh) 一种基于MVPVM的Android应用开发方法、装置、设备及介质
KR101149655B1 (ko) 프로그램 디자인 장치 및 그 방법
JP7208441B1 (ja) Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム
JP7391269B1 (ja) Fa制御プログラム生成支援プログラム、fa制御プログラム生成支援装置、fa制御プログラム生成支援方法

Legal Events

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

Payment date: 20170106

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee