0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用 NVIDIA Isaac Transport for ROS 提升自定義 ROS 圖形性能

NVIDIA英偉達(dá)企業(yè)解決方案 ? 來源:未知 ? 2023-11-30 19:35 ? 次閱讀

NVIDIA Isaac Transport for ROS(NITROS)是隨 ROS 2 Humble 加入的兩項(xiàng)硬件加速功能——類型適配和類型協(xié)商。

類型適配使 ROS 節(jié)點(diǎn)能夠使用針對(duì)特定硬件加速器優(yōu)化的數(shù)據(jù)格式進(jìn)行工作。經(jīng)過適配的類型用于處理圖形,以消除 CPU 和內(nèi)存加速器之間的內(nèi)存拷貝。

通過類型協(xié)商,處理圖中的不同 ROS 節(jié)點(diǎn)可以公布其支持的類型,ROS 框架也可以選擇數(shù)據(jù)格式,從而實(shí)現(xiàn)理想的性能。

wKgZomVodJWAeXJdAAkJ84lYbsg408.gif

圖 1. NITROS 通過減少 CPU 和

GPU之間的內(nèi)存拷貝,實(shí)現(xiàn)高效加速

當(dāng)兩個(gè)支持 NITROS 的 ROS 節(jié)點(diǎn)在圖中相鄰時(shí),它們可以通過類型協(xié)商發(fā)現(xiàn)對(duì)方,然后使用類型適配共享數(shù)據(jù)。通過消除不必要的內(nèi)存拷貝,類型適配和類型協(xié)商可共同顯著提高基于 ROS 的應(yīng)用中的 AI計(jì)算機(jī)視覺任務(wù)性能。

這不僅減少了 CPU 開銷,還優(yōu)化了底層硬件的性能。圖 1 顯示了使用 NITROS 的高效硬件加速。數(shù)據(jù)可以從 GPU 內(nèi)存中訪問,而不需要頻繁地復(fù)制 CPU。

由于 ROS 框架與不支持協(xié)商的傳統(tǒng)節(jié)點(diǎn)保持兼容,因此可在處理圖中結(jié)合使用基于 NITROS 的 Isaac ROS 節(jié)點(diǎn)和其他 ROS 節(jié)點(diǎn)。支持 NITROS 的節(jié)點(diǎn)在與非 NITROS 節(jié)點(diǎn)通信時(shí),其功能與典型的 ROS 2 節(jié)點(diǎn)相同。大多數(shù) Isaac ROS GEM 都是通過 NITROS 加速的。

請(qǐng)通過NVIDIA NITROS 文檔進(jìn)一步了解關(guān)于 NITROS 和系統(tǒng)假設(shè)的更多信息https://nvidia-isaac-ros.github.io/concepts/nitros/index.html

搭載 NITROS 的 NVIDIA CUDA

NVIDIA CUDA是一種并行計(jì)算編程模型,可大幅提高搭載 GPU 的機(jī)器人系統(tǒng)的運(yùn)行速度。自定義 ROS 2 節(jié)點(diǎn)可通過代管式 NITROS 發(fā)布器和代管式 NITROS 訂閱器,使用搭載 NITROS 的 CUDA。

wKgZomVodJWAKAtyAACvuMpL7mo501.png

圖 2. 搭載 NITROS 的 CUDA 概覽

ROS 節(jié)點(diǎn)中的 CUDA 代碼可以使用代管式 NITROS 發(fā)布器,并與支持 NITROS 的 Isaac ROS 節(jié)點(diǎn)共享 GPU 內(nèi)存中的輸出緩沖區(qū)。這樣就省去了昂貴的 CPU 內(nèi)存拷貝步驟,從而提高了性能。NITROS 還能通過發(fā)布與普通 ROS 2 消息相同的數(shù)據(jù),來保持與非 NITROS 節(jié)點(diǎn)的兼容性。

wKgZomVodJWAYk7KAABS6gN1uac064.png

圖 3. ROS 2 節(jié)點(diǎn)中的 NITROS 發(fā)布器

在訂閱器方面,ROS 節(jié)點(diǎn)中的 CUDA 代碼可以使用代管式 NITROS 訂閱器來接收 GPU 內(nèi)存中的輸入。輸入既可以來自于支持 NITROS 的 Isaac ROS 節(jié)點(diǎn),也可以來自于使用 NITROS 發(fā)布器的其他支持 CUDA 的 ROS 節(jié)點(diǎn)。與代管式 NITROS 發(fā)布器一樣,這也能通過增加 GPU 和 CPU 之間的并行計(jì)算來提高性能。

wKgZomVodJWAEGNfAAAixdRscCw562.png

圖 4.ROS 2 節(jié)點(diǎn)中的 NITROS 訂閱器

為了更好地理解這一點(diǎn),讓我們來看一個(gè)基于 DNN 的點(diǎn)云分割示例圖??偟膩碚f,有三個(gè)主要的組件使用搭載 NITROS 的 CUDA:

  1. 搭載代管式 NITROS 發(fā)布器的編碼器節(jié)點(diǎn):可將 sensor_msgs/PointCloud2 消息轉(zhuǎn)換為 NitrosTensorList

  2. Isaac ROS TensorRT 節(jié)點(diǎn):可執(zhí)行 DNN 推理,接收輸入 NitrosTensorList 并生成輸出 NitrosTensorList

  3. 搭載代管式 NITROS 訂閱器的解碼器節(jié)點(diǎn):可將輸出的 NitrosTensorList 轉(zhuǎn)換為分段的 sensor_msgs/PointCloud2 消息

代管式 NITROS 發(fā)布器和訂閱器提供了一個(gè)可與標(biāo)準(zhǔn)的 rclcpp::Publisher 和 rclcpp::Subscriber API 相媲美的熟悉界面,使與現(xiàn)有 ROS 2 節(jié)點(diǎn)的集成更加直觀。搭載 NITROS 的 CUDA 還能實(shí)現(xiàn)更加模塊化的軟件設(shè)計(jì)。借助代管式 NITROS 發(fā)布器和訂閱器,CUDA 節(jié)點(diǎn)可以在圖中的任何位置與 Isaac ROS 節(jié)點(diǎn)和其他 CUDA 節(jié)點(diǎn)一起使用,從而在每個(gè)節(jié)點(diǎn)上獲得加速計(jì)算的優(yōu)勢(shì)。

再深入一點(diǎn)來看,NITROS 是基于 NVIDIA 圖執(zhí)行框架(GXF)開發(fā)的,它是一個(gè)用于構(gòu)建高性能計(jì)算圖的可擴(kuò)展框架。NITROS 利用 GXF 實(shí)現(xiàn)了高效的 ROS 應(yīng)用圖。通過搭載 NITROS 的 CUDA,開發(fā)者無需了解使其節(jié)點(diǎn)支持 NITROS 的前提條件——GXF 的底層工作原理。GXF 層已被抽象化,用戶只需進(jìn)行簡(jiǎn)單的調(diào)整就能啟用 NITROS,從而像往常一樣輕松、快速地編寫 ROS 2 節(jié)點(diǎn)。

訪問網(wǎng)址進(jìn)一步了解搭載 NITROS 的 CUDA 的核心概念:https://nvidia-isaac-ros.github.io/concepts/nitros/cuda_with_nitros.html#core-concepts

目前,代管式 NITROS 發(fā)布器和訂閱器僅與 Isaac ROS NitrosTensorList 消息類型兼容。請(qǐng)?jiān)L問isaac_ros_nitros_type,查看完整的 NITROS 數(shù)據(jù)類型列表:https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nitros/tree/main/isaac_ros_nitros_type

使用搭載 NITROS 的 CUDA

和 YOLOv8 進(jìn)行對(duì)象檢測(cè)

