关于无人驾驶的LCM协议传输

本文介绍了LCM(Lightweight Communications and Marshalling)协议在无人驾驶领域的应用情况,包括其如何实现快速的数据传输及编组,并提供了具体的安装步骤与实例说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        最近在一家无人驾驶公司实习做感知算法工程师,牵扯到感知到的信息传输问题,据了解,现有的无人驾驶行业领域信息的传输都采用了LCM传输协议,速度快封装简便。

       那么,LCM协议是怎么组成的呢:

       LCM(Lightweight Communications and Marshalling)是一套用于消息传递和数据编组的库和工具的集合,旨在为实时系统提供高带宽和低延迟的消息传递的能力,由于其基于UDP传输的属性,传输速度较快。它提供了一个发布/订阅消息传递模型以及为各种编程语言的应用程序自动生成编/解组代码。 
       LCM允许多个进程以安全和高性能地方式进行消息的交换。消息是LCM通信的基本单元,LCM传输协议是通过不同的Channel进行传输,在不同的Channel封装好信息之后,进行整体信息传输。LCM协议的编写支持C、C++、Java、  Python等编程语言,关于LCM协议的使用可以参考官方文档。 
       LCM官方有一个Github地址:https://github.com/lcm-proj/lcm

      在Github里可以下载LCM,下载完成之后,进行安装(Ubuntu16.04)。     

$ unzip lcm-X.Y.Z.zip
$ cd lcm-X.Y.Z
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig

//安装完成之后需要进行编译链接
 
$ export LCM_INSTALL_DIR=/usr/local/lib
$ echo $LCM_INSTALL_DIR > /etc/ld.so.conf.d/lcm.conf
$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$LCM_INSTALL_DIR/pkgconfig

      首先,要新建一个LCM传输协议的struct,就是要封装的内容格式。

typedef struct _exlcm_example_t exlcm_example_t;
struct _exlcm_example_t {
    int64_t  timestamp;
    double   position[3];
    double   orientation[4];
    int32_t  num_ranges;
    int16_t  ranges;
    char     name;
    int8_t   enabled;
};

      官方的指导文档已经介绍的比较全面了:http://lcm-proj.github.io/

      主要的就是有几个命令帮助比较大,但是我没在官方文档里找到:

       lcm-logger :记录文档

       lcm-logplayer:可视化log文件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值