Chapter 17

ADAS: 운전자 보조

안전벨트와 에어백은 사고가 난 뒤에 사람을 지킨다. ADAS는 한 걸음 앞에서, 사고가 나기 전에 차가 스스로 보고 판단해 속도와 방향을 조금씩 고쳐 준다. 이 장에서는 앞차와의 간격을 지키는 ACC, 충돌 직전에 제동하는 AEB, 차로 중앙을 따라가는 조향 보조, 사각지대 경고와 자동 주차가 어떤 계산으로 움직이는지 직접 제어기를 돌려 보며 살핀다.

수동 안전에서 능동 안전으로

11장의 크럼플 존, 안전벨트, 에어백은 충돌이 일어난 뒤에 탑승자가 받는 충격을 줄인다. 이를 수동 안전(Passive Safety)이라 한다. 반면 충돌 자체를 피하거나 충돌 속도를 낮추는 기술을 능동 안전(Active Safety)이라 한다. 8장의 ABS와 10장의 ESC가 그 출발점이었다. 둘은 차 내부 센서(바퀴 속도, 요레이트)만 보고 운전자의 조작을 다듬는다. ADAS(Advanced Driver Assistance Systems, 첨단 운전자 보조 시스템)는 여기에 차 바깥을 보는 센서를 더한 것이다. 앞차와의 거리, 차선의 위치, 옆 차로의 차량을 알게 되면 차는 운전자가 하던 일의 일부를 대신할 수 있다.

교통사고의 대부분은 전방 주시 태만, 판단 착오, 늦은 반응 같은 사람의 실수에서 시작한다. 사람의 반응 시간은 위험을 알아채고 브레이크를 밟기까지 대표적으로 약 1~1.5 s다. 시속 100 km라면 그동안 28~42 m를 그대로 달린다. 기계는 수십~수백 ms 안에 반응하고, 졸지도 한눈을 팔지도 않는다. ADAS가 노리는 것은 바로 이 차이다.

인지–판단–제어 루프

모든 ADAS 기능은 같은 뼈대를 가진다. 센서가 주변을 측정하고, 인지 단계가 그 신호에서 차선·차량·보행자와 그 거리·속도를 뽑아내고, 판단 단계가 위험도와 목표 가감속·목표 조향을 정하고, 제어 단계가 구동·제동·조향 액추에이터에 명령을 내린다. 차가 움직이면 주변 상황이 바뀌고, 그것이 다시 센서로 들어온다. 닫힌 피드백 루프다. 운전자는 이 루프의 바깥에서 경고를 받고, 언제든 핸들이나 페달로 개입해 시스템을 이긴다.

운전자 센서카메라·레이더 인지차선·물체 판단위험도·목표값 제어제동·구동·조향 차량도로·주변 경고 개입·해제 차가 움직인 결과가 다시 센서로 들어온다
그림 17-1. ADAS의 인지–판단–제어 루프. 기능이 달라도 뼈대는 같다. 운전자는 경고를 받고, 조작으로 언제든 시스템을 이길 수 있어야 한다.

어떤 센서를 쓰는가

센서의 원리와 한계는 18장에서 자세히 다룬다. 여기서는 어떤 기능이 어떤 센서에 기대는지만 정리한다.

전방 레이더 ACC·AEB (거리·속도) 전방 카메라 차선·물체 분류·표지 후측방 레이더 BSD·후측방 교차 초음파(범퍼) 주차·근접 경고
그림 17-2. 대표적인 ADAS 센서 배치(위에서 본 모습, 오른쪽이 전방). 전방 레이더와 카메라가 주행 보조를, 후측방 레이더가 옆·뒤를, 범퍼의 초음파 센서가 수 m 이내의 근거리를 맡는다.
센서잘하는 것대표 감지 거리주로 쓰는 기능
전방 레이더(77 GHz)거리·상대 속도 직접 측정, 악천후에 강함약 150~250 mACC, FCW, AEB
전방 카메라차선, 물체 종류, 표지·신호 인식약 100~150 mLDW/LKA/LFA, AEB(보행자), 하이빔 보조
코너 레이더옆·뒤에서 다가오는 차량약 70~100 mBSD, 후측방 교차 경고, 차로 변경 보조
초음파수 m 이내 근거리 장애물약 0.2~5 m주차 거리 경고, 자동 주차
실내 카메라운전자의 시선·눈 감김실내운전자 모니터링(DMS)

자동화 레벨: 누가 운전하는가

"자율주행 레벨 2", "레벨 3" 같은 말은 미국 자동차공학회의 표준 SAE J3016에서 온다. 이 표준은 운전을 몇 가지 일로 쪼갠 뒤 각각을 사람과 시스템 중 누가 맡는지로 레벨을 나눈다. 성능이 얼마나 좋은가가 아니라 책임이 누구에게 있는가의 구분이라는 점이 중요하다.

조향·가감속·주변 감시를 묶어 동적 운전 과업(DDT: Dynamic Driving Task)이라 한다. 레벨 0~2는 사람이 DDT의 일부 또는 전부를 수행하므로 운전자 보조이고, 레벨 3~5는 작동 중 시스템이 DDT 전체를 수행하므로 자동 운전이다.

SIMULATOR

자동화 레벨 탐색기

이름—
운전자의 손—
운전자의 눈—
작동 조건(ODD)—
주황은 사람, 파랑은 시스템이 맡는 일이다. 해볼 것: 레벨 2에서 3으로 올리면 '주변 감시'가 시스템으로 넘어간다. 레벨 3에서 4로 올리면 '비상 대응'까지 넘어가 사람이 없어도 된다. 레벨 4와 5의 차이는 일이 아니라 ODD가 제한되는지 여부다.

