说到自动驾驶间的通讯,最常见的就是ROS以及一些基于ROS的改进,例如Apollo的Cyber就可以看作是升级版的ROS,今天介绍一种适用于高速自动驾驶场景的LCM通信协议,其特点是轻量化、传输速度快,易封装。
LCM(Lightweight Communications and Marshalling)是一组用于消息传递和数据编组的库和工具,其基于UDP传输的属性,传输速度较快,其目标是高带宽和低延迟的实时系统。它提供了一种发布/订阅消息传递模型以及带有各种编程语言C++、Java、python等应用程序绑定的自动编组/解组代码生成,LCM通过将消息封装在不同的Channel中进行通信,这点类似于ROS中的Topic。
在ubuntu环境下需要依赖包安装:
- build-essential ($ sudo apt install build-essential)
-
libglib2.0-dev ($sudo apt install libdlib2.0-dev)
需要安装cmake 3.5版本以上,如果当前不是3.5以上需要升级
$ sudo apt install cmake
首先下载lcm-1.4.0.zip(下载:https://github.com/lcm-proj/lcm/releases)
然后解压,或者用命令解压
$ unzip lcm-1.4.0.zip
通过cmake编译lcm,进入文件夹lcm-1.4.0后,执行如下命令:
$ cd lcm-1.3.1
$ mkdir build
$ cd build cmake ..
$ sudo make install
命令执行完,lcm就安装完成了。