この記事では、RealSense D455をROSで使用できるようにするためのセットアップと、セットアップ後の使用方法について簡単に解説していきます。
RealSense D455
RealSenseとは、Intel社が開発販売していた深度(デプス)カメラを中核機能とするカメラデバイスです。簡単に説明すると、3次元空間を撮影することができるカメラです。RealSenseは何種類かありますが、今回使用するD455を含むD400シリーズは、左右の2つのRGBカメラによる深度計測、中心付近のRGBカメラ、IR投射器で構成され、USB宮殿により動作します。深度は、アクティブIRステレオとよばれる手法を用いて計測されます。D455は屋外使用も可能で、IMUも搭載しています。
RealSense D455をROSで使用する方法
RealSenseをROSで使用するには、RealSense用のSDKやROSパッケージを導入する必要があります。この記事では、D455をROSで使用することを目指したインストール方法等を説明していきます。
※確認はしていませんがD455以外のモデルでも使用できると思います。
必要なライブラリおよびパッケージは、librealsenseとrealsense-rosです。どちらも公式が提供しています。
librealsense
librealsenseの正式名称は、Intel RealSense SDK 2.0で、深度カメラ(D400シリーズ、L500シリーズ、SR300)と、T265トラッキングカメラのためのライブラリです。
realsense-ros
realsense-rosは、D400シリーズ、SR300およびT265トラッキングカメラをROSで使用するためのパッケージです。
インストール手順
ubuntu 20.04にnoeticがインストール済みである前提で話を進めていきます。
まず最初に、aptのupdateとupgradeを行います。
apt-get update && apt-get -y upgrade
公開鍵を登録します。
apt-get install -y software-properties-common
apt-key adv --keyserver keyserver.ubuntu.com \
--recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 \
--recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
レポジトリにサーバーを追加します。
add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
ライブラリをインストールします。
apt-get install -y librealsense2-dkms \
librealsense2-utils \
librealsense2-dev \
librealsense2-dbg
ROSパッケージをインストールします。
apt-get install -y ros-$ROS_DISTRO-realsense2-camera
Dockerを使用する方法
以下に記載のDockerfileを作成し、ビルをすることで一発で準備が可能です。DockerfileはGithubでも公開しているので、クローンしてお使いいただくことも可能です。
FROM ros:noetic
RUN apt-get update && apt-get -y upgrade
RUN apt-get install -y software-properties-common
RUN apt-key adv --keyserver keyserver.ubuntu.com \
--recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 \
--recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
RUN add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
RUN apt-get install -y librealsense2-dkms \
librealsense2-utils \
librealsense2-dev \
librealsense2-dbg
RUN apt-get install -y ros-$ROS_DISTRO-realsense2-camera
RUN echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
Dockerfileのあるディレクトリに移動し、以下のコードを実行してビルドします。
docker build -t realsense_ros:latest .
ビルドが終了したら、runを行いコンテナを作成します。その時のコマンドは以下のとおりです。
docker run -it --volume=/dev:/dev --privileged --env=DISPLAY:$DISPLAY d455:latest /bin/bash
起動したら、以下のコードを実行してみましょう。RealSenseからの情報をROS通信するためのノードが起動します。
roslaunch realsense2_camera rs_camera.launch
試しに、生のRGB画像の配列データを確認してみましょう。
rostopic echo /camera/color/image_raw