한 대의 차 안에 들어간 작은 운전 조직
자율주행차를 이해할 때 가장 피해야 할 오해는 '좋은 센서 하나가 차를 운전한다'는 생각이다. 카메라가 차선을 보고, 라이다가 거리를 재고, 레이더가 속도를 알아내도 그것만으로는 차가 움직이지 않는다. 센서 데이터는 해석되어야 하고, 해석된 상황은 결정으로 바뀌어야 하며, 결정은 조향·가속·제동 명령으로 실행되어야 한다.
사람의 운전도 비슷하다. 운전자는 앞차의 브레이크등을 보고, 옆 차선의 빈 공간을 확인하고, 내가 어느 차로에 있는지 판단한 뒤, 발과 손으로 차를 움직인다. 자율주행 시스템은 이 과정을 기계적으로 나눈다. 보통 큰 흐름은 다음과 같다.
센서 입력: 카메라, 라이다, 레이더, 초음파 센서, GPS, IMU, 휠 속도 센서가 데이터를 만든다.
인지와 위치 추정: 주변 물체, 차선, 신호등, 주행 가능 공간을 찾고, 차량 자신의 위치를 계산한다.
예측과 경로 계획: 주변 차량과 보행자가 어떻게 움직일지 예상하고, 내 차가 갈 길을 정한다.
차량 제어: 계획된 움직임을 조향각, 가속 페달, 브레이크 압력 같은 실제 명령으로 바꾼다.
피드백: 차량이 실제로 어떻게 움직였는지 다시 측정해 다음 판단에 반영한다.
이 흐름은 한 번만 실행되지 않는다. 차량은 주행 내내 같은 과정을 매우 짧은 주기로 반복한다. 앞차가 갑자기 감속하면, 시스템은 센서 입력을 다시 읽고, 거리와 상대 속도를 계산하고, 감속 계획을 만들고, 브레이크를 제어한다. 자율주행은 한 번 내린 결정을 고수하는 기술이 아니라, 계속 바뀌는 도로 상황에 맞춰 판단을 갱신하는 폐쇄 루프 시스템이다.
AI 생성 이미지
센서에서 바퀴까지 이어지는 데이터 흐름
자율주행의 첫 단계는 원시 데이터를 받는 일이다. 카메라는 색과 형태를 잘 본다. 차선, 표지판, 신호등, 보행자 자세를 파악하는 데 유리하다. 라이다는 빛을 쏘고 되돌아오는 시간을 이용해 주변의 3차원 형상을 만든다. 레이더는 비나 안개 속에서도 비교적 안정적으로 물체의 거리와 속도를 측정한다. GPS와 IMU는 차량의 대략적인 위치와 자세 변화를 알려준다.
하지만 센서가 만든 데이터는 서로 모양이 다르다. 카메라는 2차원 이미지이고, 라이다는 점들의 구름이며, 레이더는 반사 신호이고, GPS는 좌표다. 그래서 자율주행 시스템은 먼저 시간과 좌표를 맞춘다. 같은 순간을 보고 있는지, 같은 물체를 같은 위치로 이해하는지 정렬해야 한다. 이 과정을 제대로 하지 못하면 카메라가 본 보행자와 라이다가 본 장애물이 서로 다른 대상으로 처리될 수 있다.
그다음은 인지다. 인지는 도로를 의미 있는 단위로 바꾸는 작업이다. 시스템은 이미지와 점군에서 차량, 오토바이, 보행자, 자전거, 차선, 정지선, 신호등, 공사 표지판을 찾는다. 단순히 물체를 찾는 데서 끝나지 않는다. 앞차가 정지 중인지, 옆 차량이 내 차로로 들어오려는지, 보행자가 횡단보도 방향으로 움직이는지도 함께 해석해야 한다.
동시에 위치 추정이 진행된다. 자율주행차는 '주변에 무엇이 있는가'뿐 아니라 '내가 정확히 어디에 있는가'를 알아야 한다. 고속도로에서 차선 중앙을 유지하려면 현재 차로를 알아야 하고, 교차로에서 좌회전하려면 정지선과 회전 경로의 위치를 알아야 한다. GPS만으로는 빌딩 숲, 터널, 고가도로 아래에서 오차가 커질 수 있으므로 IMU, 휠 속도, 카메라·라이다로 본 주변 특징, 정밀 지도를 함께 사용한다.
이후 시스템은 예측을 한다. 예측은 다른 도로 사용자의 미래 움직임을 추정하는 단계다. 앞차가 계속 직진할지, 옆 차선 차량이 끼어들지, 보행자가 멈출지 건널지 판단한다. 예측은 항상 불확실하다. 그래서 하나의 미래만 고정하지 않고, 가능한 여러 움직임을 확률적으로 고려한다.
마지막으로 경로 계획과 제어가 이어진다. 경로 계획은 '어디로 갈 것인가'를 정한다. 차선을 유지할지, 감속할지, 차로를 바꿀지, 정지할지를 결정한다. 제어는 그 결정을 차량의 실제 움직임으로 바꾼다. 예를 들어 계획 모듈이 '3초 동안 부드럽게 감속해 앞차와 거리를 벌린다'고 정하면, 제어 모듈은 어느 정도의 브레이크 압력을 줄지, 조향각을 얼마나 유지할지 계산한다. 자율주행 소프트웨어 스택은 일반적으로 센서 입력, 인지·위치 추정, 예측, 계획, 제어, 그리고 조향·가속·제동 액추에이터로 이어지는 구조로 설명된다.1
센스-싱크-액트: 보고, 맞추고, 움직인다
자율주행 시스템의 전체 구조는 쉽게 말해 센스-싱크-액트로 이해할 수 있다.
센스(Sense)는 차량이 세상을 보는 단계다. 센서가 도로, 차량, 사람, 표지, 날씨, 노면 상태에 대한 신호를 수집한다. 여기서 중요한 것은 많이 보는 것보다 필요한 것을 안정적으로 보는 것이다. 카메라가 빛 번짐 때문에 신호등 색을 놓칠 수 있고, 라이다가 폭우에서 잡음을 받을 수 있으며, 레이더가 금속 구조물을 실제 차량처럼 볼 수도 있다. 그래서 하나의 센서에 모든 판단을 맡기지 않는다.
싱크(Sync)는 데이터를 맞추고 의미를 통합하는 단계다. 여기서 싱크는 단순한 시간 동기화만 뜻하지 않는다. 서로 다른 센서가 본 정보를 같은 좌표계에 놓고, 지도와 현재 위치를 맞추고, 물체의 현재 상태와 미래 움직임을 하나의 장면으로 정리하는 과정까지 포함한다. 이 단계가 잘 되어야 시스템은 '오른쪽 앞 20미터에 주차 차량이 있고, 그 뒤에서 보행자가 나올 가능성이 있다'처럼 운전에 필요한 문장에 가까운 상황 이해를 만들 수 있다.
액트(Act)는 판단을 행동으로 바꾸는 단계다. 차량은 계획한 궤적을 따라 조향하고, 필요한 만큼 가속하거나 감속한다. 이때 제어 명령은 너무 급격해서도 안 되고, 너무 늦어서도 안 된다. 승차감도 중요하지만 안전이 먼저다. 제어 시스템은 타이어와 노면의 마찰, 차량 속도, 하중 이동, 제동 장치의 반응까지 고려해야 한다.
이 세 단계는 직선으로만 흐르지 않는다. 액트의 결과는 다시 센스로 돌아온다. 차가 명령대로 움직였는지 확인하고, 계획과 실제 움직임이 다르면 보정한다. 눈길에서 제동 거리가 길어지면 시스템은 다음 제어 명령을 바꿔야 한다. 공사 구간에서 차선이 사라지면 기존 경로 계획을 취소해야 한다. 자율주행의 핵심은 이 반복 루프를 끊기지 않게 유지하는 데 있다.
자동차 전자 구조의 변화
초기의 자동차 전자 시스템은 기능별 장치가 따로 움직이는 구조에 가까웠다. 엔진 제어, 변속기 제어, 에어백, 브레이크, 차체 전장, 인포테인먼트가 각각 전자제어장치, 즉 ECU를 가졌다. 기능이 늘어날수록 ECU 수도 늘었다. 각 장치가 자기 역할만 하면 되는 시대에는 이 방식이 효과적이었다.
하지만 자율주행에서는 상황이 달라진다. 카메라가 본 차선 정보는 조향 제어와 연결되고, 레이더가 본 앞차 속도는 브레이크와 연결되며, 지도와 위치 정보는 경로 계획과 연결된다. 한 기능의 데이터가 여러 기능에서 동시에 쓰인다. 이 때문에 차량 구조는 점점 도메인 컨트롤러와 중앙집중형 컴퓨팅으로 이동하고 있다.
도메인 컨트롤러는 기능 영역별로 계산을 묶는 방식이다. 예를 들어 ADAS·자율주행 도메인, 파워트레인 도메인, 차체 도메인, 인포테인먼트 도메인이 각각 고성능 제어기를 가질 수 있다. 자율주행 도메인 컨트롤러는 카메라와 레이더, 라이다 데이터를 받아 인지와 판단을 수행하고, 필요한 명령을 조향·제동 시스템에 전달한다.
더 최근에는 존 아키텍처도 중요해지고 있다. 존 아키텍처는 기능이 아니라 차량의 물리적 위치를 기준으로 전자 장치를 묶는다. 앞쪽, 뒤쪽, 좌우 영역의 센서와 액추에이터가 가까운 존 컨트롤러에 연결되고, 이 정보가 고속 차량 네트워크를 통해 중앙 컴퓨터로 전달된다. 기능별 도메인 구조가 '무슨 기능인가'를 기준으로 묶는다면, 존 구조는 '차량의 어느 위치에 있는가'를 기준으로 배선을 단순화하고 데이터를 모은다.2
중앙 컴퓨터는 CPU, GPU, NPU 같은 고성능 칩을 사용해 인공지능 모델과 경로 계획 알고리즘을 실행한다. 여기서 CPU는 일반적인 계산과 시스템 관리를 맡고, GPU는 이미지나 점군처럼 병렬 계산이 많은 작업에 유리하며, NPU는 신경망 추론을 효율적으로 처리하도록 설계된다. 자율주행차가 소프트웨어 중심 차량으로 바뀐다는 말은 단지 화면 기능이 많아진다는 뜻이 아니다. 차량의 핵심 기능이 소프트웨어 업데이트, 공통 운영체제, 미들웨어, 데이터 기록, 보안, 진단 체계 위에서 관리된다는 뜻이다.
차량용 운영체제는 스마트폰 운영체제와 다르다. 화면을 예쁘게 보여주는 것보다 정해진 시간 안에 안전 관련 작업을 실행하는 것이 중요하다. 어떤 프로그램이 먼저 실행되어야 하는지, 센서 데이터가 지연되지 않는지, 고장 난 모듈을 격리할 수 있는지, 안전 기능과 편의 기능을 분리할 수 있는지가 핵심이다. 중앙집중형 구조는 업데이트와 데이터 공유에는 유리하지만, 하나의 큰 컴퓨터에 문제가 생겼을 때 영향도 커질 수 있다. 그래서 고성능 컴퓨팅과 함께 분리, 감시, 백업 설계가 필요하다.3
실시간성, 중복성, 장애 대응
자율주행 시스템에서 정확한 답도 늦으면 위험하다. 보행자가 도로로 들어온 뒤 2초 후에 인식하면, 인식 자체가 맞았더라도 안전하지 않다. 그래서 자율주행 계산에는 실시간성이 필요하다. 실시간성은 단순히 빠르다는 뜻이 아니다. 정해진 시간 안에 결과를 내야 한다는 뜻이다. 센서 입력부터 제어 명령까지 이어지는 지연 시간이 길어지면 차량은 이미 지나간 상황을 기준으로 움직이게 된다.
또 하나의 핵심은 중복성이다. 중복성은 같은 기능을 여러 경로로 확보하는 설계다. 카메라가 눈부심으로 차선을 놓칠 때 라이다나 지도 정보가 보완할 수 있다. 전원 공급에 문제가 생길 때 예비 전원이 최소한의 제동과 조향을 지원할 수 있다. 중앙 컴퓨터가 멈출 경우 보조 컴퓨터가 차량을 안전 정차시키는 구조도 필요하다. 중복은 비용과 무게를 늘리지만, 안전 기능에서는 중요한 보험이다.
장애 대응은 고장을 없애는 기술이 아니라, 고장이 나도 위험을 키우지 않는 기술이다. 센서 하나가 오작동하면 시스템은 그 센서의 신뢰도를 낮추고 다른 정보를 우선할 수 있어야 한다. 위치 추정이 불안정해지면 속도를 줄이고 차로 변경을 제한할 수 있어야 한다. 판단 모듈이 정상적으로 결과를 내지 못하면 최소 위험 기동, 즉 갓길 정차나 안전한 정지 상태로 이동해야 한다.
여기서 중요한 설계 원칙은 '계속 달릴 수 있는가'보다 '안전하게 상태를 낮출 수 있는가'다. 모든 고장 상황에서 완전한 자율주행을 유지하는 것은 어렵다. 대신 시스템은 정상 주행, 성능 저하 주행, 안전 정차처럼 여러 단계를 준비해야 한다. 이것이 자율주행 시스템을 단순한 인공지능 모델이 아니라 안전 중심의 차량 시스템으로 봐야 하는 이유다.
결국 자율주행 시스템의 전체 구조는 하나의 거대한 반복문이다. 차량은 보고, 맞추고, 판단하고, 움직이고, 다시 확인한다. 이 반복문 안에 센서, 인공지능, 지도, 차량 네트워크, 운영체제, 제어기, 액추에이터가 들어 있다. 다음 장부터는 이 반복문을 구성하는 요소들을 하나씩 더 자세히 살펴볼 것이다. 먼저 센서가 도로를 어떻게 읽는지 이해해야, 그 위에 올라가는 인지와 판단의 한계도 정확히 볼 수 있다.
참고
1Moving Forward: A Review of Autonomous Driving Software and Hardware Systems
2Domain vs zonal architecture: A complete guide
3Centralized or Zonal? The Future of ECU Architecture in Modern Vehicles
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.