2017년 3월 24일 금요일

[217호 웹진: 인사이드이슈] 드론의 역할을 높이는 소프트웨어 기술


드론의 역할을 높이는 소프트웨어 기술
어른들의 놀이감으로 알려진 RC(Remote Control) 자동차나 비행기는 이미 오래전부터 잘 알려져 있어 드론(Drone)을 단순한 취미 생활을 위한 것으로 오해 되기 쉽다. 지금도 완성된 드론의 활용처를 무인 택배 서비스 정도로 소개되고 있는데 드론을 활용할 수 있는 곳은 매우 많을 것으로 예측되고 있다. 4차 산업혁명으로 인해 산업 간 경계가 무너지면서 국방, 행정 등에서도 드론의 역할이 필요할 것으로 보이는데 단국대학교 김규억 박사와 미국 플로리다 국제대학교의 강금석 교수와 전화 인터뷰를 통해 자세한 얘기를 해보기로 한다.

Q: 안녕하세요. 요새 드론에 대한 관심이 뜨겁습니다. TV나 영화도 드론을 이용한 경우가 많아져 더 다양한 각도로 화면이 만들어지기도 하는데 드론의 등장을 어떻게 보시나요?

드론을 이용한 무인 택배 서비스가 소개되기 전부터 TV 프로나 영화에서 드론이 찍은 화면이 많이 나왔었습니다. 그 당시에는 가격이 상상을 초월할 정도였지만 사람이 직접 찍을 수 없는 항공 시점 화면이나 위험한 각도의 화면에 주로 사용되다가 최근에 가격이 낮아지면서 많은 사람들이 사용하게 된 것으로 보입니다.

<그림1> 드론의 구조
출처: 포커스 뉴스

그런데 드론이 단순히 취미를 위한 놀이감은 아닙니다. 지금은 스마트 디바이스라고 불러도 될 정도로 다양한 기능들이 탑재되어 있습니다. 그림1에서 보는 것처럼 GPS부터 비디오 송신기, 카메라, 자이로스코프 센서 등도 달려있습니다. 보시면 아시겠지만 스마트폰하고 유사한 기술들이고 단지 비행에 필요한 프로펠러가 달려있다 정도로 봐야겠지요.

Q: 드론도 스마트 디바이스로 인식할 수 있다는 것은 그만큼 사람과 더 가까운 장비라는 것으로 이해되는데 맞나요?

네, 그렇습니다. 예전의 RC카처럼 RC를 활용한 비행기, 헬리콥터 등은 실제 탈 것들을 작게 만들고 멀리서 조정하는 개념이었습니다. 무엇을 한다는 것보다는 작게 만든 탈 것에 직접 탑승을 못하니 RC 신호로 조정하는 것이었지요. 그런데 드론은 조금 다릅니다. 지금 시중에 나와있는 것들은 대부분 네게, 여섯개의 프로펠러를 이용해 하늘을 날아다니고 거기에 카메라나 다른 장비를 달아 활용하기 때문에 드론의 역할은 단순히 하늘을 날게 한다는 정도로 오해할 수 있습니다.
중요한 점은 드론은 무인 상태로 동작한다는 점입니다. 하늘을 나는 것이 아니지요. 로봇의 경우도 드론이라고 하는 경우가 있지 않습니까? 같은 개념이라고 이해해도 틀린 말은 아닙니다. 이 말이 왜 중요하냐 하면 드론을 발전시키려고 할 때 필요한 연구가 무엇이냐로 보면 하늘을 나는 것이 목적이면 하늘을 나는 기술만 발전시키면 되지만 드론의 원래 목적인 무인에 초점을 둔다면 더 다양한 기술이 필요하다는 것이죠. 전략 무기를 예로 들면 무인 스탤스 전투기 같은 경우도 드론의 일종인데 최첨단 기술들이 집약되었습니다. 그 이유는 무인기이기 때문입니다(그림2).

<그림2> 드론의 예
C:\Users\sds\Downloads\Drone Biggest.jpg
출처: Popular Science

이러한 전략 전투기는 파일럿이 마치 전투기의 조종석에 직접 앉아 있는 것처럼 조종을 할 수 있지요. 그러기 위해서는 다양한 신호를 주고받을 수 있는 기술들이 필요하기 때문에 드론으로 인한 기술의 발전은 최첨단이라고 할 수 있는 것이죠.

Q: 드론의 다양한 기능을 직접 제어하기 위해서는 소프트웨어가 필요하겠네요?

드론이나 로봇이 사람처럼 움직이기 위해서는 반드시 소프트웨어가 필요합니다. 소프트웨어를 효율적이고 체계적으로 만들고 적용하기 위해서는 플랫폼 형태의 소프트웨어가 필요한데 다양한 곳에서 사용하게 하기 위해서는 개방형이면 더 좋겠죠. 아무래도 하드웨어가 다양하고 사용처도 많기 때문에 표준화된 소프트웨어를 위해 꼭 필요하다고 할 수 있습니다(그림3).

<그림3> 드론의 개방형 소프트웨어 플랫폼의 예
출처: ASR Micro

Q: 더 많은 기능을 제어하기 위해 소프트웨어가 필요하다는 말로 이해됩니다. 그런데 개방형 플랫폼 형태가 필요한 이유에 대해 좀 더 자세히 말씀해 주시죠.

소프트웨어 플랫폼이 필요한 이유가 같은 이유인데요. 먼저 드론은 통신 기반으로 동작하기 때문에 센서나 인식, 동작을 처리하는 단위로 소프트웨어를 만들어야 하기 때문입니다. 각 상황에 따른 소프트웨어가 존재하면 똑 같은 동작이 필요할 때 같은 소프트웨어를 사용하게 되는 것이죠. 최소 실행 단위로 단위 소프트웨어를 준비하는 것입니다. 이러한 이유로 소프트웨어 재사용이 자연스럽게 적용되는 것이죠. 재사용은 플랫폼의 가장 큰 목적 중의 하나입니다. 마지막으로 플랫폼이 구성되면 거기에 맞춰 개발 환경이 정의되는 것이죠. 개발자에 따라 여러가지 환경 구성이 나타나면 개발 생태계를 구성하기가 어렵기 때문에 플랫폼에서 일관된 개발 환경을 제공하고 그에 맞춰 개발함으로써 플랫폼에 맞는 개발 생태계가 조성됩니다. 그림4는 드론 코드 프로젝트라는 오픈소스 플랫폼입니다.

<그림4> 드론 코드 오픈소스 플랫폼
C:\Users\sds\Downloads\4 (1).png
출처: https://www.dronecode.org/dronecode-software-platform

그림4와 같은 플랫폼이 오픈소스로 공개되면서 더 다양하고 고사양의 드론 소프트웨어가 만들어지고 이렇게 만들어진 소프트웨어를 통해 드론의 성능이나 활용처가 더 다양해질 수 있는 것이지요.

Q: 드론에 소프트웨어가 필요하다는 것은 이해가 되는데 드론의 발전이 소프트웨어 발전에 미치는 영향은 없을까요?

서두에 말한 것처럼 드론은 최첨단 기술이 많이 포함되어 있습니다. 드론을 구성하는 기술을 살펴보면 비행을 하기 위해서는 속도나 기압 등의 센서 기술이 필요할 것이고, 날아다니기 위한 GPS나 관성 등의 항법 기술, 비행하면서 최적의 자세를 유지시키는 제어 기술, 마지막으로 카메라로 확인하는 영상 처리 기술 등이 필요합니다(그림5).

<그림5> 드론을 구성하는 기술
출처: www.uvify.com

그림5에서 보시는 것처럼 센서, 항법, 자세제어, 영상처리 기술 등과 같은 단위 기술에서도 소프트웨어가 필요하지만 최근에는 빅데이터 저장, 분석, 그리고 기계 학습에 따른 자율 비행 기술도 적용되는 추세입니다. 자율 비행을 위해서는 다양한 주변 정보 수집에 따른 판단 능력이 필요하기 때문에 소프트웨어가 절대적으로 필요한 상태죠. 자율 주행 자동차를 보시면 이해가 빠르실 겁니다. 이와 같이 자율 비행 기술이 적용된다면 요새 많이 관심 받는 무인 택배 서비스도 가능할 것입니다(그림6).

<그림6> 아마존 드론 택배 기술
C:\Users\sds\Downloads\2014071200210_0.jpg
출처: 아마존, 워싱턴포스트

그림6을 살펴보면 드론의 구성은 앞에서 얘기했던 수준으로 보입니다. 배송 물품을 드론에 실을 수 있는 기계적인 장치만 추가하면 됩니다. 그런데 택배를 위해서는 드론이 비행을 하면서 택배 장소도 정확히 찾아야 하고 착지를 위한 최적의 위치를 스스로 판단해야 하기 때문에 머신 러닝 기반의 소프트웨어적인 도움이 절대적으로 필요하다는 것이지요.

Q: 최고의 드론 서비스를 위해서는 최고의 소프트웨어 성능이 필요한 것 같습니다. 오늘 이야기의 마무리를 부탁드립니다.

드론에 대한 관심이 단순한 취미나 무인 택배 서비스 정도가 아니었으면 합니다. 기술 수준으로 볼 때 자율 주행 자동차나 드론의 등장이 다소 저평가 되는 경향이 있는데 이 안에는 우리가 알고있는 최첨단 기술들이 상당수 포함되어 있습니다. 왜냐하면 무인이나 자율이라는 것은 기계 스스로가 판단해서 동작해야 하기 때문입니다. 자율 주행 자동차나 드론이 스마트 디바이스라고도 불리는 이유가 그 때문입니다. 더 효율적이고 첨단화된 드론을 위해서는 최고의 기술을 움직일 수 있는 소프트웨어가 필요합니다.


Keyword: software engineering, drone, open source platform, dronecode, smart device