Contents

조회 수 4039 댓글 16
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

# DJI Tello

tello.jpg



# 프로그래밍 가능한 드론


최근 프로그래밍 교육 열풍이 시작되면서 사용자 레벨에서 직접 프로그래밍을 통해 제어할 수 있는 드론(Drone)들이 이미 판매되고 있다. 말이 거창해 코딩에 프로그래밍이지.. 사실 드론에서 제공하는 외부 API(명령)을 리모컨 대신 호출하는 것이 전부이다.

그 중 유명했던 것(과거형)이 한국 회사에서 만든 코드론(CoDrone)인데 최근에 드론계의 애플이라 불리는 DJI에서도 프로그래밍이 가능한 Ryzerobotics Tello Drone을 새로 출시했다.

(코드론은 아두이노 기반으로 제작된 키트를 직접 조립해서 만들어야 하고 Tello는 예쁜 완성품으로 바로 사용할 수 있는데 왜 코드론이 더 비싸지? ㅠㅠ 코드론 Lite $120 / Pro $180 vs. 텔로 $99)


# CoDrone vs. Tello

codronetello.jpg


어쨌든..

이런 종류의 드론을 제어하기 위한 프로그래밍 언어와 환경은 다양하다.

심지어 프로그래밍에 익숙하지 않은 아이들이나 초급자라도 간편하게 시작할 수 있다.

예를 들어, 초급자의 경우 드론블럭(Droneblocks), 스크래치(Scratch) 2.0 등의 GUI 툴을 이용하여 미리 정해진 명령 블럭들을 조립해서 실행하면 된다.


# DronBlocks application for iOS

droneblocks.jpg


# Scratch 2.0

scratch.jpg



조금 더 고급진(?) 방법은 현업에서 실제로 사용하는 프로그래밍 언어로 구현하는 것이다. 드론이 제공하는 네트워크에 접속하고 명령어 스펙을 구현하는 것이다.


다른 드론도 비슷하겠지만 Tello의 경우,

Tello가 제공하는 WiFi 네트워크에 접속해서 소켓을 열고 UDP 패킷에 명령어를 전송하는 방식이다.


howto.jpg



# Demo Video that I made to control using python.

직접 명령을 입력해서 Tello에게 전달하는 데모 프로그램



우선 Wi-Fi를 지원하는 디바이스가 필요하다.

그리고 UDP 소켓 통신이 가능한 프로그래밍 언어라면 모두 가능하다.

중요한 것은 Tello Drone의 명령어셋이다.


명령어셋은 Tello SDK 문서에 명세되어 있고 RYZE 홈페이지에서 다운로드 할 수 있다.

https://www.ryzerobotics.com/tello/downloads


Command

Description

Possible Response

 command

 Enter command mode

 OK / FALSE

 takeoff

 Auto takeoff

 OK / FALSE

 land

 Auto landing

 OK / FALSE

 up xx

 Fly upward xx cm (20-500)

 OK / FALSE

 down xx

 Fly downward xx cm (20-500)

 OK / FALSE

 left xx

 Fly left xx cm (20-500)

 OK / FALSE

 right xx

 Fly right xx cm (20-500)

 OK / FALSE

 forward xx

 Fly forward xx cm (20-500)

 OK / FALSE

 back xx

 Fly backward xx cm (20-500)

 OK / FALSE

 cw xx

 Rotate clockwise xx degree (1-3600)

 OK / FALSE

 ccw xx

 Rotate counter-clockwise xx degree (1-3600)

 OK / FALSE

 flip x

 Flip x (l, r, f, b, bl, rb, fl, fr)

 OK / FALSE

 speed xx

 Set current speed as xx cm/s (1-100)

 OK / FALSE

 speed?

 Get current speed

 xx (0-100)

 battery?

 Get current battery percentage

 xx (0-100)

 time?

 Get current flight time

 xx (second)



첨부된 예제는 Python 언어로(2.7) 작성된 것이다.



# Sample - drone_auto.py

해당 명령어들이 실행되면서 자동으로 비행한다.

import time
import tello

def main():
	drone = None

	try:
		drone = tello.Tello()
		print 'Battery : %d%%' % drone.battery()	
	except RuntimeError:
		print 'Failed to initialize the drone.\n'
		print 'Please, check your Wi-Fi SSID.\n'
		return

	drone.takeoff()
	time.sleep(3)

	drone.forward(50)
	time.sleep(3)

	drone.cw(90)
	time.sleep(3)
