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
cd ${ISAAC_ROS_WS}/src
Betreten Sie den Isaac ROS Dev Docker-Container
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.shFührt den folgenden Startbefehl aus, wobei Threshold:=0.0 beim Start auf 0.4 geändert werden kann, mit unterschiedlichen Effekten.
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.
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.shFühren Sie den folgenden Befehl aus:
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_rectErgebnis anzeigen
Öffnen Sie das dritte Terminal und betreten Sie den Container.
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.shFühren Sie den folgenden Befehl aus:
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: