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

posted on 2016-12-28 11:55  zhuxuekui3  阅读(2578)  评论(0编辑  收藏  举报