레벨 2와 3 사이의 선

레벨 2 차는 스스로 가감속하고 조향하므로 겉보기에는 "알아서 달리는 차"다. 하지만 주변 감시는 여전히 사람의 일이다. 운전자는 손을 핸들에 두고 전방을 계속 봐야 하며, 시스템이 놓친 정지 차량이나 끼어드는 차에 즉시 대응할 책임이 있다. 사고가 나면 운전 주체는 사람이다.

레벨 3은 ODD 안에서 시스템이 주변 감시까지 맡는다. 운전자는 전방에서 눈을 떼도 되지만, 시스템이 제어권 인수 요청(Takeover Request)을 하면 수 초 안에 운전을 넘겨받아야 한다. 그래서 잠을 자거나 운전석을 떠날 수는 없다. 레벨 3 차로 유지 시스템을 규정한 UN R157은 처음에 시속 60 km 이하 정체 구간으로 시작했고 이후 속도 범위가 넓어졌다. 눈을 뗀 사람이 상황을 파악하고 넘겨받는 데 걸리는 시간이 길고 사람마다 크게 달라서, 이 인수 구간이 레벨 3 설계의 가장 어려운 부분이다.

레벨은 이름이 아니라 책임이다

시판되는 "고속도로 주행 보조", "오토파일럿" 류의 기능은 대부분 레벨 2다. 손을 떼도 한동안 잘 달린다는 사실이 레벨을 올려 주지 않는다. 또 충돌 직전에만 잠깐 개입하는 AEB나 경고만 하는 FCW·LDW는 지속적인 제어가 아니므로 J3016에서는 레벨 0으로 분류한다.

종방향 보조: 크루즈 컨트롤에서 ACC로

크루즈 컨트롤(Cruise Control)은 운전자가 정한 속도를 유지한다. 측정한 차속과 설정 속도의 차이에 비례해(그리고 그 적분에 비례해) 구동력을 조절하는 단순한 속도 피드백이다. 오르막에서 느려지면 스로틀을 더 열고, 내리막에서 빨라지면 닫는다. 문제는 앞차를 모른다는 점이다. 앞차가 느리면 운전자가 직접 브레이크를 밟아야 한다.

ACC(Adaptive Cruise Control, 스마트 크루즈 컨트롤)는 전방 레이더나 카메라로 앞차까지의 거리 \(d\)와 상대 속도를 측정해 간격까지 관리한다. 여기서 "얼마나 떨어져야 하는가"를 정하는 규칙이 간격 정책이다. 가장 널리 쓰는 것이 일정 시간 간격(Constant Time Gap) 정책이다.

$$d^{*} = d_0 + h\,v$$
\(d^{*}\): 목표 간격, \(d_0\): 정지 시 간격(대표적으로 약 3~5 m), \(h\): 시간 간격(Time Gap, 대표적으로 약 1.0~2.5 s 범위에서 3~4단계로 선택), \(v\): 자차 속도.

속도가 두 배면 간격도 거의 두 배가 된다. "앞차가 지나간 지점을 \(h\)초 뒤에 지난다"는 뜻이며, 운전 교육에서 말하는 "2초 규칙"과 같은 생각이다. 제동 거리는 속도의 제곱에 비례하지만(8장) 앞차도 순간 정지하지 않고 감속하며 서므로, 필요한 것은 반응 지연 동안 달리는 거리 \(h\,v\)에 약간의 여유다.

d* = d₀ + h·v 자차 v 앞차 v_l 레이더: 거리·상대 속도 속도 제어: v → v_set 간격 제어: d → d* 느린 앞차 앞이 비면
그림 17-3. ACC의 일정 시간 간격 정책과 두 가지 제어 모드. 앞이 비어 있으면 설정 속도를 따라가고, 느린 앞차가 잡히면 간격을 따라간다.

제어 법칙과 모드 전환

간격 제어 모드에서 ACC는 간격 오차와 상대 속도 두 가지를 되먹여 목표 가속도를 만든다. 속도 제어 모드에서는 설정 속도와의 차이만 본다. 둘 중 더 작은 값(더 조심스러운 쪽)을 고르면 모드 전환이 저절로 이루어진다.

$$a_{\text{gap}} = k_g\,(d - d^{*}) + k_v\,(v_l - v),\qquad a_{\text{spd}} = k_s\,(v_{\text{set}} - v),\qquad a_{\text{cmd}} = \min(a_{\text{gap}},\,a_{\text{spd}})$$
\(k_g\): 간격 이득(1/s²), \(k_v\): 상대 속도 이득(1/s), \(v_l\): 앞차 속도. 승차감을 위해 \(a_{\text{cmd}}\)는 대표적으로 약 −3.5 ~ +2 m/s² 범위로 제한하고 변화율(저크)도 제한한다. 그 이상의 감속이 필요하면 운전자에게 경고하고, 그다음은 AEB의 몫이다.

목표 가속도는 파워트레인(엔진 토크·모터 토크)과 ESC 유압 제동(8장)으로 나뉘어 실행된다. 전기차는 감속의 대부분을 회생 제동으로 처리한다(14장). 스톱 앤 고(Stop & Go) 기능이 있는 ACC는 앞차를 따라 완전히 정지하고, 앞차가 출발하면 다시 따라간다. 정지 유지에는 ESC의 유압 유지나 전자식 주차 브레이크를 쓴다.

계산 예: 시속 100 km, 시간 간격 1.5 s