drone.flip('f') time.sleep(3) drone.land() time.sleep(3)

print 'Battery : %d%%' % drone.battery() print 'Flight time: %s' % drone.flight_time() if __name__ == '__main__': main()



?
  • ?
    몽쉘 2018.08.07 18:01
    후니님 화이팅! 가즈아~ lfd.uci.edu/~gohlke/pythonlibs/#opencv
  • profile
    hooni 2018.12.27 19:36
    감사합니다^_____^;
  • ?
    오이지 2018.11.19 01:05
    자료 잘 보았습니다! 자료가 급히 필요해서 가입을 했는데 로그인이 안되네요.. 혹시 자료 다운받을 수 있는 다른 방법이 있을까요?
  • profile
    hooni 2018.12.27 19:36
    메일로 보내드립니다.
  • ?
    휴리스틱 2018.12.27 11:48
    텔로 파이썬 코딩에 관심이 있어서 웹 검색으로 가입하게 되었습니다. 가입처리가 완료가 안되었는지 다운로드가 안되네요.
  • profile
    hooni 2018.12.27 19:37
    회원 가입과 무관하게 모두 열람하실 수 있습니다.
    다운로드를 원하시면 메일 주소 남겨주시면 보내드립니다.
  • ?
    휴리스틱 2019.01.02 04:20
    1.텔로가 와이파이로만 연결이 가능한가요?<br>웹검색으로 찾아봤는데 충전단자인 micro 5p 단자로 파이썬 코드 (이미지) 다운로드하는 내용을 찾기 어렵네요. ㅠㅠ;<br>(현재 노트북이 없이 데스크탑으로만 개발하려니 와이파이 동글이 필요할 것 같네요.)<br>(안드로이드 상에서 드론 블럭스 앱과 텔로 앱으로 연결 조종은 해 보았습니다.)<br><br>Ryze 직원도 아닌데 귀찮은 질문 죄송합니다. ^^;<br><br>superusr2003@지메일 (휴리스틱) 입니다.<br>첨부파일 메일 부탁 드립니다.<br>감사합니다
  • profile
    hooni 2019.01.09 04:42
    안드로이드, iOS 앱들도 결국 텔로와 wifi로 연결된 상태에서 통신을 하는 것입니다.
    클라이언트가 무슨 플랫폼이든 상관 없이 저 규격으로 패킷을 보내면 동작합니다.
  • ?
    ceci4 2019.01.14 15:55 SECRET

    "비밀글입니다."

  • ?
    wins 2019.02.11 12:11
    드론 프로그램을 공부 중입니다. 자료 부탁 드립니다.
    감사합니다.
  • ?
    테무진 2019.02.18 13:44 SECRET

    "비밀글입니다."

  • ?
    ㅇㅅㅅ 2019.02.20 19:22
    안녕하세요 tello 드론에 대한 정보가 많이 부족한데 이런 자료 보여주셔서 감사합니다.
    저는 Tello 드론을 활용한 졸업작품을하는 대학생입니다.
    자료 보내주시면 제 졸업작품에 너무도 큰 도움이 될 것 같습니다.
    혹시 제가 자료를 메일로 받을 수 있을까요?
  • ?
    문갓 2019.02.27 09:36

    안녕하세요!! 드론 코딩에 대한 자료들을 찾다가 후니님의 자료를 보았습니다. 너무 유익한 자료라 공부하는데에굉장한 도움이 될거 같습니다. 번거롭게 해드려 죄송합니다. 혹시 자료를 메일로 받아볼 수 있을까요!? 제 메일은 h5435sh@gmail닷컴 입니다!
    감사합니다!!

  • ?
    월세계 2019.03.06 13:14
    안녕하세요. 텔로를 파이썬을 사용하여 코딩해보고 싶은데 제가 모르는게 너무 많네요. ㅠㅠ
    자료 보내주시면 정말 감사드리겠습니다. chnexpert@지메일닷컴 입니다. 감사합니다.
  • ?
    수원화성 2019.03.26 22:38
    제가 파이썬 공부중인데 앞으로 드론이 어떻게 동작하는지 알고 싶은데 파일 좀 보내주실수있나요?
    제 이메일은 tnr8284148@naver입니다
  • ?
    성악 2019.04.22 13:24 SECRET

    "비밀글입니다."