CHOU

[MSRDS] MSRDS를 이용한 시뮬레이션 고급 프로그래밍 및 시뮬레이션 로봇 개발 교육소개 본문

Tech/Microsoft Products

[MSRDS] MSRDS를 이용한 시뮬레이션 고급 프로그래밍 및 시뮬레이션 로봇 개발 교육소개

chobabo 2009. 4. 18. 08:50

1.   과정 개요

 

과정 명

MSRDS를 이용한 시뮬레이션 고급 프로그래밍 및 시뮬레이션 로봇 개발

구 분

기초공통과목

교육 목적

로보틱스 서비스 및 MSRDS 시뮬레이션 환경의 이론적 배경과 개발 과정을 습득하고, 응용과정으로서 시뮬레이션 로봇을 직접 개발해 봄으로써 로보틱스에 대한 기술력과 응용력을 배양한다.

과목 필요성

현재 대부분의 로봇 제조사들이 로보틱스 분야에서 가장 중요한 요소로 인식되고 있는 로보틱스 시뮬레이션 분야에 대한 준비와 시장 대응이 미비한 상태이며, 이에 대한 역량을 키우고, 시뮬레이션 기술을 활용한 신제품 개발을 대비할 필요가 있다.

교육 내용

1.    MSRDS의 로보틱스 서비스 개발 과정을 이해한다.

2.    MSRDS의 시뮬레이션 개발 과정을 이해한다..

3.    시뮬레이션 로봇 개발을 실습한다.

A.     시뮬레이션 다관절 로봇 개발 실습

B.     시뮬레이션 Mobile 로봇 개발 실습

4.    시뮬레이션 개발의 응용 사례를 실습한다.

A.     비행체 시뮬레이션 개발

B.     잠수함 시뮬레이션 개발

교육 대상

로봇 기업의 제품 개발자

MSRDS 시뮬레이션 개발에 관심 있는 대학생 및 일반 개발자

선 이수과목

해당 사항 없음

교육 장소의

구비조건

컴퓨터 구비된 교육실

(MSRDS가 정상적으로 실행될 수 있는 컴퓨터 환경 보유)

실습 기자재

(H/W)

(S/W) MSRDS 2008 Express Edition

교육 일정

4 (이론과 실습 병행)

주 교재

참고자료

(주 교재): 강의자료 추후 제출

책임강사

이름

김영준

소속

마이크로소프트

e-mail

 

직위

수석

핸드폰

 

사무전화

 

 

2. 일별 상세 계획

 

구분

세부 내용

강사

이론/실습

1일차

오전

MSRDS 소개

MSRDS 구성 및

김영준수석

이론

(120)

오후

MSRDS 서비스 개발 과정 소개

MSRDS 서비스 개발 실습

-        Get 패턴

-        Update 패턴

-        Replace 패턴

-        Subscribe 패턴

VPL을 통한 서비스 활용

김영준수석

이론

(200)

2일차

오전

MSRDS UI 서비스 개발 과정 소개

MSRDS UI 서비스 개발 과정 실습

김영준수석

이론

(120)

오후

MSRDS 시뮬레이션 프로그래밍 소개

MSRDS 시뮬레이션 프로그래밍 기초 실습

-        엔터티 생성

-        엔터티 제어

Joint 프로그래밍 소개

Joint 프로그래밍 실습

다관절 로봇 설계

김영준수석

실습

(200)

3일차

오전

시뮬레이션 다관절 로봇 개발 실습

-        Angular 유형의 관절 로봇 구현

-        Linear 유형의 관절 로봇 구현

시뮬레이션 다관절 제어 서비스 개발

김영준수석

이론

(120)

오후

시뮬레이션 Mobile 로봇 개발 소개

시뮬레이션 Mobile 로봇 설계

시뮬레이션 Mobile 로봇 개발

-        MotorBase

-        Wheel 제어

-        센서 파트

-        카메라 파트

김영준수석

실습

(200)

4일차

오전

시뮬레이션 로봇 개발

-        3D 모델링 연동

-        재질 제어

-        Mesh 제어

김영준수석

이론

(120)

오후

시뮬레이션 로봇의 제어 개발 실습

-        Drive 서비스

-        센서 서비스

시뮬레이션 개발 응용

-        비행체 시뮬레이션 개발

-        잠수함 시뮬레이션 개발

김영준수석

실습

(200)

 

 

3.   강의 내용

 

MSRDS 개요

 

초기 로봇개발은 머니퓰레이터(Manipulator)와 같은 공학적인 하드웨어 구현 요소와 기구학(Kinematics)과 같은 소프트웨어 구현 요소로 구성되었으나, 점차 컴퓨터 기술과 알고리즘의 발달에 힘입어, 다양한 지능형 서비스 요소들이 기존 로봇 구성 요소에 부가되어 가고 있고 또한, 인간 친화형 로봇을 개발하는데 있어서 이러한 지능형 요소들의 역할이 점차 강조되어 가고 있는 상황이다.

 

그러나 이러한 로봇 개발작업들은 PC가 활성화되기 전 초창기에 겪었던 과정과 유사하게, 공통의 표준과 플랫폼이 없는 상황에 직면에 있으며, 이로 인해, 로봇 개발자들은 특정 하드웨어에 의존하는 개발작업과 공유가 되지 않는 결과물로 인해 모든 작업들을 매번 반복하거나 많은 시간이 소요되는 비생산적인 환경에 처에 있는 상황이다.

 

MSRDS는 이러한 현재의 로봇 개발 과정에서 겪고 있는 이식성 문제와 재사용성 문제를 해결하고, 로봇 종사자들에게 보다 더 쉬운 접근성을 제공하기 위해 만들어진 개발 툴 제품으로서, 향후 지능화된 로봇 시대를 이끌어 낼 수 있는 중요한 개발 환경으로서 주목을 받고 있다.

 

MSRDS의 서비스 프로그래밍

 

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

 

l        서비스 기반의 런타임 아키텍처

MSRDS에서 개발되는 기능들은 모두 서비스화 된 형태로 노출되며, 이러한 서비스들은 모두 Contract 이라 불리는 각각의 고유한 식별 이름을 통해 접근되고 호출된다.

이러한 서비스들은 기존의 컴포넌트 방식이 제공하는 것과 유사하게 해당 내부 코드에 대한 자세한 구현 방식에 관계없이, 오직 해당 서비스의 인터페이스와 해당 서비스가 제공하는 기능에만 초점을 맞추게 함으로써, 각 개발자 및 기업 등 상호 연계가 필요한 대상 들간에 개발된 결과물에 대해 재사용이 가능하도록 한다.

 

l        REST 스타일의 분산 어플리케이션 패턴

기존 컴퓨터 프로그래밍과 마찬가지로 로봇 개발 결과물을 실행하는데 있어서 하나의 하드웨어 에서만 실행되는 것이 아니고 여러 대의 컴퓨터 또는 여러 대의 하드웨어에서 실행되는 등 다양한 분산 실행 환경이 요구되고 있다. 또한 이러한 분산 처리 환경은 분산 실행을 위한 구현 메커니즘뿐 만이 아니라 동시에 여러 개의 실행 상태를 제어하거나 모니터링 해야 하는 관리적인 요구사항 도 포함하고 있다.

 

재사용성과 이식성을 기반으로 하는 이러한 분산 처리 구조를 구현해 내기 위해서, 일반적인 프로그래밍 환경에서는 SOAP, RPC 또는 HTTP 등의 방식이 적용되고 있으며, 이러한 각각의 방식들은 나름대로의 장점을 가지고 있다. 그러나 이러한 방식들은 대량으로 발생되는 데이터들을 신속히 처리해야 하면서도 구조화된 데이터들을 처리해야 하 등의 요구사항을 한꺼번에 구현해 내기에는 많은 제약 사항을 앉고 있다.

 

최근에는 이러한 방식들의 장점들을 취합하여, 단순하면서도 유연성이 뛰어나고, 각 인터페이스 대상 간에 구조화된 데이터 처리와 이벤트 통지(Event Notification)가 가능한 REST 아키텍처 패턴이 각광을 받고 있으며, 많은 분야에 적용이 되고 있다.

 

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

 

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

 

DSS와 함께 MSRS의 또 다른 중요한 특징으로는 CCR(Concurrency and Coordination Runtime)로 불리는 동시처리 및 제어 기술이 있다.

 

l        동시처리 및 제어 기술 (CCR)

동시에 대량으로 발생하는 데이터를 처리하는 데 있어서 일반적인 프로그래밍 패턴에서는 멀티스레드 방식이 많이 사용된다. 그러나 이러한 멀티스레딩 방식을 적용한다 하더라도 동시성 문제가 완전히 해결 되는 것은 아니며, 이러한 동시성 문제를 반영하기 위해서는 상당히 복잡한 로직과 스레드 간의 통신 제어 등의 고급 코딩 기술이 요구된다.

 

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

 

 

MSRDS 시뮬레이션 프로그래밍

 

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

 

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

 

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

 

 

4.   강사 소개

 

1)    책임 강사님: 김영준 수석

n   약력

u      ~ 현재: 마이크로소프트 로보틱스팀

u      2002 ~ 2007 : 마이크로소프트 컨설팅사업부

u      2000 ~ 2002 : ㈜옥션 개발팀장

u      1995 ~ 2000 : ㈜비트컴퓨터 기술연구소