\(v = 27.8\) m/s, \(d_0 = 5\) m이면 \(d^{*} = 5 + 1.5\times 27.8 = 46.7\) m. 앞차가 시속 80 km(22.2 m/s)로 달리고 있고 지금 간격이 60 m라면, \(k_g = 0.15\), \(k_v = 0.6\)일 때 \(a_{\text{gap}} = 0.15\times(60-46.7) + 0.6\times(22.2-27.8) = 2.0 - 3.3 = -1.3\) m/s². 간격은 아직 남았지만 접근 속도가 크므로 미리 부드럽게 감속을 시작한다.

SIMULATOR

ACC 추종: 간격 오차와 상대 속도 피드백

제어 모드—
간격 / 목표—
실제 시간 간격—
TTC—
자차 가속도—
모델: 목표 가속도를 −3.5 ~ +2.0 m/s²로 제한하고, 실제 가속도는 0.4 s 1차 지연으로 따라간다. 간격은 실제 비율, 차는 크게 그렸다. 해볼 것: 앞차 속도를 0으로 내려 스톱 앤 고를 보자. k_v를 0으로 두면 간격만 보고 제어하므로 속도가 출렁인다. 시간 간격을 0.6 s로 줄이고 '앞차 급감속'을 누르면 ACC의 감속 한계로는 부족해 추돌한다. 여기서부터가 AEB의 영역이다.

스트링 안정성: 유령 정체는 어디서 오는가

차 한 대가 앞차를 잘 따라가는 것과, 그런 차가 여러 대 줄지어 달릴 때 전체가 안정한 것은 다른 문제다. 선두가 잠깐 속도를 줄였을 때 그 흔들림이 뒤로 갈수록 작아지면 스트링 안정(String Stable), 커지면 불안정이다. 불안정한 줄에서는 선두가 시속 10 km만 줄였는데 여덟 번째 차는 완전히 멈춰 서는 일이 생긴다. 사고도 공사도 없는데 생기는 유령 정체의 원리다.

차 한 대의 응답 지연을 시정수 \(\tau\)의 1차 지연으로 두면, 앞차 위치에서 내 차 위치로 가는 전달 함수는 다음과 같다.

$$G(s) = \frac{X_i(s)}{X_{i-1}(s)} = \frac{k_v s + k_g}{\tau s^{3} + s^{2} + (k_v + k_g h)\,s + k_g},\qquad \text{string stable} \iff |G(j\omega)| \le 1\ \ \forall\,\omega$$
지연이 없을 때(\(\tau = 0\)) 조건은 \(k_g h^{2} + 2 k_v h \ge 2\)로 정리된다. 시간 간격 \(h\)가 길수록, 상대 속도 이득 \(k_v\)가 클수록 안정하다. 지연 \(\tau\)가 커지면 필요한 \(h\)도 커진다.

사람 운전자는 반응 지연이 1 s 안팎이면서 시간 간격은 그보다 짧게 두는 경우가 많아 대체로 스트링 불안정하다. 교통량이 많을 때 작은 브레이크 한 번이 뒤로 가며 정체로 자라는 이유다. ACC도 시간 간격을 지나치게 짧게 잡으면 같은 문제를 겪는다. 앞차의 가속도를 통신(V2V)으로 미리 받는 협조형 ACC(CACC)는 지연을 실질적으로 줄여 훨씬 짧은 간격에서도 안정할 수 있다(21장).

SIMULATOR

스트링 안정성: 8대 군집에서 흔들림이 자라는가

선두 속도 저하—
8번째 차 속도 저하—
최대 증폭 |G|max—
필요 시간 간격(τ=0)—
판정—
위: 선두(오른쪽 끝)에 붙인 좌표로 본 군집. 가운데: 8대의 속도. 아래: 한 대를 지날 때마다 흔들림이 몇 배가 되는지 나타내는 |G(jω)|. 1을 넘는 주파수가 있으면 불안정하다. 시속 90 km로 달리던 선두가 5초 시점에 감속했다가 다시 가속한다. 해볼 것: h를 1.0 s, 0.5 s로 줄여 가면 뒤차일수록 더 깊이 감속하고, 끝내 정지하거나 추돌한다. 그 상태에서 k_v를 키우거나 τ를 줄여 다시 안정시켜 보자.

충돌 방지: FCW와 AEB

ACC가 편의 기능이라면 FCW(Forward Collision Warning, 전방 충돌 경고)와 AEB(Autonomous Emergency Braking, 자동 긴급 제동)는 안전 기능이다. 운전자가 ACC를 켰든 안 켰든 항상 뒤에서 지켜보다가, 충돌이 임박했는데 운전자가 반응하지 않으면 개입한다. 판단의 기준이 되는 양이 TTC(Time To Collision, 충돌까지 시간)다.

$$\mathrm{TTC} = \frac{d}{v - v_o} = \frac{d}{v_{\text{rel}}}\qquad (v > v_o)$$
\(d\): 장애물까지 거리, \(v\): 자차 속도, \(v_o\): 장애물 속도, \(v_{\text{rel}}\): 접근 속도. 지금 속도를 그대로 유지하면 몇 초 뒤에 부딪히는가를 뜻한다. 앞차가 감속 중이면 가속도까지 넣은 2차식으로 계산한다.

AEB는 TTC가 줄어드는 데 따라 단계적으로 강도를 높인다. 처음부터 완전 제동을 걸지 않는 까닭은 오작동의 비용 때문이다. 필요 없는 급제동은 뒤차의 추돌을 부르고 운전자의 신뢰를 잃는다. 그래서 확신이 낮은 이른 시점에는 경고만 하고, 운전자가 스스로 피할 수 없을 만큼 늦어져 충돌이 거의 확실해졌을 때에야 강하게 제동한다.

