コンテンツにスキップ
【RGBDカメラ】ORBBEC Gemini335をOpen CVで使ってみよう

【RGBDカメラ】ORBBEC Gemini335をOpen CVで使ってみよう

皆さんこんにちは。アルバイトの平川です。

今回は、弊社で新しく取り扱う予定のORBBEC社のGemini330シリーズから、Gemini 335 RGBDカメラについて紹介したいと思います。

ORBBECとは?

中国の深圳を拠点とする、3Dカメラ製造としては世界有数の企業です。ステレオビジョンカメラや、ToFカメラ、Liderなど、複数の手法による3Dカメラをそれぞれ開発しています。

Gemini335 / 335Lについて

Gemini335 / 335Lは、二つのIRカメラによるステレオビジョンによって深度計測可能な、RGBDカメラです。さらにRGBカメラを備え、普通のカメラとしても使えます。赤外線を使った点群情報をとることもできます。

Gemini 335 / 335Lの仕様比較表は以下をご覧ください。

項目 Gemini 335
(本ブログで使用するモデル)
Gemini 335L
モデル G40155-170 G40055-170
深度計測方式 アクティブ・パッシブステレオ アクティブ・パッシブステレオ
波長 850 nm(赤外線) 850 nm(赤外線)
深度範囲 0.10~20 m+ (最適範囲: 0.26~3 m) 0.17~20 m+ (最適範囲: 0.5~6 m)
深度解像度/FPS 最大 1280 x 800@30fps 最大 1280 x 800@30fps
深度視野角 (FOV) 水平90° 垂直65° 水平90° 垂直65°
RGB解像度/FPS 最大 1920 x 1080@30fps 最大 1280 x 800@30fps
RGB視野角 (FOV) 水平86° 垂直55° 水平94° 垂直68°
シャッター方式 ローリングシャッター グローバルシャッター
処理 Orbbec ASIC Orbbec ASIC
空間精度 ≤ 1.5% (1280 x 800 @ 2 m & 90% x 90% ROI) ≤ -0.8% (1280 x 800 @ 2 m & 90% x 90% ROI)
理論上の最大深度範囲 最大 65 mまで 最大 65 mまで
深度フィルタ オールパス 可視光 + NIRパス
IMU 対応 対応
データ接続 USB 3.0 Type-C USB 3.0 Type-C
電源入力 USB 3.0 Type-C USB 3.0 Type-C
トリガ 対応 対応
消費電力 平均 < 3.0 W 平均 < 3.0 W
IP保護等級 IP5X IP65
動作環境 -10°C ~ 45°C; 屋内/屋外; 5%~90%RH(結露なし) -10°C ~ 50°C; 屋内/屋外; 5%~90%RH(結露なし)
SDKサポート Orbbec SDK Orbbec SDK
データ出力 点群データ、深度マップ、IR & RGB 点群データ、深度マップ、IR & RGB
寸法 (W x H x D) 90 mm x 25 mm x 30 mm 124 mm x 29 mm x 27 mm
重量 97 g 133 g
取付 底面: ¼-20UNC、背面: 2 x M3 底面: ¼-20UNC、背面: 2 x M4

 

どんなことができる?

物体の認識が主として可能なため、車両型の自律移動ロボットや、協働ロボットなどに搭載可能です。

Gemini 335では、97 gと軽量なため、中型のドローンによるマッピングなどにも使用できます。保護等級がIP5Xのため、塵や埃による機器の故障などは起こりにくいですが、屋外で使用する場合は、IP65で防水も備えたGemini 335Lが適しています。

専用のASICを内蔵しているため、カメラ本体で処理をすることで応答性を高めています。

 以下の動画では、ROSを使用したSLAMを行っている様子が確認できます。動画では、本ブログで使用する335よりも深度精度が高く、画像歪みのないグローバルシャッター方式を採用した335Lモデルを使用していますが、335でも同様の実装が可能です。

環境構築について

事前準備

ORBBECでは、3Dカメラを使用した開発を行うためのSDKキットを公開しています。ただ、このSDKでは、レンダリングにOpenCVを使用しているため、依存関係を設定する必要があります。また、makeにCMakeを使用し、出力されるslnファイルからビルドするため、Visual Studioも使用します。

使用したソフトウェア

・OpenCV (4.3.0)
・Visual Studio 2022(17.11.5)
・Cmake(3.31.0)

ORBBEC SDK

