首页 技术 正文
技术 2022年11月13日
0 收藏 395 点赞 2,884 浏览 853 个字
  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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,955
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,479
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,291
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,108
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,740
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,774