자율주행 자동차가 앞을 보는 방법💡
돌고래와 박쥐의 공통점이라고 하면 어떤 게 떠오르시나요?
아마도 대부분 초음파로 주변을 인식하는 걸 가장 먼저 떠올리실 거라고 생각합니다. 이렇게 소리나 초음파를 발생시키고 반사되어 돌아오는 메아리 신호로부터 위치를 측정하는 것을 반향정위(反響定位, echolocation)라고 하는데요. 이 반향정위를 통해 주변을 파악하기로 유명한 두 동물이 바로 돌고래와 박쥐입니다.
인간을 비롯한 대부분의 동물들은 눈을 통해서 주변을 감지하기 때문에 일상 생활에서는 굳이 이러한 방식이 필요하지 않았습니다. 하지만 기술이 발전하면서 사람들은 눈으로 볼 수 없는 상황이나 거리를 감지하기 위해서 ‘반향정위’를 응용한 기술을 생각해냈죠.
그 결과, 물속에서는 음파를 이용하는 소나(SONAR, SOund Navigation And Ranging)를, 땅 위에서는 전파를 이용하는 레이더(RADAR, RAdio Detection And Ranging)를 개발하였습니다.
잠수함이 나오는 영화를 보신 분이라면, 영화 속에서 ‘핑~~~~~~ 핑~~~~~~’ 하는 효과음을 들어본 적이 있으실 겁니다. 그게 바로 소나에서 발생한 음파인데요. 물속에서는 멀리 전달이 되지 않는 빛이나 전파와는 달리 공기보다 수중에서 훨씬 빠르고 멀리 전파되는 ‘소리’를 이용한 것이죠.
소나는 이렇게 물속에서 음파를 발생시키고, 그 음파가 목표에 맞고 반사되어 돌아와 들릴 때까지의 시간을 측정한 후에, 음파의 속도로부터 떨어진 거리를 계산하여 알려줍니다. 음파를 특정 방향으로 발사했다면 그 방향으로 얼마나 떨어진 곳에 무엇인가 있다는 것을 탐지하는데요. 방향을 360도로 돌려가면서 스캔을 하게 되면 어느 방향, 얼마만큼의 거리에 목표가 있는지 알 수 있게 됩니다.
마찬가지의 방법으로 지상에서 전파를 이용하는 장치가 바로 레이더입니다. 지상에서는 음파보다 전파가 훨씬 빠르고 멀리 도달하기 때문에 전파를 사용합니다.
이러한 기술들은 초기에는 주로 군사적인 목적으로 사용됐지만, 점차 기술이 발전하며 민간에서도 널리 사용되기 시작했습니다. 대표적인 예가 자동차죠.
주차 보조 센서는 초음파를 사용해서 장애물이 얼마나 근접해 있는지를 운전자에게 알려 보다 수월하게 주차를 할 수 있도록 도와줍니다. 전방 레이더는 앞차와의 간격을 자동차가 인식하게 해 충돌할 것 같은 상황에서는 긴급제동을 하게 하거나 어댑티브 크루즈 컨트롤(Adaptive Cruise Control, 차량 전방에 장착된 레이다를 사용하여 앞차와의 간격을 적절하게 자동 유지하는 시스템)에서 상황에 맞게 속도를 조절합니다. 측후방 레이더는 사이드 미러의 사각지대에 있는 차량을 감지하여 차선 변경 시에 주의를 주거나, 후진으로 빠져나가는 상황에서 지나가는 차량을 감지해 긴급 제동을 해줍니다.
거리 감지를 위해 차량에는 카메라도 여러 군데 장착돼 있는데요. 주차를 도와주는 전후방 카메라와 차선 변경을 도와주는 측후방 카메라는 운전자에게 실시간 영상을 제공하여, 운전자의 편의 뿐 아니라 안전도 지킵니다. 전방 차선 감지 카메라는 차선을 감지해 차량이 차선을 벗어날 것 같으면 주의를 주고요.
이렇게 다양한 센서들이 자동차에 사용되는 이유는 각각 센서들의 장단점이 다르기 때문입니다. 카메라는 해상도가 높지만 거리정보는 알려주지 못합니다. 두 개의 카메라를 이용한 스테레오 카메라를 이용하면 어느 정도 거리를 알아낼 수 있기는 하지만, 장거리에서는 거리 정확도가 떨어지죠.
레이더는 사물이 얼마나 떨어진 곳에 있는지는 알려주지만 그것이 무엇인지 인식할 수 있을 정도의 해상력은 없습니다. 초음파 센서는 가격은 저렴하지만 비교적 가까운 거리 안에서만 인식이 가능해요.
그렇기 때문에 각각의 센서들은 제 역할에 맞는 용도대로 사용되고 있습니다. 하지만 주행 보조의 단계를 넘어서 자율주행을 위해서는 먼 곳까지 높은 해상도로 거리정보를 알려줄 수 있는 장치가 필요합니다. 그래서 최근에 주목을 받고 있는 것이 바로 라이다(LiDAR, Light Detection And Ranging)입니다.
앞서 레이더는 해상력이 낮다고 했는데, 이러한 생각을 하실 수도 있습니다.
"레이더로 정밀하게 스캔하면 고해상도로 거리정보를 알 수 있지 않을까?"
하지만 레이더가 사용하는 파장은 그 정도의 해상도를 구현하기엔 너무 길어요. 쉽게 비유를 들어보자면, 책상 위에 10원 100원 500원짜리 동전을 올려놓고 눈을 가린 채로 절구 방망이로 이 동전들을 구별해 본다고 생각해 보세요. 동전이 있는지 없는지 정도는 구별할 수 있지만, 절구 방망이로는 동전의 미세한 패턴들을 느낄 수 없기 때문에 그 동전이 10원짜리인지 100원짜리인지 500원짜리인지 구별하기가 어렵겠죠.
그럼 이제 같은 상황에서 절구 방망이가 아닌 이쑤시개를 이용해서 이 동전들을 구별한다고 생각해 보시죠. 얇은 이쑤시개를 사용하면 동전에 새겨진 패턴까지 파악할 수 있기 때문에 동전들을 구별하기 훨씬 쉬워집니다. 절구 방망이를 레이더에서 사용하는 수 mm 정도 파장의 전파, 이쑤시개를 라이다에서 사용하는 1μm정도 파장의 레이저라고 생각하면 왜 라이다가 필요한지 쉽게 이해가 되실 겁니다.
라이다도 박쥐와 돌고래, 그리고 레이더와 같은 방식으로 작동하기 위해서는 빛을 쏠 수 있는 장치와, 반사되어 돌아오는 빛을 감지할 수 있는 장치, 그리고 쏘고 나서 반사되어 돌아오는 데 걸리는 시간을 측정해 줄 수 있는 장치가 필요합니다.
빛을 쏘는 장치로는 주로 반도체 레이저를 사용합니다. NIR(Near Infrared, 근적외선) 혹은 SWIR(Short Wave Infrared, 단파장 적외선)과 같은 적외선 영역의 레이저를 많이 사용하고 있고, 수 ns의 레이저 펄스를 발사하고, 수 μs동안 반사되어오는 신호를 기다렸다가 다음 펄스를 발사하기를 반복합니다.
빛을 감지하는 장치로는 단광자 아발란치 다이오드(SPAD, Single-Photon Avalanche Diode)를 사용합니다. 반도체 레이저는 익숙해도 SPAD는 낯설 수 있는데요, 빛의 세기에 비례해서 전기 신호를 만들어주는 일반적인 센서와는 다르게 SPAD는 빛에너지의 최소 단위인 광자 하나만 들어와도 확률적으로 반응하여 감지할 수 있습니다.
여기에 TDC(Time-to-Digital Converter)라 불리는 시계를 이용해서 레이저가 발사되고, 반사되어 돌아오는 데 걸리는 시간을 측정하여 거리를 알려줍니다. 하지만 SPAD는 한번 반응한 후에는 한동안 반응하지 못하는 시간이 존재합니다. 이렇게 단 하나의 펄스를 쏴서 돌아온 단 하나의 광자로 거리를 판단하게 되면 정확도가 떨어지기도 하고 밝기를 알 수 없는 이유입니다.
그렇기 때문에 여러 번 레이저를 쏘고 받기를 반복해 쌓은 데이터를 누적하여 통계적으로 어느 시간에 몇 개의 광자가 들어왔는지를 보고, 얼마나 떨어진 거리에 어느 정도의 반사율을 가진 물체가 있는지를 감지하게 됩니다.
이렇게 빛을 쏘고, 받고, 시간을 측정해 주는 장치를 가로/세로 방향으로 숫자를 늘리거나 거울 등을 통해서 상하/좌우 스캔을 하게 되면, 주변의 3차원 데이터를 얻을 수 있는데요. 이 데이터로부터 이것이 자동차인지 보행자인지 장애물인지 판단하여 주행을 위한 정보로 사용되는 것이죠.
아직 라이다 기술은 발전해 나가고 있는 단계입니다. 크기도 점점 작아지고 있고, 성능도 좋아지고 있죠. 현재는 일반 승용차에 보편적으로 사용하는 단계는 아니지만, 아마도 몇 년 뒤에는 일반적인 자가용 승용차에도 라이다가 장착되어 더욱 편하고 안전한 이동 수단으로써 우리 삶의 질을 향상시켜 줄 것입니다.
라이다가 밝혀줄 자율주행의 미래! 기대되지 않으세요?