- 博客(26)
- 收藏
- 关注
原创 IMU模型与标定
文章目录IMU传感器旋转运动学测量模型与运动模型MEMS加速度计陀螺仪IMU误差模型确定性误差确定性误差标定方法——六面法温度相关随机误差随机误差的标定方法——Allan方差法数学模型加速度计陀螺仪VIO中模型运动模型离散积分方法欧拉法中值法(mid-point)四阶龙格库塔(RK4)总的标定流程IMU传感器旋转运动学旋转的线速度为:r˙=(−aθ˙sinθ,aθ˙cosθ,0)⊤=...
2020-03-20 02:34:52
2736
原创 DSM: Direct Sparse Mapping
Direct Sparse MappingIntroduction滑窗的会边缘化掉离开视场的点,同时来保证可观性的一致,不能重用边缘化的地图点特征点法一般根据共视关系选固定位置的激活关键帧和地图点,通过固定一帧的策略保证可观性选择以前的关键帧,结合时间和共视关系来选择激活的关键帧时间上远的帧会受drift影响,因此使用多尺度优化,来增加收敛半径由于距离远伪观测(外点)会增加,使用t分...
2020-03-17 02:56:33
2778
3
原创 Direct Sparse Visual-Inertial Odometry using Dynamic Marginalization
Direct Sparse Visual-Inertial Odometry using Dynamic Marginalization1把尺度,重力方向放进模型中进行联合优化由于尺度不是立刻就可观的,因此我们以任一尺度进行初始化,而不是延迟初始化到量都变得可观之后(VIORB)。对旧的量进行部分边缘化,为了保证一致性,提出“动态边缘化”策略。因此在尺度远离最优值时也可以采用边缘化。D...
2020-03-17 02:52:31
1269
原创 流形上的预积分
文章目录一、预积分的由来二、相关理论三、初步a.黎曼几何概念b.SO(3)中不确定性的描述c.流形上的高斯牛顿法四、最大后验视觉惯导状态估计五、IMU模型和运动积分六、流形上的IMU预积分A. *Preintegrated IMU Measurements*(1)ΔRij\Delta {\bf R}_{ij}ΔRij项(2)Δvij\Delta {\bf v}_{ij}Δvij项(3)Δpij...
2020-03-17 02:47:47
1059
原创 简单光流实现
文章目录金字塔LKT实现问题描述跟踪算法图像金字塔金字塔特征跟踪迭代光流计算亚像素计算边缘部分特征跟丢判别特征选择金字塔LKT实现问题描述估计一个速度,找到对应的特征位置v=u+d=[ux+dxuy+dy]T\mathbf{v}=\mathbf{u}+\mathbf{d}=\left[u_{x}+d_{x} \quad u_{y}+d_{y}\right]^{T}v=u+d=[ux+dx...
2020-03-17 02:22:20
403
原创 SLAM在线光度标定总结
文章目录Introduction[^1]光度模型跟踪前端优化后端Introduction[^2]Method假设(Assumptions)衰减因子估计(Attenuation Factor Estimate)相机CRF图像矫正关键帧光度标定光照变化的应对代价函数描述子光照变化鲁棒方程全局模型局部偏差类似特征描述子实验结果ReferenceIntroduction1直接法依赖于光度恒定假设,但是...
2020-03-17 02:21:04
2281
2
原创 SLAM中边缘化与一致性
文章目录基于图的SLAM[^1]马尔科夫毯上通过边缘化移除节点边缘化后的先验分布相对MLE公式备注边的稀疏化在线确定稀疏拓扑构建一致稀疏因子解耦稀疏化和边缘化VO中的滑窗介绍[^2]滑窗VOBA旧状态边缘化估计的一致性物理解释性能改进办法举例SLAM中边缘化与高斯推断的边缘概率区别Reference基于图的SLAM1使用因子图表示,节点表示状态,边表示约束,通常形式为:zij=hij(xi,...
2020-02-21 00:42:20
3788
1
原创 SLAM中最小二乘优化
文章目录BA最小二乘的本质最小二乘问题(Least-squares Minimization)超定方程正规方程的几何解释:适定方程因式分解LU分解Cholesky分解LDLT分解分块消元非线性最小二乘问题(Non-linear Least-squares)SLAM常用的迭代优化算法GN收敛性GN的缺点最速下降法LMDog-LegPCG求解方法求解状态量协方差求解稀疏形式鲁棒核函数未来问题(胡言论语...
2020-02-20 23:15:49
1419
6
原创 SLAM 中常用的相机模型&畸变模型总结
文章目录OverviewCamera modelsPinholeomnidirectionalDistortion modelsEquidistant (EQUI)RadtanFOVProjection modelFull projection modelMEI CameraPinhole Cameraatan CameraDavide Scaramuzza CameraExamplesC++ C...
2019-05-29 09:54:10
18756
11
原创 SVO之逆深度滤波
文章目录概率深度模型贝叶斯推断参数近似后验种子点的修剪参数近似推导变分推断推导[^2]后验参数近似Details[^4]测量更新不确定性测量Reference概率深度模型贝叶斯推断深度的测量包括两种,一种是正确的测量,一种是由于遮挡、图像变换或重复纹理导致的错误的测量。如块匹配时,有可能包括误差很大的外点。研究发现:好的测量值通常是分布在正确深度值附近的。错误的测量是在深度范围[Zm...
2019-03-10 22:45:43
1302
原创 ubuntu折腾三部曲(一)——Gnome桌面
文章目录写在前面Gnome的安装写在前面——生命不息,折腾不止从毕设开始忙各种事,算下来已经有一年没有更博客了。说到底还是一个字,懒!生于忧患死于安乐,安逸是大敌啊。今天惊喜地发现优快云竟然有了MarkDown的功能,这就更让我有了更新的欲望。抱着生命不息折腾不止的态度,先来写写自己折腾的那些玩意儿。Gnome的安装Ubuntu18.04放弃了Unity桌面,默认使用了Gnome桌面...
2019-03-10 22:19:13
14228
原创 IMU-Camera 联合标定资料总结
最近在研究imu和相机的联合标定方法,根据网上查到的资料和github上的开源工具总结如下。1、联合标定的工具Kalibrhttps://github.com/ethz-asl/kalibrwiki写的很全了,总结以下要点:需要:1、内参:尺度,轴偏差、非线性(应用到raw measurements)2、陀螺仪和加速度计的噪声和随机游走偏差3、标定图像,很成熟了,使用ros中的工具箱就行。采集图像...
2018-04-09 12:41:59
10362
12
原创 shared_ptr的详解
参考:《C++ primer 第五版》 https://www.cnblogs.com/boydfd/p/5146432.html (需要多看几遍)前言程序中常用的存储形式如下。静态内存:static对象,类static的数据成员,函数外的变量。栈内存:函数内的非static对象。自由空间或堆:动态分配的对象,程序控制生命周期。动态内存与智能指针从前,我们使用运算符n...
2018-04-09 11:27:17
12214
原创 C++中static_cast, dynamic_cast, const_cast, reinterpret_cast
前言 题目中这些都是C++类型的层次转换,也可以说是强制转换,说道这里可能会想起C语言中的类型转换(有强制和隐式的)。对,他们是类似的,除此之外C++提供了更为安全的方法,即static_cast, dynamic_cast, const_cast, reinterpret_cast。C中语法:(type) name;//格式1 type name;//格式2C++中新加入的语法:static...
2018-03-28 12:40:13
347
转载 SLAM算法工程师学习方向
https://www.cnblogs.com/xtl9/p/8053331.htmlhttps://zhuanlan.zhihu.com/p/285655631.编程基础《Effective C++》《C++ Primer》《Effective STL》 c++112.数据结构与算法。入门推荐 《数据结构(C++ 语言版)》刷题,leetcode和剑指offer。时间来不及推荐这个3.S...
2018-03-28 09:33:01
5779
原创 ROS常用命令
ROS命令在http://wiki.ros.org/ROS/CommandLineTools上的维基页面上有详细描述。另外,在https://github.com/ros/cheatsheet/releases的存储库中,总结了本章中的一些重要命令。这些是本内容的有用的辅助资料。ROS信息命令具体如下:rostopic list -v 可以分开发布话题和订阅话题,并将每个话题的消息类型一起显示。...
2018-03-19 19:51:45
475
原创 ROS--构建系统
序言 ROS使用catkin构建系统,可以轻松使用与ROS相关的构建、功能包管理和功能包之间的依赖关系。它实际上是一种CMake(Cross Platform Make),可以跨平台使用,使用CMakeLists.txt描述。1、创建功能包命令:$ catkin_create_pkg [功能包名称][依赖功能包1][依赖功能包n]会自动生成CMakeList.txt和package.xml文...
2018-03-14 19:36:45
1918
原创 ‘clang-format'在Roboware中显示不可用
系统:ubuntu 16.04Clang-format作为插件可以自动排列美化代码。安装后,在Roboware中可以使用ctrl+shift+p,输入“format”或者快捷键Ctrl+Shift+I。但是明明安装却显示:The ‘clang-format’ command is not available. Please check your clang.formatTool user sett...
2018-03-14 18:21:36
3690
原创 codeblocks使用CMakeList.txt生成编译项目
系统版本:Ubuntu 16.04CodeBlocks版本:16.01codeblocks下常规的配置编译命令是在Settings->Compiler这里配置,例如链接库在Linker settings中,如下图:但是当我们使用的库比较多时,每次都需要配置链接库,然后说不定还有一大把依赖库需要配置进去,每次解决编译的问题就好麻烦。相反使用cmake的就需要一个find_package这么轻松...
2018-03-14 11:35:31
5929
1
转载 int const *, const int *, int * const区别
碰到了以下代码: bool operator()(const T* const abc, T* residual ) const对const的用法,一直不解。参考:http://blog.youkuaiyun.com/skywalker_leo/article/details/48627933 http://blog.youkuaiyun.com/hsd2012/article/detai...
2018-03-13 15:07:04
757
转载 结构体在C语言和C++中的不同
碰到以下代码,感觉和类差不多,查了下区别。struct CURVE_FITTING_COST{ CURVE_FITTING_COST( double x, double y ) : _x( x ), _y( y ){} //残差的计算 template<typename T> bool operator()(const T* const abc, T*...
2018-03-13 14:10:50
714
原创 约瑟夫环问题的两种解法(详解)
题目: Josephus有过的故事:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓。于是决定了自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀。然后下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从,Josephus要他的朋友先假装遵从,他将朋友与自己安排在第16个与第31个位置,于是逃...
2018-03-10 09:46:04
42032
6
翻译 ROS的编码风格和命名约定
参考:http://wiki.ros.org/CppStyleGuide可以使用clang-format来自动格式化(不要理解错了,formatting)你的代码.1、命名规则有以下几种命名格式:CamelCased:名称以大写字母开头,每个新单词都有大写字母,不带下划线。camelCased:和CamelCase一样,但是用小写的第一个字母under_scored:该名称只使用小写字母,单词之间...
2018-03-09 17:09:35
3202
原创 ubuntu下好用的截图编辑软件-hotshots安装教程
Ubuntu下自带的截屏软件只有截图功能,而不具有编辑添加文字、图形、线条等功能。hotshots除了这些功能还可以:打开单独的图片直接编辑剪裁图片高亮荧光笔添加数字序列号记住上一次截图的位置上传图片到服务器上图:下载地址:https://sourceforge.net/projects/hotshots/安装为源码编译安装,过程如下:第一步:解压下载的安装包。第二步:进入文件夹HotShots-...
2018-03-08 16:22:06
1558
原创 线性表之单循环链表
单链表必须从头结点出发才能访问全部节点。为了解决这个问题,将单链表中的终结点的指针从NULL改为指向头结点,这就形成了一个环,头尾相接的单链表叫单循环链表,简称循环链表。注意:循环链表与单链表的主要差异在空链表的判断上:种类空链表非空链表循环链表head->next == headhead->next != head单链表head->next == nullhead->ne...
2018-03-08 11:01:07
1629
原创 ubuntu16.04下ROS Kinetic详细安装过程
参考网址:点击打开链接参考文献:《ROS机器人编程》配置环境:ubuntu 16.04 LTS + ROS Kinetic一、安装ROS1、设置镜像源为了保证安装速度,需要选择国内的镜像。可参考点击打开链接2、设置网络时间协议为了缩小PC间通信中的ROS Time的误差,下面我们设置NTP 。设置方法是安装chrony之后用ntpdate命令指定ntp服务器即可。这样一...
2018-03-05 20:58:14
13103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人