RealSenseのROSでの導入について

必要なこと

  1. Intel RealSense SDK をインストール(RealSenseからデータを取得するためのC++のライブラリ)
  2. ROSラッパーのインストール

動作環境

以下のPCで動作を確認した。

PCRAMOSROS version
mouse-pc(古いパソコン)32 GBUbuntu 16.04Kinetic
ONE-NETBOOK OneMix3Pro (小さいやつ)8 GBUbuntu 18.04Melodic
GALLERIA GCR2070RGF-QC16 GBUbuntu 18.04Melodic

1. Intel RealSense SDKのインストール

[1]の通り, 以下のコマンドをターミナルにうつ。

① サーバーの公開鍵を登録 ( 更新されていることがあります。うまくいかなかったら[2]参照)

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE

② リポジトリにIntelサーバーを追加
Ubuntu 16,18,20 LTS:

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u

③ ライブラリのインストール

$ sudo apt update
$ sudo apt install librealsense2-dkms
$ sudo apt install librealsense2-utils
$ sudo apt install librealsense2-dev
$ sudo apt install librealsense2-dbg

④ 動作確認
 RealSenseのUSBケーブルを抜き差しして以下のコマンドを実行する。
 ウインドウが開くので、左サイドバーにあるStereo ModuleとRGB Cameraをoffからonにして表示されたらOK。

$ realsense-viewer

⑤ 次のコマンドを実行して, realsense の文字列があれば成功,なくても動けばよし.

modinfo uvcvideo | grep "version:"

2. ROSラッパーのインストール

① githubからクローンする。以下を実行。
 catkin_makecatkin build でも問題なし

$ cd ~/catkin_ws/src
$ git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
$ catkin_make
$ git clone https://github.com/IntelRealSense/realsense-ros.git
$ catkin_make

② 動作確認  以下を実行して,トピックを確認できればOK。

roslaunch realsense2_camera rs_camera.launch

問題と対処

  1. mouse-pc で行った際, SDKをいれるとRealSenseが使えないどころか/dev/video*が でなくなる(その他のカメラも使えなくなる)
    カーネルを4.4.0.193から4.5.0.122に更新
     カーネルバージョン変更方法
     再起動後Ubuntuが起動できなくなる場合があるので,注意して行う。

    確認したこと → `lsusb -t` でドライバ確認 ドライバーが割り当てられていない(uvcvideo)
    → `uvcvideo`へのパスが変わっている
     `/lib/modules/4.4.0-193-generic/updates/dkms/uvcvideo.ko`
     本来は`/lib/modules/4.4.0-193-generic/kernel/drivers/media/usb/uvc`にある
    → `modinfo uvcvideo | grep "version:"` で調べるとrealsenseの文字が入っている
     動作確認済みのUbuntu18.04でも同じ表示だが,もとのversion:1.1.1のまま問題なく使える
    → `/lib/modules/4.4.0-193-generic/updates/dkms/uvcvideo.ko`を削除し, もとの`uvcvideo.ko`をコピーしたところ、`/dev/video*`がでて,`realsense-viewer`でカメラ映像を読み取れた。同時にその他のカメラも使えるように。非推奨
    →カーネル4.4.0.187以降の4.4シリーズでは上手く動作しないことがあるらしい。[3](https://github.com/IntelRealSense/librealsense/issues/7287)

参考

[1] Ubuntu18.04: RealSense D435iをROS Melodicで使う
[2] Intel® RealSense™
[3] All USB cameras are not working anymore after librealsense-dkms update