自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++string的常见函数

如果提供的位置是字符串的索引,那么插入操作是把这个索引包含进行插入。如果提供的是字符串的迭代器,那么插入操作也是把这个迭代器包含进行插入,这也是为什么在字符串s1末尾进行插入的时候,提供的迭代器是s1.end()(指向s1尾部元素的下一个元素地址,如果提供s1.end()-1就会把最后一个元素推到新字符串的最后一个元素)。例子://输出:12356784总的来说,需要注意insert这个函数操作的范围。

2024-06-19 14:45:55 692

原创 orbslam2代码解读(4):loopclosing回环检测线程

完结撒花!!!这一系列的记录文章,主要是把orbslam2中一些主要的函数实现过程弄清楚,并且明白整个orbslam2的运行流程。所以不会对函数中具体的代码做详细的讲解(这部分完全可以去看代码注释),而我们要做的是明白orbslam2的流程和处理思路。在学习orbslam2的时候真的学习到了很多,之前看完视觉slam14讲,里面的内容确实很多很详细可以作为一个教科书,但是更多的还是得学优秀的开源项目,这样才能对slam整个框架有更深的理解。

2024-06-11 19:20:35 787

原创 orbslam2代码解读(3):localmapping局部建图线程

这个localmapping局部建图线程还是比较简单的,就是处理关键帧,处理完毕就执行一个局部BA的优化。最后给回环线程留了一个队列,用于检测是否有回环。

2024-06-11 10:40:57 860

原创 orbslam2代码解读(2):tracking跟踪线程

单目初始化双目或rgbd初始化参考关键帧的跟踪匀速模型跟踪重定位(与回环有点像,主要是跟丢后重新找到在地图中的定位)局部地图跟踪(提高定位信息在局部的准确性)判断产生关键帧的时机其实整个函数很大,逻辑也很多,但是本质上通过一系列逻辑将上述函数组合,而实现跟踪的效果。我们学习的目的应该是聚焦在函数实现上,过度关注这些逻辑有点浪费时间,因为我认为这些逻辑可能每个人的思考都不同,在需要的时候参考参考即可。

2024-06-10 19:47:19 1024

原创 orbslam2代码解读(1):数据预处理过程

至此,就已经讲完了数据预处理的过程,主要的处理代码都是在Frame的构造函数当中,根据一帧图像,构建了一个Frame对象,里面存储着很多关键信息:每个金字塔图层的特征点及其对应旋转不变性的Rotated BRIEF,还对特征点进行去畸变。

2024-06-06 21:09:46 669

原创 slam14讲(第9,10讲 后端)

这个边缘化的概念是从概率论的角度来看的。实际上这个求解步骤就是固定ΔxpΔxp​,然后求解ΔxcΔxc​,最后再算出ΔxpΔxp​。PxcxpPxc∣xpPxpPxc​xp​Pxc​∣xp​Pxp​最终是求得了xcxc​的条件概率分布,和xpxp​的边缘分布,所以称边缘化。在消元的时候实际上是将特征点的部分信息融入了求解xcxc​的过程,所以xcxc​。

2024-05-23 20:02:14 985

原创 slam14讲(第8讲、前端里程计)LK光流、直接法

因为第7讲大部分都是讲特征点法,通过提取orb特征点和点的描述子,来构建两帧图像之间的特征点对应关系。计算耗时。

2024-05-23 12:26:44 713

转载 slambook2,ch8编译问题

ubuntu18,opencv就是默认和ros一起安装的版本,opencv3.2,sophus模板类和非模板类都安装了。

2024-05-20 16:48:56 24

原创 slambook2,ch7编译问题

ubuntu18,opencv就是默认和ros一起安装的版本,opencv3.2,sophus模板类和非模板类都安装了。

2024-05-11 11:23:52 359

原创 简易录制视频做3D高斯

ubuntu20 ,cuda11.8,anaconda配置好了3D高斯的环境。

2024-05-07 22:13:56 874

原创 ubuntu20安装colmap

ubuntu20 ,cuda11.8 ,也安装了anaconda。因为根据colmap的官方文档说的,如果根据apt-get安装的话,默认是非cuda版本的,而我觉得既然都安装了cuda11.8了,自然也要安装cuda版本的colmap。

2024-05-07 20:15:38 748

原创 ubuntu20部署3d高斯

