- 博客(21)
- 收藏
- 关注
原创 A tutorial on quantitative trajectory evaluation for visual (-inertial) odometry
定量比较估计轨迹和真值之间的差距并不是一个简单的任务,因为:(1)估计的轨迹和真值之间通常是再不同的参考系下表征的(2)轨迹包括了不同时刻的状态,这是一个具有很高维度的数据。如何将整个轨迹的信息总结为一个精确的评价指标是很困难的。就用平均值不行吗?在这篇论文中,我们假设估计值和真值之间的时间关系已经建立了。
2024-08-21 19:46:43
226
原创 faster-rcnn mmdetection版注释
其中,self(x) 调用了 base_dense_head 的 forward 函数,然后调用 anchor_head 的 forward,然后 rpn_head 又重写了 forward_single 这个函数,所以最终是通过 rpn_head 的 forward_single 函数将每一个 FPN 后的特征图通过一个共享的卷积和两个分类回归分支得到输出。上图4展示了RPN网络的具体结构。把outs的输出(cls_score_list 和 bbox_pred_list)reshape,比如说,
2023-06-15 09:46:55
150
原创 mmdetection中代码不懂的地方
self是rpn_head,因此进的是rpn_head中的forward_single函数。1. base_dense_head中forward_train函数。类实例(以及从类继承的实例),forward 方法就是用作方法的方法。是数据的占位符,它将把模块的输出转发到模型的下一层或模块。由于它是一个神经网络模块,因此需要一个输入占位符。
2023-04-19 21:59:26
110
原创 Euroc数据集,从论文中学习该数据集格式
根据euroc数据集论文,分析数据集格式。imu data.csv该文件中,陀螺仪和加速度计数据都是在传感器坐标系下表示的。也就是上右前/上左后??但是z轴加速度是负的,难道是上左后坐标系???position / pose地面位置对于地面真实数据(1)Leica Nova MS50激光轨迹跟踪器测量了安装在MAV顶部棱镜的位置。测量精度mm级别,频率20Hz(2) 有一些数据集,Vicon运动捕捉系统提供了坐标系的6D位姿信息,该坐标系是由安装在微型飞行器上的一
2022-05-14 15:20:34
935
原创 VIO系统常用初始化方法总结(3)
本文总结基于优化迭代的初始化方法。参考文献:1. VI-ORB首先利用单目视觉里程计进行初始化,得到了三维空间中一系列相机位姿和地图点。同时,通过不断对惯性测量单元的测量数据进行预积分,得到每两个关键帧之间的预积分量,与视觉方法计算出的位姿信息对齐,得到IMU 的陀螺仪偏置。之后,依次估计尺度以及重力方向、加速度计偏置、速度等信息,在简化初始化难度的同时增加迭代计算的过程,从而得到更为全面、准确的初始值。2. VINS-MonoVINS-Mono采用的初始化方法与VI-ORB.
2022-03-21 20:06:16
4675
原创 VIO系统初始化方法总结(2)
2. 求闭式解的方法参考:2014,IJCV,Martinelli——Closed-form solution of visual-inertial structure from motion;2017,RAL,Kaiser——Simultaneous state initialization and gyroscope bias calibration in visual inertial aided navigation首先定义坐标系:这里先放第2篇论文的结论,有助于对坐标系的理解.
2022-03-20 18:03:42
286
原创 vins-mono无ROS版本阅读(8)后端优化
参考:【SLAM】VINS-MONO解析——后端优化(代码部分) - 古月居 else//solver_flag = NON_LINEAR,进行非线性优化 { solveOdometry(); //<--1 //边界判断:检测系统运行是否失败,若失败则重置估计器 if (failureDetection()) //<--2 { ROS_WARN("failure detection!");
2022-03-17 11:25:50
923
原创 VINS-Mono无ROS版本代码阅读(7)初始化中的其他内容
if (solver_flag == INITIAL) { if (frame_count == WINDOW_SIZE) { bool result = false; if (ESTIMATE_EXTRINSIC != 2 && (header - initial_timestamp) > 0.1) { // cout << ".
2022-03-16 21:08:32
117
原创 VINS-Mono无ROS版本代码阅读(6):联合初始化
初始化的思路为:(1)用SFM求解滑窗内所有帧的位姿,和所有路标点的3D位置。主要函数:relativePose 和GlobalSFM construct(2)和imu预积分的值对齐,求解重力方向,尺度因子,陀螺仪偏差和每一帧的速度。前面得到的信息:滑动窗口内所有帧相对于参考帧的RT,滑动窗口内所有观察到的特征点的三维路标(相对于参考帧坐标系)本文主要阅读:visualInitialAlign部分。bool Estimator::visualInitialAlign(){
2022-03-16 20:59:56
515
原创 VINS-Mono无ROS代码阅读(5):初始化
在estiamtor.cpp中参考:VINS-Mono 代码解析二、初始化 第3部分_贵在坚持,不忘初心的博客-CSDN博客VINS-mono代码阅读 -- 初始化_半亩园的博客-CSDN博客 //【4】进行初始化,一般初始化只进行一次; if (solver_flag == INITIAL) { //frame_count是滑动窗口中图像帧的数量,一开始初始化为0,滑动窗口总帧数WINDOW_SIZE=10 if (frame_count
2022-03-15 21:08:24
3755
3
原创 VINS-Mono无ROS代码阅读(4):视差检测
进图像数据的循环参考:VINS-mono代码阅读 -- processImage_半亩园的博客-CSDN博客在进行图像处理之前,先对接收到的特征点信息进行封装,image是建立每个特征点和(camera_id,[x,y,z,u,v,vx,vy])构成的map,索引为feature_id。然后调用processImagemap<int, vector<pair<int, Eigen::Matrix<double, 7, 1>>>> image;/
2022-03-15 19:25:01
506
原创 VINS-Mono无ROS版本代码阅读(3)
后端优化线程:void System::ProcessBackEnd() 中for (auto &measurement : measurements)循环部分代码阅读 for (auto &measurement : measurements) { auto img_msg = measurement.second; double dx = 0, dy = 0, dz = 0, rx = 0, ry = 0
2022-03-15 11:45:27
552
原创 VINS-Mono无ROS版本代码阅读(2)
目录2 后端线程2.1 .h文件和.cpp文件的关系2.2void System::ProcessBackEnd()(1)vector, ImgConstPtr>> measurements(2)ImgConstPtrIMG_MSG结构体(3)unique_lock 多线程运行(4)获取观测数据,包括imu数据和图像数据(5)getMeasurements函数while内部函数(1)queue 定义while内部函数(2)这个函数的主要目的:.
2022-03-14 19:44:18
1549
原创 VINS-Mono 无ROS版本 代码阅读(1)主函数
来源:https://github.com/HeYijia/VINS-Course参考:VINS-Mono代码精简版代码详解-无ROS依赖(一)_jiweinanyi的博客-CSDN博客0 前面定义std::shared_ptr<System> pSystem;智能指针,参考c++ primer P400shared_ptr是智能指针的一类,用于管理动态对象,允许多个指针指向同一个对象。<>内给出指向的类型,之后是所定义的这种智能指针的名字。上述语句的意
2022-03-14 14:59:31
786
原创 c++ primer笔记
// 作用域运算符:: 表明使用定义在命名空间std中的名字coutstd::cout 1.5 类简介假定类名为Sales_item // item 是一个Sales_item类型的对象Sales_item item;一般而言,类的作者定义了类类型对象上可以使用的全部操作。标准库头文件 <> 非标准库头文件 “”item1.isbn() //item1是一个类对象,isbn是成员函数,点运算符(.)表达:名为item1的对象的isbn成员。点运算符只能用...
2022-03-05 21:02:46
316
原创 VINS-MONO论文学习
红色字体为自己的理解/疑问0 摘要低精度IMU包括回环检测模块;采用4自由度图优化策略去增强全局一致性;此外,所提出的系统可以通过以有效的方式保存和加载地图来重用地图。当前和以前的地图可以通过全局姿势图优化合并在一起提出系统可应用于:无人机、机器人、移动设备(ios)1 引言IMU测量的集成可以通过桥接由于照明变化,无纹理区域或运动模糊导致的视觉轨迹损失之间的间隙来显着改善运动跟踪性能。VINS目前存在的问题:(1)初始化。由于缺乏直接距离测量,难以将单眼视觉与惯性测
2022-03-02 19:59:47
959
原创 MSCKF论文学习
参考资料:notesMSCKF 公式推导_努力努力努力-CSDN博客_msckf推导MSCKF那些事(一)MSCKF算法简介 - 知乎0. 说明左边代表的是传统EKF-SLAM, 红色五角星是old feature,这个也是保存在状态向量中的,状态向量为之前的所有特征点和最新的位姿;中间这张可以表示的是keyframe-based SLAM, 它会保存稀疏的关键帧和它们之间相关联的地图点;最右边这张则可以代表MSCKF的一个基本结构, MSCKF中老的地图点和滑窗之外的相机姿
2022-03-02 10:29:04
3285
原创 视觉slam十四讲高翔程序调试
一、C4:Sophus模板库的安装问题:Sophus模板库在安装的时候,cmake..可以跑通,但是make到3%的时候,会报错 fmt/core。。。。问题,具体忘记了,解决方法如下:git checkout 00f3fd900f3fd9是2018年的一个模板类的版本 ,来自:eigen冲突 sophus 安装_SLAM-Sophus模板库安装总结_weixin_39705931的博客-CSDN博客感谢这个博主!解决我卡了很久的问题。二、C7:pose_estimation3d3d
2022-02-18 19:16:36
251
原创 C4 李群和李代数 程序调试
对视觉slam十四讲李群和李代数一章程序的学习,参考链接如下:https://www.icxbk.com/article/detail/1313.html(最后的代码写的很好,相比于书中代码调试的更全,推荐)。Sophus库编程基础 - 掘金Sophus 李群 --[SO3]_luoshi006的博客-CSDN博客一、理论相机旋转——>旋转矩阵相乘——>李群的乘法(李群是无约束的)——>李代数的加法对李代数的求导二、程序十四讲中的程序1. eig
2022-02-16 20:36:13
661
转载 Kdevelop操作相关
一、创建新的c++程序并编译运行Kdevelop学习笔记2--第一个C++程序_一只小橘猫的博客-CSDN博客_kdevelop怎么编译和运行程序
2022-01-30 22:29:24
191
原创 视觉slam十四讲 编程学习
从零开始学习视觉slam十四讲,之后需要补充C++基础知识、linux基础知识,在此先记录一些常用的语句,不用每次都搜索啦。一、vim编辑器来源:ubuntu上使用vim编辑文本内容 - 小何同學 - 博客园保存,不退出vi --------------------------------------------- :w强制保存,不退出vi--------------------------------------- :w!将修改另外保存到file中,但不退出vi(不常用)----...
2022-01-27 18:23:14
1561
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人