跳到主要內容

[ROS] Nodelet Introduction

在 ROS 平台中,我們經常需要在各個 node 之中傳輸各種資料。

當這些資料屬於數kb~數MB 的小型檔案時, Ros 可以很順利且快速的進行傳輸,但是當這些檔案大至數百MB甚至GB以上時,在每個節點進行資料打包, 傳輸, 接收, 解包資料將會變得非常浪費時間與資源。

甚至在高頻率的資料傳輸上,將會導致嚴重的延遲或是資料丟失的情形發生。

ROS 平台為了改善這個問題,提供了一種解法 "nodelet" ,其作法近似於C++裏面的 zero copy。 

實現的作法是將某一個節點(通常是第一個)所處理完成的資料記憶體位址記下來,後續在進行資料傳輸時,並不實現資料本體,而是改用傳輸記憶體位址的方式進行。


這種作法可以大大改善傳輸效率,將可能造成嚴重延遲的大型檔案轉為僅為幾KB不到的記憶體位置,達到在傳輸資料時近乎零延遲的情形。


In the ROS platform, we often need to transfer various materials among the nodes.

When these materials belong to a small file of several kb to several megabytes, Ros can be transmitted smoothly and quickly, but when these files are as large as hundreds of MB or even GB, data is packaged, transmitted, and received at each node. Unpacking data will become a waste of time and resources.

Even in the transmission of high-frequency data, serious delays or data loss will occur.

To improve this problem, the ROS platform provides a solution "nodelet" that works similar to zero copy in C++.

The implementation method is to record the address of the data memory processed by a node (usually the first one), and then not transfer the data body when transferring data, but use the method of transferring the memory address. get on.


This approach can greatly improve the transmission efficiency, and convert large files that may cause serious delays into memory locations that are only a few kilobytes in size, achieving a near-zero delay in transmitting data.

留言

這個網誌中的熱門文章

[python] 使用 python 控制 docx 範例

因為同事的需求,無職 a 我就又再度幫忙同事寫一些小程式。 這些小程式雖然簡單,但是聽到如果不幫忙寫程式解決,以手工作業的"大量人天" 的後果真的是讓人吐血。 他們有一份工作,需要產出一份很多很多很多資料圖片的判釋報告,要把數百張圖片剪裁成特定大小,加上圖說之後放入 word 裡面。 聽到的做法是...一張一張插圖!! wooow! That's really shocking me! 所以為了前公司同事的幸福,我還是加減寫一下好了。

[電銲] 自己的 IMU 自己焊!笨蛋的焊接法!

工程師真的是被要求包山包海都要會... IMU的組件被要求不能只插麵包板,要 "穩固的固定在另外製作的盒子裡",反正就是搞得跟外面幾十萬上下的 IMU 一樣精緻就是了。 好好好都焊給你~ 呃 對了 怎麼焊哈哈哈哈 ^^" 電焊這種技術自從上過國中的生活科技後就再也沒再用了@@,好家在這是個網路就是你家的時代,立刻上網查一查,找到一些關於焊槍使用的相關資料。 被要求說GY-91不能只接麵包板一定焊死才穩固所以就這樣接了

[RaspberryPI] 一鍵啟動 .py 文件

先講總結: 樹莓派君你好討厭啊啊啊啊! 今天把程式整理完之後,心血來潮,想要把 程式弄得更 "一鍵啟動" 一點。 也就是我只要用我的觸控螢幕一點,就可以直接打開寫好的 QT 介面做 IMU 和 相機的紀錄 親手烘培(?) 的 QT 介面