LCM 輕量級通信組件


  1. LCM和ZMQ比較

     

    http://www.doc88.com/p-6711552253536.html 基於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等。

 

 

配置步驟如下:

  1. 查看readme

    在拿到第三方開源庫之前,我們首先先查看README 文檔,查看如何使用此開源代碼。

     

 

  1. 打開文檔,根據系統要求進行編譯

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

     

     

    4、如果想查看詳細信息,可參考文件INSTALL

     

     

     

    1. 安裝后的路徑如下:

     

    1. 實例代碼

     

    1. 選用IDE為codeblocks

       

      下載后直接安裝即可。

    2. 配置完編譯

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

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

      解決方案:配置庫和頭文件(在ros里面有此IDE也是需要配置的)

    3. 然后編譯即可進行調試。

       

      我們可以再建立一個subcribe的工程實例,然后在通過IDE里面同時運行多個實例。參考資料:http://blog.csdn.net/clever101/article/details/7299670


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com