이번 주말은 자율주행차와 트랙을 직접 만드는 교육을 진행한다.
최종 1차 목표는 완주, 2차 목표는 가능하다면 속도를 조금이라도 빠르게 하는 것이다.
실제로 운전하고, 학습하고, 트랙도 만들고 하니까 엄청 재밌고 뿌듯한 하루였다!
우리가 사용할 자율주행차는 동키카이다.
[Part 1] 동키카, 자율주행차
1. 동키카 (Donkey Car)
: RC카 기반의 본체에 라즈베리파이 보드를 통해서 카메라 기반의 이미지를 인식하여 조향장치를 조정하여 자율 주행이 가능
1) 동키카의 주행학습
사용자가 직접 운전 및 조종하는 것을 보고 학습하기에 처음부터 자율로 알아서 가는 게 아니다.
- 카메라로 주행하는 데이터를 찍고, 뉴럴 네트워크를 통해서 차선이 어디인지 인식
- json과 jpg 파일로 저장, 서버에서 학습,
- 조종은 웹브라우저로 가능(조이스틱)
2) '행동복제'
: 수동 주행에 따른 데이터 수집
- 낙폭운전, 사고 등 내면 다 따라하기에 운전할 때 조심하기
2. 자율주행의 개요
1) 자율자동차
: 인간의 운전없이 자동으로 주행할 수 있는 자동차
- 레이더, LIDAR, GPS, 카메라로 주위 환경을 인식하여 목적지를 지정하는 것만으로 자율적으로 주행
2) 자율주행의 6단계
- 총 운전자가 모두 제어(0)~운전자가 불필요(5)단계
- 현재 기술은 운전자 제어 불필요(4)단계까지 발전, 양산은 운전자의 제한된 제어(2)~운전대와 브레이크에 손과 발을 떼고 있어도 됨(3) 단계
- 상암동 자율주행구역, 미국에서 일부 지역 무인 택시 운영 등
[Part 2] RC카로 실습하기
1. 트랙 만들기
트랙은 별거 없고 절연테이프로 바닥에 붙이는 것이다. 종이테이프는 굴곡을 만들기 어려워서 절연테이프가 더 좋았다.
다만 조건이 있었는데, '①직선 커브 1개 이상 ②총 커브 3개 이상 ③U자형 커브 1개 이상 ④1분 30초 내에 들어오기'였다.
우리 조는 의도한 건 아니었지만, 만들고 나니까 따봉 모양이었다.
트랙은 가운데 선을 먼저 만들고, 바깥선을 만드는 것이 더 쉽다고 했는데 딱히 차이는 없는 듯하다.
2. RC카와 내 컴퓨터 연결하기
1) 파일질라 설치 후, 라즈베리파이에 FTP 접속
2) Windows PowerShell에서 SSH 연결
3) Donkey Moniter 접속
python ~/mycar/manage.py drive 실행
우리 자동차의 시선이다.
속도가 너무 빠르게 나가면 확 튀어나가기 때문에 Max Throttle 15% 정도로 설정하는 거 잊지 말기!
3. 학습 데이터 수집
트랙을 따라서 조이스틱을 통해 수동으로 운전을 해야 한다.
조이스틱이 usb인데, 내 노트북은 c타입만 연결되기에 오늘은 우선 핸드폰으로 조이스틱을 대체했다.
핸드폰으로도 아주 잘되긴 하는데, 실제 게임기 조이스틱으로 하면 더 재밌을 것 같다. 내일은 젠더 꼭 챙겨가야지!
트랙을 돌 때, 속도보다는 정확도가 중요하다.
아주 천천히 돌아도 되는 대신 정확하게 해야 한다. 근데 생각보다 운전하는 것이 어려웠다.
정확히 10바퀴 정도 돌면, 웬만하면 자율주행할 때 완주한다고 한다.
4. 수집된 데이터 편집하기
① Ctrl + c 눌러서 기존 실행 중이던 프로그램 모두 종료
② 다시 SSH 연결 화면 Entbe 네트워크인지 확인
③ donkey tubclean ~/mycar/data실행
④ 192.168.0.XXX:8886 웹브라우저로 접속
⑤ Tub 별로 편집하고, 내가 학습에 쓰고 싶은 Tub 이름 기억하기 (메모하기)
5. 학습하기
① FileZilla 통해서 mycar/data 폴더 안에 있는 tub_x_230716 폴더(내가 학습하고자 하는 Tub)를 JupyterNotebook data 폴더 안으로 옮기기
- 폴더 압축 (tar -cvf [압축할 이름] [압축할 폴더])
ex) tar -cvf data.tar tub_2_23-07-14
② 폴더 압축 풀기 (tar xvf -압축 파일)
donkey train --tub.₩data\tub_x_230716 --model mypilot.h5
- 꼭 %pwd 명령어로 /[폴더이름]/mycar 디렉토리 인지 체크하기
③ 명령어를 통해서 모델 학습 (Epoch 다 안 돌아도 h5 모델은 생성됨)
6. 적용하기
① FileZilla 통해서 h5 파일을 Donkeycar로 옮기기 (mycar/models 폴더)
② Donkeycar ssh에 접속
③ python manage.py drive --model models/mypilot.h5
④ 192.168.0.XXX:8887 웹브라우저 접속 → 좌측 하단에 select Mode Local Pilot 선택하면 바로 주행
※ 해당 카테고리는 딥노이드, 오픈놀, 앙트비에서 주최하는 '<스타트업 유니버시티: DX Challenge 교육> AI+X 역량 강화 트랙'에 대한 기록입니다.
'[AI+X 역량 강화] 인공지능 > 3) 실전 챌린지: 스마트 트랜스폼' 카테고리의 다른 글
인공지능을 활용한 자율비행 드론 프로그래밍 // Tello Drone (0) | 2023.09.23 |
---|---|
컴퓨터비전을 활용한 자율자동차 AI 프로그래밍#2 // 동키카 데이터 수집 방법 (0) | 2023.09.17 |
데이터 분석 워크숍(orange3 활용)#3 // 군집화, 앙상블 학습, 팀프로젝트 (0) | 2023.09.10 |
데이터 분석 워크숍(orange3 활용)#2 // 분류, 알고리즘, 회귀, 예측 (0) | 2023.09.09 |
데이터 분석 워크숍(orange3 활용)#1 // 기술 통계, 정규화, 범주화, 숫자형 및 범주형 변환 (0) | 2023.09.09 |