25
v1.0 헬로앱스 http://www.helloapps.co.kr 드론 코딩 체험북

드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

v1.0

헬로앱스http://www.helloapps.co.kr

드론 코딩 체험북

Page 2: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ 회전 모터 장치의 연결 구조를 이해한다.

◾ 회전 모터 관절을 이용하여 헬리콥터 장치를 구현해 본다.

◾ 회전 모터 관절 명령어에 대해 살펴본다.

◾ 회전 모터 장치를 설계해 본다.

◾ 회전 모터의 속도를 제어해 본다.

◾ 회전 모터의 추력을 제어해 본다.

◾ 헬리콥터 구조를 구현해 본다.

◾ 나만의 비행 장치를 설계해 본다.

학습 목표

06 헬리콥터 만들기

실습 개요

Page 3: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ 드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조)

◾ 스마트폰 (안드로이드 기기) 또는 PC (윈도우 OS)

드론 코딩 앱 (PC용 또는 안드로이드용)

준비물

Page 4: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

[본 실습은 드론 시뮬레이션 v1.11 이상 버전이 필요합니다]

6.1 회전 비행 장치 설계하기

◾ 헬리콥터와 같이 1개의 수평 프로펠러를 가지는 장치를 만들려고 한다.

◾ 먼저 본체를 다음과 같이 생성한다.

회전 비행 본체 설계하기

Page 5: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ 그 다음으로 회전하는 날개 모양을 다음과 같이 추가한다.

Page 6: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ 관절 명령어에서 3번째에 있는 회전모터 추가하기 명령어를 setup 함수

아래쪽에 추가해 준다.

회전 모터 관절 추가하기

Page 7: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

6.2 회전 모터 회전시키기

◾ 회전 모터 관절은 속도로 제어된다. 다음과 같이 loop 함수에 속도를 설

정하는 명령어를 추가해 보자.

◾ 관절 명령어에 있는 회전속도 설정하기 명령어를 추가한다.

◾ 회전 모터의 속도를 다양하게 수정해 보고 결과를 확인해 본다.

모터 회전 시키기

Page 8: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ setup 함수의 맨 아래 쪽에 다음과 같이 조이스틱 명령어와 옵션을 추가

해 준다.

◾ 옵션 값으로는 “오른쪽 조이스틱 함수”를 추가해 준다.

조이스틱 추가하기

Page 9: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ loop 함수 아래 쪽에 새로운 함수 f1을 추가해 준다.

◾ 함수 안에 다음과 같이 수식 명령어와 출력 명령어를 추가해 준다.

v = value.X

(마지막 X는 대문자 임)

Page 10: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ 프로그램을 실행한 후, 오른쪽 조이스틱 버튼을 좌우로 움직여 본다.

◾ 조이스틱을 좌우로 움직임에 따라 값이 –300 ~ 300 사이로 움직이는 것

을 볼 수 있다.

Page 11: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ f1 함수에 있는 수식 명령어의 수식을 다음과 같이 수정해 준다.

v = value.X * 10

◾ 문자라인 출력 명령어를 제거하고 다음과 같이 회전속도 설정하기 명령어

를 추가해 준다. 이때 오른쪽 속성값에서 값 부분을 지우고 변수 v를 입력

해 준다.

◾ 프로그램을 실행한 후, 조이스틱 버튼으로 회전 속도를 제어해 보자.

◾ 회전 속도가 빠를 때 본체 박스는 어느 방향으로 회전하는 지 관찰한다.

조이스틱으로 속도 제어하기

Page 12: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

6.3 추력으로 제어하기

◾ 회전 모터 관절은 다음과 같이 2가지의 명령어로 회전과 추력을 제어할

수 있다.

- 회전속도 설정하기 : 모터의 회전 속도를 설정. 추력이 없음

- 모터파워 설정하기 : 모터의 회전 속도와 출력을 동시에 설정

◾ 모터파워 설정하기 명령어를 실행하면 비행기의 프로펠러와 같이 회전하

면 회전 축의 방향으로 이동하려는 힘이 발생한다. 즉 프로펠러가 회전하

면 비행기가 위 쪽 또는 앞 쪽로 이동하려는 힘이 발생하는 것과 동일하

다.

모터파워 설정하기 (모터 회전 속도, 추력 비율, 추력 축)

◾ 모터파워 설정하기 명령어는 3개의 인수를 가진다. 첫 번째 값은 모터의

회전 속도이다, 기존 회전속도 설정하기에서 사용한 회전속도 개념과 동일

하다.