这样就可以完成整个3d高斯的流程,整体的视图质量确实很高,而且这个场景才训练了13分钟,而最初的nerf在训练那个乐高模型的时候,3090跑了6个小时,这个时间长的原因可能迭代次数也比3D高斯多,而且整体网络也比较简单,但是3D高斯耗时低且渲染的质量高,真的是非常好的工作。后续就是进一步学习这类工作。

2024-05-07 16:01:43 1124

原创 ubuntu20配置深度学习环境

ubuntu20,安装了ros noetic。

2024-05-02 14:51:54 963 2

原创 ubuntu20中ros与anaconda的python版本冲突问题

完工,折腾这个anaconda折腾了一下午,终于有方法搞定了。

2024-05-01 20:06:44 1101 1

原创 python在ros中获取键盘输入并且发布

通过这个python小程序,可以全局或者局部获取键盘输入。

2024-04-30 15:09:50 347

原创 sophus库遇到的问题

ubuntu20.sophus版本具体未知,是r3live直接在tools目录中拷贝的一份sophus源码,然后cpp文件直接include。

2024-04-27 12:17:01 183 1

原创 Ubuntu20 安装Sophus

ubuntu20的系统,跑代码需要sophus依赖。

2024-04-26 10:55:03 229 1

原创 opencv2.3.14安装和qt连接opencv

这个qt真的万万没想到,还要下载qtcreator去配置。而且为什么我给的是绝对路径的目录,他找不到,而他加的语句是相对目录去找的。不是很能理解,但总算代码能跑起来了。(浪费一个下午)

2024-04-25 19:47:40 557 1

原创 通过autoware工具进行相机和雷达标定(2)

这个结果是一个粗标定的结果,因为重投影误差还是一般,应该也可以通过取更多的关键帧来计算,减小重投影误差获得更好的标定结果。

2024-04-25 11:27:14 327 1

原创 通过autoware工具进行相机和雷达标定(1)

一开始想着在ubuntu20去编译的,但是ubuntu20的opencv是4.2,会报opencv的错误,重新装一个opencv还更麻烦,详情可以参考一篇博客。所以还是在推荐的ubuntu系统下运行是较好的。

2024-04-24 16:20:25 370 2

原创 slam14讲(第7讲、前端里程计)计算相机运动

计算相机运动计算相机运动的前提是有了匹配好的点对,这个可以通过slam14讲前面所介绍的,提取orb特征点和描述子,做特征匹配来得到(比较耗时),也可以通过后面介绍的光流法来得到匹配好的点对。计算相机运动的方法主要如下:2D-2D的求解,通常是用对极几何来求解,用于单目的场合中。3D-3D的求解,这时候就可以像点云一样去做icp求解,用于深度相机、双目的场合3D-2D的求解,就是已知一组3D点和一组2D点,通过pnp求解,用于深度相机,双目或者激光雷达相机融合的场合。2D-2D,对极几何这

2024-04-23 21:25:39 640

原创 eigen动态矩阵的问题

因为卡尔曼滤波器用的是动态矩阵,而这两个矩阵涉及到动态矩阵的相乘。(ps:卡尔曼滤波器的动态矩阵只是为了扩展性,不管多少维的状态都可以进行卡尔曼滤波)在我的ros工作空间中没有发现问题,但是在其他电脑中编译运行,就发现了报错。调试了很久,从cmake查到代码,最后发现在动态矩阵相乘前,需要判断两个矩阵的行数列数相等,即可解决这个问题。但是卡尔曼滤波的维数都是确定好的,肯定是可以相乘而不会出错的。一开始只在自己的电脑上进行开发,用到了卡尔曼滤波器,是比较简单的经典卡尔曼滤波,代码参考的。

2024-04-19 15:37:47 308

原创 基于地图的fastlio重定位

具体效果可以看github中的视频连接。

2024-04-09 16:41:16 381

原创 r3live工程部署

很多时候就是环境的问题导致编译报错,环境牵扯的东西太多了。对于一开始碰到的opencv版本问题,我觉得很大可能就是opencv和cv_bridge冲突了,需要去自己重新编译并且在cmakelists中自己去找到编译好的程序,这个就留到后续实际遇到问题的时候再试。

2024-04-03 13:55:54 256 1

原创 ubuntu18安装evo

