ros学习笔记4——ROS系统下LCM通信

如果工程只用ROS搭建,那么是不需要用到LCM的。但如果ROS只是整体系统的一部分,则需要利用内存共享或者网络传输等方式与其他程序进行数据交互,这时候LCM就是一种比较简单的选择,例如自动驾驶中车内利用ROS进行数据流处理控制,车间利用LCM通信。

1. LCM的介绍与安装

(1)LCM 简介

自动驾驶领域有很多进程间通信的方式,如ROS、Apollo的Cyber RT以及一些自动驾驶初创公司对ROS进行改进的通信协议,今天介绍一种适用于高速自动驾驶场景的LCM通信协议,其特点是轻量化、传输速度快,易封装。

LCM(Lightweight Communications and Marshalling)是一组用于消息传递和数据编组的库和工具,其基于UDP传输的属性,传输速度较快,其目标是高带宽和低延迟的实时系统。它提供了一种发布/订阅消息传递模型以及带有各种编程语言C++、Java、python等应用程序绑定的自动编组/解组代码生成,LCM通过将消息封装在不同的Channel中进行通信,这点类似于ROS中的Topic。

参考文章

1、https://www.jianshu.com/p/075898ef0aa3
2、古月居:ROS系统学习7—LCM数据的发送和接收

http://lcm-proj.github.io/multicast_setup.html

猜你喜欢

转载自blog.csdn.net/mao_hui_fei/article/details/120136035