경고(FCW) 부분 제동 완전 제동 0 0.4 g 1 g 감속도 2.0 s 1.6 s 1.0 s 0 TTC → 충돌
그림 17-4. AEB의 단계적 개입(문턱값은 대표적인 예이며 축은 비례가 아니다). TTC가 줄어들수록 경고 → 부분 제동 → 완전 제동으로 강도를 높인다. 경고 단계에서 브레이크에 미리 압력을 채워 두어(프리필) 이후의 제동 지연을 줄인다.
계산 예: 시속 50 km로 정지 차량에 접근

\(v = 13.9\) m/s. 거리 20 m에서 TTC = 20/13.9 = 1.44 s. 마른 노면(\(\mu = 0.9\))의 최대 감속은 \(\mu g = 8.8\) m/s², 제동 거리는 \(v^2/(2\mu g) = 13.9^2/17.7 = 10.9\) m다. 시스템 지연이 0.3 s면 그동안 4.2 m를 더 가므로 약 15 m 앞, TTC로는 약 1.1 s에서 완전 제동을 시작해야 간신히 선다. 같은 계산을 시속 100 km로 하면 제동 거리만 43.7 m, 필요한 TTC는 약 1.9 s다. 완전 제동 문턱이 1.0 s인 시스템은 이 속도에서 충돌을 피하지 못하고 충돌 속도를 낮출 뿐이다.

SIMULATOR

AEB와 TTC: 언제 경고하고 언제 제동하는가

경고 시점부분 제동완전 제동
처음 TTC—
AEB 결과—
경고 + 사람(1.2 s)—
AEB 회피 한계 속도—
위: 같은 상황을 AEB가 처리할 때와, 경고(TTC 2.0 s)를 듣고 사람이 1.2 s 뒤에 브레이크를 끝까지 밟을 때(압력이 오르는 데 0.2 s). 가운데: 두 경우의 속도–시간. 아래: 충분히 먼 거리에서 접근했을 때 처음 속도에 따른 충돌 속도(0이면 회피). 부분 제동은 TTC 1.6 s에서 0.4 g로 건다. 해볼 것: 속도를 올려 가며 AEB가 회피에서 '충돌 속도 저감'으로 바뀌는 지점을 찾자. μ를 0.3(눈길)으로 내리면 한계가 크게 낮아진다. 완전 제동 문턱을 2 s로 올리면 훨씬 잘 피하지만, 실제로는 그만큼 오작동 위험이 커진다.

피할 수 있는 마지막 순간: 제동이냐 조향이냐

왜 AEB는 더 일찍 제동하지 않을까. 운전자가 아직 핸들로 피할 수 있는 동안에는 시스템이 충돌을 단정할 수 없기 때문이다. 앞차를 추월하려고 바짝 붙는 것과 부딪히러 가는 것은 마지막 순간까지 구별되지 않는다. 그래서 두 가지 거리가 중요해진다.

$$d_{\text{brake}} = \frac{v_{\text{rel}}^{2}}{2\mu g},\qquad d_{\text{steer}} = v_{\text{rel}}\sqrt{\frac{2\,w}{a_y}}$$
\(d_{\text{brake}}\): 제동으로 피할 수 있는 마지막 거리, \(d_{\text{steer}}\): 조향으로 피할 수 있는 마지막 거리, \(w\): 옆으로 비켜야 하는 폭, \(a_y\): 낼 수 있는 횡가속도(최대 \(\mu g\)). 조향 회피 시간 \(\sqrt{2w/a_y}\)는 속도와 무관하다.

제동 거리는 속도의 제곱에, 조향 회피 거리는 속도에 비례한다. 따라서 저속에서는 제동이 더 늦게까지 통하고, 고속에서는 조향이 더 늦게까지 통한다. 두 곡선이 만나는 속도는 \(v^{*} = 2\mu g\sqrt{2w/a_y}\)로, \(\mu = 0.9\), \(w = 2\) m이면 약 43 km/h다. 도심 속도에서 AEB가 대부분의 추돌을 완전히 막을 수 있는 반면, 고속도로 속도에서는 충돌을 피하지 못하고 줄이는 데 그치는 근본적인 이유다. 그래서 고속 영역에는 옆 공간이 비었을 때 운전자의 회피 조향을 돕는 회피 조향 보조(Evasive Steering Assist)가 더해지고 있다.

SIMULATOR

제동 회피 vs 조향 회피: 마지막 시점 비교

마지막 제동 시점—
마지막 조향 시점—
교차 속도 v*—
이 속도에서 더 늦게까지 가능한 것—
위: 정지 장애물 앞의 두 마지막 시점(세로 방향은 확대해 그렸다). 주황 눈금보다 늦으면 제동으로는 못 피하고, 파란 눈금보다 늦으면 조향으로도 못 피한다. 아래: 속도에 따른 두 거리. 붉은 영역은 어떤 방법으로도 피할 수 없는 구간이다. 횡가속도는 μg를 모두 쓴다고 가정했다. 해볼 것: 속도를 30 km/h와 120 km/h로 바꿔 순서가 뒤집히는 것을 확인하자. w를 0.5 m로 줄이면(부분 겹침) 조향 회피가 훨씬 유리해진다. 지연을 1.2 s(사람)로 두면 두 거리가 모두 얼마나 늘어나는가?

횡방향 보조: 차선을 보고 조향한다

횡방향 기능은 전방 카메라가 차선을 찾는 데서 시작한다. 인지 단계(19장)는 영상에서 좌우 차선을 검출해 차 기준 좌표의 3차 다항식 같은 곡선으로 내놓는다. 이 곡선에서 제어에 필요한 세 가지 양이 나온다.

