Transcript
Page 1: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

기본 로봇제어 및 프로그래밍1

Page 2: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

2

지난회차 보기

지난회차 보기

안녕하세요! 지난 시간에는 시뮬레이션과 VPL을 이용한 로봇제어에 대해 알아 보았습니다. 그럼 이번 회차를 시작하기 전에 앞서 학습한 주요 내용을 기억하고 있는지 확인해 봅시다.

1. 매니페스트 -XML 형태의 파일로서 구동될 로봇 어플리케이션 서비스들의 목록과 구성 값들을 포함 -MSRDS호스트 프로그램(런타임) 이 해당 서비스를 구동시킬 때 이 매니페스트를 사용함 -VPL에서는 이 매니페스트를 이용해 서비스와 특정 로봇을 연결함 -VPL에서 시뮬레이션 환경 또한 이 매니페스트를 이용해 특정 서비스와 연결됨

2. 로봇제어를 위한 여러 서비스 사용 -Simulated Generic Differential Drive 서비스를 이용해 로봇 시뮬레이션을 연결해 사용함 -이 서비스는 또한 시뮬레이션 환경에서 로봇의 움직임을 제어하는데 이용됨 -입력과 출력단자의 연결 없이도 단지 시뮬레이션 환경을 불러들이기 위해서 사용가능

3. 해당 서비스의 매니페스트 지정하기 -속성 툴 박스의 Configuration 항목에서 해당 로봇 서비스와 연결될 매니페스트 파일 지정 -Simulated Generic Differential Drive 서비스를 이용해 시뮬레이션 환경이 설정된 매니페스트 연결

4. 심플대쉬보드(Simple Dashboard) 서비스 -여러 로봇들을 조이스틱 혹은 마우스로 제어해 보기위한 서비스 -자체 인터페이스를 통해 MSRDS 네트웍 연결로 로봇을 제어함 위와 같이 4가지에 대해서 알아 보았습니다. 이것들을 잘 기억하고 다음 회로 넘어 가 봅시다.

Page 3: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

3

학습목표

<학습 목표>

1. 로봇제어를 위한 여러 서비스에 대해 학습해 봅니다.

2. 예제를 통해 Generic Differential Drive 서비스를 이용한 로봇제어 방법을 학습합니다.

이번 시간은 기본 로봇제어 및 프로그래밍 방법들을 학습해 보겠습니다.

동기유발&학습목표

<주요 학습 내용>

1. 로봇제어를 위한 여러 서비스

2. Generic Differential Drive 서비스를 이용한 로봇제어

Page 4: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

4

1. MSRDS 에서는 VPL에서 로봇을 제어하기 위해 미리 준비된 여러 서비스들이 존재한다. 2. 로봇회사는 VPL에서 로봇제어를 위해서 이러한 기존 MSRDS로봇 서비스들과 반드시 호환되게 만들어야 한다.

간단한 퀴즈

학습에 앞서 여러분의 사전지식이 어느 정도인지 알아보는 OX퀴즈입니다.

가벼운 마음으로 아래의 내용을 읽고, OX로 답해보기 바랍니다.

확인

사전지식 점검

O / X

1번 정답: O

MSRDS 에서는 로봇제어를 위한 여러 표준화된 서비스들이 미리 준비되어 있으며

이를 VPL에서 사용하게 됩니다.

2번 정답 : X

로봇회사는 VPL에서 로봇제어를 위해서 여러 서비스들을 준비해야 이 서비스들이 반드시 기존 서비스와 호환될 필요는 없습니다. 로봇의 새로운 기능이 있으면 이를 위한 새로운 서비스를 개발해서 제공하면 됩니다.

O / X

Page 5: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

5

Lesson. 로봇제어를 위한 여러 서비스

VPL에서 로봇제어를 위해 사용될 여러 서비스들에 대해 학습해 보겠습니다.

1. 로봇제어를 위한 여러 서비스 2. Direction Dialog 서비스 사용해보기

레슨소개

Page 6: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

VPL에서는 로봇제어를 위한 여러 서비스들이 존재합니다. 이들은 로봇에 포함되어 있는 여러 기능을 사용하기 위해 준비된 서비스들입니다. 이들 서비스들은 시뮬레이션 로봇 혹은 실재 로봇의 하드웨어 사양에 따라 선택적으로 사용이 가능합니다. 이전 회차에서 설명한 Simulated Generic Differential Drive 또한 로봇제어를 위한 서비스 중 하나입니다. 이 서비스 앞의 Simulated가 없는 Generic Differential Drive서비스의 경우 실재 로봇 및 시뮬레이션 로봇 모두 연결해 사용이 가능합니다. 이런 로봇제어를 위한 서비스들을 공히 Generic이란 단어가 앞에 붙어 있습니다. 이 Generic이 의미하는 것은 어느 로봇이나 공통적으로 사용하기 위해 준비된 서비스란 의미입니다. 따라서 해당 로봇이 두개의 바퀴를 가진 로봇이면 어떤 로봇이든 상관없이 Generic Differential Drive서비스를 이용해 제어가 가능하게 됩니다. 이때 어떤 로봇을 연결할 지는 로봇을 위한 특정 매니페스트를 지정해 이루어 집니다.

1. 로봇제어를 위한 여러 서비스

로봇제어를 위한 여러 서비스

(1) Generic Differential Drive

Generic Differential Drive 서비스 위치와 모양

-두 개의 바퀴를 가진 로봇을 제어하는데 이용됨 -Generic Differential Drive 서비스는 실재 로봇 및 시뮬레이션 로봇 모두 연결해 사용가능 -왼쪽, 오른쪽 바퀴의 속도를 입력으로 연결함

Page 7: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

Generic Articulated Arm은 서비스는 관절로 연결된 로봇의 각 동작 부분을 제어하기 위한 서비스로써, 산업용 로봇, 휴머노이드 로봇, 4족 보행로봇과 같이 여러 개의 관절로 구성된 팔 또는 다리에 사용됩니다. 또한 말단 장치- 장치의 끝머리에 장착된 장치를 제어합니다. 연결된 로봇팔 에 대해 6개의 항목을 이용해 관절을 제어합니다.

로봇제어를 위한 여러 서비스

(2) Generic Articulated Arm

Generic Articulated Arm 서비스 위치와 모양

-관절로 연결된 로봇의 각 동작 부분을 제어하기 위한 서비스 -산업용 로봇(로봇팔), 휴머노이드 로봇, 4족 보행로봇과 같이 여러 개의 관절로 구성된 팔 또는 다리에 사용 -연결된 로봇팔 에 대해 아래의 6개의 항목을 이용해 관절을 제어

● Articulated Arm Replace : 팔의 상태를 변경하거나 변경된 팔의 상태를 나타냄 ● Get : 현재 팔의 상태를 반환 ● Get End Effector Pose : 로봇팔의 끝머리인 손의 위치와 방향을 반환 ● Set End Effector Pose : 로봇팔의 끝머리인 손의 위치와 방향을 설정 ● Set Joint Target Pose : 하나의 관절의 위치 및 방향을 설정 ● Set Joint Target Velocity : 하나의 관절의 움직일 때 필요한 속도를 설정

Page 8: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

Generic Contact Sensors 서비스는 버튼, 범퍼 센서와 같이 On/Off 형태의 출력을 가지고 있는 일반적인 로봇의 접촉 센서에 대한 입력을 지원합니다. 접촉센서 서비스는 눌려진 상태, 혹은 눌려지지 않은 상태의 2가지 상태를 출력합니다.

로봇제어를 위한 여러 서비스

(3) Generic Contact Sensors

Generic Contact Sensors 서비스 위치와 모양

-버튼, 범퍼 센서와 같이 On/Off 형태의 출력을 가지고 있는 일반적인 로봇의 접촉센서에 대한 입력을 지원 -접촉센서 서비스는 눌려진 상태, 혹은 눌려지지 않은 상태를 다음의 서비스 출력단자로 출력

-서비스 출력단자 ● Get : 접촉센서 서비스의 현재 상태를 반환 ● Contact Sensors Replace : 접촉센서 전체에 대한 상태가 바꾸거나 바뀐 상태를 알림 ● Contact Sensor Update : 접촉센서의 상태가 바뀌면 알림, 하나의 변경된 센서 정보를 반환 -서비스를 통해 받은 수 있는 정보들 ● Hardware Identifier(int) : 센서가 연결된 하드웨어의 식별번호 ● Name(string) : 센서 이름 ● Pose(Pose) : 센서의 위치와 방향 ● Pressed(Boolean) : 센서의 접촉상태를 알리며 눌렸을 때는 "true"로 떨어지면 “false”로 표시됨 ● Time Stamp(Date Time) : 센서의 상태가 변화된 시간

Page 9: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

Generic Contact Sensors 서비스는 버튼, 범퍼 센서와 같이 On/Off 형태의 출력을 가지고 있는 일반적인 로봇의 접촉 센서에 대한 입력을 지원합니다. 접촉센서 서비스는 눌려진 상태, 혹은 눌려지지 않은 상태의 2가지 상태를 출력합니다.

로봇제어를 위한 여러 서비스

(4) Generic Sonar

Generic Sonar 서비스 위치와 모양

-초음파 및 기타 거리를 측정하는 센서를 위한 입력을 지원 -접촉센서 서비스는 눌려진 상태, 혹은 눌려지지 않은 상태를 다음의 서비스 출력단자로 출력

-서비스 출력단자 ● Get : 거리센서 서비스의 현재 상태를 반환 ● Sonar Replace : 거리센서 전체에 대한 상태를 알림 ● Sonar Update : 거리센서의 상태가 바뀌면 알림, 하나의 변경된 센서 정보를 반환 -서비스를 통해 받은 수 있는 정보들 ● Hardware Identifier(int) : 센서가 연결된 하드웨어의 식별번호 ● Angular Range : 거리센서가 배치된 전체 각도 범위 ● Distance Measurement : 센서가 한 개일 경우 거리 정보 ● Distance Measurements : 센서가 여러 개일 경우 전체 센서의 거리 정보 리스트

Page 10: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

Generic Analog Sensor 서비스는 아날로그 센서의 데이터를 제공하기 위해 사용됩니다. 조도, 습도, 온도, 압력과 같이 연속적으로 값이 변하는 센서를 아날로그 센서라고 합니다. 아날로그 센서 서비스는 센서의 상태변화를 다음 블록으로 전달하는 서비스입니다. 서비스는 상태가 변화된 센서의 하드웨어 이름 또는 위치를 알림 단자를 통해 알려줍니다. 아날로그 센서의 종류와 측정되는 정보가 다르기 때문에 센서가 측정된 값의 변화를 알기 위해서는 측정 범위를 설정해야 합니다. 아날로그 센서 서비스 어레이 서비스는 아날로그 센서 서비스와 동일한 기능을 가지고 있습니다. 하지만 동일한 측정 범위를 가지는 센서를 로봇에 여러 개 장착했다고 하면, 아날로그 센서 어레이 서비스를 사용해 여러 개의 센서 상태를 하나의 서비스로 받을 수 있습니다. 아날로그 센서와 센서 어레이 서비스를 다른 블록을 연결할 때의 연결 정보 2가지로 알려줍니다.

로봇제어를 위한 여러 서비스

(5) Generic Analog Sensor

Generic Analog Sensor 와 Generic Analog Sensor Array 서비스 위치와 모양

-조도, 습도, 온도, 압력과 같이 연속적으로 값이 변하는 아날로그 센서에 대한 입력을 지원 -아날로그 센서와 센서 어레이 서비스를 다른 블록을 연결할 때 다음의 서비스 출력단자로 센서 값 출력

-서비스 출력단자 ● Get : 센서의 현재 상태를 반환합니다. ● Analog Sensor Update : 센서의 상태를 변경하거나 센서에서 측정되는 값이 바뀌면, 바뀐 상태를 반환 -서비스를 통해 받은 수 있는 정보들 ● Hardware Identifier(int) : 센서가 연결된 하드웨어의 식별번호 ● Normalized Measurement(double) : 평상시의 센서로 들오는 측정 값 ● Pose(Pose) : 센서의 위치와 방향 ● Raw Measurement(double) : 센서가 기본적으로 가지고 있는 값 ● Raw Measurement Range(double) : 센서의 최대 측정 범위 ● Time Stamp(DateTime) : 센서가 상태가 변화된 시간

Page 11: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

-Generic WebCam 서비스는 로봇에 장착된 카메라의 영상을 입력 받기 위한 서비스입니다. 주로 칼라트래커와 같은 영상처리 관련 서비스의 입력 서비스로 사용됩니다. 웹캠 서비스의 경우 매니페스트 없이 실재 PC에 장착된 카메라를 사용할 경우, WebCam 서비스를 사용하길 권장드립니다.

로봇제어를 위한 여러 서비스

(6) Generic WebCam Service

Generic WebCam 서비스 위치와 모양

-로봇에 장착된 카메라의 영상을 입력 받기 위한 서비스 -주로 칼라트래커와 같은 영상처리 관련 서비스의 입력 서비스로 사용되며, 다른 블록을 연결할 때 다음의 서비스 출력단자로 정보출력 -매니페스트를 지정하지 않고 PC에 장착된 카메라를 사용할 경우 WebCam 서비스를 사용하길 권장함

