박봉달의 개발생활

<드론 프로그래밍>#2 파이썬에서 DJI TELLO 모듈(라이브러리) 임포트하기 본문

Projects/Drone

<드론 프로그래밍>#2 파이썬에서 DJI TELLO 모듈(라이브러리) 임포트하기

박봉달 2021. 8. 21. 22:14
728x90

안녕하세요, 다시 돌아왔습니다! 지난 포스팅에서는 TELLO 드론의 원리와 소개, 그리고 주변환경 구축을 마무리했습니다. 오늘은 파이참에서 DJI TELLO 드론 모듈을 임포트하고, 간단한 기능을 소개하는 시간을 갖도록 하겠습니다.

그럼 같이 보시죠!


1. 새로운 프로젝트 만들기

파이참을 설치하시고 아이콘을 눌러 실행하시게 되면, 위와 같은 화면이 나오게 됩니다. 여기서 New Project 를 눌러 새로운 프로젝트를 만들어주도록 하겠습니다.

Location에는 끝 폴더 이름을 설정해주시면 되며, 이 시간에는 Tello Drone에 관한 프로젝트를 진행할 것이기 때문에 Tello로 변경해주고 생성하였습니다.

새로운 프로젝트를 생성하게 되면, 폴더 아래 main.py 파일이 생성되며, 이곳에 프로그래밍을 진행해도 되지만, 따로 파이썬 파일을 생성하여 작성하셔도 괜찮습니다. 먼저는 main 없이 다른 파일을 만들어보도록 하겠습니다.

main 파일은 삭제를 해주었고, 새로운 파일 만들기로 들어가 파이썬 파일을 만들어주었습니다. 우선 기본 움직임을 다뤄볼 것이기 때문에 BasicMov라는 이름으로 파일을 하나 만들어주겠습니다. 실제로 Tello 드론을 프로그래밍하기 위해서는 관련 라이브러리를 임포트(삽입)해주어야 합니다.


2. DJI TELLO 라이브러리 임포트

DJI TELLO를 프로그래밍 하기위한 라이브러리를 임포트해보도록 하겠습니다. 우선 파일>프로젝트 설정으로 들어가줍니다. 저는 맥을 사용하고 있기에 윈도우와는 위치가 조금 다를 수는 있습니다.

파이썬 인터프리터를 들어가서, 클릭을 하게 되면 현재 생성된 여러 프로젝트 폴더가 보입니다. 그럼 여기서 Tello 드론 코딩을 위해 생성한 폴더로 들어가줍니다. 여기서 아래의 + 버튼을 클릭합니다. 우리가 하고자 하는것은 Tello 드론을 프로그래밍 할 수 있게 해주는 기능을 이식하는 과정이라 생각하면 됩니다.

+ 버튼을 클릭해 들어오면 여러 리스트가 뜨며 검색을 할 수 있는데, 여기서 djitellopy 라고 검색하면 나옵니다. 위의 모듈을 클릭해주고, 아래 install Package 를 클릭하면 설치가 완료됩니다.

여기서 설명란에 있는 github 주소를 들어가게 되면 어떤 파일들이 구성되어있으며, 어떻게 동작하는지의 여러 문서들을 열람할 수 있고, github에 올라오는 소스들은 오픈소스들이기 때문에 참고하시면 되겠습니다.

 조금 내려가다보면 README 문서를 기본적으로 소개해주는 것을 볼 수 있습니다. 또한 기본적인 기능 몇가지를 가지고 간단한 예시를 보여주는데, 다음 포스팅에서 실제로 이 라이브러리에 존재하는 기능을 시현시켜보는 시간을 가져보도록 하겠습니다.

설치가 완료되면 여러 패키지가 설치된 것을 볼 수 있을것입니다. 보통 djitellopy를 설치하면, 사진에서와 같이 numpy, opencv-python이 함께 설치가 되는데요, 혹여나 설치가 되지 않았다면 +버튼을 눌러 함께 설치해주면 되겠습니다. 그럼 이제 Tello 드론을 프로그래밍 할 준비가 다 되었다고 할 수 있습니다.


3. 기본 기능 소개

잠시 아까의 문서로 돌아오자면, 파이썬으로 Tello 드론을 프로그래밍 하여 할 수 있는 것들은 여러가지가 있습니다. 간단히 필요한 기능 몇개를 소개하고 다음 포스팅에서 직접 적용해보려고 합니다.

- connect : 드론을 연결

- takeoff : 이륙하기

- move_left : 왼쪽으로 이동

- rotate_counter_clockwise : 반시계 방향으로 회전

- move_forward : 앞으로 이동

- land : 착륙하기

또한 이 외에도 사진을 찍거나, 영상을 녹화하거나 키보드를 이용해 제어할 수 있는 여러 기능이 있습니다. 이를 차차 학습해보도록 하겠습니다.


이제 본격적으로 프로그래밍을 하기 위한 준비는 다 끝났습니다. 조금 이론이 길었지만, 그런 만큼 더욱 흥미롭고 이해도 높은 드론 프로그래밍이 가능할 거라 생각합니다. 오늘 포스팅은 여기서 마무리하도록 하겠습니다. 감사합니다 :)

 

728x90
반응형