_TF_

Similar documents
Microsoft PowerPoint - chap01-C언어개요.pptx

1

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - src.doc

Windows Live Hotmail Custom Domains Korea

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

<C0CCBCF8BFE42DB1B3C1A4BFCFB7E12DB1E8B9CCBCB12DC0DBBCBAC0DAB0CBC1F5BFCFB7E12DB8D3B8AEB8BBB3BBBACEC0DAB0CBC1F52E687770>

Windows 8에서 BioStar 1 설치하기

Microsoft PowerPoint - CSharp-10-예외처리


목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

MVVM 패턴의 이해

게시판 스팸 실시간 차단 시스템

Microsoft Word - 임베디드월드_WindowsEmbeddedCompact7_rev

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

JDK이클립스

Microsoft PowerPoint - 권장 사양

윈도우시스템프로그래밍

디지털 공학

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

슬라이드 1

Microsoft Word - Korean_뷰어 메뉴얼_공용_ADVR&SWi_.doc

JVM 메모리구조

슬라이드 1

월간 SW 산업동향 2014 년 8 월호 이슈및쟁점 로봇 SW 플랫폼현황및발전방향

슬라이드 제목 없음

슬라이드 1

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

View Licenses and Services (customer)

ISP and CodeVisionAVR C Compiler.hwp

편집-krs_07_0033.hwp

슬라이드 1

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

목 차 1. 드라이버 설치 설치환경 드라이버 설치 시 주의사항 USB 드라이버 파일 Windows XP에서 설치 Windows Vista / Windows 7에서 설치 Windows

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

윈도우시스템프로그래밍

CODESYS 런타임 설치과정

제11장 프로세스와 쓰레드

A SQL Server 2012 설치 A.1 소개 Relational DataBase Management System SQL Server 2012는마이크로소프트사에서제공하는 RDBMS 다. 마이크로소프트사는스탠다드 standard 버전이상의상업용에디션과익스프레스 exp

슬라이드 1

Microsoft PowerPoint - e pptx

(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt)

PowerPoint Presentation

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Windows Server 2012

vRealize Automation용 VMware Remote Console - VMware

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

KARAAUTO_4¿ù.qxd-ÀÌÆå.ps, page Normalize

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

슬라이드 1

제8장 자바 GUI 프로그래밍 II

untitled

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

4S 1차년도 평가 발표자료

Microsoft PowerPoint - Windows CE Programming_2008 [호환 모드]

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

Visual Studio online Limited preview 간략하게살펴보기

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

52 l /08

Microsoft Word - Armjtag_문서1.doc

스마트월드캠퍼스 교육교제

!K_InDesginCS_NFH

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272)

슬라이드 1

23

슬라이드 1

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

슬라이드 1

컴퓨터관리2번째시간

슬라이드 1

1_cover

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

ÃÊ2)03È£³ëº§»óiÇؼ³ÇÊ

PowerPoint 프레젠테이션

초보자를 위한 자바 2 21일 완성 - 최신개정판

강창훈

서현수

Studuino소프트웨어 설치

SIGIL 완벽입문

Cisco FirePOWER 호환성 가이드

tiawPlot ac 사용방법

Microsoft PowerPoint - 03-TCP Programming.ppt

PowerPoint Template

Endpoint Protector - Active Directory Deployment Guide

[Brochure] KOR_TunA

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

Install stm32cubemx and st-link utility

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap-02.pptx

메뉴얼41페이지-2

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Transcription:

