slam
文章平均质量分 84
陋室逢雨
leatherwang@foxmail.com
欢迎交流!
展开
-
OpenVINS与MSCKF_VIO RK4积分对比
VIO系统在使用IMU测量值进行状态预测时,需要将连续时间的微分方程离散化为差分方程,离散化的本质是积分,根据数值积分近似程度不同,常用的有欧拉法、中点法和四阶龙格库塔法等,OpenVINS和MSCKF_VIO虽然都使用RK4积分,但具体代码实现却有所区别原创 2022-09-12 13:55:59 · 978 阅读 · 2 评论 -
【OpenVINS】(一)ZUPT
参考:Measurement Update Derivations » Zero Velocity Update在典型的自主汽车场景中,传感器系统将在停止灯处变得静止,其中动态物体(例如交叉路口的其他车辆)可能会快速损坏系统,通过零速检测识别当前车辆处于静止状态,以暂停特征跟踪,来避免定位系统崩溃1. Inertial-based Detection1.1 误差构造当车辆静止(对于车辆匀速直线运动这种case可以通过速度幅值检测剔除),加速度和角速度先验值都是0,先验也是一种观测,所以构造.原创 2021-10-03 12:27:29 · 3373 阅读 · 0 评论 -
【ESKF】(一)IMU运动学方程离散化
《Quaternion kinematics for error-state kalman filter》1. 三种状态true-state真实状态值,包含高斯噪声,用于EKF作为状态变量使用nominal-state无(不考虑)噪声的状态值,可以是估计值(不考虑噪声)、预测值(不考虑噪声)在预测阶段,由高频的IMU测量值预测得到当前的nominal-state x\mathbf xx,nominal state没有考虑噪声项,因此会存在累计误差,这些误差被堆积到error-state.原创 2021-10-03 12:16:15 · 1096 阅读 · 0 评论 -
GMapping与AMCL中的粒子滤波对比
GMapping和AMCL都是基于粒子滤波实现的,前者是一个SLAM过程,后者是一个Pure Localization过程,导致二者在具体实现有很大不同。1. 粒子属性AMCL粒子仅包含pose+weight,因此需要较多的粒子,才能比较好的表示机器人位姿的估计(比如,max_samples: 1000, min_samples: 100)GMapping粒子包含轨迹+地图+weight,粒子数不能太多,否则占用内存过多2. 粒子初始化GMapping的粒子的pose在刚初始时刻都是.原创 2021-04-11 19:56:24 · 1120 阅读 · 0 评论 -
【cartographer】(二)分支定界
分支定界将2D ICP问题转换成了DFS问题. 随着分支层数的增加,ICP的步长越小. 定界的关键是保证父分支的ICP得分都比其子分支的得分要高.1. DFS直接使用暴力法求解ICP问题无疑复杂度极高,如果我们看过一些ICP求解代码,即可发现其本质是一个先粗后精遍历的问题,这与DFS深度优先搜索很像,这里的深度在ICP中叫做精度,即遍历的步长,下图是一个DFS搜索树示例,2. 分支(Branching rule)cartographer中设置的DFS树共有8层,分别表示从顶层(dept.原创 2021-04-05 16:05:10 · 2105 阅读 · 0 评论 -
【cartographer】(一)占据栅格地图更新策略
cartographer中的栅格地图中每个栅格存储的是这个格子的空闲概率,这样scan match就能很方便地转换成了最小二乘问题1. Probability、Odds、CorrespondenceCost、Value的区别Probability:占据概率Odds:p/(1-p),见上CorrespondenceCost:空闲概率Value:将浮点空闲概率映射到[1-32767]的整型value2. 预计算hit_table和miss_table这两个table存的都是Value(.原创 2021-04-05 11:59:49 · 2519 阅读 · 0 评论