이전 포스트에서 카메라를 작동시켰다. 이번에는 Single Board Computer(RPi)의 카메라 이미지를 ROS를 이용하여 제어 PC에서 확인해본다.

SBC Configuration :

Raspberry Pi 4B 4Gb(8Gb는 Ubuntu server가 불안정하다)

Ubuntu Server 20.04 + ROS Noetic Ninjemys

PC Configuration :

Samsung 9 always 900X5N

Ubuntu Desktop 20.04 + ROS Noetic Ninjemys(on Orico portable SSD)

아래 ROBOTIS 사의 eManual을 따른다.

ROBOTIS e-Manual

Raspberry Pi의 OS가 Ubuntu Server이므로 PC에서 ssh로 붙어서 작업하는데 잊지 말고

ssh -X ubuntu@{raspberry pi IP}

권한을 줘야 카메라 작동 확인 및 문제가 생겼을 때 확인하기 편하다.


PC에도 autorace 패키지를 설치해준다.

# on PC
cd ~/catkin_ws/src/
git clone -b feature-raspicam <https://github.com/ROBOTIS-GIT/turtlebot3_autorace_2020.git>
cd ~/catkin_ws && catkin_make
# pray and wait...
# if successful
sudo apt install ros-noetic-image-transport ros-noetic-image-transport-plugins ros-noetic-cv-bridge ros-noetic-vision-opencv python3-opencv libopencv-dev ros-noetic-image-proc ros-noetic-cv-camera ros-noetic-camera-calibration

RPi에 필요한 패키지는 이전 두 포스트를 통해 전부 설치했으므로 생략하고 다 있다고 가정하고 진행한다.

노드를 실행하기 앞서 ~/.basrc 파일을 확인한다.

# RPi
sudo nano ~/.bashrc
# ---------- open ----------
ROS_MASTER_URI=http://{PC IP}:11311/ # 192.168.123.***
ROS_HOSTNAME={raspberry pi IP} # 192.168.123.**^
# ---------- close ----------
source ~/.bashrc
# PC
sudo gedit ~/.bashrc
#---------- open ----------
ROS_MASTER_URI=http://{PC IP}:11311/ # 192.168.123.***
ROS_HOSTNAME={PC IP} # 192.168.123.***
# ---------- close ----------
source ~/.bashrc

기본적으로 는 저 IP 위치가 다 localhost로 되어있는데 localhost로 잡히면 RPi에서 ROS MASTER URI를 찾지를 못한다.

이제 노드를 실행한다.