◾ 두 번째 인수는 추력 비율 값으로서, 회전 속도에 비례하여 얼마 만큼의

추력 힘을 적용할 것인가를 정하는 것이다. 가령 다음과 같이 값을 설정하

면, 기존 회전속도 설정하기 명령어와 동일하게 작동한다.

모터 설정하기 (회전속도, 0, Y)

모터 파워 설정하기

Page 13: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ 아래의 예는 회전속도에 3배 비례하여 Y축으로 추력을 발생시키라는 의미

이다.

모터 설정하기 (회전속도, 3, Y)

◾ 추력 비율 값을 모터 관절에 연결되어 있는 객체들의 질량에 따라 달라질

수 있으며, 질량이 크면 추력 비율 값을 더 크게 주어야 하고, 질량이 가

벼우면, 추력 비율 값을 더 작은 값으로 설정해 주어야 한다.

◾ 마지막 세 번째 인수는 어느 축으로 추력 힘을 가할 것인가 이다. 아래와

같이 축의 이름을 입력해 주면 된다.

X : X축으로 추력이 발생

Y : Y축으로 추력이 발생

Z : Z축으로 추력이 발생

Page 14: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ 기존 예제에서 f1 함수의 내용을 다음과 같이 수정해 준다.

joint1 모터파워 설정하기(v, 3, Y)

◾ 프로그램을 실행한 후, 조이스틱을 천천히 움직여 본다.

◾ 조이스틱을 우측으로 움직이면 프로펠러 모양이 회전하면서 박스가 위로

올라가는 것을 볼 수 있다. 추력이 Y축으로 발생하기 때문이다.

Page 15: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ 모터파워 설정하기 명령어에서 마지막 추력이 발생하는 축을 X 또는 Z

등으로 수정하면 어떠한 결과가 발생하는 지 관찰해 보자.

Page 16: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

6.4 헬리콥터의 테일 로터가 하는 역할

◾ 이전 활동의 예에서 본체 박스가 어떻게 움직이는 지 관찰하고, 그 이유를

설명해 보자.

◾ 아래 그림은 헬리콥터의 테일 로터를 보여준다. 만약 헬리콥터에서 테일

로터가 없다면 어떠한 결과가 나올지 예측해 보고, 테일 로터의 역할에 대

해 설명해 보자.

테일 로터의 역할

Page 17: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

6.5 헬리콥터 동체 만들기

◾ 다음과 같이 기존 활동에서 만든 cube1을 수정하여 헬리콥터 동체를 만

들어 본다. bar 라는 이름의 자식 객체가 더 추가되었다.

헬리콥터 동체 만들기

Page 18: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ 실행하여 결과를 확인해 본다.

◾ 헬리콥터가 기울어지는 이유에 대해 생각해 본다.

Page 19: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ 메인 프로펠러 부분을 좀 더 뒤쪽으로 이동하여 무게 중심이 맞도록 수정

해 보자. cube2의 위치값을 다음과 같이 수정한 후 결과를 확인해 본다.

무게 중심으로 이동하기

Page 20: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

6.6 테일로터 추가하기

◾ 테일로터는 작은 박스형태로 cube2 명령어 아래에 다음과 같이 추가해

본다.

테일 로터 추가하기

Page 21: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ 아직 조인트가 연결되어 있지 않기 때문에 테일로터가 떨어져 있는 상태

가 된다.

Page 22: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ 두 번째 회전모터 추가하기 명령어를 추가한 후, 다음과 같이 설정해 준

다. 이름이 joint2가 되도록 수정해 주어야 한다.

Page 23: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

6.7 테일로터 제어하기

◾ 오른쪽 조이스틱 함수의 Y축 값을 이용하여 테일로터에 추력을 발생시켜

보자. 기존 f1 함수의 내용을 다음과 같이 수정해 본다.

t = value.Y * 3

joint2 모터파워 설정하기(t, 3, Z)

테일 로터 제어하기

Page 24: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

◾ 실행 후, 오른쪽 조이스틱을 위아래로 움직여 본다.

◾ 헬리콥터가 방향을 유지하도록 조이스틱으로 조종해 본다.

Page 25: 드론 코딩 체험북vulkan.co.kr/doc_drone/드론_코딩체험북_06...드론 코딩 앱 (안드로이드용 또는 PC용, 설치 과정 참조) 스마트폰 (안드로이드 기기)

6.8 나만의 비행체 만들기

◾ 헬리콥터 본체에 다양한 모양의 도형을 추가하여 나만의 헬리콥터를 창의

적으로 만들어 본다.

헬리콥터 모양 수정하기