Views 25769 Votes 0 Comment 58
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

# 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()



?
  • ?
    aldlsdlfem 2019.11.15 21:24 SECRET

    "This is a secret article."

  • ?
    고미파파 2020.01.05 06:26 SECRET

    "This is a secret article."

  • ?
    드론강사 2020.01.21 12:26
    안녕하세요? 드론을 가르치고 있는 강사입니다. 블럭코딩으로 아이들을 가르치고 있는데 조금더 심화과정으로 파이썬으로 제어하는 방법을 가르치려고하는데 너무 어렵네요.. 혹시 자료 받아볼수 있을런지요?
    저 위의 파이썬에 대한 개념조차 없는지라 저위의 데모프로그램도.. 받을수 있는 주소 알려주시면 감사드립니다.
    miss16@네이버 입니다.
  • ?
    jim 2020.02.23 03:25 SECRET

    "This is a secret article."

  • ?
    듀잇 2020.02.27 08:58
    선생님!텔로와 파이썬 연결방법도 올려 주시면 안되나요?
    군집 비행 하는 방법도 올려 주시면 안되나요?ㅡㅜ
  • ?
    한일 2020.05.12 11:48
    이메일 주소 iory6957@nate닷컴 입니다. 꼭 자료 받아보고 싶습니다. 감사합니다.
  • ?
    sms 2020.12.07 00:57 SECRET

    "This is a secret article."

  • ?
    sdsd 2022.10.18 10:25 SECRET

    "This is a secret article."


List of Articles
No. Category Subject Author Date Views
793 Develop [vb] 비주얼 베이직 131페이지 hooni 2003.04.23 58044
792 Develop [vb] 문자열에서 태그 제거함수 (Visual Basic) file hooni 2013.04.23 22623
791 Develop [vb] 64bit RSA 프로그램 소스 ㅋㅋ file hooni 2013.04.23 8190
790 Develop [vbs] CD롬 뱉는 스크립트.. hooni 2003.04.23 11699
789 Develop [unix] 유닉스 명령에 메타문자 사용 hooni 2014.02.19 11249
788 Develop [unix] 쉘 스크립트 예제 모음 hooni 2003.04.23 14949
787 Develop [unix] 로그파일 정리 쉘스크립트 hooni 2014.02.19 10803
786 Develop [unix] 날짜 관련 쉘 명령어 (특정일 또는 +-시간, 날짜 계산된 값) hooni 2013.04.23 14808
785 Develop [unix] Java 애플릿용 HTML 자동 생성 hooni 2014.02.19 8214
784 Develop [ubuntu] 우분투 18.04에 PHP5 설치하기 hooni 2020.11.14 945
783 Develop [switch] 시스코 카탈리스트(Cisco Catalyst) 2950 미러링 설정 hooni 2013.04.23 11388
782 Develop [switch] 시스코 스위치(catalyst 2950) telnet 설정 hooni 2013.04.23 11271
781 Develop [swift] 실행시간 측정하기 hooni 2021.09.14 676
780 Develop [swift] UIView에서 subview 찾기 hooni 2022.12.09 1771
779 Develop [swift] popToRoot 모달뷰, 네비게이션컨트롤러 한꺼번에 닫기 file hooni 2021.01.29 1386
778 Develop [swift] NotificationCenter 간단 예제 file hooni 2021.01.27 8115
Board Pagination Prev 1 2 3 4 5 6 ... 53 Next
/ 53