• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 3 月 19 日下午 2 點,鎖定 NVIDIA AI 網絡中文專場。立即注冊觀看
    計算機視覺/視頻分析

    借助 NVIDIA Isaac Sim 在工作站上對攝像頭性能進行基準測試

    ?

    機器人通常配備攝像頭。在設計數字孿生仿真時,在模擬環境中準確復制其性能非常重要。

    但是,為了確保模擬平穩運行,必須檢查運行模擬的工作站的性能。在這篇博客文章中,我們將探討在 NVIDIA Isaac Sim 上的工作站上設置和運行攝像頭基準測試的步驟。

    在開始之前,我們將探索 Isaac Sim 如何添加攝像頭,以及如何導出 ROS 2 的輸出。

    NVIDIA Isaac Sim 可以模擬多種類型的傳感器,從激光雷達、超聲波、通用范圍傳感器、接觸傳感器以及 IMU 力和接近傳感器等距離傳感器開始。

    攝像頭傳感器是 Isaac Sim 中最先進的仿真技術,您可以使用用戶界面快速添加此傳感器。

    A screenshot example of adding a camera to Isaac Sim
    圖 1.在 NVIDIA Isaac Sim 上添加攝像頭、選擇配置和輸出的示例

    此外,您還可以使用 Python 腳本從 Python 對象加載相機或多個攝像頭,如下例所示。

    camera = Camera(
        prim_path="/World/camera",
        position=np.array([0.0, 0.0, 25.0]),
        frequency=20,
        resolution=(256, 256),
        orientation=rot_utils.euler_angles_to_quats(np.array([0, 90, 0]), degrees=True),
    )

    有關 NVIDIA Isaac Sim 攝像頭的更多詳細信息,請查閱我們的 文檔.

    設置演示

    要使用此基準測試,您需要配備 NVIDIA RTX GPU 和最新版 NVIDIA Isaac Sim 2023.1.0 的工作站。此演示僅兼容運行 Ubuntu 20.04 或 Ubuntu 22.04 的基于 Linux 的計算機。

    此腳本不需要用戶界面即可運行 Isaac Sim.它可以通過終端完成。該腳本將啟動模擬器,加載所有必要的攝像頭,并在終端中顯示輸出。

    安裝和運行

    克隆演示 isaac_camera_benchmark:

    git clone https://github.com/nvidia_iot/isaac_camera_benchmark.git
    cd isaac_camera_benchmark

    此資源庫包含在屏幕上運行演示的所有腳本和文件,但在運行腳本之前,請記得下載 NVIDIA Isaac Sim.

    如需指導,請參考NVIDIA Omniverse.

    A screenshot of an NVIDIA Omniverse library page.
    圖 2. NVIDIA Omniverse 庫頁面和 NVIDIA Isaac Sim 下載按鈕

    在此頁面中,選擇 NVIDIA Isaac Sim 2023.1.0 并下載。然后前往終端并運行腳本:

    ./run_camera_benchmark.sh

    此腳本將自動啟動最新的 NVIDIA Isaac Sim 并初始化模擬。

    在此模擬中,三個攝像頭圍繞小型虛擬倉庫內的三個不同位置順時針方向移動。同時,腳本會在終端上顯示當前幀率和平均 ROS 2 頻率輸出。

    A screenshot of an example camera output from Isaac Sim.
    圖 3.終端攝像頭輸出示例

    FPS 輸出可能會因工作站配置而異,并且可能與硬件設置不同。

    要存儲來自此基準測試的 ROS2 輸出,請運行:

    ./ros2record.sh
    A screenshot of the ros2record terminal script.
    圖 4.腳本記錄所有已配置攝像頭的輸出

    所有 ros2bag 文件均位于該文件夾中isaac_camera_benchmark/rosbag.

    下一章節將介紹腳本的內部工作原理,以及如何更改其配置以測試多個攝像頭或使用不同的分辨率。

    更改默認配置

    主要有三個文件,您可以通過編寫配置文件來設計配置。

    第一個腳本是run_camera_benchmark.sh加載最新版本的 Isaac Sim,傳遞包含所有配置的腳本,并運行此演示。

    此資源庫的主要腳本是camera_benchmark.py腳本,該腳本僅使用 ROS2_bridge 擴展程序運行 Isaac Sim,默認情況下,它會加載warehouse_with_forklifts.usd其中包含一個帶有兩臺叉車的小型虛擬倉庫。模擬將在光線追蹤照明中運行。

    加載環境后,添加在名為 config.json 或加載三個分辨率為 640 × 480 的攝像頭。

    此腳本會自動在環境中添加相機對象,還可以構建一個圖形,用于讀取來自 Isaac Sim 的輸出、修復分辨率并在 ROS 2 輸出上發布。

    A screenshot of the generated graph from script.
    圖 5.生成的圖表來自 camera_benchmark.py

    同時,camera_benchmark.py 加載名為 benchmark_camera_node 的 ROS 2 節點,該節點從 ROS 2 攝像頭輸出連接,并測量主題頻率平均值。

    此腳本還可從 Isaac Sim 讀取相機 fps,并在終端上發布輸出。

    要更改默認配置,您只需創建一個名為 config.json 的文件。此文件必須包含攝像頭的配置。您可以設置以下不同選項:

    • 翻譯:相機應該位于環境中的特定位置,這個位置由一個包含三個坐標的向量來表示,例如 [0.0, 0.0, 0.0]。
    • 分辨率:攝像頭輸出分辨率是攝像頭分辨率為 640 × 480 的整數向量。建議分辨率包括:
      • 640*480
      • 1024*768
      • 1920 × 1080 (FHD)
      • 2560*1440 (2K)
      • 3840 × 2160 (4K)

    以下是一個新的config.json.

    {
       "camera": [
           {"translate": [0.0, 0.0, 3.0], "resolution": [640,480]}
           {"translate": [-1.0, 0.0, 6.0], "resolution": [1024,768]}
       ]
    }

    此輸出會生成如下圖所示的新基準測試。

    A screenshot showing the camera output from Isaac Sim.
    圖 6.輸出攝像頭和終端 FP ROS 主題以及 Isaac Sim fps 示例

    您可以向 config.json 文件添加配置,以指定要在 Isaac Sim 上啟動的模擬類型。

    • 渲染器:選擇渲染類型。默認值為光線追蹤光照
    • 無外設:要在沒有用戶界面的情況下運行 Isaac Sim,您可以使用正確的命令行參數。

    有關配置文件的另一個示例,請參閱以下內容。

    {
       "simulation": {"renderer": "RayTracedLighting", "headless": true},
       "camera": [
           {"translate": [0.0, 0.0, 3.0], "resolution": [640,480]},
           {"translate": [-1.0, 0.0, 6.0], "resolution": [1024,768]}
       ]
    }

    結束語

    此腳本允許您監控工作站上的攝像頭輸出和 ROS 主題的性能。它還提供了如何使用 ROS 2 創建新的 Isaac Sim 腳本的示例。

    ?

    +1

    標簽

    人人超碰97caoporen国产