auto_car 프로그램 물리 검증 체크리스트

실제 자동차로 하나씩 검증 · 체크 상태는 이 브라우저에 자동 저장됩니다
0 / 0 (0%)

진행 원칙 & 프리플라이트

드라이런 먼저(--no-car) ② 펌웨어 교체 최소화(AP는 단계3만, 나머지 STA 한 번) ③ 벤치 우선(첫 주행은 바퀴 공중, 손가락은 정지키) ④ 한 세션 몰아서 / 트랙 재사용 / 실패 즉시 기록

매 STA 세션 프리플라이트: 핫스팟 ON · 자동차 전원 ON(시리얼 WiFi connected IP) · 브라우저 http://<IP>/stream 영상 · config.json IP 일치 · 배터리 · 차 벤치 거치

작업 폴더: cd D:\data\study\AI\Fab-Lab\CAR\Program\auto_car

PHASE 0 — 소프트웨어 드라이런 자동검증 완료

✅ 0.1·0.3·0.6 통과 · ⚠️ 0.2 mediapipe·pygame 미설치(모드1·5 쓸 때 설치). 0.4·0.5는 화면 있는 PC에서 창 확인.

0.1 기본 의존성 pip install opencv-python==4.8.1.78 numpy==1.24.3
합격: 임포트 오류 없음 (완료)
0.2 (선택) pip install mediapipe pygame 모드1·5용 — 현재 미설치
0.3 메뉴 드라이런 cd imitation_learning_car && python main_learning.py --no-car
합격: 메뉴 6모드+q (완료)
0.4 6모드 GUI 창 확인 python main_learning.py 2 --no-car (1·3·4·5·6도)
합격: 대시보드 창 뜸→ESC · 화면 있는 PC에서
0.5 심화 GUI 창 확인 cd advanced_lessons → traffic_light/cone_follow/parking_assist/pid_distance_cruise/maze_explore/fusion_drive/measure_fps/telemetry_logger --no-car, race_timer
합격: 각 창 뜸 · 화면 있는 PC에서
0.6 데이터 도구 dataset_viewer/augment/error_analysis
합격: 정상 출력 (완료)

PHASE 0B — 비하드웨어 자료·라이브러리 자동검증 완료

✅ 0B.1~0B.4 통과. 검증 중 버그 1개 발견·수정: 5_학생교육자료_생성.py 옛 경로 하드코딩 → 상대경로로 수정.

환경 주의: 활성 파이썬(anaconda)에 numpy 2.4.4 → matplotlib 임포트 깨짐(생성도구는 PIL이라 영향 없음). 영상/검출에서 호환 오류 시 전용 venv에 pip install "numpy<2" 권장.
0B.1 교재 생성도구 7종 cd 교재/생성도구 → 1~6 실행
합격: 7/7 산출물 생성 (완료, 버그 수정 포함)
0B.2 배선 안내서 python esp32_cam/create_wiring_doc.py
합격: 문서 생성 (완료)
0B.3 라이브러리 임포트 (udp_sender·video_stream·lane_detector·controller)
합격: OK · object_detector는 ultralytics 설치 시 (완료)
0B.4 신호등 모델 python python/download_traffic_model.py
합격: 모델 다운로드 (완료)

PHASE A — AP 펌웨어 (단계3 폰 직접) · 노트북 핫스팟 OFF

업로드 준비 보기

FTDI 5V·GND·TX→U0R·RX→U0T, 업로드 시 IO0–GND. 보드: AI Thinker ESP32-CAM / Huge APP. 업로드 후 IO0 분리→RST→시리얼 115200.

A.1 업로드 esp32_cam/firmware_AP_phone/firmware_AP_phone.ino
합격: 시리얼에 AP IP 192.168.4.1
A.2 폰 Wi-Fi Auto_Car_01 접속 → 브라우저 http://192.168.4.1
합격: 조종 페이지 + 영상
A.3 D-pad 주행(전/후/좌/우/정지) — 벤치
합격: 버튼대로 반응
A.4 (선택) 기울기 조향
합격: 동작 · 안 되면 버튼만으로도 OK(HTTPS 제약)
A.5 미니 자율주행 회피/순찰/따라가기(초음파)
합격: 장애물 앞 반응 → 끝나면 STA 펌웨어로 교체

PHASE B — STA 브링업 · 노트북 핫스팟 ON (벤치)

핫스팟: SSID Auto_Car_01 / 비번 12345678 / 2.4GHz (STA 펌웨어와 일치). 노트북 IP 192.168.137.1, 자동차 192.168.137.x
B.1 STA 업로드 esp32_cam/firmware_STA_python/firmware_STA_python.ino
B.2 자동차 IP 확인: 시리얼 WiFi connected. IP: 192.168.137.xx (또는 핫스팟 연결장치 / 브라우저 stream)
B.3 config/config.json 의 esp32.ip 를 실제 IP로 갱신
B.4 연결 python tests/test_esp32_connection.py
합격: 응답 OK
B.5 UDP python tests/test_udp.py
합격: 시리얼 명령 수신
B.6 모터·서보 python tests/test_motor.py
합격: 전/후진·좌/우 (벤치)
B.7 서보 중립 python python/init_servo.py
합격: 직진 시 앞바퀴 정중앙
B.8 영상 python tests/test_video_stream.py
합격: 실시간 영상
B.9 차선검출 python tests/test_lane_detection.py
합격: 마스크·중심점
B.10 (선택) 객체감지 pip install ultralyticspython python/object_detector.py

