책 소개
<인공지능 자율주행 RC카로 체험하고 코딩하기 with 라즈베리파이> 책은 인공지능 자율주행을 짧은 시간에 체험할 수 있으며 원한다면 인공지능 자율주행 자동차의 내부를 직접 코딩하며 인공지능과 관련된 공부를 심도있게 수행할 수 있습니다.
책은 크게 인공지능 자율주행 자동차 체험하기와 인공지능 자율주행 자동차 코딩하기로 구성되어 있습니다.
Chapter 01에서는 자율주행 자동차에 대해 알아보고 딥러닝 기반의 인공지능 자율주행 RC카인 동키카를 시뮬레이터를 통해 체험해 봅니다. 이 과정에서 인공지능 학습의 전체적인 흐름을 이해해 봅니다.
Chapter 02에서는 인공지능 자율주행 RC카 개발 환경을 구성하고 직접 제작한 RC카를 이용하여 인공지능 자율주행 RC카 체험을 해 봅니다. RC카와 카메라를 이용하여 데이터를 수집하고, 수집한 데이터를 CNN 인공 신경망을 통해 학습시키고, 학습된 CNN 인공 신경망을 이용하여 자율주행을 수행하는 단계로 체험해 봅니다.
Chapter 03에서는 자율주행 RC카 구동을 위해 필요한 라즈베리파이 파이썬 패키지의 사용법을 익혀봅니다. 먼저 디버깅을 위한 print 함수를 살펴보고, 다음으로 모터 제어를 위한 GPIO와 PWM의 원리를 공부하여 DC 모터를 제어해 봅니다. 또, 인공지능 학습시 필요한 라벨 데이터를 생성할 라인트레이서 센서를 공부합니다. 마지막으로 프로그램이 원활하게 돌아가게 하기 위해 쓰레드와 메시지 큐에 대해 공부합니다.
Chapter 04에서는 인공지능 자율주행 RC카를 구성하는 카메라 동영상 송수신, WiFi 통신, 인공지능 관련된 소스를 하나하나 살펴보면서 그 원리를 이해하고 응용할 수 있도록 합니다. 구체적으로 TCP/IP 네트워크 통신을 공부하고, 통신을 이용하여 카메라 영상과 센서 데이터를 주고 받아봅니다. 통신을 통해 수집한 영상과 센서 데이터를 이용하여 CNN 인공 신경망 학습을 수행하고 학습된 CNN 인공 신경망을 이용하여 자율주행을 수행해 봅니다.
부록에서는 파이썬 조이스틱 프로그램을 구현하고 조이스틱 프로그램을 이용하여 RC카를 조종하고 데이터를 수집하는 방법을 소개합니다.
※ 이 책의 예제 소스파일 다운로드 방법은 3쪽을 참조하고, 책을 보면서 궁금한 사항의 질의응답 방법은 4쪽을 참조합니다.
※ 이 책의 실습 준비물은 5~6쪽 인공지능 자율주행 RC카 조립 방법 44~65쪽을 참조합니다.
자동차는 인공지능을 학습하기에 아주 좋은 조건을 제공합니다. 인공지능 학습에 필요한 데이터 수집이 용이하기 때문입니다. 예를 들어, 이 책에서는 RC카를 5분 정도 주행하여 4000장의 사진 데이터를 모아줍니다. 4000장의 데이터를 독자 여러분이 직접 모으려면 많은 노력이 필요할 것입니다. 또한, RC카 자제가 학습에 흥미를 더해주는 요소가 되어 인공지능을 공부하는데 재미를 더해줍니다.
<인공지능 자율주행 RC카로 체험하고 코딩하기 with 라즈베리파이> 책은 동키카와 인공지능 자율주행 자동차(RC카)를 통해 재미있게 인공지능을 체험할 수 있고, 조금 더 깊이 있는 인공지능 내용도 배울 수 있는 지침서가 될 것입니다.
작가 소개
서민우
현) 코코랩스(http://www.kocolabs.co.kr/) 대표
MDS 아카데미 Cortex-M3/M4, 드론, 리눅스 교육
대한상공회의소 서울기술교육센터 출강
LG 전자 신입사원 C/C++ 교육
SK 하이닉스 RTOS 교육
삼성전자 리눅스 드라이버/RTOS 교육
Xilinx FPGA/HDL 교육
ETRI verilogHDL 교육
숭실대 아두이노 IoT 교육
국민대 Cortex-M3 교육
[저서]
한 권으로 끝내는 파이썬 아두이노 입문+실전(종합편) (2021. 9 앤써북)
아두이노로 코딩하며 배우는 딥러닝 (2021. 06 앤써북)
ESP32 아두이노 드론 만들고 직접 코딩으로 PID 제어하기 (2021. 02 앤써북)
아두이노 자율주행 RC카 만들고 직접 코딩하기(2020. 12 앤써북)
진짜 코딩하며 배우는 파이썬(2020. 07 앤써북)
아두이노 드론 만들고 날리고 직접 코딩하기(2020. 03 앤써북)
마이크로비트로 배우는 파이썬(2020. 02 앤써북)
아두이노 배우면서 사물 인터넷(IoT) 직접 코딩하기(2019. 07 앤써북)
한 권으로 끝내는 아두이노 입문 + 실전(종합편)(2019. 02 앤써북)
아두이노 사용자를 위한 라즈베리 파이 드론 만들고 직접 코딩하기 (2018. 07 앤써북)
아두이노 드론 만들고 코딩하고 날리기 입문(2017. 03 앤써북) 외 다수
목 차
CHAPTER 01 인공지능 자율주행 자동차 체험하기 1
01_ 자율주행 자동차의 이해
01_1 자율주행 자동차 기술
01_2 자율주행 자동차와 모터
01_3 인공지능 자율주행 RC카 살펴보기
DonkeyCar(동키카)
DeepPiCar(딥파이카)
DeepRacer(딥레이서)
02_ 인공지능 자율주행 RC카 DIY하기
02_1 반 완제품으로 만들기
전자부품
레고부품
02_2 시제품으로 만들기
02_3 3D 프린터로 만들기
03_ 동키카 체험하기
03_1 Windows 동키카 설치하기
파이썬 설치하기
Git 설치하기
관리자 권한으로 cmd 실행하기
동키카 패키지 설치하기
03_2동키카 시뮬레이터 설치하기
동키카 설치하기
동키카 시뮬레이터 설치하기
03_3동키카 시뮬레이터 설정하기
03_4 동키카 시뮬레이터 실행하기
03_5 동키카 조종하기
03_6 수집된 데이터 확인하기
03_7 동키카 학습시키기
03_8 동키카 자율주행 시키기
03_9 동키카 CNN 소스 확인하기
04_ 인공지능 자율주행 RC카 조립하기
04_1 부품 살펴보기
전자 부품
레고 부품
도로용 테이프와 고무줄
04_2인공지능 자율주행 RC카 조립하기
RC카 몸체부 조립하기
카메라 라즈베리파이부 조립하기
DC 모터선 연결하기
라인트레이서 센서부 조립하기
배터리 장착하기
CHAPTER 02 인공지능 자율주행 자동차 체험하기 2
01_ 인공지능 자율주행 RC카 살펴보기
01_1 라즈베리파이 개요
01_2 라즈베리파이 4와 라즈베리파이 3 비교하기
01_3 라즈베리파이 하드웨어 특징
01_4 라즈베리파이 RC카 쉴드 살펴보기
02_ 자율주행 RC카 개발 환경 구성하기
02_1 윈도우 10 모바일 핫스팟 설정하기
02_2 라즈베리파이 이미지 설치하기
micro SD 카드 준비하기
라즈베리파이 이미지 다운로드
Raspberry Pi Imager 설치
02_3라즈베리파이 이미지 설치
SSH와 WiFi 설정하기
02_4 라즈베리파이 부팅하기
02_5 SSH 원격 접속하기
putty 프로그램 설치하기
라즈베리파이 원격 접속하기
02_6 삼바 서버 설치하기
삼바 설치하기
삼바 서버 설정하기
삼바 접속하기
02_7 파이썬 편집기 설치하기
02_8 원격으로 실습하기
실습 디렉터리 만들기
파일 생성하기
파이썬 프로그램 작성하기
파이썬 프로그램 실행하기
02_9카메라 설정하기
카메라 활성화하기
python3-opencv 설치
라즈베리파이에 gstreamer설치하기
윈도우에 gstreamer 설치하기
gstreamer 테스트하기
03_ 인공지능 자율주행 RC카 체험하기
03_1 주행 도로 만들기
03_2 라인트레이서로 주행 테스트하기
03_3 데이터 수집하기
03_4 CNN 인공 신경망 학습하기
03_5 CNN 인공지능 자율주행하기
CHAPTER 03 인공지능 자율주행 자동차 코딩하기 1
01_ print 함수
01_1 print
01_2 while
01_3 try~except
01_4 time.sleep
01_5 문자열, 숫자 출력하기
01_6 형식 문자열 사용하기
01_7 정수, 실수 출력하기
01_8 str.format 함수 사용해 보기
02_ Rpi.GPIO.output 함수
02_1 LED 켜고 끄기
LED 켜기
LED 끄기
02_2 LED 점멸 반복해보기
02_3 LED 점멸 간격 줄여보기
02_4 LED 점멸을 밝기로 느껴보기
02_5 LED 밝기 변경해 보기
LED 어둡게 해보기
LED 밝게 해보기
02_6LED 밝기 조절해보기
03_ Rpi.GPIO.PWM 모듈
03_1 LED 점멸 반복해 보기
03_2 LED 점멸 간격 줄여 보기
03_3 LED 점멸을 밝기로 느껴 보기
03_4 LED 밝기 100단계 조절해 보기
04_ 모터 제어하기
04_1 오른쪽 앞바퀴 전진 코딩하기
04_2 오른쪽 앞바퀴 후진 코딩하기
04_3 전진 후진 속도 기준 통일하기
04_4 전진 후진 속도 보정하기
04_5 전체 바퀴 전진 후진 코딩하기
for문 일반화하기
오른쪽 뒤 바퀴 추가하기
왼쪽 뒤 바퀴 추가히기
왼쪽 앞바퀴 추가하기
04_6모터 드라이버 살펴보기
전진 후진 테스트하기
좌회전 우회전 테스트하기
05_ 적외선 송수신 센서로 검정 선 감지하기
05_1 적외선 송수신 센서 테스트 코딩하기
05_2 자동차 주행 원격 제어하기
06_ threading.Thread 클래스
06_1 쓰레드 생성하기
06_2 쓰레드로 LED 점멸 반복해 보기
07_ 메시지 큐 통신
07_1 주 루틴과 쓰레드 간 메시지 큐 통신하기
CHAPTER 04 인공지능 자율주행 자동차 코딩하기 2
01_ 네트워크 통신 수행하기
01_1 카메라 서버 프로그램 작성하기
01_2 카메라 서버에 접속해 보기
01_3 카메라 서버에 명령 보내기
라즈베리파이 카메라 서버에서 명령 기다리기
라즈베리파이 카메라 명령 보내기
01_4 카메라 서버로부터 데이터 받기
PC 카메라 클라이언트로 데이터 보내기
PC 카메라 클라이언트에서 데이터 받기
02_ 카메라 영상 주고 받기
02_1 카메라 영상 보내기
02_2 카메라 영상 받기
02_3 frame rate 측정하기
03_ 라인트레이서 센서 데이터 주고 받기
03_1 라인트레이서 센서 데이터 보내기
03_2 라인트레이서 센서 데이터 받기
04_ 모터 제어 명령 주고 받기
04_1 모터 제어 명령 받기
04_2 모터 제어 명령 보내기
05_ RC카 주행 원격 제어하기
06_ 데이터 수집하기
07_ CNN 인공지능 학습하기
07_1 수집한 데이터 불러오기
07_2 수집한 이미지 출력해 보기
07_3 훈련, 검증, 시험 데이터 분리하기
07_4 인공 신경망 학습시키기
07_5 시험 데이터로 확인해 보기
08_ CNN 인공지능 자율주행하기 1
09_ CNN 인공지능 자율주행하기 2
CHAPTER 05 인공지능 자율주행 자동차 코딩하기 2
01_ 파이썬 조이스틱 코딩하기
01_1 조이스틱 모듈 살펴보기
01_2 조이스틱 테스트하기
조이스틱 위치값 얻어오기
RC카 방향값 얻어오기
02_ video joystick 코딩하기
03_ 조이스틱 모터 제어 명령 주고 받기
03_1 조이스틱 모터 제어 명령 받기
03_2 조이스틱 모터 제어 명령 보내기
04_ 자동차 주행 원격 제어하기
05_ 데이터 수집하기
역자 소개
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |