GNC 알고리즘으로 개선된 로봇 인식 - MATLAB & Simulink

로봇에게 맡기는 새로운 공간 탐색

로봇 인식의 강인성을 강화하는 새로운 알고리즘


MIT(Massachusetts Institute of Technology)의 연구 과학자 Vasileios Tzoumas는 새로운 도시를 방문하면 도시를 달리며 살펴보는 것을 좋아합니다. 그리고 가끔 그는 길을 잃기도 합니다. 몇 년 전, 컨퍼런스를 위해 방문한 오사카에서 장거리 달리기를 하던 중 결국 그런 일이 일어났습니다. 그런데 Tzoumas는 호텔을 나서자마자 지나쳤던 세븐일레븐을 발견했습니다. 이런 인식 덕분에 그는 정신적으로 '루프를 닫아' 자신의 궤적에서 불확실한 부분을 자신이 알고 확신하는 장소에 연결할 수 있었으며, 따라서 머리 속의 지도가 확실해졌고 호텔로 돌아갈 수 있었습니다.

GNC(단계적 비볼록) 알고리즘은 기계가 땅, 물, 하늘, 우주를 횡단하고 돌아와서 그 과정을 전달하도록 도와줍니다.

'루프를 닫는다'는 것은 실제로 로봇이 새로운 환경을 탐색할 때 자주 해야 하는 일을 설명하는 기술 용어입니다. 이는 SLAM(동시적 위치추정 및 지도작성)이라는 공정의 일부입니다. SLAM은 새로운 것이 아닙니다. 로봇 청소기, 자율주행 차량, 수색구조 항공 드론, 공장, 창고, 광산에서 사용되는 로봇 등에 사용됩니다. 자율주행 기기와 차량은 거실에서 하늘까지 새로운 공간을 탐색하며 지도를 작성합니다. 또한 카메라, GPS, 라이다와 같은 센서를 사용하여 지도에서 자신이 어디에 있는지 파악해야 합니다.

SLAM이 적용되는 응용 사례가 많아질수록 까다로운 현실 조건에서도 SLAM 알고리즘이 올바른 결과를 생성하는 것이 그 어느 때보다 중요해졌습니다. SLAM 알고리즘은 완벽한 센서나 통제된 실험실 조건에서는 잘 작동하지만, 현실 세계에서 불완전한 센서로 구현하면 쉽게 길을 잃습니다. 당연하게도 산업 고객들은 이런 알고리즘을 신뢰할 수 있는지 걱정하는 경우가 많습니다.

MIT의 연구자들은 여러 가지 강력한 SLAM 알고리즘을 개발했으며, 이를 얼마나 신뢰할 수 있는지 수학적으로 증명하는 방법도 제시했습니다. MIT의 Leonardo Career Development 조교수인 Luca Carlone의 연구실은 SLAM 결과의 무작위 오류와 불확실성을 줄이는 GNC(단계적 비볼록) 알고리즘에 대한 논문을 출판했습니다. 더욱 중요한 점은 이 알고리즘이 기존 방법이 '길을 잃는' 곳에서 올바른 결과를 생성한다는 것입니다. Carlone, Tzoumas, 그리고 Carlone의 학생인 Heng Yang, Pasquale Antonante가 쓴 논문은 ICRA(국제 로보틱스 및 자동화 컨퍼런스)에서 로봇 비전 분야 최우수 논문상을 수상했습니다. 이 GNC 알고리즘은 기계가 육지, 물, 하늘, 우주를 횡단하고 돌아와서 그 과정을 전달하도록 도와줍니다.

모든 것이 정렬되다

로봇의 인식은 종종 잡음이 많거나 오해의 소지가 있는 입력을 제공하는 센서에 의존합니다. MIT의 GNC 알고리즘을 통해 로봇은 어떤 데이터 포인트를 신뢰할지, 어떤 데이터 포인트를 삭제할지 결정할 수 있습니다. GNC 알고리즘의 응용 사례 중 하나는 형상 정렬입니다. 로봇은 2D 카메라 이미지를 사용하여 자동차의 3D 위치와 방향을 추정합니다. 로봇은 헤드라이트, 바퀴, 거울 등의 특징점에 레이블이 지정된 많은 지점이 있는 카메라 이미지를 수신합니다. 또한 메모리에는 자동차의 3D 모델이 들어 있습니다. 목표는 3D 모델의 크기를 조정하고, 회전하고, 배치하여 모델의 특징이 이미지의 특징과 일치하도록 하는 것입니다. Carlone은 "특징 감지 알고리즘이 완벽하게 작업을 수행했다면 쉬운 일이지만 그런 경우는 거의 없습니다."라고 말합니다. 실제 응용 사례에서 로봇은 잘못 표시된 특징인 많은 이상값에 직면하게 되는데, 이는 모든 관찰치의 90% 이상을 차지할 수 있습니다. 바로 여기서 GNC 알고리즘이 등장하여 모든 경쟁자보다 우수한 성과를 보입니다.

로봇은 각 특징 쌍 사이의 거리(예: 이미지의 오른쪽 헤드라이트와 모델의 오른쪽 헤드라이트)를 고려하는 수학적 함수를 사용하여 이 문제를 해결합니다. 그들은 이 기능을 '최적화'하려고 시도합니다. 즉, 모든 거리를 최소화하도록 모델을 조정하려고 합니다. 기능이 많을수록 문제는 더 어려워집니다.

문제를 해결하는 한 가지 방법은 함수에 대한 가능한 모든 해를 시도하여 어느 것이 가장 잘 작동하는지 확인하는 것이지만, 시도할 해가 너무 많습니다. 더 일반적인 방법은 "한 가지 해를 시도하고 더 이상 개선할 수 없을 때까지 계속해서 노력하는 것인데, 예를 들어 모델의 헤드라이트를 2D 이미지의 헤드라이트와 더 맞게 정렬하는 것"이라고 Yang과 Antonante는 설명합니다. 잡음이 많은 데이터가 있으면 완벽하지 않을 수 있습니다. 헤드라이트는 정렬되지만 바퀴는 정렬되지 않을 수 있습니다. 따라서 다른 해로 다시 시작하여 가능한 한 그 해를 개선하고, 이 과정을 여러 번 반복하여 가장 좋은 결과를 찾을 수 있습니다. 하지만 최선해를 찾을 가능성은 여전히 낮습니다.

실제 응용 사례에서 로봇은 많은 이상값에 직면하게 되는데, 이는 모든 관찰치의 90% 이상을 차지할 수 있습니다. 바로 여기서 GNC 알고리즘이 등장하여 모든 경쟁자보다 우수한 성과를 보입니다.

대응 관계를 갖는 메시 및 포인트 클라우드 (70% 이상값)
GNC-TLS에 의한 성공적인 정합
일반적인 SLAM 알고리즘에 의한 잘못된 정합

GNC 알고리즘은 최대 70~90%의 이상값이 있는 잡음이 많은 측정값에도 불구하고 최적의 정렬을 찾아냅니다. 이미지 출처: MIT.

GNC의 핵심은 먼저 문제를 단순화하는 것입니다. 그들은 최적화하려는 함수(3D 모델과 2D 이미지의 차이점을 설명하는 함수)를 단 하나의 최선해를 제공하는 함수로 줄입니다. 이제 그들은 해를 선택하고 계속 시도하면 결국 최선해를 찾을 수 있을 것입니다. 그런 다음 원래 함수의 복잡성을 약간 다시 도입하고 방금 찾은 해를 개선합니다. 그들은 원래의 함수와 최적해를 찾을 때까지 이 작업을 계속합니다. 헤드라이트는 잘 정렬되어 있고, 바퀴와 범퍼도 마찬가지입니다.

원을 돌다

이 논문에서는 GNC 알고리즘을 형상 정렬 및 SLAM 등의 문제에 적용합니다. SLAM의 경우 로봇은 센서 데이터를 사용해 과거 궤적을 파악하고 지도를 구축합니다. 예를 들어, 대학 캠퍼스를 돌아다니는 로봇은 주행거리 측정 데이터를 수집해 오전 8시와 오전 8시 15분 사이, 오전 8시 15분과 오전 8시 30분 사이 등등에 로봇이 얼마나 멀리 그리고 어느 방향으로 갔는지를 알려줄 수 있습니다. 또한 오전 8시, 오전 8시 15분 등에 대한 라이다 및 카메라 데이터도 있습니다. 가끔은 Tzoumas가 세븐일레븐을 지나쳤을 때처럼 다른 시간에 벌어진 같은 일을 관찰하고 루프를 완성할 것입니다.

