自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(318)
  • 资源 (3)
  • 收藏
  • 关注

原创 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十二)拓展图优化库g2o(三)边edge

小白:前面你介绍了g2o中边的基本类型、重要的成员变量和成员函数,那么如果我们要定义边的话,具体如何编程呢?public:myEdge(){}// ...// .../*...*/private:// data我们可以发现,最重要的就是(),()两个函数了小白:嗯,看起来好像也不难啊师兄:我们先来看一个简单例子,地址在这个是个一元边,主要是定义误差函数了,如下所示,你可以发现这个例子基本就是上面例子的一丢丢扩展,是不是感觉so easy?

2024-10-29 16:49:19 735

原创 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十二)拓展图优化库g2o(二)顶点vertex

小白:师兄,我们是不是可以开始写顶点定义了?师兄:嗯,我们知道了顶点的基本类型是 BaseVertex,那么下一步关心的就是如何使用了,因为在不同的应用场景(二维空间,三维空间),有不同的待优化变量(位姿,空间点),还涉及不同的优化类型(李代数位姿、李群位姿)小白:这么多啊,那要自己根据 BaseVertex 一个个实现吗?师兄:那不需要!小白:好全啊,我们可以直接用啦!师兄:当然我们可以直接用这些,但是有时候我们需要的顶点类型这里面没有,就得自己定义了。

2024-10-29 10:26:12 900

原创 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十二)拓展图优化库g2o(一)框架

BlockSolver 内部包含 LinearSolver,用上面我们定义的线性求解器LinearSolver来初始化。g2og2ocore你点进去会发现 BlockSolver有两种定义方式一种是指定的固定变量的solver,我们来看一下定义其中p代表pose的维度(注意一定是流形manifold下的最小表示),l表示landmark的维度另一种是可变尺寸的solver,定义如下小白:为何会有可变尺寸的solver呢?

2024-10-24 18:16:51 975

原创 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十一)ESKF中融合速度观测量;发散的原因;如何解决发散;以及对slam的理解

1、slam发散的原因?2、如何解决/限制发散?3、如何在已经有观察值和预测值的ESKF中,再引入一个其他其他观察量?

2024-10-14 18:08:51 1155

原创 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十)高翔书中的细节:参考链接;卫星导航;ESKF

呕心沥血,理解整理ESKF

2024-09-27 18:36:05 1328

原创 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(九)imu运动学;lambda表达式;bind;function;std::move()

常用六轴IMU是由和两部分组成。安装要尽量保证IMU的安装位置在车辆中心。避免由IMU与载体系不重合引来的问题。

2024-08-28 17:50:36 1067

原创 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(八)卡尔曼滤波器四:一文理清卡尔曼滤波,从传感器数据融合开始谈起【转载】

