로보링크의 CoDroneII(이하 코드론)를 소개한 하고, Python에서 드론의 센서 값을 읽는 코드를 설명했었습니다. 이제 남은 것은 날리는거죠^^. 코드론은 조종기를 PC와 연결하고 Python 모듈로 접근합니다.
이번에 파이썬으로 날릴 아이입니다. 이 각도가 얼짱각도^^ 코드론의 파이썬 API중 실제 이번에 사용할 명령의 매뉴얼도 읽어야 합니다.
파이썬의 코드론 모듈을 설치했다면, 위와 같이 필요 모듈을 import하고, drone과 통신을 엽니다.
이 명령만으로도 드론이 대략 1미터 높이로 부상을 합니다. 이 명령만으로도 호버링 상태를 유지합니다.
그리고, 이 sendControlPosition 명령은 공간상에서 x, y, z축 거리, 혹은 yaw 각도에 대한 명령을 인가할 수 있습니다. 위 명령은 우측으로 1미터를 이동하라는 명령입니다.
여기서 보이듯이 거리 혹은 각도 명령과 이동하는데 필요한 속도를 명령으로 주면 됩니다.
그리고 이 명령은 최초의 위치로 돌아와서 착륙하게 됩니다.
그리고, 드론과의 연결을 종료하면 됩니다. Python을 실행해서 위 코드를 입력해보면 아주 잘 명령을 수행하는 것을 알 수 있습니다. 여기까지 하나하나 입력하면서 드론의 움직임을 관찰하면 됩니다. 해당 동영상은
입니다~~~ 괜찮죠 ㅎㅎㅎ
다음 단계는 동영상부터 보고 시작할까요?^^
넵.. 이 동작은 1m 부상하고, yaw 방향으로 각도를 틀었다가 다시 돌아오고, 착륙하는 코드입니다.^^
import time from e_drone.drone import * from e_drone.protocol import * def eventAttitude(attitude): print("Yaw : ", str(attitude.yaw)) def count_down(count): for i in range(count, 0, -1): print("{0}".format(i)) time.sleep(1) drone = Drone() drone.open() current_time = 0. start_time = time.time() drone.setEventHandler(DataType.Attitude, eventAttitude) print("TakeOff") drone.sendTakeOff() count_down(3) while True: if current_time < 5: command = 0 elif current_time < 10: command = 15 elif current_time < 15: command = 0 else: print("-- Break!") break current_time = time.time() - start_time print(current_time, command) drone.sendControlPosition(0, 0, 0, 0, command, 5) time.sleep(0.1) drone.sendRequest(DeviceType.Drone, DataType.Attitude) time.sleep(0.1) print("Return Home") drone.sendFlightEvent(FlightEvent.Return) count_down(3) drone.close()
코드는 위와 같습니다. while 문에서 시간별로 0도, 15도, 다시 0도로 돌리게 했고, 이를 컨트롤 명령인 sendControlPosition으로 인가했습니다. 드론의 현 상태를 받아오기 위해 지난번에 소개한 sendRequest 명령을 이용했습니다. 어떤가요. 이정도면 드론 날리기 참 좋은 환경이죠?^^ 사실 이건 아주 중요한 부분입니다. 코드론은 바닥 상태에 따라 조금씩 차이가 있지만, 제가 꽤 근처에서 카메라로 촬영했음을 감안하면 정말 안정적으로 구동되고 있다는 것입니다. 이 덕분에 위 코드처럼 절차만 입력해도 구동이 되는 거죠..^^
아직 다음번 글을 정하진 않았지만, 다음 글은 아마도,
저 라즈베리파이 보드와 카메라가 장착된 아이를 이용해서 뭔가 재미난 것을 해보고 그걸 또 소개하는 글을 작성할 것 같네요.. ~^^ 다들 즐거운 주말 보내세용
'Robot > Robot Module' 카테고리의 다른 글
로보티즈의 엔지니어 Kit1을 7살 아기 미바뤼가 가지고 놀았어요 (8) | 2019.11.08 |
---|---|
어린 아이도 가지고 놀 수 있는 코드론 미니 CoDrone Mini (14) | 2019.10.25 |
인공지능 로봇 학습하기 좋은 로보링크의 Zumi 개봉기 (10) | 2019.09.05 |
Python으로 조작하는 드론 CoDroneII - 센서 데이터 읽기 편~ (8) | 2019.07.08 |
로보링크의 코드론II 개봉기 - 감동 또 감동 (12) | 2019.04.30 |
로보티즈의 5자유도 머니플레이터 - 로봇암 (24) | 2019.01.28 |
mBlock의 MakeBlock의 로봇 제품을 만져보았습니다. (22) | 2018.04.02 |