기술
옵티컬 플로우란 무엇입니까?
실내에는 드론에게 위치를 알려 줄 위성 신호가 없습니다. 그 대신 드론이 쓰는 요령 가운데 하나는 어떤 드론보다도 오래되었습니다. 바닥이 미끄러지듯 지나가는 모습을 지켜보는 것입니다. 이렇게 화면이 겉보기에 움직이는 것을 옵티컬 플로우라고 하며, 벌도, 컴퓨터 마우스도, 작은 드론도 모두 이것을 씁니다.
핵심 요약. 옵티컬 플로우는 한 프레임에서 다음 프레임으로 넘어갈 때 이미지 속 무늬가 움직이는 것입니다. 카메라가 아래를 향한 드론은 바닥이 미끄러지듯 지나가는 것을 보고, 자기 높이를 알기 때문에 이를 자신의 속도로 바꿉니다. 기울어져서 생긴 움직임은 자이로스코프로 걸러 냅니다. 저렴하고 가볍고 빠르며 위성 위치 측정이 닿지 않는 곳에서도 작동하지만, 추적할 질감과 충분한 빛, 정확한 높이 값이 필요하고, 작은 오차가 시간이 지나면서 쌓입니다.
흘러가는 세상
기차 창밖을 내다보십시오. 가까운 울타리는 휙휙 지나가고, 먼 언덕은 느릿느릿 움직입니다. 이처럼 눈에, 또는 카메라 이미지에 비친 장면이 겉보기에 움직이는 것이 옵티컬 플로우입니다. 여러 지점에서 측정하면, 화면의 각 부분이 어느 쪽으로 얼마나 움직였는지 보여 주는 작은 화살표들이 빼곡한 그림이 됩니다.
이를 측정하는 일은 생각보다 어렵습니다. Horn과 Schunck가 1981년에 지적했듯이, 한 점의 밝기는 측정값 하나를 주지만 이미지 속 움직임에는 두 방향이 있으므로, 측정 방법에는 가정이 하나 더 필요합니다. 두 사람이 세운 가정은 이미지 대부분에서 흐름이 매끄럽게 변한다는 것이었습니다. 이후의 많은 방법이 이 생각을 바탕으로 합니다.
흐름에서 속도로
바로 아래를 향한 카메라에는 바닥이 움직이는 것으로 보입니다. 같은 속도라도 20cm 높이에서는 바닥이 쏜살같이 지나가고, 2m 높이에서는 천천히 흘러갑니다. 그래서 드론이 화면의 움직임을 m/s 단위의 속도로 바꾸려면 거리 센서로 잰 자기 높이가 필요합니다. 드론은 자신의 기울어짐도 빼야 합니다. 드론이 움직이기 시작하려고 몸을 기울이면 드론이 실제로 움직이기 전에 바닥이 먼저 움직이는 것처럼 보이는데, 자이로스코프가 그 회전을 측정하므로 이를 걸러 낼 수 있습니다.
Honegger 등이 2013년에 발표한 오픈 소스·오픈 하드웨어 설계는 이 모든 과정을 작은 보드 하나에 담았습니다. 빛에 민감한 카메라 칩을 쓰고, 마이크로컨트롤러에서 1초에 250번 흐름을 계산하며, 회전은 자이로스코프로 걸러 내고, 거리는 초음파 센서로 쟀습니다. 그리고 작은 드론에 실어 실제 비행으로 보여 주었습니다. 저자들은 컴퓨터 마우스 칩으로 만든 이전의 플로우 센서가, 실내외의 일반적인 저조도 환경이 주는 것보다 더 많은 빛을 필요로 했다고 지적했습니다.
벌은 훨씬 전부터 그렇게 해 왔습니다
꿀벌은 꽃이 얼마나 멀리 있는지 어떻게 알고 춤으로 벌집에 알려 줄까요? 한 이론은 꿀벌이 자신이 쓴 에너지를 잰다고 했고, 다른 이론은 세상이 눈앞을 얼마나 지나갔는지로 판단한다고 했습니다. Srinivasan 등은 벌들이 짧고 좁은 터널을 날아 먹이에 닿게 한 뒤 그 춤을 관찰해 두 이론을 시험했습니다. 2000년에 발표된 결과는 꿀벌의 ‘주행 거리계’가 시각으로 작동한다는 것이었습니다.
광 마우스도 더 작은 규모로 같은 원리를 씁니다. 바닥면에 달린 아주 작은 카메라가 책상 표면이 움직이는 것을 지켜봅니다.
통하지 않는 경우
- 무늬 없는 바닥이나 반짝이는 바닥. 밋밋하고 광택이 나는 표면에는 카메라가 따라갈 것이 거의 없습니다.
- 어두운 조명. 보이는 세부는 줄고 잡음은 늘어납니다.
- 잘못된 높이. 거리 측정값의 오차는 모두 속도의 오차가 됩니다.
- 드리프트. 속도를 더해 위치를 구하면 작은 오차도 함께 더해지므로, 옵티컬 플로우에만 의존하는 드론은 조금씩 엉뚱한 곳으로 흘러갑니다. 로봇은 지도를 기준으로 이를 바로잡습니다. SLAM이 무엇인지 읽어 보십시오.
Alkyon의 설계
집 안을 날아다니는 동반자에 대한 저희 콘셉트인 Alkyon은 아래를 향한 옵티컬 플로우 센서와, 그 옆에 구역이 64개인 아래 방향 깊이 센서를 갖추도록 설계되어, 얼마나 빨리 움직이는지와 얼마나 높이 있는지를 모두 알 수 있습니다. 저희 시뮬레이션에서는 이런 센서가 내는 오차를 모델링하는데, 그 오차가 쌓여 생기는 드리프트는 가구 가까이에서 비행할 때의 주요 미해결 문제 가운데 하나입니다. Alkyon은 개발 중인 콘셉트이며, 유럽 전용입니다. 더 알아보시려면 실내 드론이 길을 찾는 방법(영어)을 읽어 보십시오.
출처(2026년 11월 4일 확인): Horn, Schunck, determining optical flow, Artificial Intelligence, 1981; Srinivasan 외, honeybee navigation: nature and calibration of the “odometer”, Science, 2000; Honegger 외, an open source and open hardware embedded metric optical flow CMOS camera for indoor and outdoor applications, IEEE ICRA, 2013. 일반 정보입니다.
자주 묻는 질문
드론의 옵티컬 플로우 센서란 무엇입니까?
아래를 내려다보며 바닥이 얼마나 빨리 미끄러지듯 지나가 보이는지 재는 작은 카메라입니다. 거리 센서로 잰 높이와 합치면 지면에 대한 드론의 속도를 알 수 있고, 이는 위성 위치 측정이 닿지 않는 곳에서 드론이 제자리에 떠 있도록 돕습니다.
옵티컬 플로우에는 왜 거리 센서가 필요합니까?
같은 속도라도 바닥에 가까우면 빠르게, 멀면 느리게 보입니다. 화면의 움직임을 속도로 바꾸려면 드론은 자신의 높이를 알아야 합니다. 또 자이로스코프는 이동이 아니라 기울어짐 때문에 생긴 화면의 움직임을 걸러 냅니다.