스킬캠퍼스

오늘 끝나면

프로젝트: 자율주행차

  • 프로젝트: 자율주행차의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 프로젝트:이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

센서·인지·제어를 모아 직접 달리게 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

Physical AI · 23

프로젝트
자율주행차

지금까지 배운 걸 작은 자율주행차 한 대에 모은다.
카메라로 차선을 보고, 경로를 잡고, PID로 조향하고, 모터를 굴린다.
센서와 인지, 제어와 안전을 한 줄로 꿰는 종합편이다. 먼저 시뮬에서 굴려 본다.

P.01Physical AI · 23

부품을 모으다, 한 대에 다 들어간다

자율주행차라 하면 거창하지만, 책상 위 한 뼘짜리로도 핵심은 똑같이 돈다.

하드웨어부터 본다.
라즈베리파이(Raspberry Pi)는 카메라 영상을 받아 차선을 인식하는 머리다. 리눅스가 도는 작은 컴퓨터라 무거운 영상 처리를 맡는다.
아두이노(Arduino)는 모터와 서보를 정밀한 타이밍으로 굴리는 손발이다. 실시간 신호에 강하다.

센서는 역할이 갈린다.
카메라는 차선을 본다.초음파·라이다는 앞 장애물 거리를 잰다.IMU·엔코더는 차의 속도와 기울기, 바퀴 회전을 잰다.

이걸 한 줄로 꿰면 센서 → 인지 → 제어 → 구동이다.
앞 강에서 따로 배운 조각들이 여기서 한 대로 합쳐진다.

아두이노·라즈베리파이·카메라·모터가 한 파이프라인으로
한 대에 들어가는 부품
라즈베리파이인지영상 받아 차선 인식, 머리 역할
카메라센서차선 두 줄을 본다
초음파 · 라이다센서앞 장애물 거리 측정
IMU · 엔코더센서속도 · 기울기 · 바퀴 회전
아두이노제어서보 · 모터 실시간 구동, 손발 역할
센서 → 인지(파이) → 제어(PID) → 구동(아두이노), 한 줄로 흐른다
P.02Physical AI · 23

차선 인식 → 조향(PID)

차의 핵심 능력은 하나로 줄어든다. 차선 한가운데를 유지하는 것이다.

카메라가 한 프레임을 잡으면 차선 두 줄을 찾아 그 중앙을 구한다.
그 차선 중앙과 차의 현재 위치 차이가 오차(error)다. 오른쪽으로 치우쳤으면 음수, 왼쪽이면 양수다.

이 오차를 핸들 각도로 바꾸는 게 PID 제어기다.
P(비례)는 지금 오차에 비례해 꺾는다. 많이 벗어나면 많이 꺾는다.
I(적분)는 오래 쌓인 작은 치우침을 메운다.
D(미분)는 오차가 줄어드는 속도를 보고 미리 핸들을 풀어 출렁임을 잡는다.

출력은 조향각과 속도다. 조향각은 서보로, 속도는 구동모터로 간다.
매 프레임 이걸 반복하면 차가 스스로 차선을 따라 흐른다. 16강 SLAM이 “어디 있나”였다면, 여긴 “차선 한가운데로 어떻게 붙나”다.

카메라가 본 차선 오차를 PID가 조향각으로 바꾼다
오차 → PID → 조향각
오차 e
P
비례
오차에 비례
I
적분
쌓인 치우침
D
미분
출렁임 억제

세 항을 더해 조향각 = Kp·e + Ki·∫e + Kd·de/dt

P.03Physical AI · 23

직접 몰아보기, 곡률과 게인

오른쪽에서 직접 차를 차선에 태워 PID로 몰아 본다.

주행을 누르면 차가 위로 달리고, 굽은 차선을 PID가 따라간다.
차 아래 막대가 오차다. 차선 중앙(빨간 점)에서 벗어난 거리다. 차가 중앙에 붙으면 막대가 짧아진다.

차선 곡률 슬라이더를 올리면 길이 더 굽어 추종이 어려워진다.
Kp를 키우면 빨리 붙지만 너무 크면 좌우로 출렁인다(진동).
Kd를 올리면 그 출렁임을 눌러 준다. 단 너무 크면 둔해진다.

게인을 잘못 맞추면 차가 차선을 벗어나 이탈이 뜬다.
좋은 게인은 빠르게 붙으면서도 출렁이지 않는 균형이다.

곡률을 키우고 Kp·Kd를 만져 추종과 이탈을 본다
미니 자율주행 · 차선을 PID로 따라가기
차선 중앙카메라가 본 목표
차선 곡률, 길이 얼마나 굽었나5
0 = 직선10 = 급커브
Kp, 비례40

크면 빨리 붙되 출렁

Kd, 미분30

출렁을 눌러 줌

지금 오차

13px

차선 중앙에서 벗어난 거리

상태

추종

차선 안 · 최대오차 0px

오차를 PID가 조향으로 바꿔 차선 중앙으로 끌어온다. 이게 추종 제어다.

P.04Physical AI · 23

시뮬에서 검증 후 현실

처음부터 진짜 차로 도로에 나가지 않는다. 망가지고 다치기 때문이다. 먼저 시뮬에서 굴린다.

시뮬레이터(예: CARLA)에선 차선과 신호, 보행자와 악천후를 마음껏 깐다.
위험한 상황을 수천 번 반복해도 공짜고 안전하다. 게인 튜닝과 강화학습 정책도 여기서 먼저 익힌다.

하지만 시뮬은 현실과 다르다. 빛 반사와 바퀴 미끄럼, 센서 노이즈를 다 담지 못한다.
이 틈을 sim-to-real gap이라 한다. 그래서 시뮬에서 됐다고 끝이 아니다.

순서는 늘 같다. 시뮬에서 검증하고, 통제된 시험장을 거쳐, 제한 구역 실차로 가고, 점진적으로 넓힌다.
22강에서 본 안전과 신뢰성(폴백·중복화)이 이 단계마다 깔려 있어야 한다. 인지와 제어가 다 맞물려도 안전 없이는 도로에 못 나간다.

안전한 시뮬에서 먼저 → 검증 → 실차로
시뮬 먼저 → 현실로
1
시뮬레이터CARLA 등에서 위험 상황 무한 반복, 공짜·안전
2
검증게인·정책이 시뮬에서 도는지 확인
3
통제 시험장닫힌 트랙에서 실차 첫 주행
4
제한 구역 실차정해진 도로부터 점진 확대

빛과 미끄럼, 노이즈는 시뮬이 못 담는다(sim-to-real gap). 그래서 단계마다 안전 장치를 둔다

P.05Physical AI · 23

한 대로 꿰는 종합

작은 차 한 대에 이 코스 전부가 들어 있다.

센서로 세상을 재고, 인지로 차선과 장애물을 알아보고, 제어(PID)로 조향과 속도를 정하고, 구동으로 모터를 굴린다.
그 위에 안전 층이 덮여 이상하면 멈추거나 사람에게 넘긴다.

실차 자율주행도 규모만 클 뿐 같은 골격이다. 카메라와 라이다 여러 대, HD맵, 더 정교한 인지와 계획과 제어, 그리고 두꺼운 안전 장치가 붙는다.
이 미니 프로젝트가 그 구조를 손으로 만져 보는 자리다.

정리하면 자율주행차는 한 기술이 아니라 센서와 인지, 제어와 안전의 합주다.

Q. 미니 자율주행차에서 제어의 핵심 한 줄은?차선 중앙과 차 위치의 오차를 PID로 줄여 조향하기다.
카메라로 차선 중앙을 구하고, 거기서 벗어난 거리(오차)를 비례와 적분과 미분으로 굴려 핸들 각도를 낸다.
P는 많이 벗어나면 많이 꺾고, D는 출렁임을 눌러 부드럽게 붙인다.
매 프레임 이 오차를 조향으로 바꾸기를 반복하는 게 차선 추종의 핵심이다.
센서 → 인지 → 제어 → 구동, 그 위에 안전
한 대로 꿰는 스택
안전이상하면 멈추거나 사람에게 넘긴다
구동서보·모터로 조향·가감속
제어 (PID)오차를 조향각·속도로
인지차선·장애물 알아보기
센서카메라·라이다·IMU로 세상 재기

아래에서 위로 흐르고, 안전이 전체를 덮는다. 실차도 규모만 클 뿐 같은 골격이다

3줄 요약

  1. 1센서·인지·제어를 모아 직접 달리게
  2. 2프로젝트: 자율주행차은 하드웨어 → 제어·비전 → 로보틱스·RL → LLM 연동 → 자율주행·프로젝트 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

프로젝트:

센서·인지·제어를 모아 직접 달리게

센서

빛·거리·온도 같은 물리 신호를 숫자로 바꾸는 부품

액추에이터

전기 신호를 움직임으로 바꾸는 부품(모터 등)