自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 vins-mono vins_estimator 代码解析

的谓词判断pred,检查迭代器区间[first, last)上的每一个元素,如果迭代器iter满足pred(*iter) == true,表示找到元素并返回迭代器值iter;未找到元素,则返回last。std::thread 建立线程 template explicit thread(Fn&& fn, Args&&... args);上锁手动 解锁自动化。

2022-11-26 17:27:32 133 1

原创 vins-mono feature_tracker 代码解析

{//对光流跟踪到的特征点forw_pts,按照被跟踪到的次数cnt从大到小排序});a b为自定义的数据类型指针,const pair确定输入形式,a.first b.first确定比较元素为第一个元素,按照从大到小的顺序进行排序。

2022-10-28 18:22:30 432

原创 VINS-mono ubuntu20.04bug修复总结

[feature_tracker-2] [pose_graph-4] /home/shaozu/output/pose_graph/ not exists问题

2022-10-24 20:52:59 1603 1

原创 linux系统中PATH LIBRARY_PATH LD_LIBRARY_PATH

PATH 代表可执行文件的路径,终端中可以直接运行的命令都在PATH路径下;通过which命令可以显示命令对应可执行文件位置。LIBRARY_PATH 代表在程序编译期间查找动态链接库时指定的查找路径。LD_LIBRARY_PATH 代表在程序执行期间调用动态链接库的查找路径。mv 源文件 目标文件 用于文件的重命名。

2022-10-24 19:53:01 423

原创 ROS Ubuntu20.04多版本opencv运行及bug解决

由于ROS系统自带opencv,在链接库时候,会引入多版本的库文件(target_link_libraries(... ${catkin_LIBRARIES} ${OpenCV_LIBRARIES}) catkin_LIBRARIES包含一些opencv链接库。(32条消息) ROS中catkin_make的OpenCV冲突的解决(踩坑小记,报错分析)_MendozaG的博客-CSDN博客。其中:/home/arrow/lib_z/opencv-3.2.0/build为自定义opencv安装目录。

2022-10-23 10:42:25 3366

原创 Ubuntu20.04使用bug记录

sudo apt-get install ros-你的ROS版本号(我这里是noetic)-random-numbers。sudo In -s 源文件 目标文件 该命令相当于建立源文件与目标文件之间的联系,超链接。最后输入 rosparam get /rosdistro。打开新终端,输入 rosparam list。先在终端输入roscore。

2022-09-24 16:41:38 175

原创 slam-前端数学知识

常用八点法,因为八点法只利用线性性质,可以在线性代数框架下求解,满秩系数矩阵零空间维数为一,维数为一恰恰印证了尺度等价性,对于系数方程,需要满足秩为八的条件,可以求解出本质矩阵E。对于H矩阵求解得到的R和t,通过正深度排除两个点,同时可以计算得出平面的法向量,结合先验信息(已知场景可能的平面法向量)根据线性方程求解得到的E,如果不满足内在性质,可以直接将对角阵改变为(1,1,0),或者将E投影到所在流形上。基础矩阵自由度下降,会得到单应矩阵,按八点法估计会引入噪声,同时求解H和E,取重投影误差小的。

2022-09-24 15:53:32 111

原创 slam中的数学知识

设 A 为 n 阶对称矩阵,λ是 A 的特征方程的 k 重根,则矩阵 A -λE 的 秩 R(A -λE)= n-k,从而对应特征值λ恰有 k 个线性无关的特征向量.设 A 为 n 阶对称矩阵,则必有正交矩阵 P,使 P -1 A P = P T A P =Λ,其 中Λ 是以 A 的 n 个特征值为对角元的对角矩阵.我们把对称矩阵A叫做二次型f的矩阵,也把f叫做对称矩阵A的二次 型.对称矩阵A的秩就叫做二次型f的秩.(ii)有惟一解的充分必要条件是 R(A)= R(A,b)= n;

2022-09-09 11:19:41 754

原创 S-MSCKF(前端)代码解读

这里主要提一下源代码作者采用的损失函数,因为只要求代表大小,不要求精确的值,尺度不确定,所以仅仅使Ax,AY.Az最小值对应的平移量为一,其他用上面其中一个式子求解即可,详细见代码。type=“file_name” 可执行文件的名称,如果是用Python文件就写xxx.py,如果是cpp就写编译生成的可执行文件名。5.检查是否为纯旋转,在纯旋转情况下,平移量t几乎为零,计算diff的平方,小于一定阈值,为纯旋转。调用ROSbag,记录的话题(cam0_image,cam1_image,imu)开始发送。..

2022-08-09 19:56:29 1050

原创 MSCKF学习笔记

现代的陀螺仪(MEMS)输出的是旋转变化率(RotationalRate),而不是Rotation本身,所以需要对陀螺仪的输出对时间积分才能得到朝向信息,在积分的过程中,随着时间的积累,误差也会持续累积,最终使得朝向发生偏移(Drift)。(1)IMU简介测量物体三轴姿态角及加速度的装置。对于机器人的运动,增大不确定的程度,可以使算法更具有鲁棒性,很好的应对一些不成立的假设。通过使用视觉里程计(前端),可以得到相对于机器人的三维坐标。的建立测量值,可以用传感器直接测量得到的参数值。............

2022-07-17 21:29:01 1734

原创 EKF(拓展卡尔曼滤波)学习笔记:

注意,slam中EKF是离散形式存在的,x(k-1)是变量,x(k-1).hat是变量值,计算概率时,带入进去。不是单纯的数值,而是一个状态分布函数,是一个概率函数,程序的更新,只需要维护一个状态变量,对其进行更新即可。(2)通过上一时刻状态来更新新的时刻的状态,考虑状态转移函数,外力作用,同时考虑系统的不确定性。概率论角度来说似然由观测方程给出,先验由过去所有状态给出,对于KF,由上一时刻状态给出。x代表某一时刻的所有状态,代表该状态下所有的观测。有上一时刻的状态,加系统输入得到系统的先验分布。...

2022-07-16 15:35:19 1387

原创 slam学习笔记(2)-基于视觉slam14讲

直接法的计算:1.关键点的提取与描述子计算非常耗时(描述子匹配不怎么消耗时间)2.图像信息的丢失3.特征缺失的地方,特征点数量下降,找不到足够的匹配来计算相机运动改进方法:(1)只计算关键点,不计算描述子(保留特征点的方法),使用光流法来跟踪特征点的运动,可以避免计算和匹配描述子的时间开销依据的为特征点(2)只使用关键点,不计算描述子,使用直接法计算特征点在下一时刻图像中位置,省去描述子计算,省去光流的计算依据的为随机选取的点,通过像素值亮度来判断选取直接法优点:依据像素的亮度信息,可以完全不用计算特征点和

2022-07-13 20:23:08 596

原创 slam学习笔记(1)

本文为高翔博士slam14讲学习笔记旋转向量与旋转矩阵转化:四元数表示的旋转:三维旋转可以由单位四元数来描述,四元数也具有实部和虚部,类似于二维平面中的复数用eigen包可以进行所有不同类型数之间的转化群:集合加代数运算结构,G=(A,.)李群:一种光滑连续的群李代数:由一个集合,一个数域,一个二元运算(也称为李括号)组成 g=(R^3,R,x),构成一个李代数李代数表示在李群某一位置的导数特征李群李代数转换,指数映射与对数映射对于so,指数映射值罗德里格斯公式BCH近似: 左乘微小旋转,李群上的相乘等于李

2022-06-15 16:20:46 822

原创 SIFT特征检测算法

转载:[机器视觉] SIFT特征-尺度不变特征理解 - aoru45 - 博客园 (cnblogs.com)关于关键点精确定位的说明:通过泰勒展开得出初选的关键点附近的拟合函数,求导使其为零,得出偏移量,确定关键点精确位置任何一个函数表达式,均可有泰勒公式进行展开泰勒公式应用,(14条消息) Harris角点检测原理详解_lwzkiller的博客-CSDN博客_harris角点检测原理通过一阶线性展开的近似,对目标函数进行化简协方差矩阵,求不同变量之间相关性,大小为变量数的平方(14条消息) 协方差的计算

2022-06-06 11:47:35 156

原创 ros 编译运行

方法一:cd 自定义空间名称catkin_make新终端 roscorecd 自定义空间名称source ./devel/setup.bashrosrun 包名 C++节点

2022-06-02 18:07:21 394

原创 linux python C++ 混合编程

windows C++ 生成动态库+静态库(11条消息) C++生成和使用库文件_shaojunbo24的博客-CSDN博客编译生成中间文件obj(11条消息) C/C++中的Obj文件_fancy_sky的博客-CSDN博客_c++ objlinux下链接库的编译与链接(11条消息) gcc/g++ 链接库的编译与链接_surgewong的博客-CSDN博客_g++ 使用动态库python 调用C++ 和 C++调用python...

2022-05-27 21:16:00 285

原创 pytorch层冻结

1.基础知识搭建网络:去除resnet18 fc层,取出剩余网络,自定义fc层class test(nn.Module): def __init__(self, num_classes=2): super().__init__() net = models.resnet18(pretrained=True) net.fc= nn.Sequential() # 将分类层(fc)置空 self.features = net

2022-05-27 08:28:12 503

原创 剑指offer

1.位运算,求十进制数二进制表达中1的个数:x&=(x-1),这种更新方式对于x是以2的倍数相减,故复杂度为logn2.动态规划:拆分子问题,记住过往,减少重复计算,记住求过的解来节省时间动态规划特征:最优子结构、状态转移方程、边界、重叠子问题一个问题,可以把所有可能的答案穷举出来,并且穷举出来后,发现存在重叠子问题,就可以考虑使用动态规划。解题思路:1.穷举分析:自下而上,对所有可能情况进行穷举分析2.确定边界:最下层位置,起点3.找规律,确定最优子结构4.写出状态转移

2022-05-19 11:41:19 40

原创 ubuntu下cmake工程基础

1.编译执行过程mkdir buildcd buildcmake ..make% ./生成的可执行文件名在 Linux 中,库文件分成静态库和共享库两种,差别在于静态库每次被调用都会生成一个副本, 而共享库则只有一个副本,更省空间。所有库文件都是函数.a 静态库 .sa共享库 库文件中含有编译好的库函数头文件用于说明库文件中的函数如何调用(1条消息) 【CMake】CMakeLists.txt的超傻瓜手把手教程(附实例源码)_Yngz_Miao的博客-CSDN博客_cma

2022-03-20 15:46:22 102

原创 Sophus(模板)安装,时间2022/3/19

1.fmt安装fmt下载Ubuntu解压至某一文件夹:cd 解压至的文件夹mkdir buildcd buildcmake ..makesudo make install2. eigen安装eigen下载:wget https://gitlab.com/libeigen/eigen/-/archive/3.4-rc1/eigen-3.4-rc1.zipunzip eigen*.zipcd eigen-3.4-rc1/mkdir buildcd buildc..

2022-03-19 12:07:18 425

原创 Linux下cmake工程编译

1.获取cmake项目,可以来自于自己编写,GitHub.......cd 项目文件夹mkdir buildcd buildcmake ..makesudo make install工程安装完成以后,会在usr/local/include文件夹下更新cmake项目时,只需要重新编译安装即可,不需要卸载...

2022-03-19 11:56:32 211

原创 ubantu文件查找配置技巧

sudo updatedb #更新文件信息locate 文件名 #查找相应文件sudo apt-get --purge remove <programname> #卸载程序sudo rm -rf 文件路径 #删除文件sudo rm -rf /home/yourname/.local/share/Trash/ #清空垃圾箱

2022-03-19 09:50:46 509

原创 图像的直方图均衡化

s为变化后该点的像素值,r为变化前该点的像素值,L为像素值的可能取值范围,对于8位的数据,取值为256.直方图均衡化离散形式,图像处理中使用的公式:

2022-03-13 18:44:18 4521

原创 0xC0000005: 读取位置 xxx时发生访问冲突

1.指针为空指针:nullptr错误提示:引发了异常: 读取访问权限冲突。a 是 nullptr。2.野指针:访问delete或free后的指针变量错误提示:引发了异常: 读取访问权限冲突。a 是 0x8123。3.数组越界:malloc一个100内存的空间用于读入文件,当文件的大小超过100时,并且程序中再使用100之后的内存时,就会产生“0xC0000005: 读取位置 xxx时发生访问冲突”这样的错误。...

2022-03-13 18:41:36 8538

原创 图像增亮,去雾,检测识别

基于快速去雾的图像亮度增强方法 | (rzwm.github.io)低亮度图片增强算法:基于去雾算法的低亮度图像增强算法 - 简书 (jianshu.com)paper地址:untitled (dongxuan8811.github.io)直方图处理:CV任务中如何解决图像光照度不均匀的问题 - 哔哩哔哩 (bilibili.com)gamma变换:深度学习数据增强之亮度变换 - 知乎 (zhihu.com)黑暗中的yolo:黑暗中的YOLO:解决黑夜里的目标检测 | ECCV 202.

2022-03-02 21:53:57 3933

原创 利用pytorch搭建三层全连接神经网络,cifar10验证集上正确率55.3%

import torchfrom torch.autograd import Variableimport numpy as npimport matplotlib.pyplot as pltfrom torch.utils.data import sampler%matplotlib inlinefrom torch import nn,optimfrom torch.utils.data import DataLoaderfrom torchvision import datasets.

2022-02-27 16:01:53 1727 1

原创 基于cs231n作业,利用tensor搭建神经网络,并通过autograd自动进行反向传播

在对于计算资源紧张的 边缘设备,要注意以下英文内容always copiesdata. If you have a Tensordataand just want to change itsrequires_gradflag, userequires_grad_()ordetach()to avoid a copy. If you have a numpy array and want to avoid a copy, usetorch.as_tensor().本文源于CS23...

2022-02-26 18:06:59 561

原创 matplotlib绘图,绘制多条线段

基本绘图:import matplotlib.pyplot as plta=[0.005,0.01,0.02,0.04,0.06]b=[20,18,10,13,15]plt.plot(a,b)plt.xlabel("初始位移量/mm")plt.ylabel("迭代次数")plt.show()采用子图subplots绘制多条线段:import matplotlib.pyplot as pltimport numpy as npa=[1,2,3]b=[4,5,6]c.

2022-02-18 21:05:31 2994

基于cs231n作业,利用tensor搭建神经网络,并通过autograd自动进行反向传播

对pytorch数据类型tensor进行学习和实践,不使用pytorch高级模块,仅使用tensor搭建神经网络,加强对tensor数据类型的学习和理解

2022-02-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除