機(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è)步驟。
在開始之前,我們先來了解一下 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ī)器兼容。
該腳本無需用戶界面即可運(yùn)行 Isaac Sim,可以通過終端完成。該腳本將啟動(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 上的說明進(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í)針方向移動(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)部工作原理,以及如何通過更改其配置來測(cè)試多個(gè)攝像頭或使用不同的分辨率。
3
更改默認(rèn)配置
共有三個(gè)主要文件,您可以通過編寫一個(gè)配置文件來設(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è)圖形,用于讀取來自 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(無頭):要在沒有用戶界面的情況下運(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é)
通過該腳本,您可以在工作站上監(jiān)控?cái)z像頭的輸出結(jié)果和 ROS 主題的性能。它還提供了一個(gè)如何使用 ROS 2 創(chuàng)建新 Isaac Sim 腳本的示例。
審核編輯:劉清
-
機(jī)器人
+關(guān)注
關(guān)注
213文章
31073瀏覽量
222162 -
NVIDIA
+關(guān)注
關(guān)注
14文章
5592瀏覽量
109711 -
攝像頭
+關(guān)注
關(guān)注
61文章
5091瀏覽量
103108 -
接近傳感器
+關(guān)注
關(guān)注
5文章
201瀏覽量
25295 -
IMU
+關(guān)注
關(guān)注
6文章
416瀏覽量
47869
原文標(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)先 登錄
遠(yuǎn)程圖形工作站-----設(shè)計(jì)方案
如何利用攝像頭將處于攝像頭正下方的物體進(jìn)行拍照
利用CreateCaptureWindowA和picturebox 進(jìn)行USB攝像頭采集
請(qǐng)問樹莓派官方的攝像頭能進(jìn)行實(shí)時(shí)監(jiān)控嗎?
應(yīng)用于蘋果、華為手機(jī)攝像頭測(cè)試座
應(yīng)用于蘋果、華為手機(jī)攝像頭測(cè)試座
如何用VideoCapture進(jìn)行USB攝像頭的視頻捕捉呢
工作站,工作站原理是什么?
DXOMARK擴(kuò)展其手機(jī)后置攝像頭的測(cè)試基準(zhǔn)
攝像頭如何進(jìn)行氣密性防水檢測(cè)
基于Omniverse的NVIDIA Isaac Sim現(xiàn)已發(fā)布公測(cè)版
NVIDIA Isaac Sim 2022.1版本的亮點(diǎn)及功能
NVIDIA AI機(jī)器人開發(fā)— NVIDIA Isaac Sim入門
使用 NVIDIA Isaac 仿真并定位 Husky 機(jī)器人
如何利用NVIDIA Isaac Sim對(duì)工作站的攝像頭性能進(jìn)行基準(zhǔn)測(cè)試呢?
評(píng)論