LCM 轻量级通信组件
- 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等。
配置步骤如下:
- 查看readme
在拿到第三方开源库之前,我们首先先查看README 文档,查看如何使用此开源代码。
- 打开文档,根据系统要求进行编译
- 我们目前是Ubuntu 系统,编译需要的依赖库如下。
4、如果想查看详细信息,可参考文件INSTALL
- 安装后的路径如下:
- 实例代码
- 选用IDE为codeblocks
下载后直接安装即可。
- 配置完编译
一直出错,未定义的引用 lcm_create()等。
原因:codeblocks不能加载环境变量,即使我们已经用ldconfig 命令进行配置完依然是这样的。
解决方案:配置库和头文件(在ros里面有此IDE也是需要配置的)
- 然后编译即可进行调试。
我们可以再建立一个subcribe的工程实例,然后在通过IDE里面同时运行多个实例。参考资料:http://blog.csdn.net/clever101/article/details/7299670