首先是安装环境,ubuntu18,有两个版本python,一个是ros相关的python2.7,另一个是自己装的python3.6.9,最终还是选择在python2.7中安装,所以必须装evo1.1.2。

2024-03-20 16:55:45 186 1

原创 slambook2,ch4编译问题

把fmt链接上就可以通过并且执行。正常cmake编译会编译报错。cmakelist修改。

2024-03-14 21:40:53 366 1

原创 基于fastlio的重定位过程

虽然编译过了,但是global_localization.py脚本有问题,因为他依赖open3d的,但是python2安装不上open3d,安装的时候出各种问题。open3d用python3安装很方便,python2装不了,放弃,浪费一天了。ubuntu20的话应该能跑起来。

2024-03-14 19:51:48 714 2

原创 两个ros包合成一个ros包

代码就是上面博客提供的,只是运行的时候有点区别,因为我用的是ubuntu18,对于 ROS Melodic,它默认使用 Python 2 作为主要的 Python 版本,因此 ROS Melodic 的软件包通常使用 Python 2 的库和依赖项。所以用下面的指令运行,用python3的话有一堆依赖没有。

2024-03-11 21:28:44 517 1

原创 fastlio点云去畸变问题2

虽然在雷达10hz情况下,用fastlio内的代码计算点云中的点的相对时间是可行的,但是雷达5hz情况下会出问题,可能是那个时间补偿的代码适用10hz?也可能是5hz的点云不能这样简单地不长时间?具体原因不太清楚。点云中点的时间是非常关键的,最好是用驱动给出的相对时间。提问:为什么点云中靠前的点,驱动给出的相对时间是负数??

2024-03-06 16:21:39 989 1

原创 fastlio点云去畸变问题

第一种是速腾雷达,通过配置可以得到点云中每个点的时间,但是时间单位有问题,需要修正才能使去畸变正常工作.第二种是velodyne,不知道是什么原因没法得到点云中点的相对时间,所以需要去补偿时间,才能使去畸变正常工作.吐槽一下velodyne怎么样才能直接从雷达驱动获取点云每个点的时间,不太清楚怎么操作,github上的驱动太不详细了…

2023-12-13 20:05:15 1364 1

原创 ROS 系统时钟显示北京时间

然而,UTC 使用原子钟技术,以确保时间的精确度,并且可以通过加入或删除闰秒来调整与地球自转的差异。UTC(协调世界时,Coordinated Universal Time)是一种标准的时间测量方式,用于协调世界各地的时间。它是基于原子时的,通过使用原子钟等精确的设备来测量时间。在默认情况下,ROS 会使用系统时钟,即从系统的 Epoch(通常是 1970 年 1 月 1 日)开始计算的时间。相对于UTC,时区可以通过添加或减去一定的小时和分钟来表示。例如,北京时间是 UTC+8,纽约时间是 UTC-5。

2023-12-12 15:46:17 963

原创 ros中的线程问题

主要是当时用了仿真时间,又忘了加后缀,导致踩坑,以此记录。

2023-12-06 20:41:55 398 1

原创 eigen全局变量的初始化

这样就不会报错,可能是eigen初始化要求不能在全局初始化,自定义的结构体是可以在全局初始化的。写代码的时候遇到的问题,eigen矩阵在全局的作用域中初始化,会报错。需要在对应的函数中初始化才不会报错。

2023-11-10 10:25:20 85 1

原创 AB3DMOT的代码解析

这里主要是对这篇论文中的代码进行一些解析,主要是多目标跟踪过程的解析,目的是记录下来,为了能回顾。原始代码写的注释已经比较详细,只是我对python不太熟悉,都是用c++多,最终是靠着gpt帮忙整理代码帮助阅读。对这篇文章来说,是一个非常好的开源工作,实现了一个很完整简洁的多目标跟踪系统,值得我们学习的地方很多。我的这篇解析也可能会出现个别问题,还望大佬评论区指正。

2023-11-08 11:19:02 381 6

原创 c++Vector二维容器

有一个std::vector<std::vector>的二维容器,因为在ros代码中的回调函数需要不断使用,所以在一段时间后会报错,内存溢出错误,可能就是这些二维容器没有释放的问题。所以后续就想着复用这个二维容器,但是在进行清零操作的时候碰到问题。

2023-10-30 16:27:04 208 1

空空如也

空空如也

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

TA关注的人

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