안녕하세요, 코딩하는너굴맨 입니다. 4학년에 진행하던 자율주행 프로젝트가 끝났습니다. 이전에 포스팅을 하던 자율주행 차량은 진행하는 프로젝트와 맞지 않아, 자율주행에 대한 지식을 참고로 하고 새로운 방식으로 시작을 했습니다. 이 포스팅은 그에 대한 정리본이라고 생각하시면 됩니다. 목표 전체적인 목표는 자율주행 차량의 구현 입니다. 우선순위로는 1. 주행의 자율주행 2. 장애물에 따른 제어 3. 신호의 인식에 따른 제어 해당 순서에 따라서 과제를 진행했습니다. 1. 하드웨어 1. 자동차 하드웨어 자동차의 하드웨어는 waveshare사의 JetRacer를 사용했습니다. 자동차 자체를 3D프린터로 제작을 하려고 생각이 나왔으나..기각 되었습니다... 이전 포스팅에서 썼던 차량의 경우는, 앞바퀴에 서보모터, 즉..
이번에는 실제로 원하는 서비스를 만들기 전에 OpenCV의 함수들을 조금 알아보고자 합니다! 기본 함수 패키지 import cv2 import numpy as np OpenCV의 함수는 아니지만, 일단 패키지는 기본으로 포함해 겠죠! OpenCV는 보통 Numpy*와 함께 사용합니다. *Numpy란? 벡터 행렬계산을 효율적으로 처리하기 위한 파이썬의 모듈입니다. 기본적으로 데이터를 가공하는 도구로 쓰여서, 단일적으로는 무언가를 할 수는 없고, opencv같은 모듈에서 같이 사용합니다! 이미지 읽기 cv2.imread(fileName, flag=None) 영상이나 이미지를 처리하려면, 일단 불러와야 겠죠? imread는 해당 fileName을 불러옵니다. flags는 추가적인 영상파일에 옵션입니다. fla..
OpenCV, 즉 카메라를 다루어야 하는 프로젝트 입니다! 그러므로 지금부터 어떤 환경에서 카메라를 다루어 볼 것인지 환경설정을 해보겠습니다. 실습환경 실습환경으로 OpenCV는 Visual Studio Code에서 실습하도록 하겠습니다. Visual Studio Code, 줄여서 VScode라고 부르는 이 툴은 마이크로소프트에서 개발한 텍스트 에디터로 윈도우, macOS, 리눅스를 모두 지원합니다. 가격이 비싼 visual studio에 비해서 무료로 사용할 수 있는 IDE입니다. 모든 IDE들이 많은 확장 프로그램들을 지원하기 때문에 여러가지를 추가해서 개발을 할 수 있지요! 설치는 아래의 링크를 통해서 각 컴퓨터 환경에 맞게 설치해주시면 됩니다! https://code.visualstudio.com..
안녕하세요! 너굴맨 입니다. 이번 OpenCV과정은 내용이 길어서 저번 시간에는 기본셋업, 그리고 카메라 테스트까지 했습니다. 이번 시간에는 자율주행 전에 OpenCV를 조금 더 알아보겠습니다. 이번에는 '라인트레이서' 즉, 카메라를 통해서 자동차가 한 라인을 따라가게 만드는 방법을 시도해보겠습니다. OpenCV의 무게중심, 이미지 처리 등등의 기능을 통해서 딥러닝 없이 사용해 볼 수 있습니다. 실험환경 구성 저 같은 경우에는 검은색 하드보드지(400원)에 하얀색 테이프를 부착해서 테스트 했습니다. 이전에 실험할 때는, 바닥에 테이프를 붙였었는데, 테이프를 떼는 과정에서 바닥 장판이 까지는 바람에;; 여러분도 하실거면 따로 만드시는 것을 추천드립니다. 그리고 이후에 다시 설명을 하겠지만, 라인과 바닥은 ..
이번시간에는 카메라에 대한 내용을 담아보겠습니다! 우리는 카메라를 통해서 많은 것을 할 수 있습니다. 기본적으로, 보는 것. 즉, 카메라를 통해서 눈으로 보는 것과 같이 현상을 담을 수 있는데요. 이에 더해 실시간으로 카메라로 들어오는 화면을 이미지로 저장해서 다양한 처리를 통해서 다양한 기능을 실행해 볼 수 있습니다. 자율주행에서도 마찬가지죠! 카메라의 이미지를 처리해서 트랙을 따로 분리해서 자율주행 차량의 학습파일을 만드는데 사용할 수도 있습니다. 이를 라즈베리파이 카메라, 'picam'을 통해서 진행해보겠습니다! 파이카메라 파이카메라는 이렇게 생긴 카메라 모듈입니다. 파이 카메라 모듈은 라즈베리 파이를 지원하는 휴대용 경량 카메라입니다. MIPI 카메라 직렬 인터페이스 프로토콜을 사용하여 Pi와 통..
이번에는 블루투스 모듈을 이용해서 원격으로 자동차를 조종할 수 있는 방법에 대해서 다뤄보겠습니다! 자율주행차량까지는 아직이지만, 원격으로 조종할 수 있다면 RC카와 비슷하게는 만들어졌다고 생각합니다. 재미있는 부분이라고 생각합니다. 아두이노 및 라즈베리파이에는 HC-06이라는 블루투스 모듈이 존재합니다. 블루투스는 1994년에 최초로 개발 된 근거리 무선 통신을 위한 산업 표준입니다. HC-06이라는 모듈은 시리얼 통신을 통해서 데이터를 주고 받을 수 있게 해줍니다. 가용 거리는 10미터 정도 된다고 합니다. 라즈베리 버튼 > Preference > Raspberry Pi Configuration에 들어갑니다. 블루투스 모듈의 시리얼 통신을 사용하기 위해서 Serial Port라는 부분을 Enable해줍..