United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

Intel JouleとIntel RealSense で3Dスキャニング

 

知覚コンピューティングアプリケーションの開発を加速

前回の記事ではLinuxが動いているIntel Joule 570xデベロッパーキットを紹介してきましたIこの記事ではIntel RealSense R200カメラとそのサンプルを紹介していきます。

Intel RealSense R200

Intel RealSense R200は軽量でUSB 3.0動作、1つのRGBカメラ、2つの赤外線カメラ、IRレーザプロジェクタがASICで処理されているセンシング用カメラです。広範囲深度/3Dカメラの開発キットで、様々な機能があり様々な機器で使用できます。また、開発者向けに設計されています。

小さいということも魅力の一つで、Intel公式は次のようにも述べています。

20070cmのステレオカメラです。またClass1のレーザでより正確に測ることもできます。R200は水平検索範囲63ピクセルのため解像度628x46872cmの最小奥行き距離でセンシングできます。また、解像度320x240のとき32cmの最小奥行き距離でセンシングできます。複数のR200のレーザの干渉波を強めるので、同じ環境でR200を配置することができます。赤外線カメラはグローバルシャッタで動作し、1080pフルカラーカメラはロールシャッタで動作します。内部クロックで3つのカメラのずれをなくしています。

デスクトップに描画

twm window managerを使ったX Windows

以前はワイヤレスでSSH接続する前に一度UARTで接続し設定する必要がありました。しかし、Ostro Linux動作しているXTバージョンはMicro SDやX server、desktop softwareが初期設定されています。

そのため私たちは次のように打つだけでいいのです:

startx

X Windowsのセッションが twm windowマネージャによって開始します。これは少し古臭いGUIのため、現在のデスクトップとは少しかけ離れています。このセッションはpkill Xを入力することで終了できます。

もし現代風のインタフェースを使いたければ次のようにタイプしてください:

startxfce4

その後、ファイルマネージャーやその他の便利なツールが利用できます。

Librealsenseのセッティング

LibrealsenseGithub

Intelは出荷時にRealSenseのセッティングを行います。そのため、/usr/libの中にlibrealsense.soというライブラリファイルがあります。そのため、最新版ではないことがあります librealsenseのGithubでは最新版のライブラリが配布されています。

もう一つの注意点に標準Linux OSにはYoctoプロジェクトツールが使用されているためパッケージマネージャが搭載されていません。しかし簡単に必要とされるアプリケーションやライブラリなどを焼くことができます。

またそうすることで、必要のないソフトウェアやライブラリが容量を圧迫することがありません。

ではカメラが接続されていない状態から最新ライブラリをインストールします。

# git clone https://github.com/IntelRealSense/librealsense.git
# cd librealsense
# mkdir build
# cd build

# cmake .. -DBUILD_EXAMPLES:BOOL=true
# make && sudo make install

UdevのUSBサブシステムを設定するには、2つのコマンドが必要です。RealSenseカメラは、正しく設定し接続すると認識されます。

# cp config/99-realsense-libusb.rules /etc/udev/rules.d/
# udevadm control --reload-rules && udevadm trigger

カメラが接続されると次のような接続通知メッセージがコマンドラインに表示されます。

[ 4923.102810] usb 2-2: new SuperSpeed USB device number 3 using xhci_hcd
[ 4923.124075] uvcvideo: Found UVC 1.10 device Intel RealSense 3D Camera R200 (8086:0a80)

この説明はlibrealsenseとLinuxを接続する例です。WindowsやMac OS Xは GitHubで確認してください。また、標準Linuxを使用している場合はカーネルやパッチを更新する必要がありません。

Bluetoothキーボード

以前ではUSBワイヤレスキーボードとマウスを使用していましたが、USBポートにRealSense を接続する必要もあったため今回はBluetoothを使います。Bluetoothの設定方法はこちらに記載されています。また、USBハブにマウスとキーボード、SR200をつなぐという手もあります。

実行例

librealsense enumerate devicesプログラムの出力の一部

ライブラリは/ usr / local / lib64にインストールされるので、環境変数を定義してリンカが正しく読み込めるように必要があります:

# export LD_LIBRARY_PATH=/usr/local/lib64

X Windowが起動する前に設定が完了していれば、Xfce内で開かれたすべての端末セッションに環境変数が設定されます。

例は/ usr / local / binにインストールされ、すべてはcpp- *で始まります。

cpp-headless

cpp-headless-COLOR

この例30フレーム分キャプチャし、最後に画像をディスクに4枚保存されます。そのうちのカラー画像です。

cpp-headless-INFRARED

赤外線カメラの1枚目の画像です。

 

cpp-headless-INFRARED2

赤外線カメラの2枚目の画像です。

 

 cpp-headless-DEPTH

最後の画像は深度を表しています。

cpp-tutorial-1-depth

 

先ほどの例はモニタを使用する必要がないため、headlessと名付けました。今回の例はSSH やUARTを使い、ASCII文字で深度を送信していきます

cpp-pointcloud

point cloudの例では特定の深度の中にあるもののみ表示されます。

cpp-stride

この例は、コールバック付きの低レイテンシ、マルチスレッドデモであり、RGBおよび2つの赤外線カメラからのビデオを深度と共に表示します。

まとめ

ntel Jouleと RealSense R200のチュートリアルを紹介していきました。デモは問題なく動き、この手順で行えばつまずくことはあまりないと思われます。 これらの興味深いところは100-200行ほどのコードでGUIやビデをストリームを使用することができるところです。

このハードウェアの組み合わせを使用すると、非常に小さなジュールモジュールがすべての処理をしていることを忘れてしまいます。 Intel RealSense R200と組み合わせることで、IoT、拡張現実(AR)などのための次世代アプリケーションの開発に使用できる強力な知覚コンピューティング機能を提供します。

— Andrew Back

 

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.
DesignSpark Electrical Logolinkedin