오늘 끝나면
프로젝트: 자율주행차
- ✓프로젝트: 자율주행차의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 프로젝트:이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
센서·인지·제어를 모아 직접 달리게 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
Physical AI · 23
프로젝트
자율주행차
지금까지 배운 걸 작은 자율주행차 한 대에 모은다.
카메라로 차선을 보고, 경로를 잡고, PID로 조향하고, 모터를 굴린다.
센서와 인지, 제어와 안전을 한 줄로 꿰는 종합편이다. 먼저 시뮬에서 굴려 본다.
부품을 모으다, 한 대에 다 들어간다
자율주행차라 하면 거창하지만, 책상 위 한 뼘짜리로도 핵심은 똑같이 돈다.
하드웨어부터 본다.
라즈베리파이(Raspberry Pi)는 카메라 영상을 받아 차선을 인식하는 머리다. 리눅스가 도는 작은 컴퓨터라 무거운 영상 처리를 맡는다.
아두이노(Arduino)는 모터와 서보를 정밀한 타이밍으로 굴리는 손발이다. 실시간 신호에 강하다.
센서는 역할이 갈린다.
카메라는 차선을 본다.초음파·라이다는 앞 장애물 거리를 잰다.IMU·엔코더는 차의 속도와 기울기, 바퀴 회전을 잰다.
이걸 한 줄로 꿰면 센서 → 인지 → 제어 → 구동이다.
앞 강에서 따로 배운 조각들이 여기서 한 대로 합쳐진다.
| 라즈베리파이인지 | 영상 받아 차선 인식, 머리 역할 |
| 카메라센서 | 차선 두 줄을 본다 |
| 초음파 · 라이다센서 | 앞 장애물 거리 측정 |
| IMU · 엔코더센서 | 속도 · 기울기 · 바퀴 회전 |
| 아두이노제어 | 서보 · 모터 실시간 구동, 손발 역할 |
차선 인식 → 조향(PID)
차의 핵심 능력은 하나로 줄어든다. 차선 한가운데를 유지하는 것이다.
카메라가 한 프레임을 잡으면 차선 두 줄을 찾아 그 중앙을 구한다.
그 차선 중앙과 차의 현재 위치 차이가 오차(error)다. 오른쪽으로 치우쳤으면 음수, 왼쪽이면 양수다.
이 오차를 핸들 각도로 바꾸는 게 PID 제어기다.
P(비례)는 지금 오차에 비례해 꺾는다. 많이 벗어나면 많이 꺾는다.
I(적분)는 오래 쌓인 작은 치우침을 메운다.
D(미분)는 오차가 줄어드는 속도를 보고 미리 핸들을 풀어 출렁임을 잡는다.
출력은 조향각과 속도다. 조향각은 서보로, 속도는 구동모터로 간다.
매 프레임 이걸 반복하면 차가 스스로 차선을 따라 흐른다. 16강 SLAM이 “어디 있나”였다면, 여긴 “차선 한가운데로 어떻게 붙나”다.
세 항을 더해 조향각 = Kp·e + Ki·∫e + Kd·de/dt
직접 몰아보기, 곡률과 게인
오른쪽에서 직접 차를 차선에 태워 PID로 몰아 본다.
주행을 누르면 차가 위로 달리고, 굽은 차선을 PID가 따라간다.
차 아래 막대가 오차다. 차선 중앙(빨간 점)에서 벗어난 거리다. 차가 중앙에 붙으면 막대가 짧아진다.
차선 곡률 슬라이더를 올리면 길이 더 굽어 추종이 어려워진다.
Kp를 키우면 빨리 붙지만 너무 크면 좌우로 출렁인다(진동).
Kd를 올리면 그 출렁임을 눌러 준다. 단 너무 크면 둔해진다.
게인을 잘못 맞추면 차가 차선을 벗어나 이탈이 뜬다.
좋은 게인은 빠르게 붙으면서도 출렁이지 않는 균형이다.
크면 빨리 붙되 출렁
출렁을 눌러 줌
13px
차선 중앙에서 벗어난 거리
추종
차선 안 · 최대오차 0px
오차를 PID가 조향으로 바꿔 차선 중앙으로 끌어온다. 이게 추종 제어다.
시뮬에서 검증 후 현실
처음부터 진짜 차로 도로에 나가지 않는다. 망가지고 다치기 때문이다. 먼저 시뮬에서 굴린다.
시뮬레이터(예: CARLA)에선 차선과 신호, 보행자와 악천후를 마음껏 깐다.
위험한 상황을 수천 번 반복해도 공짜고 안전하다. 게인 튜닝과 강화학습 정책도 여기서 먼저 익힌다.
하지만 시뮬은 현실과 다르다. 빛 반사와 바퀴 미끄럼, 센서 노이즈를 다 담지 못한다.
이 틈을 sim-to-real gap이라 한다. 그래서 시뮬에서 됐다고 끝이 아니다.
순서는 늘 같다. 시뮬에서 검증하고, 통제된 시험장을 거쳐, 제한 구역 실차로 가고, 점진적으로 넓힌다.
22강에서 본 안전과 신뢰성(폴백·중복화)이 이 단계마다 깔려 있어야 한다. 인지와 제어가 다 맞물려도 안전 없이는 도로에 못 나간다.
빛과 미끄럼, 노이즈는 시뮬이 못 담는다(sim-to-real gap). 그래서 단계마다 안전 장치를 둔다
한 대로 꿰는 종합
작은 차 한 대에 이 코스 전부가 들어 있다.
센서로 세상을 재고, 인지로 차선과 장애물을 알아보고, 제어(PID)로 조향과 속도를 정하고, 구동으로 모터를 굴린다.
그 위에 안전 층이 덮여 이상하면 멈추거나 사람에게 넘긴다.
실차 자율주행도 규모만 클 뿐 같은 골격이다. 카메라와 라이다 여러 대, HD맵, 더 정교한 인지와 계획과 제어, 그리고 두꺼운 안전 장치가 붙는다.
이 미니 프로젝트가 그 구조를 손으로 만져 보는 자리다.
정리하면 자율주행차는 한 기술이 아니라 센서와 인지, 제어와 안전의 합주다.
Q. 미니 자율주행차에서 제어의 핵심 한 줄은?
차선 중앙과 차 위치의 오차를 PID로 줄여 조향하기다.카메라로 차선 중앙을 구하고, 거기서 벗어난 거리(오차)를 비례와 적분과 미분으로 굴려 핸들 각도를 낸다.
P는 많이 벗어나면 많이 꺾고, D는 출렁임을 눌러 부드럽게 붙인다.
매 프레임 이 오차를 조향으로 바꾸기를 반복하는 게 차선 추종의 핵심이다.
아래에서 위로 흐르고, 안전이 전체를 덮는다. 실차도 규모만 클 뿐 같은 골격이다