Ubuntu 20.04 및 ROS Noetic 환경의 Intel RealSense D435i 드라이버 설치 및 설정

1. 개요

Intel RealSense D435i 카메라를 Ubuntu 20.04와 ROS Noetic 환경에서 구동하기 위한 가이드입니다. 패키지 관리자(APT)를 통한 설치 시 발생할 수 있는 성능 저하 및 프레임 드랍 문제를 방지하기 위해, SDK(librealsense)와 ROS 래퍼(realsense-ros)를 소스 코드로부터 직접 빌드하는 최적화된 설치 방법을 다룹니다.

2. 개발 환경 구성

  • 운영체제: Ubuntu 20.04 LTS
  • ROS 버전: Noetic Ninjemys
  • 대상 하드웨어: Intel RealSense D435i
  • SDK 버전: librealsense v2.53.1
  • ROS 래퍼: realsense-ros (ros1-legacy 브랜치)

3. librealsense SDK 소스 빌드 및 설치

3.1 소스 코드 확보

안정적인 동작을 위해 검증된 릴리스 버전을 다운로드합니다. 터미널을 열고 다음 과정을 수행합니다.

cd ~
wget https://github.com/IntelRealSense/librealsense/archive/refs/tags/v2.53.1.tar.gz
tar -xvf v2.53.1.tar.gz
cd librealsense-2.53.1

3.2 udev 규칙 적용

카메라 장치에 대한 접근 권한을 설정하기 위해 필수적으로 수행해야 합니다.

sudo ./scripts/setup_udev_rules.sh

3.3 의존성 패키지 설치

컴파일에 필요한 라이브러리들을 사전에 설치합니다.

sudo apt update
sudo apt install -y libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev \
libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev libudev-dev

3.4 CMake 빌드 구성 및 실행

네트워크 문제로 인한 빌드 실패를 방지하고, 실행 바이너리의 최적화를 위해 불필요한 예제 파일 컴파일을 제외하는 옵션을 사용합니다.

mkdir build && cd build
cmake .. \
-DFORCE_RSUSB_BACKEND=true \
-DCMAKE_BUILD_TYPE=release \
-DBUILD_EXAMPLES=false \
-DBUILD_GRAPHICAL_EXAMPLES=false \
-DBUILD_TOOLS=false

make -j$(nproc)
sudo make install
sudo ldconfig

4. ROS Noetic용 RealSense 패키지 설정

4.1 워크스페이스 생성 및 소스 다운로드

ROS 전용 작업 공간을 생성합니다. ROS1 환경이므로 반드시 ros1-legacy 브랜치를 체크아웃해야 합니다.

mkdir -p ~/realsense_ws/src
cd ~/realsense_ws/src
git clone -b ros1-legacy https://github.com/IntelRealSense/realsense-ros.git

4.2 ROS 의존성 해결

동적 재구성(Dynamic Reconfigure)을 위한 필수 패키지를 설치합니다.

sudo apt install ros-noetic-ddynamic-reconfigure

4.3 워크스페이스 빌드

cd ~/realsense_ws
catkin_make
source devel/setup.bash

5. 실행 및 작동 확인

5.1 노드 실행

카메라 노드를 구동하여 드라이버가 정상 작동하는지 확인합니다.

roslaunch realsense2_camera rs_camera.launch

5.2 데이터 스트림 확인

정상적으로 노드가 실행되면 새로운 터미널에서 다음 명령어를 통해 토픽 출력을 확인할 수 있습니다.

rostopic list

주요 출력 토픽 예시:

  • /camera/color/image_raw: 컬러 이미지
  • /camera/depth/image_rect_raw: 정렬된 깊이 이미지
  • /camera/imu: IMU 데이터 (D435i 모델)
  • /camera/aligned_depth_to_color/image_raw: RGB에 정렬된 깊이 맵

6. 주요 트러블슈팅

6.1 빌드 중 JSON/CURL 관련 네트워크 오류

빌드 과정에서 외부 라이브러리를 다운로드하지 못해 오류가 발생하는 경우, CMake 설정 시 -DBUILD_EXAMPLES=false-DBUILD_TOOLS=false 옵션을 명시하여 불필요한 외부 종속성을 제거합니다.

6.2 커널 패치 이슈

Ubuntu 커널 버전과 SDK 간의 호환성 문제가 발생할 경우, CMake 옵션에서 -DFORCE_RSUSB_BACKEND=true를 설정하여 커널 드라이버 대신 SDK 내부의 USB 백엔드를 사용하도록 강제함으로써 해결할 수 있습니다.

6.3 ddynamic_reconfigure 누락

catkin_make 도중 해당 패키지를 찾을 수 없다는 에러가 발생하면, 반드시 ros-noetic-ddynamic-reconfigure 패키지를 수동으로 설치한 후 빌드를 재시도하십시오.

태그: Ubuntu20.04 ROS-Noetic Intel-RealSense D435i librealsense

6월 14일 21:02에 게시됨