Isaac ROS 提供了一個(gè)YOLOv8 示例:https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_object_detection/tree/main/isaac_ros_yolov8,展示了如何使用代管式 NITROS 實(shí)用程序和自定義 ROS 解碼器來充分運(yùn)用 NITROS。該示例使用來自 Isaac ROS DNN Inference 的軟件包,通過 YOLOv8 來執(zhí)行 TensorRT 加速的對(duì)象檢測(cè)。代管式 NITROS 發(fā)布器和訂閱器使用 NITROS 類型的消息,目前只與 Isaac ROS NitrosTensorList 消息類型兼容。這種消息類型用于在節(jié)點(diǎn)和 Isaac ROS DNN Inference 節(jié)點(diǎn)之間共享張量。

wKgZomVodJaAeQLEAA93AQWEHPU502.png

圖 5. 使用 Isaac ROS DNN Inference

檢測(cè) YOLOv8 對(duì)象

假設(shè)您想使用由 Isaac ROS DNN Inference 和 CUDA NITROS 加速的自定義對(duì)象檢測(cè)模型,檢測(cè)流程涉及輸入圖像編碼、DNN 推理以及輸出解碼三個(gè)主要步驟。Isaac ROS DNN Inference 實(shí)現(xiàn)了前兩個(gè)步驟。

在解碼步驟中,必須從推理結(jié)果(即張量)中提取相關(guān)信息。對(duì)于像 2D 物體檢測(cè)這樣的任務(wù),相關(guān)信息包括邊界框以及圖像中每個(gè)檢測(cè)到的輸出的類別得分。

下面讓我們來詳細(xì)了解各個(gè)步驟。

第 1 步:編碼

在輸入方面,Isaac ROS 提供了一個(gè)由 NITROS 加速的 DNN 圖像編碼器。它會(huì)對(duì)輸入圖像進(jìn)行預(yù)處理,并將其轉(zhuǎn)換為張量,然后通過 isaac_ros_tensor_list 類型將張量傳遞給 TensorRT 或 Triton 節(jié)點(diǎn)進(jìn)行推理。

您可以為各種預(yù)處理功能(如調(diào)整大小等)指定圖像大小和網(wǎng)絡(luò)期望的輸入大小等參數(shù)。請(qǐng)注意,根據(jù)任務(wù)的不同,您需要使用不同的編碼器。例如,由于網(wǎng)絡(luò)期望的輸入編碼不同,您不能在語言模型中使用這種圖像編碼器。

wKgZomVodJaAVvPgAADREc7WRe0517.png

圖 6. Isaac ROS DNN 圖像編碼器節(jié)點(diǎn)概覽

第 2 步:推理

Isaac ROS 為 DNN 推理提供兩個(gè) ROS 節(jié)點(diǎn)——TensorRT 節(jié)點(diǎn)和 Triton 節(jié)點(diǎn)。YOLOv8 樣本目前使用其中的 TensorRT 節(jié)點(diǎn)。將訓(xùn)練好的模型提供給 TensorRT 節(jié)點(diǎn),它就能執(zhí)行推理并輸出包含檢測(cè)結(jié)果的張量。

輸出的張量列表將傳遞給解碼器節(jié)點(diǎn)。您可以指定網(wǎng)絡(luò)所期望的維度和張量名稱等參數(shù),并且可以使用 Netron 等工具在 ONNX 模型中輕松找到這些信息。

wKgZomVodJaAa-FQAAA1vagN2WE365.png

圖 7. Isaac ROS TensorRT 推理節(jié)點(diǎn)概覽

第 3 步:解碼

從 TensorRT 或 Triton 節(jié)點(diǎn)推理出的輸出張量必須解析為所需的邊界框和類信息。比方說,您把模型的解碼器寫成了 ROS 2 節(jié)點(diǎn)(而且還不支持 NITROS)。

解碼器節(jié)點(diǎn)并不支持 NITROS 類型的信息,而是期望從推理節(jié)點(diǎn)獲得典型的 ROS 2 信息。由于 NITROS 保持了與非 NITROS 節(jié)點(diǎn)的兼容性,因此這種方法仍然有效。

不過在這種情況下,推理節(jié)點(diǎn)(位于 GPU 內(nèi)存中)輸出的 NITROS 類型消息會(huì)被轉(zhuǎn)換成 ROS 2 消息,并被傳送到 CPU 內(nèi)存中供解碼器使用。這將帶來一些開銷,因?yàn)閿?shù)據(jù)現(xiàn)在位于 CPU 內(nèi)存中,導(dǎo)致在與下游 ROS 節(jié)點(diǎn)協(xié)同工作時(shí)需要復(fù)制 CPU 內(nèi)存。

現(xiàn)在,假設(shè)您想升級(jí)解碼器,以便通過 NITROS 與推理節(jié)點(diǎn)(以及其他 NITROS 加速節(jié)點(diǎn))進(jìn)行通信,而不需要承擔(dān) CPU 內(nèi)存復(fù)制的成本。在這種情況下,所有數(shù)據(jù)都會(huì)保留在 GPU 內(nèi)存中。

在解碼器節(jié)點(diǎn)中使用代管式 NITROS 訂閱器就能輕松實(shí)現(xiàn)這一需求。該訂閱器能夠訂閱來自推理節(jié)點(diǎn)的 NITROS 類型輸出消息,并使用 NITROS 視圖獲取包含檢測(cè)輸出的 CUDA 緩沖區(qū)。然后,您就可以對(duì)這些數(shù)據(jù)執(zhí)行解碼邏輯,并通過適當(dāng)?shù)?ROS 消息類型發(fā)布結(jié)果。

YOLOv8 解碼器可設(shè)置 NMS 閾值和置信閾值等參數(shù)以過濾候選檢測(cè)結(jié)果??墒褂靡粋€(gè)簡(jiǎn)單的可視化節(jié)點(diǎn)訂閱產(chǎn)生的 ROS 消息,并在輸入圖像上繪制邊界框。請(qǐng)注意,代管式 NITROS 只能與 CPP ROS 2 節(jié)點(diǎn)集成。

wKgZomVodJaAMNyrAADoOpPuEvY556.png

圖 8. YOLOv8 解碼器節(jié)點(diǎn)概覽

Isaac ROS NITROS 橋接器

如果您的機(jī)器人應(yīng)用目前基于 ROS 1,仍可以使用新發(fā)布的 Isaac ROS NITROS 橋接器來獲得加速計(jì)算的紅利。這對(duì)使用 ROS 2 版本(Humble 之前的版本)的開發(fā)者來說也很有幫助,因?yàn)?ROS 2 版本不提供類型適配和協(xié)商功能。

NITROS 橋接器在 ROS 1 Noetic 和 NITROS 軟件包之間傳輸 1080p 圖像的速度比 ROS 1 橋接器快 2.5 倍,充分凸顯了所實(shí)現(xiàn)的提速效果。

ROS 橋接器會(huì)產(chǎn)生基于 CPU 的內(nèi)存復(fù)制成本,而 Isaac ROS NITROS 橋接器通過將數(shù)據(jù)從 CPU 轉(zhuǎn)移到 GPU 消除了這一成本。這些數(shù)據(jù)可以在 GPU 內(nèi)存中就地使用。

NITROS 橋接器由兩個(gè)轉(zhuǎn)換器節(jié)點(diǎn)組成。一個(gè)用于 ROS(例如 Noetic)一側(cè),另一個(gè)用于 ROS 2(例如 Humble)一側(cè)。在不使用 NITROS 轉(zhuǎn)換器的情況下,使用 ROS 橋接器會(huì)導(dǎo)致圖像從 Noetic 發(fā)送到 Humble,然后再通過 CPU 內(nèi)存中的 ROS 進(jìn)程副本發(fā)送回來,從而增加延遲。這個(gè)問題在發(fā)送大量數(shù)據(jù)(如分割點(diǎn)云)的節(jié)點(diǎn)之間尤為明顯。

wKgZomVodJaAFm_1AABWwSk1FFE841.png

圖 9. 不使用 NITROS 轉(zhuǎn)換器情況下的 ROS 橋接器

NITROS 橋接器的設(shè)計(jì)目標(biāo)是減少跨 ROS 版本的端到端延遲。請(qǐng)看同一個(gè)例子,這次使用的是 NITROS 轉(zhuǎn)換器。Noetic 一側(cè)的轉(zhuǎn)換器(圖 10)將圖像移至 GPU 內(nèi)存,避免了通過橋接器復(fù)制 CPU 內(nèi)存。Humble 側(cè)的轉(zhuǎn)換器(圖 10)將 GPU 內(nèi)存中的圖像轉(zhuǎn)換為 NITROS 圖像類型,該類型與其他 NITROS 加速節(jié)點(diǎn)兼容。

反之亦然——圖像數(shù)據(jù)作為 NITROS 圖像通過兩側(cè)中任何一側(cè)的轉(zhuǎn)換器從 Humble 發(fā)送到位于 Noetic 的 CPU 可訪問內(nèi)存中的圖像。

更多關(guān)于性能提升的信息,請(qǐng)?jiān)L問NITROS 橋接器:https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/scripts/isaac_ros_nitros_bridge.py和 ros1 橋接器的Isaac ROS 基準(zhǔn):https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_benchmark/index.html。請(qǐng)注意,Isaac ROS NITROS 橋接器尚不支持 NVIDIA Jetson 平臺(tái)。

wKgZomVodJaAGVigAABrYrFUbxk913.png

圖 10. NITROS 橋接器概覽

將 ROS 2 節(jié)點(diǎn)與 NITROS 集成的益處

下面總結(jié)了將 ROS 2 節(jié)點(diǎn)與 NITROS 集成的諸多益處:

  • 通過減少 CPU 內(nèi)存拷貝以提高性能。

  • 與 RViz 等其他非 NITROS ROS 節(jié)點(diǎn)兼容。

  • 通過代管式 NITROS 發(fā)布器和訂閱器,可輕松將自定義的 ROS 2 節(jié)點(diǎn)與硬件加速的 Isaac ROS 節(jié)點(diǎn)集成。

  • 使用搭載 NITROS 的 CUDA 進(jìn)行模塊化軟件設(shè)計(jì)

  • 使用 NITROS 橋接器提高基于早期 ROS 版本的應(yīng)用程序的性能。

嘗試使用 Isaac ROS NITROS 和 YOLOv8 對(duì)象檢測(cè)樣本,加速您的 ROS 節(jié)點(diǎn)吧!

訪問NVIDIA Isaac ROS 文檔頁面了解有關(guān)我們硬件加速軟件包的更多信息:https://nvidia-isaac-ros.github.io/index.html

您還可以登陸開發(fā)者論壇,了解更多有關(guān) Isaac ROS 的最新信息:https://forums.developer.nvidia.com/c/agx-autonomous-machines/isaac/isaac-ros/600

GTC 2024 將于 2024 年 3 月 18 至 21 日在美國加州圣何塞會(huì)議中心舉行,線上大會(huì)也將同期開放。點(diǎn)擊“閱讀原文”掃描下方海報(bào)二維碼,立即注冊(cè) GTC 大會(huì)。


原文標(biāo)題:利用 NVIDIA Isaac Transport for ROS 提升自定義 ROS 圖形性能

文章出處:【微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 英偉達(dá)
    +關(guān)注

    關(guān)注

    22

    文章

    3681

    瀏覽量

    90482

原文標(biāo)題:利用 NVIDIA Isaac Transport for ROS 提升自定義 ROS 圖形性能