e_ψ e_y 차로 중앙선 차선(카메라가 검출) 카메라 시야 조향 명령 δ = −k_y·e_y − k_ψ·e_ψ + (곡률 피드포워드)
그림 17-5. 차로 유지 제어의 입력. 횡 오프셋 \(e_y\)만 보면 늦고 출렁이므로, 앞으로 어느 쪽으로 가고 있는지를 나타내는 헤딩 오차 \(e_\psi\)를 함께 쓴다.

기능은 개입 강도에 따라 세 단계로 나뉜다.

기능하는 일개입 방식
LDW 차로 이탈 경고방향지시등 없이 차선을 밟으려 하면 알린다경고음, 핸들 진동
LKA 차로 이탈 방지 보조차선에 가까워졌을 때만 안쪽으로 되돌린다짧은 조향 토크(또는 한쪽 바퀴 제동)
LFA / LCA 차로 중앙 유지항상 차로 중앙을 따라가도록 계속 조향한다지속적인 조향 토크

제어기: 오프셋과 헤딩 오차의 피드백

저속에서 차의 움직임은 10장의 기구학 자전거 모델로 잘 설명된다. 차로를 따라가는 좌표로 쓰면 다음과 같다.

$$\dot e_y = v\,\sin e_\psi,\qquad \dot e_\psi = \frac{v}{L}\tan\delta - \kappa\,\dot s,\qquad \delta = -k_y\,e_y - k_\psi\,e_\psi + \arctan(L\kappa)$$
\(\delta\): 앞바퀴 조향각, \(L\): 축거, \(\dot s\): 차로 방향 속도. 마지막 항이 곡률 피드포워드다. 반지름 \(R\)인 커브를 도는 데 필요한 조향각 \(L/R\)(애커먼 각)을 오차가 생기기 전에 미리 넣는다.

오차가 작다고 보고 선형화하면 \(\ddot e_y + (v k_\psi/L)\,\dot e_y + (v^2 k_y/L)\,e_y = 0\)이라는 2차 계가 된다. 고유 진동수는 \(\omega_n = v\sqrt{k_y/L}\), 감쇠비는 \(\zeta = k_\psi/(2\sqrt{k_y L})\)다. \(k_y\)는 복원력(스프링), \(k_\psi\)는 감쇠(댐퍼) 역할을 한다. \(k_\psi\)가 작으면 차가 차로 안에서 좌우로 출렁이고, 속도가 높을수록 같은 이득에서도 응답이 빨라져 조향 액추에이터의 지연이 문제가 되기 시작한다. 그래서 실제 제어기는 속도에 따라 이득을 바꾼다.

계산 예: 피드포워드가 없으면 커브에서 얼마나 밀리는가

반지름 200 m 커브, \(L = 2.7\) m면 필요한 조향각은 \(L/R = 0.0135\) rad(0.77°)이다. 피드포워드가 없으면 이 각도를 피드백 항 \(k_y e_y\)가 만들어야 하므로, \(k_y = 0.05\) rad/m일 때 \(e_y = 0.0135/0.05 = 0.27\) m만큼 바깥으로 밀린 채 돈다. 차폭 1.8 m, 차로 폭 3.5 m에서 차선까지 여유는 0.85 m뿐이므로 적지 않은 값이다. 곡률을 미리 넣으면 이 정상 오차가 사라진다.

계산된 조향각은 10장의 EPS(전동 파워 스티어링) 모터가 실행한다. EPS는 원래 운전자의 조향 토크를 증폭하는 장치지만, 제어기가 요청한 토크를 그 위에 겹쳐 넣을 수 있다. 보조 토크의 크기와 횡가속도는 일부러 제한한다(대표적으로 핸들 토크 약 3 N·m, 횡가속도 약 3 m/s² 이내). 운전자가 원하면 가볍게 이길 수 있어야 하고, 오작동하더라도 손으로 잡을 수 있어야 하기 때문이다. 그 대가로 급한 커브에서는 시스템이 따라가지 못하고 해제된다.

SIMULATOR

차로 유지 제어: 자전거 모델을 직접 적분

기능
횡 오프셋 e_y—
헤딩 오차 e_ψ—
앞바퀴 조향각 δ—
도로 곡률 반지름—
감쇠비 ζ—
상태—
차로를 따라가는 시점으로 본 그림이다(바퀴 조향각은 8배 과장). 조향 액추에이터는 0.12 s 지연과 속도 제한이 있다. 옆바람은 차를 오른쪽으로 0.8 m/s로 미는 것으로 근사했다. 해볼 것: 피드포워드를 끄면 커브마다 바깥으로 밀린 채 돈다. k_ψ를 0.1로 내리면 좌우로 출렁이고, 속도를 올리면 더 심해진다. LKA로 바꾸면 차선에 가까워질 때만 되돌리므로 차로 안에서 탁구공처럼 오간다. 'LDW만'은 손을 놓은 상태로, 경고만 하고 그대로 벗어난다.

고속도로 주행 보조와 차로 변경

ACC(종방향)와 LFA(횡방향)를 함께 켜면 차가 스스로 간격을 지키며 차로 중앙을 달린다. 이것이 고속도로 주행 보조(Highway Driving Assist)이며, 레벨 2의 대표적인 모습이다. 내비게이션 지도와 연동하면 커브나 제한 속도 구간 앞에서 미리 감속하고, 차선이 흐릿한 구간에서는 앞차의 궤적을 따라가기도 한다.

차로 변경 보조는 운전자가 방향지시등을 켜면 후측방 레이더로 옆 차로의 빈 공간과 접근 차량을 확인한 뒤, 몇 초에 걸친 부드러운 횡 이동 궤적을 만들어 따라간다. 옆 차로 뒤에서 빠르게 다가오는 차가 있으면 시작하지 않는다. 시속 100 km로 달리는 내 차 뒤 60 m에서 시속 140 km 차가 오고 있다면 접근 속도는 11 m/s, 5.4 s 만에 따라잡힌다. 차로 변경에 5~6 s가 걸리므로 그 정도 거리까지는 봐야 한다. 후측방 레이더의 감지 거리가 70~100 m인 이유다.

