KR20080072335A - 지능형 로봇을 위한 센싱, 구동 및 실시간 행동을 포함한리액티브 층 소프트웨어의 구조 - Google Patents

지능형 로봇을 위한 센싱, 구동 및 실시간 행동을 포함한리액티브 층 소프트웨어의 구조 Download PDF

Info

Publication number
KR20080072335A
KR20080072335A KR1020070010941A KR20070010941A KR20080072335A KR 20080072335 A KR20080072335 A KR 20080072335A KR 1020070010941 A KR1020070010941 A KR 1020070010941A KR 20070010941 A KR20070010941 A KR 20070010941A KR 20080072335 A KR20080072335 A KR 20080072335A
Authority
KR
South Korea
Prior art keywords
sensor
real
reactive
behavior
time
Prior art date
Application number
KR1020070010941A
Other languages
English (en)
Other versions
KR100877715B1 (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 KR1020070010941A priority Critical patent/KR100877715B1/ko
Publication of KR20080072335A publication Critical patent/KR20080072335A/ko
Application granted granted Critical
Publication of KR100877715B1 publication Critical patent/KR100877715B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Feedback Control In General (AREA)
  • Manipulator (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

지능형 로봇을 위한 하이브리드 소프트웨어 구조의 가장 하위 구조인 리액티브 층의 소프트웨어 구조가 개시된다. 본 발명에 따른 리액티브 층 소프트웨어 구조에는, 센싱 데이터의 주기적 및 비주기적 획득을 신뢰성 있게 수행하고 획득한 데이터를 실시간 프로세스 및 응용 프로세스들에게 제공할 수 있는 센싱부, 상위 응용 프로세스에서 발생된 구동 명령들을 주기적으로 구동부에 전달하며 구동부의 동작을 확인하는 구동 제어부 및 센싱부에서 획득한 상황 데이터에 대하여 즉각적인 판단을 수행하는 실시간 리액티브 행동을 포함한다. 본 발명에 따른 리액티브 층 소프트웨어 구조는 전술한 컴포넌트들을 적절히 배치하여, 상위 응용 프로세스들과 병행하면서도 실시간 행동의 구현이 가능한 실시간 리액티브 제어 구조를 제공한다.
지능형 로봇, 제어 구조, 실시간 제어, 리액티브 층, 센싱 구조, 구동 구조, 실시간 행동 구조.

Description

지능형 로봇을 위한 센싱, 구동 및 실시간 행동을 포함한 리액티브 층 소프트웨어의 구조{Reactive Layer Software Architecture Containing Sensing, Actuation and Real-Time Actions for Intelligent Robots}
도 1은 리액티브 층 소프트웨어 구조가 포함되는 실시간 하이브리드 소프트웨어 제어구조를 설명하는 도면이다.
도 2는 본 발명의 실시예에 따른 리액티브 층 소프트웨어 구조에 포함되는 컴포넌트들을 나타낸 블록도이다.
본 발명은 전체적으로 지능형 로봇의 구동을 위한 소프트웨어 구조에 관한 것이다. 좀 더 구체적으로 본 발명은 복잡한 기능의 수행을 위하여 여러 다양한 소프트웨어 및 하드웨어가 사용되는 지능형 로봇 시스템에 있어서, 지능형 로봇이 작업을 효율적으로 수행할 수 있도록 지능형 로봇 제어관련 소프트웨어 컴포넌트들을 제어하는 소프트웨어 구조에 관한 것이다.
지능형 로봇의 제어를 위한 소프트웨어 구조에 관해서는 다음과 같은 다양한 종래 기술이 있다. 미국 CMU에서 개발된 박물관 안내로봇인 미네르바(MINERVA)의 제어구조는 상위레벨 제어 및 학습을 담당하는 층, 휴먼 인터페이스 층, 네비게이션 층, 하드웨어 인터페이스 층 등 총 4개의 층으로 구성되어 있다. 이 방법은 혼합 접근 방식을 따르는 것으로, 다른 구조들과 달리 사람과의 인터페이스와 네비게이션에 관련된 모듈을 모아 개별적인 제어층으로 설계하였다. 미네르바의 제어구조는 하위층으로서 하드웨어 인터페이스 층과 네비게이션 층이 있으나, 실시간 리액티브 행동에 대한 층이 존재하지 않는 단점이 있다.
독일의 프라운호퍼 생산공학 및 자동화 연구소(Fraunhofer Institute for Manufacturing Engineering and Automation)에서는 6자유도 머니퓰레이터와 자율주행부가 결합된 형태의 지능형 로봇인 케어오봇(Care-O-bot)을 제작하였다. 케어오봇은 하이브리드(hybrid) 제어구조를 가지고 있어 다양한 응용동작을 수행할 수 있으며, 이상상황에 대처할 수 있다. 또한, 2001년에는 케어오봇 II가 제작되었다. 케어오봇 시리즈의 경우, 로봇의 개발에 필요한 소프트웨어에 대한 연구도 활발하여, 로봇 모의실험을 위한 로보틱 툴박스(Robotic Toolbox) 및 제어에 사용되는 실시간 틀 구조 등을 개발하여 이용하고 있다. 실시간 틀 구조는 운영체제에 추상적 개념을 사용하여 다른 기종에 쉽게 이식될 수 있으며, 특히 POSIX API를 지원하는 운영체제를 모두 사용 가능하기 때문에 VxWorks와 같은 실시간 운영체제를 활용할 수 있다는 특징이 있다. 케어오봇 시리즈의 경우, 하위층으로 인지(perception) 모듈, 기능(skills) 모듈, 경로계획기(trajectory interpreter) 모듈 등이 존재하나, 기능 모듈이 상위 응용 프로그램과의 연계가 없는 단점이 있다.
스웨덴의 왕립기술원(Royal Institute of Technology)에서는 이동 지능형 로봇의 재사용성(reusability) 및 유연성(flexibility)을 위한 BERRA (Behavior-based Robot Research Architecture)를 제안하였다. BERRA는 딜리버릿(deliberate) 층, 작업 실행(task execution) 층, 리액티브(reactive) 층의 3개의 층으로 구성되어 있으며, 유연성과 확장성을 고려하여 설계하였다. BERRA는 상위층에서 센서 리소스의 자료 획득에 대한 기능이 미흡한 단점이 있다.
KIST에서는 트라이퍼들 스키매틱 컨트롤 아키텍쳐(Tripodal schematic control architecture)를 제안하고 지능형 로봇인 PSR(Personal Service Robot)에 적용하였다. 트라이퍼들 스키매틱 디자인의 요점은, 로봇의 제어구조 정의 및 로봇 시스템의 통합을 세 개의 다이어그램으로 해결하는데 있다. 층별 기능 다이어그램(Layered functionality diagram)은 하이브리드 구조로 되어 있으며, 하드웨어/소프트웨어 구성 요소 및 각종 함수(function)들의 배치를 보여주며 구성요소 사이의 연결 관계 및 정보 흐름이 기술되어 있다. 이 디자인은 상위층에서의 직접적인 하드웨어 구동 방안이 미흡하다는 단점이 있다.
현대의 지능형 로봇은, 인간과 공존하는 환경에서 인간이 원하는 서비스를 적절하게 제공하는 것을 목적으로 한다. 지능형 로봇이 이러한 서비스를 제공하기 위해서는 사람을 포함한 주변의 불확실한 환경을 인식하고, 인식된 지식을 기반으로 추론을 통하여 지능적인 작업 계획을 세우며, 이동 및 조작 등의 작업 행위를 실행하는 여러 요소들이 유기적으로 통합되어야 한다.
이러한 기능을 수행하기 위해 지능형 로봇에 필요한 컴포넌트들로는, 거리 기반 센서, 비전 센서, 음성 센서 등과 같이 환경을 감지하기 위한 고기능 H/W 센서들을 인터페이스하는 컴포넌트들, 센서 인터페이스로부터 받아들인 환경 데이터를 통해서 특징들을 추출하여 사람, 물체, 또는 음성 등을 인식하고 지식화하는 컴포넌트들, 인식된 지식을 기반으로 인간과의 상호작용을 위한 추론을 통해서 지능적으로 로봇의 작업 계획을 세우는 컴포넌트들, 작업 계획에 따라서 장애물을 회피하면서 신뢰성있게 목표 위치로 이동하거나 목표 물체를 안전하게 잡거나 조작하는 등의 행위제어를 하는 컴포넌트들, 및 행위제어 컴포넌트들로부터 명령을 받아서 물리적 행위를 구현하는 이동부, 조작부, 머리 팬/틸트부와 같은 로봇의 구동기들을 인터페이스하는 컴포넌트들이 있다.
지능로봇 소프트웨어에는 위에 기술한 여러 가지 요소들이 잘 정의된 아키텍처가 필수적이다. 각 컴포넌트들의 내부 구조를 전체 구조로부터 분리하여 통일성 있게 구현할 수 있게 하여야 하기 때문이다. 따라서 효율적인 아키텍처를 설계하기 위한 연구가 지금까지 활발히 진행되어 왔는데, 90년대 초반에는 딜리버릿 층과 리액티브 층을 동시에 가진 하이브리드 구조가 제안되었다. 이 접근 방식은 거의 동시에 여러 연구자로부터 동시에 발표된 개념으로 연구자에 따라 조금씩 차이가 있긴 하지만, 근래 들어 제시된 방법의 대다수는 이 패러다임에 수렴하는 경향을 보이고 있다. 이 방식에 따를 경우, 사람과의 상호작용을 위한 추론이나 지능적인 작업 계획, 많은 예외 상황에 대한 해결책 등을 계획하기 위해서 최상위에 딜리버릿 층이 필요하다. 또한 이러한 작업 계획을 실제로 수행할 제어 로직 및 시간이 비교적 많이 소요되는 알고리즘 등이 포함되는 컴포넌트들이 배치될 시퀀 싱(sequencing) 층이 필요하다. 마지막으로 신뢰성 있는 동작을 하기 위해서는 빠르고 예측 가능한 응답 특성을 가진 컴포넌트들이 배치될 리액티브 층이 필요하다. 본 발명에서는 이 중 하위 층인 리액티브 층에 대한 기술을 제안한다.
본 발명은 센싱부, 구동 제어부 및 실시간 행동의 구성 요소로 이루어져, 상위 응용 프로세스들과 병행하면서, 센싱부에서 획득한 상황 데이터에 대하여 판단한 후, 즉각적으로 중요한 작업들을 우선적으로 선별하여 실시간 리액티브 행동들을 수행할 수 있는 실시간 리액티브 제어 구조를 제공하는 것을 목적으로 한다.
본 발명의 실시예에 따른 리액티브 층은, 빠르고 예측 가능한 응답 특성이 요구되는 리액티브 컴포넌트들을 위해서 실시간 제어가 가능한 구조를 채택하고 있으며, 모듈간 고유한 우선 순위를 바탕으로 효율적으로 정보 처리 스케줄링을 할 수 있다. 실시간 구동이 필요한 작업들의 예로는 각종 센서 데이터의 획득, 각종 구동기(actuator)의 구동, 센서로부터 구동기까지의 신속한 제어 행동(control action) 등이 있다. 또한 리액티브 층은 레이저 센서 등의 센서 및 휠 등의 구동기를 조작할 수 있는 층으로서, 물리적인 하드웨어 드라이버들과 밀접한 관련을 가지고 있다. 또한, 시퀀싱 층과 정보를 주고 받기 위한 인터페이스로는 C++ 또는 JAVA의 래퍼(wrapper)를 사용한다.
지능형 로봇과 같이 복잡한 기능의 수행을 위해 다양한 소프트웨어 및 하드 웨어 컴포넌트가 사용된 시스템에서는, 많은 소프트웨어 컴포넌트들의 상호작용으로 인하여 각 컴포넌트의 동작 성능이 영향을 받게 된다. 중요도가 낮거나 결과가 급하게 필요하지 않은 일부 소프트웨어 컴포넌트의 경우, 이러한 성능 저하가 별다른 영향을 미치지 않을 수 있다. 하지만 로봇의 움직임에 직접 관여하는 리액티브 층의 컴포넌트들은 중요한 순간에 이러한 성능 저하가 발생할 경우, 이로 인해 주변 환경과 물리적인 충돌을 일으키는 등 동작 오류가 나타나 안전상의 위협이 될 수 있다. 그렇기 때문에, 중요한 작업들을 우선적으로 처리해 줄 수 있도록 실시간성을 가진 소프트웨어 구조가 필요하다.
리액티브 층을 구성하는 소프트웨어 컴포넌트들은 로봇의 제어 구조 중 가장 높은 우선순위를 가진다. 따라서, 이들은 다른 컴포넌트보다 우선적으로 수행이 가능하도록 실시간 운영체제(Real-Time Operating System)를 이용하여 구현할 수 있어야 하며, 자체적으로도 컴포넌트들 사이에 적절한 우선순위를 설정하여야 한다.
리액티브 층에 존재하는 우선순위가 높은 컴포넌트들은 대부분 로봇의 움직임에 관여하는 제어 컴포넌트이다. 로봇의 제어는 크게 세 가지 과정으로 나뉘는데, 센서를 활용하여 주변의 환경 정보를 읽는 과정, 읽어 들인 센서의 데이터를 바탕으로 구동기를 어떻게 드라이브할지를 결정하는 연산 작업 및 연산된 결과를 구동기에 전달하는 과정이 있다.
센서를 관리하는 센서 리소스(resource) 컴포넌트들은 주기적 또는 비주기적으로 센서의 데이터를 획득하여 이를 다른 컴포넌트를 위해 저장하는 작업을 주로 수행하게 된다. 또한 센서의 데이터를 실시간 운영체제 내의 컴포넌트 및 응용 계 층의 컴포넌트 모두에게 제공하는 작업도 수행하게 된다.
구동기를 관리하는 구동기 컴포넌트는 독립적으로 동작이 불가능하며, 로봇의 제어에 관여하는 다른 컴포넌트에 의해 움직이게 된다. 실제적으로 제어 알고리즘의 연산을 통해 로봇의 움직임을 결정하는 컴포넌트는 리액티브 행동 컴포넌트들이다. 이들은 센서 리소스 컴포넌트로부터 획득된 데이터를 읽고 이를 바탕으로 연산 작업을 매 주기마다 수행하게 되며, 연산의 결과로 얻은 값을 구동기 컴포넌트에 전달하게 된다. 도 1은 리액티브 층 소프트웨어 구조가 포함되는 실시간 하이브리드 소프트웨어 제어구조를 설명하는 도면이다. 도 1에는 리액티브 층과 상위 계층과의 관계와 아울러 리액티브 층의 여러 종류의 컴포넌트간의 정보의 흐름이 나타나 있다.
센서 리소스 컴포넌트( Sensor Resource Component )
도 2는 본 발명의 실시예에 따른 리액티브 층을 구성하는 컴포넌트들을 나타낸 블록도로서, 본 발명의 실시예에 포함되는 다수의 센서 리소스 컴포넌트들이 도시되어 있다. 리소스 컴포넌트의 수는 로봇에 장착된 센서 하드웨어 개수에 의하여 결정되며, 본 실시예의 경우 범퍼(1), 전면 IR(2), 후면 IR(3), 전면 초음파(4), 후면 초음파(5), 전면 LRF(6), 후면 LRF(7), 자이로(gyro)(8), 축전지(9) 및 인코더(encoder)(10)를 포함하는 총 10개의 센서 리소스 컴포넌트가 존재한다.
센서 리소스 컴포넌트의 기능은 크게 세 가지로 나눌 수 있다. 첫 번째 기능은 실시간 센서 데이터 획득이다. 센서는 본 발명에 따른 소프트웨어가 탑재된 로 봇이 시시각각 변화하는 주변 환경을 인식할 수 있도록 돕는 가장 중요한 하드웨어이기 때문에, 환경의 변화를 인식하는데 소요되는 시간이 늦어질 경우 정해진 시간 내에 제어 출력을 변경하지 못하여 주변 환경과 물리적인 충돌이 일어나는 등, 올바른 동작을 할 수 없게 된다. 각 센서 리소스 컴포넌트들은 정해진 주기로 센서 데이터를 획득하도록 설정되어 있으며, 그 동작을 감시하고 분석하기 위한 로봇 건강 감시(Robot Health Monitoring) 기능을 포함하고 있다.
센서 리소스 컴포넌트들은 각 센서마다 인터럽트(interrupt)에 의하여 낮은 중앙처리장치(CPU) 점유율을 가지면서 주기적으로 센서 데이터를 획득할 수 있다. 주기적으로 센서 데이터를 얻을 필요가 있을 경우, 타이머 인터럽트에 의하여 센서 데이터 획득을 담당하는 인터럽트 처리 루틴(Interrupt Service Routine)이 구동되어, 중앙처리장치(CPU)가 다른 응용 프로그램을 수행하는 도중에도 센서 데이터를 즉각적으로 얻을 수 있다. 이 인터럽트 처리 루틴은 가급적 간결한 구조를 가지도록 설계하여 그 구동시간을 최소화하여 중앙처리장치 점유율을 낮출 수 있도록 하는 것이 바람직하다.
센서 리소스 컴포넌트의 두 번째 기능은 획득된 데이터를 다른 컴포넌트에 제공하는 것이다. 센서 리소스 컴포넌트는, 제공되는 데이터를 사용하는 컴포넌트에 대한 정보를 미리 갖추지 않은 상태에서 동작하기 때문에, 최대한 여러 개의 컴포넌트가 데이터를 사용하는데 지장이 없도록 정보를 제공하는 것이 중요하다.
본 발명의 실시예에 따른 제어 구조상에서는, 실시간 드라이버로부터 딜리버릿 층 및 리액티브 층에 존재하는 비실시간 및 실시간 컴포넌트로 전송되는 데이터 의 교환을 위하여 공유 메모리를 채택하였다. 본 발명의 실시예에 따른 리액티브 층을 구성하는 리소스 컴포넌트들은 공유 메모리(shared memory)를 이용하여 가장 최근에 획득된 데이터뿐 아니라, 이전 주기에 획득된 데이터들도 여러 컴포넌트 사이에 충돌없이 읽는 것이 가능하도록 설계되었고 리액티브 행동 컴포넌트와 같은 실시간 컴포넌트 이외에, 시퀀싱 층 상에 존재하는 비실시간 컴포넌트들도 데이터를 얻는데 지장이 없도록 설계되었다. 이를 구현함으로서 자료 전송이 원활하게 실시간으로 수행될 수 있다.
컴포넌트들 사이에서 공유 메모리를 효율적으로 사용하기 위해서 후술하는 방식으로 공유 메모리를 이용한다. 시스템에는 여러 센서를 위한 여러 개의 공유 메모리가 존재할 수 있으며, 하나의 공유 메모리에는 하나의 기록자(writer)만이 존재한다. 공유 메모리는 링 버퍼(ring buffer)의 형태로 구현되며 과거 K 단계까지의 데이터를 저장한다. 이때 정수 K는 사전에 정의된다.
비주기적인 센서 데이터의 경우, 예를 들어 범퍼 입력의 경우 센서에서 감지된 외부상황의 변화는 비주기적인 인터럽트를 통하여 시스템에 전달되어, 인터럽트 처리 루틴에 의하여 그 발생시간과 발생 내용을 공유메모리에 기록되게 한다. 이리하여 주기적인 데이터는 물론 비주기적인 데이터에 대해서도 동일한 구조로 센서 데이터의 획득이 가능하게 된다.
센서 리소스 컴포넌트의 세 번째 기능은 센서 하드웨어의 동작 상태를 관리하는 것이다. 하드웨어는 여러 외부적인 원인으로 인해 기능 고장이나 오류 발생 등을 겪게 된다. 복구 가능한 오류의 경우, 빠른 검출 및 복원 작업을 통해 센서 리소스 컴포넌트의 동작을 정상화시켜야 전체적인 제어 작업에 미치는 영향을 최소화할 수 있다.
구동기 컴포넌트( Actuator Component )
구동기 컴포넌트(11)는 로봇의 구동과 연관된 하드웨어를 제어하는 컴포넌트로 제어 출력을 실제 하드웨어가 인식하는 값으로 변환하여 전달하는 역할을 한다. 또한 구동 제어부에 위치한 행동융합기(Action Coordinator)(12)는 상위 응용 프로세스로부터 전달받은 구동 명령 및 리액티브 행동 컴포넌트들로부터 전달받은 실시간 리액티브 구동명령들을 효율적으로 융합하며, 이 중 유효적절한 행동을 선정하여 주기적으로 이를 구동기 컴포넌트(11)에 전달하고 구동기 컴포넌트(11)의 동작을 확인한다.
본 발명의 실시예에 따른 소프트웨어가 탑재될 수 있는 지능형 로봇인 티-롯(T-Rot)의 경우, 구동 하드웨어가 독립적인 프로세서를 갖추고 있는 BLDC 컨트롤러 보드이기 때문에 구동기의 역할이 조금 더 복잡해 지게 된다. BLDC 컨트롤러 보드는 PC와 RS-232 프로토콜을 이용하여 연결되기 때문에, 시리얼 통신을 위한 기능과 BDLC 컨트롤러 보드로 직접 연결되는 하드웨어인 인코더, 범퍼 및 축전지의 센서 데이터를 획득할 수 있는 기능이 추가적으로 필요하게 된다.
지능형 로봇 플랫폼에 존재하는 유일한 구동기인 BLDC 모터는 BLDC 컨트롤러 보드에 의하여 제어된다. 따라서 이를 위한 MBase 구동기 모듈(Mbase Actuator module)은 보다 복잡한 구조를 갖게 된다. 먼저 BLDC 컨트롤러 보드로 전달될 명령 을 처리하는 API를 제공하며, 명령을 전송한 후에는 시리얼 드라이버에 등록된 회수(callback) 함수와 Rx 작업을 이용하여 되돌아온 패킷을 처리하게 된다. 또한 주기적으로 범퍼, 축전지 및 인코더 데이터를 생성해야 하기 때문에 이를 위한 RT 작업도 포함하고 있다.
리액티브 행동 컴포넌트( Reactive Action Component )
리액티브 행동 컴포넌트는, 하위 레벨에서 로봇의 제어 작업을 수행하게 된다. 리액티브 행동 컴포넌트가 제공하는 제어 기능은 이를 실제로 사용하게 될 시퀀싱 층 상의 상위 제어 컴포넌트와 잘 협의하여 결정하는 것이 중요하다. 본 발명의 실시예에 따른 소프트웨어가 탑재될 수 있는 지능형 로봇인 티-롯에 포함된 리액티브 층은 두 가지 기본적인 제어 행동 컴포넌트들을 포함한다. 하나는 주행 행동(Move Action)(13)으로 주어진 속도로 로봇을 주행하기 위한 속도 주행 알고리즘을 구현한 컴포넌트이며, 다른 하나는 이동 행동(GoTo Action)(14)으로 주어진 위치로 로봇을 이동시키는 위치 이동 알고리즘을 구현한 컴포넌트이다.
이외에도 실시간 처리가 요구되는 리액티브 행동 컴포넌트로는 감지된 동적 장애물을 실시간으로 회피하기 위한, 장애물 회피 행동(Obstacle Avoidance Action)(15)과 검출되지 않은 장애물과 범퍼의 충돌이 발생했을 경우 긴급하게 정지 작업을 수행하여 더 큰 문제를 줄일 수 있는 긴급 정지 행동(Emergency Stop Action) 등이 있다. 이러한 여러개의 행동들은 구동 제어부의 행동 융합기로 실시간 리액티브 구동명령들을 전달한다.
리액티브 제어 구조
본 발명의 실시예에 따라 전술한 센싱, 구동 및 리액티브 행동의 컴포넌트들을 적절히 배치하여, 센싱부에서 획득한 상황 데이터에 대하여 즉각적인 판단을 수행함으로서 다수의 실시간 리액티브 행동들을 즉각적으로 수행할 수 있는 제어 구조를 구현하는 것이 가능하다. 또한 응용 프로그램이 수행되는 도중에도, 상기 리액티브 행동 컴포넌트들을 추가 및/또는 삭제할 수 있는 기능을 가진 실시간 행동 수퍼바이저(Real-Time Action Supervisor)(16)를 사용하여 실시간 행동들의 동적인 추가, 삭제가 가능한 융통성 있는 제어 구조를 구현할 수 있다.
상술한 바와 같이 본 발명에 의하면, 주기적 또는 비주기적으로 상황 데이터를 획득할 수 있고, 상위 응용 프로세스에 의하여 발생된 구동 명령들을 주기적으로 구동부에 전달하고 구동부의 동작을 확인하면서, 획득된 상황 데이터에 대하여 즉각적으로 판단하여 실시간 리액티브 행동을 구현할 수 있어, 상위 프로그램과 병행하면서도 실시간으로 지능형 로봇의 행동을 구현할 수 있는 소프트웨어 구조를 얻을 수 있다.

Claims (6)

  1. 실시간으로 센서 하드웨어의 데이터를 얻고 상기 데이터를 저장하기 위한 센서 소프트웨어 구조로서,
    상기 각 센서 하드웨어의 리소스 데이터를 측정하는 센서 리소스 컴포넌트; 및
    상기 센서 리소스 컴포넌트들이 측정한 상기 데이터를 저장할 수 있는 공유 메모리를 포함하되,
    상기 공유 메모리는 링 버퍼의 형태로 구현되며, 하나의 기록자에 의해서만 기록될 수 있는 것을 특징으로 하는 센서 소프트웨어 구조.
  2. 제 1항에 있어서,
    상기 센서 리소스 컴포넌트는 주기적 또는 비주기적으로 상기 각 센서 하드웨어의 리소스 데이터를 측정하는 것을 특징으로 하는 센서 소프트웨어 구조.
  3. 제 1항 또는 제 2항에 있어서,
    상기 센서 리소스 컴포넌트는,
    상기 각 센서 하드웨어에 오류가 발생한 경우 이를 검출하고 상기 각 센서 하드웨어를 복원하여 상기 센서 리소스 컴포넌트의 동작을 정상화시키는 작업을 더 수행하는 것을 특징으로 하는 센서 소프트웨어 구조.
  4. 지능형 로봇의 구동과 연관된 하드웨어를 제어하는 구동 제어 소프트웨어 구조에 있어서,
    상위 응용 프로세스에 의해 발생된 구동 명령 및/또는 실시간 리액티브 구동명령들을 융합하여, 목적하는 행동을 선택하는 행동 융합기; 및
    상기 행동 융합기로부터 전달된 제어 출력을 실제 하드웨어가 인식하는 값으로 변환하여 전달하는 구동기 컴포넌트를 포함하는 것을 특징으로 하되,
    상기 행동 융합기는 또한 상기 구동기 컴포넌트의 동작을 확인하는 작업을 수행하는 것을 특징으로 하는 구동 제어 소프트웨어 구조.
  5. 지능형 로봇을 위한 실시간 리액티브 소프트웨어 구조에 있어서,
    센서 하드웨어의 리소스 데이터를 측정하는 센서 리소스 컴포넌트 및 상기 센서 리소스 컴포넌트들이 측정한 상기 데이터를 저장할 수 있는 공유 메모리를 포함하며, 상기 공유 메모리는 링 버퍼의 형태로 구현되고 하나의 기록자에 의해서만 기록될 수 있는 센서 소프트웨어 구조;
    지능형 로봇의 행동을 제어하는 하나 또는 그 이상의 리액티브 행동 컴포넌 트; 및
    상위 응용 프로세스에 의해 발생된 구동 명령 및/또는 실시간 리액티브 구동명령들을 융합하여 목적하는 행동을 선택하는 행동 융합기, 및 상기 행동 융합기로부터 전달된 제어 출력을 실제 하드웨어가 인식하는 값으로 변환하여 전달하는 구동기 컴포넌트를 포함하며, 상기 행동 융합기는 상기 구동기 컴포넌트의 동작을 확인하는 작업을 수행하는 구동 제어 소프트웨어 구조를 포함하는 것을 특징으로 하는 실시간 리액티브 소프트웨어 제어구조.
  6. 제 5항에 있어서,
    응용 프로그램이 수행되는 도중에도, 상기 리액티브 행동 컴포넌트들을 추가 및/또는 삭제할 수 있는 실시간 행동 수퍼바이저를 더 포함하는 것을 특징으로 하는 실시간 리액티브 소프트웨어 제어구조.
KR1020070010941A 2007-02-02 2007-02-02 지능형 로봇을 위한 센싱, 구동 및 실시간 행동을 포함한리액티브 층 소프트웨어의 구조 KR100877715B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070010941A KR100877715B1 (ko) 2007-02-02 2007-02-02 지능형 로봇을 위한 센싱, 구동 및 실시간 행동을 포함한리액티브 층 소프트웨어의 구조

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070010941A KR100877715B1 (ko) 2007-02-02 2007-02-02 지능형 로봇을 위한 센싱, 구동 및 실시간 행동을 포함한리액티브 층 소프트웨어의 구조

Publications (2)

Publication Number Publication Date
KR20080072335A true KR20080072335A (ko) 2008-08-06
KR100877715B1 KR100877715B1 (ko) 2009-01-09

Family

ID=39882687

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070010941A KR100877715B1 (ko) 2007-02-02 2007-02-02 지능형 로봇을 위한 센싱, 구동 및 실시간 행동을 포함한리액티브 층 소프트웨어의 구조

Country Status (1)

Country Link
KR (1) KR100877715B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332069B2 (en) 2009-12-18 2012-12-11 Electronics And Telecommunications Research Institute Fault tolerance method and apparatus for robot software component
US8689217B2 (en) 2008-10-31 2014-04-01 Electronics And Telecommunications Research Institute System and method for thread processing robot software components responsive to periodic, dedicated, and passive modes
KR20150012635A (ko) * 2013-07-25 2015-02-04 현대모비스 주식회사 Mdps 시스템의 메모리 보호 장치
US9323653B2 (en) 2010-02-04 2016-04-26 Samsung Electronics Co., Ltd. Apparatus and method for processing data

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101234204B1 (ko) * 2010-08-11 2013-02-18 한국과학기술원 로봇의 고 신뢰도 분산 제어를 위한 실시간 감시 방법
US8984518B2 (en) 2010-10-14 2015-03-17 Electronics And Telecommunications Research Institute Apparatus and method for executing components based on thread pool
KR20240011342A (ko) * 2022-07-19 2024-01-26 코가로보틱스 주식회사 로봇 제어를 위한 데이터 처리 장치 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002357040A1 (en) * 2001-11-28 2003-06-10 Evolution Robotics, Inc. Sensor and actuator abstraction and aggregation in a hardware abstraction layer for a robot
KR101213151B1 (ko) * 2005-11-10 2012-12-17 엘지전자 주식회사 분산 지능형 제어장치의 데이터 패킷 생성 방법
KR100772514B1 (ko) * 2005-12-08 2007-11-01 한국전자통신연구원 네트워크 기반 로봇 제어 장치 및 그 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8689217B2 (en) 2008-10-31 2014-04-01 Electronics And Telecommunications Research Institute System and method for thread processing robot software components responsive to periodic, dedicated, and passive modes
US8332069B2 (en) 2009-12-18 2012-12-11 Electronics And Telecommunications Research Institute Fault tolerance method and apparatus for robot software component
US9323653B2 (en) 2010-02-04 2016-04-26 Samsung Electronics Co., Ltd. Apparatus and method for processing data
KR20150012635A (ko) * 2013-07-25 2015-02-04 현대모비스 주식회사 Mdps 시스템의 메모리 보호 장치

Also Published As

Publication number Publication date
KR100877715B1 (ko) 2009-01-09

Similar Documents

Publication Publication Date Title
KR100877715B1 (ko) 지능형 로봇을 위한 센싱, 구동 및 실시간 행동을 포함한리액티브 층 소프트웨어의 구조
Wang et al. Symbiotic human-robot collaborative assembly
de Gea Fernández et al. Multimodal sensor-based whole-body control for human–robot collaboration in industrial settings
US20130054024A1 (en) Universal Payload Abstraction
Bonasso Integrating Reaction Plans and Layered Competences Through Synchronous Control.
Kim et al. Development of a real-time control architecture for a semi-autonomous underwater vehicle for intervention missions
Ridao et al. On AUV control architecture
CN109471435B (zh) 一种多异构移动机器人控制系统
KR101248802B1 (ko) 지능형 로봇 시스템에서의 로봇 소프트웨어 컴포넌트 관리 장치 및 방법
CN111830977A (zh) 一种移动机器人自主导航软件框架及导航方法
Yasuda Behavior-based autonomous cooperative control of intelligent mobile robot systems with embedded Petri nets
Sandamirskaya et al. A neural-dynamic architecture for behavioral organization of an embodied agent
KR100896705B1 (ko) 지능형 로봇의 지능적 작업 관리를 위한 컴포넌트 기반의 작업 관리 시스템
US20220234209A1 (en) Safe operation of machinery using potential occupancy envelopes
Scheutz et al. Systematic integration of cognitive and robotic architectures
KR101220428B1 (ko) 분산 실시간 제어 소프트웨어가 구비된 지능 로봇용 다중 프로세서
US20220193907A1 (en) Robot planning
Fernández et al. Using hierarchical binary Petri nets to build robust mobile robot applications: RoboGraph
Ferland et al. Coordination mechanism for integrated design of human-robot interaction scenarios
Yasuda Discrete event behavior-based distributed architecture design for autonomous intelligent control of mobile robots with embedded petri nets
US11787054B2 (en) Robot planning
Ortiz et al. A control software architecture for autonomous unmanned vehicles inspired in generic components
Fernández et al. Enhancing building security systems with autonomous robots
Popov et al. Adaptive technique for physical human–robot interaction handling using proprioceptive sensors
Helleboogh et al. Testing AGVs in dynamic warehouse environments

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

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20141215

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151202

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20161201

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20171208

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20181203

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20191203

Year of fee payment: 12