9.3 DNN ステレオ深度
Docker 使用リファレンス: モジュール 3.7 Docker
Isaac ROS DNN Depth Network リンク:https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_dnn_stereo_depth/index.html
概要

視覚的深度知覚の問題は、物体操作におけるアーム姿勢の推定、自律ロボットナビゲーションにおける静止または移動目標の距離推定、配達ロボットでの目標追跡など、ロボティクスの多くの分野で一般的です。Isaac ROS DNN Stereo Depth は、Isaac Manipulator と Isaac Perceptor の 2 つの Isaac アプリケーション向けです。Isaac Manipulator アプリケーションでは、ESS は Isaac ROS 制御パッケージのプラグインノードとして展開され、機械アームの動作計画と制御に深度感知を提供します。このシナリオでは、デスクトップタスクを実行する産業用機械アームのマルチカメラステレオストリームが、対応する深度ストリームのために ESS に渡されます。深度ストリームは、機械アームとデスクトップ上の対応する物体との相対距離を分割するために使用されます。これにより、衝突回避と細粒度制御のための信号が提供されます。同様に、Isaac Perceptor アプリケーションは、Isaac ROS Nova、Isaac ROS Visual Slam、Isaac ROS Stereo Deep(ESS)、Isaac ROS Nvblox、および Isaac ROS Image Pipeline といったいくつかの Isaac ROS パッケージを使用します。
クイックスタート
開発を簡素化するため、主に Isaac ROS Dev Docker イメージを使用し、その上でデモを実行します。デモではカメラデバイスをインストールする必要はなく、rosbag ファイルを再生することでカメラからのデータストリームをシミュレートします。
注意:自分のデバイスにインストールしたり、カメラを接続して他の機能を開発したい場合は、Isaac ROS 公式サイトを参照して指定モデルの NVIDIA カメラを接続してください。
ターミナルを開いてワークスペースに移動します
cd ${ISAAC_ROS_WS}/src
Isaac ROS Dev Docker コンテナに入る
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh次の起動コマンドを実行します。Threshold:=0.0 は起動時に 0.4 に変更でき、異なる効果が得られます。
ros2 launch isaac_ros_examples isaac_ros_examples.launch.py launch_fragments:=ess_disparity \
engine_file_path:=${ISAAC_ROS_WS:?}/isaac_ros_assets/models/dnn_stereo_disparity/dnn_stereo_disparity_v4.1.0_onnx/ess.engine \
threshold:=0.02 つ目のターミナルを開いてコンテナに入ります。
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh次のコマンドを実行します:
ros2 bag play -l ${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_ess/rosbags/ess_rosbag \
--remap /left/camera_info:=/left/camera_info_rect /right/camera_info:=/right/camera_info_rect結果を表示
3 つ目のターミナルを開いてコンテナに入ります。
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh次のコマンドを実行します:
ros2 run isaac_ros_ess isaac_ros_ess_visualizer.py
0.0 に設定した場合、次の結果が表示されます:
わかりません。

0.4 に設定すると、結果は次のようになります: