Diary

머신러닝을 활용한 자율주행 RC카 만들기-임베디드시스템 1편

시작하기

Talker가 제시했던 “영상 이미지 처리를 통한 자율주행 구현”에 대해 흥미가 생겨 함께 진행하게 되었다. 영상처리 기술 부터 함께 하면 좋겠지만 보다 보다 빠르게 수행하기 위해 영상처리는 Talker가 임베디드 시스템은 내가 맡아 진행하게 되었다.

임베디드시스템이란?

임베디드 시스템을 배워보지 못했지만 관심을 가지고 있던 분야이었다. 주변에서 임베디드 시스템을 다루어 본 사람들에게 물어보면 단순하고 배우기 싶다고 했다. 하지만 자율주행이라는 주제로 접근하면 어렵지 않을까?라는 생각이 들기도 했지만 머신러닝 전문가인 Talker와 함께 한다면 완수할 수 있을 것이라고 믿는다.

먼저, 임베디드 시스템이 정확히 무엇이고 어떤 기술들을 배워야 하는지 큰 그림을 그려보고자 한다.

임베디드 시스템이란? 넓은 의미로 해석하자면 특정한 목적을 가지고 만들어진 프로그래밍 가능한 모든 컴퓨터를 의미한다.

임베디드 시스템은 다양한 분야에서 사용되고 있다. 우리가 사용하는 모든 전자기기를 임베디드 시스템이라고 봐도 무방하다.

자율주행이 적용되어 있는 테슬라의 인기가 하늘을 찌른다는 뉴스를 본적이 있다. 자동차도 하나의 임베디드 시스템이 적용되어 있는 기계이다. 프로그래밍을 통해 어떠한 결과를 도출하고 그 결과값을 통해 기계인 자동차를 동작시키기 때문이다.

즉, 기계 안에 내장되어 어떠한 입력 값을 통해 기계의 동작을 변화시킬 수 있는 시스템으로 쉽게 생각하면 되겠다.

라즈베리파이와 아두이노

단순히 임베디드 시스템을 검색하다보면 자주 나오는게 라즈베리파이와 아두이노이다. 라즈베리파이는 무엇이고 아두이노는 무엇인가?

단순히 얘기하자면 임베디드시스템에서 사용되는 대표적인 보드 종류이다. 이 보드를 통해 어떠한 입력값에 따른 제어하고자하는 기계에 명령을 내리는 작은 pc라고 생각하면 되겠다.

라즈베리파이와 아두이노를 비교해서 정확히 무엇인지 파악해 보자.

라즈베리파이

Off-board Control (2) Raspberry Pi · PIXHAWK와 ROS를 이용한 자율 ...

영국 잉글랜드의 라즈베리 파이 재단이 기초 컴퓨터 과학의 교육을 증진시키기 위해 개발한 신용카드 크기의 싱글 보드 컴퓨터이다. 한마디로 표현하면 초소형 컴퓨터라고 보면 된다. 컴퓨터와 같이 cpu, ram이 장착되어 있다.

아두이노

아두이노개발, 라즈베리 파이, 임베디드 개발, 시제품 제작, IOT 개발 ...

아두이노는 한마디로 표현하면 마이크로 컨트롤러 보드라고 한다. 장치를 제어하는데 특화된 보드이다. 라즈베리파이와의 큰 차이점 중 하나는 아두이노는 마이크로프로세서가 장착되어 있다. 마이크로프로세서는 사람으로치면 뇌(제어)의 역할한다.

라즈베리파이 vs 아두이노

이렇게 각각에 대해 조사해 보니 정확히 두개의 차이점을 알 수 없었다. 그래서 두개를 비교한 자료에 대해서 조사해 보았다.

아두이노는 펌웨어나 운영체제가 존재하지 않으며, 통합개발환경에서 프로그래밍이 이루어지며, 라즈베리파이는 단일보드컴퓨터(Single Board Computer : SBC)라 불리며, 프로그래밍은 아두이노와는 달리 직접 설치되어있는 운영체제의 내부에서 이루어진다.

이러한 점으로 인해 라즈베리파이는 연산처리에 강하고 아두이노는 외부기기 제어에 강점을 갖고 있다.

아두이노는 센서, LCD 등 외부기기 제어에 사용하는 것이 적합하며, 카메라 및 영상처리 같은 복잡한 수치계산은 라즈베리파이가 적합하며, 아두이노는 C언어 기반으로 사용하고 라즈베리파이는 C언어, Python 등 다른 Software 기반 Application도 확장 가능하다.

마치면서

라즈베리파이를 사용해 본 길드원의 “라즈베리파이를 사용해보니 느리다. 아두이노를 활용해보라.” 라는 의견을 참고하여 아두이노를 사용하여 구현해야겠다는 방향성을 갖고 접근했으나. 조사해보니 머신러닝을 활용하여 구현하기 위해서 라즈베리파이와 아두이노 모두를 활용해야 되는 것 같다. 라즈베리 파이는 머신러닝을 통해 영상처리를 위한 모듈로 사용하고 아두이노는 영상처리된 결과 값을 통해 RC카를 움직이게 하기 위해서이다.

처음 접근 하는 분야이기에 목표한 기한내 두가지를 모두 배워 사용할 수 있을지 걱정이 되긴하지만 일단 아두이노를 활용하여 RC카를 움직이는 것부터 시작해보고자 한다.

댓글 남기기

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

%d 블로거가 이것을 좋아합니다: