- 博客(14)
- 收藏
- 关注
原创 Cartographer源码解析——2D栅格地图构建
到目前为止,对于点云数据的预处理过程已经介绍完毕,如:点云数据多传感器时间同步、运动畸变校正、重力校正、体素滤波等。做完这一系列的预备工作之后,实际上呢,就可以进行点云的扫描匹配了。在讲解扫描匹配之前,先来看看 Cartographer 2D 的栅格地图,其不像3D点云地图有很多成熟的库可以调用,具有统一的标准。大多数 2D Slam 的栅格地图都是需要自己编写代码进行构建的。下面就来看看 Cartographer 中时如何构建的。
2023-04-22 16:30:31 3938 2
原创 Cartographer源码解析——位姿推测器PoseExtrapolator
imu_tracker_记录的是每一次我们ScanMatch结束之后,我们记录的精细的角度。上面代码算的是刚刚使用到的朝向,朝向怎么算的,跟之前的外推器计算的朝向差不多,就是外推器存储的最后的一个pose,timed_pose_queue_.back().pose.rotation(),在这个基础上,乘以一个Δrotation,ExtrapolateRotation(odometry_data_newest.time, odometry_imu_tracker_.get())。变成这么一个朝向上的向量。
2023-04-15 16:39:22 1110 1
原创 Cartographer源码解析(6)——加载配置文件2
/ 根据Lua配置文件中的内容, 为node_options, trajectory_options 赋值// MapBuilder类是完整的SLAM算法类// 包含前端(TrajectoryBuilders,scan to submap) 与// 后端(用于查找回环的PoseGraph)// c++11: std::move 是将对象的状态或者所有权从一个对象转移到另一个对象,// 只是转移, 没有内存的搬迁或者内存拷贝所以可以提高利用效率,改善性能..
2023-04-03 20:24:24 331
原创 Cartographer源码解析(5)——加载配置文件1
/ Node类的初始化, 将ROS的topic传入SLAM, 也就是MapBuilder// 使用默认topic 开始轨迹下篇文章将对LoadOptions()函数体中的相关函数作一解释。
2023-04-03 16:49:17 305
原创 Cartographer源码解析(4)——node_main.cc函数讲解
本文主要讲解了cartographer_ros的建图启动节点开始的node_main.cc函数,下篇将讲解是如何去加载这个.lua文件的。
2023-04-03 11:26:42 379 1
原创 Cartographer源码解析(3)——gflags和glog简介
参数设置, 以命令行参数的方式设置标志参数来控制日志记录行为严重性分级, 根据日志严重性分级记录日志 - INFO WARNING ERROR FATAL可有条件地记录日志信息 - LOG_IF LOG_EVERY_N LOG_IF_EVERY_N LOG_FIRST_N条件中止程序。丰富的条件判定宏, 可预设程序终止条件 - CHECK 宏异常信号处理。程序异常情况, 可自定义异常处理过程支持 debug 功能自定义日志信息线程安全日志记录方式系统级日志记录。
2023-04-02 20:54:26 664
原创 Cartographer源码解析(2)——配置launch文件与lua文件
首先大致讲解了在有bag包的情况下去配置launch和lua文件,而我这里实现了在仿真环境下如何去配置这个launch和lua文件,另外需要注意的就是,修改.launch与.lua文件之后,需要重新编译。
2023-04-02 19:19:21 1360 2
原创 Cartographer源码解析(1)——carto的安装与编译
这里先记录下整个cartographer算法包的安装流程,中间下载时肯定会出现各种各样的问题,这些问题以后再去做更新,完毕。
2023-04-02 16:26:56 434
原创 贝叶斯滤波推导
基于对滤波框架下的SLAM算法的了解,首先应当了解最重要的一个滤波框架——贝叶斯滤波(Bayes Filter),而KF、EKF、UKF、PF都是基于贝叶斯框架下的具体实现,因此需要深刻理解贝叶斯估计的基本原理。...
2022-08-17 22:04:18 295 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人