-서비스 출력단자 ● Get : 웹캠의 현재 상태를 반환합니다. ● WebCamReplace : 웹캠이 새로운 영상을 캡춰할 때마다 상태를 반환 -서비스를 통해 받은 수 있는 정보들 ● CameraDeviceName : 로봇에 장착된 웹캠의 이름 ● ImageSize: 캡춰된 영상의 크기 ● Pose(Pose) : 웹캠의 위치와 방향 ● LastFrameUpdate : 마지막 갱신된 영상의 정보

Page 12: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

배터리 서비스는 배터리의 상태를 알려 주기 위한 서비스입니다. 현재 배터리의 상태를 포함한 최고, 최저 전앞 값을 사용자에게 알려 줍니다. 배터리 서비스를 다른 블록과 연결할 때 연결 정보는 3가지입니다.

로봇제어를 위한 여러 서비스

(7) Generic Battery

Generic Battery 서비스 위치와 모양

-로봇의 배터리의 상태를 알려 주기 위한 서비스 -현재 배터리의 상태를 포함한 최고, 최저 전압 값을 사용자에게 알림

-서비스 출력단자 ● Battery Update : 배터리의 상태를 변경하거나 변경된 상태를 반환합니다. ● Critical Level Update : 배터리의 최젓값을 설정하거나 받아 올 때 사용합니다. ● Get : 배터리의 현재 상태를 반환합니다. -서비스를 통해 받은 수 있는 정보들 ● Max Battery Power(double) : 배터리를 완전히 충전 했을 때의 최고 전압 (기본 값은 1) ● Percent Battery Power(double) : 현재 배터리의 전압 상태 ● Percent Critical Battery(double) : 배터리를 사용할 수 있는 최소 전압.

Page 13: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

컴퓨터에 연결되는 게임 컨트롤러나 조이스틱을 사용하는 서비스입니다. 해당 게임 컨트롤러 장치를 연결하고 서비스의 출력단자를 사용할 때 나오는 옵션에 대한 설명은 테이블과 같습니다.

로봇제어를 위한 여러 서비스

(8) Game Controller 및 Desktop Joystick 서비스

Came Controller 및 Desktop Joystick 서비스 위치와 모양

-컴퓨터에 연결되는 게임 컨트롤러나 조이스틱을 입력을 위한 서비스 -Desktop Joystick은 마우스를 이용해 조이스틱 기능을 수행하는 서비스 -해당 게임 컨트롤러 장치를 다른 서비스와 연결할 때 다음의 서비스 출력단자로 정보출력

-서비스 출력단자 ● Update Axes : 조이스틱의 위치를 X, Y 값으로 반환합니다. 좌표 값은 -1000~1000의 범위 ● Update Buttons : 컨트롤러의 버튼이 눌린 상태와 시간을 반환 ● Update PovHats : 시야 조정 단추의 눌린 상태와 시간을 반환 ● Update Sliders : 조이스틱 슬라이드의 위치를 반환

Page 14: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

Direction Dialog 서비스와 Direction Dialog(VB) 서비스는 동일한 기능을 하는 서비스입니다. 서비스를 실행하면 아래 그림과 같은 4개의 버튼으로 이루어진 다이얼로그 창 나타납니다. 실제 5개의 버튼으로 되어 있으나 실행 환경에 따라 4개만 보일 수 있습니다.

로봇제어를 위한 여러 서비스

(9) Direction Dialog 와 Direction Dialog(VB) 서비스

Direction Dialog 와 Direction Dialog(VB) 서비스 위치와 모양

-방향을 지시하는 버튼들을 가진 다이얼로그 서비스 -주로 로봇의 방향을 지시하는데 사용되어짐. -실제 5개의 버튼으로 되어 있으나 실행 환경에 따라 4개만 보일 수 있습니다. -다음의 서비스 출력단자로 정보출력

-서비스 출력단자 ● Get : 다이얼로그의 버튼 상태를 반환 ● DialogStateChange : 다이얼로그에서 버튼의 변경상태를 반환 ● ButtonPress : 눌린 버튼의 정보를 반환 ● ButtonRelease : 눌렸다가 놓은 버튼의 정보를 반환

Page 15: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

로봇을 조종하기 위한 간단한 버튼인 Direction Dialog 서비스는 전진 및 정지, 좌우회전 명령을 사용할 수 있습니다.

2. Direction Dialog 서비스 사용해보기

Generic Differential Drive 서비스를 이용한

