Matlab/Simulink在自动驾驶开发中的快速算法模型验证(LCM,protobuf实现通讯)

本文介绍了使用Matlab/Simulink进行自动驾驶算法验证时,如何利用LCM(一种跨平台数据交换工具)和protobuf(Google的数据交换格式)实现跨平台通讯。通过protobuf定义数据结构并序列化,利用Java编写jar包,封装成Simulink块,以实现Simulink模型与其他模块的数据交互。同时强调了配置LCM接收缓冲区大小的重要性。
摘要由CSDN通过智能技术生成

1. 背景:

  • simulink可以用来搭建各种模型及算法,且可以自动生成汽车级的c/c++代码,支持从原型开发到工业级代码生成。
  • 使用simulink搭建自动驾驶需要的算法,并与其他自动驾驶模块及仿真环境通讯,实现快速模型验证。
  • LCM是基于UDP广播通讯的跨平台,跨语言的数据交换工具,多家自动驾驶公司均有使用。https://lcm-proj.github.io/
  • Protobuf是google开发的跨平台,跨语言的数据交换工具,https://github.com/protocolbuffers/protobuf/tree/master
  • 这里主要讨论是基于LCM和protobuf的simulink与其他模块的通讯(跨平台) 

2. 架构:

  • 所有的数据结构都通过protobuf定义,好处就是数据结构变更之后,依然可以兼容之前保存的log数据
  • protobuf序列化为byte[](不要用string)之后,通过LCM广播。LCM虽然也可以定义数据结构并序列化,但是数据结构修改之后,那么代码不能使用之前的log数据。
  • matlab的m脚本可以直接使用jar包,故需要将LCM的publish和subscribe࿰
  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值