본문 바로가기

Hacked Brain/embeddedland.net

Microsoft Robotics Studio

Microsoft Robotics Studio

목차

소개

마이크로소프트 Robotics Studio(MSRS)는 로봇분야에 관심이 있는 개발자, 학생 또는 일반인들이 프로그래밍에 대한 기본적인 지식만 가지고 있으면, 다양한 로봇 하드웨어 상에서 필요로 하는 다양한 로봇 애플리케이션을 쉽게 개발할 수 있도록 지원하는 개발 툴 및 환경입니다.

MSRS는 개발 전문가뿐 만이 아니라 프로그래밍에 대한 전문 지식이 부족한 초보자들이 로봇 개발에 쉽게 접근할 수 있도록 비주얼한 개발 환경을 지원합니다.

MSRS에서 제공하는 VPL(Visual Programming Language)은 C언어나 BASIC과 같은 특별한 개발 언어를 필요치 않으며, UI 상에서 마우스를 통해 필요한 서비스 로직을 구현할 수 있도록 합니다. 이러한 VPL은 전문 개발자뿐 만이 아니라 학생 등 초보자들도 쉽게 로봇 개발에 참여할 수 있도록 함으로써 로봇의 활용성을 다양화 하고 사용자에게 로봇 개발과 관련된 전문 지식을 쉽게 전달할 수 있도록 합니다.

VPL.jpg




















3D 물리엔진 기반의 로봇 시뮬레이션 환경을 제공합니다.

로봇을 개발하는데 있어서 심각한 문제는 로봇 자체가 고가의 하드웨어이고 대부분 한 대 밖에 없다는 사실입니다. 이러한 문제로 인하여, 개발된 프로그램들에 대해 사전에 충분한 테스트를 수행할 수 없고 많은 기간과 비용이 소요되고 있습니다. MSRS는 이러한 문제를 해결하고 개발자들에게 사전에 충분히 테스트할 수 있고 재현할 수 있는 환경을 제공하기 위해 시뮬레이션 환경을 제공합니다.

MSRS는 Ageia사의 PhysX 엔진을 물리 시뮬레이션을 위해 기본적으로 제공하고 Microsoft XNA 프레임워크를 렌더링 엔진으로 제공함으로써 로봇 개발자가 하드웨어 로봇이 없이도 실제 하드웨어 로봇과 유사하게 작동하는 로봇을 시뮬레이터로 구현할 수 있으며, 개발된 프로그래밍을 시뮬레이션 환경하에서 손쉽게 테스트해 볼 수 있습니다.

이러한 시뮬레이션 환경은 비용의 절감과 함께, 시뮬레이션 로봇을 여러 개발자가 동시에 활용할 수 있게 함으로써, 개발 기간을 단축시키고 코드의 생산성과 품질을 향상시켜 줍니다.

Simulation1.jpg 









Simulation2.jpg






















윈도우 또는 웹 기반의 인터페이스를 통해 로봇과 상호 연동됩니다.





MSRS를 통해 개발된 애플리케이션은 웹브라우저를 통해 원격으로 모니터링되고 제어되며, HTML 폼 및 자바 스크립트와 같은 웹 기반 기술을 통해 명령어를 전송합니다. 또한 이러한 웹 환경에서 원격 로봇의 카메라를 제어하거나 영상을 확인할 수가 있습니다.

REST 스타일의 서비스 지향 아키텍처가 지원됩니다.

MSRS는 이식성과 재사용성을 제공하기 위해 서비스 기반의 런타임 아키텍처를 채택하였으며, 이러한 서비스 기반의 아키텍처 하에서 최적의 성능과 접근성을 발휘하기 위해 REST 스타일의 분산 애플리케이션 패턴을 적용하였습니다.

비동기 프로그램을 간단하게 구현할 수 있습니다.

MSRS는 로봇을 위한 프로그래밍을 진행하는데 있어서, 동시성의 문제를 해결하고 단순한 코딩 작업으로서 이러한 기능을 구현할 수 있도록 CCR 이라는 기술을 제공합니다. CCR 기술을 활용하여, 로봇 개발자들은 빠른 시간 내에 필요한 기능들을 신속히 개발할 수 있으며, 코드의 안정성과 신뢰성을 높이고, 재사용성을 극대화 시킬 수 있습니다.

실시간으로 로봇 센서의 값을 모니터링하고 모터와 엑추에이터에 값을 전달합니다.

서비스 기반의 런타임 아키텍처와 REST 스타일의 분산 애플리케이션 패턴은 MSRS 내에서 분산화된 소프트웨어 서비스(DSS: Decentralized Software Services)로 불리며, MSRS 내에서 개발되는 서비스 코드들은 이러한 DSS를 기반으로 개발됩니다.

MSRS는 REST 패턴을 서비스 기반 아키텍처의 구현에 반영함으로써, 단순성과 상호호환성을 유지한 상태에서 동시에 대량으로 발생하는 메시지들을 신속히 처리하고, 구조화된 메시지 처리와 이벤트 통지 등이 구현되도록 함으로써 기능적인 면에 있어서도 최적의 유연성이 제공되도록 합니다.

Runtime2_2.png
































컴포넌트화된 모델을 적용함으로써 재사용 가능한 모듈화된 서비스 형태로 구성됩니다.

계층적인 형태의 컴포넌트화된 형태로 서비스화가 이루어 지며, 이러한 구현을 통해 개발된 결과물의 재사용성을 극대화 시킵니다. 예를 들어, 센서의 값을 읽는 서비스가 개발하고, 다시 이러한 서비스를 활용하는 상위의 주행 서비스를 개발함으로써 계층적인 서비스화를 구축해 나가고 모듈별 서비스의 재활용성을 극대화시킵니다.

확장성과 이식성을 제공합니다.

MSRS를 통해 개발된 애플리케이션은 특정 하드웨어 플랫폼 로봇에만 활용되는 것이 아니라 MSRS를 지원하는 다양한 형태의 로봇에 활용될 수 있으며, 또한 로봇 관점에 있어서도 특정한 애플리케이션 만 구동되는 것이 아니라 MSRS를 지원하는 다양한 애플리케이션을 적용시킬 수 있습니다.

원격제어 로봇과 OS가 탑재된 자율 로봇 등에 모두 적용 가능합니다.

원격으로 제어되는 로봇에서부터 윈도우 CE 및 XP, Vista 등이 탑재된 자율 로봇에 까지 다양하게 적용될 수 있습니다.

다양한 개발 언어를 지원합니다.

MSRS는 기본적으로 로봇 프로그래밍을 위한 제품으로서, 프로그래밍에 대한 전문 지식이 부족한 초급 개발자서부터 전문 개발자까지 모두 활용할 수 있는 다양한 개발 언어와 환경을 제공합니다.

MSRS에서 제공하는 개발 언어는 초급자를 대상으로 하는 비주얼 프로그래밍 언어(VPL: Visual Programming Language)와 전문가를 대상으로 하는 C#, VB.Net, Python 등이 있습니다.

Microsoft Robotics Studio 기술 문서

Robotics Studio 기술문서는 아래와 같이 5개의 대항목으로 구성되어 있으며, 각각 PDF 파일 형태로 다운로드 받을 수 있습니다.

Microsoft Robotics Studio 기술 문서 다운로드