드론으로 무엇을 할 수 있을까?

#### 드론으로 무엇을 할 수 있을까?

드론에 대해 알아봐야할 일이 생겨

찾아본 것 겸 글을 작성한다.

#### 개발가능한 드론

최근? 단순히 리모트 컨트롤러로 조종만 할 수 있는 드론이 아니라

Programmable drone이라 하여 SDK를 제공하고

직접적으로 개발도하고 센서도 추가해볼 수 있도록 하고 있다.

DJI가 훌륭한 SDK를 제공하는 것 같아 정리를 해보고자한다.

PC에서 제어 가능하며, 다른 로봇과 연동한다던가

특정 이벤트, 센서값이 들어올 때 특정 동작을 하고 싶다던가

이런 경우 개발가능한 드론이 필요한 것 같다.

##### MATRICE 100
![image.png](https://gateway.ipfs.io/ipfs/QmPKDbstFUwyHWYZhUnQ9fY2Tdq8afosDU7JF7CkTs1Xm2)

* 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의 얼굴 인식 패키지를 그대로 적용 가능하다.

<hr />

http://wiki.ros.org/dji_sdk 이 링크를 들어가면 ROS로 어떤걸 지원해주는지 자세히 알 수 있다.

필요한 입력이 무엇인지, 출력이 무엇인지를 쉽게, 명확하게 알 수 있다.

아래와 같이 정리를 해보았는데,

PC는 드론에게 joystick에 있는 joy값으로 직접적으로 컨트롤을 할 수 있다.

그리고, gimbal을 직접적으로 제어 가능하다.

드론은 PC에게 다양한 정보를 주는데

GPS 정보, imu 정보, 고도,

<strong>현재 속도, 3차원 위치</strong>

<strong>카메라 이미지 (전방, 아랫방향 스테레오 카메라, 메인 카메라 등)</strong>

배터리 상태, flight 상태, 짐벌의 각도

등을 받을 수 있다.

<hr />

Subscribed topics
* Flight Control Topics
* Gimbal Control

<hr />

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
* 카메라가 여러개 달려 있는데 각각 이미지들

<hr />

살펴본 결과

단순히 컨트롤, 그리고 GPS를 활용한 절대 위치정도는 알 수 있는 것 같다.

그리고 카메라, IMU 정보 등은 쉽게 받을 수 있을 것 같다.

#### 궁금증

1. 호버링을 하기 위해서는 ROS로 어떻게 제어해야하는건가?
2. 호버링 중에 (0,0,0) 에서 (3,0,3) 으로 이동해라를 해주는건 없나?
ex – 현재 기준 위치에서 x축으로 3m, z축으로 3m 가라고 하면 알아서 가주는 것
이왕이면 장애물도 알아서 피할 수 있도록 경로 계획하고 이동하는 것

더 조사해봐야겠다.

감사합니다.

*  DJI M100 – 좀 더 자세히
* parrot ARDrone 3.0
* intel drone ( 2018년 올림픽 퍼포먼스 오륜기)

RTAB-Map 소개

RTAB-Map은 RGB-D 기반의 SLAM 기술이다.

RTAB-Map (Real-Time Appearance-Based Mapping) is a RGB-D Graph-Based SLAM approach based on an incremental appearance-based loop closure detector.


내가 생각하는 RTAB-MAP이 다른 SLAM과 차별점, 그리고 장점에 대해 소개하고자 한다.

최초로 상용화된 RGB-D SLAM 기반의 솔루션 Google tango

 

 

RTAB-Map이 다른 기술들과 다른 점은 로봇을 위한 SLAM이다.

RGB-D 카메라 기반의 SLAM이라는 것은 RGB 특징이나 Depth 특징을 활용하여 위치 추정을 하는 것을 말한다.

하지만, 별 특징이 없는 장소 (흰 벽, 뻥 뚤린 공간)은 RGB-D 카메라 기반의 SLAM의 성능을 낮춘다.

이를 해결하기 위해, RTAB-MAP은

RGB-D Camera 외에 Odometry, Lidar 정보도 추가적으로 활용할 수 있도록 하였다.

이 정보를 활용하여 특징이 없는 장소에서도 잘 동작할 수 있게 해준다.

즉, 로봇에 부착되어있는 여러 센서들을 활용 할 수 있도록 해준다.

RTAB-MAP 을 동작하기 위한 sensor-sets은 여러 가지 있지만, 아래와 같이 설정할 수 있다.

  • RGBD Camera +IMU
  • RGBD Camera + odometry
  • RGBD Camera + odometry + lidar

IoT Project – google-assistant를 활용한 비서

최종 목표

  • 음성 인식/출력
  • 얼굴, 물체 인식
  • 주변환경 정보 수집 (센서s)
  • 데이터 볼 수 있도록 한다. (웹, 앱, 텔레그램)

Google – assistant 활용

https://developers.google.com/assistant/sdk/guides/library/python/

  • 음성 인식/출력
  • 트리거의 역할
  • 시끄럽다 체크
    • raw 데이터 수집가능한지 체크
  • 한국어
    • cloud speech

주변 환경 정보 수집

  • 아두이노 – 여러 센서들
  • 아두이노 to Raspberrypi 통신