딥러닝 기반 드론 자율 비행

posted Jun 25, 2017, 7:08 PM by Taewook Kang   [ updated Aug 20, 2017, 2:15 PM ]
요즘 하루가 지날 때 마다 머신러닝 딥러닝 기술과 프레임웍이 오픈소스로 공개되고 있다. 드론이 처음 소개되었을 때, 드론과 인공지능 기반 비전 기술의 융합은 쉽게 예상해 볼 수 있었다. 

1. 개요
최근 GPU기술로 유명한 NVIDIA 에서 자율비행 가능한 드론을 개발해 공개했다. 이 글은 NVIDIA 에서 공유한 기사를 참고해 정리한 글이다. 
대부분 드론은 GPS 신호 수신이 어려울 수 있다. NVIDIA에서 개발한 드론의 경우, 딥러닝(Deep Learning) 기반 비전 기술을 이용해, 자율 비행이 가능하다. 이 드론은 NVIDIA TX1이 내장되어 있다. 처음에는 길을 잃은 등산객을 구조 / 탐지하는 목적으로 설계했지만, 고층 건물, 내부 복잡한 통로 사이를 자율 비행할 수 있다. 

https://blogs.nvidia.com/wp-content/uploads/2017/06/DroneTegraFront-667x500.jpg
딥러닝 기반 자율 비행 드론(NVIDIA)

이 기술은 아직 실험 단계이지만, 결국에는 물품 선반의 재고를 확인하거나, 수중 통신 케이블 검사, 터널 철도 트랙 검사, 손상된 건물에서 생존자 검색 등에 적용될 수 있다(Nikolai, NVIDIA 기술 책임자). 이 기술은 바퀴로 움직이는 로봇에 포팅 가능하다. 

NVIDIA는 숲은 탐색에서 가장 어려운 곳이기 때문에 딥러닝을 적용할 수 있다면, 어느곳에나 탐색 가능할 것이라 말하고 있다. 숲은 커브 높이 차가 크고, 표시가 없는 곳, 주변광의 변화가 심한 곳이다. 

자율 비행 드론의 비용을 낮추기 위해, 연구진은 DIY 가능한 드론을 사용해, NVIDIA TX1과 두개의 카메라만을 사용하였다. 연구팀은 GPS없이 탐색 가능한 무인 항공기를 개발하였으며, 1km 거리의 길고 안정적인 비행이 가능한지 테스트해 보았다. 

팀원 알렉세이는 갑작스러운 움직임없이 드론이 산책로를 따라 비행할 수 있는 딥러닝 기술을 개발하였으며, 방대항 양의 훈련 데이터를 줄이는 데 공헌했다.

드론은 퍼시픽 노스웨스트의 산책로를 촬영한 동영상을 바탕으로 탐색 및 비행 방법을 배웠다. 연구진은 8mile 거리를 3개의 GoPro 카메라를 미니 세그웨이이 마운팅하여, 비디오를 촬영했다. 이런 연구 방법은 TrailNet을 기반으로 하였다. TrailNet은 비전 분야에 좋은 성능을 얻고 있는 CNN(Convolutional Neural Network) 기법을 사용하였으며, 출력은 뷰 방향(view orientation)과 측면 옵셋(lateral offset)이다.

학습 데이터 취득 방법 (Nikolai, Alexey, 2017, NVIDIA)

TrailNet 구조 (Nikolai, 2017, NVIDIA)

TrailNet은 Alessandro 의 연구에 영감을 받았다(A machine learning approach to visual perception of forest trails for mobile robots. IEEE Robotics and Automation Letters, 1(2): 661–667, July 2016).

Forest trails perception for mobile robots (Alessandro, 2016. Odroid, PixHawk Autopilot 기반 드론이 사용됨. 참고 - Odroid 기반 ROS)

수행 환경은 Jetson TX1 기반에서 드론과 MavLink 프로토콜을 이용해 통신을 하였으며, 우분투 Linux4Tegra (L4T)에서 ROS(Robot Operating System) 을 이용해 드론을 제어하였다.

RailNet은 TensorRT 를 이용해 적용되었다. 학습은 Caffe/DIGITS 를 이용해 수행하였다. 객체 탐색은 YOLO DNN 을 이용하였으며,  DSO visual odometry 알고리즘을 적용하였다. 

다음 단계는 다른 사람도 시각 정보에 근거한 탐색로봇을 TX2 기반으로 개발할 수 있도록 하는 것이다. 

3. 마무리
드론을 사람이 직접 조정해 위치를 제어 한다는 것은 쉽지 않다. 정확한 드론의 위치를 파악하기 위해서는 측위 기술이 필요하다. 

안정적인 호버링으로 유명한 DJI 드론의 경우, 1~2미터 흔들리는 것이 보통이다. 시야가 가려진 상황의 비행, 고공 비행, 바람이 부는 환경적인 이유 등으로 위치를 제어하는 것은 더욱 쉽지 않다. 이런 이유로 드론의 위치 제어는 GPS를 이용한다. Mission Planner 같은 드론 운영 시스템은 미리 비행 경로를 입력하고 드론을 제어하는 기능이 있다. Ardupilot과 같은 많은 드론 비행 시스템은 경로를 미리 입력받아 비행하는 기능을 지원한다(강태욱, 2016).

문제는 GPS가 끊어지는 상황에서는 속수무책이라는 것이다. 이 때 드론은 비행 불능상태에 빠지고, 제어가 불가능해 진다. 이를 해결하기 위해, 카메라, LiDAR, UWB기반 비콘 등을 사용한 실내 측위, 거리 센서를 이용한 비행이 연구되고 있으며, 최근, 딥러닝을 기반으로 드론 비행 방법을 학습하는 기술들이 개발되고 있다. 

소개한 TrailNet은 이런 문제를 해결하기 위해 딥러닝 기술을 적용하고 있다. 이 같은 딥러닝 기반 탐색 기술은 드론과 같이 탐색이 필요한 곳에서 많이 응용될 것이다.


4. 레퍼런스
3. Nikolai Smolyanskiy, Alexey Kamenev, Jeffrey Smith, Stan Birchfield, 2017.5, Toward Low-Flying Autonomous MAV Trail Navigation using Deep Neural Networks for Environmental Awareness, Cornell University
4. Alessandro Giusti, Jérôme Guzzi, Dan C. Cireşan, 2016, A Machine Learning Approach to Visual Perception of Forest Trails for Mobile Robots, IEEE Robotics and Automation


P.S. 이런 기사를 볼 때마다, 개인적으로 놀라움보다는 아쉬운 마음이 든다. 여기에 활용된 기술은 그들처럼 연구할 환경과 시간만 있었다면, 대부분 오픈되어 있는 것을 활용해 만들 수 있는 것이기 때문이다. 국내에 드론이 소개된지 3년이 지나가는 데, 국내 연구자들은 연구 과제 행정과 운영에 치여 제대로 된 시도 조차 못하고 있다(한눈파는 일부 무늬만 연구자, 연구 자체가 아닌 다른 정치적인 이유로 만든 수많은 조직, 절차, 규제들). 최근 국내에서 유행하고 있는 기술들은 대부분 해외 선진국에서 개발 후 오픈한 기술을 Following하는 수준이라 생각한다. 선진국 연구자들이 하늘을 날고 있을 때, 국내 연구자들은 발목에 몸무게 5배가 되는 족쇄를 차고 연구?라는 것을 한다. 이 상황에서 GDP대비 연구비가 많다는 이야기는 의미없는 것이다. 기술은 추격할 수 있으나, 환경과 생태계는 쉽게 얻어지는 것이 아니기에 안타까운 것이다. 

Comments