9.3 DNN Stereo-Tiefe

Docker-Nutzungsreferenz: Modul 3.7 Docker

Isaac ROS DNN Depth Network Link: https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_dnn_stereo_depth/index.html

Übersicht

Das Problem der visuellen Tiefenwahrnehmung ist in vielen Bereichen der Robotik üblich, wie der Schätzung der Armhaltung bei einer Objektoperation, der Schätzung der Entfernung statischer oder bewegter Ziele in der autonomen Roboternavigation, der Verfolgung von Zielen in Lieferrobotern usw. Isaac ROS DNN Stereo Depth ist für zwei Isaac-Anwendungen gedacht: Isaac Manipulator und Isaac Perceptor. In der Isaac Manipulator-Anwendung wird ESS als Plugin-Knoten im Isaac ROS-Steuerpaket bereitgestellt, um ein tiefes Gespür für die Bewegungsplanung und -steuerung des Roboterarms zu bieten. In diesem Szenario wird der Multi-Kamera-Stereo-Stream des industriellen Roboterarms, der die Desktop-Aufgabe ausführt, an das ESS für den entsprechenden Tiefen-Stream übergeben. Tiefenströme werden verwendet, um die relative Entfernung des Roboterarms vom entsprechenden Objekt auf dem Desktop zu unterteilen; dies liefert ein Signal zur Kollisionsvermeidung und zur Feinpartikelsteuerung. Ähnlich verwendet die Isaac Perceptor-Anwendung mehrere Isaac ROS-Pakete, nämlich Isaac ROS Nova, Isaac ROS Visual Slam, Isaac ROS Stereo Deep (ESS), Isaac ROS Nvblox und Isaac ROS Image Pipeline.

Schnellstart

Um die Entwicklung zu vereinfachen, verwenden wir hauptsächlich Isaac ROS Dev Docker-Images und führen darauf Auswirkungs-Demonstrationen durch. Die Demonstration erfordert nicht die Installation eines Kameragerätes, um Datenströme von der Kamera durch Abspielen der rosbag-Datei zu simulieren.

Hinweis: Wenn Sie auf Ihrem eigenen Gerät installieren oder die Kamera anschließen möchten, um andere Funktionen zu entwickeln, beziehen Sie sich bitte auf das offizielle Isaac ROS-Netzwerk, um die Kamera mit dem angegebenen Modell von NVIDIA zu verbinden.

Öffnen Sie ein Terminal und wechseln Sie in den Arbeitsbereich

bash

cd ${ISAAC_ROS_WS}/src
Betreten Sie den Isaac ROS Dev Docker-Container
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Führt den folgenden Startbefehl aus, wobei Threshold:=0.0 beim Start auf 0.4 geändert werden kann, mit unterschiedlichen Effekten.

bash

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.0

Öffnen Sie ein zweites Terminal und betreten Sie den Container.

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Führen Sie den folgenden Befehl aus:

bash

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

Ergebnis anzeigen

Öffnen Sie das dritte Terminal und betreten Sie den Container.

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Führen Sie den folgenden Befehl aus:

bash

ros2 run isaac_ros_ess isaac_ros_ess_visualizer.py

Wenn auf 0.0 gesetzt, werden die folgenden Ergebnisse angezeigt:

Ich weiß nicht.

Wenn auf 0.4 gesetzt, werden die Ergebnisse unten angezeigt: