자율주행 차량이 사전에 정지도 없는 공간에서 스스로 위치를 추정하고 지도를 그려나가는 SLAM의 세계를 살펴보았습니다. 정밀한 지도와 현재 내 위치가 준비되었다면, 이제 차량이 출발지부터 목적지까지 "어떤 길로 어떻게 안전하게 이동해야 하는지"를 계산할 차례입니다. 자율주행의 두뇌가 내리는 결정 중 가장 핵심적인 영역인 경로 계획(Path Planning)의 원리로 들어갑니다.

나 역시 초기 시뮬레이션 환경에서 차량이 목적지로 가는 최단 거리를 무작정 직선으로만 그리려다, 건물이나 가로수를 정통으로 들이받는 무서운 코드를 짜낸 기억이 있습니다. 도로 위의 장애물을 요리조리 피해 가며 부드럽게 목적지에 도달하는 과정은 생각보다 훨씬 체계적인 2단계의 작전을 요구합니다. 오늘 5편에서는 글로벌 경로 계획과 로컬 경로 계획의 근본적인 차이와 작동 원리를 짚어보겠습니다.

1. 자율주행의 내비게이션: 글로벌 경로 계획 (Global Planning)

글로벌 경로 계획은 우리가 스마트폰 지도 앱으로 목적지를 찍었을 때 전체 큰 지도를 바탕으로 "가장 빠르고 효율적인 전체 큰 길"을 안내받는 것과 정확히 일치합니다.

(1) 작동 원리와 핵심 알고리즘

  • 글로벌 플래너(Global Planner)는 차량이 출발하는 순간부터 최종 목적지까지의 전체 거시적 지도를 입력받습니다.

  • 이 과정에서 도로망 정보(Vector Map)를 바탕으로 신호등 위치, 일방통행 구역, 큰 도로의 흐름 등을 고려하여 대략적인 주행 경로 선(Global Path)을 미리 싹 그려둡니다.

  • 주로 사용되는 알고리즘으로는 다익스트라(Dijkstra), A*(A-Star), 또는 RRT(Rapidly-exploring Random Tree) 계열이 있습니다. 이 알고리즘들은 지도를 바둑판 같은 격자(Grid)나 노드 네트워크로 변환한 뒤, 비용(Cost)이 가장 적게 드는 최적의 선을 찾아냅니다.

(2) 글로벌 경로 계획의 한계

글로벌 경로는 거시적인 지도를 바탕으로 미리 계산된 정적(Static)인 길이기 때문에, 주행 도중에 갑자기 나타난 공사장, 불법 주정차 차량, 무단횡단 보행자 같은 '동적 장애물'을 미리 반영하지 못합니다. 여기서 곧바로 다음 단계인 로컬 경로 계획이 필요해집니다.

2. 실시간 회피 기동의 핵심: 로컬 경로 계획 (Local Planning)

로컬 경로 계획은 글로벌 플래너가 알려준 큰 길을 따라가되, "지금 당장 내 눈앞에 나타난 돌발 장애물을 어떻게 피해 가며 주행할 것인가?"를 밀리초 단위로 실시간 계산하는 미시적 작전입니다.

(1) 작동 원리

  • 차량의 센서(라이다, 카메라)가 실시간으로 수집한 주변 장애물 정보를 바탕으로, 향후 몇 초 동안 차량이 움직일 수 있는 안전한 후보 경로(Trajectory)들을 여러 개 가상으로 그립니다.

  • 그중에서 '안전성(장애물과의 거리)', '주행 편의성(급격한 핸들 꺾임 방지)', '목적지 방향성' 등을 종합적으로 따져 가장 점수가 높은 최적의 궤적을 실시간으로 선택하여 차량 제어 부서에 넘겨줍니다.

  • 대표적인 알고리즘으로 DWA(Dynamic Window Approach), TEB(Timed-Elastic-Bands) 등이 있습니다.

3. 글로벌과 로컬 계획의 유기적 협업 흐름

실제 자율주행 시스템 내부에서는 이 두 가지 계획이 다음과 같이 맞물려 돌아갑니다.

  1. [전체 계획 수립]: 목적지가 설정되면 글로벌 플래너가 큰 틀의 주행 경로를 1회 또는 주기적으로 갱신하여 발행합니다.

  2. [실시간 상황 대응]: 차량이 달리면서 로컬 플래너가 글로벌 경로를 따라가되, 센서에 잡힌 실시간 장애물을 피하기 위해 매 순간 핸들 각도와 속도를 미세하게 조정합니다.

  3. [제어 전달]: 최종 확정된 로컬 궤적 데이터가 제어(Control) 노드로 전달되어 차량의 모터와 브레이크를 움직입니다.

4. 경로 계획 알고리즘 구현 시 입문자가 자주 범하는 실수 2가지

  • 물리적 차량 한계(Kinematics)를 무시한 궤적 생성: 알고리즘 상으로는 최단 거리라며 직각에 가까운 급커브 경로를 로컬 플래너가 만들어내지만, 실제 1톤이 넘는 차량은 그 각도로 급격히 꺾을 수 없어 타이어가 밀리거나 차체가 휘청이는 물리 법칙 위반 에러를 겪게 됩니다. 차량의 최소 회전 반경과 최대 가감속 한계를 반드시 코드에 반영해야 합니다.

  • 연산 지연(Latency)으로 인한 제어 공백: 로컬 경로 계획 알고리즘에 너무 복잡한 연산을 과도하게 집어넣었다가, 다음 경로를 계산하는 데 0.5초 이상 지연이 발생해 차량이 이미 장애물을 들이받고 난 뒤에야 회피 경로를 출력하는 치명적 실수를 범합니다. 실시간성을 위해 궤적 탐색 공간을 적절히 제한하는 지혜가 필요합니다.

핵심 요약

  • 글로벌 경로 계획은 전체 지도를 바탕으로 출발지부터 목적지까지의 거시적인 최적 주행 선을 미리 계산합니다.

  • 로컬 경로 계획은 주행 중 갑자기 나타나는 돌발 장애물을 실시간으로 회피하며 차량의 부드러운 주행 궤적을 만들어냅니다.

  • 자율주행의 안전성을 확보하려면 두 계획이 유기적으로 맞물려 차량의 물리적 한계 내에서 실시간으로 작동해야 합니다.