센서 기술 — 초음파·레이더·라이다·카메라
앞 편 에서 ADAS 의 전체 그림을 봤다면, 이제 각 센서가 어떻게 동작하고 무엇이 어려운지를 본다. 면접에서 갈리는 지점이 여기다 — "라이다를 만듭니다" 는 누구나 말하고, "반사파의 비행시간을 재는데 온도 보정이 필요합니다" 는 준비한 사람만 말한다.
각 센서의 원리와 개발자가 실제로 붙잡는 문제를 정리한다.
센서 넷을 한눈에
| 거리 | 강점 | 약점 | 용도 | |
|---|---|---|---|---|
| 초음파 | 0.2~5m | 싸다 · 근거리 정확 | 느리다 · 환경 민감 | 주차 보조 |
| 레이더 | ~250m | 비·안개·야간에 강함 · 속도 직접 측정 | 각도 분해능 낮음 | 크루즈·충돌 경고 |
| 라이다 | ~300m | 정밀한 3D 형상 | 비싸다 · 악천후 취약 | 레벨 3 자율주행 |
| 카메라 | 상황에 따라 | 의미 인식(표지판·차선·보행자) | 어둠·역광 취약 · 거리 부정확 | 차선 유지 · 표지판 |
어느 하나로 충분하지 않다는 것이 핵심이다. 그래서 여러 센서를 합치는 **센서 퓨전**이 필요하고, 그것을 처리하는 것이 컴퓨팅 유닛이다.
초음파 "0.4m 앞에 뭔가 있다" (무엇인지는 모른다)
레이더 "80m 앞 물체가 시속 -20km/h" (모양은 모른다)
라이다 "그 물체는 폭 1.8m 높이 1.5m" (무엇인지는 모른다)
카메라 "그것은 승용차다" (거리는 부정확하다)
└─────────── 합쳐야 판단이 된다 ───────────┘
초음파 센서 — 대구 공장의 첫 제품
원리
압전 소자로 40~60kHz 초음파를 쏜다
↓
물체에 맞고 반사되어 돌아온다
↓
왕복 시간을 잰다
거리 = 음속 × 비행시간 / 2
// 음속은 온도에 따라 변한다 — 보정이 필수다
float speed_of_sound(float temp_c) {
return 331.3f + 0.606f * temp_c; // m/s
}
// -20℃ → 319 m/s
// 40℃ → 355 m/s 약 11% 차이
겨울과 여름에 같은 거리가 다르게 측정된다. 주차 보조에서 10cm 오차는 그대로 사고로 이어지므로, 온도 센서 값을 받아 보정한다. 이것 하나만 정확히 설명해도 준비한 티가 난다.
시간 축에서 보면 왜 근거리가 안 보이는지가 분명해진다. 쏘자마자 소자가 스스로 떨고 있어서, 그 떨림이 잦아들기 전에 돌아온 반사파는 자기 소리에 묻힌다.
개발자가 붙잡는 문제
① ring-down — 근거리 사각지대
송신 직후 압전 소자가 계속 진동해 자기 신호를 듣는다
그 진동이 잦아들 때까지(수백 µs) 아무것도 못 본다
→ 약 20~30cm 이내는 측정 불가
② 교차 간섭 — 센서가 12개 붙어 있다
A 가 쏜 신호를 B 가 받으면 엉뚱한 거리가 나온다
→ 시분할(순서대로 쏘기) 또는 코딩(신호에 식별자 넣기)
③ 오탐
배기가스 · 낮은 연석 · 잔디 · 빗방울
→ 여러 번 측정해 일치할 때만 인정
④ 환경
온도 · 습도 · 바람 · 센서 표면 오염
②가 특히 흥미로운 설계 문제다. 시분할은 단순하지만 12개를 순서대로 쏘면 한 바퀴에 시간이 걸린다. 주차 중 차가 움직이고 있으므로 갱신 주기가 늦으면 위험하다. 코딩 방식은 동시에 쏠 수 있지만 신호 처리가 복잡해진다.
무슨 코드를 쓰나
// 타이머 입력 캡처로 에코 폭을 정확히 잰다
void TIM3_IRQHandler(void) {
if (TIM3->SR & TIM_SR_CC1IF) {
uint32_t now = TIM3->CCR1; // 하드웨어가 엣지 순간을 붙잡는다
if (rising) { echo_start = now; }
else { echo_us = now - echo_start; } // 오버플로에도 안전
rising = !rising;
}
}
float distance_m(uint32_t echo_us, float temp_c) {
return speed_of_sound(temp_c) * (echo_us * 1e-6f) / 2.0f;
}
소프트웨어로 폴링하면 인터럽트 지연만큼 오차가 생긴다. 하드웨어 입력 캡처를 쓰는 이유이고, 임베디드 트랙의 타이머 편에서 본 그대로다.
레이더 — 77GHz FMCW
원리
주파수를 톱니 모양으로 쓸어 올리며 송신한다 (chirp)
주파수 ^
| /| /| /|
| / | / | / |
| / | / | / |
+----------------------> 시간
송신 --- 수신 ··· (지연된 만큼 주파수 차이가 난다)
거리 송·수신 주파수 차이에 비례
속도 여러 chirp 사이의 위상 변화(도플러)에서
믹서가 이 체인의 핵심이다. 왕복 시간을 직접 재는 대신, 보낸 신호와 받은 신호를 곱해 시간 지연을 주파수 차이로 바꾼다. 나노초를 재는 회로 없이 킬로헤르츠를 재면 되므로 훨씬 싸게 만들 수 있다.
거리와 속도를 동시에 얻는 것이 레이더의 결정적 강점이다. 카메라는 속도를 직접 못 재고 프레임 간 변화로 추정해야 한다.
77~81GHz 장거리·고해상도 (요즘 표준)
24GHz 단거리 — 축소되는 추세
약점과 그 이유
각도 분해능이 낮다
→ 안테나 개수가 정한다. 물리적으로 많이 못 넣는다
→ "앞에 두 대가 나란히" 를 한 덩어리로 볼 수 있다
이것을 개선하는 것이 MIMO(다중 송수신 안테나) 이고, 가상 안테나를 만들어 분해능을 올린다.
임베디드 개발자의 몫
RF 프런트엔드 ─ 고주파 회로 엔지니어 영역
신호 처리 ─ FFT · CFAR · 클러스터링 · 트래킹 ← 여기
제어기 소프트웨어 ─ CAN/이더넷 출력 · 진단 · 캘리브레이션 ← 여기
"레이더 개발" 이라고 하면 RF 를 떠올리기 쉽지만, 임베디드 몫은 신호 처리 이후다. DSP 명령이 있는 MCU 나 전용 프로세서에서 FFT 를 돌리고, 그 결과를 물체 목록으로 만들어 내보낸다.
라이다 — SCALA
발레오의 대표 제품이고 **세계 최초로 양산 차량에 들어간 라이다**다.
원리
레이저 펄스를 쏘고 반사까지의 시간을 잰다 (초음파와 같은 발상)
차이는 매질이 빛이라는 것 — 빛은 1ns 에 30cm 를 간다
→ 나노초 단위 시간 측정이 필요하다
→ 각도를 바꿔 가며 수백만 번 반복하면 3D 점군(point cloud)이 나온다
SCALA 3 실측 사양
거리 반사율 10% 대상 200m · 고반사 대상 300m
시야 수평 120° × 수직 26°
해상도 수평·수직 0.05°
처리량 초당 최대 1,250만 포인트 (2세대의 16배 이상)
크기 186 × 46 × 128 mm
용도 레벨 3 인증 — 최대 130km/h 에서 손·눈을 뗄 수 있다
"반사율 10%" 라는 조건이 중요하다. 검은 옷을 입은 보행자나 어두운 타이어는 빛을 거의 안 되돌려준다. 밝은 표지판 300m 보다 어두운 물체 200m 가 훨씬 어려운 성능이다.
자가 진단이 안전 요구사항이다
블로키지 감지 렌즈가 진흙·눈으로 가려졌나
비/물보라 감지 날씨 때문에 점군이 지저분한가
온라인 캘리브레이션 주행 중에 스스로 보정
정렬 오차 감지 충격으로 센서 각도가 틀어졌나
센서가 "지금 내 말을 믿지 말라" 고 말할 수 있어야 한다. 가려진 줄 모르고 "앞에 아무것도 없다" 고 보고하면 그것이 사고다.
이것이 임베디드 트랙에서 본 자가 진단(self-test) 이 안전 요구사항으로 굳어진 형태다.
컴퓨팅 유닛 — 차량 구조가 바뀌고 있다
예전 지금 가는 방향
기능마다 ECU 하나 구역·중앙 집중
[ECU][ECU][ECU][ECU] [Zone]──┐
[ECU][ECU][ECU][ECU] → [Zone]──┼── [Central Computing]
100개 넘는 제어기 [Zone]──┘
배선이 수 km 배선이 크게 준다
| 역할 | |
|---|---|
| Zone Controller | 차량의 한 구역(앞왼쪽 등)의 입출력을 담당 |
| Domain Controller | 기능 영역(ADAS·인포테인먼트)을 담당 |
| Central Computing | 중앙에서 통합 판단 |
소프트웨어 정의 차량(SDV) 이라는 말이 여기서 나온다. 하드웨어를 고정하고 기능을 소프트웨어 업데이트로 바꾸는 구조다.
그래서 요구되는 것도 달라진다.
예전 MCU · C · CAN · 정적 구성
지금 + 고성능 SoC · C++ · Automotive Ethernet · OTA 업데이트
+ AUTOSAR Adaptive · 컨테이너 · 서비스 지향 통신(SOME/IP)
차량 통신 — 무엇으로 주고받나
| 속도 | 쓰임 | |
|---|---|---|
| LIN | 20kbps | 창문·시트처럼 느려도 되는 것 |
| CAN / CAN FD | 1Mbps / 5~8Mbps | 제어 신호 전반 — 가장 널리 |
| FlexRay | 10Mbps | 시간 결정성이 필요한 곳(축소 추세) |
| Automotive Ethernet | 100M~10Gbps | 카메라·라이다 대용량 데이터 |
센서가 좋아질수록 이더넷으로 옮겨 간다. 라이다가 초당 1,250만 포인트를 뱉으면 CAN 으로는 불가능하다.
다만 CAN 은 여전히 핵심이다. 제어 신호와 진단은 CAN 이고, 그 위에 진단 프로토콜(UDS)이 얹힌다.
CAN 이 안전 시스템에 쓰이는 이유
ID 가 작을수록 우선순위가 높고, 진 쪽은 데이터를 잃지 않는다(비파괴 중재)
→ 최악 지연을 계산할 수 있다
→ "브레이크 신호는 아무리 바빠도 이만큼 안에 간다" 를 증명할 수 있다
표준은 앞 편에서
ISO 26262 · AUTOSAR · A-SPICE 는 ADAS 편 과 공부할 것 에서 다룬다.
한눈에 정리
- 센서 하나로는 부족하다 — 초음파(근거리) · 레이더(속도·악천후) · 라이다(3D 형상) · 카메라(의미)를 합친다
- 초음파는 비행시간 — 음속의 온도 의존성 보정이 필수(-20℃와 40℃에 11% 차이)
- 초음파의 실제 과제는 ring-down 사각 · 교차 간섭 · 오탐
- 레이더 FMCW 는 거리와 속도를 동시에 얻는다. 약점인 각도 분해능은 안테나 수가 정한다
- 레이더의 임베디드 몫은 RF 가 아니라 신호 처리 이후 — FFT·클러스터링·트래킹·출력
- 라이다는 나노초 시간 측정 — 빛은 1ns 에 30cm 를 간다
- SCALA 3 는 반사율 10% 에서 200m — 밝은 물체 300m 보다 이쪽이 어려운 성능이다
- 센서가 "내 말을 믿지 말라" 고 말할 수 있어야 한다 — 블로키지·정렬 오차 자가 진단
- 차량 구조가 ECU 다발에서 구역·중앙 집중으로 옮겨 간다(SDV)
- CAN 은 최악 지연 계산이 가능해 안전 시스템에 쓰인다. 대용량은 이더넷으로
- 표준(ISO 26262·AUTOSAR·A-SPICE)은 ADAS 편 에서 다룬다
다음 편 — 대구가 실제로 만드는 자율주차 시스템 으로 이어진다.
출처 — Valeo — Brain Division · Valeo SCALA™ LiDAR · Valeo — SCALA 3 PACE Award · ISO 26262(Road vehicles — Functional safety) · ISO 11898(CAN) · AUTOSAR Classic/Adaptive Platform 문서 · Automotive SPICE PAM 3.1