RT미들웨어


RT미들웨어 (RTM)

RT미들웨어(RT-Middleware: RTM)란, 로봇 기능 요소(RT 기능 요소)의 소프트웨어 모듈을 복수 조합한 로봇 시스템(RT시스템)을 구성하기 위한 소프트웨어 플랫폼 일반을 가리키는 이름입니다. OpenRTM-aist는 RT미들웨어 구현의 하나인, Open-source and open architecture Robot Technology Middleware implemented by AIST(산업기술 종합연구소)의 약자입니다.

RT시스템을 구성하는 RT기능요소는 어떤 기능을 제공하는 로봇 구성요소로서 예를 들어 서브 모터나 센서, 카메라 등을 디바이스 단위로 움직인다던가, 혹은 이런 디바이스의 조합에 따라 실현된 이동로봇, 암 등도 RT기능요소 라고 부를 수 있습니다.

또한, 하드웨어 연결에 대한 것 뿐만 아니라 제어 알고리즘, 화상처리 알고리즘등의 소프트웨어만으로 구성된 것들도 RT기능요소라고 생각할 수 있습니다. 아래 그림에 표현한 것처럼 모듈화 된 RT기능요소를 계층적으로 조합하는 것으로 로봇 시스템 구축을 용이하게 하기위한 플랫폼이 RT미들웨어 입니다.

rtsystem_integration_ko.png
RT미들웨어에 의한 RT시스템 인테그레이션

RT컴포넌트 (RTC)

RT미들웨어에서는 RT기능요소를 소프트웨어 모듈화한 것을 RT컴포넌트 (RT-Component: RTC)라고 부릅니다. RT컴포넌트에는 다른 RT컴포넌트와 데이터를 통신하거나 주고 받기 위한 포트라고 불리는 인터페이스가 있습니다.

아래 그림은 RTC와 RTM의 관계를 표시하고 있습니다. 위에서 설명한 것처럼 RTC는 어떤 기능을 모듈화한 소프트웨어의 단편으로 그 실체는 RTM상에서 실행되는 공유 오브젝트(shared object), DLL(dynamic link library)입니다. RTC개발자는 자신이 가지고 있는 제어 알고리즘의 코드나 기존 라이브러리 코드등 (코어로직이라고 부름)을 RTCBuilder등의 툴에 의해서 자동생성된 RTC의 원형 코드에 넣어 컴파일(스크립트 언어에서는 불필요) 하는것으로 RTC를 작성합니다.

rtm_and_rtc_ko.png
RTC(RT컴포넌트)와 RTM(RT미들웨어)

모듈의 분할과 통합

RT시스템은 복수의 컴포넌트의 포트를 연결시켜서 각각의 RT컴포넌트 기능의 집합체로서 구축됩니다. 대화・인식 컴포넌트를 예로 생각해 봅시다. 대화・인식 컴포넌트는 유저의 목소리나 표정을 인식・관측하여 음성이나 몸짓・손짓등으로 유저와 대화하는 기능을 가지는 컴포넌트로 이하의 서브 컴포넌트로부터 구성되어 있습니다.

  • 카메라 컴포넌트
  • 스테레오 비젼 컴포넌트
  • 안면 인식 컴포넌트
  • 마이크 컴포넌트
  • 음성인식 컴포넌트
  • 대화 컴포넌트
  • 머리・팔 컴포넌트
  • 음성합성 컴포넌트
    rtcbased_hri_system_ko.png
    RTC로 구성된 대화 인식 시스템의 예

위의 그림처럼 분할 컴포넌트는 각각 포트로 불리는 다른 컴포넌트와 통신하는 인터페이스를 가져, 데이터나 커맨드의 통신을 실행하여 전체적으로 하나의 기능을 실현합니다. 모듈화하는 것으로 모듈단위에서의 병렬개발, 재이용, 변환・갱신, 분산 등이 가능하기 때문에 복잡정도의 경감, 개발비율의 향상이나 시스템의 유연성・확장성・안정성의 향상이 기대 됩니다.

개발의 경위

RT-Middleware는 독립법인 신 에너지 산업기술총합개발기구(NEDO)의 21세기 로봇 챌린지 프로그램(2002년도 - 2004년도)의 프로젝트의 일환으로 그 컨셉이 제창되어 독립법인 산업기술 종합연구소(이하 산소켄), 松下電工 (현 파나소닉 주식회사), 일본 로봇 공업회에 의해서 연구・개발・표준화가 진행되었습니다.

프로젝트의 성과로서 RT미들웨어의 참조 구현으로 OpenRTM-aist-0.2 및 인터페이스 사양이 공개되었습니다. 그 이후 국제표준화 단체 OMG(Object Manegement Group: http://www.omg.org)에 의해 RTC인터페이스 사양의 표준화가 진행되어, 2008년 4월에 OMG공식 표준사양으로 지정 되었습니다. 이 표준에 준거한 RT미들웨어 구현의 하나가 2010년 1월에 공개된 OpenRTM-aist-1.0입니다.

RTC OMG표준

OpenRTM-aist의 큰 특징으로써 컴포넌트 모델과 그 인터페이스가 OMG 국제 표준화 단체에서 표준화 되어있는 것을 들 수 있습니다.

OMG(Object Management Group) 는 1989년에 설립된 소프트웨어 표준화 단체이고 분산 오프젝트 미들웨어 : CORBA (Common Object Request Broker Architecture), 소프트 웨어 모델링 언어 UML(Unified Modeling Language)를 시작으로 다양한 분야의 소프트웨어 표준을 책정・관리하고 있는 조직으로 알려져 있습니다.

RTC의 인터페이스 사양도 CORBA와 같이 OMG에 의해 산소켄과 미국 미들웨어 벤더 RTI (Real Time Innovations)에 의해 표준화 되어, RTC(Robotic Technology Component) Specification ( http://www.omg.org/spec/RTC/1.0/)로써 2008년 4월에 공개 릴리스 되었습니다.

표준화의 메리트로서 표준을 기본으로 한 많은 벤더, 개발자들이 자유롭게 미들웨어를 구현하는 것이 가능하다는 점을 들 수 있습니다. 현재 OMG RTC사양에 준거 혹은 일부 준거하여 미들웨어로써 아래 표에 표시한 7종류(OpenRTM-aist의 3종류의 언어를 포함) 가 존재합니다.

OMG RTC준거 미들웨어 일람

명칭 벤더 명 개요
OpenRTM-aist 산소켄 C++, Python, Java の3언어 대응
OpenRTM.NET (주)세크 .NET 에 따른 구현, OpenRTM-aist과 호환성 있음
OPRoS Project 한국 ETRI 독립 미들웨어상의 구현
PALRO(파르로) 후지 소프트 주식회사 소형인형 로봇PARLO(파르로)의 제어 소프트웨어가 C++언어 레벨로 호환
GostaiRTC GOSTAI/Thales OMG RTC Local PSM에 준거


이 가운데 통신을 개입시켜 호환성이 있는 것은 OpenRTM-aist와 OpenRTM.NET뿐입니다만, 다른 것과의 내부 모델이 동일하기 때문에 브릿지 등을 제휴 시켰을 때에도 전체적으로의 정합성에 모순이 생기는 것은 적게 됩니다. 또, 복수의 조직에 의한 다양한 실장이 존재하는 것으로, 용도에 따라 적절한 언어 나 라이센스를 선택하는 것도 가능하고, 미들웨어 그 자체의 영속성도 높아집니다.

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK