Robot Perception for Activities and Adaptation - UNIST 유현우 교수님

발표자 소개

  • UNIST 유현우 교수님 - 로보틱스 / 인공지능 연구실
  • 카네기 멜론 대학 포닥
  • 2024년 3월 부터 성균관대 교수님

 


Geometric SLAM에서 고차원적인 SLAM으로… (딥러닝 + SLAM)

“로보틱스에서 SLAM이 어떤 역할을 해야할까?”

초창기 SLAM은 주로 geometric SLAM이 많았다. 이는 우리가 흔히 이야기하는 ORB-SLAM이나 HDL-Graph-SLAM과 같은 것들이다. Geometric SLAM은 ‘자기 자신의 위치’를 추정하며 동시에 ‘지도’를 추정할 수 있지만, 모바일 로보틱스에서 흔히 우리는 ‘자기 자신의 위치 추정’에 집중하였고, 지도는 부수적으로 따라오는 것으로 여겼다. SLAM의 정확도를 높였다고 하면 주로 ATE, RPE와 같은 pose 정확도 척도로 성능 비교를 했고, IMU 퓨전과 같은 연구 트렌드가 떠오른 것도 이와 연관이 있다.

하지만 시간이 지나면서, geometric SLAM의 결과로는 부족함을 느끼는 시기가 다가왔다. 최근 빅테크 회사들에서 휴머노이드 로봇 연구라던지 (테슬라 옵티머스), 공간을 인지하고 상호작용을 하기 위해 탐색 및 액션을 계획하는 로봇 연구 (메타)를 수행하면서, 고차원적인 정보를 다룰 수 있는 능력이 필요하게 되었다. 특히, 최근에는 ChatGPT와 같은 LLM을 통해 로봇의 task와 같은 고차원적인 정보를 ‘언어’ 데이터로써 전달할 수 있는게 입증되었는데, 이를 위해서는 로봇들이 세상을 인지하는 방법에 대해 깊은 고민이 필요하다.

SLAM 연구자들은 이 부분에 있어서 3D 공간에 대한 정보를 담는 ‘Mapping’ 과정을 어떻게 만들어야 고차원적인 정보를 잘 담을 수 있을까에 대해 깊은 고민을 하고 있다. 빅테크들에서는 SLAM보다는 아직 multi-task가 가능한 AI를 만드는데에 집중하고 있는데, 실시간으로 동작하는 AI들이 많이 나오고 있기 때문에 SLAM하는 우리의 입장에서는 그냥 가져다 쓰면 되서 생각보다 개발이 편하다. 딥러닝 정보를 이용해서 SLAM을 할 때는 어떤 수준의 scene understanding이 가능한지에 따라 급이 나뉜다고 볼 수 있다 - 예를 들어서, 바닥과 벽만 인지하는 SLAM인지, object를 검출하고 class를 인지하는 SLAM인지, object를 instance 별로 검출하고 트랙킹까지 되는 SLAM인지 등등에 따라 급이 나뉘게 된다. 최종 목적은 결국 ‘3D 공간을 잘 이해할 수 있는가’ 로 귀결되는데, 결국 이것은 ‘인지 잘 해야한다’로 이어지기 때문에, 1. SLAM이 인지에서 굉장히 중요한 역할을 가지며, 2. 딥러닝과 슬램을 합치는 것은 불가피하다고 생각하게 되었다.

앞으로의 연구 방향은 ‘Embodied AI‘라는 키워드로 이뤄지게 될 것이다. 뜻을 풀자면 ‘몸이 있는 AI’라는건데, 지금까지의 로보틱스 기술은 하드웨어에 주로 집중했다면, 앞으로는 AI라는 똑똑한 두뇌를 가진 시스템이 물리적인 플랫폼을 가진 상태로 서비스를 제공한다는 것이다. 이는 반대로 얘기하자면, AI가 실패하게 될 경우 물리적인 공간에서도 실패가 나타난다는건데, 자율주행 시나리오와 같은 상황에서는 인명피해로 이어질 수도 있다는 것이다. 기존의 컴퓨터 비전 연구에서는 인지 성능이 조금 떨어진다고 하면 불확실성을 인정하고 결과를 수정한다거나 실패->수정->개선 사이클을 거쳐 개선시키는 작업을 거쳤겠지만, 로보틱스로 넘어오게 되면서 실패의 대가가 급격하게 커지기 때문에 무조건 인지를 성공시켜야한다는 조건이 생기게 된다. 그리고 성공적인 인지를 수행하기 위해서는 성능이 떨어지는 부분을 파악해 방지해야하는데, 이를 위해서는 ‘불확실성’ 개념에 대해 깊은 이해를 필요로 한다.

유현우 교수님께서 진행하셨던 연구는, 생성모델을 다룰 때 제공되는 확률모델에 SLAM 최적화 기법을 조합해서 인지 기술의 성능을 개선하는 연구였다. ICRA 2019, RA-L 2021. 주로 SLAM은 ‘센서 데이터는 Gaussian 노이즈를 가지고 있다’라는 조건을 가정하고 최적화 연산을 수행하는데, 우리가 3D object detection 등에 사용하는 딥러닝 기반 인지 네트워크의 결과는 같은 센서 데이터와 같은 ‘관측 결과’임에도 불구하고 Gaussian 노이즈를 가지고 있지 않아 SLAM에 무턱대고 적용하면 잘못된 결과가 나와 사고로 이어질 수 있다. 유현우 교수님은 여기서 생성모델의 확률모델을 강제로 Gaussian 분포에 근사함으로써 SLAM 최적화를 성공적으로 수행하는 방법이였다.

s research

 

SLAM의 역할 - 인지

SLAM이 성공적으로 상용화에 성공하는데에 넘어야할 과제가 2가지가 있다 - 1. 다양한 환경에서 안정적으로 동작해야하고, 2. 다양한 플랫폼에서 작동해야한다.

Semantic SLAM이 상용화가 어려운 이유는, 인지 부분에서 사용되는 detection 및 segmentation 네트워크의 학습 환경과 실제 테스트 환경이 다를 확률이 너무 높기 때문이다. 이러한 이유 때문에 Waymo가 샌프란시스코를 벗어나지 못하는 이유이기도 하다. 수많은 유저가 각각의 다른 환경을 가지고 있을텐데, 모두가 좋은 성능으로 인지 시스템을 갖추는 것은 굉장히 어렵다. 이를 위해서 zero-shot 연구 등도 진행되었지만 상용화 단계까지 가기에는 역부족이였다.

또 다른 문제로는 너무 다양한 플랫폼이 존재한다는 점이다. 자동차, 사족보행 로봇, 휴머노이드 로봇, 드론, 잠수함과 같은 운행 플랫폼이 다를수도 있고, 카메라, 라이다, 레이더와 같이 센서가 다를 수도 있고, 단일센서, 다중센서, 퓨전센서 처럼 센서 조합이 다를 수도 있고, 움직임이 다를수도 있고… 특정 플랫폼을 고른다면 결국 해당 플랫폼에서 최적의 성능을 뽑아내기 위해 수많은 시간을 파라미터 튜닝에 쏟아야한다. 센서 하나 위치만 바꿔도 튜닝 다시해야하고, 데이터셋 다시 모아야하고, 학습도 다시 해야한다.

그렇다면 해결법은 무엇일까? 교수님께서도 정답은 모른다고 하신다. 교수님께서 제안하시는 방법은 Continual learning이다. 어차피 연구실/실험실에서 완벽하게 튜닝을 한다고해도, 실제 환경으로 나가면 성능이 틀어질 것이다. 그 때마다 사람이 직접 튜닝을 해줄 수 없으니, 우리는 continual learning을 사용해서, 로봇이 직접 환경을 관측하며 데이터를 모아 지속적으로 인지 모델의 성능을 해당 환경에 맞게 최적화 하는 것을 바랄 수 있겠다. 우리가 연구실/실험실에서 모델 학습을 할 때는 수없이 학습과 튜닝을 할 수 있다는 장점은 있지만, 정작 실 사용 환경에 대한 정보는 바로바로 얻기 어렵다는 단점이 있다. 반대로, 모바일 로봇 플랫폼은 학습과 튜닝에 제약이 있지만, 실 사용 환경에 직접 들어가 데이터를 수집할 수 있다는 장점이 있기 때문에, continual learning을 이용한 환경 최적화 기법이야말로 이러한 문제의 해결법이 될 수 있겠다. (여기서 든 생각은… Active SLAM 쪽이 굉장히 재밌는 분야가 되지 않을까? Continual learning과 섞어서, 실시간으로 학습을 수행하면서 데이터의 uncertainty를 모니터링하면서, 부족한 데이터들에 대해 더 observation을 스캐닝하도록 유도해서 로봇 플랫폼을 기동시킬 수 있지 않을까 싶음).

SLAM을 이용해서 데이터를 학습시키는건 생각보다 쉽지 않다. 라이다를 사용해서 슬램을 하면 포인트 클라우드 특성 상 빈 공간이 굉장히 많고, RGB 이미지를 기반으로 SLAM을 해도 보통은 ORB-SLAM과 같은 sparse SLAM을 하기 때문에 빈 공간이 많다. Dense SLAM을 해도 관측이 부족한 공간은 텅 비어있기 마련이다. 네트워크가 3D 공간에 대해 학습하려고 할 때 빈 공간이 너무 많기 때문에 스스로 학습하기가 굉장히 어렵다. 여기에 큰 변화를 줄 수 있는 기술이 NeRF3D Gaussian Splatting 같은 기술이다. 기존의 SLAM 기술은 센서가 제공하는 discrete한 정보를 이용하거나 또는 후처리를 통해서 이러한 정보를 만들어 (i.e. ORB) 3D 공간 역시 discrete한 데이터로써 표현하였는데, NeRF와 같은 기술은 3D 공간의 형태를 continuous한 비선형 함수로써 표현을 하기 때문에 꽉 찬 공간 데이터를 얻을 수 있다. 즉, 공간을 표현하는 방식이 ‘3D xyz + attribute’가 아닌, f(x)로 바뀐다는 것을 의미하고, 로봇은 이 f(x)를 학습함으로써 공간을 이해할 수 있다는 것이다.

vMAP의 연구를 보면 이러한 특성이 잘 나타난다. vMAP은 공간을 NeRF로써 학습하면서, 동시에 물체 하나하나를 전부 NeRF로 학습한다. 처음에 이런 방식으로 스캐닝을 하고, 나중에 다시 이 공간을 방문해서 다시 스캐닝을 한다면, 예전에 봤던 물체를 다시 관측하는 경우에는 데이터베이스 속 f(x)와 현재 새롭게 관측한 f'(x) 두개가 상당히 유사할 것이라는거다. 이 둘의 유사도를 비교하기 위해서는, NeRF 데이터 - 즉, neural radiance field라고 불리는 MLP 속 담기는 파라미터를 비교했을 때, 두 네트워크의 파라미터가 비슷하다면 아마 같은 공간을 의미하는 것이 될 수 있다 (Bayesian learning과 관련이 있다).

지금까지의 내용을 정리하자면… 앞으로 다양한 환경/플랫폼에서 로봇이 고성능으로 동작하기 위해서는, 1. 어떤 센서를 사용하던지간에 실시간으로 공간에 대한 정보를 continuous한 비선형 함수로써 재구성하며 dense 공간에 대한 정보를 담아, 2. continual learning을 통해 zero-shot detection을 수행함으로써 어떤 환경에서던지 재-학습을 할 필요를 없게 만드는 방법이 기대가 된다.

 

SLAM의 역할 - Mobility & Locomotion

Embodied AI를 만들기 위해 정확한 인지를 하는 것은 중요하지만, 인지’만’ 잘 한다고 해서 로봇이 잘 움직이게 되는건 아니다. Gaussian splatting은 예쁜 이미지를 만들어내지만, 정말 이게 로코모션에 도움이 될까? RGB 정보는 로코모션에서 필요할까?

로코모션 기술 역시 지난 몇년간 non-linear regression 기술을 강화학습 및 제어 분야에 적용하며 많이 발전하였지만, 안타깝게도 아직까지 제대로 된 인지 기술을 제어와 함께 엮어서 사용하지 못하고 있다. 조금 당연한 이야기일 수도 있는데, 인지를 잘 하는 사람들은 인지만 하기에도 바쁘고, 로코모션을 하는 사람들은 로코모션만 잘하기에도 굉장히 바쁘기 때문이다. 2023년 나온 최신 연구를 보면, 놀랍게도 ‘이제서야’ 뎁스카메라로 주변 환경을 바라보면서 실시간 피드백을 로코모션에 넣어주는 연구를 하고 있다 (뎁스이미지를 non-linear 함수로 압축해서 강화학습 네트워크에 넣는 연구).

