Contents

조회 수 3310 댓글 12
?

단축키

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 드론을 활용한 졸업작품을하는 대학생입니다.
    자료 보내주시면 제 졸업작품에 너무도 큰 도움이 될 것 같습니다.
    혹시 제가 자료를 메일로 받을 수 있을까요?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
1112 Develop How to Test SMTP AUTH using Telnet hooni 2018.04.05 187
» Develop [python] DJI Tello 드론 코딩 (프로그래밍) 12 file hooni 2018.03.04 3310
1110 System/OS [mac] 맥에서 기본 실행 앱 변경하기 file hooni 2018.03.02 222
1109 System/OS 콘솔에서 패스워드 걸린 zip 압축하는 명령 hooni 2018.03.02 171
1108 Develop What is difference between Get, Post, Put and Delete? hooni 2018.02.28 160
1107 Develop [php] Laravel Route에서 PC/Mobile 분기 hooni 2018.01.24 335
1106 Develop Laravel 5 Failed opening required bootstrap/../vendor/autoload.php hooni 2018.01.24 162
1105 Develop [php][laravel] 라라벨 개발환경 세팅하기 (Mac, Window) 2 file hooni 2017.12.15 596
1104 Develop [php][laravel] 라라벨 프로젝트 생성 및 구조 file hooni 2017.12.15 468
1103 Develop [php][laravel] 초간단 MacOS에서 Laravel 개발 환경 구축 hooni 2017.12.15 228
1102 Database [mysql] MacOS에 MySQL 설치, 설정, 암호 재설정 file hooni 2017.12.15 359
1101 Database [mysql] ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. hooni 2017.12.15 235
1100 Develop [js] 문자열에서 숫자만 걸러내기 (jQuery 안쓰고 정규표현식) hooni 2017.12.14 151
1099 Develop [js] URL 파싱하기 (jQuery 안쓰고) hooni 2017.12.14 229
1098 System/OS [linux] 초간단 SquirrelMail 설치/설정 (다람쥐 메일) hooni 2017.12.11 1000
1097 System/OS [linux] 초간단 Postfix, Covecot, SSL/TLS (SMTP) file hooni 2017.12.11 2268
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 71 Next
/ 71