![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
vslam
文章平均质量分 92
SLAM||DUNK
这个作者很懒,什么都没留下…
展开
-
手写VIO代码中LM法的应用
LM 法的实现废话不多说!!下面Solve函数实现了LM法的主要步骤。总结起来:1、构建初始优化问题的H矩阵 MakeHessian() 。2、计算阻尼因子的初始值 ComputeLambdaInitLM()。3、开始迭代 while(退出条件),迭代有3个退出条件 :(1)、迭代次数 (2)、变量更新很小 (3)、总残差很小。while(一次迭代完成)(1)、为H矩阵添加...原创 2020-01-29 01:56:07 · 506 阅读 · 0 评论 -
Vins-mono 源码笔记 (8) 后端优化各种残差Factor总结
后端优化理论总结IMU factorEvaluate()IMU factorIMU factor的定义是:// ceres 中每个Factor 都是 CostFunction 类的子类 7,9 分别表示 姿态, 速度偏置的维度 class IMUFactor : public ceres::SizedCostFunction<15, 7, 9, 7, 9>{ ....... }它是 SizedCostFunction 类的子类, 同时也是 CostFunction原创 2020-07-08 00:52:23 · 939 阅读 · 0 评论 -
Vins-mono 源码笔记 (5) 初始化
主要流程:1、首先根据预积分的V的数据的均方差判断是否运动充分。2、将 f_manager.feature中的每一个特征点 构造为 SFMFeature tmp_feature 然后保存在 sfm_f 中。SFMFeature 结构定义在 initial_sfm.h中struct SFMFeature{ bool state; // 被三角化的状...原创 2020-05-16 00:41:43 · 752 阅读 · 0 评论 -
VIO 之 视觉IMU紧耦合优化
先看单目solveOdometry()void Estimator::solveOdometry()void Estimator::solveOdometry(){ if (frame_count < WINDOW_SIZE) return; if (solver_flag == NON_LINEAR) { TicToc t_t...原创 2020-04-04 02:36:29 · 2428 阅读 · 0 评论 -
Vins-mono 源码笔记 (4) 在线标定
IMU相机在线外参标定总结getCorresponding()总结从第二帧图像帧开始 (frame_count != 0),开始执行外参标定。1、首先获得前后两帧的特征点关联 getCorresponding()。2、标定计算 CalibrationExRotation()。getCorresponding()获得前后两帧图像的匹配的过程就是// 寻找滑动窗口中 两帧的特征点的关联 ...原创 2020-05-16 00:42:26 · 1510 阅读 · 1 评论 -
Vins-mono 源码笔记 (6) 紧耦合优化
紧耦合优化滑动窗口的滑动void Estimator::slideWindow() (extimator.cpp中)调用机制:1、processImage()函数中,首先通过 addFeatureCheckParallax()判断marg的策略 ,MARGIN_OLD:marg掉最老的一帧。MARGIN_SECOND_NEW: marg掉次新帧。2、初始化时,若初始化失败或者外参...原创 2020-04-30 11:34:36 · 994 阅读 · 1 评论 -
Vins-mono 源码笔记 (1) feature_tracker_node
feature_tracker话题订阅与发布回调函数 img_callback话题订阅与发布该节点:1、接受并处理发送来的图像数据。ros::Subscriber sub_img = n.subscribe(IMAGE_TOPIC, 100, img_callback);2、发布检测的特征点到 feature 话题。pub_match = n.advertise<sensor_m...原创 2020-04-30 12:15:57 · 508 阅读 · 0 评论 -
Vins-mono 源码笔记 (3) IMU预积分
IMU数据处理以及预积分原创 2020-04-30 12:13:31 · 765 阅读 · 0 评论 -
Vins-mono 源码笔记 (2) estimator_node
estimator_node总结数据的处理IMU数据的处理图像特征的处理measurement_process总结该节点:1、接受并处理发送来的IMU数据。2、处理前端节点发送的特征数据。3、运行线程 measurement_process 。数据的处理IMU数据的处理imu的数据在回调函数 imu_callback 进行处理 ,在imu_callback()函数中主要执行:...原创 2020-04-30 12:05:12 · 400 阅读 · 0 评论 -
手写VIO代码解析(1) -IMU
IMU欧拉角欧拉角与旋转矩阵的转换欧拉角速度与body角速度的转换IMU模拟数据的产生IMU运动学模型欧拉积分中值积分欧拉角欧拉角是一种表达姿态的方法,一般常用的欧拉角是ZYX,表示先绕Z轴旋转(yaw),再绕Y轴旋转(pitch)。再绕X轴旋转(roll),如果世界坐标系能够通过某个欧拉角旋转使之与body坐标系重合,那么就可以用该欧拉角表达body坐标的姿态。欧拉角与万向锁万向锁视频...原创 2020-08-10 16:19:08 · 845 阅读 · 0 评论 -
ORB-SLAM2 关键问题之特征提取
ORBSLAM2-特征提取欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使...原创 2020-05-15 11:57:51 · 631 阅读 · 1 评论 -
ORBSLAM2 运行记录
运行记录1、源码下载下来后 ,首先执行:./build.sh 进行编译2、 (这一步不是必须)进入Examples/ROS文件夹 ,为ROS包重新命一个自己喜欢的名字 ,保持原来的名字ORBSLAM2也可以,这样是为了以后有多个ORBSLAM2版本代码时可以很方便的切换要运行的版本。3、进入~/.bashrc文件,加入ROS包的路径export ROS_PACKAGE_PATH=$ROS...原创 2019-12-01 15:23:24 · 1160 阅读 · 1 评论 -
ORB-SLAM2 源码笔记(0) -系统启动
系统的入口通过ROS来调用ORBSLAM2库orbslam2中集成了一个ROS包,我们可以通过启动该ROS包中的节点来启动ORBSLAM2,因为ROS在平时做项目中是很常用的,所以就重点学习基于ROS启动ORBSLAM2的例子。orbslam2的ROS包在Examples/ROS文件夹中,源代码ROS包的名字是ORB_SLAM2,进入到ROS包中后,先打开CMakeLists.txt文件,查...原创 2020-04-13 15:51:21 · 460 阅读 · 0 评论