Direction Dialog 서비스의 실행 시 모양

-로봇들을 마우스로 제어해보기 위한 간단한 서비스 -전진 및 정지, 좌우회전 버튼이 존재

Page 16: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

자 이제 Direction Dialog 서비스에서 버튼이 놀렸을 때 출력되는 값들을 데이터 Log 서비스를 이용해 출력하는 다이어그램을 작성해 보겠습니다. VPL을 실행 한 후 아래 다이어그램과 같이 Direction Dialog 서비스와 Calculate Activity를 추가한 후 Direction Dialog 서비스의 알림 단자를 Calculate에 연결합니다.

Generic Differential Drive 서비스를 이용한

Direction Dialog 서비스 연결

Page 17: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

이때 아래와 같이 Connections 다이얼로드 창이 자동으로 실행되며, 이 창에서 아래와 같이 우측의 항목을 ButtonPress로 선택합니다.

Generic Differential Drive 서비스를 이용한

Connections 다이얼로그 창

Page 18: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

이번에는 Calculate activity의 입력창에 마우스를 클릭합니다. 클릭한 후에는 아래와 같이 입력 가능한 값이 표시되는 것을 볼 수 있으며, 이 항목들 중에서 Name 항목을 선택합니다.

Generic Differential Drive 서비스를 이용한

Calculate activity 변수 선택

Page 19: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

위의 작업 후에는 Log Dialog 서비스를 Calculate activity 우측에 추가한 후, Calculate activity와 Log Dialog 서비스와 연결합니다. 연결할 때, Connections 창과 Data Connection 창의 To는 LogInfo로 설정하시기 바랍니다. Data Connection 창에서는 Message 부분의 Value 항목을 반드시 value 항목으로 선택해 주어야 값이 전달됩니다. 이제 최종적인 다이어그램은 아래와 같으며, 아래의 다이어그램을 저장하고 실행시켜 봅니다.

Generic Differential Drive 서비스를 이용한

Direction Dialog 기본 예제 완성

Page 20: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

다이어그램을 실행시키면 아래와 같은 방향 버튼이 있는 창과 Run 창이 보입니다. 버튼을 클릭하면 실행(Run)위도우 아래의 Messages 창에 보이는 것 처럼 눌려진 버튼의 이름들이 순서대로 출력되는 것을 볼 수 있습니다.

Generic Differential Drive 서비스를 이용한

Direction Dialog와 Log서비스를 이용한 버튼 눌림 결과 출력

Page 21: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

21

문제 : 다음 ( )에 적당한 단어는? VPL에서 로봇제어에 필요한 공통된 기능을 하나의 서비스로 표준화해 만들어 둔 서비스들은 모두 앞에 ( ) 이란 단어가 붙어 있습니다. 이것이 의미하는 것은 어느 로봇이나 공통적으로 사용하기 위해 준비된 서비스란 의미입니다.

정답: Generic

해설: MSRDS에서는 Generic 서비스로 로봇의 기능들을 표준화하여 사용하고 있습니다.

정답 확인

돌발! 퀴즈~

돌발퀴즈

Page 22: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

22

Lesson. Generic Differential Drive 서비스를 이용한 로봇제어

이전 Lesson에서 배운 여러 로봇제어 서비스 중 Drive 서비스와 Direction 서비스를 이용해 이동 로봇을 제어하는 실습해 보겠습니다.

1. Generic Differential Drive 서비스를 이용한 로봇 제어 2. Generic Differential Drive 서비스와 Direction Dialog 서비스로 이동 로봇 제어하기

레슨소개

Page 23: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

이번 실습에서는 이전 Lesson에서 배운 Drive서비스를 이용해 로봇을 움직여 보도록 하겠습니다. 우선 Drive 서비스의 속도 입력을 위한 두개의 Data 엑티버티를 추가합니다. Drive 서비스의 경우 속도 값을 왼쪽의 그림과 같이 -1~0~1의 값으로 속도를 입력받습니다. 이때 데이터 형식은 double을 지정합니다. 그림의 예와 같이 두 바퀴의 속도가 다를 경우, Join엑티버티를 이용해 두 개 Data엑티버티 출력을 하나의 연결로 합친 후 Drive서비스로 연결하게 됩니다.

1. Generic Differential Drive 서비스를 이용한 로봇 제어

왼쪽 오른쪽 바퀴 속도를 위한 Data엑티버티 및 Join엑티버티 추가

Generic Differential Drive 서비스를 이용한

최대 전진 속도 : 1

