Help us understand the problem. What is going on with this article?

Jetson NanoでIntel Realsense D435を使う方法(ROS対応)

test.gif

Intel Realsense D415/D435

 Intel RealsenseはIntel社が開発しているDepthカメラ(3次元的な計測ができるカメラ)です。

 普通のカメラが2次元でしか対象を捉えられないのに対して、Depthカメラは対象の奥行き(距離)も知ることができるので、ロボットの眼にピッタリのデバイスです。

 Realsenseに関して、詳しくは、本記事の最後の参考リンクを参照下さい。

 この記事では、Jetson Nanoでのセットアップ方法、ROS(Robot Operating System)との連携に関して説明いたします。

 ちなみに本記事ではD435でセットアップと動作確認を行なっておりますが、D415でも基本的に同一となります(動作は未確認)。

Jetson NanoへのIntel Realsense D435のセットアップ

 今回は、Jetson Nano上でRealsenseをROSで使うところまで実施したいと思います。大きく以下4つの工程が必要です。

  • Jetson Nanoセットアップ
  • Realsenseのファームウェアアップデート
  • Realsenseドライバ(Librealsense)インストール
  • RealsenseのROS対応

 順に実施していきます。

Jetson Nanoセットアップ

 Jetson Nanoに関しては、以下記事を参考にセットアップを実施しておいて下さい。この後、ビルドの際にメモリを大量に使うので、下記記事のSwapファイルの設定もしておいて下さい。 最新のドライバで、ビルド作業は不要になりました。
Jetson Nano関係のTIPSまとめ

Realsenseのファームウェアアップデート

 Windows用とLinux用がありますので、好きな方でアップデート実施下さい。また、最近のアップデートによりRealsenseの動作確認に使用する「realsense-viewer」というソフト上で簡単にファームウェアをアップデートできるようになったので、この作業は飛ばしても大丈夫です(Jetson Nano上でアップデート可能です)。

インテル® RealSense™ D400 シリーズ・カメラのための Windows * ファームウェア更新ユーザーガイド

インテル® RealSense™ D400 シリーズ・カメラ用 Linux * ファームウェア・アップデート・ユーザー・ガイド

 Jetson Nanoから可能かは不明です。基本的には普通のPCで実施するのが良いと思います。

Realsenseドライバ(Librealsense)インストール

 JetsonHackさんのJetson Nano – RealSense Tracking Cameraという記事を参考にしました。

カーネルへのパッチ当て

 追記:最新のRealsenseドライバでカーネルのパッチ当て作業は不要になりましたので、ここは飛ばしてLibrealsenseのインストールに進んで下さい。以降の情報は、参考情報として残しておきます。

 最初にカーネルにパッチを当てます。パッチ当てなくても動きましたが、動作中大量のエラーが出たり、不安定だったりするので、パッチ当てを推奨します。

 SDカードの容量は、64GB必要となります。カーネルへのパッチ当ては、途中で失敗すると最悪起動できなくなるので、必要なファイルがある場合は、あらかじめバックアップをとった上で実行しましょう(私は一回起動できなくなりました)。

 パッチ当ては、以下コマンドを実行してください。

$ cd && git clone https://github.com/jetsonhacksnano/installLibrealsense
$ cd ~/installLibrealsense
$ ./patchUbuntu.sh

 カーネルのビルドもしているため、完了まで数時間かかります(パッチ当てに関しては kuma_XXP さんよりTwitterで情報いただきました、ありがとうございます)。

 パッチを当てないと、この後Realsenseを使用したとき、以下のように大量のエラーが出たりします。

realsense_error.jpg

Librealsenseインストール

 以下コマンドでインストールできます。

$ cd & git clone https://github.com/jetsonhacksnano/installLibrealsense
$ cd ~/installLibrealsense
$ ./installLibrealsense.sh

 インストール完了したら、以下コマンドで「realsense-viewer」を立ち上げ動作確認ができます。

$ realsense-viewer

 Realsense Viewerを起動して、左のStereo ModuleとRGB Moduleのトグルスイッチをオンにして、以下の図のように画像とデプスマップ(奥行き情報)が表示されたらOKです。

realsense_ok.JPG

 ここで、Realsenseのファームウェアのバージョンが古いと、ファームウェアのアップデートが促されます。ファームウェアが古いと、問題が起きる可能性があるので、最新にアップデートしておくのがオススメです。

Intel RealsenseのROS対応

 続いて、RealsenseをROSで動かす方法です。上記のLibrealsenseのセットアップをした上で、以下記事参考にJetson NanoにROSをインストールして下さい。

Jetson NanoにROSをインストールする方法

 続いて、以下コマンド実行してrealsense-rosをインストールします。

$ cd ~/catkin_ws/src
$ git clone https://github.com/IntelRealSense/realsense-ros
$ cd realsense-ros
$ git checkout -b 2.2.3 2.2.3
$ catkin build
$ source ~/.bashrc

 私はビルドシステムにcatkin buildを使用していますが、catkin makeの場合は、5行目のcatkin buildcatkin makeとして下さい。よく意味が分からない人は、catkin makeです。

 続いて、以下を実行してrealsenseを立ち上げます。

$ roslaunch realsense2_camera demo_pointcloud.launch

 以下のように、rviz上にリアルセンスの3次元点群が表示されたらOKです。

test.gif

3次元画像処理

 続いて、3次元画像処理をしてみましょう。詳細は以下記事参照下さい。

PCL(Point Cloud Library)+ROSで3次元画像処理入門 
カラー処理

 画像処理プログラムを試す場合は、以下コマンドでセットアップして下さい。

$ sudo apt-get install ros-melodic-pcl-ros
$ cd ~/catkin_ws/src
$ git clone https://github.com/karaage0703/pcl_ros_processing
$ catkin build
$ source ~/.bashrc

 例えば、色フィルタを使いたい場合は、以下実行して下さい。

$ rosrun pcl_ros_processing color_filter_rgb input:=/camera/depth/color/points

 以下のような点群が表示された状態にします。
20190605220838.jpg

 ここで、以下コマンドを実行して、赤をフィルタリングします。

$ rosparam set /max_r 0

 すると以下のように赤が抜けた点群が表示されます。
20190605220810.jpg

Pythonで使いたい場合

 PyRealsenseを使うのが良いです。以下記事にまとめたので参照下さい。

Jetson NanoでRealsenseのPythonラッパーPyRealsenseを使用する方法

ハードウェア情報が知りたい場合

 シリアルNoやファームウェアバージョンをCUIで知りたい場合は、以下コマンドを実行して下さい。

$ rs-enumerate-devices -o 

 GUIであれば、Realsense Viewerでハードウェア情報を確認できます。

まとめ

 Jetson NanoでIntel Realsense D435をROSで動かしてみました。

 重いはずの3次元画像の表示や処理がJetson Nano上でサクサク動くからビックリです。GPUのおかげでしょうか。素晴らしいですね。

参考サイト

Intel RealSense Depth Cameraがいかにやばいかについて

Intel RealSense デプスカメラ D435 を Unity で遊んでみた

関連記事

Jetson Nano関係のTIPSまとめ

karaage0703
闇のエンジニア/変なデジカメ開発中/ディープラーニング芸人/Raspberry Piとからあげ大好き/はてなブログ書いてます
https://karaage.hatenadiary.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした