Intel RealSense Depth Camera D405のセットアップと活用#
Intel RealSense D405について#
Intel RealSense Depth Camera D405は,ステレオビジョン方式を採用した深度カメラである.特に近距離での深度測定に優れており,約7cmから測定可能という特徴がある.
主な特徴#
近距離測定: 7cm〜50cmの範囲で高精度な深度測定が可能
ステレオビジョン方式: 2つのカメラを使った三角測量による距離測定
小型・軽量: ロボットの手先やヘッド部に搭載可能なコンパクト設計
USB接続: PCに接続するだけで使用可能
ロボティクスでの活用例#
大型ロボットでのマニピュレーション#
大型のロボットマニピュレータの手先(エンドエフェクタ)にD405を取り付けることで,以下のような利点がある:
把持対象物の深度情報取得: ロボットハンドに近い物体の正確な3D位置を把握
マニピュレーション精度の向上: 対象物までの距離を正確に測定し,安全で確実な把持を実現
近接作業の支援: 細かい組み立て作業や精密な位置決めに必要な視覚情報を提供
小型ロボット(Jedy)での活用#
Jedyのような小型の移動ロボットに搭載した場合:
自己の手先(マニピュレータ)の視認: カメラの視野内にロボット自身のアームや手先が映り,作業状態をリアルタイムで確認可能
近接物体の認識: ロボットの周辺にある小さな物体や障害物を検出
テーブル上の作業: 机上の物体をピックアップする際の位置推定に活用
ステレオカメラの測距原理#
ステレオビジョンとは#
ステレオカメラは,人間の両眼視と同じ原理で距離を測定する:
視差(Disparity)の利用: 2つのカメラで同じ対象を異なる角度から撮影すると,画像上での対象物の位置がずれる.このずれ(視差)が距離に対応する.
三角測量:
2つのカメラ間の距離(ベースライン)は既知
各カメラの画像上での対象物の位置から視差を計算
視差と幾何学的な関係から,対象物までの距離を算出
計算式:
距離(Z)= (ベースライン × 焦点距離)/ 視差
視差が大きい(対象物が近い)ほど距離は短く,視差が小さい(対象物が遠い)ほど距離は長くなる.
測距のプロセス#
キャリブレーション: 2つのカメラの位置関係と内部パラメータを事前に校正
ステレオマッチング: 左右の画像で同じ特徴点(対応点)を探索
視差マップの生成: 画像の各ピクセルについて視差を計算
深度マップの生成: 視差から実際の距離(深度)に変換
近距離測定の利点#
D405が7cmという近距離から測定できる理由:
広角レンズの採用: 視野角が広く,近い物体も画角に収まる
短いベースライン: カメラ間の距離を最適化し,近距離での視差計算精度を向上
高解像度センサー: 細かい視差の変化を捉えることができる
Kinectとの違い#
Intel RealSense D405(ステレオビジョン方式)#
原理: 2つのカメラによる三角測量
光源: 不要(自然光や室内照明で動作)
測定範囲: 7cm〜50cm(近距離特化)
屋外使用: 可能(太陽光下でも動作)
利点: パッシブ方式のため省電力,他のセンサーとの干渉がない
Kinect(赤外線構造化光方式)#
原理: 赤外線パターンを投射し,その歪みから距離を測定
光源: 赤外線プロジェクタが必要
測定範囲: 0.5m〜4.5m(中距離向け)
屋外使用: 困難(太陽光の赤外線が干渉)
利点: 単眼でも動作,テクスチャのない面でも測定可能
使い分け#
近距離マニピュレーション: RealSense D405
室内ナビゲーション・全身トラッキング: Kinect
屋外での深度測定: RealSense D405(ステレオ方式)
インストール方法#
Ubuntu環境でIntel RealSense D405を使用するには,librealsense2をインストールする必要がある.以下では,パッケージからのインストールとソースからのインストールの2つの方法を説明する.
パッケージからのインストール(推奨)#
最も簡単な方法は,Intel公式のAPTリポジトリからパッケージをインストールすることである:
# 1. GPGキー用のディレクトリを作成
$ sudo mkdir -p /etc/apt/keyrings
# 2. Intel RealSenseのGPGキーをダウンロード
$ curl -sSf https://librealsense.intel.com/Debian/librealsense.pgp | sudo tee /etc/apt/keyrings/librealsense.pgp > /dev/null
# 3. APTリポジトリを追加
$ echo "deb [signed-by=/etc/apt/keyrings/librealsense.pgp] https://librealsense.intel.com/Debian/apt-repo `lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/librealsense.list
# 4. パッケージリストを更新
$ sudo apt-get update
# 5. librealsense2-utilsをインストール
$ sudo apt-get install librealsense2-utils librealsense2-dev
ソースからのインストール#
最新の機能やバグ修正が必要な場合,または特定のビルドオプションを指定したい場合は,ソースからビルドすることができる:
# 1. ソースコード用のディレクトリを作成
$ mkdir -p ~/src/github.com/IntelRealSense
$ cd ~/src/github.com/IntelRealSense
# 2. librealsenseリポジトリをクローン
$ git clone https://github.com/IntelRealSense/librealsense.git
$ cd librealsense/
# 3. ビルドに必要な依存パッケージをインストール
$ sudo apt install -y git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev cmake
# 4. udevルールをセットアップ
$ ./scripts/setup_udev_rules.sh
# 5. ビルドディレクトリを作成してビルド
$ mkdir build && cd build
$ cmake ../ -DCMAKE_BUILD_TYPE=release -DBUILD_EXAMPLES=false -DBUILD_GRAPHICAL_EXAMPLES=false
$ sudo make clean && make && sudo make install
ビルドオプションの説明:
-DCMAKE_BUILD_TYPE=release: リリースビルド(最適化有効)-DBUILD_EXAMPLES=false: サンプルプログラムをビルドしない-DBUILD_GRAPHICAL_EXAMPLES=false: GUIサンプルをビルドしない
GUIサンプル(realsense-viewerなど)が必要な場合は,-DBUILD_GRAPHICAL_EXAMPLES=trueに変更する.
インストール確認#
カメラを接続して,以下のコマンドで動作確認する:
# RealSenseビューアを起動
realsense-viewer
このビューアで,カラー画像と深度画像がリアルタイムで表示されれば,正常にインストールされている.
ROSでの使用#
ROSからRealSenseカメラを使用する場合は,以下のパッケージをインストールする:
sudo apt-get install ros-${ROS_DISTRO}-realsense2-camera
起動方法:
roslaunch realsense2_camera rs_camera.launch
これにより,以下のトピックが配信される:
/camera/color/image_raw: カラー画像/camera/depth/image_rect_raw: 深度画像/camera/aligned_depth_to_color/image_raw: カラー画像に位置合わせされた深度画像/camera/color/camera_info: カメラキャリブレーション情報