그렇다면 SLAM에서 만든 지도를 어떻게 로코모션에 도움되게 만들 수 있을까? 사실 교수님도 답을 명확하게 알지는 못한다고 아신다. 교수님께서는 이전에 SLAM의 지도를 하나의 함수로 담는 연구를 (i.e. NeRF-based SLAM) 통해서 힌트를 얻으셨다고 하셨는데, 이 함수로 담긴 SLAM 지도를 로코모션의 인풋으로써 넣기 위한 연구를 진행 중이라고 하셨다.

 

Q&A

Active한 continual learning을 수행하는 metric은 어떻게 고르나요?

Q. 맵핑을 하는 과정을 마치 representation learning과 같은 방식처럼 표현해주셔서 굉장히 인상깊게 보았습니다. 이러한 방식으로 공간에 대한 학습을 할 때, ‘우리가 아는 것’과 ‘우리가 모르는 것’을 구분하는 방법이 굉장히 중요할 것 같은데, 이 두개는 어떻게 구분을 할 수 있을까요?
A. ‘모른다는 것’이 어떤 의미일까요?
Q. 이 환경을 모르고 있고, 그래서 학습이 필요하고, 데이터 수집이 필요하다는것을 어떤 메트릭으로 정의할 수 있을까요?
A. 메트릭은 태스크 마다 다를 것 같습니다. 자율주행의 경우, 주변 환경에 건물, 도로, 인도, 차선 등이 있을텐데, 이 중에서 특정 정보를 랜드마크를 선정해 학습하는 것이 굉장히 중요할 것 같습니다. 여기서 생기는 질문은, 무엇을 랜드마크로 잡아야 주행 및 패스플래닝 성능이 더 좋아지는지도 있겠구요. 매니퓰레이터의 경우, 어떤 정보를 학습해야 더 매니퓰레이션을 잘하게 되는지 선정하는 것이 중요하겠습니다. 결국은 메트릭 선정이 굉장히 중요하다는건데, 이건 결국 시스템 설계/역설계 분야와도 연결됩니다.
Q. 추가질문 드립니다. 말씀하신 내용은 End-to-end 알고리즘을 개발하는 것 처럼 들리는데요. End-to-end 알고리즘을 바로 만드는건 굉장히 어렵기 때문에, 저희가 경험적으로 알고 있는 정보들을 중간에 prior로써 주는 학습 방법을 시도해보는게 좋다고 생각합니다. 교수님께서 보시기에는 현재 어떤 학습 방법이 연구되고 있나요?
A. 말씀하신 것 처럼 처음부터 태스크 레벨까지 도달하는 것은 굉장히 어렵습니다. 중간에 사이사이에 prior를 넣어줘서 연구를 하는 방향도 굉장히 좋고, 현재 많이 연구되고 있습니다.

Traditional vs DL-based SLAM의 성능 비교

Q. 제가 알기로는 NeRF-SLAM 같은 기술은 ORB-SLAM과 같은 기법에 대해 정확도가 떨어지는 것으로 알고 있는데요. Robot adaptation을 하시려면 트랙킹 성능은 무관한지 궁금합니다.
A. 말씀하신거처럼 NeRF-SLAM은 ORB-SLAM 보다 정확도가 많이 떨어집니다. 저희 연구실에서는 라이다를 이용한 Gaussian Splatting SLAM을 만들고 있습니다. Gaussian Splatting SLAM을 만들 때 간과되는 부분이 하나 있는데, Gaussian Splatting은 포인트 클라우드 기반입니다. (그렇기 때문에 카메라로 3D 포인트 클라우드를 부정확하게 추론하느니, 정확하게 포인트 클라우드가 나타나는 3D 라이다를 사용한다). 현재 NeRF-SLAM과 같은 기술의 정확도가 ORB-SLAM 등에 비해 떨어지는건 사실이지만, 그렇다고 정확도는 절대로 포기하면 안됩니다.