在正式讨论卡尔曼滤波前,我们先讨论对。我们会发现是和卡尔曼滤波紧密相关的。我们知道,如果需要对自然界的某个物理量,比如温度,气压,速度等进行测量,我们需要用各种传感器进行测量。但是,因为器件的工艺不可能达到完美,或者其他不能被人为预测到或者控制到的因素和噪声等存在,传感器对物理量的预测。因此,我们,不如把它看成是一个其均值和方差分别为μσ2,既是v∼Pμσ2,,这两个描述了。μσ2(暂且假设传感器的测量均值是和真实值无偏的。

2024-08-12 22:11:49 931

原创 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(七)卡尔曼滤波器三:卡尔曼滤波器公式推导【转载】

转载来源:卡尔曼滤波:从入门到精通考虑一个SLAM 问题,它由一个运动方程:xt=f(xt−1,ut)+ωt(1)\mathbf{x}_{t}=f(\mathbf{x}_{t-1},\mathbf{u}_{t}) + \omega_t \tag 1xt​=f(xt−1​,ut​)+ωt​(1)和一个观测方程组成:zt,j=h(yj,xt)+vt,j(2)\mathbf{z}_{t,j} = h( \mathbf{y}_{j},\mathbf{x}_{t} ) + v_{t,j} \tag 2z

2024-08-09 20:30:15 993

原创 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(六)卡尔曼滤波器二:图解卡尔曼滤波器;卡尔曼滤波器公式理解;面试答法;

卡尔曼滤波器公式理解

2024-08-08 18:07:40 1085

原创 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(五)卡尔曼滤波器一:认知卡尔曼滤波器;协方差矩阵与方差;

卡尔曼滤波器

2024-08-05 22:53:52 1058

原创 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(四)高斯牛顿法详解

还是那句话:高斯牛顿法是对:最小二乘法展开的是后面的函数部分。将f(x)一阶泰勒展开(一阶就要带雅可比矩阵)。这个自变量增量都是可求的。因此为了简化有了下面的高斯牛顿法。不过只适用于最小二乘法。最小二乘法展开的是后面的函数部分。将f(x)一阶泰勒展开(一阶就要带雅可比矩阵)。通过使用不含有二阶导数的矩阵U代替牛顿法中的H,根据矩阵U构造的不同,具有不同的拟牛顿法。所以为了使增量的更加稳定可靠,对其做了限制,增加了置信域。无论一阶泰勒展开,还是二阶泰勒展开都是关于增量。缺点:雅可比矩阵有时是。

2024-07-26 17:10:31 1351

原创 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(三)基变换与坐标变换;微分方程;李群和李代数;雅可比矩阵

雅可比矩阵加微分方程:一阶泰勒展开近似表示。如果一篇介绍这个概念的文章读不懂,那就多搜几篇,总有一篇符合你的胃口,直到弄懂为止。雅可比矩阵配合微分方程:完成了对逼近局部值的一阶泰勒展开的近似。为何要局部近似?因为这种多元向量值函数是一种隐函数,我们没法描述他的具体函数。只好做线性近似。是一种无奈之举。但是只要足够逼近,那么就足够精确。可微的意义:如果陡变,这种近似没有意义,不成立。所以这就是可微可导的实际物理意义。或者说几何意义。可以用雅可比矩阵刻画一个多元向量值函数的局部,从而简化分析。

2024-07-22 23:22:26 1161 1

原创 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(二)——带着问题的学习;一刷感受;环境搭建

按照作者在读者寄语中的说法:我们得榨干这本书的知识。

2024-07-16 11:21:34 1718

原创 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(一)——流形;

流形

2024-07-16 09:29:19 605

原创 解决:undefined reference to `pcl::PCLBase<pcl::PointXYZ>::setInp

因为我在新建这个package包时,错将pcl_ros写成了rospcl。导致依赖包没有加载上。修改这个包的这个部分就好了。

2024-07-03 00:42:11 451

原创 sensor_msgs/PointCloud2雷达数据信息格式解析

sensor_msgs/PointCloud2数据格式解析

2024-07-01 20:19:53 1735

原创 error: ‘LocalParameterization’ is not a member of ‘ceres

error: ‘LocalParameterization’ is not a member of ‘ceres’

2024-06-19 20:36:18 901

原创 ubuntu无法添加PPA的解决办法;TBB安装问题。Gcc安装问题

把网络切换成手机网络。手机开个热点。搞定。

2024-06-11 22:41:39 704

原创 return pt.array().template round().template cast<int>();

观察最后一个3,4,6,发现是取整四舍五入。

2024-04-01 17:34:51 267

原创 gtest使用教程

【代码】gtest使用教程。

2024-04-01 15:16:20 262

原创 命名空间 “Eigen“ 没有成员 “SelfAdjointEigenSolver“

结果报错:报错实在windows10条件下发生的。转发请备注来源于:xiaoyaolangwj。查找资料,最后还是要定位到官方文档。这是在特征值模块中定义的。

2024-01-15 15:49:58 829

原创 编译报错 undefined reference to `google::kLogSiteUninitialized‘ 的参考解决方法

完事在自己的CMakeLists.txt文件中,添加上这一句话:编译通过了。我试了很多种方法:包括重新编译安装gflags和glog等方法;1、重新安装gflags。2、重新安装glog。

2023-11-23 14:55:23 1360

原创 升级Cmake(不用卸载原有的版本)

2、解压、编译并安装到制定目录,修改环境变量。1、下载需要的(版本)[

2023-11-23 14:42:27 516

原创 Ubuntu18.04安装pcl-1.12.1,make时报错:/usr/bin/ld: cannot find -lvtkIOMPIImage

然后勾选上VTK_Group_MPI和VTK_Group_Imaging。然后重新回到pcl安装目录的build下,将所有东西删除,重新编译。在vtk安装包中,重新打开。

2023-11-07 10:26:02 627

原创 C++新版本学习资源整理

链接资源推荐:C++11/14/17/20 特性介绍 转 | 有点博客

2023-11-01 14:45:24 193

转载 卡尔曼滤波(Kalman Filter)原理与公式推导【转载】

克尔曼滤波器

2023-09-02 17:20:39 1511

原创 Ubuntu系统配置;换源;

1 将系统自带的该文件做个备份: sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup。系统不是18.04,可以打开下面的地址,选择你的Ubuntu版本,复制里面的链接到文本中。将下面的内容粘贴到打开文件的最前面,全部粘贴过去,保存,并关闭。更新软件: sudo apt-get upgrade。更新源: sudo apt-get update。打开终端(Open Terminal)如果你对上面的地址有疑惑,或者你的。

2023-07-25 09:46:29 642

原创 C/C++ 中 volatile 关键字详解

而且读取的数据立刻被保存。在此段代码中,nMyCounter 的拷贝可能存放到某个寄存器中(循环中,对 nMyCounter 的测试及操作总是对此寄存器中的值进行),但是另外又有段代码执行了这样的操作:nMyCounter -= 1;//等待上面的线程终止,如果bStop不使用volatile申明,那么这个循环将是一个死循环,因为bStop已经读取到了寄存器中,寄存器中bStop的值永远不会变成FALSE,加上volatile,程序在执行时,每次均从内存中读出bStop的值,就不会死循环了。

2023-06-26 14:49:54 688

原创 CloudCompare

分割点云:选中要分割的点云文件–>Segment–>左键框出要分割的点或者区域–>Segment Out–>Comfirm Segmentation,原点云文件被分割成两个结构,选中分割出来的remaining,右键delete即可。qSRA (Surface of Revolution Analysis):计算一个点云和一个假定旋转平面之间的距离(旋转平面用2D轮廓定义),距离计算好后,用户可以创建一个偏差的2D图或者圆柱或圆锥的投影。②表现为同样的对象或者至少有同样的形状。

2023-06-25 11:16:45 2996

原创 点云数据格式转换(.xyz→.pcd)

【代码】点云数据格式转换(.xyz→.pcd)

2023-05-31 18:43:24 360

原创 C++笔记:虚继承

Animal下派生出Sheep和Tuo类。动物基类下,有两个派生类,一个是羊类,一个是驼类。这两个类都继承了Animal的一个属性,比如m_age。这样就导致资源的浪费,同时sheepTuo二义性。通过VS开发者工具中的工具,我们可以查看类的结构。解决方案:虚继承virtual。

2023-03-22 12:01:41 154 1

原创 C++笔记:指针转向(重新赋值)时的问题;重复释放;原地址遗漏释放;赋值运算符重载operator=;

指针转向时原空间内存释放。指针指向的地址,存在二次释放的风险,所以需要深拷贝。在堆中重新开辟一块空间,将指向的内容传入进去。

2023-03-19 23:59:11 700

原创 面试可能会问六:智能指针

智能指针的一般理解。

2023-03-19 22:32:07 149

原创 C/C++面试可能会问五:malloc、free和new、delete可以混搭使用吗?也就是说malloc分配的内存,可以调用delete吗?通过new创建的对象,可以调用free来释放吗?

如果直接用free释放new对象,那么会导致析构函数不被调用。new是一个运算符,malloc是一个函数。所有new出来的对象,都返回该类型的。而且malloc不会去调用构造函数。释放堆区空间要用delete。但是new会调用构造函数。而malloc则返回。

2023-03-17 10:21:32 1008 1

原创 C语言数据结构八:排序算法:冒泡排序;选择排序;插入排序;

排序算法;冒泡排序,选择排序,插入排序。

2023-03-14 16:39:13 95

原创 C语言数据结构七:二叉树非递归遍历

因为引入bool量,所以引用:<stdbool.h>必须采用栈的这种先进后出的特性。初始化根节点:返回根节点,然后输入为。我们继续采用前面是用的栈的代码。节点结构体:除了节点,还需要一个。二叉树的非递归遍历,必须借助。

2023-03-14 16:08:04 884

原创 C语言数据结构六:树。二叉树遍历。先序遍历,中序遍历,后序遍历。二叉树叶节点数,二叉树高度,二叉树拷贝;二叉树释放。

(二叉)树中,一个节点,你也要把他看做成树。子树。一个节点都没有叫做空树。所以说:树具有递归性。树是非线性结构,有一个,但是可能有很多。树中,应用最多的还是二叉树。

2023-03-14 14:38:50 429

原创 C语言数据结构五:队列

C语言数据结构五:队列的链式存储

2023-03-14 10:52:20 228

原创 C语言数据结构四:栈的应用案例——就近匹配

栈的应用案例——就近匹配:左右符号匹配检查应用。

2023-03-14 09:16:18 185

原创 C语言数据结构四:栈的链式存储

栈的链式存储

2023-03-14 09:00:05 147

PU-GAN中tf_ops.zip

PU-GAN中sh根据个人环境修改编译。

2021-06-14

GitHub - soumith_ganhacks_ starter from _How to Train a GAN__ at NIPS2016.pdf

How to Train a GAN: Tips and Tricks to Make GANs Work的pdf文档

2021-05-21

GANs-in-Action.pdf

你也可以直接查看官网。https://www.manning.com/books/gans-in-action?query=GAN%20in%20action

2021-05-16

空空如也

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

TA关注的人

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