皮皮网

【溯源码从哪里找】【macbook android 源码】【netty allocate源码】roscloud 源码

2024-12-28 11:03:18 来源:保卫萝卜弓源码

1.hdl_graph_slam|后端优化|hdl_graph_slam_nodelet.cpp|源码解读(四)

roscloud 源码

hdl_graph_slam|后端优化|hdl_graph_slam_nodelet.cpp|源码解读(四)

       hdl_graph_slam源码解读(八):后端优化

       后端概率图构建核心:hdl_graph_slam_nodelet.cpp

       整体介绍

       这是源码整个系统建图的核心,综合所有信息进行优化。源码所有的源码信息都会发送到这个节点并加入概率图中。

       包含信息

       1)前端里程计传入的源码溯源码从哪里找位姿和点云

       2)gps信息

       3)Imu信息

       4)平面拟合的参数信息

       处理信息步骤

       1)在对应的callback函数中接收信息,并放入相应的源码队列

       2)根据时间戳对队列中的信息进行顺序处理,加入概率图

       其他内容

       1)执行图优化,源码macbook android 源码这是源码一个定时执行的函数,闭环检测也在这个函数里

       2)生成全局地图并定时发送,源码即把所有关键帧拼一起,源码得到全局点云地图,源码然后在一个定时函数里发送到rviz上去

       3)在rviz中显示顶点和边,源码如果运行程序,源码会看到rviz中把概率图可视化了

       关键帧同步与优化

       cloud_callback

       cloud_callback(const nav_msgs::OdometryConstPtr& odom_msg,源码netty allocate源码const sensor_msgs::PointCloud2::ConstPtr& cloud_msg)

       该函数主要是odom信息与cloud信息的同步,同步之后检查关键帧是源码否更新。

       关键帧判断:这里主要看关键帧设置的源码这两个阈值keyframe_delta_trans、keyframe_delta_angle

       变成关键帧的光纤 源码 dts要求就是:/hdl_graph_slam/include/hdl_graph_slam/keyframe_updater.hpp

       优化函数

       optimization_timer_callback(const ros::TimerEvent& event)

       函数功能:将所有的位姿放在posegraph中开始优化

       loop detection 函数:主要就是将当前帧和历史帧遍历,寻找loop。

       闭环匹配与信息矩阵计算

       匹配与闭环检测

       潜在闭环完成匹配(matching 函数)

       不同loop的信息矩阵计算(hdl_graph_slam/information_matrix_calculator.cpp)

       gps对应的信息矩阵

       hdl_graph_slam/graph_slam.cpp

       添加地面约束

       使用add_se3_plane_edge函数的代码

       执行图优化

       优化函数optimization_timer_callback

       执行图优化,闭环检测检测闭环并加到了概率图中,源码被公开优化前

       生成简化版关键帧,KeyFrameSnapshot用于地图拼接

       生成地图并定时发送

       生成地图:简化版关键帧拼接

       定时发送:src/hdl_graph_slam_nodelet.cpp文件中

       系统性能与扩展性

       hdl_graph_slam性能问题在于帧间匹配和闭环检测精度不足,系统代码设计好,模块化强,易于扩展多传感器数据融合。

       总结

       hdl_graph_slam后端优化是关键,涉及大量信息融合与概率图构建。系统设计清晰,扩展性强,但在性能上需改进。