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
LCM 轻量级通信组件的更多相关文章
- ZeroMQ——一个轻量级的消息通信组件
ZeroMQ是一个轻量级的消息通信组件,尽管名字中包含了"MQ",严格上来讲ZeroMQ并不是"消息队列/消息中间件".ZeroMQ是一个传输层API库, 更关 ...
- ZeroMQ——一个轻量级的消息通信组件 C#
ZeroMQ——一个轻量级的消息通信组件 ZeroMQ是一个轻量级的消息通信组件,尽管名字中包含了"MQ",严格上来讲ZeroMQ并不是"消息队列/消息中间件" ...
- 轻量级通信引擎StriveEngine —— C/S通信demo(2) —— 使用二进制协议 (附源码)
在网络上,交互的双方基于TCP或UDP进行通信,通信协议的格式通常分为两类:文本消息.二进制消息. 文本协议相对简单,通常使用一个特殊的标记符作为一个消息的结束. 二进制协议,通常是由消息头(Head ...
- 基于.NET框架的消息通信组件ZMQ资料汇编-总目录
ZMQ是一个比较轻量级的消息通信组件,引用官方的说法: “ZMQ (以下 ZeroMQ 简称 ZMQ)是一个简单好用的传输层,像框架一样的一个 socket library,他使得 Socket 编程 ...
- 网页内嵌入QQ通信组件,唤起QQ,针对不同平台的处理方式
web浏览器中嵌入QQ通信组件,目前发现有两种方式,主要是区分 IOS平台(苹果系列)和其他平台(PC 安卓等……),下面是代码区别: <li><a href="http: ...
- C#轻量级配置文件组件EasyJsonConfig
一.课程介绍 一.本次分享课程<C#轻量级配置文件EasyJsonConfig>适合人群如下: 1.有一定的NET开发基础. 2.喜欢阿笨的干货分享课程的童鞋们. 二.今天我们要如何优雅解 ...
- .NET轻量级ORM组件Dapper修炼手册
一.摘要 1.1.为什么叫本次的分享课叫<修炼手册>? 阿笨希望本次的分享课中涉及覆盖的一些小技巧.小技能给您带来一些帮助.希望您在日后工作中把它作为一本实际技能手册进行储备,以备不时之需 ...
- 在线代码编辑器 Codemirror 的轻量级 React 组件
代码编辑器 CodeMirror 的轻量级 React 组件 demo @uiw-react.github.io/react-codemirror/ 特性:
- C++对象间通信组件,让C++对象“无障碍交流”
介绍 这是很久之前的一个项目了,最近刚好有些时间,就来总结一下吧! 推荐初步熟悉项目后阅读本文: https://gitee.com/smalldyy/easy-msg-cpp 从何而来 这要从我从事 ...
随机推荐
- 事件流之事件冒泡与事件捕获<JavaScript高级程序设计>学习笔记
1.事件流 浏览器开发团队遇到一个很有意思问题:页面的那一部分会拥有特定的事件? 对于理解这个问题您可以想象画在一张纸上的一组同心圆,如果你把手指放在圆心上,那么你的手指指向的其实不是一个圆,而是纸上 ...
- CSS3与页面布局学习笔记(五)——Web Font与CSS Sprites(又称CSS精灵、雪碧图)技术
一.web font web font是应用在web中的一种字体技术,在CSS中使用font-face定义新的字体.先了解操作系统中的字体: a).安装好操作系统后,会默认安装一些字体,这些字体文件描 ...
- PHP语法
* PHP语法 * 常量与变量 * 常量 - 一旦定义并初始化后,值不会改变 * 使用const关键字 const 常量名=常量值 * define(常量名,常量值) * 变量 - "$&q ...
- 破壳漏洞利用payload—shellshock in the wild
FireEye关于破壳漏洞(shellshock)在现实中的利用有一篇文章: shellshock in the wild 原文较长,进行了对CGI利用的详细分析,笔者比较感兴趣的是Shellshoc ...
- Creating a SharePoint Sequential Workflow
https://msdn.microsoft.com/en-us/library/office/hh824675(v=office.14).aspx Creating a SharePoint Seq ...
- Android中的AlertDialog使用示例二(普通选项对话框)
在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,AlertDialog实现方法为建造者模式. ...
- 【转】linux 定时执行shell脚本
在oracle 中可以利用dbms_job包定时执行pl/sql.sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 本文讲述crontab具体用法,以供备忘. 在oracle ...
- Activity详解二 activity数据传递
首先看效果图: 1.Bundle类的作用 Bundle类用作携带数据,它类似于Map,用于存放key-value名值对形式的值.相对于Map,它提供了各种常用类型的putXxx()/getXxx()方 ...
- iOS中常见 Crash 及解决方案
来源:枫影JustinYan 链接:http://justinyan.me/post/1609 一.访问了一个已经被释放的对象 在不使用 ARC 的时候,内存要自己管理,这时重复或过早释放都有可能导致 ...
- iOS开发 适配iOS10以及Xcode8[转]
现在在苹果的官网上,我们已经可以下载到Xcode8的GM版本了,加上9.14日凌晨,苹果就要正式推出iOS10系统的推送了,在此之际,iOS10的适配已经迫在眉睫啦,不知道Xcode8 beat版本, ...