ROS Noetic(Ubuntu 20.04)でRealsenseを使う手順

RealSenseとは?

Realsenseは、Intelが提供する3Dカメラおよびセンサー技術のシリーズです。この技術は、深度感知や顔認識、物体追跡などを可能にし、さまざまなアプリケーションに利用されています。

主にステレオカメラ(Depthカメラ)のD400シリーズ等がある他、すでにディスコンになってしまっているが、LiDARを採用したL515や、デバイス単体で自己位置推定できるT265などの面白いデバイスもある。
Realsenseは、開発者向けにSDKも提供しており、ROS環境で利用することも可能である。

個人的には、RealSenseを3Dスキャナとして使用するのは(計測対象物のサイズや要求精度にもよるが)あまり向いていないと思う。が、ROSで使えるカメラとしては、(Depthをとるためか)内部パラメータの校正が不要であるという点でかなりイケてるのではないかと思った。

RealSenseの中でも(個人的に)代表的な製品であるD435は、新品で7~8万円程度、ヤフオクで中古を探すと約2万円(安い時で1.2万円、自分が買った最安値はD435で8千円、D435iで6千円!)程度で入手できる。また、自己位置推定ができるデバイス:T265は、代替品がないことと新品で入手することが困難であることから中古相場がそこそこ高止まりしている(大体相場が3万円、自分が入手したときは1.9万円)。

ROS NoeticでRealSenseを使えるようにする

上述の通り、ヤフオク等でRealSenseD435やT265を入手したので、ROSで使いたいと考えた。特にT265はディスコンであり、最新のソフトではサポートされていなかったり、そもそもROS2でなくROS1であることから色々な情報がアップデートされておらずインストールには苦戦したので、本記事で手順を記録しておこうと思う。

参考情報

最初は公式の手順に従ってやろうと思い、以下の説明を参考にいろいろやったが、結局うまくいかなかった。
github.com/IntelRealSense/realsense-ros/tree/ros1-legacy
github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md#installing-the-packages

今更ROS1でRealSenseを使い始める初心者などほとんどいないので、情報の検索に苦労したが、結局ROSで使うだけなら以下の情報の通りやればうまくいった。github.com/IntelRealSense/realsense-ros/issues/2729#issuecomment-1538207282

本題①:ROS1でRealSenseを使う環境構築手順

ようやく本題に入るが、ROS NoeticでRealSenseを使う環境を構築するには、以下のコマンドを実行すればよい。結局、たったこれだけで使えるようになる。

sudo apt-get install ros-noetic-realsense2-camera

本題②:RealSenseのTopicを出す手順

D435などの画像やDepth画像などを取得したい場合は、以下のコマンドを実行すればよい。

roslaunch realsense2_camera rs_camera.launch

D435の画像サイズやフレームレートなどを変更したい場合は、「rs_camera.launch」の以下の行を書き換えたうえで上記のコマンドを実行すればよい。

rs_camera.launch

  <arg name="color_width"         default="1920"/>
  <arg name="color_height"        default="1080"/>
  <arg name="color_fps"           default="30"/>

設定が適切に反映されているかは、以下のコマンドを実行して確認することができる。

rostopic echo /camera/color/camera_info 

実行した例は以下の通り。これは画像の基本的な情報(サイズなど)や、カメラの内部パラメータなどが確認できる。

---
header: 
  seq: 135
  stamp: 
    secs: 1723079156
    nsecs: 667423964
  frame_id: "camera_color_optical_frame"
height: 1080
width: 1920
distortion_model: "plumb_bob"
D: [0.0, 0.0, 0.0, 0.0, 0.0]
K: [1371.185302734375, 0.0, 964.3291015625, 0.0, 1371.1658935546875, 533.5293579101562, 0.0, 0.0, 1.0]
R: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
P: [1371.185302734375, 0.0, 964.3291015625, 0.0, 0.0, 1371.1658935546875, 533.5293579101562, 0.0, 0.0, 0.0, 1.0, 0.0]
binning_x: 0
binning_y: 0
roi: 
  x_offset: 0
  y_offset: 0
  height: 0
  width: 0
  do_rectify: False
---

また、T265の画像や位置・姿勢(TF)などを取得したい場合は、以下のコマンドのいずれかを実行すればよい。

roslaunch realsense2_camera rs_t265.launch
roslaunch realsense2_camera demo_t265.launch

おまけ

結局うまくいかなかった手順で実行したコマンドやメモを以下に示す。

sudo mkdir -p /etc/apt/keyrings
curl -sSf https://librealsense.intel.com/Debian/librealsense.pgp | sudo tee /etc/apt/keyrings/librealsense.pgp > /dev/null

echo "deb [signed-by=/etc/apt/keyrings/librealsense.pgp] https://librealsense.intel.com/Debian/apt-repo `lsb_release -cs` main" | \
sudo tee /etc/apt/sources.list.d/librealsense.list
sudo apt-get update

sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils

git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1`
cd ..

catkin_init_workspace
cd ..
catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install
→うまく行かない

「https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md」の手順
sudo apt-get install libssl-dev libusb-1.0-0-dev libudev-dev pkg-config libgtk-3-dev
sudo apt-get install git wget cmake build-essential

 apt-get update 
 apt-get install ros-melodic-ddynamic-reconfigure

sudo apt install -y ros-noetic-ddynamic-reconfigure
cd ~/catkin_ws/src
git clone https://github.com/IntelRealSense/realsense-ros
cd realsense-ros
git checkout -b 2.3.2 2.3.2
catkin build
source ~/.bashrc

コメント