터틀봇 주행 시 차선 확인 및 표지판 인식을 구현하기 위해 카메라를 마운트해야 한다. 환경은 아래와 같다.

KakaoTalk_20220930_111728994.jpg


일단 카메라 인식시키는 것부터 시작한다. Ubuntu 18.04 이미지의 경우 카메라 자체가 인식이 안된다. 이 경우 로보티즈에서 제공한 이미지 내부에 그래픽 커널이 없는 듯 했다.

리본 케이블로 카메라를 연결하고 인식 여부부터 확인한다. ssh로 접근해서 아래 명령으로 디바이스 인식을 확인할 수 있다.

ls /dev/ | grep video

Screenshot from 2022-09-30 11-25-39.png

video0이 잡히면 정상이다. 이제 OpenCV를 사용하기 위해 패키지를 설치해줄거다.

sudo apt update
sudo apt install python3-opencv

위 방식으로 패키지를 받는 방식도 있는데 오류가 자주 나므로 직접 빌드해줄 것이다.

2Gb 모델을 사용한다면 메모리가 부족할 수 있으므로 swap memory부터 할당한다. 그리고 dependencies를 한 번에 설치해준다.

# move to home directory
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# install dependencies
sudo apt-get update
sudo apt-get install build-essential cmake gcc g++ git unzip pkg-config
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev libgtk2.0-dev libcanberra-gtk* libxvidcore-dev libx264-dev python3-dev python3-numpy python3-pip libtbb2 libtbb-dev libdc1394-22-dev libv4l-dev v4l-utils libopenblas-dev libatlas-base-dev libblas-dev liblapack-dev gfortran libhdf5-dev libprotobuf-dev libgoogle-glog-dev libgflags-dev protobuf-compiler

이제 소스 파일을 다운로드 받고 빌드할 준비를 한다. cmake 파일을 생성해줘야 한다.

wget -O opencv.zip <https://github.com/opencv/opencv/archive/4.5.0.zip>
wget -O opencv_contrib.zip <https://github.com/opencv/opencv_contrib/archive/4.5.0.zip>

unzip opencv.zip
unzip opencv_contrib.zip

# if there's no opencv folder "mkdir opencv"
mv opencv-4.5.0 opencv
mv opencv_contrib-4.5.0 opencv_contrib

cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \\
      -D CMAKE_INSTALL_PREFIX=/usr/local \\
      -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \\
      -D ENABLE_NEON=ON \\
      -D BUILD_TIFF=ON \\
      -D WITH_FFMPEG=ON \\
      -D WITH_GSTREAMER=ON \\
      -D WITH_TBB=ON \\
      -D BUILD_TBB=ON \\
      -D BUILD_TESTS=OFF \\
      -D WITH_EIGEN=OFF \\
      -D WITH_V4L=ON \\
      -D WITH_LIBV4L=ON \\
      -D WITH_VTK=OFF \\
      -D OPENCV_ENABLE_NONFREE=ON \\
      -D INSTALL_C_EXAMPLES=OFF \\
      -D INSTALL_PYTHON_EXAMPLES=OFF \\
      -D BUILD_NEW_PYTHON_SUPPORT=ON \\
      -D BUILD_opencv_python3=TRUE \\
      -D OPENCV_GENERATE_PKGCONFIG=ON \\
      -D BUILD_EXAMPLES=OFF ..

이제 빌드하고 오류가 안나길 기도한다.

cd opencv/build
make
sudo make insyall
sudo ldconfig
make clean
sudo apt-get update

카메라 사용을 위해서 /boot/firmware/config.txt 파일을 수정해야 한다.