NVIDIA GPU ROS GEMs 是一個(gè) ROS 軟件包,用于優(yōu)化基于人工智能的機(jī)器人應(yīng)用程序,使其在 NVIDIA ISAAC 和 Jetson 平臺(tái)上運(yùn)行。人們越來越有興趣將這些軟件包與 Nav2 項(xiàng)目集成,以幫助自主機(jī)器人在動(dòng)態(tài)環(huán)境中成功導(dǎo)航。
這項(xiàng)工作完全是在仿真中完成的,可以作為將機(jī)器人能力從仿真轉(zhuǎn)移到現(xiàn)實(shí)世界的起點(diǎn)( Sim2Real )。
在這篇文章中,我將關(guān)注一個(gè)現(xiàn)實(shí)世界中的問題,即機(jī)器人因與倉庫中的叉車叉齒發(fā)生碰撞而受損。叉車是一種用于短距離搬運(yùn)重物的工業(yè)卡車。它有一個(gè)被稱為尖頭(或叉子)的延伸部分,可以在物體下方滑動(dòng)并提升物體。
主要使用的機(jī)器人傳感器( lidar )可以檢測叉車的車身,但不能檢測靠近地面的叉齒。在這種情況下,還需要其他傳感器來檢測這些彈齒。在本項(xiàng)目中,您將在模擬中的機(jī)器人上使用兩個(gè) RGB 攝像頭。來自這些相機(jī)的圖像用于使用 Isaac ROS stereo GEM 。
根據(jù)視差,立體寶石生成一個(gè)點(diǎn)云,其中包含有關(guān)相機(jī)視野中的所有對(duì)象在環(huán)境中的位置的信息。該信息用于更新導(dǎo)航節(jié)點(diǎn),以便在可能發(fā)生碰撞時(shí)更改機(jī)器人的路徑。
圖 3 顯示了該項(xiàng)目的基本工作流程。

圖 3 工作流程圖
NVIDIA ISAAC 是的設(shè)置
在 NVIDIA ISAAC Sim 卡中使用倉庫環(huán)境,其中包括 Carter robot 和叉車。按照 ROS2 導(dǎo)航示例 生成占用地圖,供 Nav2 堆棧使用,以避免貨架等靜態(tài)障礙物。創(chuàng)建占用地圖后,動(dòng)態(tài)或移動(dòng)障礙物(包括叉車和手推車)將添加到環(huán)境中。這是為了模擬現(xiàn)實(shí)世界,在沒有機(jī)器人知識(shí)的情況下,物體在環(huán)境中發(fā)生變化。
重要的是要注意卡特機(jī)器人的左、右立體攝像機(jī)在NVIDIA ISAAC SIM 之間的偏移,以 NVIDIA ISAAC ROS 立體聲寶石來正確地產(chǎn)生視差。在開始模擬之前,確保 NVIDIA ISAAC Sim 卡中的 ROS2 bridge 已啟用,以便可以在 NVIDIA ISAAC Sim 卡之外傳輸 ROS2 消息。
NVIDIA ISAAC ROS 立體聲寶石和導(dǎo)航 2
Nav2 堆棧使用 全球和本地成本圖 引導(dǎo)機(jī)器人避開障礙物。本地成本圖根據(jù)環(huán)境中新的移動(dòng)障礙物進(jìn)行更新,并可以將激光掃描和點(diǎn)云作為機(jī)器人傳感器的輸入。
由于激光雷達(dá)的激光掃描無法在真實(shí)場景中拾取叉齒,所以可以通過使用立體圖像中的點(diǎn)云來解決這個(gè)問題,這些點(diǎn)云會(huì)被傳遞到 Nav2 。這些點(diǎn)云是使用 NVIDIA ISAAC ROS 立體聲寶石產(chǎn)生的。

圖 4 當(dāng)機(jī)器人在叉車前面時(shí),使用NVIDIA ISAAC ROS 立體聲寶石產(chǎn)生點(diǎn)云
在圖 4 的右側(cè),彈齒下方的淺藍(lán)色區(qū)域顯示, Nav2 本地成本地圖已經(jīng)更新,以表示那里的障礙物,機(jī)器人現(xiàn)在可以避開。 NVIDIA ISAAC Sim 卡的圖像平均速率為 20 FPS ,而 stereo GEM 的點(diǎn)云圖像平均速率為 16 FPS 。
stereo GEM 生成一個(gè)視差圖像,然后為機(jī)器人相機(jī)的左右圖像中看到的所有對(duì)象生成一個(gè)點(diǎn)云。使用 ISAAC ROS 分割 GEM ,可以過濾此差異以生成僅包含屬于感興趣對(duì)象(例如叉車叉齒)的點(diǎn)的點(diǎn)云。
下一節(jié)將更詳細(xì)地解釋這種過濾。
使用NVIDIA ISAAC ROS 分割 GEM 的視差濾波
下面介紹了如何將基于合成生成數(shù)據(jù)訓(xùn)練的深度學(xué)習(xí)模型與 NVIDIA ISAAC ROS 推理機(jī)結(jié)合使用。您可以實(shí)現(xiàn)同樣的目標(biāo):使用 GEMs 和 Nav2 堆棧,幫助機(jī)器人在模擬中避免叉車叉齒。
但是,您沒有為機(jī)器人相機(jī)視野中的所有對(duì)象生成點(diǎn)云,而是只為叉車尖頭過濾并生成聚焦點(diǎn)云。

圖 5 使用 NVIDIA ISAAC ROS 分割和立體寶石執(zhí)行視差過濾的工作流程
我使用了一個(gè)在叉車叉齒圖像上訓(xùn)練的分割模型。 NVIDIA ISAAC ROS 分割 GEM 在模擬中從機(jī)器人獲取 RGB 圖像,并使用給定模型生成相應(yīng)的分割圖像。
任何模型都可以與此管道一起使用,以根據(jù)用例過濾特定對(duì)象。只需在感興趣的數(shù)據(jù)上生成( Replicator Composer )和訓(xùn)練( TAO )即可!

圖 6 訓(xùn)練模型根據(jù)機(jī)器人攝像頭的圖像以 39 FPS 的速度生成彩色分割圖像。 ( top left ) 機(jī)器人的左攝像頭視圖。 ( top right ) 分割掩模; ( bottom ) 叉車齒的過濾點(diǎn)云。
原始分割圖像中的每個(gè)像素代表圖像中該位置的對(duì)象的類別標(biāo)簽。例如,知道感興趣的標(biāo)簽,如果 2 代表叉齒,則在立體寶石生成的相應(yīng)視差圖像中將非感興趣點(diǎn)設(shè)置為 invalid 。結(jié)果生成的點(diǎn)云不包括這些點(diǎn)。這有助于減少點(diǎn)云中的噪波。

圖 7 視差濾波后生成的點(diǎn)云
與圖 4 中的點(diǎn)云不同,它只包含屬于叉車叉齒的點(diǎn)。
ROS 域 ID
隨著NVIDIA ISAAC ROS GEMS 在容器內(nèi)運(yùn)行, NVIDIA ISAAC SIM 在主機(jī)上運(yùn)行,必須確保 ROS 主題可以在主機(jī)和容器之間傳遞。
為此,請將所有進(jìn)程的 ROS 域 ID 設(shè)置為相同的編號(hào)。使用相同域 ID 的所有 ROS2 節(jié)點(diǎn)都可以通信;那些使用不同域 ID 的人不能。有關(guān)更多信息,請參閱 The ROS_DOMAIN_ID 。
筆記
本項(xiàng)目中介紹的工作流程避免了激光雷達(dá)和攝像頭可以檢測到的障礙物。對(duì)于太小或被遮擋的障礙物,探索其他傳感器。
該方法對(duì)視差計(jì)算和由此產(chǎn)生的點(diǎn)云質(zhì)量非常敏感。由于計(jì)算視差是一項(xiàng)具有挑戰(zhàn)性的任務(wù),因此可能會(huì)得到噪聲點(diǎn)云,從而導(dǎo)致 Nav2 錯(cuò)誤地更新成本圖。
視差濾波取決于分割模型的性能。無法生成精確分割遮罩的模型會(huì)導(dǎo)致視差和點(diǎn)云過濾效果不佳。
關(guān)于作者
Asawaree Bhide 是 NVIDIA 的 AI 嵌入式工程實(shí)習(xí)生,致力于優(yōu)化和部署邊緣設(shè)備上的深度學(xué)習(xí)模型。她目前正在喬治亞理工學(xué)院攻讀計(jì)算機(jī)科學(xué)碩士學(xué)位,她對(duì)解決由具體代理自主導(dǎo)航的復(fù)雜感知任務(wù)感興趣。Tomasz Lewicki 是 NVIDIA 的嵌入式工程實(shí)習(xí)生。他擁有圣何塞州立大學(xué)計(jì)算機(jī)工程碩士學(xué)位,華沙工業(yè)大學(xué)華沙工業(yè)大學(xué)機(jī)器人工程學(xué)學(xué)士學(xué)位。他的興趣集中在計(jì)算機(jī)視覺和機(jī)器人應(yīng)用的深度學(xué)習(xí)上。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5202文章
20516瀏覽量
335263 -
NVIDIA
+關(guān)注
關(guān)注
14文章
5644瀏覽量
109920 -
AI
+關(guān)注
關(guān)注
91文章
40201瀏覽量
301838
發(fā)布評(píng)論請先 登錄
ROS2 SLAM建圖與導(dǎo)航實(shí)戰(zhàn)--基于米爾RK3576開發(fā)板
EtherCAT主站協(xié)議棧EC-Master在ROS(機(jī)器人操作系統(tǒng))中的應(yīng)用
堆和棧的區(qū)別
堆棧的定義,堆棧的使用方法
僅使用智能手機(jī)在NVIDIA Isaac Sim中重建場景
空閑線程堆棧出現(xiàn)內(nèi)存溢出的問題,怎么解決?
NVIDIA Isaac Lab多GPU多節(jié)點(diǎn)訓(xùn)練指南
NVIDIA Jetson + Isaac SDK 人形機(jī)器人方案全面解析
NVIDIA Jetson + Isaac SDK 在人形機(jī)器人領(lǐng)域的方案詳解
NVIDIA Isaac Lab可用環(huán)境與強(qiáng)化學(xué)習(xí)腳本使用指南
NVIDIA Isaac Sim和Isaac Lab現(xiàn)已推出早期開發(fā)者預(yù)覽版
NVIDIA Isaac Sim 4.5.0與lsaac Lab 2.0的安裝教程
將Nav2堆棧與NVIDIA ISAAC ROS GEMs集成
評(píng)論