(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210676004.6
(22)申请日 2022.06.15
(71)申请人 苏州轻棹科技有限公司
地址 215000 江苏省苏州市相城区高铁新
城青龙港路66号领寓商务广场1幢21
层2101-2108室
(72)发明人 张伟
(74)专利代理 机构 北京慧诚智道知识产权代理
事务所 (特殊普通合伙)
11539
专利代理师 高廖楠
(51)Int.Cl.
G06F 9/54(2006.01)
G06F 16/22(2019.01)
G06F 16/2455(2019.01)
(54)发明名称
面向自动驾驶系统内部模块的消息发布-订
阅处理方法
(57)摘要
本发明实施例涉及一种面向自动驾驶系统
内部模块的消息发布 ‑订阅处理方法, 所述方法
包括: 系统启动时初始化消息记录存储区、 环形
缓存区和哈希表存储区; 对数据生产模块的消息
发布指令以及数据消费模块的消息订阅指令进
行侦听; 收到消息发布指令时提取出发布模式,
根据发布模式接收生产数据组成消息记录, 对时
间戳进行校验, 将消息记录写入消息记录存储
区, 生成缓存记录写入环形缓存区, 生成键值对
写入哈希表存储区, 回发回执; 收到消息订阅指
令时提取出消息模块名称、 消息标识, 查询哈希
表存储区得到偏移地址, 从环形缓存区读取缓存
记录, 从消息记录存储区读取消息记录回发。 通
过本发明可以降低各内部模块间的同步传输压
力并提高系统整体稳健 性。
权利要求书5页 说明书19页 附图4页
CN 115080268 A
2022.09.20
CN 115080268 A
1.一种面向自动驾驶系统内部模块的消息发布 ‑订阅处理方法, 其特征在于, 所述方法
包括:
自动驾驶系统的异步通信模块在系统启动 时, 对消息记录存储区、 环形缓存区和哈希
表存储区进行初始化;
所述异步通信模块在所述初始化成功时, 对所述自动驾驶系统的各个数据生产模块的
消息发布指令进 行侦听; 并对所述自动 驾驶系统的各个数据消费模块的消息订阅指令进 行
侦听;
所述异步通信模块在接收到任一所述数据生产模块发送的所述消息发布指令时, 从指
令中提取出发布模式; 并根据所述发布模式接收当前数据生产模块 发送的生产数据组成对
应的第一消息记录; 并根据所述发布模式对所述第一消息记录的时间戳进行校验; 校验成
功则根据所述发布模式将所述第一消息记录写入所述消息记录存储区并获得对应的写入
地址记为第一消息地址; 并根据所述发布模式、 所述第一消息记录和所述第一消息地址进
行缓存记录构建生成对应的第一缓存记录; 并将所述第一缓存记录写入所述环形缓存区并
获得对应的缓存偏移 地址记为第一偏移 地址; 并根据所述第一消息地址和所述第一偏移 地
址进行哈希表键值对构建生成对应的第一键值对; 并将所述第一键值对写入所述哈希表存
储区; 写入成功则向所述当前 数据生产模块回发消息发布成功回执;
所述异步通信模块在接收到任一所述数据消费模块发送的所述消息订 阅指令时, 从指
令中提取出订阅消息模块名称和订阅消息标识; 并根据所述订阅消息模块名称和所述订阅
消息标识查询所述哈希表存储区得到对应的第二偏移地址; 并根据所述第二偏移地址从所
述环形缓存区读取对应的第二缓存记录; 并根据所述第二缓存记录从所述消息记录存储区
读取对应的第二消息记录; 并将所述第二消息记录向当前 数据消费模块回发。
2.根据权利要求1所述的面向自动驾驶系统内部模块的消息发布 ‑订阅处理方法, 其特
征在于,
所述数据生产模块至少包括超声波传感器模块、 激光雷达传感器模块、 毫米波传感器
模块、 惯性测量单元传感器模块、 全球定位系统传感器模块、 摄像头模块、 车辆底盘模块、 感
知模块、 预测模块、 规划模块;
所述数据消费模块至少包括感知模块、 预测模块、 规划模块和控制模块。
3.根据权利要求1所述的面向自动驾驶系统内部模块的消息发布 ‑订阅处理方法, 其特
征在于,
所述消息记录存储区存储多个消息记录; 所述消息记录包括消息头和消息体; 所述消
息头包括模块名称、 消息标识、 消息长度和消息时间戳, 所述消息长度为所述消息记录的数
据长度;
所述环形缓存区存 储多个缓存记录; 所述缓存记录包括消息数据长度和 消息地址;
所述哈希 表存储区存储多个键值对; 所述键值对由关键 字名称和关键 字属性组成。
4.根据权利要求3所述的面向自动驾驶系统内部模块的消息发布 ‑订阅处理方法, 其特
征在于, 所述对消息记录存 储区、 环形缓存区和哈希 表存储区进行初始化, 具体包括:
在系统存储空间, 根据预设的消息记录、 环形缓存和哈希表存储区大小分配对应的内
存连续地址空间或硬盘连续地址空间作为所述消息记录存储区、 所述环形缓存区和所述哈
希表存储区;权 利 要 求 书 1/5 页
2
CN 115080268 A
2将所述消息记录存储区按预设的消息记录存储块大小sq顺序划分成多个消息记录存储
块; 并为所述消息记录存储区初始化对应的有效记录结束地址; 所述有效记录结束地址初
始化为第一个所述消息记录存 储块的起始地址;
将所述环形缓存区按预设 的缓存记录存储块大小sr顺序划分成多个缓存记录存储块;
并为所述环形缓存区初始化对应的起始位置地址、 结束位置地址、 可读偏移位置地址和可
写偏移位置地址; 所述起始 位置地址和所述可写偏移位置地址均默认初始 化为第一个所述
缓存记录存储块的起始 地址; 所述结束位置地址默认初始化为最后一个所述缓存记录存储
块的起始地址; 所述可读 偏移位置地址默认初始化 为空;
将所述哈希表存储 区按预设 的键值对存储块大小sh顺序划分成多个键值对存储块; 并
为所述消息记录存储区初始 化对应的有效键值对结束地址; 所述有效键值对结束地址初始
化为第一个所述键值对 存储块的起始地址 。
5.根据权利要求3所述的面向自动驾驶系统内部模块的消息发布 ‑订阅处理方法, 其特
征在于, 所述根据所述发布模式接收当前数据生产模块 发送的生产数据组成对应的第一消
息记录, 具体包括:
对所述发布模式进行识别;
当所述发布模式为第一模式时, 接收所述当前数据生产模块发送的生产数据; 并从所
述生产数据中提取出生产数据长度作为对应的所述消息长度, 提取出数据生产模块名称作
为对应的所述模块名称, 提取出生产数据标识作为对应的所述消息标识, 提取出生产数据
时间戳作为对应的所述消息时间戳, 提取出生产数据包作为对应的所述消息体; 并由所述
模块名称、 所述消息标识、 所述消息长度和所述消息时间戳组成对应的所述消息头; 并由所
述消息头和所述消息体组成对应的所述第一消息记录;
当所述发布模式为第二模式时, 从所述消息发布指令 中提取出聚合数量N; 并对所述当
前数据生产模块 发送的N个所述生产数据进 行接收; 每接收一个所述生产数据, 就从当前生
产数据中提取出所述生产数据长度、 所述数据生产模块名称、 所述生产数据标识、 所述生产
数据时间戳和所述生产数据包作为对应的所述消息长度、 所述模块名称、 所述消息标识、 所
述消息时间戳和所述消息体, 并由得到的所述模块名称、 所述消息标识、 所述消息长度和所
述消息时间戳组成对应的所述消息头, 并由所述消息头和所述消息体组成对应的子消息记
录; 并由得到的N个所述子消息记录组成对应的所述第一消息记录 。
6.根据权利要求5所述的面向自动驾驶系统内部模块的消息发布 ‑订阅处理方法, 其特
征在于, 所述 根据所述发布模式对所述第一消息记录的时间戳进行 校验, 具体包括:
对所述发布模式进行识别;
当所述发布模式为第一模式时, 从所述第一消息记录中提取出所述消息时间戳; 并对
所述消息时间戳与当前系统时间的时间差进 行计算生成对应的第一时间差; 若所述第一时
间差满足预设的时延要求则确认所述校验成功;
当所述发布模式为第 二模式时, 对所述第 一消息记录 中各个所述子消息记录的所述消
息时间戳与当前系统时间的时间差进 行计算从而得到多个子记录时间差; 若 所有所述子记
录时间差满足预设的时延要求则确认所述校验成功。
7.根据权利要求4所述的面向自动驾驶系统内部模块的消息发布 ‑订阅处理方法, 其特
征在于, 所述根据所述发布模式将所述第一消息记录写入所述消息记录存储区并获得对应权 利 要 求 书 2/5 页
3
CN 115080268 A
3
专利 面向自动驾驶系统内部模块的消息发布-订阅处理方法
文档预览
中文文档
29 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共29页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 00:16:57上传分享