최대 후진 속도 : -1

정지 : 0

Page 24: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

이제 다이어그램에 Generic Differential Drive를 추가한 후 Join엑티버티의 출력단자를 연결합니다. 이때 Generic Differential Drive 서비스를 연결할 Connections 창에서 To 는 SetDrivePower로 설정합니다. 이후 OK버튼을 클릭하면 Data Connections 창이 나타나며 이때 LeftWheelPower에 msg, RightWheelPower에 msg0를 각각 선택합니다. 이로써 0.5의 속도 값이 왼쪽바퀴의 속도 값으로 0.7의 속도 값이 오른쪽 바퀴의 속도 값으로 설정되었습니다.

Generic Differential Drive 서비스를 이용한

Connections 다이얼로그 창

완성된 다이어그램

Page 25: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

VPL의 우측에 있는 속성(Properties) 툴 박스의 Configuration항목에서 해당 서비스를 연결해 사용하고자 하는 매니페스트를 지정할 수 있습니다. Generic Differential Drive 서비스를 마우스로 선택한 후 오른쪽의 속성(Properties) 툴 박스의 Configuration: 항목의 드래그 드롭 메뉴에서 매니페스트 사용하기(Use a manifest)를 선택합니다. 매니페스트 사용하기를 선택한 다음 바로 아래의 ‘Import...' 버튼을 클릭합니다. 이 후 그림과 같이 Generic Differential Drive 타입을 지원하는 Service 목록들이 표시됩니다. 이번 실습에서는 이 중 iRobot.Create.Simulation.Mafinest.xml을 선택해 보도록 하겠습니다.

Simulated Generic Differential Drive가 사용가능한 매니페스트 목록

로봇제어를 위한 여러 서비스

(1) iRobot사 Create 시뮬레이션 로봇 매니페스트 지정하기

Page 26: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

자 이제 저장하고 실행합니다. VPL을 실행하고 나면, iRobot Create 가 포함된 시뮬레이션 환경에서 지정한 양쪽 바퀴의 속도로 로봇이 움직이는 것을 확인할 수 있습니다. 자 이제 바퀴의 속도를 바꿔 가면서 로봇을 제어해 보기 바랍니다.

iRobot Create을 이용한 시뮬레이션 결과 출력

Generic Differential Drive 서비스를 이용한

Page 27: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

13회차1.avi 동영상을 플레이 시켜 따라해 본다.

실습 따라해 보기

Generic Differential Drive 서비스를 이용한

Page 28: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

이번 실습에서는 Direction Dialog 서비스를 통하여 이동로봇의 방향을 제어하는 과정을 보여줍니다. 서비스 툴 박스에서 Direction Dialog 서비스를 끌어다 추가합니다. Direction Dialog 서비스는 로봇을 제어하기 위한 버튼이 눌려지면 해당되는 방향버튼의 이름(Name)으로 출력합니다. Direction Dialog 서비스 외에 Switch activity와 Calculate activity또 추가하고 아래 그림과 같이 연결합니다. Switch activity 하단의 + 아이콘을 클릭하여 분기 조건 3개를 추가하고 각각의 입력 창에 "Forwards", "Left", "Right", "Stop"을 순서대로 적습니다.

1. Direction Dialog 서비스로 이동 로봇 제어하기

Switch 엑티버티를 이용한 분기조건 추가

Generic Differential Drive 서비스를 이용한

Page 29: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

각각의 분기에 대한 출력단자에 데이터 형식이 double인 Data activity를 추가한 후, 각 Data 엑티버티에 그림과 같이 "Forwards"에는 0.5, "Stop"에는 0, "Left"에는 -0.5과 0.5를, "Right"에도 0.5과 -0.5를 입력합니다.

Generic Differential Drive 서비스를 이용한

Data activity 값 입력

Page 30: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

이제 다이어그램에 Join activity 2개, Merge activity 2개, Generic Drive 서비스 2개를 추가하고 아래와 같이 다이어그램을 완성합니다.

Generic Differential Drive 서비스를 이용한

완성된 다이어그램

Page 31: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

이때 Merge엑티버티와 Generic Differential Drive 서비스를 연결할 Connections 창에서 To 는 SetDrivePower로 설정합니다 "Forwards"와 “Stop"에 연결된 Data Connections 창은 모두 value를 선택하고, “Left“와 “Right"이 연결된 창에는 LeftWheelPower에 msg, RightWheelPower에 msg0를 각각 선택합니다.

Generic Differential Drive 서비스를 이용한