연구자들은 GNC 알고리즘이 최첨단 기술보다 더 정확하고 더 많은 비율의 이상값을 처리할 수 있다는 것을 발견했습니다.

형상 정렬과 마찬가지로 최적화 문제도 해결해야 합니다. 이 논문의 1저자인 양은 다음과 같이 설명했습니다. "SLAM의 경우, 3D 모델에 맞게 특징을 정렬하는 대신, 시스템은 지도에서 객체를 정렬하기 위해 이동했다고 판단하는 궤적을 구부립니다." 첫째, 시스템은 다양한 센서에서 감지된 이동 경로 간의 차이를 최소화하기 위해 작동합니다. 각 센서는 측정 오류가 있을 가능성이 높기 때문입니다. 예를 들어, 로봇의 주행거리계가 오전 8시와 8시 15분 사이에 100m를 이동했다고 표시하는 경우, 라이다와 카메라 측정값을 기반으로 업데이트된 궤적은 해당 거리 또는 그에 가까운 거리를 반영해야 합니다. 또한 이 시스템은 동일한 장소로 보이는 위치 간의 거리를 최소화합니다. 로봇이 오전 8시와 오전 10시에 같은 7-Eleven을 본다면 알고리즘은 불러온 궤적을 구부리려고 시도할 것입니다. 즉, 각 다리를 조정하여 오전 8시와 오전 10시에 불러온 위치가 정렬되도록 하고 루프를 닫을 것입니다.

건물 내부의 지도를 작성하는 로봇. GNC는 점차적으로 복잡한 데이터를 풀어냅니다. 비교적 적은 단계만으로 알고리즘은 건물 내부의 정확한 지도를 도출해냅니다. 이미지 출처: MIT.

한편, 알고리즘은 이상값(잘못된 데이터 포인트, 알고리즘이 원래대로 돌아갔다고 생각했지만 그렇지 않은 곳)를 식별하여 삭제하고, 형상 정렬에서 잘못 표시된 특징도 삭제합니다. 잘못 루프를 닫는 것은 원치 않은 결과입니다. Tzoumas는 메인의 숲을 달리던 어느 날, 익숙해 보이는 쓰러진 나무 줄기를 지나쳤던 때를 회상합니다. 그는 루프를 닫았다고 생각하고, 이 랜드마크를 이용해 방향을 틀었습니다. 20분간 익숙한 것을 하나도 보지 못하고서야 그는 자신이 실수를 저질렀음을 의심하고 돌아섰습니다.

최적화 전의 불러온 궤적은 꼬인 실 뭉치처럼 보일 수 있습니다. 풀어보면, 로봇이 지나간 캠퍼스의 길과 복도 모양을 본떠 직각의 선들이 모인 것처럼 보입니다. 이 SLAM 공정에 대한 기술 용어는 자세 그래프 최적화입니다.

이 논문에서 연구자들은 형상 정렬 및 자세 그래프 최적화를 포함한 여러 응용 사례에서 GNC 알고리즘을 다른 알고리즘과 비교했습니다. 그들은 이 방법이 최첨단 기술보다 더 정확하고 더 높은 비율의 이상값을 처리할 수 있다는 것을 발견했습니다. SLAM의 경우, 루프 폐쇄 4개 중 3개가 실수였더라도 작동했는데, 이는 실제 응용 사례에서 발생할 수 있는 이상값보다 훨씬 더 많습니다. 더욱이, 그들의 방법은 다른 알고리즘보다 효율적이어서 필요한 계산 단계가 더 적습니다. Tzoumas는 "어려움 중 하나는 다양한 응용 사례에서 잘 작동하는 범용 알고리즘을 찾는 것이었습니다."라고 말했습니다. Yang은 10번 이상 시도했다고 말했습니다. 결국 그들은 '적당한 지점'을 찾았다고 Tzoumas는 말합니다.

GNC 알고리즘은 MIT 그레이트 돔 내부 지도를 정확하게 재구성합니다.

MATLAB 로봇이 잔디를 깎는 데서 얻은 데이터를 바탕으로 지도를 생성했습니다. 왼쪽: 잔디밭의 원래 지도. 가운데: 알려지지 않은 이상값 루프 폐쇄로 인해 잘못 레이블이 지정된 데이터를 포함하는 일반적인 SLAM 알고리즘으로 최적화된 지도입니다. 오른쪽: GNC 알고리즘으로 최적화된 지도.

MathWorks의 로보틱스 연구 과학자인 Roberto G. Valenti는 연구에서 생산으로 전환하는 것이 연구 결과가 규모에 따라 변화를 가져오는 데 중요한 단계라고 말합니다. MathWorks는 Carlone 연구실과 협력하여 Navigation Toolbox™의 일부로 GNC 알고리즘을 MATLAB에 통합해 왔습니다. 이를 통해 기업은 상용 및 산업용 자율 시스템에 SLAM을 구현합니다.

위험에서 벗어나기

Carlone의 연구실에서는 GNC 알고리즘의 기능을 확장하는 방법을 연구하고 있습니다. 예를 들어, Yang은 정확하다고 인증받을 수 있는 인식 알고리즘을 설계하는 것을 목표로 합니다. 그리고 Antonante는 다양한 알고리즘 간의 불일치를 관리하는 방법을 찾고 있습니다. 만약 자율주행 차량의 SLAM 모듈이 도로가 직선이라고 알려주는데 차선 감지 모듈이 도로가 오른쪽으로 꺾인다고 알려준다면 문제가 있습니다.

GNC 알고리즘은 로봇이 스스로 실수를 잡을 수 있게 하는 새로운 벤치마크입니다.

Tzoumas는 하나의 로봇에서 여러 알고리즘 간의 상호작용뿐 아니라 여러 로봇 간의 협업으로 확장하는 방법을 모색하고 있습니다. 초기 연구에서 그는 보행자나 자동차로 도망치려는 범죄자 등의 표적을 추적하기 위해 비행 드론을 프로그래밍했습니다. 앞으로는 여러 대의 기계가 GNC 알고리즘을 함께 실행할 수도 있을 것입니다. 각 기계는 이웃 기계에 부분적인 정보를 제공하고, 함께 지구 또는 다른 곳의 위치를 표시한 세계 지도를 작성합니다. 그는 올해 University of Michigan의 항공우주 공학과로 옮겨서 전장이나 다른 행성과 같은 어려운 환경에서도 다중 로봇의 계획 및 자체 탐색을 위한 신뢰할 수 있는 자율성을 연구할 예정입니다.

Antonante는 "AI와 인식 알고리즘이 어떻게 작동할지 모르는 것은 이를 사용하는 데 큰 장애물"이라고 말했습니다. 그는 로봇 박물관 가이드가 방문객이나 모나리자와 충돌할 가능성이 있다면 신뢰할 수 없을 것이라고 지적합니다. "시스템이 환경과 자신에 대해 깊이 이해하도록 해야 합니다. 그래야 시스템이 스스로의 실수를 잡을 수 있습니다." GNC 알고리즘은 로봇이 스스로 실수를 잡을 수 있게 해주는 새로운 벤치마크이며, 가장 중요한 점은 Tzoumas가 말했듯이 "위험에서 벗어나는 데 도움이 됩니다."

로보틱스에 관한 다른 주요 사례

ETH Zürich

9명의 학부생 팀이 최종 프로젝트로 개발한 혁신적 점핑 로봇

Weston Robot

코로나19 대응 로봇을 만들기 위한 열흘 간의 질주

Corindus

원격의료의 새로운 지평

Drexel University

옷 입는 로봇: 로봇에 촉각을 부여하는 디자이너 의류


다른 사례 읽기

패널 내비게이션

아카데미아 / AI

고대 유물의 비밀을 밝혀낸 AI

딥러닝과 영상 처리를 사용한 미술품 복원 및 보존

패널 내비게이션

녹색 기술 / 제어 시스템

매년 항구에서 수백만 톤의 CO2 배출 절감

수소 연료전지로 상용차 전기화

패널 내비게이션

STEM / 아카데미아

STEM에서 미래를 건설하다

코딩이 단순히 컴퓨터 화면을 넘어서는 것임을 깨닫는 고등학생