드론 (Drone) 조사, 무엇을 할 수 있을까?
드론으로 무엇을 할 수 있을까?
드론에 대해 알아봐야할 일이 생겨
찾아본 것 겸 글을 작성한다.
개발가능한 드론
최근? 단순히 리모트 컨트롤러로 조종만 할 수 있는 드론이 아니라
직접적으로 개발도하고 센서도 추가할 수 있는 형태로도 드론을 판매한다.
이름하여 Programmable drone이라 하여
DJI가 훌륭한 SDK를 제공하는 것 같아 정리를 해보고자한다.
PC에서 제어 가능하며, 다른 로봇과 연동한다던가
특정 이벤트, 센서값이 들어올 때 특정 동작을 하고 싶다던가
이런 경우 개발가능한 드론이 필요한 것 같다.
MATRICE 100 (DJI M100)
- GPS
- Fully programmable
- HD View Camera
- Stereo camera --> depth map
- ROS 지원!!!!!
https://github.com/dji-sdk/Onboard-SDK-ROS
http://wiki.ros.org/dji_sdk
https://dl.djicdn.com/downloads/m100/M100_User_Manual_EN.pdf
DJI_ROS는 DJI M100, M600, M210, or drones equipped with A3/N3 flight controllers에서 동작한다.
ROS를 지원한다는 것은 드론 자체 (onboard)를 PC에서 제어/데이터 수집이 가능하다라는 의미이다.
또한 ROS의 다른 패키지를 쉽게 적용할 수 있다.
예를 들어, 드론에 카메라가 달려있다면 그 카메라를 이용해서 ROS의 얼굴 인식 패키지를 그대로 적용 가능하다.
http://wiki.ros.org/dji_sdk 이 링크를 들어가면 ROS로 어떤걸 지원해주는지 자세히 알 수 있다.
필요한 입력이 무엇인지, 출력이 무엇인지를 쉽게, 명확하게 알 수 있다.
아래와 같이 정리를 해보았는데,
PC는 드론에게 joystick에 있는 joy값으로 직접적으로 컨트롤을 할 수 있다.
그리고, gimbal을 직접적으로 제어 가능하다.
드론은 PC에게 다양한 정보를 주는데
GPS 정보, imu 정보, 고도,
현재 속도, 3차원 위치
카메라 이미지 (전방, 아랫방향 스테레오 카메라, 메인 카메라 등)
배터리 상태, flight 상태, 짐벌의 각도
등을 받을 수 있다.
Subscribed topics
- Flight Control Topics
- Gimbal Control
Published topics
- attitude (고도)
- battery_state
- flight_status
- from_mobile_data (스마트폰에서 드론으로 들어가는 데이터)
- gimbal_angle (gimbal의 각도)
- gps_health (gps의 신호상태)
- gps_position (gps 위치 데이터)
- imu
- rc (리모트컨트롤러의 6 channels)
- velocity
- height_above_takeoff (드론이 이륙할 때의 높이)
- local_position (GPS를 이용한 드론의 3D 위치)
- RTK position, velocity, yaw, etc..
- stereo camera image
- 카메라가 여러개 달려 있는데 각각 이미지들
살펴본 결과
단순히 컨트롤, 그리고 GPS를 활용한 절대 위치정도는 알 수 있는 것 같다.
그리고 카메라, IMU 정보 등은 쉽게 받을 수 있을 것 같다.
궁금증
- 호버링을 하기 위해서는 ROS로 어떻게 제어해야하는건가?
- 호버링 중에 (0,0,0) 에서 (3,0,3) 으로 이동해라를 해주는건 없나?
ex - 현재 기준 위치에서 x축으로 3m, z축으로 3m 가라고 하면 알아서 가주는 것
이왕이면 장애물도 알아서 피할 수 있도록 경로 계획하고 이동하는 것
더 조사해봐야겠다.
감사합니다.
- DJI M100 - 좀 더 자세히
- parrot ARDrone 3.0
- intel drone ( 2018년 올림픽 퍼포먼스 오륜기)
이제 드론의 영역까지 넓히시는 군요^^
로봇 관련 주제는 다 관심이 있어서요 ㅎㅎ
꾸준히 글 작성을 목표로!
!!! 힘찬 하루 보내요!