PHASE C — 기초 9단계 (학생용_프로그램) · 벤치→트랙

cd 학생용_프로그램 · 각 파일 상단 ESP32_IP 실제 IP로

C.4 python 단계4_파이썬기초.py — UDP 첫 명령
합격: 전송 로그 + 차 반응
C.5 python 단계5_모터수동조종.py — 키보드 조종
합격: 전/후·좌/우 (벤치→바닥), speed 80↑
C.5b python 단계5_5_초음파_자율주행.py
합격: 1~4 회피/순찰/따라가기
C.6 python 단계6_영상표시.py
합격: 영상 수신
C.7 python 단계7_HSV튜닝.py — 트랙 위
합격: 차선 마스크·중심점, 조명에 맞게 HSV 조정
C.8 python 단계8_차선추종.py — 자율주행(트랙)
합격: 차선 따라 주행 · 떨면 Kp↓, 커브 못돌면 Kp↑
C.9 pip install ultralyticspython 단계9_미니자율주행.py
합격: 차선+사람/신호등 감지 정지

PHASE D — python/ 통합 모듈 (선택) · 트랙

D.1 python python/main.py — 통합 자율주행
D.2 python python/hsv_tuner.py — HSV 슬라이더
D.3 python python/ultrasonic_drive.py — 1~4 회피/순찰/따라가기

PHASE E — 모방학습 6모드 · 트랙

cd imitation_learning_car · python main_learning.py <N> --ip <IP> · 권장순서 2→1→5→6→4→3 · LIVE: 모드1·2=T, 3·4·5·6=Y · SPACE 정지

AUTO 속도 조절(모드 3·4): 주행 중 ] 가속 / [ 감속(배율 ±0.1), 또는 실행 시 --speed-scale 1.5 / --base-speed 130(속도 고정·조향만 학습). 시연이 느려도 빠르게 주행 가능. 정지(0)는 항상 유지, 보통 1.2~1.5배가 안정.
E.2 모드2 키보드: T(LIVE)→R(녹화)→WASD→R(저장)→P(재생)
합격: 경로 재현
E.1 모드1 손(pip install mediapipe, --webcam 0): T→손운전→R/S→P
합격: 손 인식·재생
E.5 모드5 조이스틱(pip install pygame, PS4 USB): Pad 인식→스틱 운전→C(ML)
합격: 조종·ML capture 증가
E.6 모드6 폰: 화면 주소를 폰에서 열기→Y→폰 운전→C(ML)
합격: 폰 조종·워치독 정지 · 방화벽 허용
E.4 모드4 KNN: T로 8~12개 티칭→G(AUTO)
합격: 사례 보간 자율주행 · 속도실험 ]가속/[감속(auto speed 표시)
E.3 모드3 회귀: T로 10개+→M(학습,RMSE)→G(AUTO)
합격: 모델 자율주행 · 조향RMSE>10이면 데이터 점검 · 속도실험 [] 또는 --base-speed
E.S 속도 한계 실험: 시연은 느리게, 주행 중 ]로 가속하며 커브 이탈 시작점 찾기 (모드3·4 동일)
합격: 배율↑ 시 휘청거림 관찰 · 안정 한계 기록
E.T 데이터 도구(자동차 불필요): tools/dataset_viewer·augment_dataset·error_analysis

PHASE F — 전문 심화 A~E · 트랙

cd advanced_lessons · python <파일> --ip <IP> · 첫 실행 벤치, LIVE=Y, SPACE 정지

F.B1 vision_traffic_light.py — 빨강 정지/초록 출발
F.B2 vision_cone_follow.py — 주황 콘 추종
F.B3 vision_person_stop.py (ultralytics) — 사람 보면 정지
F.B4 vision_aruco.py --stop-id 0 (opencv-contrib-python) — 마커 추종/정지
F.B5 measure_fps.py --seconds 10 — FPS·RTT
F.C1 parking_assist.py --target 15 — 목표 거리 정지
F.C2 pid_distance_cruise.py — 거리유지, q/a/w/s/e/d 게인
F.C3 maze_explore.py --thresh 20 — 앞 막히면 회전
F.C4 fusion_drive.py --safe 15 — 콘 추종+초음파 정지
F.D1 telemetry_logger.py — 주행 CSV 저장
F.D2 race_timer.py --teams "1조,2조" — 랩타임/리더보드/CSV
F.E1 face_blur_photos.py --dir <사진폴더> — 얼굴 블러

실패 항목 기록 (자동 저장)

증상·시도·상태를 자유롭게 기록하세요. 교재/문제해결.md 와 함께 디버깅.

auto_car 전체 파일 검증 · 체크 상태와 메모는 이 브라우저에 저장됩니다 (다른 PC에서 열면 초기화)

복사됨