KR101197245B1 - 로봇 동작을 제어하는 프레임워크 시스템 및 이를 이용한 로봇의 동작 제어 방법 - Google Patents

로봇 동작을 제어하는 프레임워크 시스템 및 이를 이용한 로봇의 동작 제어 방법 Download PDF

Info

Publication number
KR101197245B1
KR101197245B1 KR20100086500A KR20100086500A KR101197245B1 KR 101197245 B1 KR101197245 B1 KR 101197245B1 KR 20100086500 A KR20100086500 A KR 20100086500A KR 20100086500 A KR20100086500 A KR 20100086500A KR 101197245 B1 KR101197245 B1 KR 101197245B1
Authority
KR
South Korea
Prior art keywords
robot
module
control
application
controlling
Prior art date
Application number
KR20100086500A
Other languages
English (en)
Other versions
KR20120023998A (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 KR20100086500A priority Critical patent/KR101197245B1/ko
Publication of KR20120023998A publication Critical patent/KR20120023998A/ko
Application granted granted Critical
Publication of KR101197245B1 publication Critical patent/KR101197245B1/ko

Links

Images

Abstract

본 발명의 로봇 동작을 제어하는 프레임워크 시스템은, 로봇과 연결되고, 연결된 로봇의 구조 정보가 저장되는 장치 모듈, 상기 장치 모듈을 통해 연결된 로봇에서 실행시킬 수 있는 어플리케이션 정보가 저장되는 어플리케이션 모듈, 상기 장치 모듈을 통해 로봇의 상태 파라미터 정보를 수신하고, 수신된 로봇의 상태 파라미터를 이용하여 상기 어플리케이션 모듈의 어플리케이션을 통해 제어 알고리즘을 실행하는 제어 모듈 및 상기 장치 모듈, 상기 어플리케이션 모듈 및 상기 제어 모듈을 연결하여 통신을 수행하는 코어 모듈을 포함한다.

Description

로봇 동작을 제어하는 프레임워크 시스템 및 이를 이용한 로봇의 동작 제어 방법{FRAMEWORK SYSTEM FOR CONTROLLING ROBOT MOTION AND CONTROL METHOD USING THE SAME}
본 발명은 로봇 동작을 제어하는 코어 모듈 및 상기 코어 모듈로 간접 연결되는 장치 모듈, 어플리케이션 모듈 및 제어 모듈로 구성되는 프레임워크 시스템 및 이를 이용한 로봇의 동작 제어 방법에 관한 것이다.
로봇과 같은 장치의 개발에 있어서 장치 동작 제어 프로그램은 인식과 같은 로봇 지능의 보조적 역할로서 개발되고 있다. 일반적으로 동작 제어 프로그램은 제어 프로그램이 포함되는 특정 장치에 종속되고, 이러한 종속성에 의하여 제어 프로그램 사이에 호환성이 떨어지고, 새로운 장치의 개발시에 기존의 제어 프로그램을 재활용할 수 없다는 등의 문제점이 있다. 또한, 가상 로봇을 시뮬레이션하는 시뮬레이터와 하드웨어 사이의 개발 환경 차이로 인하여, 시뮬레이터에서 사용한 제어 프로그램을 하드웨어에 적용하기 위해서는 하드웨어를 위한 제어 프로그램이 따로 필요한 경우가 일반적이다.
따라서, 동작 제어가 아닌 분야의 개발자나 일반 사용자가 로봇과 같은 장치의 동작을 제어하기 위해서는 장치 동작 제어에 관한 많은 지식이 요구되며, 장치에 따라 개발 환경이 다르므로 이에 대한 교육이 필요하다는 문제점이 있다.
본 발명은 로봇 동작을 제어하기 위하여, 코어 모듈 및 상기 코어 모듈로 간접 연결되는 장치 모듈, 어플리케이션 모듈 및 제어 모듈로 구성되는 프레임워크 시스템 및 이를 이용한 로봇의 동작 제어 방법을 제공하고자 한다.
상기한 과제를 실현하기 위한 본 발명의 일 실시예에 관련된 로봇 동작을 제어하는 프레임워크 시스템은, 로봇과 연결되고, 연결된 로봇의 구조 정보가 저장되는 장치 모듈, 상기 장치 모듈을 통해 연결된 로봇에서 실행시킬 수 있는 어플리케이션 정보가 저장되는 어플리케이션 모듈, 상기 장치 모듈을 통해 로봇의 상태 파라미터 정보를 수신하고, 수신된 로봇의 상태 파라미터를 이용하여 상기 어플리케이션 모듈의 어플리케이션을 통해 제어 알고리즘을 실행하는 제어 모듈 및 상기 장치 모듈, 상기 어플리케이션 모듈 및 상기 제어 모듈을 연결하여 통신을 수행하는 코어 모듈을 포함한다.
또한, 상기 코어 모듈은 하나 이상의 운영체제를 실행할 수 있는 라이브러리 구조를 포함할 수 있다.
또한, 상기 코어 모듈은 상기 장치 모듈, 상기 어플리케이션 모듈 및 상기 제어 모듈 사이에서 각각 정보를 송수신하고, 송수신된 정보를 분석 또는 저장할 수 있다.
또한, 상기 장치 모듈에 연결되는 로봇은, 로봇의 하드웨어 또는 가상 로봇을 시뮬레이션하는 시뮬레이터를 포함하고, 로봇의 하드웨어가 제공하는 입출력 인터페이스 또는 로봇을 시뮬레이션하는 시뮬레이터가 제공하는 입출력 인터페이스를 이용하여 로봇과 연결할 수 있다.
또한, 상기 어플리케이션 모듈의 어플리케이션은, 상기 제어 모듈에 종속되는 명령어로 구성될 수 있다.
또한, 상기한 과제를 실현하기 위한 프레임워크를 이용한 로봇의 동작 제어 방법은, 로봇과 연결된 장치 모듈을 통해, 로봇의 구조 정보를 수신하는 단계, 어플리케이션이 저장된 어플리케이션 모듈로부터 실행하고자 하는 어플리케이션 정보를 수신하는 단계, 수신된 로봇의 구조 정보 및 어플리케이션 정보를 이용하여, 제어 모듈에서 제어 알고리즘을 실행하는 단계 및 코어 모듈이 상기 제어 모듈로부터 제어 알고리즘 실행 결과를 수신하여, 수신된 결과 정보를 분석 또는 저장하는 단계를 포함한다.
상기와 같이 구성되는 본 발명의 일 실시예와 관련된 로봇 동작을 제어하는 프레임워크 시스템 및 이를 이용한 로봇의 동작 제어 방법은, 로봇 동작을 프레임워크의 코어 모듈에 의해 간접 연결하여 제어하게 됨으로써, 로봇 장치 모듈 개발과 제어 모듈 개발, 어플리케이션 모듈 개발을 독립적으로 진행할 수 있는 이점이 있다.
도 1은 본 발명의 일 실시예에 따른 로봇 동작을 제어하는 프레임워크 시스템의 구성도.
도 2는 본 발명의 일 실시예에 따른 코어 모듈의 구성도.
도 3은 본 발명의 일 실시예에 따른 장치 모듈(110) 및 코어 모듈(140) 사이의 데이터 송수신을 도시하는 도면.
도 4는 본 발명의 일 실시예에 따른 어플리케이션 모듈(120) 및 코어 모듈(140) 사이의 데이터 송수신을 도시하는 도면.
도 5는 본 발명의 일 실시예에 따른 제어 모듈(130) 및 코어 모듈(140) 사이의 데이터 송수신을 도시하는 도면.
이하, 본 발명과 관련된 로봇 동작을 제어하는 프레임워크 시스템 및 이를 이용한 로봇의 동작 제어 방법에 대해서 도면을 참조하여 보다 상세하게 설명한다. 본 발명이 속한 기술 분야에서 통상의 지식을 가진 자라면, 도면을 참조 또는 변형하여 본 발명의 구성에 대한 다양한 실시예를 유추할 수 있을 것이나, 본 발명은 상기 유추되는 다양한 실시예를 포함하며 이루어지며, 아래 도면에 도시된 실시예로 그 기술적 특징이 한정되지 아니한다.
도 1은 본 발명의 일 실시예에 따른 로봇 동작을 제어하는 프레임워크 시스템의 구성도이다.
도 1을 참조하면, 상기 로봇 동작을 제어하는 프레임워크 시스템(100)은 장치 모듈(110), 어플리케이션 모듈(120), 제어 모듈(130) 및 코어 모듈(140)을 포함한다. 즉, 본 발명의 상기 로봇 동작을 제어하는 프레임워크 시스템(100)은 로봇에 대한 접근을 상기 장치 모듈(110), 어플리케이션 모듈(120) 및 제어 모듈(130)의 세 방면으로 구분하고, 상기 코어 모듈(140)에 의해 상기 각각의 모듈들을 간접적으로 연결하여 상호 데이터 통신을 수행하여 로봇 동작을 제어한다. 이로 인하여, 각각의 장치, 어플리케이션, 제어 모듈 등을 각각 독립적으로 개발할 수 있으며, 각 부분의 결과물들을 상호 호환할 수 있다. 또한, 로봇에 대한 장치 모듈(110)이 독립되어 연결되므로, 로봇의 하드웨어를 신규로 개발하거나, 수정 또는 보완이 발생하더라도 상기 어플리케이션 모듈(120) 및 상기 제어 모듈(130)에 직접적인 영향을 주지 않게 되어, 신규로 개발된 로봇의 하드웨어도 상기 프레임워크 시스템(100)에 연결하면, 기존의 어플리케이션 모듈(120) 및 상기 제어 모듈(130)을 즉시 사용할 수 있다.
상기 장치 모듈(110)은 로봇과 연결되어, 연결된 로봇의 구조 정보가 저장된다. 즉, 상기 장치 모듈(110)은 상기 코어 모듈(140)과 로봇이 연결되어 정보의 송수신을 수행하도록 데이터 매핑(mapping)이 정의되고, 로봇의 구조를 정의한 명세(specification)를 포함할 수 있다. 상기 장치 모듈(110)에 연결되는 로봇은, 사람의 손발과 같은 동작을 하는 전형적인 기계 외에도 기계, 절차 및 조직을 자동 조작하는 오토메이션(automation) 기능을 가진 모든 장치의 하드웨어(hardware)를 포함할 수 있고, 또는 가상의 로봇을 시뮬레이션하는 시뮬레이터(simulator)를 모두 포함할 수 있다. 상기 시뮬레이터가 상기 프레임워크(100)에 연결되는 경우, 상기 장치 모듈(110)은 로봇의 하드웨어와 동일한 형태로 상기 시뮬레이터에 연결될 수 있고, 따라서 시뮬레이션을 위한 제어 모듈이나 어플리케이션을 별도로 개발할 필요가 없게 된다. 상기 장치 모듈(110)은 상기 코어 모듈(140)과 데이터 통신을 수행하면서, 초기화, 읽기/쓰기, 비상 상태 처리 및 종료 처리 기능 등을 수행할 수 있다. 상기 장치 모듈(110)은 로봇의 하드웨어가 제공하는 입출력 인터페이스 또는 가상 로봇을 시뮬레이션하는 시뮬레이터가 제공하는 입출력 인터페이스를 그대로 사용하여, 기존 또는 신규 로봇과 간단하게 연결될 수 있다. 또한, 상기 장치 모듈(110)은 연결된 로봇으로부터 로봇의 구조 정보를 수신하여, XML을 통해 상기 코어 모듈(140)에서 정의된 형식으로 로봇의 구조에 대한 명세를 작성하여 저장할 수 있다. 따라서, 상기 장치 모듈(110)에 대한 개발자들은, 상기 로봇에 대한 구조 명세가 저장된 장치 모듈(110)을 이용하여, 상기 코어 모듈(140)을 통해 연동된 어플리케이션 모듈(120) 및 제어 모듈(130)을 이용할 수 있다.
상기 어플리케이션 모듈(120)은 상기 장치 모듈(110)을 통해 연결된 로봇에서 실행시킬 수 있는 어플리케이션(application) 정보를 저장한다. 상기 어플리케이션이란, 상기 코어 모듈(140)을 이용하여, 연결된 로봇과의 통신을 통해 로봇에 명령어를 전송하거나, 로봇의 상태 정보를 수신하는 프로그램을 의미한다. 상기 어플리케이션 모듈(120)의 어플리케이션은 연결되는 로봇의 구조에 종속적이지 않고, 상기 제어 모듈(130)에 종속되는 명령어로 구성될 수 있고, 이로 인하여 상기 제어 모듈(130)이 유지되는 상태에서는 연결되는 로봇의 종류에 관계없이 기존의 어플리케이션이 이용될 수 있다. 즉, 상기 어플리케이션 모듈(120)은 코어 모듈(140)을 이용하여, 동일한 종류의 어플리케이션을 다양한 종류의 로봇에 수정없이 적용할 수 있다. 상기 로봇 동작을 제어하는 명령어는, 연결된 로봇의 전체 또는 일부분을 제어하는 명령어로 구성될 수 있으며, 이를 통해 각각 다른 명령어가 로봇의 각각 다른 부위에서 실행되도록 구성될 수 있다. 또한, 상기 명령어는 하나의 명령어 실행이 종료되면 다음 명령어가 실행되는 연속 명령어 또는 연결된 로봇의 부위별로 각각의 명령어가 설정된 후 동시에 명령어가 실행되는 병렬 명령어 등 다양한 형태로 명령어 조합을 통해 구성될 수 있다. 상기 어플리케이션 모듈(120)의 어플리케이션은 상기 코어 모듈(140)를 통해 직접 연결된 로봇에서 실행되는 서버 어플리케이션 및 상기 서버 프로그램과의 통신을 통해 간접적으로 연결된 로봇에서 실행되는 클라이언트 어플리케이션을 포함한다. 상기 서버 어플리케이션은 내부에서 직접 실행되어 연결된 로봇 동작을 제어하는 프로그램이다. 상기 클라이언트 어플리케이션은 네트워크 등을 통해 서버 어플리케이션과 연결되어, 상기 서버 어플리케이션에서 실행된 후 실행된 결과 정보 및 로봇의 상태 정보가 전달됨으로써 연결된 로봇을 간접적으로 제어하는 프로그램이다. 상기 클라이언트 어플리케이션은 관리 루틴만 실행함으로써 로봇을 운용하기 위한 최소의 기능만 실행하여, 상기 프레임워크 시스템 전체의 부하를 최소화할 수 있다. 또한, 상기 어플리케이션 모듈(120)은 외부의 프로그램을 사용하여 로봇을 제어할 수 있다. 매트랩(matlab) 등의 기존 개발 환경을 이용하여 알고리즘이 개발된 경우, 상기 어플리케이션 모듈(120)을 통해 로봇의 데이터를 수신하고, 명령어를 전달함으로써, 독립적으로 개발된 알고리즘 또는 프로그램과 상기 코어 모듈(140)을 연결할 수 있다. 이때, 알고리즘이 실시간성을 보장할 수 있다면 서버에서 직접 사용될 수 있으며, 실시간성을 보장할 수 없는 경우 클라이언트에서 서버를 통해 간접적으로 로봇을 제어할 수 있다.
상기 제어 모듈(130)은 상기 장치 모듈(110)을 통해 로봇의 상태 파라미터 정보를 수신하고, 수신된 로봇의 상태 파라미터를 이용하여 상기 어플리케이션 모듈(120)의 어플리케이션을 통해 제어 알고리즘을 실행한다. 상기 제어 모듈(130)은 상기 코어 모듈(140)과 통신을 통해 현재 로봇의 상태 정보를 수신함으로써 연결되는 로봇에 독립적으로 개발될 수 있다. 또한, 상기 제어 모듈(130)이 임의의 제어 알고리즘을 실행하고 그 결과를 코어 모듈(140)로 전송함으로써, 결과적으로, 상기 제어 모듈(130)은 제어 알고리즘을 통한 입력 파라미터 처리만을 수행하는 것이 되며, 이로 인하여 제어 모듈 개발이나 알고리즘 검증 속도를 높일 수 있다. 또한, 상기 제어 모듈(130) 사이의 호환성으로 인하여, 다양한 로봇을 연결하여 제어할 수 있다. 상기 제어 모듈(130)은 종료 방식에 따라서, 자동 종료 방식 및 수동 종료 방식으로 분류될 수 있다. 상기 자동 종료 방식은 미리 설정된 시간 이후에 자동으로 종료되는 방식이고, 수동 종료 방식은 실행 중에 외부의 지시에 의해 모든 제어 알고리즘이 수행된 후 수동으로 종료 지시가 수신되면 종료되는 방식이다. 상기 수동 종료 방식을 이용하여 외부로부터 동작 수행 명령 또는 데이터를 포함하는 임의의 정보를 연속 또는 불연속적으로 전달받아 연결된 로봇을 제어할 수 있다. 상기 제어 모듈(130)은 제어 모듈 명세에 기록되어 상기 코어 모듈(140)에 등록될 수 있다. 이때, 자주 사용되는 명령 및 초기화 파라미터 등의 부가 정보가 함께 제어 모듈 명세에 기록될 수 있으며, 상기 코어 모듈(140)은 부가 정보를 이용하여 등록된 명령을 호출할 수 있다. 또한, 상기 제어 모듈(130)은 기능에 따라 플래너(planner) 및 밸런서(balancer)로 구분될 수 있다. 상기 플래너는 수신되는 실행 명령에 의해 제어 알고리즘이 시작되거나 종료된다. 상기 밸런서는 시작 지시에 의해 시작되지만, 이후 수신되는 다른 실행 명령에 영향을 받지 않고 백그라운드로 실행되며, 밸런서 자체의 종료 지시에 의해 종료된다. 상기 밸런서는 로봇의 균형 잡기 등 기본적으로 계속 실행되어야 하는 기능 등을 구현할 때 이용될 수 있다. 또한, 상기 제어 모듈(130)은 상기 제어 모듈(130)에 포함되는 하나 이상의 종속 제어 모듈을 더 포함할 수 있고, 상기 제어 모듈(130) 내부의 다른 종속 제어 모듈을 호출할 수 있는 중첩 기능 또는 연속적으로 복수의 종속 제어 모듈을 사용할 수 있는 연속 기능 등을 조합하여 이용할 수 있다.
상기 코어 모듈(140)은 각각의 상기 장치 모듈(110), 상기 어플리케이션 모듈(120) 및 상기 제어 모듈(130)과 정보를 송수신할 수 있으며, 송수신된 정보를 분석 또는 저장함으로써, 각각의 모듈을 간접 연결할 수 있다. 즉, 상기 코어 모듈(140)은 각 모듈 사이에서 정보의 통신 및 분석, 정보의 저장 및 제어 스케쥴링 기능을 수행하고, 연결된 로봇의 동작 제어를 위한 기본 환경을 제공할 수 있다. 상기 코어 모듈(140)은 하나 이상의 운영체제(OS: Operating System)를 실행할 수 있는 라이브러리 구조를 포함하여, 다양한 운영체제에 적용될 수 있다. 따라서, 상기 코어 모듈(140)이 적용된 운영체제를 사용할 수 있는 일반 PC, 이동 단말기 등 다양한 장치에서 동일한 형태로 로봇에 접근하도록 할 수 있다. 또한, 상기 코어 모듈(140)은 운영체제가 동작하는 장치에 종속적(dependent)으로 동작 가능하여, 실시간 기능을 제공하는 장치에서는 상기 코어 모듈(140)도 실시간으로 동작하고, 실시간 기능을 제공하지 않는 장치에서는 상기 코어 모듈(140)도 비실시간으로 동작된다.
상기 로봇 동작을 제어하는 프레임워크 시스템(100)은 기본 정보의 입출력에 관한 제한만 가지므로, 입출력 조건 및 로봇의 하드웨어 등에 의한 제어 속도를 만족시켜주면, 사용자 개발 환경에 관계없이 사용될 수 있다. 즉, 기존의 하드웨어 또는 시뮬레이터와 연동, 매트랩(matlab) 등의 상용 패키지와의 연동 등 다양한 형태의 환경에서도 사용이 가능하다.
또한, 상기 로봇 동작을 제어하는 프레임워크 시스템(100)을 이용하여 로봇 동작을 제어하는 방법은, 로봇과 연결된 장치 모듈을 통해, 로봇의 구조 정보를 수신하는 단계, 어플리케이션이 저장된 어플리케이션 모듈로부터 실행하고자 하는 어플리케이션 정보를 수신하는 단계, 수신된 로봇의 구조 정보 및 어플리케이션 정보를 이용하여, 제어 모듈에서 제어 알고리즘을 실행하는 단계 및 코어 모듈이 상기 제어 모듈로부터 제어 알고리즘 실행 결과를 수신하여, 수신된 결과 정보를 분석 또는 저장하는 단계를 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따른 코어 모듈의 구성도이다.
도 2를 참조하면, 상기 코어 모듈(140)은 관리루틴(141) 및 제어루틴(142)을 포함한다. 또한, 상기 관리루틴(141)은 상기 어플리케이션 모듈(120)과 정보를 송수신하기 위한 네트워크 설정 및 연결을 수행하는 네트워크 관리부(141A), 상기 어플리케이션 모듈(120)로부터 전송된 어플리케이션에 포함된 명령어를 관리, 분석하여 실행하는 명령 처리부(141B), 상기 장치 모듈(110)로부터 로봇의 상태 정보를 수신 및 저장하는 데이터 저장부(141C) 및 상기 장치 모듈(110)에 저장된 로봇의 구조를 정의한 명세에 따라 로봇의 구조를 내부적으로 재구성하는 장치구조 관리부(141D)를 포함한다. 또한, 상기 제어 루틴(142)은 상기 제어 모듈(130)과 제어 파라미터 또는 제어 알고리즘 수행 결과 등을 교환하여 제어하는 제어 입출력 인터페이스(142A) 및 상기 장치 모듈(110)로부터 연결된 로봇의 상태 정보를 수신하는 장치 입출력 인터페이스(142B)를 포함한다. 상기 제어 루틴(142)은 제어 주기에 따른 제어 알고리즘을 형성하여, 주기적으로 제어 알고리즘이 수행되도록 설정될 수 있다. 예를 들어, 100Hz의 제어 주기를 가진 경우, 상기 제어 알고리즘이 초당 100번 실행되도록 설정될 수 있다.
도 3은 본 발명의 일 실시예에 따른 장치 모듈(110) 및 코어 모듈(140) 사이의 데이터 송수신을 도시하는 도면이다.
도 3을 참조하면, 상기 장치 모듈(110)은 초기화 기능, 읽기/쓰기 기능, 비상 상태처리 기능 및 종료 기능을 수행한다. 상기 장치 모듈(110)은 초기화 기능을 수행할 수 있으며(S310), 상기 초기화 기능은 초기화가 완성될 때까지 여러 단계를 더 포함할 수 있다. 따라서, 상기 장치 모듈(110)에 대한 개발자는 연결된 로봇에 필요한 다양한 초기화 기능을 상기 장치 모듈(110)에 등록하여 사용할 수 있다. 상기 초기화에 성공하면, 상기 코어 모듈(140)은 제어 루프를 실행하며, 상기 장치 모듈(110)은 상기 제어 루프 수행에 필요한 데이터 및 상기 제어 루프 수행 결과 데이터를 송수신하여 읽기/쓰기 기능을 수행한다(S320). 상기 장치 모듈(110)은 비상 상태처리 기능을 포함할 수 있으며, 비상 상태가 발생하는 경우, 연결된 로봇의 동작을 정지하거나, 연결된 로봇을 리셋(reset)하거나, 또는 연결된 로봇이 미리 설정된 동작을 수행할 수 있도록 비상 상태처리 기능을 수행하여(S330), 로봇의 안전성을 높일 수 있다. 이 후, 상기 제어 루프의 수행이 종료되면, 상기 장치 모듈(110)은 종료 기능을 수행한다(S340).
상기 장치 모듈(110)은 가상 로봇을 시뮬레이션하는 시뮬레이터와 연결될 수 있으며, 상기 시뮬레이터는 독립된 형태로 실행되는 프로그램이 될 수 있다. 따라서, 상기 시뮬레이터와 통신은 네트워크 또는 다른 IPC 방식을 통해 개발자의 선택에 따라 적용될 수 있으므로, 기존의 시뮬레이터 등과 기존 개발 환경을 유지하면서 연결되어 이용될 수 있다.
도 4는 본 발명의 일 실시예에 따른 어플리케이션 모듈(120) 및 코어 모듈(140) 사이의 데이터 송수신을 도시하는 도면이다.
도 4를 참조하면, 상기 어플리케이션 모듈(120)은 초기화를 위해 코어 모듈(140)의 객체(object)를 생성하여, 네트워크 등의 기본 기능을 초기화할 수 있다(S410). 이때, 복수의 코어 모듈(140)에 대한 객체를 생성함으로써, 복수의 로봇과 연결하여 작동되도록 설정될 수 있다. 또한, 상기 어플리케이션 모듈(120)은 명령어를 설정하여 코어 모듈(140)을 통해 로봇에 전달하여(S420), 서버 또는 클라이언트를 통해 명령어를 실행할 수 있다. 이때, 상기 코어 모듈(140)에 연동된 메모리가 있는 경우, 상기 메모리를 이용하여 비실시간 제어 알고리즘, 인식/지능 등의 관련 알고리즘 또는 특정 이벤트 발생 등을 구현함으로써, 기존 프로그램 또는 알고리즘에 최소의 수정을 통해 상기 코어 모듈(140)과 연동될 수 있다. 상기 서버는 직접 명령어를 실행하여, 연결된 로봇을 제어하고, 상기 클라이언트는 상기 서버로 명령어를 송신하고, 상기 서버로부터 명령 실행 결과 정보를 수신하여 상기 서버를 통해 간접적으로 연결된 로봇을 제어할 수 있다.
도 5는 본 발명의 일 실시예에 따른 제어 모듈(130) 및 코어 모듈(140) 사이의 데이터 송수신을 도시하는 도면이다.
도 5를 참조하면, 상기 제어 모듈(130)은 초기화 기능, 제어 알고리즘 기능 및 종료 기능을 수행한다. 상기 제어 모듈(130)은 개발자에 의해 결정되는 초기화 파라미터에 따라서, 상기 코어 모듈(140)의 내부 상태를 변경시켜 초기화한다(S510). 이후, 상기 제어 모듈(130)은 상기 코어 모듈(140)로부터 전달되는 로봇의 상태 파라미터 정보를 수신하여, 수신된 상태 파라미터 정보를 이용하여 제어 알고리즘을 실행한 후(S520), 이를 코어 모듈(140)로 전송한다. 상기 명령 실행이 종료되면, 종료 함수가 호출되어, 상기 제어 모듈(130)은 종료 기능을 수행한다(S530).
상기와 같이 설명된 로봇 동작을 제어하는 프레임워크 시스템 및 이를 이용한 로봇 제어 방법은 상기 설명된 실시예들의 구성과 방법으로 한정되는 것은 아니며, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수 있다.
100: 프레임워크 시스템
110: 장치 모듈
120: 어플리케이션 모듈
130: 제어 모듈
140: 코어 모듈

Claims (10)

  1. 로봇의 하드웨어가 제공하는 입출력 인터페이스를 이용하여 로봇과 연결되고, 상기 입출력 인터페이스를 통해 로봇의 구조 정보를 수신하거나, 미리 저장된 XML 기반 명세(specification)를 통해 로봇의 구조 정보를 수신하며, 로봇의 상태 정보를 저장하는 장치 모듈;
    상기 장치 모듈을 통해 연결된 로봇의 동작 제어에 필요한 명령어를 전송하거나, 로봇의 상태 정보를 수신하여 어플리케이션에서 명령어를 받거나 어플리케이션에 정보를 제공해 주는 어플리케이션 모듈;
    상기 장치 모듈로부터 전달되는 로봇의 상태 정보를 수신하고, 상기 어플리케이션 모듈로부터 전달되는 명령어를 실행하기 위해 명령어에 상응하여 상기 로봇의 동작을 제어하는 제어 알고리즘을 실행하는 제어 모듈; 및
    상기 장치 모듈, 상기 어플리케이션 모듈 및 상기 제어 모듈을 연결하여, 각 모듈 사이에서 정보의 통신 및 분석, 정보의 저장 및 제어 스케쥴링 기능을 수행하고, 로봇의 동작 제어를 위한 기본 환경을 제공하는 코어 모듈을 포함하는 로봇 동작을 제어하는 프레임워크 시스템.
  2. 제1항에 있어서,
    상기 코어 모듈은 하나 이상의 운영체제를 실행할 수 있는 라이브러리 구조를 포함하는 것을 특징으로 하는 로봇 동작을 제어하는 프레임워크 시스템.
  3. 제1항에 있어서,
    상기 코어 모듈은 상기 장치 모듈, 상기 어플리케이션 모듈 및 상기 제어 모듈 사이에서 각각 정보를 송수신하고, 송수신된 정보를 분석 또는 저장하는 것을 특징으로 하는 로봇 동작을 제어하는 프레임워크 시스템.
  4. 제1항에 있어서,
    상기 장치 모듈에 연결되는 로봇은, 로봇의 하드웨어 또는 가상 로봇을 시뮬레이션하는 시뮬레이터를 포함하고, 로봇의 하드웨어가 제공하는 입출력 인터페이스 또는 로봇을 시뮬레이션하는 시뮬레이터가 제공하는 입출력 인터페이스를 이용하여 로봇과 연결하는 것을 특징으로 하는 로봇 동작을 제어하는 프레임워크 시스템.
  5. 제1항에 있어서,
    상기 어플리케이션 모듈의 어플리케이션은, 상기 제어 모듈에 종속되는 명령어로 구성되는 것을 특징으로 하는 로봇 동작을 제어하는 프레임워크 시스템.
  6. 제1항에 있어서,
    상기 어플리케이션 모듈의 어플리케이션은 연결된 로봇의 전체 또는 일부분에서 실행되는 하나 이상의 명령어의 조합으로 구성되는 것을 특징으로 하는 로봇 동작을 제어하는 프레임워크 시스템.
  7. 제1항에 있어서,
    상기 제어 모듈은 미리 설정된 시간 동안 제어 알고리즘을 수행한 후 종료되는 자동 종료 방식 또는 종료 지시에 따라 종료되는 수동 종료 방식으로 구성되는 것을 특징으로 하는 로봇 동작을 제어하는 프레임워크 시스템.
  8. 제1항에 있어서,
    상기 제어 모듈은 동작의 실행 명령에 의해 실행 또는 종료되는 플래너 형식 모듈 또는 백그라운드로 실행되는 밸런서 형식 모듈로 구성되는 것을 특징으로 하는 로봇 동작을 제어하는 프레임워크 시스템.
  9. 제1항에 있어서,
    상기 제어 모듈은 하나 이상의 종속 제어 모듈을 더 포함하고, 타 종속 제어 모듈을 호출하는 중첩 기능 또는 복수의 종속 제어 모듈을 실행하는 연속 기능의 조합을 통해 제어 알고리즘을 실행하는 것을 특징으로 하는 로봇 동작을 제어하는 프레임워크 시스템.
  10. 로봇의 하드웨어가 제공하는 입출력 인터페이스를 이용하여 로봇과 연결된 장치모듈에서 상기 입출력 인터페이스를 통해 로봇의 구조 정보를 수신하거나, 미리 저장된 XML 기반 명세(specification)를 통해 로봇의 구조 정보를 수신하며, 로봇의 상태 정보를 저장하고, 이를 코어 모듈로 전송하는 단계;
    상기 장치 모듈을 통해 연결된 로봇의 동작 제어에 필요한 명령어를 어플리케이션 모듈로부터 코어 모듈로 전송하거나, 어플리케이션 모듈이 상기 코어 모듈로부터 로봇의 상태 정보를 수신한 후, 어플리케이션에서 명령어를 받아 상기 코어 모듈로 다시 전달하는 단계; 및
    상기 장치 모듈로부터 전달되는 로봇의 상태 정보를 수신하고, 상기 어플리케이션 모듈로부터 전달되는 명령어를 실행하기 위해 제어 모듈에서 상기 명령어에 상응하는 제어 알고리즘을 실행하여, 상기 코어 모듈 및 장치 모듈을 거쳐 로봇의 동작을 실행시키는 단계를 포함하는 프레임워크 시스템을 이용한 로봇의 동작 제어 방법.
KR20100086500A 2010-09-03 2010-09-03 로봇 동작을 제어하는 프레임워크 시스템 및 이를 이용한 로봇의 동작 제어 방법 KR101197245B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20100086500A KR101197245B1 (ko) 2010-09-03 2010-09-03 로봇 동작을 제어하는 프레임워크 시스템 및 이를 이용한 로봇의 동작 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20100086500A KR101197245B1 (ko) 2010-09-03 2010-09-03 로봇 동작을 제어하는 프레임워크 시스템 및 이를 이용한 로봇의 동작 제어 방법

Publications (2)

Publication Number Publication Date
KR20120023998A KR20120023998A (ko) 2012-03-14
KR101197245B1 true KR101197245B1 (ko) 2012-11-05

Family

ID=46131125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20100086500A KR101197245B1 (ko) 2010-09-03 2010-09-03 로봇 동작을 제어하는 프레임워크 시스템 및 이를 이용한 로봇의 동작 제어 방법

Country Status (1)

Country Link
KR (1) KR101197245B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200045168A (ko) 2018-10-22 2020-05-04 씨제이올리브네트웍스 주식회사 휴머노이드 로봇 개발 프레임워크 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200045168A (ko) 2018-10-22 2020-05-04 씨제이올리브네트웍스 주식회사 휴머노이드 로봇 개발 프레임워크 시스템

Also Published As

Publication number Publication date
KR20120023998A (ko) 2012-03-14

Similar Documents

Publication Publication Date Title
Hemingway et al. Rapid synthesis of high-level architecture-based heterogeneous simulation: a model-based integration approach
Brugali Model-driven software engineering in robotics: Models are designed to use the relevant things, thereby reducing the complexity and cost in the field of robotics
CN110524543A (zh) 一种基于操控一体的工业机器人控制装置及系统
JP2021531574A (ja) 産業用pcデバイス及び産業用pcデバイスの動作方法
US8204732B1 (en) Modeling communication interfaces for multiprocessor systems
JP2008170998A (ja) タービン制御シミュレーションのためのシステム及び方法
CN110716510A (zh) 用于自动化应用的抽象层
Galzarano et al. A task-oriented framework for networked wearable computing
CN111860777B (zh) 面向超实时仿真环境的分布式强化学习训练方法及装置
Theiss et al. Software agents in industry: A customized framework in theory and praxis
CN108763009A (zh) 服务器压力测试方法、系统、设备及计算机可读存储介质
CN109100952B (zh) 分布式半实物仿真航天器健康管理系统区域推理机
CN112965794A (zh) 算法调用方法、电子设备及存储介质
CN111460640B (zh) 电力系统仿真方法、装置、设备及计算机存储介质
US20160094158A1 (en) Method for power station simulation
CN113094613B (zh) 在线编程系统、在线编程方法及相关产品
KR101197245B1 (ko) 로봇 동작을 제어하는 프레임워크 시스템 및 이를 이용한 로봇의 동작 제어 방법
CN104181927B (zh) 一种飞行控制律管理方法及装置
Ribeiro et al. Thalamus: Closing the mind-body loop in interactive embodied characters
CN101969442B (zh) 基于进程运行环境感知与迁移的网络模拟框架实现方法
Balasubramanian et al. A rapid testing framework for a mobile cloud
KR20240002538A (ko) 모듈화된 로봇 제어 시스템 및 프레임워크
Schiller et al. Emulating vehicular ad hoc networks for evaluation and testing of automotive embedded systems
CN112737815B (zh) 一种动态配置网络模拟器事件队列的方法及系统
CN113973060A (zh) 一种物联网模拟方法、装置、系统及存储介质

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170928

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 7