MS 로보틱스스튜디오를이용한로봇소프트웨어개발 MS 로보틱스스튜디오로서비스로봇만들기 2 지난달첫연재에서는국내외로보틱스시장과비즈니스기회에대해알아보며국내로봇개발업체의현실과어려움에대한문제를제기했다. 그렇다면이번달에는그러한문제를하나씩하나씩풀어나가보도록하자. 글 : 서진호차장 / 한국마이크로소프트 JinHo.Seo@microsoft.com 로봇을만들고개발하는사람들중에상용으로판매하는개발업체도있겠지만, 아무래도로봇이란것을처음접하고이것들을간단히스크립트언어같은걸로움직일수있다는사실에매우기뻐하는사람들이훨씬더많을것으로생각한다. 그런사람들은대부분취미로로봇을개발하는사람들혹은학교에서전자공학및제어계측관련전공자들일것이다. 필자는학교에서로봇을통해소프트웨어를구동해보는것을그어느것보다도최우선순위를두어야할우리의과제로생각한다. 사람들은재미있고흥미있는일들에대해늘도전하기마련이다. 이번호에서는로봇들을구동시키는소프트웨어플랫폼과서비스, 개발도구에대해알아보도록하겠다. 로봇소프트웨어플랫폼의필요성현재로봇하드웨어는그야말로춘추전국시대를맞이하고있다. 각종산업별로기능형로봇부터지능형서비스로봇그리고인간을닮아가는휴먼로이드로봇등그종류도천차만별이다. 하지만이러한로봇을동작시키는소프트웨어또한제각각사용된다. 다시말해로봇소프트웨어간호환성이없다는뜻이다. 예를들어단일로봇을만들때에는상관없지만다른로봇과의사소통을하거나여러대의다양한로봇을개발한다고가 정할때공통된표준소프트웨어가없다면어떻게되겠는가? 현재의로봇소프트웨어제작공정을흐름별로살펴보자면처음어떤로봇을개발할것인가하는기획단계를통해로봇프로토타입을하나만들어실제환경에잘적응되고있는지테스트한다음본격적인대량양산체제로가동하게될것이다. 그렇다면로봇분야에서의소프트웨어필수요소는기본적으로로봇을구동시키고서비스를제어할수있는개발프레임워크, 디버깅및배포, 보안및로깅, 시뮬레이션등이포함되어있어야개발자들이쉽게로봇소프트웨어를개발할수있다. 바로이러한로봇소프트웨어를만들기위해공통된프레임워크및개발자들에게친숙한 IDE 환경을제공하 084

연재순서 MS로보틱스스튜디오로서비스로봇만들기 1회세계로보틱스시장의현황과진단 2회 MS로보틱스스튜디오를이용한로봇소프트웨어개발 3회로보틱스소프트웨어개발의확장과미래 / 필 / 자 / 소 / 개 / 서진호 (JinHo.Seo@microsoft.com) 한국마이크로소프트임베디드디벨로퍼에반젤리스트로활동하고있으며국내모바일 / 임베디드및로봇기술전도에앞장서고있다. 최근에는서진호모바일 / 임베디드이야기 (http://blogs.msdn.com/jinhoseo) 라는블로그를운영하고있다. 는데그것이바로마이크로소프트로보틱스스튜디오플랫폼이다. MS 로보틱스스튜디오설치및구성 마이크로소프트로보틱스스튜디오는시작부터수많은로봇하드웨어파트너와협업하는시스템으로이루어졌다. 잘아시다시피마이크로소프트라는회사는하드웨어 ( 마우스및키보드등일부품목제외 ) 를만들지않고소프트웨어만개발하는회사이다. 즉, 하드웨어는 OEM이라부르는하드웨어를주문형생산방식으로만드는업체가제조하기때문에이 OEM사가마이크로소프트로봇하드웨어파트너회사가된다. 현재전세계 20 개이상의 로봇하드웨어파트너사가기본적으로 MS 로보틱스스튜디오안의컴포넌트서비스를제공하고있다. MS 로보틱스스튜디오설치순서는여러분의 PC에 Windows Vista, Windows XP 프로페셔널과같은운영체제를설치하면서시작된다. 그후 Visual Studio 2005와 Visual Studio 2005 서비스팩1을설치한다음마이크로소프트다운로드홈페이지에가서 Microsoft Robotics Studio(1.5) 압축실행파일을다운로드받아실행시키면조금있다그림 1과같이화면이나타난다. 그림 1에서보듯이 MS 로보틱스스튜디오는현재나와있는마이크로소프트기술들을복합적으로사용한예라고볼수있다. 모두설치해주기바란다. Visual C++ 런타임은이미 Visual Studio 2005에포함되어있으므로설치하지않아도된다. 또한로봇시뮬레이션을위한 XNA기반 AGEIA 사의 PhyX 기술은 DirectX 9.0c 런타임을필요로하며 MS 로보틱스스튜디오는.NET 런타임 3.0을기반하고있어서 C# 이나 VB.NET, IronPhython과같은언어를지원한다. 만일여러분의 PC에이러한컴포넌트가설치되어있지않다고해도인터넷만연결되어있으면자동적으로설치된다. MS 로보틱스스튜디오설치가모두끝나면프로그램메뉴에 Microsoft Robotics Studio(1.5) 라는폴더가생긴다. 이프로그 그림 1. MS 로보틱스스튜디오설치화면램은 IDE 환경을사용하지않고 Command Shell에서컴파일할수있도록 Command Shell 환경을구현하며 DSS에관계된 Manifest 수정및실행을지원한다. 또한, 추가적으로로봇소프트웨어를구동하기위한 Visual Programming language와실제환경의로봇을가상에서시뮬레이션해주는 Visual Simulation Environment도제공한다. 이설명에대해도대체무슨말인지의아해하는독자분들이많으리라생각한다. 그어디에도로봇소프트웨어를구동시키는프로젝트파일이없기때문이다. 그림 2와같이 Visual Studio 2005의프로젝트를실행시켜보니 Project Type에드디어 Robotics가보인다. MS 로보틱스스튜디오 1.5부터는 Visual Studio 2005와통합되어플러그인형태로제공된다. 반드시마이크로소프트로보틱스스튜디오 1.5를설치해야만 Project Type으로 4가지템플릿이보인다. MS 로보틱스스튜디오의핵심, DSS와 CCR 그림 3은 MS 로보틱스플랫폼을한눈에볼수있는그림으로 085

그림 2. Visual Studio 2005 의로보틱스마법사 스기반으로제공하는 DSS 시스템을구축하였다. DSS는 HTTP/SOAP 프로토콜을지원하며특정한포트를통해 XML 형태의메시지로로봇을제어할수있다. 한편, CCR은 동시및유기런타임 (Concurrency and Coordination) 이라고부르는데, 멀티프로세스나서비스를비동기적으로호출하고자할때쓰레드정렬이나쓰레드락이걸리지않기위한 느스한커플링 (Loosely-Coupled) 메시지방식으로로봇을동시제어할수있는혁신적방식이다. 한마디로말해로봇을구동하기위한응용프로그램은센서및액튜레이터의조합이며원격으로제어하거나스스로움직이는동작을감지하는프로그램을말하는데, 원격으로제어할때는쉽고편리한사용자인터페이스를제공한다. 따라서로봇소프트웨어플랫폼의가장큰도전은이러한로봇이동작하기위해필요한센서, 모터, 액튜레이터등이동시에잘움직이도록디자인되고이것을개발자에게프레임워크로개발하기쉽게제공되어야하는것이다. 예제로 MyRobot 서비스만들기 그림 3. MS 로보틱스스튜디오런타임다른로봇소프트웨어플랫폼과달리 MS 로보틱스플랫폼은 DSS와 CCR이라는핵심컴포넌트가있다. DSS는우리말로 비집중방식소프트웨어서비스 (Decentralized Software Services) 로부를수있는데기존의 DCOM이나 CORBA같은분산형서비스와많이닮았으나, 그것들은엔터프라이즈미들웨어에서사용하는것이기때문에로봇과같은소규모소프트웨어는맞지않다. 따라서마이크로소프트는 WCF와같은분산형서비스형식을빌려와로봇의동작이나센서, 모터등에대한상태값을웹서비 이론만설명한다면독자들은지루해할것이다. 그렇다면이제부터여러분이궁금히여기는 MyRobot 서비스예제를하나만들어 MS 로보틱스플랫폼이어떻게동작하는지알아보고자한다. 첫째, 그림 4와같이 Command Prompt 창을띄워 Services 라는새폴더를만들고그폴더로이동하여 DSS 서비스를다음과같은명령어로실행한다. DssNewService.exe /namespace:robotics /service:myrobot 표 1. 새 DSS 서비스실행명령둘째, Services\MyRobot 폴더로이동하면 MyRobot 서비스에관련된소스파일들이생성된것을눈으로확인할수있다. 086

_ MS 로보틱스스튜디오로서비스로봇만들기 2 그림 4. Command Prompt 창에서 DSS 서비스실행 그림 5. Visual Studio 2005 MyRobot 솔루션프로젝트 Command Prompt에 MyRobot.sln를입력하면자동적으로 Visual Studio 2005에서 MyRobot 솔루션프로젝트를불러오는것을그림 5와같이볼수있다. 셋째, 이제 DSS 서비스가올바르게동작하는지점검하기위해 MyRobot 솔루션프로젝트를 Build 하기바란다. 에러가발생하지않았다면 Command Prompt 창에서표2처럼 DSSHOST 서비스를실행시켜준다. DSSHOST 서비스는여러분들이만든커스텀 DSS 서비스를실행시켜주는런타임서비스에해당된다. DssHost /port:50000 /manifest:"myrobot.manifest.xml" 표 2. DSSHOST 실행명령넷째, 표 2의 DSSHOST 명령어를 Command Prompt 창에서실행하면 DSSHOST가 MyRobot DSS 서비스를생성한결과를볼수있다. Command Prompt 창을닫지말고그대로인터넷익스플로러를실행시켜 URL에 http://localhost:50000/ MyRobot 이라고입력하면 SOAP 메시지프로토콜로정의된 MyRobot DSS 서비스를보게될것이다. 다섯째, 로봇이구동하기위한서비스에 Robot상태속성값을추가하여메시지프로토콜로전송해보도록하겠다. 불러왔던 Command Prompt 창을모두닫고 MyRobot 솔루션프로젝트를불러와 MyRobotType.cs 파일을찾도록한다. 여섯째, MyRobotType.cs 파일에서비어있는 MyRobotState 클래스안에표3과같이 DataMember 속성값을추가해넣는다. [DataContract()] public class MyRobotState private string _member = "This is a state."; [DataMember] public string Member get return _member; } set _member = value; } } 표 3. MyRobotState 클래스에서 DataMember 속성값추가일곱째, 이제로봇에서실제로 SOAP 메시지를받을 HTTP 서비스핸들러를구현할차례이다. 표4와같이 MyRobot.cs 파일에서 HttpGetHandler 가상메서드를추가한다. 087

그림 6. SOAP 메시지결과화면 그림 7. DSS 서비스의 ControlPanel 화면 using Microsoft.Dss.Core.DsspHttp;. [ServiceHandler(ServiceHandlerBehavior.Concurrent)] public virtual IEnumerator<ITask> HttpGetHandler(HttpGet httpget) httpget.responseport.post(new HttpResponseType(_state)); yield break; } 표 4. MyRobotState 클래스에서 DataMember 속성값추가 참고로 DSS 서비스의제어판은 http://localhost:50000/ controlpanel 웹주소에포함되어각종서비스를제어하거나여러가지옵션을그림 7에서보듯이제공한다. 글을마치면서이제까지여러분과함께 DSSHOST 기반 MyRobot 서비스에서 Member라는상태값을로봇에게전달하는방법에대해알아보았다. DSS 서비스단위는로봇을동작시키는최소단위이다. 다음호에는이러한 DSS 서비스기반에서실제로봇과연동할수있는 Visual Programming Language 에대해알아보도록하겠다. 여덟째, Build Solution 하고에러가없다면 Debug 버튼을누르거나표 2와같이수동으로 CommandPrompt에서 MyRobot 서비스를실행시킨다. 인터넷익스플로러를실행시켜 http:// localhost:50000/myrobot 주소로이동하면그림 6과같이 SOAP 메시지바디안 MyRobotState에 Member 속성값이찍혀있는것을최종적으로확인할수있다. 주석및참고 1. 마이크로소프트로보틱스홈페이지 (http://msdn.microsoft.com/robotics) 2. 마이크로소프트로보틱스비디오튜토리얼 (http://msdn2.microsoft.com /en-us/robotics/bb383569.aspx) 3. 서진호의모바일 / 임베디드이야기 (http://blogs.msdn.com/jinhoseo) 088