로봇 개발 및 교육용 시뮬레이터 Marilou와 URBI(로봇통합제어플랫폼)의 교육자료( 파워포인트 ppt문서)를 아래에 첨부하였습니다. 필요하신 분은 요청없이 바로 다운로드하셔서 참고하실 수 있습니다. 국내의 일부 연구소와 기업들을 대상으로 제품 교육시 사용했던 자료이며, 기본 개념을 파악하시거나 소프트웨어 사용 테스트를 하실 경우 도움이 되실거라 생각됩니다.
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 모듈 들이다.
프랑스 anykode사에서 개발된 로봇 시뮬레이터입니다. 몇가지 로봇시뮬레이터들을 보신분 들이 많을겁니다. 그중에서 유일하게 돋보이는 기능은 별도의 모델링툴없이 곧바로 로봇장치를 모델링 할 수 있다는 점입니다.
아래의 강아지 로봇도 별도의 모델링 전용SW없이 Marilou 내에서 제작된 로봇의 예 입니다. Sony사의 Aibo로봇과 동일한 관절 형태를 갖고 있으며, 좀더 사실적인 외형을 원할경우엔 외부모델링된 Data를 불러와서 연결시킬 수 도 있습니다. 제작사에서 다운로드하여 아래와같은 관절로봇을 만들어 보실 수 있습니다.
Marilou Robotics Studio는 이동형, 휴머노이드형, 관절형, 협력형
로봇들을 직접 모델링하고 현실의 물리법칙이 적용되는 상황에서 시뮬레이션 할 수 있는 환경을 제공합니다.
[동영상1. 강아지로봇 구현 예제]
[]Marilou Robotics Studio의 주요특징
- 별도의 3D모델링 프로그램 없이도 Marilou Robotics Studio 자체적으로
로봇 형상 및 관절 축의 정의로 어떠한 형상의 로봇도 제작이 가능합니다.
- MODA인터페이스
제공: 로봇제어용 네트워크 프로그래밍 소스 자동생성 마법사 기능
- VCP(Virtual Serial Port)가상시리얼 포트 지원
- URBI(로봇제어용
유니버셜 인터페이스) 지원
Marilou용 URBI Engine을
추가하면, URBI호환 로봇간의 완전한 호환성을 바탕으로 한 제어프로그래밍 환경을 이용할 수 있습니다.
.URBI(Universal Real-time Behavior Interface): 플랫폼과
무관하게 통합(Universal) 로봇제어 인터페이스 환경입니다. 운영체제 및 개발환경과 무관하게 URBI호환 엔진을 장착한 로봇들간의 완전한 호환성을 제공하므로, 로봇제어프로그래밍 개발환경이 통합됩니다. 인공지능(AI)모듈을 URBI용
UObject로 제작하면 URBI호환 로봇간의 통합 이용이 가능합니다.
.URBI Script
로봇에 특화된 병렬처리 및 이벤트처리 같은 기능의 구현을 위해, 전용
스크립트 언어입니다. URBI 스크립트언어는
로봇에 내장된 URBI Engine에 의해 해석되어 필요한 제어명령을 수행하게 됩니다.
[]Marilou Robotics Studio의 주요특징
- 별도의 3D모델링 프로그램 없이도 Marilou Robotics Studio 자체적으로
로봇 형상 및 관절 축의 정의로 어떠한 형상의 로봇도 제작이 가능합니다.
- Microsoft계열 프로그래밍 환경과 GNU Gcc 프로그래밍 환경 모두 지원하며 다양한 프로그랭언어(C/C++, VB#, J#, C# and C++ CLI)를
사용할수있으며,
Matlab, Java, Automgen and RT-Maps 과도 호환됩니다.
- MS계열도 Visual Studio 2005 Express버젼 이용시 무료개발환경 이용가능
- MODA인터페이스제공: Marilou 시뮬레이터용 로봇제어 인터페이스. 로봇 제어프로그램은 TCP/IP 접속을 통해 로봇에 연결되며, 이를 위한 소스코드를 기본으로
자동생성해주므로, 별도의 네트워크프로그래밍 없이 네트워크 협력 형 로봇들을 시뮬레이션 할 수 있습니다.
- VCP(Virtual Serial Port)가상시리얼 포트 지원: 시리얼통신에 의한 로봇제어 프로그래밍
방식을 사용 중일 경우 제어프로그램의 변경 없이 가상시리얼포트를 통한 로봇제어가 가능합니다. 이를 통해
케이블 시리얼은 물론이고 블루투스나 Zigbee같은 무선 시리얼 통신을 이용할 경우라도 가상로봇과 실제로봇의
완벽한 호환성을 제공하므로 응용성이 좋습니다.
- URBI(Universal Real-time Behavior Interface): 로봇제어용 유니버셜 인터페이스 엔진지원
Marilou용 URBI engine을 추가하면, URBI호환 로봇간의 완전한 호환성을 바탕으로 한 제어프로그래밍 환경을 이용할 수 있습니다.
.URBI란? 플랫폼과 무관한 통합된 로봇제어 인터페이스 환경입니다. 운영체제 및 개발환경과 무관하게 URBI호환 엔진을 장착한 로봇들간의 완전한 호환성을 제공하므로, 로봇제어프로그래밍 응용환경이 통합됩니다. 인공지능모듈을 URBI용 UObject로 제작하면
URBI호환 로봇간의 통합 이용이 가능해지므로, 다종의 로봇들간에도 제어프로그램 환경과
인공지능 모듈의 호환된 융합 이용이 가능합니다.
또한 플랫폼 호환성과 로봇에 특화된 병렬처리 및 이벤트처리 기능의 구현을 위해, 전용 스크립트 언어인 URBI Script를 이용합니다. URBI 스크립트언어는 로봇에 내장된 URBI engine에
의해 해석되어 필요한 제어명령을 수행하게 됩니다.