Apollo 6.0前景匹配逻辑分析(hm_data_association文件夹)

本文详细分析了Apollo 6.0中的hm_data_association模块,介绍了匹配流程,包括IdAssign、ComputeAssociationDistanceMat、MinimizeAssignment和PostIdAssign四个关键步骤。该模块涉及传感器数据的关联,使用匈牙利算法进行匹配,并通过TrackObjectDistance计算距离。文章还探讨了激光雷达、相机和毫米波雷达之间的距离计算方法。
摘要由CSDN通过智能技术生成
相关链接
上篇链接 Apollo6.0融合帧分析(FuseFrame函数)
下篇链接 Apollo 6.0更新成功匹配的航迹_前景(UpdateAssignedTracks)
KM匹配算法的C++实现 - Apollo 6.0前景匹配算法理解

hm_data_association文件夹中记录了与匹配相关的代码,参考文献

1. 流程图

HMTrackersObjectsAssociation::Associate (主函数)

该文件在/fusion/lib/data_association/hm_data_association/hm_tracks_objects_match.cc

2. 计算距离矩阵
TrackObjectDistance::Compute
测量或轨迹为空?
不需要匹配,返回
1. IdAssign
3. MinimizeAssignment
4. PostIdAssign
5. GenerateUnassignedData
6. ComputeDistance
7. 打印诊断信息

主public函数: HMTrackersObjectsAssociation::Associate,运行步骤如下:

  1. IdAssign,首先直接匹配航迹中之前就关联过的观测 (后面详述)
  2. ComputeAssociationDistanceMat计算关联矩阵,关联值取的与历史多种传感器计算距离的最小值
    • 2.1 TrackObjectDistance::Compute函数计算单个观测和单个轨迹的距离 (后面详述)
  3. MinimizeAssignment最小化匹配,先计算连通子图,再对连通子图计算匈牙利匹配 (后面详述)
  4. PostIdAssign,最后仍未匹配上的被相机看到且没被lidar看到的航迹 (后面详述)
  5. GenerateUnassignedData利用配对结果来生成最终的未匹配的航迹和未匹配的观测
  6. ComputeDistance保存航迹track和观测meas的关联值(最小距离)到association_result->track2measurements_dist(以航迹索引的距离最小值)和association_result->measurement2track_dist(以测量索引的距离最小值)中,
    • 匹配成功的测量航迹对由ComputeAssociationDistanceMat的距离矩阵得到
    • 对于匹配失败的测量,
      • 当测量不是相机时,最小距离为距离矩阵中与所有航迹最近的距离
      • 当测量是相机时,用三维投影到2d相片的相似度(范围0-1)来度量
    • 对于匹配失败的航迹,其最小距离为距离矩阵中与所有测量最近的距离
  7. 打印诊断信息包括测量个数、航迹个数、成功匹配对数、匹配失败的航迹数和匹配失败的测量数

HMTrackersObjectsAssociation::IdAssign

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值