Connections 다이얼로그 창

Data Connections 다이얼로그 창

"Forwards"와 “Stop"에 연결된 Data Connections의 경우 “Left“와 “Right”에 연결된 Data Connections의 경우

Page 32: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

다이어그램 완성되었으면 마지막으로 Generic Differential Drive 서비스의 매니페스트를 설정해야 합니다. Generic Differential Drive 서비스를 마우스로 선택한 후 오른쪽의 속성(Properties) 툴 박스의 Configuration: 항목의 드래그 드롭 메뉴에서 매니페스트 사용하기(Use a manifest)를 선택합니다. 매니페스트 사용하기를 선택한 다음 바로 아래의 ‘Import...' 버튼을 클릭합니다. 이 후 그림과 같이 Generic Differential Drive 타입을 지원하는 Service 목록들이 표시됩니다. 이들 목록들 중에서 LEGO NXT로봇의 시뮬레이션 환경이 설정되어 있는 매니페스트 파일인 LEGO.NXT.Tribot.Simulation.manifest.xml을 선택한 후 OK버튼을 클릭합니다.

Generic Differential Drive 타입을 지원하는 매니페스트 목록에서 LEGO.NXT.Tribot.Simulation.manifest.xml을 선택

(1) LEGO.NXT시뮬레이션 로봇 매니페스트 지정하기

Generic Differential Drive 서비스를 이용한

Page 33: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

자 이제 저장하고 실행합니다. VPL을 실행하고 나면, LEGO.NXT가 포함된 시뮬레이션 환경과 Direction Dialog 창이 나타납니다. 다이얼로그의 버튼을 클릭하면서 로봇을 조정해 보십시오.

LEGO.NXT를 이용한 시뮬레이션 결과 출력

Generic Differential Drive 서비스를 이용한

Page 34: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

13회차2.avi 동영상을 플레이 시켜 따라해 본다.

실습 따라해 보기

Generic Differential Drive 서비스를 이용한

Page 35: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

35

문제 : 다음 중 Generic Differential Drive의 속도 입력에 사용되는 데이터 형식은?

① double ② int ③ string ④ decimal

정답: 1번

해설: Generic Differential Drive의 속도 입력에 사용되는 데이터 형식은 double입니다.

정답 확인

돌발! 퀴즈~

돌발퀴즈

Page 36: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

36

1. VPL에서 준비된 로봇제어를 위한 여러 서비스 -Generic Differential Drive : 두 개의 바퀴를 가진 로봇을 제어하는데 이용됨 -Generic Articulated Arm : 관절로 연결된 로봇의 각 동작 부분을 제어하기 위한 서비스 -Generic Contact Sensors : 버튼, 범퍼 센서와 같이 On/Off 형태의 출력을 가지고 있는 일반적인 로봇의 접촉센서에 대한 입력을 지원 -Generic Sonar : 초음파 및 기타 거리를 측정하는 센서를 위한 입력을 지원 -Generic Analog Sensor : 조도, 습도, 온도, 압력과 같이 연속적으로 값이 변하는 아날로그 센서에 대한 입력을 지원 -Generic WebCam Service : 로봇에 장착된 카메라의 영상을 입력 받기 위한 서비스 -Generic Battery : 로봇의 배터리의 상태를 알려 주기 위한 서비스 -Came Controller 및 Desktop Joystick 서비스 : 컴퓨터에 연결되는 게임 컨트롤러나 조이스틱을 입력을 위한 서비스 -Direction Dialog 서비스 : 방향을 지시하는 버튼들을 가진 다이얼로그 서비스, 주로 로봇의 방향을 지시하는데 사용

2. Generic Differential Drive 서비스를 이용한 로봇 제어 -Drive 서비스의 속도 입력을 위한 두개의 Data 엑티버티를 추가 -Drive 서비스는 double형식의 -1~0~1의 값으로 속도를 입력받음 -두 바퀴의 속도가 다를 경우 Join엑티버티를 이용해 두 개 Data엑티버티 출력을 하나의 연결로 합친 후 Drive서비스로 연결

3. Direction Dialog 서비스를 통하여 이동로봇의 방향을 제어 -Direction Dialog 서비스는 로봇을 제어하기 위한 버튼이 눌려지면 해당되는 방향버튼의 이름(Name)을 출력 Switch activity에 분기 조건 3개를 추가하고 각각의 입력 창에 "Forwards", "Left", "Right", "Stop"을 순서대 기입 각각의 분기에 대한 출력단자에 데이터 형식이 double인 Data activity를 추가한 후, "Forwards"에는 0.5, "Stop"에는 0, "Left"에는 -0.5과 0.5를, "Right"에도 0.5과 -0.5를 입력 Join activity 2개, Merge activity 2개, Generic Drive 서비스 2개를 추가하여 다이어그램을 완성