옆과 뒤: 사각지대, 교차 경고, 자동 주차

사각지대 경고(BSD)

사이드 미러가 보여 주는 범위는 생각보다 좁다. 운전석 쪽 평면 미러의 시야각은 대표적으로 약 15~20°, 조수석 쪽 볼록 미러는 약 25~30°다. 미러에 비치는 영역과 고개를 돌리지 않고 볼 수 있는 영역 사이에는 차 한 대가 통째로 들어가는 틈이 생긴다. 이것이 사각지대(Blind Spot)다. BSD(Blind Spot Detection, 후측방 경고)는 뒷범퍼 양 모서리 안쪽의 레이더로 이 영역에 차가 있는지 감시해 사이드 미러의 경고등을 켠다. 그 상태에서 그쪽으로 방향지시등을 켜면 경고음을 내고, 차로를 넘으려 하면 반대쪽 바퀴를 살짝 제동하거나 조향 토크로 되돌리는 충돌 방지 보조로 이어진다.

SIMULATOR

사각지대: 미러에 보이는가, 레이더가 잡는가

옆 차를 끌어 옮긴다
옆 차 종류
방향지시등
직접 시야—
사이드 미러—
룸미러—
운전자에게—
BSD—
왼쪽 운전석 차를 위에서 본 그림(오른쪽이 전방). 초록 부채꼴은 미러에 비치는 범위, 옅은 선 앞쪽은 고개를 돌리지 않고 보이는 범위, 파란 사각형은 BSD 경고 영역(대표적인 예)이다. 해볼 것: 옆 차를 내 차 뒷문 옆에 두면 어느 미러에도 없고 직접 보이지도 않는다. 그 위치에서 미러를 바깥으로 15° 돌리면 사각지대가 메워지는 대신 내 차 옆면이 미러에서 사라진다. 이륜차로 바꾸면 사각지대에 숨는 범위가 더 넓어진다.

후측방 교차 경고

같은 후측방 레이더는 후진할 때 다른 일을 한다. 좌우에 차가 주차된 자리에서 뒤로 빠져나올 때 운전자는 옆에서 다가오는 차를 볼 수 없다. 후측방 교차 충돌 경고(RCTA: Rear Cross Traffic Alert)는 뒷범퍼 모서리에서 옆으로 퍼지는 레이더 빔으로 수십 m 밖에서 가로질러 오는 차량을 찾아 경고하고, 필요하면 제동한다. 레이더가 상대 속도를 직접 재므로 다가오는 물체만 골라낼 수 있다.

자동 주차

주차 보조는 범퍼에 박힌 초음파 센서에서 시작한다. 약 40~50 kHz의 초음파 펄스를 쏘고 반사파가 돌아오는 시간 \(t\)를 재면 거리는 \(d = c\,t/2\)다(\(c \approx 343\) m/s). 1 m 떨어진 벽이라면 왕복 5.8 ms다. 감지 거리는 수 m에 불과하지만 값싸고 가까운 거리에 정확하다. 차 옆면을 향한 초음파 센서는 주차된 차들 옆을 천천히 지나가며 거리 변화를 기록한다. 거리가 갑자기 멀어졌다가 다시 가까워지는 구간의 길이가 곧 빈 공간의 길이다. 최근에는 서라운드 뷰 카메라가 주차선을 직접 인식하기도 한다.

공간을 찾으면 경로를 만든다. 평행 주차의 가장 단순한 경로는 반대 방향으로 꺾인 원호 두 개다. 뒷바퀴 축 중심의 최소 회전 반지름을 \(R = L/\tan\delta_{\max}\)라 하면, 원호 하나의 각도 \(\alpha\)와 옆으로 옮겨야 할 거리 \(D\), 앞뒤 이동 거리 \(X\)의 관계는 다음과 같다.

$$D = 2R\,(1-\cos\alpha),\qquad X = 2R\,\sin\alpha,\qquad L_{\min} = b + \sqrt{a^{2} + 2RW}$$
\(a\): 뒷축에서 앞범퍼까지 거리, \(b\): 뒷축에서 뒷범퍼까지 거리(뒤 오버행), \(W\): 차폭. \(L_{\min}\)은 한 번에 들어갈 수 있는 최소 공간 길이로, 차의 앞 바깥 모서리가 앞차의 뒤 모서리를 스치지 않을 조건에서 나온다.
계산 예: 한 번에 들어가려면 얼마나 긴 자리가 필요한가

길이 4.5 m, 폭 1.8 m, 축거 2.7 m, 앞뒤 오버행 0.9 m씩인 차의 최대 조향각이 35°라면 \(R = 2.7/\tan 35° = 3.86\) m. \(a = 3.6\) m이므로 \(L_{\min} = 0.9 + \sqrt{3.6^2 + 2\times3.86\times1.8} = 0.9 + 5.18 = 6.08\) m. 차 길이보다 약 1.6 m 긴 자리가 있어야 한 번에 들어간다. 그보다 짧으면 앞뒤로 몇 번 나누어 움직여야 한다.

SIMULATOR

자동 평행 주차: 원호 두 개로 만드는 경로

