URBI는 프랑스 Gostai사에서 개발한 로봇개발 SW플랫폼입니다. 아래의 개요 소개문은 2007년 Gostai사의 홍보자료를 근거로 번역한 자료이며, 현재는 다소 변화된 부분도 있으나 기본개념은 동일할 겁니다.  최근 가장 중요한 변화는 GPL 라이센스의 도입과 엔진 버전이 2.0으로 변화되었다는것인데요.   상당히 혁신적인 기술임에도 널리 알려지지 못한채 사장되거나 시기를 놓쳐버리는 제품들이 많은 상황에서 적절한 대응이 아니였나 생각됩니다.  여러분도 직접 개발사 홈페이지에서 SDK를 받아서 테스트를 해보 실 수 있습니다. 기존 로봇 개발환경과 비교해서 너무도 손쉬운 제어  방법을 제공하고 있으므로, 실무 적용 여부를 떠나서 새로운 아이디어의 발견을 위해서라도 한번 검토해볼 만한 기술이라고 생각됩니다.

[사진1. URBI:: Gostai Studio IDE화면 ]


URBI는 로봇과 인공지능 어플리케이션 개발을 위한 크로스 플랫폼형 소프트웨어 플랫폼이며 병렬처리 및 이벤트처리를 지원하는 URBI 스크립트 언어(C++ 문법과 유사함)를 기반으로 하고 있다. 또한 UObject라 불리우는 분산형 컴포넌트 아키텍쳐 기술을 제공한다. 가령 C++객체를 URBI언어 내에 쉽게 이입하여 사용할 수 있으며, 이를 원격 실행 형 컴포넌트로도 운영할 수 있다.

현재 로봇용 소프트웨어들은 호환성이 없어서 운영체제나 개발환경에 따라 서로 다른 제어 소프트웨어가 필요하다. 여러분은 URBI를 통해 이 문제를 해결할 수 있다.


    * URBI는 운영체제와 개발환경에 무관하게 호환성을 가지는 로봇 제어 인터페이스를 제공한다.
    * URBI는 Linux, Windows,  Mac OS, custom real-time OS 기반의 로봇 모두에서 작동되며 C++ , Java, Matlab, C#, Python, ... 등의 언어들과도 라이브러리를 통한 인터페이스를 제공한다.
    * URBI 호환형으 로 한번 제작된 소프트웨어 모듈은 코드 수정이나 컴파일 없이 플랫폼에 상관없이 재 사용 할 수 있다. 가령 C++로 개발된 음성인식 기능의 컴포넌트를 UObject로 변환하여 제작해두면 운영체제에 상관없이 URBI 호환 로봇에서 재 이용 가능하다.


“URBI는 로봇제어에 특화된 언어이다”

기존 언어들은 기본적인 기능의 구현을 위해 개발시간의 대부분을 소비하게 하며 특히 인공지능의 구현 시 너무 복잡해진다. 이에 로보틱스 분야에서는 좀더 상위레벨의 접근방법이 요구되고 있다. 이 문제를 해결하기 위해 URBI는 언어 차원에서 병렬처리 및 이벤트구동을 지원하는 등 로봇 제어에 특화된 기능들을 포함하고 있다. URBI는 복잡한 쓰레드 및 이벤트 프로그래밍을 하지 않고도 병렬처리 및 이벤트 기반 프로그래밍이 가능하므로 배우거나 사용하기 쉬우며, 또한 몇 줄의 코드로 수십 줄의 코드를 대신하게 되므로 고급 개발자들은 좀더 상위 레벨의 추상화를 통한 고급 프로그래밍에 전념할 수 있게 된다.

 
현재, 대학 및 연구소와 산업현장 또는 취미용으로 이용되고 있다. URBI는 이미 휴머노이드 로봇이나 Marilou, Webot과 같은 시뮬레이터 등, 십여 종이 넘는 로봇용으로 구현되어 있다. URBI를 통하여 인공지능 전문 개발 업체들이 제작한 여러 종류의 컴포넌트를 이용할 수 있다. 일부 URBI Engine들(Aibo, Lego NXT, ...)은 개인적인 용도에 한해 무료로 이용할 수 있으며, 또한 GPL 라이센스 하에 공개된 URBI remote SDK를 이용하여 직접 여러분의 시스템에 적용해 볼 수 있다.

 
URBI 응용분야

- 인공지능 및 인공생명 어플리케이션
- 산업용 및 서비스 로봇 연구 개발
- 로봇용 디바이스 연구 개발
- 교육, 엔터테인먼트, 게임 프로그래밍
- 통합 제어 인터페이스


URBI 제품

UObject  SDK


URBI 호환형 UObject를 제작하는데 이용하며, C++로 개발된 얼굴인식 같은 인공지능 모듈이나 제어 어플리케이션들을 손쉽게 UObject로 전환하여, 각종 URBI호환 로봇들을 위해 사용할 수 있다.

engine SDK


특정 로봇 및 제어시스템들을 위한 URBI엔진을 제작하는데 이용하며, 산업용 및 서비스 로봇, 각종 제어 시스템 등을 URBI 호환 환경으로 만들기 위해 특정 로봇용 URBI엔진을 제작할 수 있도록 지원한다.

URBI engine


이미 특정 로봇용으로 제작된 URBI엔진들. URBI engine for Marilou Robotics Simulator 등.

 

URBI Development Studio

Behavior Editor, Motion Editor, Universal Remote Controller 포함. URBI 호환 형 로봇의 행동 패턴을 만들고, 인공지능 모듈과 융합하여 상태기계 기반의 제어 프로그래밍을 할 수 있도록 지원하며 URBI의 병렬처리 및 이벤트 처리 프로그래밍을 그래픽 인터페이스를 통해서 직관적으로 할 수 있는 방법을 제공한다. 또한 로봇의 원격 제어 프로그램을 위젯들의 조합 방법을 통해 손쉽게 만들어 주는 기능도 지원한다.
 

Plug & Plug형 컴포넌트

얼굴인식, 음성인식, 음성 합성 및 인식 등의 인공지능 모듈 및 각종 어플리케이션 들이 있으며, 각분야에서 전문적인 솔류션을 보유한 협력 업체에서 제작한 URBI 호환 UObjects 모듈 들이다.


[동영상 1. URBI 소개]



[동영상 2. URBI Studio]


관련사이트1.

http://gostai.com

ARDrone  + URBI응용예:

http://kr.engadget.com/2010/12/10/ar-drone-gets-urbi-and-tracks-red-ball/





+ Recent posts