機(jī)器人通常都會(huì)配備攝像頭,設(shè)計(jì)數(shù)字孿生仿真時(shí),在模擬環(huán)境中準(zhǔn)確復(fù)制其性能十分重要。
為了確保仿真能夠順利進(jìn)行,對(duì)運(yùn)行仿真的工作站進(jìn)行性能檢查至關(guān)重要。本文將介紹在您的工作站上使用NVIDIA Isaac Sim設(shè)置和運(yùn)行攝像頭基準(zhǔn)測(cè)試的各個(gè)步驟。
在開始之前,我們先來(lái)了解一下 Isaac Sim 是如何設(shè)計(jì)添加攝像頭,以及如何導(dǎo)出用于 ROS 2 的輸出結(jié)果。
NVIDIA Isaac Sim 可以仿真多種類型的傳感器,包括激光雷達(dá)、超聲波、通用測(cè)距傳感器、接觸傳感器、IMU 和接近傳感器等測(cè)距傳感器。
攝像頭傳感器是 Isaac Sim 中先進(jìn)的仿真?zhèn)鞲衅鳎稍谟脩艚缑嫔峡焖偬砑釉搨鞲衅鳌?/p>
▲ 圖 1 在 NVIDIA Isaac Sim 上
添加攝像頭并選擇配置和輸出的示例
此外,如下面的示例所示,您還可以使用 Python 腳本加載攝像頭或一個(gè) Python 對(duì)象中的多個(gè)攝像頭:
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), )
1
設(shè)置 Demo
您需要一臺(tái)配備NVIDIA RTX GPU并安裝了新版本 NVIDIA Isaac Sim 2023.1.0 的工作站才能運(yùn)行此基準(zhǔn)測(cè)試。本 demo 僅與運(yùn)行 Ubuntu 20.04 或 Ubuntu 22.04 的 Linux 機(jī)器兼容。
該腳本無(wú)需用戶界面即可運(yùn)行 Isaac Sim,可以通過(guò)終端完成。該腳本將啟動(dòng)模擬器、加載所有需要的攝像頭,并在終端中顯示輸出結(jié)果。
2
安裝和運(yùn)行
克隆 isaac_camera_benchmark demo:
git clone https://github.com/nvidia_iot/isaac_camera_benchmark.git cd isaac_camera_benchmark
該資源庫(kù)包含在您的屏幕上運(yùn)行 demo 的所有腳本和文件,但在運(yùn)行腳本之前,請(qǐng)務(wù)必下載 NVIDIA Isaac Sim。
請(qǐng)按照NVIDIA Omniverse 上的說(shuō)明進(jìn)行操作。
▲ 圖 2 NVIDIA Omniverse、程序庫(kù)頁(yè)面
和 NVIDIA Isaac Sim 下載按鈕
選擇該頁(yè)面上的 NVIDIA Isaac Sim 2023.1.0 并下載。然后進(jìn)入終端并運(yùn)行腳本:
./run_camera_benchmark.sh
該腳本將自動(dòng)啟動(dòng)新版本 NVIDIA Isaac Sim 并將仿真初始化。
在該仿真中,三個(gè)攝像頭圍繞一個(gè)小型虛擬倉(cāng)庫(kù)中的三個(gè)不同位置,以順時(shí)針?lè)较蛞苿?dòng)。同時(shí),腳本會(huì)在終端上顯示當(dāng)前幀率和 ROS 2 平均頻率輸出結(jié)果。
▲ 圖 3 終端上的攝像頭輸出結(jié)果示例
FPS 輸出結(jié)果可能因工作站配置和硬件設(shè)置而發(fā)生變化。
如要保存該基準(zhǔn)測(cè)試的 ROS2 輸出結(jié)果,請(qǐng)運(yùn)行:
./ros2record.sh
▲ 圖 4 記錄所有已配置攝像頭
輸出結(jié)果的腳本
所有 ros2bag 文件都在 isaac_camera_benchmark/rosbag 文件夾中。
下一章將解釋該腳本的內(nèi)部工作原理,以及如何通過(guò)更改其配置來(lái)測(cè)試多個(gè)攝像頭或使用不同的分辨率。
3
更改默認(rèn)配置
共有三個(gè)主要文件,您可以通過(guò)編寫一個(gè)配置文件來(lái)設(shè)計(jì)自己的配置。
第一個(gè)腳本是 run_camera_benchmark.sh,它加載 Isaac Sim 的新版本、傳遞一個(gè)包含所有配置的腳本并運(yùn)行此 demo。
該資源庫(kù)的主要腳本是 camera_benchmark.py,該腳本僅使用 ROS2_bridge 擴(kuò)展運(yùn)行 Isaac Sim,并在默認(rèn)情況下加載 warehouse_with_forklifts.usd 環(huán)境,其中包含一個(gè)帶有兩輛叉車的小型虛擬倉(cāng)庫(kù)。該仿真將在光線追蹤照明下運(yùn)行。
加載環(huán)境后,添加在名為 config.json 的文件中配置的每個(gè)攝像頭,或者加載三個(gè)分辨率為 640 × 480 的攝像頭。
該腳本會(huì)自動(dòng)在環(huán)境中添加一個(gè)攝像頭對(duì)象,同時(shí)構(gòu)建一個(gè)圖形,用于讀取來(lái)自 Isaac Sim 的輸出結(jié)果、修復(fù)分辨率,并發(fā)布于 ROS 2 輸出結(jié)果中。
▲ 圖 5 從 camera_benchmar.py 中生成的圖形
同時(shí),camera_benchmar.py 會(huì)加載一個(gè)名為 benchmark_camera_node 的 ROS 2 節(jié)點(diǎn),該節(jié)點(diǎn)與 ROS 2 攝像頭輸出結(jié)果相連,并測(cè)量主題頻率平均值。
該腳本還從 Isaac Sim 讀取攝像頭幀率,并在終端上發(fā)布輸出結(jié)果。
如要更改默認(rèn)配置,只需新建一個(gè)名為 config.json 的 JSON 文件即可。該文件必須包含攝像頭的配置。您可以設(shè)置不同的選項(xiàng):
平移:攝像頭在環(huán)境中的位置,該變量必須是一個(gè)三坐標(biāo)向量,如 [0.0 0.0 0.0]。
分辨率:攝像頭輸出分辨率是一個(gè)整數(shù)向量,包含攝像頭的分辨率(如 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]} ] }
該輸出結(jié)果將生成下圖中所示的新基準(zhǔn)。
▲ 圖 6 示例:輸出攝像頭以及終端上的
FPs ros 主題和 Isaac Sim fps 示例
您可以在 config.json 文件中添加配置,指定要在 Isaac Sim 上啟動(dòng)的仿真類型。
renderer(渲染器):選擇渲染器類型。默認(rèn)為 RayTracedLighting。
headless(無(wú)頭):要在沒有用戶界面的情況下運(yùn)行 Isaac Sim,可以將此布爾變量改為 True。
另一個(gè)配置文件示例如下。
{ "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]} ] }
4
總結(jié)
通過(guò)該腳本,您可以在工作站上監(jiān)控?cái)z像頭的輸出結(jié)果和 ROS 主題的性能。它還提供了一個(gè)如何使用 ROS 2 創(chuàng)建新 Isaac Sim 腳本的示例。
審核編輯:劉清
-
機(jī)器人
+關(guān)注
關(guān)注
211文章
28379瀏覽量
206912 -
NVIDIA
+關(guān)注
關(guān)注
14文章
4978瀏覽量
102984 -
攝像頭
+關(guān)注
關(guān)注
59文章
4836瀏覽量
95597 -
接近傳感器
+關(guān)注
關(guān)注
5文章
188瀏覽量
24423 -
IMU
+關(guān)注
關(guān)注
6文章
306瀏覽量
45726
原文標(biāo)題:開發(fā)者專區(qū)丨利用 NVIDIA Isaac Sim 對(duì)工作站的攝像頭性能進(jìn)行基準(zhǔn)測(cè)試
文章出處:【微信號(hào):Leadtek,微信公眾號(hào):麗臺(tái)科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論