회전 반지름 R—
원호 각 α—
필요 최소 길이—
여유—
단계—
아래쪽이 연석이다. 주황 곡선은 뒷축 중심이 지나는 경로, 점은 두 원호의 중심, 노란 점선은 앞 바깥 모서리가 그리는 궤적이다. 차는 앞차 옆에 나란히 섰다가 핸들을 오른쪽 끝까지 돌려 후진하고, 중간에서 왼쪽 끝까지 돌려 마저 후진한다. 해볼 것: 공간 길이를 줄여 노란 궤적이 앞차 모서리에 닿는 순간을 찾자. 그 길이가 '필요 최소 길이'다. 최대 조향각을 키우면(회전 반지름이 작은 차) 더 짧은 자리에 들어간다.

어댑티브 헤드램프

조명도 주변을 보고 바뀐다. 조향각과 속도에 따라 램프를 커브 안쪽으로 돌리는 AFS(Adaptive Front-lighting System), 전방 카메라가 마주 오는 차나 앞차의 불빛을 보면 상향등을 자동으로 끄는 하이빔 보조, 그리고 수십~수천 개의 LED를 따로 켜고 꺼서 상향등을 유지한 채 다른 차가 있는 부분만 어둡게 비우는 매트릭스 헤드램프(ADB: Adaptive Driving Beam)가 있다. 밤에 더 멀리 보이게 해 운전자의 인지를 돕는다는 점에서 이것도 능동 안전의 일부다.

운전자 모니터링과 ADAS의 한계

레벨 2 이하에서는 운전자가 계속 감시해야 한다. 그런데 시스템이 잘 작동할수록 사람은 지루해지고 주의가 흐트러진다. 이 모순을 메우는 것이 운전자 감시다.

한계와 오용

ADAS는 정해진 조건 안에서만 믿을 수 있다. 자주 문제가 되는 상황은 다음과 같다.

상황왜 어려운가
정지한 물체레이더에는 가드레일, 표지판, 맨홀, 육교도 모두 "정지 물체"로 잡힌다. 높이 분해능이 낮은 레이더는 도로 위 정지 차량과 머리 위 구조물을 구별하기 어려워, 고속에서는 정지 표적을 걸러 내는 경우가 많다. 그래서 고속 주행 중 갓길에 걸친 정지 차량이나 사고 차량에 늦게 반응할 수 있다.
끼어들기·앞차의 차로 변경앞차가 비켜난 뒤 그 앞의 정지 차량이 갑자기 드러나는 상황은 남은 거리가 짧고 표적이 정지 물체다.
악천후·역광폭우, 눈, 안개, 낮은 해는 카메라의 차선·물체 인식을 떨어뜨리고, 센서 표면의 눈이나 흙은 레이더를 가린다.
차선 상태지워진 차선, 공사 구간의 겹친 차선, 분기·합류부, 급커브에서 횡방향 기능이 해제되거나 잘못된 선을 따라간다.
낮은 마찰AEB의 제동 시점은 마른 노면을 전제로 잡혀 있는 경우가 많아, 눈길·빗길에서는 같은 TTC에서 제동해도 멈추지 못한다.
과신이 가장 큰 위험이다

기능이 열 번 잘 작동하면 운전자는 열한 번째도 그럴 것이라 믿고 휴대전화를 본다. 이를 자동화 과신이라 한다. 레벨 2 시스템은 "대부분의 경우"를 처리하도록 만든 것이지 "모든 경우"를 책임지는 것이 아니다. 핸들에 무게추를 다는 것처럼 감시 장치를 속이는 행위는 시스템이 전제로 삼은 마지막 안전장치, 곧 운전자 자신을 없애는 일이다.

평가: 능동 안전을 어떻게 시험하는가

11장에서 본 신차 안전도 평가(NCAP)는 충돌 시험만 하지 않는다. Euro NCAP과 한국 KNCAP 등은 사고 예방 성능을 별도 항목으로 점수화하며, 그 비중이 해마다 커지고 있다. 실제 차를 부술 수는 없으므로 시험에는 부딪혀도 부서지지 않는 표적을 쓴다. 레이더·카메라에 실제 차처럼 보이도록 만든 연질 차량 표적, 팔다리가 움직이는 보행자·자전거 더미를 낮은 주행 플랫폼 위에 얹어 정해진 궤적으로 움직인다. 시험 차는 조향·가감속 로봇이 몰아 속도와 겹침량을 수 cm, 0.1 km/h 단위로 반복 재현한다.

시험 영역대표 시나리오평가하는 것
차 대 차 AEB정지한 표적, 느리게 가는 표적, 감속하는 표적에 후방에서 접근. 교차로 좌회전 중 마주 오는 차속도 구간별 충돌 회피 여부 또는 속도 저감량, 경고 시점
교통 약자 AEB주차 차량 뒤에서 뛰어나오는 어린이, 길을 건너는 성인, 같은 방향 자전거, 야간 보행자, 후진 중 보행자검출과 제동이 충분히 빠른가
차로 지원실선·점선·차선 없는 길가로 서서히 이탈, 옆 차로에 추월 차량이나 마주 오는 차가 있을 때의 이탈차선을 넘는 거리, 긴급 조향 개입
속도 지원·운전자 감시제한 속도 인식, 졸음·주의 분산 검출, 안전벨트 알림인식 정확도와 경고의 적절성
주행 보조 등급ACC와 차로 중앙 유지의 성능, 운전자 참여 유지, 고장 시 대응보조 능력과 운전자 개입 유도의 균형

평가와 별도로 법규도 능동 안전을 의무화하고 있다. 유럽은 일반 안전 규정에 따라 신차에 AEB, 차로 이탈 긴급 조향, 지능형 속도 보조, 졸음 경고 등을 단계적으로 의무 장착하도록 했고, UN 규정으로는 승용차 AEB(R152), 조향 보조(R79), 레벨 3 차로 유지(R157) 등이 있다. 한국도 승용차 AEB와 차로 이탈 경고를 단계적으로 의무화했다.

시험장 밖의 문제

시험 시나리오는 유한하지만 실제 도로의 상황은 끝이 없다. 정해진 시험을 통과하도록 조율된 시스템이 시험에 없는 상황에서 얼마나 잘 작동하는지는 별개의 문제다. 고장이 없는데도 인지의 한계 때문에 생기는 위험은 '의도된 기능의 안전(SOTIF)'이라는 이름으로 따로 다루며, 21장에서 살핀다. 이 장의 기능들이 한 단계 더 나아가 스스로 경로를 계획하는 과정은 20장으로 이어진다.

핵심 정리

  1. ADAS는 바깥을 보는 센서로 인지–판단–제어 루프를 돌려 사고가 나기 전에 개입하는 능동 안전 기술이다. 운전자는 언제든 조작으로 시스템을 이길 수 있어야 한다.
  2. SAE 레벨은 조향·가감속, 주변 감시, 비상 대응을 누가 맡는지로 나뉜다. 레벨 2까지는 사람이 계속 감시하고, 레벨 3부터 ODD 안에서 시스템이 감시한다.
  3. ACC는 목표 간격 \(d^{*} = d_0 + h v\)를 두고 간격 오차와 상대 속도를 되먹인다. 속도 제어와 간격 제어 중 작은 가속도를 골라 모드가 전환된다.
  4. 선두의 흔들림이 뒤로 갈수록 줄어들면 스트링 안정이다. 시간 간격이 짧고 지연이 크면 \(|G(j\omega)|\)가 1을 넘어 유령 정체가 생긴다.
  5. AEB는 TTC \(= d/v_{\text{rel}}\)가 줄어들수록 경고 → 부분 제동 → 완전 제동으로 강도를 높인다. 오작동을 피하려고 강한 제동은 충돌이 거의 확실해진 뒤에 건다.
  6. 제동 회피 거리는 \(v^2/(2\mu g)\), 조향 회피 거리는 \(v\sqrt{2w/a_y}\)다. 저속에서는 제동이, 고속에서는 조향이 더 늦게까지 통하므로 고속에서 AEB는 충돌을 줄일 뿐 다 막지 못한다.
  7. 차로 유지는 \(\delta = -k_y e_y - k_\psi e_\psi + \arctan(L\kappa)\)로 조향한다. \(k_y\)는 복원력, \(k_\psi\)는 감쇠, 곡률 피드포워드는 커브의 정상 오차를 없앤다. 실행은 EPS의 토크 겹침으로 한다.
  8. 후측방 레이더는 사각지대와 교차 차량을, 초음파는 주차 공간을 본다. 평행 주차는 원호 두 개 경로로 풀리며 최소 공간 길이는 \(b + \sqrt{a^2 + 2RW}\)다.

확인 퀴즈

Q1. ACC와 차로 중앙 유지를 함께 켜고 고속도로를 달리는 차가 있다. 이 차가 레벨 2인지 레벨 3인지를 가르는 기준은?

레벨 2와 3 모두 시스템이 조향과 가감속을 한다. 차이는 주변 감시(OEDR)의 주체다. 레벨 2는 운전자가 항상 전방을 보고 즉시 대응해야 하고, 레벨 3은 ODD 안에서 시스템이 감시하며 운전자는 인수 요청에만 응하면 된다. 센서 종류나 속도는 기준이 아니다.

Q2. 시속 90 km로 달리는 ACC 차량의 시간 간격이 1.8 s, 정지 간격이 5 m다. 목표 간격은?

\(v = 90/3.6 = 25\) m/s이므로 \(d^{*} = 5 + 1.8\times25 = 50\) m.

Q3. ACC 차량이 줄지어 달릴 때 스트링 불안정이 되기 쉬운 조건은?

지연이 없을 때의 조건 \(k_g h^2 + 2k_v h \ge 2\)에서 보듯 \(h\)가 짧을수록 불안정하고, 응답 지연 \(\tau\)가 커질수록 필요한 \(h\)가 길어진다. 이때 선두의 작은 감속이 뒤로 가며 증폭되어 유령 정체가 된다.

Q4. 시속 72 km(20 m/s)로 달리다 30 m 앞의 정지 차량을 발견했다. TTC와, μ = 1.0 노면에서 지연 없이 완전 제동할 때의 제동 거리는?

TTC = 30/20 = 1.5 s. 제동 거리 = \(20^2/(2\times9.81) \approx 20.4\) m. 남은 30 m 안에 설 수 있지만 여유는 10 m, 시간으로 0.5 s뿐이다. 시스템 지연이 0.5 s를 넘으면 충돌한다.

Q5. 고속에서 AEB만으로는 충돌을 완전히 피하기 어려운 근본 이유는?

제동 회피 거리는 \(v^2\)에, 조향 회피 거리는 \(v\)에 비례한다. 고속에서는 조향으로 피할 수 있는 마지막 시점이 제동으로 피할 수 있는 마지막 시점보다 훨씬 늦다. 오작동을 피하려면 조향 회피 가능성이 사라질 때까지 기다려야 하고, 그때는 이미 제동만으로 멈출 거리가 남지 않는다.

Q6. 차로 중앙 유지 제어에서 곡률 피드포워드 항 \(\arctan(L\kappa)\)를 빼면 커브에서 어떤 일이 생기는가?

커브를 돌려면 조향각 \(L/R\)이 계속 필요하다. 피드포워드가 없으면 이 각도를 \(k_y e_y\)가 만들어야 하므로 \(e_y = (L/R)/k_y\)만큼의 오프셋이 남는다. 진동은 감쇠 역할인 \(k_\psi\)가 부족할 때의 증상이다.