머신러닝 딥러닝을 이용한 AI 자율주행 RC카 프로젝트 with 파이썬+아두이노 만들기

머신러닝 딥러닝을 이용한 AI 자율주행 RC카 프로젝트 with 파이썬+아두이노 만들기 서민 사용자 | 앤서북 | 2022년 05월 20일

체험 중심의 교재책은 가독성이 좋고 사진과 설명이 풍부하며 두께가 얇고 가볍다. 부품 키트를 옵션으로 구입할 수 있어 쉽게 조립할 수 있다. 책은 단계적으로 따르도록 설계되어 있다. 가상주행으로 미리보기가 끝나면 실물 조립으로 이어져 제공되는 파일소스로 업로드가 가능해 차량 주행 및 인공지능 학습을 바로 체험할 수 있다. 이후 부족한 부분을 상세하게 이해할 수 있도록 각 부품의 코딩 설명을 보충했다.

책 수준 대학생 이상 중급자에게 적합한 것 같지만 전자조립과 아두이노 파이썬 등 코딩에 관한 경험이 있다면 중고등학생도 만들 것이다. 초급자는 도우미가 필요할 것 같아.

단계별 순서 동키카 시뮬레이터를 설치해 가상으로 자율주행을 하며 인공지능 학습에 대해 경험하게 한다. 이후 실제 동키카를 조립해 업로드하고 테스트를 해보게 된다. 다음은 각각 중요 부품에 관한 코딩을 자세히 설명하면서 학습하게 된다. 따라서 비로소 코딩에 대해 이해할 수 없는 부분을 여기서 이해할 수 있다.

몇 가지 알아야 할 점 1. 휴대하는 고성능 윈도10 노트북이 있으면 된다.2. 와이파이가 없는 사용자는 주행실습이 어렵다.3. 주행공간이 필요하다. 공간이 좁은 사용자는 세로 2m 정도의 주행도로를 어떻게 확보할 지 고민해야 한다. 4. 파이썬, 편집자, 아두이노 등 기본 지식이 필요하다. 또한 아두이노의 각 부품도 사전에 충분히 숙지하고 조립하여 코딩해야 문제가 없어진다.5. 실습 시 주의해야 할 점이 있다. 제공된 소스 파일 및 프로그램 설치 등에 돌발 변수가 있으므로 책대로 되지 않을 경우 꼼꼼히 출판사 Q/A 게시판 및 인터넷 등을 살펴 문제점을 파악하고 설치해도 실수가 없다.

필자가 프로그램 설치, 차체 조립, 코딩 업로드 등 실제로 해본 과정을 나열해 본다.

  1. 동키카 시뮬레이터를 먼저 윈도10 노트북에 파이썬 및 편집기를 설치했다.Git 설치하고 관리자 권한으로 cmd 실행하여 동 키커 패키지를 설치한다.

동키카 시뮬레이터 설치 후 설정 및 실행하여 동키카를 조종해 본다. 도로를 떠나지 않게 하는 조종이 어려울지도 모른다. 3회 정도 주행한다.가상의 자율주행을 위해 수집된 데이터는 다음과 같다.

앞으로는 동키카를 딥러닝 기반으로 스스로 주행하도록 학습시켜본다.

학습이 끝나면 스스로 주행시킨다. 그러나 아쉽게도 주행 중 나무에 부딪히지만 후진을 하지 못하고 멈춰버리는 현상이 계속 발생했다.

정지 상태에 이르러 난감해졌고 처음부터 다시 장착해 조종하는 등 이로 인해 많은 시간을 소비하게 됐다. 그러나 다음 실물 동키카의 조립이나 주행과는 무관한 과정이므로 이는 통과해도 좋다. 어쨌든 본 과정 이후에 동키카의 CNN 소스를 확인해보고 동키카 강화학습 체험 등이 있어 시간이 되면 해봐야 할 것 같다.

2. 실물 RC카 조립이 30분 정도 걸려 직접 조립해봤다.

