9.3 DNN Stereo Diepte

Docker-gebruiksreferentie: Module 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

Overzicht

Het probleem van visuele diepteperceptie komt veel voor in vele gebieden van de robotica, zoals het schatten van de houding van de arm bij een objectoperatie, het schatten van de afstand van statische of bewegende doelen bij autonome robotnavigatie, het volgen van doelen in bezorgrobots, enz. Isaac ROS DNN Stereo Depth is bedoeld voor twee Isaac-toepassingen: Isaac Manipulator en Isaac Perceptor. In de Isaac Manipulator-toepassing wordt ESS ingezet als een plugin-knooppunt in het Isaac ROS-besturingspakket om een diep gevoel voor de bewegingsplanning en -besturing van de mechanische arm te bieden. In dit scenario wordt de multi-camera stereostream van de industriële mechanische arm die de desktoptaak uitvoert, doorgegeven aan de ESS voor de bijbehorende dieptestream. Diepte stromen worden gebruikt om de relatieve afstand van de mechanische arm tot het bijbehorende object op de desktop te verdelen; dit biedt een signaal voor botsingsvermijding en fijne deeltjesbesturing. Op vergelijkbare wijze gebruikt de Isaac Perceptor-toepassing verschillende Isaac ROS-pakketten, namelijk Isaac ROS Nova, Isaac ROS Visual Slam, Isaac ROS Stereo Deep (ESS), Isaac ROS Nvblox en Isaac ROS Image Pipeline.

Snelstart

Om de ontwikkeling te vereenvoudigen, gebruiken we voornamelijk Isaac ROS Dev Docker-images en voeren we daarop impactdemonstraties uit. De demonstratie vereist niet de installatie van een camera-apparaat om datastromen van de camera te simuleren door het rosbag-bestand af te spelen.

Opmerking: Als u op uw eigen apparatuur wilt installeren of de camera wilt aansluiten om andere functies te ontwikkelen, raadpleeg dan het officiële Isaac ROS-netwerk om de camera met het opgegeven model van NVIDIA te verbinden.

Open een terminal en ga naar de werkruimte

bash

cd ${ISAAC_ROS_WS}/src
Ga de Isaac ROS Dev Docker-container binnen
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Voert de volgende opstartopdracht uit, waarvan Threshold:=0.0 bij het opstarten kan worden aangepast naar 0.4, met verschillende effecten.

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

Open een tweede terminal en ga de container binnen.

bash

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

Voer de volgende opdracht uit:

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

Het resultaat bekijken

Open de derde terminal en ga de container binnen.

bash

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

Voer de volgende opdracht uit:

bash

ros2 run isaac_ros_ess isaac_ros_ess_visualizer.py

Indien ingesteld op 0.0, geeft het de volgende resultaten weer:

Ik weet het niet.

Wanneer ingesteld op 0.4, worden de resultaten hieronder getoond: