Ceres Solver:从入门到使用_非晚非晚的博客-优快云博客_ceres核函数
基本原理公式:

LocalTrajectoryBuilder2D::ScanMatch --》 ceres_scan_matcher_.Match
/**
* @brief 基于Ceres的扫描匹配
*
* @param[in] target_translation 预测出来的先验位置, 只有xy
* @param[in] initial_pose_estimate (校正后的)先验位姿, 有xy与theta
* @param[in] point_cloud 用于匹配的点云 点云的原点位于local坐标系原点
* @param[in] grid 用于匹配的栅格地图
* @param[out] pose_estimate 优化之后的位姿
* @param[out] summary
*/
void CeresScanMatcher2D::Match(const Eigen::Vector2d& target_translation,
const transform::Rigid2d& initial_pose_estimate,
const sensor::PointCloud& point_cloud,
const Grid2D& grid,

该文详细介绍了如何使用CeresSolver进行2D扫描匹配,通过构建优化问题,结合点云数据和栅格地图,利用平移和旋转的残差来估计最优位姿。方法包括添加不同类型的残差块,如占用空间权重和位姿平移、旋转的权重,并使用AutoDiff创建成本函数。
最低0.47元/天 解锁文章
1217

被折叠的 条评论
为什么被折叠?



