About me
home
Portfolio
home

한이음 공모전 [라즈베리파이로 만드는 스마트 자동차]

날짜
2021/03/08 → 2021/09/03
1 more property

프로젝트명: 라즈베리파이로 만드는 스마트 자동차

프로젝트 개요

2021년 3월부터 교내 임베디드 소모임에서 진행하는 아두이노 및 라즈베리파이 스터디에 참여하였고, 7월부터 9월까지는 한이음에서 주관하는 프로젝트에 참여하였다. 이 프로젝트에서는 라즈베리파이와 아두이노에 line tracking 센서와 라이다 센서를 활용하여 차선을 따라 움직이며 장애물에 반응하여 동작을 제어하는 자율주행 자동차를 제작하였다.
프로젝트에서는 차량 내부에 카메라와 디스플레이를 장착한 환경을 가정하고, 휴대폰을 자동차 모델에 부착하여 구현하였다. AR 어플리케이션을 통해 차량 외부 건물을 인식하고 이에 맞는 정보나 광고를 제공하는 기능도 포함되어 있다. 지나친 건물에 대한 정보는 자동으로 저장되어 다시 확인할 수 있으며, 식당이나 상점의 경우 관련 사이트나 선결제, 예약 등의 기능을 제공한다.

개발 환경 및 구성

S/W 개발환경

OS: 리눅스(Ubuntu 18.04 LTS)
개발환경(IDE): Visual Studio, Arduino IDE
개발도구: Unity, ROS
개발언어: Python, C++, C#(Unity)

H/W 구성

디바이스: 라즈베리파이, 아두이노, 모터 드라이브
센서: RPLidar-A1, Camera, 라인 트래킹
통신: ROS serial, WiFi
언어: 아두이노, Python

프로젝트 주요 기능

1.
자율주행 기능: LineTracking 센서와 LiDAR 센서를 활용하여 주변 차량과의 거리를 파악하고 주어진 도로를 따라 자동차가 움직인다.
2.
장애물 회피 기능: LiDAR 센서를 활용하여 주변 지형지물과 자동차 간의 거리를 파악하고, 일정한 거리가 되면 멈추거나 방향을 전환하는 등 장애물에 부딪히지 않고 주행할 수 있다.
3.
AR 광고 및 정보제공 기능: 유니티 엔진을 활용하여 핸드폰 화면에 주변 지형지물의 정보를 AR 인터페이스로 띄우고 관련 정보나 사이트 주소를 사용자에게 제공한다.

임베디드 스터디 내용 (3~6월)

아두이노 스터디 학습내용 (3~4월)

아두이노 플랫폼(HW, SW)에 대한 이해
아두이노 소스코드 해석
디지털, 아날로그 입출력을 통한 LED 제어
디스플레이(LCD, 8x8도트매트릭스, 7세그먼트) 제어
센서(초음파 거리센서, 서보모터) 제어

라즈베리파이 스터디 학습내용 (5~6월)

보드 내 OS(우분투) 설치
ssh를 통한 노트북 원격 제어
앱을 통한 스마트폰 원격 제어
리눅스 터미널 명령어
라즈베리파이 GPIO 및 센서 사용

개인적 성장 및 한계점

이번 프로젝트를 통해 여러 임베디드 보드를 다룰 수 있는 경험을 쌓을 수 있었고, 딥러닝과 OpenCV를 처음 접하게 되는 계기가 되었다. 또한 팀워크를 통해 프로젝트를 진행하는 경험도 할 수 있다.
하지만 자동차를 제어하는데 있어 이미지처리(OpenCV) 프로그램을 사용할지 LiDAR 및 LineTracking 센서를 사용할지 선택하는 데 어려움이 있었다. 완벽한 자율주행을 위해서는 이미지처리 프로그램이 필요하지만, 아직 모르는 부분이 많았고 차량 구동에도 어려움이 있어 상대적으로 접근이 쉬운 LiDAR 및 LineTracking 센서를 사용하기로 결정했다.

느낀 점

이번 프로젝트는 제가 인공지능 분야에 깊은 관심을 가지게 된 중요한 계기가 되었다. 프로젝트를 진행하면서 다양한 딥러닝 모델을 활용하기 위해서는 머신러닝과 딥러닝에 대한 폭넓은 지식이 필수적이라는 것을 깨달았다. 이에 머신러닝과 딥러닝 분야에 대해 꾸준히 공부하고 역량을 쌓아나가야겠다는 결심을 하게 되었다.
비록 이번 프로젝트에서 OpenCV 카메라 제어 개발에는 실패하였지만, 이러한 경험도 소중한 자산이 되었다. 앞으로 인공지능 분야에 대한 열정을 가지고, Jetson series 임베디드 보드와 딥러닝 이미지처리 알고리즘 등 다양한 기술을 학습하며 성장해 나가고 싶다.