<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m0_46973820的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_46973820</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_46973820]]></copyright><item><title><![CDATA[u20.04安装slam库]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/134199857</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/134199857</guid><author>m0_46973820</author><pubDate>Fri, 03 Nov 2023 13:57:47 +0800</pubDate><description><![CDATA[模板类Sophus的依赖库是Eigen(版本为3.3.X)和fmt，需提前安装好Eigen库和fmt库。]]></description><category></category></item><item><title><![CDATA[c++学习【23】matlab实现FOC算法]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/132763926</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/132763926</guid><author>m0_46973820</author><pubDate>Fri, 08 Sep 2023 16:56:27 +0800</pubDate><description><![CDATA[【代码】c++学习【23】matlab实现FOC算法。]]></description><category></category></item><item><title><![CDATA[c++学习【22】雷达SDK发布数据到/scan]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/132720892</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/132720892</guid><author>m0_46973820</author><pubDate>Wed, 06 Sep 2023 18:13:17 +0800</pubDate><description><![CDATA[【代码】c++学习【22】雷达SDK发布数据到/scan。]]></description><category></category></item><item><title><![CDATA[c++学习【21】g2o]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/132559185</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/132559185</guid><author>m0_46973820</author><pubDate>Tue, 29 Aug 2023 17:44:53 +0800</pubDate><description><![CDATA[普通参数和引用参数的区别在于，普通参数会创建一个新的变量来存储传递进来的值，而引用参数则直接使用原变量的别名。另外，普通参数传递的是变量的值，而引用参数传递的是变量的地址。CurveFittingEdge是g2o的边类型，是g2o库自带的一个类。在这里，我们使用new操作符动态创建一个CurveFittingEdge的实例，在函数参数中使用引用可以避免拷贝数据，提高程序效率。引用的语法是在变量名前加上。头文件 g2o_class.h。]]></description><category></category></item><item><title><![CDATA[c++学习【20】slam中的PnP问题]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/132488617</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/132488617</guid><author>m0_46973820</author><pubDate>Fri, 25 Aug 2023 18:04:36 +0800</pubDate><description><![CDATA[x(x) 表示将传入的参数 x 赋值给类成员变量 _x。其中，BlockSolverType 定义了误差项的优化变量维度为 3，误差值的维度为 1，而 LinearSolverType 定义了使用 BlockSolverType 的 PoseMatrixType 作为矩阵类型的线性求解器。在 C++ 中，继承自其他类的子类在构造时需要先调用父类的构造函数，以保证父类的数据成员和函数成员可以正确初始化。而没有继承自其他类的类，则可以省略构造函数初始化列表，使用默认的无参构造函数完成初始化。]]></description><category></category></item><item><title><![CDATA[c++学习【19】slam中的ORB类]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131532922</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131532922</guid><author>m0_46973820</author><pubDate>Tue, 04 Jul 2023 14:12:01 +0800</pubDate><description><![CDATA[两个类ExtractorNode和ORBextractor。]]></description><category></category></item><item><title><![CDATA[c++学习【17】Tracking.cc]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131478779</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131478779</guid><author>m0_46973820</author><pubDate>Tue, 04 Jul 2023 13:14:52 +0800</pubDate><description><![CDATA[第一步：初始化MonocularInitialization();{// Step 1：计算当前帧特征点的词袋向量Step 2：用词袋找到与当前帧相似的候选关键帧Step 3：遍历所有的候选关键帧，通过词袋进行快速匹配，用匹配结果初始化PnP SolverStep 4: 通过一系列操作,直到找到能够匹配上的关键帧...// Step 4：利用3D-2D投影关系，优化当前帧位姿Tracking的构造函数，需要系统的指针，BOW字典指针，关键帧词代库指针，]]></description><category></category></item><item><title><![CDATA[c++学习【18】slam中的类]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131528017</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131528017</guid><author>m0_46973820</author><pubDate>Tue, 04 Jul 2023 10:25:48 +0800</pubDate><description><![CDATA[类可以获取和设置不同的配置信息，例如视图器的配置、相机的配置、ORB参数的配置以及IMU的配置。这些配置信息可以在SLAM系统中使用，以根据用户的需求调整系统的行为和性能。class ConfigParser类的作用是解析配置文件，并将配置文件中的信息存储和管理在不同的成员变量中。在SLAM中，"class Atlas" 是一个表示SLAM系统的主类。class Converter该类的作用是提供了一组将不同类型数据进行转换的静态方法。]]></description><category></category></item><item><title><![CDATA[c++学习【16】System.cc中的SLAM.TrackMonocular(im,tframe)]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131476531</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131476531</guid><author>m0_46973820</author><pubDate>Fri, 30 Jun 2023 14:57:40 +0800</pubDate><description><![CDATA[GrabImageMonocular 函数中，最核心的部分在于 Track() 函数。但是其上的 Frame 创建也是十分重要的，其中做了很多追踪需要的预备工作，如图像金字塔、特征提取，关键点矫正、特征点均匀分布等操作。类对象mpTracker、mpLocalMapper、mpLoopCloser都是十分重要的，是整个系统最最核心的3个类对象。mpTracker的初始化。]]></description><category></category></item><item><title><![CDATA[c++学习【15】System.cc中的初始化构造函数]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131474619</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131474619</guid><author>m0_46973820</author><pubDate>Fri, 30 Jun 2023 14:38:32 +0800</pubDate><description><![CDATA[线程：这是新建的 Viewer 线程，负责实时地可视化当前的地图和位姿，将地图以三维点云和相机轨迹的形式显示出来。线程：这是回环检测线程，负责检测回环，并在检测到回环时进行回环优化，从而提高SLAM系统的鲁棒性和精度。这种赋值方式实际上是将某个变量的地址存储到指针中，使得指针可以通过该地址访问该变量。mSensor是System的成员，并且private里的都是System的私有成员变量。线程：这是局部建图线程，负责处理新的关键帧，进行局部地图的更新和优化。，创建了一个新的线程，并将。]]></description><category></category></item><item><title><![CDATA[c++学习【14】System.h头文件分析]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131473833</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131473833</guid><author>m0_46973820</author><pubDate>Fri, 30 Jun 2023 13:20:07 +0800</pubDate><description><![CDATA[class Viewer等等，这些类都属于namespace ORB_SLAM2这个空间，构造函数的名称与类名称相同，构造函数没有返回类型，并且在类定义中以类名称作为函数名。当我们通过创建一个新对象来调用构造函数时，将自动执行与该类相关的构造函数。这是System构造函数的实现过程,初始化是在：之后{之前，这是c++语法吗？但是在某些情况下（比如访问静态成员函数或嵌套的类），需要使用作用域解析运算符。在 C++ 中，类的成员函数的访问和调用通常使用。]]></description><category></category></item><item><title><![CDATA[c++学习【13】3D-2D高斯牛顿BA迭代求解相机外参]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131454958</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131454958</guid><author>m0_46973820</author><pubDate>Thu, 29 Jun 2023 15:39:17 +0800</pubDate><description><![CDATA[重投影误差关于相机位姿的雅可比矩阵---是一个函数的偏导数矩阵。在每一次迭代中，通过计算雅可比矩阵，可以将相机位姿调整为使得重投影误差最小化的方向。具体地，雅可比矩阵参与到高斯牛顿优化的迭代更新过程中，用于构建线性方程组的系数矩阵和右侧向量。则直接计算平方范数的平方，避免了开根号的计算，可以提高计算速度，并且结果与平方范数相同。是一个二维向量，表示在相机坐标系下，通过相机投影将三维点投影到二维平面上得到的坐标。是一个Eigen库的函数，用于计算向量的平方范数（二范数）的平方。是该点在相机坐标系下的表示。]]></description><category></category></item><item><title><![CDATA[c++学习【12】已知3D点求解相机运动]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131449253</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131449253</guid><author>m0_46973820</author><pubDate>Thu, 29 Jun 2023 11:36:29 +0800</pubDate><description><![CDATA[已知2D-2D的匹配点，通过对极几何方法使用八点法求得本质矩阵，进而求解相机运动。特征点的3D位置可以在此之后通过三角化得到。或者由RGB-D相机确定。在使用双目或者RGB-D的视觉里程计中，可以直接使用3D到2D的方法。]]></description><category></category></item><item><title><![CDATA[c++学习【11】三角测量]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131449159</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131449159</guid><author>m0_46973820</author><pubDate>Thu, 29 Jun 2023 09:04:21 +0800</pubDate><description><![CDATA[【代码】c++学习【11】三角测量。]]></description><category></category></item><item><title><![CDATA[c++学习【10】对极几何求解相机运动]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131442593</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131442593</guid><author>m0_46973820</author><pubDate>Thu, 29 Jun 2023 08:58:54 +0800</pubDate><description><![CDATA[【代码】c++学习【10】对极几何求解相机运动。]]></description><category></category></item><item><title><![CDATA[c++学习【9】双目模型重建]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131439782</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131439782</guid><author>m0_46973820</author><pubDate>Wed, 28 Jun 2023 17:10:36 +0800</pubDate><description><![CDATA[该视差图的数值范围通常是根据算法的参数和输入图像的大小来确定，一般是一个较小的范围，比如[-128, 127]或[-64, 63]。函数将视差图的数据类型转换为CV_32F，并将每个像素的值除以16，得到实际的视差值。转换后，每个像素的值表示实际的视差值，单位为像素。并且，除以16是根据具体的算法参数来确定的，用于将之前的视差值还原为实际的视差值。注意：视差图的单位是像素，较小的视差值表示较远的距离，较大的视差值表示较近的距离。是一个单精度浮点数视差图，存储了实际的视差值，单位为像素。]]></description><category></category></item><item><title><![CDATA[c++学习【8】Sophus库]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131433789</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131433789</guid><author>m0_46973820</author><pubDate>Wed, 28 Jun 2023 16:08:44 +0800</pubDate><description><![CDATA[方法返回的是四元数的虚部，即(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]则被用来表示索引操作，用于访问数组或者容器中的元素。]]></description><category></category></item><item><title><![CDATA[BEV感知的]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131139494</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131139494</guid><author>m0_46973820</author><pubDate>Tue, 13 Jun 2023 23:04:33 +0800</pubDate><description><![CDATA[具体来说，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显示。]]></description><category></category></item><item><title><![CDATA[c++学习【7】光流法]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131164582</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131164582</guid><author>m0_46973820</author><pubDate>Mon, 12 Jun 2023 14:53:11 +0800</pubDate><description><![CDATA[如果一行中的单词数目不符合预期，或者某个单词中包含空格、制表符等空白字符，就会导致读取出错。是C++标准库中的一个输入流类，它可以将字符串作为输入流进行处理。当使用istringstream对象的输入流运算符>>来解析字符串时，默认情况下它会以空格为分隔符。在C++中，通常用于表示输入文件流对象，用于从文件中读取数据。我们可以这样使用，从标准输入流中读取三个整型数值，并分别存储到变量x、y、z中。对象，它被用来打开和读取associate.txt文件。将字符串解析为整型数值，并将其存储在变量x、y、z中。]]></description><category></category></item><item><title><![CDATA[c++学习【6】三角化获得三维点坐标，并可视化]]></title><link>https://blog.youkuaiyun.com/m0_46973820/article/details/131057834</link><guid>https://blog.youkuaiyun.com/m0_46973820/article/details/131057834</guid><author>m0_46973820</author><pubDate>Tue, 06 Jun 2023 00:14:55 +0800</pubDate><description><![CDATA[通过对像素坐标进行归一化，即减去光心的横纵坐标，然后除以焦距，就可以得到相机坐标系下的坐标。就是R、t是已知的旋转矩阵和平移向量，at函数用于获取矩阵R和t中指定位置的元素值。投影矩阵是一个3x4的矩阵，其中前三列代表相机的旋转和缩放变换（R），第四列代表相机的平移变换（t）。转换为齐次坐标形式，然后利用两个相机的投影矩阵进行三角化，得到对应的三维点坐标。存储三角化后的三维点坐标，每个点坐标都是4x1的齐次坐标，p是输入的待转换的像素坐标，K是相机的内参矩阵。两个相机的投影矩阵，分别是3x4的矩阵，]]></description><category></category></item></channel></rss>