
頁面 27Isaac ROS Freespace Segmentation — 自由空間分割原文https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_freespace_segmentation/index.html概述Isaac ROS Freespace Segmentation 包含一個用于生成導航占用柵格的 ROS 2 包。通過處理自由空間分割掩碼以及機器人相對于地面的位姿Bi3D Freespace 生成用于 Nav2 的占用柵格在導航期間用于避障。該包通過 GPU 加速在機器人應用中提供實時、低延遲的結(jié)果。Bi3D Freespace 為移動機器人地面提供了一個額外的占用柵格來源。isaac_ros_bi3d用于節(jié)點圖中從時間同步的輸入左右立體圖像對提供一個自由空間分割掩碼作為輸出。isaac_ros_bi3d_freespace使用該自由空間掩碼以及相機相對于地面的 TF 位姿將平面自由空間計算為占用柵格輸入到 Nav2。有多種方法可以預測作為導航輸入的占用柵格。這些方法都不是完美的每種方法在提供測量觀測的傳感器的估計精度方面都有局限性。每個傳感器都有獨特的視野、提供其測量世界視圖的范圍以及相應的未測量區(qū)域。Bi3D Freespace 提供了一種多樣化的方法從自由空間識別障礙物。用于此功能的立體相機輸入相對于激光雷達是多樣化的并且具有比大多數(shù)激光雷達單元更好的垂直視野能夠感知激光雷達可能遺漏的低矮障礙物。Bi3D Freespace 提供了對激光雷達占用掃描的穩(wěn)健、基于視覺的補充??焖偃腴TIsaac ROS Bi3D FreespaceIsaac ROS NITROS 加速此包由 NVIDIA Isaac Transport for ROS (NITROS) 提供支持NITROS 利用類型適配和協(xié)商來優(yōu)化消息格式并顯著加速參與節(jié)點之間的通信。包isaac_ros_bi3d_freespaceQuickstart快速入門嘗試更多示例API支持的平臺此包設計并測試為與在以下平臺上運行的 ROS 2 Humble 兼容平臺硬件軟件備注JetsonJetson OrinJetPack 6.1 和 6.2為獲得最佳性能請確保正確配置電源設置。Jetson Orin Nano 4GB 可能沒有足夠內(nèi)存運行許多 Isaac ROS 包不推薦使用。x86_64Ampere或更高 NVIDIA GPU 架構(gòu)8 GB 顯存或更高Ubuntu 22.04CUDA 12.6注意不支持 Humble 以外的 ROS 2 版本。此包依賴自 Humble 版本開始引入的特定 ROS 2 實現(xiàn)特性。Docker為簡化開發(fā)我們強烈建議按照以下步驟利用 Isaac ROS Dev Docker 鏡像。這將簡化 Jetson 和 x86_64 平臺上依賴項正確版本的開發(fā)環(huán)境設置。注意所有 Isaac ROS 快速入門、教程和示例都設計為以 Isaac ROS Docker 鏡像為前提。自定義開發(fā)環(huán)境要自定義開發(fā)環(huán)境請參閱本指南。更新日志日期變更2024-12-10兼容 JetPack 6.12024-09-26ZED 兼容性更新2024-05-30兼容 JetPack 6.02023-10-18Isaac ROS 2.0.0 更新2023-05-25性能改進2023-04-05初始版本頁面 28Isaac ROS Mission Client — 任務客戶端原文https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_mission_client/index.html網(wǎng)絡研討會通過觀看我們的點播網(wǎng)絡研討會了解更多關于任務的信息使用 NVIDIA Isaac Dispatch 和 Client 構(gòu)建互聯(lián)機器人。概述Isaac ROS Mission Client 提供了 Mission Client 的 ROS 2 包用于與機器人車隊管理服務通信。Mission Client 從車隊管理服務接收任務和動作并更新其進度、狀態(tài)和錯誤。Mission Client 使用 Nav2 執(zhí)行導航動作并可以與其他 ROS 動作集成。與 Mission Client 的通信基于 VDA5050 協(xié)議并使用 MQTT 基礎作為行業(yè)標準這是一種用于通過互聯(lián)網(wǎng)連接設備的高效、可擴展協(xié)議。Mission Client 隨附匹配的 Mission Dispatch可在此處獲取或者可以使用 VDA5050 over MQTT 與其他車隊管理系統(tǒng)集成。包isaac_ros_mission_client概述快速入門APIisaac_ros_scene_recorder使用說明快速入門Isaac Sim 的快速入門可在此處查看。支持的平臺此包設計并測試為與在 Jetson 或 x86_64 系統(tǒng)上運行的 ROS 2 Humble 兼容。Mission Client 不需要 GPU。更新日志日期變更2024-12-10添加動作以支持物體拾取和放置2024-09-26Isaac ROS 3.1 更新2024-05-30兼容 JetPack 6.02023-10-18錯誤修復、任務取消、初始位姿2023-04-05兼容 JetPack 5.1.12022-10-19初始版本頁面 29Stereo Depth — 立體深度概念原文https://nvidia-isaac-ros.github.io/concepts/stereo_depth/index.html概述與人眼類似立體視覺通過測量同一視覺顯著特征在兩個圖像之間的像素位移即視差來工作。通過測量的視差和已知的基線長度兩個圖像傳感器之間的距離可以估計到該視覺顯著特征的距離或深度。立體相機有兩個剛性連接在一起的單目圖像傳感器大致朝向同一方向。它們由某個已知的基線距離分隔通常在厘米量級。圖像對必須通過使用預先校準的立體校正參數(shù)投影到同一極線平面上進行校正。一個圖像與另一個圖像中相同特征之間的像素視差可以直接使用圖像傳感器的基線和焦距關聯(lián)到深度。并非總能確定每個像素的視差因為這取決于匹配過程。例如如果立體相機面對一面無特征的純色墻則沒有視覺顯著的特征或角點對比度的急劇變化可以在圖像之間匹配。為了解決這個問題一些立體相機將紅外光圖案投射到場景中兩個圖像傳感器始終可以看到但人眼看不到。通過測量場景中所有匹配特征對在兩幅圖像之間的視差可以生成視差圖像其中每個像素代表視差或者在無法計算視差時為NaN。使用基線和焦距該視差圖像隨后可用于生成更熟悉的深度圖像其中每個像素代表以米為單位的深度或生成點云。立體深度方法FoundationStereo一種預訓練的基于 Transformer 的基礎模型利用大規(guī)模訓練和深度特定先驗在多樣化環(huán)境中實現(xiàn)高質(zhì)量的深度估計。Fast-FoundationStereoFoundationStereo 的速度優(yōu)化變體通過知識蒸餾、神經(jīng)架構(gòu)搜索和結(jié)構(gòu)化剪枝實現(xiàn)實時零樣本立體匹配。它使用與 FoundationStereo 相同的 Isaac ROS 管道isaac_ros_foundationstereo可直接替換。ESS高效半監(jiān)督基于深度學習的預訓練模型可以更智能地處理從上下文推斷的平滑梯度和邊緣。SGM半全局匹配一種用于計算立體視差的普遍分析算法。SGM 難以處理平滑或規(guī)則表面并可能遭受過度噪聲。頁面 30Isaac ROS ESS — 高效半監(jiān)督立體視差估計原文https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_dnn_stereo_depth/isaac_ros_ess/index.html概述ESS 代表 Efficient Semi-Supervised stereo disparity高效半監(jiān)督立體視差由 NVIDIA 開發(fā)。ESS DNN 用于從立體相機圖像對預測每個像素的視差。該網(wǎng)絡相比使用極線幾何計算視差的經(jīng)典 CV 方法有所改進因為 DNN 可以學習在極線幾何特征匹配失敗的情況下預測視差。半監(jiān)督學習和立體視差匹配使 ESS DNN 在訓練數(shù)據(jù)集未見過環(huán)境以及有遮擋物體的情況下具有魯棒性。該 DNN 針對彩色RGB全局快門立體相機圖像進行了優(yōu)化和評估對于用于分析計算機視覺方法中的立體視差的單色立體圖像精度可能會有所不同。它是一個相對輕量的模型以接近實時的速度運行。如圖所示ESS 節(jié)點用于節(jié)點圖中從輸入的左右立體圖像對提供視差預測。校正和調(diào)整大小節(jié)點將左右?guī)A處理到適當?shù)姆直媛?。保持圖像的寬高比以避免降低深度輸出質(zhì)量。DNN 編碼、DNN 推理和 DNN 解碼的圖包含在 ESS 節(jié)點中。推理使用 TensorRT 執(zhí)行因為 ESS DNN 模型設計有 TensorRT 支持的優(yōu)化。預測的視差值代表場景中一個點在立體圖像對中從一個圖像移動到另一個圖像的距離即雙目圖像對。視差與深度成反比即disparity focalLength × baseline / depth。給定生成立體圖像對的相機的焦距和基線isaac_ros_ess包預測的視差圖可用于計算深度并生成點云??焖偃腴T下載快速入門資源從 NGC 下載快速入門數(shù)據(jù)確保安裝了所需的庫。sudoapt-getinstall-ycurljqtar然后運行以下命令從 NGC 下載資源NGC_ORGnvidiaNGC_TEAMisaacPACKAGE_NAMEisaac_ros_essNGC_RESOURCEisaac_ros_ess_assetsNGC_FILENAMEquickstart.tar.gzMAJOR_VERSION4MINOR_VERSION5VERSION_REQ_URLhttps://api.ngc.nvidia.com/v2/resources/$NGC_ORG/$NGC_TEAM/$NGC_RESOURCE/versionsAVAILABLE_VERSIONS$(curl-s\-HAccept: application/json$VERSION_REQ_URL)LATEST_VERSION_ID$(echo$AVAILABLE_VERSIONS|jq-r .recipeVersions[]|.versionId as\$v|\$v|select(test(\^\\\\d\\\\.\\\\d\\\\.\\\\d$\))|split(\.\)|{major: .[0]|tonumber, minor: .[1]|tonumber, patch: .[2]|tonumber}|select(.major$MAJOR_VERSIONand .minor$MINOR_VERSION)|\$v | sort -V | tail -n 1 ) if [ -z $LATEST_VERSION_ID ]; then echo No corresponding version foundforIsaac ROS$MAJOR_VERSION.$MINOR_VERSION echo Found versions: echo$AVAILABLE_VERSIONS| jq -r .recipeVersions[].versionId else mkdir -p${ISAAC_ROS_WS}/isaac_ros_assets \ FILE_REQ_URLhttps://api.ngc.nvidia.com/v2/resources/$NGC_ORG/$NGC_TEAM/$NGC_RESOURCE/\versions/$LATEST_VERSION_ID/files/$NGC_FILENAME \ curl -LO --request GET ${FILE_REQ_URL}\tar-xf${NGC_FILENAME}-C${ISAAC_ROS_WS}/isaac_ros_assets\rm${NGC_FILENAME}fi構(gòu)建isaac_ros_ess激活 Isaac ROS 環(huán)境isaac-ros activate安裝預構(gòu)建的 Debian 包sudoapt-getupdatesudoapt-getinstall-yros-jazzy-isaac-ros-ess\sudoapt-getinstall-yros-jazzy-isaac-ros-ess-models-install下載并安裝預訓練的 ESS 模型文件ros2 run isaac_ros_ess_models_install install_ess_models.sh--eula注意x86_64 限制ESS 插件僅在 sm80 及以上的 GPU 上運行。這限制了 x86_64 上的 GPU 設備為 compute_80 及以上的設備。有關 CUDA 計算能力詳細信息請參閱 cuda-gpus。運行啟動文件在 Isaac ROS 環(huán)境內(nèi)安裝以下依賴sudoapt-getupdatesudoapt-getinstall-yros-jazzy-isaac-ros-examples運行以下啟動文件以使用快速入門 rosbag 啟動演示以 0.0 閾值運行 ESS完全密集輸出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_trt10.13/ess.engine\ess_plugin_file_path:${ISAAC_ROS_WS:?}/isaac_ros_assets/models/dnn_stereo_disparity/dnn_stereo_disparity_v4.1.0_onnx_trt10.13/plugins/$(uname-m)/ess_plugins.so\threshold:0.0打開第二個終端并附加到容器isaac-ros activate在第二個終端中播放快速入門資源中下載的 ESS 示例 rosbagros2 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頁面 31Tutorial for NITROS Bridge with Isaac Sim — NITROS Bridge 教程原文https://nvidia-isaac-ros.github.io/concepts/nitros_bridge/tutorial_isaac_sim.html概述本教程將指導您如何使用isaac_ros_nitros_bridge在 GPU 上移動圖像同時避免從 Isaac Sim 進行 CPU 內(nèi)存拷貝。教程步驟在新工作空間下克隆isaac_ros_common倉庫mkdir-p~/isaac_sim_workspaces\cd~/isaac_sim_workspaces\gitclone-brelease-4.6 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git isaac_ros_common按照 Isaac ROS Isaac Sim 設置指南中的步驟在 Isaac Sim 工作空間下安裝并啟動 Isaac Sim。按Play開始從 Isaac Sim 發(fā)布數(shù)據(jù)。按照isaac_ros_nitros_bridge_ros2快速入門中的「設置開發(fā)環(huán)境」部分第 3-4 步和「從源碼構(gòu)建」部分完成操作。在容器內(nèi)更改ptrace范圍以能夠運行 NITROS Bridgeecho0|sudotee/proc/sys/kernel/yama/ptrace_scope在容器內(nèi)編輯isaac_ros_nitros_bridge_image_converter.launch.pyROS 2 啟動文件將ros2_input_bridge_image重新映射到 Isaac Sim 的 NITROS Bridge 主題名稱例如/front_stereo_camera/left/image_rect_color/nitros_bridge。然后運行以下命令啟動 NITROS Bridgecd/workspaces/isaac_ros-dev\sourceinstall/setup.bash\ros2 launch isaac_ros_nitros_bridge_ros2 isaac_ros_nitros_bridge_image_converter.launch.py pub_image_name:nitros_pub sub_image_name:nitros_sub轉(zhuǎn)換后的 NITROS 圖像將在nitros_pub主題下可用。