跳到主要内容

Isaac ROS DNN立体深度

Isaac ROS DNN立体深度概述快速体验

Isaac ROS DNN立体深度官网链接:https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_dnn_stereo_depth/index.html

概述

视觉深度感知问题在机器人的许多领域都具有普遍的应用,例如在物体操作任务中估计机械臂的姿态、在自主机器人导航中估计静态或移动目标的距离、在送货机器人中跟踪目标等等。Isaac ROS DNN Stereo Depth 针对两个 Isaac 应用程序,即 Isaac Manipulator 和 Isaac Perceptor。在 Isaac Manipulator 应用程序中,ESS 作为插件节点部署在 Isaac ROS cuMotion 包中,为机械臂运动规划和控制提供深度感知图。在此场景中,将执行桌面任务的工业机械臂的多摄像机立体流传递给 ESS 以获得相应的深度流。深度流用于分割机械臂与桌面上相应物体的相对距离;从而提供用于避免碰撞和细粒度控制的信号。同样,Isaac Perceptor 应用程序使用了几个 Isaac ROS 包,即 Isaac ROS Nova、Isaac ROS Visual Slam、Isaac ROS Stereo Depth (ESS)、Isaac ROS Nvblox 和 Isaac ROS Image Pipeline。

快速体验

为了简化开发,我们主要使用 Isaac ROS Dev Docker 镜像,并在上面进行效果演示。演示不需要安装任何摄像头设备,通过播放 rosbag 文件模拟来自摄像头的数据流。

注:如果想要安装在自己设备上,或者连接摄像头开发其他功能,请参照 Isaac ROS 官网,连接英伟达指定型号的摄像头自行开发。

打开终端进入工作目录

cd ${ISAAC_ROS_WS}/src

进入 Isaac ROS Dev Docke容器

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

运行下面启动命令,其中threshold:=0.0 在启动时可以修改成0.4,将会有不同的效果。

xxxxxxxxxx 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

打开第二个终端,进入容器

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

运行以下命令

xxxxxxxxxx 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

查看运行结果

打开第三个终端,进入容器

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

运行以下命令,

xxxxxxxxxx ros2 run isaac_ros_ess isaac_ros_ess_visualizer.py

当 threshold 设置成0.0时, 显示结果如下:

当 threshold 设置成0.4时, 显示结果如下: