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的一種有益補充。物件導向程式設計中的繼承是一種從上而下的關係,不適合定義從左到右的橫向關係,如果繼承體系中的很多無關聯的物件都有一些公共行為,這些公共行為可能分散在不同的元...