今回はWindows11環境で、このSDKを使用してデモを行っていきます。まずは、ORBBECのOrbbec SDKのページに飛びましょう。ページを見て頂ければ分かりますが、Windows以外にもUbintu、mac OS、Android OSと広く対応しています。また、ROS、ROS2、Unity、Python用のラッパなどについても配布がされています。

ORBBEC公式のドキュメントはこちらです。公式ドキュメントを参考に進めていきます。

Orbbec SDK for Windowsから、インストーラをダウンロードします。また、*Orbbec Camera Driver for Windowsから、カメラ用のドライバもダウンロードしておきましょう。

Orbbec SDK for Windowsに飛ぶと、これまでのバージョンのzipがあります。今回は "v1.10.12_20240809_69b687f22_win_x64_release.zip" をダウンロードしました。任意のツールでzipを展開します。

OpenCVのインストール

OpenCVのページに行きます。上のLiblaryタブからReleasesに移動します。今回は、OEBBEC SDKの環境構築の方法のmdファイルに記されている "OpenCV ver 4.3.0" を入れます。


(3ページ目にありました。2024/10/25時点)

Windowsを押すとexeファイルがダウンロードされるのでそれを実行します。


ドライブ直下に入れてしまいます。

続いて、システム環境変数の設定をします。
システム環境変数側の編集ボタンを押して、

変数名:OpenCV_DIR
変数値:opencv\build\x64\vc15\lib

のように設定します。Orbbec公式のドキュメントではbuildディレクトリを変数値にすると書いてありますが、x64で動かすのにあたって、このように変更する必要があるようでした。


先ほどCドライブ直下にOpenCVを入れたので、今回の場合の変数値はこのようになります。

これでOpenCV周りの設定は以上です。

makeの実行

cmakeを開きます。ここでは、source codeのディレクトリと、build先のディレクトリを入力します。
ORBBEC SDKのExampleフォルダをsource codeのディレクトリに、Exampleにbuildディレクトリを作り、そこをbuild先のディレクトリとして設定します。


SDKの場所自体は問わないので、Example内になってれば問題ありません。

Configureを押すと、以下のようなウィンドウが開きます。
そこで、 "Optional platform for generator" を "x64" に設定し、Finishを押します。


おそらく下の画像のような感じで、warningが複数出てきますが、OpenCVのバージョン云々の話なので、動作への直接的な影響はありませんでした。

 "Generate" を押しましょう。
"Generating done (~~s)"のように出れば成功です。
続いて "Open Project" を押して、Visual Studioからslnファイルを開きましょう。

今回は、HelloOrbbecを実行したいと思います。
ソリューションエクスプローラから、 "HelloOrbbec" を右クリックして、スタートアッププロジェクトに設定します。
実行するPCと Gemini 335 が接続されていることを確認してから、上の "ローカルwindowsデバッガー" のボタンを押して実行します。


プログラム側でOrbbec製のカメラを識別できると、このような感じで、デバイス名やセンサのタイプなどをズラズラと表示してくれます。

せっかくのRGBDカメラなので、カラー画像や深度マップを表示してみましょう。先ほどと同じ要領で、 "MultiStream" をスタートアッププロジェクトにして、デバッガーを起動します。


このような感じで、RBG映像(左上)、深度マップ(中上)、赤外線の点群カメラ映像(右上、左下)、6軸IMU(中下)の情報が表示されました。

動画だと以下のような感じ。


深度マップでは、近くのものは青に、遠くに行くほど赤に変化します。手指の状態や椅子の外形など、かなりの精度で認識して表示してくれていますね。

 最後に

今回は、ORBBECのGemini 335 RGBDカメラをテストしてみました。
環境構築やテストをするのにあたって、公式の情報がかなりまとまっていて、非常に準備がしやすいという印象でした。
また、本体に三脚とボールジョイント付きの雲型がついており、カメラの向きを簡単に変えて設置できたり、USB Type-Cコネクタで、データの送受信と電源供給ができたりと、手軽に扱えるのが地味にうれしいポイントです。

今回使用したGemini 335よりも、視野角や深度識別範囲の大きいGemini 335Lモデルも当社では取り扱っています。

また、今回使用したGemini 335は、ステレオビジョン式の深度センサを搭載していましたが、ORBBEC社では、ToF方式や、ストラクチャードライト式のカメラも取り扱っています。

ToF方式

ストラクチャードライト式

Femto Bolt / Megaについても、テストしたブログがあるので、こちらも良ければご覧ください!

前の記事 【RGBDカメラ】ORBBEC Femto Bolt/Femto Mega 3Dカメラを使ってみよう!【Azure Kinect】
次の記事 Boost Battery Life with the New Qwiic Power Switch