이전 포스트에서 카메라를 작동시켰다. 이번에는 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을 따른다.
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를 찾지를 못한다.
이제 노드를 실행한다.
- PC에서 ros master 실행
roscore
- RPi에서 카메라 작동
roslaunch turtlebot3_autorace_camera raspberry_pi_camera_publish.launch
- PC에서 이미지 확인
rqt_image_view
성공적이라면
위 사진처럼 PC의 rqt의 image viewer plugin에 실시간 이미지가 송출될 것이다. 이때 rostopic을 까보면 이미지 출처는 RPi인 것을 확인할 수 있다.
가령 rqt_image_view에서 아무 것도 안나오는 경우가 있다. ~/.bashrc 파일 수정을 하고 재부팅을 안한 경우 발생할 확률이 높다. 재부팅하고 다시 시도하면 정상적으로 작동할 것이다.
다음에는 Intrinsic, Extrinsic calibration을 진행할 예정이다.
끝.
'ROBOTICS > Turtlebot3 - Noetic' 카테고리의 다른 글
Turtlebot3 Camera + OpenCV installation (1) | 2022.09.30 |
---|---|
Turtlebot3 Autorace Simulation (1) | 2022.09.29 |
Turtlebot Simulation : Navigation (0) | 2022.08.23 |
Turtlebot Simulation : SLAM (0) | 2022.08.22 |
Turtlebot Simulation : Setup (0) | 2022.08.22 |
댓글