RealsenseをセットアップしてROSやUnityで使う方法
RealSenseとは
RealSense(リアルセンス)とはIntel製のDepthセンサ(3Dカメラ)です。Depthセンサは、最近はiPhoneにもついていますが、方式は異なります。
Depthセンサの詳細は、割愛します。以下あたりの記事がとても詳しく参考になります。
その中でも、比較的安価で使いやすいのがIntelのRealsense D400シリーズです。
シリーズの使い分けは、RealSenseの中の人によると距離で使い分けるのが常套とのことです。
注:上図は、以下ツイートから引用させていただいたものです。
ハードウェア情報
RealSense D400シリーズは、いくつか機種があるのですが、比較的広角で普段使い(?)しやすいD435を使って説明していきます。Amazonでも買えますね。
ソフトウェアセットアップ
公式情報
以下の公式ドキュメントを頼りにセットアップしていきましょう。
昔は、カーネルにパッチ当てたり、ビルドの手間が多かったり動かすまで大変だったのですが、最近は、かなり簡単になりました。
以下に、Windows, Mac, Linux, Raspberry Pi, Jetson Nano各プラットフォームでのインストール方法を記載します。
Windows
すみません、あまり使わないので省略します。マウスをポチポチしていけば、普通に使えると思います。
Windows(WSL2)
WSL2上でも動かせます。ただ、少し手順は多く比較的なれている人向けです。
まずは、以下記事を参考にWSL2上でUSB機器を使えるようにする設定をします。以下はWindows11が前提となっていますが、Windows10でも問題ありませんでした。
最初のwsl --update
もしなくて大丈夫です(カーネル 5.4.72
でいけました)。
私がハマったポイントは以下です。
-
<windows username>
に必ずWindowsのユーザー名を入れる(2箇所あるので注意) - 管理者権限でターミナルを起動する
- WSL2が起動しなくなったら
C:\Users\<windows username>/.wslconfig
を削除して復帰
上記設定が終わったら、WSL2上でLinuxと同じ要領でlibrealsenseをセットアップすればrealsense-viewerが使えます。
ROSで動かすことも可能です。
WSL2がもし起動しなくなったら以下記事参照ください。
追記:以下記事の末尾により最小の手順が記載されています。まだ試していませんが、ひょっとしたらよりお手軽に実現できるかもしれません。
Mac(Apple Silicon/Intel)
以下コマンドで必要なソフトを事前にインストールします。
$ brew install libusb pkg-config
$ brew install homebrew/core/glfw3
$ brew install cmake
以下コマンドでソースからビルドしてインストールします。
$ git clone --depth 1 https://github.com/IntelRealSense/librealsense.git
$ cd librealsense
$ mkdir build && cd build
$ cmake .. -DBUILD_EXAMPLES=true -DBUILD_WITH_OPENMP=false -DHWM_OVER_XU=false -DBUILD_PYTHON_BINDINGS=true -DPYTHON_EXECUTABLE:FILEPATH=<python_path> -G "Unix Makefiles"
$ make -j2
$ sudo make install
<python_path>
のところには、以下コマンドで表示されるパスを入力します。
$ which python
すでにcmake済みの場合はbuild
フォルダを削除してやりなおしましょう。
pyrealsense2は以下コマンドでインストールできます。
$ pip install pyrealsense2 -f https://github.com/cansik/pyrealsense2-macosx/releases
参考: How to install pyrealsense2 on Mac Os?
Linux(Ubuntu)
基本的には以下公式サイト参考にしましょう。Installing the packagesのところのコマンドを打ち込めばOKです。
動作保証はありませんが、私の自作スクリプトで以下コマンド一発でインストールも可能です。
$ curl -s https://raw.githubusercontent.com/karaage0703/ubuntu-setup/master/install-librealsense.sh | /bin/bash
特定のバージョンを入れたい場合は、apt list
コマンドを使いましょう。例えば以下です。
$ apt list -a librealsense2
どうしても安定しない場合などは、ソースからビルドを試したほうが良いかもしれません。ソースからビルドする手順は以下となります。
Raspberry Pi
以下記事を参照ください。
Jetson Nano
以下記事を参照ください。
Pythonで使用する場合は以下記事参照ください。
Realsenseの動作確認方法
インストール完了したら、realsense-viewer
を起動して動作確認しましょう。以下コマンドで起動します。
$ realsense-viewer
以下起動画面です。
Realsenseのファームウェアもここからアップグレードできます。基本的に、最新版にしておくのが良いです。
ROSでRealSenseを使う方法
ROS(Robot Operating System)というロボット向けのミドルウェアでRealSenseを使うと、ROSの豊富な機能が使えて便利です。基本的にはLinux(Ubuntu)で使うことになります。ROSのインストール方法は、公式のWikiに書かれています。
無保証ですが、自作スクリプトでコマンド一発でインストールも可能です。以下リポジトリのREADME参照ください。
ROSでRealSenseを使うには、librealsenseに加えてrealsense-rosというROSのパッケージが必要になります。RealSenseのファームウェア、librealsense,realsense-rosの動作するバージョンの組み合わせがあるので注意してください。Releasesに推奨のバージョン情報が記載されています。基本的には、全て最新版にしておけば大丈夫です。
インストール方法は、以下参照ください。
ROSでRealsenseは、Jetson NanoやRaspberry Piでも使えます。ROSに関しては省略します。以下で紹介するRaspberry PiやJetson Nanoと基本的に共通なので参考にしてみてください。
SLAMにRealSenseを使う方法
以下記事参照ください。
Unityで使う方法
UnityでRealsenseの情報を表示
UnityでRealSenseを使うことも可能です。Macで試しましたが、Windows, Linuxも同じ要領で使えると思います。
各プラットフォームへのUnityのインストール方法は省略します。バージョンは2020.2.7f1
を使いました。
librealsenseにはUnityのwrapperが準備されているので、それを使用します。
上記サイトからIntel.RealSense.unitypackage
をダウンロードします。
Unityを起動したら、Projectsを右クリックしてimport package -> custom package
を選択して、ダウンロードしたIntel.RealSense.unitypackage
をインポートしましょう。
RealSenseSDK2.0/Scenes/Samples
にたくさんサンプルがあるのでRealsenseをつないだ状態で、実行してみます。以下はTexturesDepthAndColor.unity
というサンプルを動かした例です。
Unity上でRealsenseの情報が扱えているのが分かります。
UnityとRealsenseでkeijiro氏のこちらのリポジトリとか使うと、以下のようなビジュアルエフェクトが試せそうなのですが、バージョンの違いなのか残念ながらうまく動かせていません…
Unityでの使い方は、以下が参考になりそうです。
3Dスキャン
realsense-viewerで保存した点群データ(.ply)をUnityで表示することもできます。
3Dスキャンをする方法は、Realsense以外にもいくつかあります。詳細は、以下記事を参照ください。
ただ、これは色がついておらず、がっかりな結果ですね。うまくtextureを書き出せればカラーも出せるのですが、今のところ満足いくクオリティではできていません。3Dスキャンに関しては、うまくできたら別記事で紹介したいと思います。
Realsense TIPS
ハードウェア情報が知りたい場合
シリアルNoやファームウェアバージョンをCUIで知りたい場合は、以下コマンドを実行して下さい。
$ rs-enumerate-devices -o
GUIであれば、Realsense Viewerでハードウェア情報を確認できます。
まとめ
RealSenseのインストールからROSやUnityの使い方までまとめてみました。ROSは豊富な可視化ソフトや、ROSの様々なパッケージが使えることが魅力ですね。Unityに関しては、まだ初めて試したところなのですが、色々なプラットフォームで使えるが魅力的だと感じています。
参考リンク
関連記事
変更履歴
- 2023/12/30 微修正
- 2023/01/17 リアルセンスの使い分けに関して追記
- 2020/03/01 WSL2上での設定に関して追記
Discussion