1 / 47

Microsoft Robotics Developer Studio 고급 프로그래밍 과정 [Part 1] 소개

Microsoft Robotics Developer Studio 고급 프로그래밍 과정 [Part 1] 소개. 2008 로보틱스 그룹 마이크로소프트. 김 영 준 수석 yjoonkim@microsoft.com. 목차. MSRS 탄생 배경 MSRS 개요 MSRS 의 아키텍처 개념 MSRS 의 특징 MSRS 의 구성요소 지능형 로봇에서의 MSRS 활용 방안 MSRS 시뮬레이션의 활용 분야. MSRS 탄생 배경 #1. 로봇 산업이 겪고 있는 문제점 특정 하드웨어에 의존하는 개발작업

shani
Download Presentation

Microsoft Robotics Developer Studio 고급 프로그래밍 과정 [Part 1] 소개

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Microsoft Robotics Developer Studio고급 프로그래밍 과정[Part 1] 소개 2008 로보틱스 그룹 마이크로소프트 김영 준 수석 yjoonkim@microsoft.com

  2. 목차 • MSRS 탄생 배경 • MSRS 개요 • MSRS의 아키텍처 개념 • MSRS의 특징 • MSRS의 구성요소 • 지능형 로봇에서의 MSRS 활용 방안 • MSRS 시뮬레이션의 활용 분야

  3. MSRS 탄생 배경 #1 • 로봇 산업이 겪고 있는 문제점 • 특정 하드웨어에 의존하는 개발작업 • 공유가 되지 않는 결과물로 인해 모든 작업들을 매번 반복함 • 많은 시간이 소요되는 비생산적인 환경에 처에 있음 • 로봇 산업과 PC 산업의 시작 단계에서의 유사성 • 로봇 산업은 초창기 PC 산업이 겪었던 문제를 동일하게 겪고 있음 • 공통의 표준과 플랫폼이 없는 상황에 직면 • 다양한 하드웨어에 대한 이식성을 제공하기 위해 MS의 BASIC 툴이 개발되어 개인용 컴퓨터의 시대를 이끌었음 • MSRS는 PC 환경에서의 BASIC에 제공했던 역할과 같이 다양한 로봇환경하에서의 이식성과 재사용성을 제공하는 것을 목표로 함 • MSRS는 향후 지능화된 로봇 시대를 이끌어 낼 수 있는 개발 환경이 될 것으로 예상하고 있음

  4. MSRS 탄생 배경 #2 • 초기 로봇 개발의 구성 요소 • 머니퓰레이터(Manipulator)와 같은 공학적인 하드웨어 구현 요소 • 기구학(Kinematics)과 같은 소프트웨어 구현 요소 • 로봇 개발의 진행 과정 • 컴퓨터 기술과 알고리즘의 발달에 영향을 받음 • 다양한 지능형 서비스 요소들이 기존 로봇 구성 요소에 부가되어 가고 있음 • 인간 친화형 로봇을 개발하는데 있어서 지능형 요소들의 역할이 점차 강조되어 가고 있음 • 기존 로봇 구성요소와 지능형 서비스 요소를 효율적으로 접목시킬 수 있는 개발 프레임워크가 필요함 • 상호 연동 기술 및 메시지의 공통화 기반 • MSRS는 공통의 메시지 포멧 규약과 서비스 기반의 연동 기술을 제공함

  5. MSRS 탄생 배경 #3 • 로봇 개발 업체가 겪는 어려움 • 열악한 시뮬레이션 환경 • 사용자를 위한 로직 개발툴 자체 개발 • 개발자 수급의 어려움 • 개발자 커뮤니티의 활성화 부재 • 소프트웨어 및 하드웨어 전 과정을 제조사가 모두 구현함 • 개발생산성을 높이고 경쟁력을 높일 수 있는 방안 • 물리상황을 재현해 낼 수 있는 시뮬레이션 툴의 제공 필요 • 로봇 구매자들이 손쉽게 활용할 수 있는 개발툴 제공 • 두꺼운 개발자 층의 확보 • 사용설명서, Case Study, FAQ, 포럼, 블로그 등의 커뮤니티 활성화 • 선택과 집중을 통해 경쟁력 있는 분야에 집중 투자함

  6. MSRS 개요 • MSRS는 기존컴퓨터 OS상에서 실행되는 통합개발 환경임 • 기존 Visual Studio와 통합된 형태의 개발 환경 및 툴 제공 • 시뮬레이션 툴 제공 • H/W 로봇이 없이도 로봇 프로그래밍 가능 • Visual Programming Language(VPL)와 같은 UI 기반의 개발 환경 제공 • 공통의 메시지 스키마 제공 • 동시성 처리를 위한 메커니즘 제공 • MSRS의 지원 환경 • 블로그와 FAQ, 튜토리얼제공 • 다양한 샘플 및 튜토리얼 제공 “MSRS는 로봇분야에 관심이 있는 전문 종사자 또는 일반인들이 프로그래밍에 대한 기본적인 지식만 가지고 있으면, 다양한 로봇 하드웨어 상에서 필요로 하는 다양한 로봇 어플리케이션을 쉽게 개발할 수 있도록 지원하는 개발 툴 및 환경입니다.”

  7. MSRDS 사용자 Target • Academic Area • Robotics, Physics, Electronics, Mechanics, C/S, Mathematics (University / High school) • Education Area • Kindergarten, Elementary school, middle school • S/W Developers • S/W component, H/W • Contents & Entertainment • Silverlight, Flash, Xna Game • Portal service provider • Consumer Service Robot • Health Care & Older People • Aerospace & Military • HPC

  8. MSRS에서의 서비스 Application Services in MSRS Contents Application Game Application Communication Application Media Application Security Application Healthcare Application Sensible Recognition Windows Messaging Speech Recognition Face Detection DB Connection Intelligent Conversation TTS service GPS Service Indoor GPS Service Face Recognition Navigation Service Gesture Detection Sensor Service Motor Service Encoder Service Drive Service Web Cam Service Articulated Arm Concurrency and Coordination Runtime (CCR) Decentralized Software Services(DSS) Visual Programming Language (VPL) C# Based Visual Studio Environment Simulation Environment and Robots MSRS에서 기본적으로 제공되는 서비스 MS의 파트너사가 제공하는 서비스

  9. MSRS에서의 서비스 Demo • VPL 환경 • 시뮬레이션 로봇 구동 (두 종류의 로봇 제어) • VPL 프로그래밍 예 : Hello World 출력 • 오늘의 날씨를 읽어 주는 TTS 기능

  10. MSRS에서의 서비스 프로그래밍 방법 기본 서비스 개발 전문 개발자에 의한 기초 서비스 프로그래밍 기본 서비스 활용을 통한 프로그래밍 학생 및 초급 개발자들은 VPL 툴을 이용해 상위 개념의프로그래밍을 진행

  11. MSRS에서의 서비스 프로그래밍 방법 Demo • MP3를 Play하는 서비스의 소스 코드 (C# 영역) • MP3Play 서비스를 활용하는 프로그래밍 예 (VPL 개발 영역)

  12. MSRS의 구성요소 - 개발툴 VPL C#

  13. MSRS의 구성요소 – 시뮬레이션 환경 • Ageia사의 PhysX 엔진과 Microsoft XNA 프레임워크를 기반으로 함 • 하드웨어 로봇과 동일하게 작동되는 소프트웨어 로봇을 시뮬레이터 상에서 개발할 수 있도록 함 • 로봇 개발에 있어서 기간과 비용을 대폭 감소시킬 수 있음 • 개발 결과물에 대한 생산성과 코드의 품질을 대폭 향상시킬 수 있음 • 하드웨어 로봇 없이 시뮬레이션 환경 구성만으로 로봇 주행 알고리즘의 연구와 같은 다양한 형태의 전문화된 알고리즘 연구에도 활용될 수 있음 • 알고리즘 및 지능형 서비스에 특화된 개발이 가능하도록 지원함

  14. MSRS의 구성요소 – 실행 플랫폼 • 개발툴을 통해 개발된 결과는 dll 파일 형태로 생성됨 • Dll 파일은 자체적으로 실행되지 않고 별도의 외부 실행 호스팅 프로그램이 필요함 • MSRS는 개발 툴 및 환경뿐 만이 아니라 개발된 dll 모듈의 실행 런타임 어플리케이션(실행 플랫폼)도 함께 제공함 • 실행 플랫폼은 DSS와 CCR을 기반으로 함 • 개발된 서비스 어플리케이션들을 실행시키고 제어하며, DLL 형태로 만들어 지는 서비스 프로그램들을 실행관리하기 위한 런타임-호스팅 환경을 제공함

  15. MSRS의 구성요소 – 개발 샘플 코드 및 튜토리얼 • 기본 서비스 프로그래밍 튜토리얼 • VPL 프로그래밍 튜토리얼 • 시뮬레이션 프로그래밍 튜토리얼 • 기본 로보틱스 프로그래밍 튜토리얼 • 고급 로보틱스 프로그래밍 튜토리얼

  16. 표준화된 인터페이스 Contents Application Game Application Communication Application Media Application Security Application Healthcare Application Sensible Recognition Windows Messaging Speech Recognition Face Detection DB Connection Intelligent Conversation TTS service GPS Service Indoor GPS Service Face Recognition Navigation Service Gesture Detection Sensor Service Motor Service Encoder Service Drive Service Web Cam Service Articulated Arm Physical Device Physical Device Physical Device Physical Device Physical Device Physical Device

  17. 표준화된 인터페이스 Service App service Service Service Sensor service Motor service H/W Interface module H/W Interface module Drive Motor Emotion …

  18. 표준화된 인터페이스 Service App service Service Service Sensor service Motor service H/W Interface module H/W Interface module

  19. MSRS의 공통 메시지 스키마 • 기본 스키마 구조

  20. MSRS의 공통 메시지 스키마 - ContactSensor • ContactSensor

  21. MSRS의 공통 메시지 스키마 - Motor • Motor

  22. MSRS 서비스 개발 예 #1 서비스 개발 항목 로봇 센서 부 Front Bumper 입력 모듈 Rear Bumper 입력 모듈 Laser Range Finder 입력 모듈 Web Cam 입력 모듈 Bumper 서비스 구현 Laser Range Finder 서비스 구현 Web Cam 서비스 구현 로봇 구동 부 Left Wheel 출력 모듈 Right Wheel 출력 모듈 Motor 서비스 구현 Pioneer3DX 로봇 제어 부 (S/W 구성 요소) 주행서비스 구현 주행 알고리즘 - 입력부로 부터 데이터를 읽어 들여 해석 - 주행알고리즘을 통한 구동 명령어 생성 - 구동 부분에 구동 데이터 전달

  23. MSRS 서비스 개발 예 #2 서비스 연동 관계 주행제어 서비스 센서 입력 서비스 모터 제어 서비스

  24. MSRS 서비스 개발 예 #3 로봇제조회사의 개발 범위 로봇 제조사는 H/W 로봇 외에해당 로봇을 위한 센서와 모터서비스도 같이 개발하여 사용자에게 제공해야 함 서비스 모듈 주행제어 서비스 서비스 모듈 서비스 모듈 센서 입력 서비스 모터 제어 서비스 장비연동 인터페이스 모듈 장비연동 인터페이스 모듈

  25. MSRS 서비스 개발 예 #4 로봇 사용자의 개발 범위 로봇 프로그래밍 개발자는 로봇 제조사에서 제공한 서비스를 활용하여 상위의 프로그램을 개발함 서비스 모듈 주행제어 서비스 서비스 모듈 서비스 모듈 센서 입력 서비스 모터 제어 서비스 장비연동 인터페이스 모듈 장비연동 인터페이스 모듈

  26. MSRS 서비스 개발 예 Demo • 범퍼 센서의 값에 따라 로봇을 제어하는 VPL 코드 • 시뮬레이션 실행

  27. 콘텐츠 기반 로봇 제어 Emotion Service Command Service Flash Contents Silverlight Contents Game Contents Education / Training / Entertainment (Game)

  28. 지능형 서비스프로그래밍 영상인식 서비스 음성인식 서비스 외부 부가 서비스 로봇제어 서비스

  29. MSRDS 내부 아키텍처 Precious development pattern Task A Task B Task C Sequential with thread blocking or callback handlers Module2 Module3 Cause bottleneck in performance Cause time delaying Increase complexity Module1 CPU assignment Task processing flow

  30. MSRDS 내부 아키텍처 CCR development pattern Task A1 Task B1 Task C1 Task A2 Task B2 Task C2 Sequential with no thread blocking and no callback handlers Task A3 Task C3 Module2 Task A4 Module3 Get rid of bottleneck in performance Avoid time delaying Decrease complexity of module Module1 CPU assignment Task processing flow

  31. MSRDS 내부 아키텍처 • Scalable concurrent applications: • Workload decomposed into many heterogeneous work items • Lots of latent concurrency that can be mapped to computational resources • Data flow scheduler Concurrency and Coordination Runtime

  32. 비동기 Task 처리 Previous sequential flow of tasks based on the synchronous coding pattern New sequential flow of asynchronous tasks by coordination of task handling Task 1 Task 3 Task 1 Choice Task 5 Task 4 Task 2 Task 2 Task 3 Task 4 Join Task 6 Task 5 Task 6 Task Task 7 Choice Task 9 Task 8 Time-waiting and non-concurrency Asynchronous and concurrency CCR DSS

  33. 분산 아키텍처

  34. MSRDS 성능 • Service-to-Service message throughput • Same process (with full cloning) • 150,000 msgs/sec • Cross node, cross machine (encrypted) • 6,000 msgs/sec • Peak numbers on 4-core 2.4GHz, 4GB RAM • Performance allows consistent use of service model for both local and distributed case • 100,000+ service instances per node

  35. 360° Camera PTU + Camera GPS Laser Analog Tablet PC Service Service Service Service Service Service Service Service Service Service RS232 RS232 WIFI 555 PC XPe CAN Decentralized Software Services (DSS) Decentralized Software Services (DSS) RS232 Analog Bumpers Concurrency and Coordination Runtime (CCR) Concurrency and Coordination Runtime (CCR) Camera DI Node Node 555 US AI

  36. Urban 챌런지

  37. 지능형 로봇에서의 MSRS 활용방안 #1 영상인식 서비스 음성인식 서비스 외부 부가 서비스 로봇제어 서비스 로봇 H/W 플랫폼과 독립적으로 지능형 서비스 개발에만 집중할 수 있음 Generic 서비스 Generic 서비스 서비스 모듈 서비스 모듈 센서 입력 서비스 모터 제어 서비스 장비연동 인터페이스 모듈 장비연동 인터페이스 모듈

  38. 지능형 로봇에서의 MSRS 활용방안 #2 영상인식 서비스 음성인식 서비스 외부 부가 서비스 로봇제어 서비스 지능형 서비스 개발 업체에 시뮬레이션 로봇을 배포하여 H/W 로봇없이 지능형 서비스를 개발할 수 있도록 지원

  39. 지능형 로봇에서의 MSRS 활용방안 #3 • 지능형 로봇 개발에서의 MSRS 활용 분야 • 로봇 자체의 Generic 서비스 구현 분야 • 로봇제조사에서 H/W 외에 기본적인 MSRS를 이용하여 Generic 서비스도 개발하여 제공함 • 지능형 서비스 구현 분야 • 공통의 메시지 기반 하에 MSRS를 이용하여 지능형 서비스 개발에만 집중함 • 로봇 제조사 뿐 만이 아니라 일반적인 S/W 회사나 학교, 연구소 등이 모두 개발을 진행 할 수 있음 • 자체적으로 보유하고 있는 지능형 솔루션을 MSRS를 이용하여 서비스로 제공하는 형태임 • 시뮬레이션 기반의 로봇 및 지능형 서비스 가상 환경 개발 • 지능형 서비스 개발을 보다 더 용이하게 하기 위하여, H/W 로봇을 대체시킬 수 있는 시뮬레이션 로봇을 만들어서 배포함 • 미로나 사무실 복도, 책상 등 지능형 서비스를 테스트할 수 있는 가상환경을 만들어서 배포함

  40. MSRS 시뮬레이션의 활용 분야 #1 • Wheel 기반의 주행 로봇 시뮬레이션 • Arm 과 Joint 기반의 산업용 로봇 시뮬레이션 • 휴머노이드 또는 다양한 형태의 로봇 구현 시뮬레이션 • 보행 알고리즘 및 주행 알고리즘 등의 연구에 활용 • 인공위성의 Reactor 작동 연구에 활용 • 수중 로봇의 주행 및 제어 연구에 활용 • 로봇틱스 실습 도구로 활용 • 각종 형태의 머니퓰레이터 구현 실습 • Forward Kinematics 및 Inverse Kinematics 적용 실습 • 지능형 알고리즘 및 서비스 활성화를 위한 S/W 기반의 로봇 경진대회 적용 가능 • 로보컵 2007(ATLANTA)에서의 시뮬레이션 기반의 로봇 Soccer 경기 지원 • MEDC2007에서의 시뮬레이션 기반의 로봇 Sumo 경기 데모

  41. MSRS 시뮬레이션의 활용 분야 #2 • MSRS 시뮬레이터를 이용한 각종 형태의 머니퓰레이터 구현 예제 • Articulated Manipulator (RRR)

  42. MSRS 시뮬레이션의 활용 분야 #3 • MSRS 시뮬레이터를 이용한 각종 형태의 머니퓰레이터 구현 예제 Spherical Manipulator (RRP) Articulated Wrist Manipulator (RRR) Cartesian Manipulator (PPP) 자세한부분은 MSRS 시뮬레이션 개발 가이드 참조 SCARA Manipulator (RRP) Cylindrical Manipulator (RPP)

  43. MSRS 시뮬레이션의 활용 분야 #4 • MSRS 시뮬레이터를 이용한 로보틱스 Forward Kinematics 분석 적용 예제 • Denavit-Hartenberg Convention 계산 후 시뮬레이터상의 머니퓰레이터로 확인 자세한부분은 MSRS 시뮬레이션 개발 가이드 참조

  44. MSRS 시뮬레이션의 활용 분야 #5 • MSRS 시뮬레이터를 이용한 로보틱스 Inverse Kinematics 분석 적용 예제 • Geometric 접근법을 통한 관절의 각도 계산 자세한부분은 MSRS 시뮬레이션 개발 가이드 참조

  45. MSRS 시뮬레이션의 활용 분야 #6 • 로보컵 2007 (ATLANTA) 에서의 Soccer 경기 지원 경진대회 참여자들은기본적으로제공되는 시뮬레이션 환경을 이용하여 영상처리 기반의 Player 로봇 제어 알고리즘을 개발하고 이를 활용하여 Player 및 Goal Keeper 로봇의움직임을 제어함 H/W 로봇 없이 S/W 알고리즘 부분만을 독립적으로 연구하는 것이 가능한 사례를 보여줌

  46. MSRS 시뮬레이션의 활용 분야 #7 • MEDC 2007에서의 시뮬레이션 기반의 로봇 Sumo 경진대회 경진대회 참여자들은기본적으로제공되는 시뮬레이션 환경을 이용하여 영상처리 기반의 Player 로봇 제어 알고리즘을 개발하고 이를 활용하여 Player 로봇의움직임을 제어함 H/W 로봇 없이 S/W 알고리즘 부분만을 독립적으로 연구하는 것이 가능한 사례를 보여줌

  47. MSRS를 위한준비 • 커뮤니티의 강좌 활용 • http://cafe.naver.com/msrskorea

More Related