RealSense SDK 2.0 を自力でビルドして、C++やUnityで使う@Windows
基本的な導入に関してやったことのメモ。
librealsenseに出したプルリクがマージされた。
— unagi (@UnagiHuman) 2018年2月17日
UnityでPointCloud(デプスの3次元座標情報)を扱うためのC# wrapper機能を追加したが、これでUnityで3次元的にPointCloudを描画したりできます。https://t.co/vhoCsmLeo5#RealSense
これを試したかったので、最新の development
ブランチをビルドすることを目的とします。 unagi (@UnagiHuman) | Twitter さんありがとうございます!
筆者利用環境
- Windows 10 x64
- Visual Studio Community 2017
- RealSense D435
- CMake 3.11.0-rc 1
- Unity 2017.3.0b11
Quick Start
まずは自分でビルドせず、動作確認をします。Windows Distribution に従う。
- GitHub Releases から最新の
Intel.RealSense.SDK.exe
をインストール。- これでカメラ精度を見る
Depth.Quality.Tool.exe
も、 可視化ツールIntel.RealSense.Viewer.exe
もインストールされます - ちなみに、Releases にある Source code (zip) は、リリース時点のコードをまとめた物。
- これでカメラ精度を見る
Intel.RealSense.SDK.exe
のインストールでドライバもインストールされるので、D415/D435 を刺してWindowsが認識することを確認。Intel.RealSense.Viewer.exe
を起動- 2D でカラー・デプス・IRなどが表示されることを確認
- 3D でポイントクラウドが表示できることを確認
- サンプルのプロジェクトをビルドしてみる
- Examples for Intelョ RealSense・SDK 2.0 (デスクトップに作られる)
- サンプルの中身についてはこちらに説明がある→ librealsense/examples at master · IntelRealSense/librealsense · GitHub
C++ で開発する
コードを clone してきたら development
ブランチに切り替えておく。
自分で realsense2.dll をビルドする
今回の記事には二つ dll が登場します。
- realsense2.dll は、D415/D435 などを使う為のダイナミックリンクライブラリ。 c++ でも C# でも使います
- LibrealsenseWrapper.dll というのもあとから出てきます。こちらは Unity で使えるようにする為の、Managed のプラグイン。 Unity および C# (Windowsプログラミングとか) でRealSenseを使う時に使います。
ここは realsense2.dll の話。ここに書いてあるのをやる→ Windows 8.1 & Windows 10 Installation
- CMake の使い方に関して全く知らない人は、 dandelion (@dandelion1124) | Twitter さんの、OpenCV を CMake でビルドする記事を読むと良いです。
注:
BUILD_CV_EXAMPLE
などのビルドオプションが正直よくわかってないのですが、問題なく使えています
- CMake は利用環境向けのソリューションファイルを生成するだけなので、その後各環境でビルドして始めて dll なりが作成されます
- Example や Tools も一緒にビルドするので、その中で realsense-viewer.exe 等が動く事を確認する。
改めてC++のサンプルを読んで、ビルドしてみる
(例)上記でビルドした結果のディレクトリの中の examples ディレクトリ中の ReleaseExamples.sln を起動して、 rs-pointcloud プロジェクト等を単体でビルド、実行。など。
Unity で開発する
ここに書いてあることをやります→ Unity Wrapper for RealSense SDK 2.0
ビルド済のUnity用のdllを使う場合は、初めにインストールした C:\Program Files (x86)\Intel RealSense SDK 2.0\bin\x64
あたりから取ってくる
LibrealsenseWrapper.dll をビルドする
今回はここが目的。 Unity ラッパー用の dll を最新の development
ブランチのコードでビルドする。
VS2017でビルドする場合、.NET Core 2.x SDK のインストールを事前にお忘れ無く
- 上記リンク先の通りウェブから .Net Core 2.x SDK を落としてきてインストールすると、自分の環境では"Microsoft.NET.Sdk が見つかりません" と言われて、 VS2017 向けのプロジェクトが正しく読み込まれない問題が発生しましたが、次のリンクの通り VS2017 installer から .NET core をインストールし直したらちゃんと見つかり、ビルドできました
VS2017 でビルドすると .net2.0 向け、 .Net3.5 向け、.Net 4.6.1 向け~みたいな感じで複数の .dll が作成されますが、現状のUnityは 3.5 だった気がするので net35 のフォルダから dll を持ってきて使います。
Unity のサンプルを動かす
- Unity Wrapper for RealSense SDK 2.0 に書いてある通り、サンプルのプロジェクトをコピーして、二つのdllを適切な場所に配置する。
以上
これで C++ と Unity で開発できることが確認出来ました。おしまい。