임베디드랜드



[로봇 연결하기 01] 로봇을 연결하는 가장 쉬운 방법

 

작성자: Microsoft Robotics Group 김영준 수석 (yjoonkim@microsoft.com)

 

MSRS에서는 다양한 방법으로 로봇을 제어할 수 있습니다. 이렇게 로봇을 제어하는 방법은 앞으로 다양한 예제를 통해서 설명할 예정입니다.

 

맨 처음 MSRS를 공부하다 보면 가장 궁금해 하는 것이 도대체 어떻게 로봇을 제어한다는 것일까 하는 부분일 것 입니다. 이러한 의문점을 풀어드리고자 이번 부터는 간단하게 시뮬레이션 로봇을 연결하고 제어해보는 말 그대로 진짜 로봇 애플리케이션을 개발해 보도록 하겠습니다.

 

실제 로봇을 연결해서 제어하는 과정은 시뮬레이션 로봇을 활용하여 로봇 애플리케이션을 개발하는 과정을 소개한 후에 소개를 할 예정이며, 아주 쉽게 로봇을 변경할 수 있습니다. 사실 이러한 부분이 MSRS의 강점입니다. , 개발된 로봇 애플리케이션을 소스코드 수정 없이 다른 로봇에 적용시킬 수 있다는 점입니다.

 

이번 강좌에서는 간단히 MSRS에서 제공하는 기본 액티버트 두 개를 이용해서 시뮬레이션 로봇을 제어하는 방법을 소개하도록 하겠습니다.

 

VPL의 다이어그램에 아래와 같이 SimpleDashboard 액티버티와 SimulatedGenericDifferentialDrive 액티버티를 추가해 놓습니다. 특별히 이 두 개의 액티버티를 연결할 필요는 없으며, SimulatedGenericDifferentialDrive Config 정보만 수정해 주면 됩니다.

 

 

사용자 삽입 이미지

그림 1

 

이번에는 SimulatedGenericDifferentialDrive 액티버티를 마우스로 클릭한 다음 우측에 있는 Properties 창을 확인합니다.

 

 

사용자 삽입 이미지

그림 2

 

위의 그림에서와 같이 두 번째 항목인 Configuration: 항목을 Use a manifest 항목으로 설정합니다. 그러면 바로 아래에 Manifest: 항목을 선택할 수 있는 콤보박스가 표시됩니다.

 

자 이제, 위의 Properties 창에서 import 버튼을 클릭하면 아래와 같이 SimulatedGenericDifferentialDrive 타입을 지원하는 서비스 목록들이 표시됩니다. 이 목록들 중에서 아래와 같이 LEGO.NXT.Tribot…을 선택합니다.

 

 

사용자 삽입 이미지

그림 3

 

이제 저장하고 실행하면 VPL에서 할 일은 모두 끝난 것입니다.

 

VPL을 실행하고 나면, 아래와 같이 두 개의 윈도우 창이 표시됩니다. 하나는 Simpledashboard가 실행된 화면이고, 또 다른 하나는 시뮬레이션 실행 화면입니다. 시뮬레이션 실행화면을 살펴보면 화면 안에 LEGO NXT Tribot이 보일 것입니다.

 

사용자 삽입 이미지

그림 4

 

 

사용자 삽입 이미지

그림 5

 

여러분이 해야 할 일은 SimpleDashboard에서 시뮬레이션 로봇에 연결하고 제어를 해보는 일입니다.

 

먼저 위의 SimpleDashboard의 우측 상단에 있는 Machine: 입력 박스에 “localhost” 라고 입력을 하고 엔터키를 누릅니다.

 

그러면 바로 아래의 Service Directory: 부분에 아래 그림에서와 같이 (LegoNXTMotorBase)/simulated… 라고 표시되는 항목이 추가됩니다.

 

 

사용자 삽입 이미지

그림 6

 

이번에는 (LegoNXTMotorBase)/simulated… 라고 표시되는 항목을 마우스로 더블클릭 합니다. 반드시 더블클릭을 해야 합니다. 그러면 좌측에 있는 Differential Drive 부분에 있는 Motor: 부분이 아래와 같이 Motor: On 으로 변경이 될 것입니다.

 

 

사용자 삽입 이미지

그림 7

 

그 다음에는 좌측 상단 부근에 있는 Drive 버튼을 클리합니다. 버튼을 클릭하면 해다 버튼이 눌려진 채로 유지됩니다. 이 상태에서 그 위에 있는 동그란 원에 십자가 선이 그어져 있는 그림 부분을 마우스로 클릭한 재 움직여 보세요. 이 십자가 모양의 원은 일종의 조이스틱과 같은 역할을 수행합니다. 자 그러면 시뮬레이션 화면에서 로봇이 여러분의 마우스 움직임에 따라 같이 움직이는 것을 볼 수 있을 것입니다.

 

 

사용자 삽입 이미지

그림 8

 

아래 그림은 움직이고 있는 레고 NXT 로봇을 보여줍니다.

 

사용자 삽입 이미지

그림 9

 

지금까지 VPL에서 단지 두 개의 액티버티만 추가함으로써 로봇을 제어해 보았습니다.

 

이번에는 로봇을 다른 로봇으로 바꾸어 보도록 하겠습니다. VPL 중지시키고 다시 VPL 화면으로 돌아가 보도록 하겠습니다. 앞에서와 같이 SimulatedGenericDifferentialDrive 액티버티를 마우스로 클릭한 다음 우측에 있는 Properties 창을 확인합니다.

 

 

 

사용자 삽입 이미지

그림 10

 

위의 그림에서 이전과 같이 import 버튼을 클릭합니다. 이번에는 아래 그림에서와 같이 MobileRobots.P3DX.Simulation… 항목을 선택합니다.

 

 

사용자 삽입 이미지

그림 11

 

이제 VPL을 저장하고 다시 실행시켜 봅니다. 이번에도 이전과 같이 Machine: 부분에 “localhost”라고 입력을 하고 엔터키를 누릅니다. 그러면 아래 그림에서와 같이 두 가지의 Service Directory: 항목이 표시되며, 여기서 (P3DXMoterBase) / simulated.. 항목을 더블 클릭한 후에 좌측의 Drive 버튼을 클릭합니다.

 

 

사용자 삽입 이미지

그림 12

 

위와 같이 SimpleDashboard를 설정한 후에 십자가 모양의 원으로 되어 있는 아이콘을 마우스로 움직이면 아래와 같이 Pioneer 3DX 로봇이 움직이는 것을 확인할 수 있습니다.

 

 

사용자 삽입 이미지

그림 13

 

이번 강좌에서는 별 다른 프로그램 작업 없이 간단히 두 개의 액티버티들로서만 시뮬레이션 로봇을 실행하고 제어하는 과정을 보여주었습니다.

Posted by suvisor