需要用到LCM消息通讯,遂研究下。
这里写目录标题
1 LCM简介
LCM(Lightweight Communications and Marshalling)是一组用于消息传递和数据编组的库和工具,其基于UDP传输的属性,传输速度较快,其目标是高带宽和低延迟的实时系统。它提供了一种发布/订阅消息传递模型以及带有各种编程语言C++、Java、python等应用程序绑定的自动编组/解组代码生成,LCM通过将消息封装在不同的Channel中进行通信,这点类似于ROS中的Topic。
适用于高速自动驾驶场景的LCM通信协议,其特点是轻量化、传输速度快,易封装。
LCM是去ROS化的优秀选择
LCM官方:Github:lcm-proj/lcm
LCM论文:LCM: Lightweight Communications and Marshalling
LCM技术报告:LCM技术报告
2. LCM源码分析
LCM的底层代码都是使用C语言进行编写的,但是充斥着面向对象的风格,甚至实现了一个虚函数表来抽象不同通信通信方式的底层实现。