자율주행차 기술들의
상호작용 알아보기
이번 시리즈도 어느덧 반환점을 돌아서 마지막 에피소드를 향해가고 있네요. 시리즈 시작을 하면서 자율주행차에 대한 이해를 넓히고 오해를 없애기 위한 작은 시도로 생각을 했습니다. 그런 제 생각에 어느 정도 글을 읽으시는 분들에게 다가갔는지는 모르겠습니다. 오늘 글을 끝으로 자율주행차의 기술적인 부분에 대한 소개는 마무리를 합니다.
마무리를 하는 글이기에 지금까지 개별적으로 소개를 했던 자율주행차의 기술들이 어떻게 서로 상호 작용을 하는지에 대해서 알아보겠습니다. 다시 말씀드리지만 이번 시리즈는 자율주행차에 대한 깊이를 추구하기보다는 큰 그림을 이해할 수 있도록 하는 것이 목표이기 때문에 이번 글 역시 간단히 소개해드립니다.
(◍’◡’◍)
Episode 6 출발합니다!
Ep1. 자율주행차라고 들어는 본 것 같다
Ep2. 자율주행차가 세상을 보는 방법은 여러가지이다
Ep3. 자동차가 사람을 믿지 못한다. 그래서 나서고 있다
Ep3 확장판. 테슬라 오토파일럿만 있는 것은 아니다
Ep4. 자동차 센서는 완전히 믿음을 주지 못한다
Ep5. 자율주행차는 나름 많은 생각을 하면서 운전한다
Ep6. 자율주행차가 도대체 어떻게 움직이는지 궁금하다
Ep7. 그런데 자율주행차만 있으면 안 된다
Ep8. 그래서 자율주행차가 우리에게 뭘 줄 수 있는데요?
들어가기
지금까지의 에피소드로 제가 생각했던 자율주행차가 움직이기 위해서 필요한 기술적인 내용들은 모두 소개해드린 것 같습니다. 각각의 항목만으로 엄청나게 복잡하고, 다양한 연구와 의견들이 존재합니다. 지금도 전세계 기업, 연구소, 대학 등에서 관련된 기술에 대해서 고민하고 발전시키고 있는 것들입니다.
하지만 이렇게 각각의 항목만으로는 자율주행차가 움직일 수 없습니다. 모든 것들이 유기적이고, 잘, 제대로, 완전하게 조화를 이루어서 동작을 해야 좋은 자율주행 기술을 구현할 수 있을 것입니다. 오늘은 그러한 조화에 대해서 소개를 해볼까 합니다. 물론 아주 간단히, 생략과 축약을 통해서 말이지요.
자율주행차를 개발을 하는 기업들은 각 분야별 전문가들을 통해 각각의 기술을 개발하고 서로 조화롭게 하는 작업들을 하는 것을 목표로 하고 있습니다. 하지만 실제 이런 조화를 위해서는 자율주행차 개발의 방향을 어떻게 가지고 가는지에 따라 기업마다 자율주행차의 모습은 달라질 수 있습니다.
LiDAR를 사용하지 않고, HD 지도를 사용하고, V2X를 사용하는 등의 선택이 될 수 있습니다. 조금 더 구체적으로는 카메라는 몇 개를 사용할지, 레이더 위치는 어디에 설치할지, 사용하는 컴퓨터 시스템은 어느 회사 것을 사용할지, 등등 수많은 다른 선택에 따라 자신들이 구현하고 싶은 자율주행 기술의 방향을 완전히 달라집니다. 물론 이런 정보들은 기업 비밀이겠지요. 뭐 당연한 것입니다.
이번 에피소드에서 제가 소개하려고 자율주행차의 전체적인 흐름은 특정 기업의 자율주행 기술이 아니라 일반적인 내용으로 접근을 할 것입니다. 즉 지금까지의 에피소드에서 소개했던 기술들이 자율주행차의 어느 위치에서 자신들의 역할을 담당하고 있는지에 대해서 설명하도록 하겠습니다. 이런 것만 정리하고 소개하는 논문들도 있습니다. 크게 4가지의 주제로 나누어서 설명하도록 하겠습니다.
- Drive by Wire 변환
- 정보 입력 방식
- 지도와 시뮬레이션
- 자율주행 소프트웨어
각 항목 별로 이전에 다루었던 것도 있지만,
새로운 것들도 있습니다. 새로운 것들은
간단한 설명을 하도록 하겠습니다.
Drive by Wire 변환
시작부터 생소한 단어를 소개했네요. ‘Drive by Wire’를 우리말로 변역하기 좀 어렵네요. 자동차 용어 사전도 ‘드라이브 바이 와이어’라고 설명하고 있습니다. ^^ 뭐 간단히 설명하면 예전 자동차의 기계적 연결을 전기적 연결로 바꾸어서 자동차의 기본적인 조작을 전자 제어로 할 수 있는 기술을 의미합니다. 저는 간단히 기계적 메커니즘이 아닌 컴퓨터로 자동차를 제어할 수 있다는 의미로 이해하고 있습니다. ㅎㅎ
이 항목은 “황방향 및 종방향 제어, 차량 CAN 인터페이스, 중앙 컴퓨터, 파워 제어, 무선 연결” 정도로 구분을 할 수 있습니다. 모두 현재 자동차에서 제어를 위해 필요한 내용들이 포함되어 있습니다. 사람의 조작을 의해 동작하는 자동차에 필요한 제어 시스템입니다. 그리고 자율주행차도 움직이는 것은 같으니 개념적으로 큰 변화는 있지 않을 것 같습니다.
- 황방향 및 종방향 제어: 자동차가 움직이는데 필요한 방향을 제어
- 차량 CAN 인터페이스: 자동차 내부 부품 사이의 통신을 담담하는 CAN의 구성
- 중앙 컴퓨터: 자동차의 내부에서 일어나는 모든 움직임을 총괄하는 컴퓨터
- 파워 제어: 자동차에 필요한 파워를 제어
- 무선 연결: 무선을 통해 연결
이런 자동차의 물리적 제어에서도 자율주행 기술 발전과 함께 전기차의 등장이 본격화되면서 전기차에 어울리는 시스템으로 변화가 바쁘게 이어지고 있는 분야이기도 합니다. 그 변화를 간단히 요약하면 단순화와 중앙 집중화의 시스템 구축이 이루어지고 있습니다.
정보 입력 방식
이 항목은 에피소드 2, 4에서 소개했던 센서와 V2X 기술에 해당되는 부분입니다. 자율주행차는 스스로 운전을 하기 위해서 스스로 주변을 인식할 수 있는 능력이 필요하다고 했습니다. 그렇게 하기 위해 자동차는 주변 360도를 파악할 수 있는 능력을 가져야 합니다. 대표적으로는 카메라가 그 역할을 한다고 했습니다. 하지만 보다 더 분명한 인지를 위해서 레이더, 라이더, 소나 등을 사용한다고 했습니다. 그리고 자신의 위치를 정확히 파악하기 위해서 GPS, IMU 등을 사용한다고 했습니다.
그리고 자동차에 설치되어 있는 센서 범위의 한계를 넘어서는 정보를 위한 V2X 라는 기술은 자동차가 지나가는 경로의 다양한 정보 매체로부터 정보를 받아서 보다 나은 경로를 설정할 수 있습니다. 그리고 자율주행차가 스스로 움직이는 로봇이라고 하더라도 사용자와 소통 방법이 없으면 사용자의 의사를 알 수 없습니다. 사람의 마음은 언제나 변덕이 심하니까요. 처음의 경로와 다르게 새로운 경로를 설정할 수도 있으니까요. 그런 목적을 위해서 사용자와 소통을 위한 수단도 반드시 필요합니다.
HD 지도와 시뮬레이션
자율주행차 운행에 에피소드 2에서 언급했던 HD 지도도 중요한 정보입니다. 하지만 HD 지도의 경우는 대부분은 이미 생성된 정보를 자율주행차가 가지고 있고 그 정보를 사용합니다. 그런 이유로 자율주행차를 테스트하기 위해서 많은 기업에서 현지 답사를 우선 진행합니다. 그리고 필요한 지도를 생성합니다.
그리고 이렇게 수집된 지도 정보는 자동차에 저장을 할 수도 있겠지만, 그 크기가 커서 저장하는 것에 한계가 있을 수 있습니다. 그런 이유로 지도는 Cloud를 통해 정보를 받는 방식을 선호하고 있습니다. 물론 이런 서비스를 위해서는 통신 기능은 기본적으로 필요합니다. 그리고 지도는 이후 주행 테스트를 진행하면서 업데이트가 지속적으로 됩니다.
그리고 에피소드 5에서 자율주행차의 소프트웨어에 대해서 설명했습니다. 그리고 자율주행차의 소프트웨어는 인공지능의 발전과 함께 그 발전 속도가 빨라졌다고 했습니다. 그러한 인공지능에게 필요한 것은 바로 데이터 라고도 했습니다. 많은 데이터를 통해 보다 많은 학습을 해서 다양한 상황에 대처할 수 있는 능력을 키워야 합니다. 하지만 실제로 이러한 데이터를 수집하는 것은 비용이 많이 필요합니다. 실제 도로 주행을 통해서 얻을 수 있으니까요.
이러한 부담을 줄이기 위해서 실제 자율주행차를 개발하는 기업들은 실제 도로와 함께 시뮬레이션 작업을 통해 보다 많은 주행 거리를 운행하고 있습니다. 이 방법은 실제 도로 주행을 하지 않고 24/7/365 작업이 가능합니다. 그리고 시뮬레이션에서 사용한 데이터는 실제로 도로에서 수집한 데이터를 적용해서 현실성을 높이는 방법을 채택합니다. 결국 자율주행차는 실제로 도로 주행이 가장 중요하다는 것을 할 수 있습니다. COVID-19의 유행으로 이동 제한이 되었던 미국에서 자율주행 개발 기업들은 실제 도로 주행은 중지했지만, 시뮬레이션을 통한 AI 학습은 계속 진행을 했습니다.
자율주행 소프트웨어
저는 자율주행차의 핵심은 소프트웨어라고 생각하는 사람입니다. 물론 그렇다고 앞선 언급했던 실제 자동차의 하드웨어가 중요하지 않다는 것은 아닙니다. 하지만 자율주행차가 등장하면서 하드웨어보다는 소프트웨어의 중요성이 훨씬 높아졌기 때문입니다. 기존에 없었던 사람을 대체할 그 무엇이 필요하기 때문이기도 합니다. 에피소드 5에서 그러한 사람을 대체하는 것을 인공 지능이라고 설명했습니다. 그리고 그러한 인공 지능의 능력은 크게 “지역화, 인지, 계획, 제어” 영역으로 나눌 수 있다고 했습니다. 각각의 영역은 외부에서 입력된 다양한 정보를 각 영역에서 사용하게 됩니다.
큰 흐름으로 정리를 하면 입력 정보를 기반으로 지역화, 인지가 이루어지고, 인지 단계를 거친 정보를 가지고 계획 단계에서 자동차의 이동에 필요한 경로를 결정합니다. 그리고 이렇게 결정된 경로에 따라 제어 단계에서 Drive by Wire를 통해 실제 자동차를 움직이게 됩니다. 즉 최종 단계의 소프트웨어는 결론적으로 자동차를 움직이게 하고 다시 새롭게 입력된 정보를 통해 새로운 계획을 하고, 새로운 상황에 맞추어서 제어를 하는 반복 작업이 자율주행차가 움직이는 과정입니다.
아래 그림은 소프트웨어를 중심으로 조금 자세하게 자율주행의 기능적 시스템을 일반화한 내용입니다. 조금 복잡하지요. 그냥 참고하시는 차원에서 소개합니다. ^^ 그리고 이번 글에서는 소개하지 않았지만, 최근에는 계획에 포함되어 있던 예측(Prediction)을 별도로 구분하는 곳이 많아 졌습니다. 예측은 자율주행차 주변에 움직이는 대상의 움직임을 예상하고 대응하기 위한 것입니다.
이전의 5개 에피소드를 통해 설명했던 내용들은 자율주행차가 움직이는데 필요하고 각각의 위치에서 중요한 역할을 담당하고 있습니다. 앞서서 설명한 내용은 제 나름 가장 일반적인 내용들을 간단히 소개해드린 것입니다. 각 항목별로도 깊이 들어가면 그 내용이 복잡하게 연결되어 있습니다. 그리고 어느 한 가지라도 해당 기능을 제대로 동작하지 않으면 전체 시스템에 문제를 만들 수 있습니다.
컴퓨터에서 이렇게 문제가 발생하면 화면에 블루 스크린만 뜨고, 작성하던 문서만 사라지겠지만, 자동차에서 이러한 문제가 발생하면 사람의 생명과 바로 직결된 문제로 이어지게 됩니다. 결국 자율주행차도 “안전(Safety)” 문제와 떨어질 수 없습니다. 이런 안전에 대한 부담은 자율주행차의 등장을 늦추고 있는 가장 큰 원인 중에 하나로 여겨지고 있습니다.
나오기
오늘 글을 끝으로 자율주행차의 기술적인 부분에 대한 이야기는 마무리를 짓습니다. 어느 정도 자율주행차에 대한 이해의 정도가 올라가셨는지 모르겠습니다. 나름 간단히 설명을 드리려는 노력을 했지만, 종종 사용한 전문 용어도 있고, 문장이 매끄럽지 못한 부분도 있었을 것 같습니다. 그래도 단편적으로 접하게 되는 자율주행차의 정보를 큰 흐름에서 이해를 할 수 있게 된다면 충분히 의미가 있는 시리즈였을 것 같습니다.
지금까지의 에피소드는 자율주행차의 기술적인 내용을 중심으로 소개를 해드렸다면 다음에 소개하려는 나머지 에피소드는 사회적 의미에 대해서 접근을 하려고 합니다. 다음 에피소드는 이렇게 개발되고 있는 자율주행차가 운영될 미래 교통 환경에 대한 이야기를 한 번 해보도록 하겠습니다.
Over the Vehicle !!!
OTV
Over the Vehicle
자율주행차 그 이상의 가치