文章出處:【微信號(hào):NVIDIA-Enterprise,微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    NVIDIA NeMo加速并簡(jiǎn)化自定義模型開發(fā)

    如果企業(yè)希望充分發(fā)揮出 AI 的力量,就需要根據(jù)其行業(yè)需求量身定制的自定義模型。
    的頭像 發(fā)表于 07-26 11:17 ?629次閱讀
    <b class='flag-5'>NVIDIA</b> NeMo加速并簡(jiǎn)化<b class='flag-5'>自定義</b>模型開發(fā)

    NVIDIA AI Foundry 為全球企業(yè)打造自定義 Llama 3.1 生成式 AI 模型

    Foundry 提供從數(shù)據(jù)策管、合成數(shù)據(jù)生成、微調(diào)、檢索、防護(hù)到評(píng)估的全方位生成式 AI 模型服務(wù),以便部署自定義 Llama 3.1 NVIDIA NIM 微服務(wù)和新的 NVIDIA NeMo
    發(fā)表于 07-24 09:39 ?663次閱讀
    <b class='flag-5'>NVIDIA</b> AI Foundry 為全球企業(yè)打造<b class='flag-5'>自定義</b> Llama 3.1 生成式 AI 模型

    HarmonyOS開發(fā)實(shí)例:【自定義Emitter】

    使用[Emitter]實(shí)現(xiàn)事件的訂閱和發(fā)布,使用[自定義彈窗]設(shè)置廣告信息。
    的頭像 發(fā)表于 04-14 11:37 ?928次閱讀
    HarmonyOS開發(fā)實(shí)例:【<b class='flag-5'>自定義</b>Emitter】

    系統(tǒng)鏡像Ubuntu_ROS2中ROS2是什么意思,帶有ROS2開發(fā)環(huán)境嗎?

    請(qǐng)問一下,百度文庫資料里面,下圖所示的系統(tǒng)鏡像Ubuntu_ROS2中ROS2是什么意思,帶有ROS2開發(fā)環(huán)境嗎?與前面4GB版本的鏡像有什么區(qū)別?
    發(fā)表于 03-01 23:06

    ros怎么設(shè)置環(huán)境變量

    設(shè)置ROS環(huán)境變量是使用ROS的重要步驟之一。本文將詳細(xì)介紹如何設(shè)置ROS環(huán)境變量,包括什么是環(huán)境變量、為什么要設(shè)置ROS環(huán)境變量、如何設(shè)置ROS
    的頭像 發(fā)表于 12-28 13:52 ?1769次閱讀

    使用 NVIDIA Isaac 仿真并定位 Husky 機(jī)器人

    如何使用 ROS 2 Husky 官方軟件包將該機(jī)器人導(dǎo)入 NVIDIA Isaac Sim 并創(chuàng)建仿真。 本 Demo 中的 Husky 機(jī)器人配備了 NVIDIA Jetson O
    的頭像 發(fā)表于 12-26 18:05 ?1097次閱讀
    使用 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Isaac</b> 仿真并定位 Husky 機(jī)器人

    ROS通信接口機(jī)制介紹

    每一種通信種定義的接口,各種節(jié)點(diǎn)才能有機(jī)的聯(lián)系到一起。 語言無關(guān) 為了保證每一個(gè)節(jié)點(diǎn)可以使用不同語言編程,ROS將這些接口的設(shè)計(jì)做成了和語言無關(guān)的。 比如這里看到的int32表示32位的整型數(shù),int64表示64位的整型數(shù),bool表示布爾值,還可以
    的頭像 發(fā)表于 12-01 15:03 ?731次閱讀
    <b class='flag-5'>ROS</b>通信接口機(jī)制介紹

    ROS2中自帶例程測(cè)試

    如果你是一個(gè)ROS2的開發(fā)者,可能對(duì)剛才我們使用的ROS2命令比較熟悉,這時(shí)你可能也會(huì)產(chǎn)生一個(gè)問題:我們之前也安裝了ROS2系統(tǒng),那ROS2的原生功能還可以正常運(yùn)行么? 我們?cè)賮碓囈辉?/div>
    的頭像 發(fā)表于 11-28 16:29 ?837次閱讀
    <b class='flag-5'>ROS</b>2中自帶例程測(cè)試

    ros的基本概念是什么

    關(guān)系。 ROS Graph這里翻譯成了ROS網(wǎng)絡(luò),因?yàn)槲矣X得Graph更加抽象,而網(wǎng)絡(luò)的概念更容易幫助理解其內(nèi)涵。 ROS網(wǎng)絡(luò)(ROS Graph)概念簡(jiǎn)介: 節(jié)點(diǎn)(Nodes):一個(gè)
    的頭像 發(fā)表于 11-27 11:21 ?1654次閱讀

    ROS的擴(kuò)展有哪些方法

    ROS的擴(kuò)展 ROS除了本身框架性的東西以外,最大的特色就是能融合很多其他的東西,形成一個(gè)機(jī)器人開發(fā)生態(tài)圈,難怪ROS名為機(jī)器人操作系統(tǒng),使命是powering the world‘s robots
    的頭像 發(fā)表于 11-21 18:12 ?634次閱讀

    ROS核心框架介紹

    ROS核心框架 對(duì)于第一個(gè)問題,我也沒仔細(xì)研究過源碼,核心代碼基本由python和C++組成,運(yùn)用了xmlrpc機(jī)制,每個(gè)運(yùn)行的節(jié)點(diǎn)可以理解成一個(gè)進(jìn)程。進(jìn)程間通訊有些是共享內(nèi)存的方式(比如
    的頭像 發(fā)表于 11-21 18:07 ?886次閱讀
    <b class='flag-5'>ROS</b>核心框架介紹

    Unity與ROS鏈接介紹

    對(duì)于ROS而言,其最常用的就是Topic話題以及Service兩個(gè)了。之前我們?cè)诹私釻nity Robotics Hub時(shí)候就了解到基本的Unity和ROS的通訊,下面我們來詳細(xì)介紹一下Unity
    的頭像 發(fā)表于 11-17 17:22 ?869次閱讀
    Unity與<b class='flag-5'>ROS</b>鏈接介紹

    NVIDIA 加快企業(yè)自定義生成式 AI 模型開發(fā)

    的業(yè)務(wù)數(shù)據(jù)進(jìn)行自定義。 如今,免費(fèi)、開源的大語言模型對(duì)企業(yè)來說就像是一頓“自助餐”。但對(duì)于構(gòu)建自定義生成式 AI 應(yīng)用的開發(fā)者來說,這頓“大餐”可能會(huì)讓他們應(yīng)接不暇,因?yàn)樗麄冃枰獫M足各種不同的項(xiàng)目和業(yè)務(wù)
    的頭像 發(fā)表于 11-16 21:15 ?524次閱讀
    <b class='flag-5'>NVIDIA</b> 加快企業(yè)<b class='flag-5'>自定義</b>生成式 AI 模型開發(fā)

    如何在Matlab中自定義Message

    自定義Message 當(dāng)我們的 message 消息比較復(fù)雜時(shí),通常要用到自定義的 message 消息,MATLAB 2020b以上的版本自帶了ROS Toolbox Interface
    的頭像 發(fā)表于 11-15 18:12 ?1123次閱讀
    如何在Matlab中<b class='flag-5'>自定義</b>Message

    如何初始化ROS并創(chuàng)立鏈接

    Simulink對(duì)機(jī)器人操作系統(tǒng)(ROS)的支持使我們能夠創(chuàng)建與ROS網(wǎng)絡(luò)一起工作的Simulink模型。ROS是一個(gè)通信層,允許機(jī)器人系統(tǒng)的不同組件以消息的形式交換信息。 組件通過將消息發(fā)布到特定
    的頭像 發(fā)表于 11-15 17:26 ?444次閱讀
    如何初始化<b class='flag-5'>ROS</b>并創(chuàng)立鏈接