自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 u20.04安装slam库

模板类Sophus的依赖库是Eigen(版本为3.3.X)和fmt,需提前安装好Eigen库和fmt库。

2023-11-03 13:57:47 266

原创 c++学习【23】matlab实现FOC算法

【代码】c++学习【23】matlab实现FOC算法。

2023-09-08 16:56:27 554

原创 c++学习【22】雷达SDK发布数据到/scan

【代码】c++学习【22】雷达SDK发布数据到/scan。

2023-09-06 18:13:17 216

原创 c++学习【21】g2o

普通参数和引用参数的区别在于,普通参数会创建一个新的变量来存储传递进来的值,而引用参数则直接使用原变量的别名。另外,普通参数传递的是变量的值,而引用参数传递的是变量的地址。CurveFittingEdge是g2o的边类型,是g2o库自带的一个类。在这里,我们使用new操作符动态创建一个CurveFittingEdge的实例,在函数参数中使用引用可以避免拷贝数据,提高程序效率。引用的语法是在变量名前加上。头文件 g2o_class.h。

2023-08-29 17:44:53 214

原创 c++学习【20】slam中的PnP问题

x(x) 表示将传入的参数 x 赋值给类成员变量 _x。其中,BlockSolverType 定义了误差项的优化变量维度为 3,误差值的维度为 1,而 LinearSolverType 定义了使用 BlockSolverType 的 PoseMatrixType 作为矩阵类型的线性求解器。在 C++ 中,继承自其他类的子类在构造时需要先调用父类的构造函数,以保证父类的数据成员和函数成员可以正确初始化。而没有继承自其他类的类,则可以省略构造函数初始化列表,使用默认的无参构造函数完成初始化。

2023-08-25 18:04:36 165

原创 c++学习【19】slam中的ORB类

两个类ExtractorNode和ORBextractor。

2023-07-04 14:12:01 220

原创 c++学习【17】Tracking.cc

第一步:初始化MonocularInitialization();{// Step 1:计算当前帧特征点的词袋向量Step 2:用词袋找到与当前帧相似的候选关键帧Step 3:遍历所有的候选关键帧,通过词袋进行快速匹配,用匹配结果初始化PnP SolverStep 4: 通过一系列操作,直到找到能够匹配上的关键帧...// Step 4:利用3D-2D投影关系,优化当前帧位姿Tracking的构造函数,需要系统的指针,BOW字典指针,关键帧词代库指针,

2023-07-04 13:14:52 142

原创 c++学习【18】slam中的类

类可以获取和设置不同的配置信息,例如视图器的配置、相机的配置、ORB参数的配置以及IMU的配置。这些配置信息可以在SLAM系统中使用,以根据用户的需求调整系统的行为和性能。class ConfigParser类的作用是解析配置文件,并将配置文件中的信息存储和管理在不同的成员变量中。在SLAM中,"class Atlas" 是一个表示SLAM系统的主类。class Converter该类的作用是提供了一组将不同类型数据进行转换的静态方法。

2023-07-04 10:25:48 115

原创 c++学习【16】System.cc中的SLAM.TrackMonocular(im,tframe)

GrabImageMonocular 函数中,最核心的部分在于 Track() 函数。但是其上的 Frame 创建也是十分重要的,其中做了很多追踪需要的预备工作,如图像金字塔、特征提取,关键点矫正、特征点均匀分布等操作。类对象mpTracker、mpLocalMapper、mpLoopCloser都是十分重要的,是整个系统最最核心的3个类对象。mpTracker的初始化。

2023-06-30 14:57:40 657

原创 c++学习【15】System.cc中的初始化构造函数

线程:这是新建的 Viewer 线程,负责实时地可视化当前的地图和位姿,将地图以三维点云和相机轨迹的形式显示出来。线程:这是回环检测线程,负责检测回环,并在检测到回环时进行回环优化,从而提高SLAM系统的鲁棒性和精度。这种赋值方式实际上是将某个变量的地址存储到指针中,使得指针可以通过该地址访问该变量。mSensor是System的成员,并且private里的都是System的私有成员变量。线程:这是局部建图线程,负责处理新的关键帧,进行局部地图的更新和优化。,创建了一个新的线程,并将。

2023-06-30 14:38:32 203

原创 c++学习【14】System.h头文件分析

class Viewer等等,这些类都属于namespace ORB_SLAM2这个空间,构造函数的名称与类名称相同,构造函数没有返回类型,并且在类定义中以类名称作为函数名。当我们通过创建一个新对象来调用构造函数时,将自动执行与该类相关的构造函数。这是System构造函数的实现过程,初始化是在:之后{之前,这是c++语法吗?但是在某些情况下(比如访问静态成员函数或嵌套的类),需要使用作用域解析运算符。在 C++ 中,类的成员函数的访问和调用通常使用。

2023-06-30 13:20:07 620

原创 c++学习【13】3D-2D高斯牛顿BA迭代求解相机外参

重投影误差关于相机位姿的雅可比矩阵---是一个函数的偏导数矩阵。在每一次迭代中,通过计算雅可比矩阵,可以将相机位姿调整为使得重投影误差最小化的方向。具体地,雅可比矩阵参与到高斯牛顿优化的迭代更新过程中,用于构建线性方程组的系数矩阵和右侧向量。则直接计算平方范数的平方,避免了开根号的计算,可以提高计算速度,并且结果与平方范数相同。是一个二维向量,表示在相机坐标系下,通过相机投影将三维点投影到二维平面上得到的坐标。是一个Eigen库的函数,用于计算向量的平方范数(二范数)的平方。是该点在相机坐标系下的表示。

2023-06-29 15:39:17 764

原创 c++学习【12】已知3D点求解相机运动

已知2D-2D的匹配点,通过对极几何方法使用八点法求得本质矩阵,进而求解相机运动。特征点的3D位置可以在此之后通过三角化得到。或者由RGB-D相机确定。在使用双目或者RGB-D的视觉里程计中,可以直接使用3D到2D的方法。

2023-06-29 11:36:29 417

原创 c++学习【11】三角测量

【代码】c++学习【11】三角测量。

2023-06-29 09:04:21 128

原创 c++学习【10】对极几何求解相机运动

【代码】c++学习【10】对极几何求解相机运动。

2023-06-29 08:58:54 111

原创 c++学习【9】双目模型重建

该视差图的数值范围通常是根据算法的参数和输入图像的大小来确定,一般是一个较小的范围,比如[-128, 127]或[-64, 63]。函数将视差图的数据类型转换为CV_32F,并将每个像素的值除以16,得到实际的视差值。转换后,每个像素的值表示实际的视差值,单位为像素。并且,除以16是根据具体的算法参数来确定的,用于将之前的视差值还原为实际的视差值。注意:视差图的单位是像素,较小的视差值表示较远的距离,较大的视差值表示较近的距离。是一个单精度浮点数视差图,存储了实际的视差值,单位为像素。

2023-06-28 17:10:36 329

原创 c++学习【8】Sophus库

方法返回的是四元数的虚部,即(x, y, z, w),而通过Eigen::Quaterniond(w, x, y, z)构造的四元数可以表示为w + xi + yj + zk。类创建了一个封装了旋转和平移的刚体变换对象。构造函数接受一个四元数对象和一个三维向量对象作为参数。:这是一个二维数组或矩阵,存储了无符号短整型(unsigned short)的值。类创建了一个四元数对象。pose.txt文件中给出了[x,y,z,Q_x,Q_y,Q_z,Q_w]则被用来表示索引操作,用于访问数组或者容器中的元素。

2023-06-28 16:08:44 151

原创 BEV感知的

具体来说,geometry是一个形状为(N, 3)的numpy数组,每行表示一个三维空间点的坐标。bev_dimension是一个形状为(3,)的numpy数组,表示Bird's Eye View(BEV)的长、宽、高。将geometry的每个点的坐标进行线性组合,得到一个一维的numpy数组,用于表示该点在BEV中的位置,其中每个元素的值都表示该点在BEV中某个方向上的位置。在x、y和z方向上的鸟瞰图空间维度第一个数即。x、y和z方向上的起始位置。x、y和z方向上的分辨率。颜色按照ranks显示。

2023-06-13 23:04:33 87

原创 c++学习【7】光流法

如果一行中的单词数目不符合预期,或者某个单词中包含空格、制表符等空白字符,就会导致读取出错。是C++标准库中的一个输入流类,它可以将字符串作为输入流进行处理。当使用istringstream对象的输入流运算符>>来解析字符串时,默认情况下它会以空格为分隔符。在C++中,通常用于表示输入文件流对象,用于从文件中读取数据。我们可以这样使用,从标准输入流中读取三个整型数值,并分别存储到变量x、y、z中。对象,它被用来打开和读取associate.txt文件。将字符串解析为整型数值,并将其存储在变量x、y、z中。

2023-06-12 14:53:11 521

原创 c++学习【6】三角化获得三维点坐标,并可视化

通过对像素坐标进行归一化,即减去光心的横纵坐标,然后除以焦距,就可以得到相机坐标系下的坐标。就是R、t是已知的旋转矩阵和平移向量,at函数用于获取矩阵R和t中指定位置的元素值。投影矩阵是一个3x4的矩阵,其中前三列代表相机的旋转和缩放变换(R),第四列代表相机的平移变换(t)。转换为齐次坐标形式,然后利用两个相机的投影矩阵进行三角化,得到对应的三维点坐标。存储三角化后的三维点坐标,每个点坐标都是4x1的齐次坐标,p是输入的待转换的像素坐标,K是相机的内参矩阵。两个相机的投影矩阵,分别是3x4的矩阵,

2023-06-06 00:14:55 830

原创 c++学习【5】由匹配点推相机运动

一共找到了36组匹配点。

2023-06-05 17:52:22 188

原创 c++学习【4】提取特征

KeyPoint 是 OpenCV 中用于表示图像中关键点的结构体,包含关键点的坐标、响应值、方向等属性。Ptr 是一个智能指针类,可以指向任何 OpenCV 中的对象,并自动管理其内存。使用 Ptr 类型的智能指针,可以避免手动释放内存的繁琐操作,提高代码的可读性和可维护性。在C++中,Ptr是OpenCV库中的一个智能指针类(smart pointer),用于管理动态分配的对象。

2023-06-05 10:36:39 428

原创 c++学习【3】棋盘格标定

在C++中,vector是一个容器类,用于存储动态数组。

2023-06-02 17:33:09 1478

原创 c++学习【2】opencv

【代码】c++学习【2】opencv。

2023-06-02 15:27:36 125

原创 windows下编译opencv和opencv_contrib

打开。

2023-06-02 13:24:31 81

原创 C++学习【1】

数据类型 变量名=变量初始化;

2023-05-31 18:07:57 38

原创 torch数据类型

A=torch.rand([2,1,8,8])# 均匀分布(0,1)A=torch.randn([2,1,8,8])# 正态分布。

2023-05-06 14:16:31 39

原创 c++案例

c++

2023-02-16 09:51:10 152

原创 YOLO交通标志识别数据集准备

yolo数据集准备

2023-01-02 18:37:42 1503 2

原创 9.1 M文件

mod(days,1) ~= 0%判断days是否为整数

2022-12-06 16:20:17 76

原创 MATLAB--多项式与拟合与插值

多项式的四则运算数据拟合

2022-08-18 11:05:36 785

原创 第八讲--相似理论

orth()可以用来得到单位正交基(就是线性代数的单位化)

2022-08-09 19:04:36 357

原创 第七讲-特征值与特征向量

范数norm用于验证误差矩阵的秩rank矩阵的行列式的值det矩阵的迹trace矩阵的逆inv矩阵的正交基orth矩阵的行阶梯rref矩阵的特征向量、特征值eig齐次方程组的解null(A,'r')实对称矩阵,可以对角化,对角线元素是A的特征值,正交矩阵Q可以使A对角化,Q为A的特征向量......

2022-08-04 18:55:44 712

原创 MATLAB--练习5(矩阵解方程组)

解方程组

2022-08-03 19:59:18 932

原创 MATLAB--矩阵操作(1.4.1)

矩阵分析

2022-08-03 19:05:58 137

原创 MATLAB--矩阵操作(1.4)

eig()特征值rank()秩inv()逆

2022-08-01 18:11:00 1303

原创 MATLAB--向量操作(1.3)

dot点积cross向量的叉积det矩阵的行列式的值rank矩阵的秩

2022-08-01 10:41:11 2063

原创 MATLAB--数组操作(1.2)

矩阵操作

2022-07-31 15:27:47 802

原创 MATLAB--矩阵(1)

读取csv文件 >> datacsv=csvread('data.csv',1,1);使用excel读取txt文件,设置按空格 划分。

2022-07-31 11:22:10 359

原创 MATLAB--练习3(元胞数组)

1、legend添加说明2、xlabel('添加坐标说明3、title(总标题4、元胞数组

2022-07-30 12:26:10 165

空空如也

空空如也

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

TA关注的人

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