학습요약 및 정리

출력하기

학습요약 및 정리

Page 37: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

37

문제 2 : 다음 중 Generic Contact Sensors 서비스 출력단자 혹은 출력 정보 설명 중 틀린 것은?

① Time Stamp : 센서가 켜진 시간 ② Contact Sensors Replace : 접촉센서 전체에 대한 상태가 바

꾸거나 바뀐 상태를 알림 ③ Contact Sensor Update : 접촉센서의 상태가 바뀌면 알림, 하

나의 변경된 센서 정보를 반환 ④ Pressed : 센서가 눌렸을 때는 “True"로 떨어지면 “False”로

표시됨

학습하시느라 수고하셨습니다. 다음의 문제를 풀어보면서 학습한 내용을 점검해볼까요? 아래의 문제에 답해보세요.

정답: 4 번

해설: Generic Differential Drive 는 시뮬레이션과 실재 로봇 모두에서 사용가능 합니다.

관련학습 보기: Page 6 로봇제어를 위한 여러 서비스

평가하기

문제 1 : 다음 중 Generic Differential Drive 특징에 속하지 않는 것은? ① 두 개의 바퀴를 가진 로봇을 제어하는데 이용됨 ② Generic Differential Drive 서비스는 실재 로봇 및 시뮬레이션

로봇 모두 연결해 사용가능 ③ 왼쪽, 오른쪽 바퀴의 속도를 입력으로 연결함 ④ 시뮬레이션 환경에서는 사용하지 못함

정답: 1 번

해설: Time Stamp는 센서의 상태가 변화된 가장 최근 시간을 나타냅니다.

관련학습 보기: Page 8 로봇제어를 위한 여러 서비스

Page 38: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

38

정답: 4

해설: 조이스틱입력이 가능한 서비스는 Game Controller 서비스 입니다.

평가하기

문제 3 : 다음 중 Direction Dialog의 설명으로 틀린 것은?

① 방향을 지시하는 버튼들을 가진 다이얼로그 서비스 ② 주로 로봇의 방향을 지시하는데 사용됨 ③ 실제 5개의 버튼으로 되어 있으나 실행 환경에 따라 4개만 보이기도 함 ④ 조이스틱을 이용해 방향 입력가능

관련학습 보기: Page 14 Generic Differential Drive 서비스를 이용한 로봇제어

Page 39: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

39

이번 시간에는 기본 로봇제어 및 프로그래밍1에 대해 학습하였습니다. 1. 로봇제어를 위한 여러 서비스 2. Generic Differential Drive 서비스를 이용한 로봇제어

다음 시간에는 기본 로봇제어 및 프로그래밍2에 대해 학습하도록 하겠습니다. 1. 다양한 시뮬레이션 로봇제어 2. Generic Contact Sensors 서비스를 이용한 로봇제어

학습마무리

Page 40: 기본 로봇제어 및 프로그래밍elearning.kocw.net/contents4/document/lec/2013/Mokwon/...회차 제목 학습 흐름 제목

회차 제목

학습 흐름 제목

<이벤트 설명>

<용어 설명>

<내레이션>

기본 로봇제어 및 프로그래밍1

40

쉼터

마이크로소프트(MS)가 콘솔게임기인 XBOX에 대한 단상

마이크로소프트(MS)가 콘솔게임기인 XBOX를 2001년 11월에 미국에서 처음 출시된 이후 벌써 오랜 시간이 흘렀습니다. 마이크로소프트에서 최근 게임과 MP3등 관련 하드웨어를 출시하는 것은 기존의 소프트웨어 업체에서 최근 엔터테인먼트, 인터넷과 멀티미디어를 아우르는 종합IT 업체로 변신해 가는 과정으로 보는 이들도 있습니다. 변신에 성공한 애플이 애플컴퓨터에서 애플이라고 회사 이름을 변경한 것 처럼 언젠가는 마이크로소프트에서 소프트란 단어가 다른 것으로 대체될지도 모를 일입니다. 최근 XBOX버전에 대해 좀더 궁금하신 분들은 아래의 공식 홈페이지를 통해 어떤 기능들이 있는지 살펴보기 바랍니다.

http://www.xbox.com/ko-KR/