cartographer 前端两种匹配

目录

1.相关性扫描匹配:

1.1 输入 : 

1.2 步骤:

2.ceres 优化:

2.1 输入 :   

2.2 步骤:

3.输入数据的坐标关系


cartographer 前端  相关性扫描匹配  和  ceres 优化两种

1.相关性扫描匹配:

double RealTimeCorrelativeScanMatcher2D::Match(
    const transform::Rigid2d& initial_pose_estimate,
    const sensor::PointCloud& point_cloud, const Grid2D& grid,
    transform::Rigid2d* pose_estimate)

1.1 输入 : 

  1. 预计位姿(推算位子)    
  2. 点云数据 
  3. 概率栅格地图   
  4. 估计位姿(引用输出)

返回:   最佳得分

1.2 步骤:

  1. // 初始位姿的角度
  2. /将激光转到初始位姿的角度  (x,y)0 点云开始为:baselink坐标系
  3. //确定查询窗口  角度+空间平面
  4. //得到旋转的点云     查询角度范围 ×2 /角度分辨率    点云 对各个角度旋转
  5. //将点云转到当前位姿下  平移
  6. /生成平移的候选值, 只记录 x,y的偏移,未进行 实际点云平移
  7. //求取得分  遍历候选值,  再遍历激光点,遍历激光点时将xy的偏移量传入
  8.  //取得分最大的候选值的 偏移量
  9. //输入的初始位子 + 偏移量

2.ceres 优化:

void CeresScanMatcher2D::Match(const Eigen::Vector2d& target_translation,
                               const transform::Rigid2d& initial_pose_estimate,
                               const sensor::PointCloud& point_cloud,
                               const Grid2D& grid,
                               transform::Rigid2d* const pose_estimate,
                               ceres::Solver::Summary* const summary) 

2.1 输入 :   

  1. 预计位姿(推算位子)   
  2. scanMatch匹配后位姿
  3. 点云数据 
  4. 概率栅格地图
  5. 优化后位姿(输出引用)
  6. ceres 优化器

2.2 步骤:

  1. 构建观测残差     栅格不连续,三次卷积插值 使其连续可导
  2. 构建平移变化量残差
  3. 构建旋转变化量残差
  4. ceres 求解,得pose+cost

3.输入数据的坐标关系

                     

 

返回:   最佳得分

预计位姿    点云数据  在重力坐标系下

 

 

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值