• 2024-07-03装了一次没成功的前提下,ubuntu18.04+ros(melodic)安装 cartographer源码安装及测试---2024.07.03安装成功
    因为项目需要所以要安装cartographer,最开始也没仔细研究一下,随便找了一个csdn教程就跟着安装了,装了一下午,总是在最后编译的时候出错,晚上的时候心态崩了,咸鱼上找了个远程安装的,他好像是用小鱼的那个脚本安装,装了一个小时也没安装好。不死心的我又去咸鱼上找人,然后开口要两千块,两
  • 2024-06-21C++矩阵库:Eigen 3.4.90 中文使用文档 (一)
    写在前面:我在学习Eigen库时,没找到好的中文文档,因此萌发了汉化Eigen官网文档的想法。其中一些翻译可能不是特别准确,欢迎批评指正。感兴趣的同学可以跳转到官网查看原文:Eigen:MainPagehttps://eigen.tuxfamily.org/dox/index.html       Eigen库,是一个开源的C
  • 2024-06-10Ubuntu 20.04 配置LI-Calib问题总结
    系统环境为ubuntu20.04+ros1noetic。在配置浙大开源标定工具Li_Calib时会遇到一些匪夷所思的小问题,下面做个简单总结。1.PCL报错这里是因为PCL1.10需要C++14或以上标准,而源码的cmakelist里设置的是c++11,因此需要在两处做修改,一处是/src/Li_Calib/CMakeLists.txt,一处是/s
  • 2024-04-02Qt 配置Eigen
    Eigen简介Eigen支持包括固定大小、任意大小的所有矩阵操作,甚至是稀疏矩阵;支持所有标准的数值类型,并且可以扩展为自定义的数值类型;支持多种矩阵分解及其几何特征的求解;它不支持的模块生态系统提供了许多专门的功能,如非线性优化,矩阵功能,多项式解算器,快速傅立叶变换等。
  • 2024-03-07类内的静态成员函数
    A-LOAM代码中,用ceres构建优化问题时,有如下代码structLidarEdgeFactor{ LidarEdgeFactor(Eigen::Vector3dcurr_point_,Eigen::Vector3dlast_point_a_, Eigen::Vector3dlast_point_b_,doubles_) :curr_point(curr_point_),last_point_a(last_point_a_),last_poi
  • 2024-03-07单例模式
    classCostFunctionFactory{public:EIGEN_MAKE_ALIGNED_OPERATOR_NEWCostFunctionFactory();staticboost::shared_ptr<CostFunctionFactory>instance(void);ceres::CostFunction*generateCostFunction(constCameraConstPtr&camera,
  • 2024-03-06Eigen四元数初始化,对应wxyz的值
    #include<iostream>#include<Eigen/Geometry>intmain(){Eigen::Quaternionq1(1,2,3,4);Eigen::Vector3dpos=Eigen::Vector3d::Zero();Eigen::Quaterniondquat=Eigen::Quaterniond::Identity();doubleq_tmp[4]={1,2,3,
  • 2024-03-02games101_Homework3
    摘要:在Raster部分实现数值插值,然后实现四种不同的像素着色器作业描述:作业1:修改函数rasterize_triangle(constTriangle&t)inrasterizer.cpp:在此处实现与作业2类似的插值算法,实现法向量、颜色、纹理颜色的插值。在rasterize_triangle函数中重复上次的包围盒进行点采样,
  • 2024-02-26Eigen
    c++##eigen##线性代数##矩阵##lib#http://rswiki.org/doku.php?id=%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1:%E7%9F%A9%E9%98%B5%E5%BA%93:eigenEigen是一个轻量级的矩阵库,除了稀疏矩阵不成熟以外,其他的矩阵和向量操作都比较完善,而且速度不错.2021/11/1911:10:19Eig
  • 2024-02-22games101_Homework1
    作业描述:本次作业的任务是填写一个旋转矩阵和一个透视投影矩阵。给定三维下三个点v0(2.0,0.0,−2.0),v1(0.0,2.0,−2.0),v2(−2.0,0.0,−2.0),你需要将这三个点的坐标变换为屏幕坐标,并在屏幕上绘制出对应的线框三角形(在代码框架中,我们已经提供了draw_triangl
  • 2024-02-11Eigen中变换矩阵Eigen::Isometry3d T的使用方法(左乘和右乘)
    https://zhuanlan.zhihu.com/p/610439768?utm_id=0 一、基本定义Eigen::Isometry3dT_imu_to_lidar=Eigen::Isometry3d::Identity()转换矩阵本质是一个4*4的矩阵二、操作方法.translation():无参数,返回当前变换平移部分的向量表示(可修改),可以索引[]获取各分量.rotation(
  • 2024-01-16Eigen库
    前言  最近在学习计算机图形学的一些知识,里面要大量运用像矩阵运算这样的线性代数知识,而Eigen库就是一个支持我们用c++语言进行线性代数、矩阵和矢量运算的第三方库。想着后续真正开始写代码后这个库用的应该挺多的,于是就先来简单学习一下这个库。另外学习这个之前最好还是先了
  • 2023-12-19【纯代码复制粘贴即可使用】卡尔曼滤波的C++实现
    使用Eigen实现卡尔曼滤波。如果实现扩展卡尔曼滤波只需将H矩阵换成雅可比的求解。#ifndef_MYKALMAN_H#define_MYKALMAN_H#include<Eigen\Dense>classKalmanFilter{public:KalmanFilter(intstateSize,intmeasSize,intuSize);~KalmanFilter()=default;
  • 2023-11-22Ego_planner_swarm之minimum snap(jerk)代码解释
    首先是minimumsnap的理论推导过程https://blog.csdn.net/u011341856/article/details/121861930我对他的博客的一些笔记https://pan.quark.cn/s/8549109ff930#/list/share下面就是对高飞老师egoplanner中的minimumsnap(jerk)的注释解析#include<iostream>#include<traj
  • 2023-11-02Eigen
     http://eigen.tuxfamily.org/index.php?title=Main_Page EigenisaC++templatelibraryforlinearalgebra:matrices,vectors,numericalsolvers,andrelatedalgorithms. wgethttp://bitbucket.org/eigen/eigen/get/3.3.7.tar.bz2tar-jxvf3.3.7.tar.bz2Howto&q
  • 2023-10-20nav2_constrained_smoother
    平滑cost:template<typenameT>inlinevoidaddSmoothingResidual(constdouble&weight,constEigen::Matrix<T,2,1>&pt,constEigen::Matrix<T,2,1>&pt_next,constEigen::Matrix<T,2,1>&pt_
  • 2023-09-27离散点 plane to fit (最小二乘)
      usingnamespaceEigen;intreadStreamFile(conststd::string&stream_file,std::vector<std::vector<Eigen::Vector3f>>&cloud_p){std::ifstreaminFile(stream_file,std::ios::in|std::ios::binary);if(!inFile)
  • 2023-09-23VINS中的IMU因子(一)
    VINS中的IMU因子(一)在这篇文章中我们分析一些VINS中对于IMU因子的处理和构建方式。首先来看一下再estimator类中关于预积分因子的几个重要成员变量。pre_integrations存储了滑动窗口中相邻两帧之间的预积分增量。acc_0,gyr_0则保存了当前时刻的角速度和加速度值。IntegrationBas
  • 2023-09-05视觉SLAM十四讲 3.6.2实际的坐标转换的例子
    在这一讲中,作者没有给出详细的过程,作为初学者还是有点懵。这道题是有两种解法的四元数解法欧拉矩阵解法四元数解法假设一个目标点\(p\)在世界坐标系下的坐标是\[P_W\]利用四元数表示旋转,两个小萝卜坐标系下\(p\)点坐标有如下公式:\[p_1=q_1*P_w+t_1\\p_2=q
  • 2023-08-24基于PCA的最小包围盒
    参考文章:http://t.csdn.cn/LK1RZhttp://t.csdn.cn/DEhQChttp://t.csdn.cn/2LKWVhttp://t.csdn.cn/AGicghttp://t.csdn.cn/9Vqk6下面基于PCA的最小包围盒的代码是一样的,都是参考上述博客。引用代码:#include<vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL)
  • 2023-08-09卡尔曼滤波二维图像点跟踪
    原理参考https://zh.wikipedia.org/wiki/%E5%8D%A1%E5%B0%94%E6%9B%BC%E6%BB%A4%E6%B3%A2代码#include<Eigen/Core>#include<Eigen/Dense>#include"opencv2/highgui/highgui.hpp"#include"opencv2/video/tracking.hpp"#include<ios
  • 2023-07-19Eigen库操作
    #include<iostream>#include<eigen3/Eigen/Dense>usingnamespacestd;usingnamespaceEigen;intmain(){Matrix2fss;ss<<2.3f,3.2f,3.4f,3.1f;cout<<ss<<endl;cout<<"======="<<endl;
  • 2023-07-14Eigen::Tensor实现permute方法
    需求使用C++处理Eigen::Tensor希望交换指定维度的位置注意是交换(改变内存顺序)而不是reshape实现torch.tensor中内置了permute方法实现快速交换Eigen::Tensor中实现相同操作需要一点技巧例如,将一个1x2x3的tensor排列为3x1x2那么对应t1[0,1,1]==t2[1,0,1]则排列生效代码如
  • 2023-07-04g2o运行报错double free or corruption (out)
    问题项目中调用了g2o,编译没有问题,但是运行的时候报错了,报错的位置是g2o的SparseOptimizer类的析构函数里调用的clear()函数.明明上一个项目运行过程中没遇到这种g2o内部的问题,而且我上一个项目到现在,没有更改过g2o库,就很懵,不知道该怎么解决这个问题.解决过程看了clear
  • 2023-07-03okvis
     将文件okvis_app_synchronous.cpp中代码修改为:classPoseViewer{public:EIGEN_MAKE_ALIGNED_OPERATOR_NEWconstexprstaticconstdoubleimageSize=500.0;PoseViewer(){cv::namedWindow("OKVISTopView");_image.create(imageSize,image