LCM 輕量級通訊元件

2022-04-08 20:54:31 字數 1667 閱讀 3252

lcm和zmq比較

基於lcm和zeromq的程序間通訊研究

2、簡介

lcm(lightweight commuciation and marshalling) 它是作為訊息傳遞和封裝的通訊庫,其首要任務是簡化低時延訊息傳遞系統的開發。目前廣泛應用於無人駕駛汽車領域。

其通訊效率比基於tcp的ros庫裡面的效率要高,和ipc( inter-process communication 系統自帶的程序間通訊)相比,也要高一些。

3、個人理解

此lcm可以理解為ros裡面的乙個通訊機制,ros裡面也有package的概念,然後ros_make 之後,也會出現很多的標頭檔案,然後我們通過ros_run呼叫ros裡面的庫,進行publish 和 subcrible(訂閱和請求)。

而在lcm裡面,其實原理是一樣的,由lcm裡面的lcm_gen小程式編譯生成標頭檔案,然後把這些標頭檔案放到目錄當中,我們在編寫程式的時候,引入lcm第三方庫,lcm裡面有自己的publish和subcrible等。

配置步驟如下:

檢視readme

在拿到第三方開源庫之前,我們首先先檢視readme 文件,檢視如何使用此開源**。

開啟文件,根據系統要求進行編譯

我們目前是ubuntu 系統,編譯需要的依賴庫如下。

4、如果想檢視詳細資訊,可參考檔案install

安裝後的路徑如下:

例項**

選用ide為codeblocks

配置完編譯

一直出錯,未定義的引用 lcm_create()等。

原因:codeblocks不能載入環境變數,即使我們已經用ldconfig 命令進行配置完依然是這樣的。

解決方案:配置庫和標頭檔案(在ros裡面有此ide也是需要配置的)

然後編譯即可進行除錯。

我們可以再建立乙個subcribe的工程例項,然後在通過ide裡面同時執行多個例項。參考資料:

ZeroMQ 乙個輕量級的訊息通訊元件

zeromq是乙個輕量級的訊息通訊元件,儘管名字中包含了 mq 嚴格上來講zeromq並不是 訊息佇列 訊息中介軟體 zeromq是乙個傳輸層api庫,更關注訊息的傳輸。與訊息佇列相比,zeromq有以下一些特點 點對點無中間節點 傳統的訊息佇列都需要乙個訊息伺服器來儲存 訊息。而zeromq則放棄...

ZeroMQ 乙個輕量級的訊息通訊元件 C

zeromq是乙個輕量級的訊息通訊元件,儘管名字中包含了 mq 嚴格上來講zeromq並不是 訊息佇列 訊息中介軟體 zeromq是乙個傳輸層api庫,更關注訊息的傳輸。與訊息佇列相比,zeromq有以下一些特點 點對點無中間節點 傳統的訊息佇列都需要乙個訊息伺服器來儲存 訊息。而zeromq則放棄...

C 公共元件 輕量級AOP庫

aop aspect oriented programming,面向方面程式設計 可以解決物件導向程式設計中的一些問題,是oop的一種有益補充。物件導向程式設計中的繼承是一種從上而下的關係,不適合定義從左到右的橫向關係,如果繼承體系中的很多無關聯的物件都有一些公共行為,這些公共行為可能分散在不同的元...