차체는 레고 부품의 조합이며 여기에 아두이노, 배터리, 모터 등 전자 부품이 본체에 조합된다.

본체부, 카메라부, 배터리 장착 등 조립 과정이 사진과 글로 포함돼 있어 무리 없이 마쳤지만 카메라 조립으로 테스트를 하고 실물을 보여주는 과정이 꼭 필요해 보였다. 또 초보자들을 위해 좀 더 자세하게 과정을 설명할 필요가 있을 것 같다.

3. 주행실습 카펫 바닥에 직접 붙이기 싫어 흰색 벽지를 준비해 주행을 위한 간이 도로를 만들었다.

검은색 테이프를 구입해 폭(RC카)이 12cm인 도로를 세로 2m50cm 정도로 만드는 데 1시간이 걸린 것 같다.

실제 바닥에 그려보면 알겠지만 폭을 정확히 유지하면서 테이프를 길게 붙이는 작업은 쉽지 않다. 따끔따끔 곡선부분으로 붙이면 떨어지고…

본격적인 인공지능 자율주행을 위해서는 윈도10 노트북에 모바일 핫스팟을 설정하고 제공되는 소스로 카메라 모듈 펌웨어 및 모터제어 모듈 펌웨어 업로드 과정까지 마쳐야 했다.

도로에 첫 주행을 시켜봤는데 이론과 실전은 다른가. 제멋대로 빗나가 결과는 좋지 않았다. 어쨌든 자율주행을 위해 도로 데이터 수집이 필요하다.

무엇이 문제인지 알아보려면 단계별 코딩 이해가 선행돼야 할 것 같았다.

AI 자율주행 RC카의 테스트 영상

4. 제어를 위한 코딩의 이해

시리얼 통신으로 문자열 엑스포트, LED 온오프, 간격조절, 밝기조절 등을 통해 기본적인 제어방법을 학습해본다. 중요한 것은 주파수조절(PWM)으로 제어가 가능하다는 것을 이해하는 것이다. 이를 이해해야 DC모터 제어방법을 이해할 수 있다. 각 바퀴의 전진, 후진 코딩이 PWM 제어로 가능하기 때문이다. 이후 파이썬을 통한 조이스틱 코딩을 학습하는 데 조금 어렵다. 조이스틱으로 RC카를 조종하려면 이해가 필요하다. 스레드(Thread) 프로세스와 메인 루틴, 스레드 간 메시지 큐 통신 등도 배우게 된다.

5. AI 자율주행 RC카의 이해

AI 자율주행 RC카는 모터를 제어하는 아두이노인 ESP32-D1-R32와 영상을 수집하는 카메라가 있는 아두이노인 ESP32-CAM으로 구성됐다.

ESP32-CAM이 잘 작동하는지 파이썬 프로그램으로 카메라 영상 교환을 테스트해볼 수 있다.

joystick 및 모터제어부와 통신으로 주행데이터를 자주 주고받는지 확인한다.

시간이 없어 전부는 못했지만 원격주행 제어로 데이터 수집을 한 뒤 CNN 인공지능 학습 및 자율주행, 티처블 머신으로 자율주행하기 등이 있는데 시간적 여유가 있을 때까지 해보려고 한다.

마무리하면서

제공된 키트에 리튬배터리 등 부품 누락이 있어 (목요일에 배송됐지만) 결과적으로 서평이 사흘 정도 지연됐고 일정에도 불편과 차질이 빚어졌다. 그러나 그동안 AI 자율주행차에 관해 머릿속 상상에 불과했지만 이 책을 통해 현실로 이끌어내고 AI 학습에 관한 체험을 접할 수 있어 큰 즐거움이었다. 그런 측면에서 많은 AI 자율주행차에 관심 있는 분들에게도 좋은 이정표가 되지 않을까 싶다. * 출판사의 증정도서를 받아 작성한 서평입니다.

error: Content is protected !!