自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 pip install pycocotools==2.0.3 报错 gcc: error: ../common/maskApi.c: 没有那个文件或目录 error: command ‘

【代码】pip install pycocotools==2.0.3 报错 gcc: error: ../common/maskApi.c: 没有那个文件或目录 error: command ‘

2024-01-24 14:44:46 555

原创 动态SLAM 开源方案汇总及介绍(一)

比如人手上拿着的书、正在搬运的椅子等等。首先最经典的肯定是DS-SLAM和DynaSLAM了,这两篇文章也都来源于2018 IROS,虽然时间比较早,但是思想具有很高的借鉴意义。

2024-01-08 20:54:50 1287 1

原创 Ubunutu18.04 ROS melodic 无人机 XTDrone PX4 Vins-Fuison 运行配置

PX4默认使用的EKF配置为融合GPS的水平位置与气压计高度。如果我们想使用视觉定位,就需要把修改配置文件。让EKF融合来自mavros/vision_pose/pose的数据。

2024-01-06 16:46:29 925

原创 ./build_ros.sh 解决报错 rospack found package “ORB_SLAM3“ at ““, but the current directory is....

将路径尽量添加在最下面(至少在 source 后),然后保存退出,之后在终端source一下。而且检查发现.bashrc文件中的路径也是正确添加了,但依然报错。然后再去编译就不会报错了。

2023-12-18 22:38:20 652

原创 Ubunutu18.04 ROS melodic 无人机 XTDrone PX4 仿真平台配置

由于修改了PX4 sitl_gazebo中的gazebo_gimbal_controller_plugin.cpp(源代码不能控制多无人机的云台),要再编译一次。如果是false,一般是因为.bashrc里的路径写的不对,仔细检查。终端出现: iris_0: communication initialized ,则表示与0号iris成功建立通信,之后在另一个终端运行。Gazebo启动后,在另一个终端运行(注意要等Gazebo完全启动完成,或者可能脚本会报错)注意下面的usename 是自己的用户名。

2023-12-09 13:35:49 432

原创 Rosbag 制作 TUM数据集

2.使用官方脚本得到associate.txt文件。一、创建rgb和depth文件夹和txt文件。二、替换 bag 路径 和 topic。Rosbag 制作 TUM数据集。1.生成图片和txt。

2023-11-30 17:22:59 401 1

原创 解决 VS2022 关于 c++17 报错: C2131 表达式必须含有常量值

来定义数组大小,代码中[size_node] 是变量而不是一个常数,需要在代码运行时才能确定分配内存的大小。因此需要改为 “使用动态分配内存”。因为C++新标准中 数组的定义不推荐使用。再次编译就没有报错了。

2023-11-20 11:04:48 4372

原创 ORB SLAM3 使用二进制文件 ORBvoc.bin 加载Vocabulary

运行时,需要把原来加载词袋命令 ./Vocabulary/ORBvoc.txt 改成 ./Vocabulary/ORBvoc.bin。解压后,将ORBvoc.bin拷贝到Vocabulary文件夹下。修改加载词袋的类型为 :BinaryFile。

2023-11-16 16:13:16 233 1

原创 手撕 视觉slam14讲 ch13 代码 总结

运行效果。

2023-11-08 13:27:20 257 7

原创 Ubuntu18.04 ROS Melodic的cv_bridge指向问题(四种方式,包括opencv4)(转载)

【精选】Ubuntu18.04 ROS Melodic的cv_bridge指向问题(四种方式,包括opencv4)_XiangrongZ的博客-CSDN博客

2023-10-27 19:25:59 421

原创 手撕 视觉slam14讲 ch13 代码(7)后端优化 Backend::Optimize()

在上一篇 手撕(6)中的InsertKeyframe()插入关键帧的函数里,有一个 Backend::UpdateMap() 函数 ,从这里通过条件变量 map_update_ 来激活后端优化。后端在构造时,就构建了一个启动优化线程Backend::BackendLoop,并上锁,等待前端唤醒然后在前端的InsertKeyframe()插入关键帧的函数里,通过 Backend::UpdateMap() 函数 ,触发地图更新,启动优化: 其中的条件变量 map_update_ 被激活,使得B

2023-10-22 12:38:51 280

原创 手撕 视觉slam14讲 ch13 代码(6)正常跟踪模式 Track()

至此EstimateCurrentPose() 函数完成,返回的当前帧追踪到的特征点内点数量(tracking_inliers_),然后判断当前的跟踪状态,为下次的添加帧做准备.如果内点数大于50 ,就是 tracking good ,内点数小于50大于20, 就是tracking bad,如果小于20,就 tracking lost .更新完跟踪状态后,进入 InsertKeyframe() 函数判断要不要插入关键帧。其中我们关注其中:自定义的顶点和边。中的g2o的实现流程,

2023-10-17 22:58:45 366 2

原创 手撕 视觉slam14讲 ch7 / pose_estimation_3d2d.cpp (2)

上一篇文章中:,我们调用了epnp的方法进行位姿估计,这里我们使用非线性优化的方法来求解位姿,使用g2o进行BA优化。

2023-10-17 22:24:45 700

原创 手撕 视觉slam14讲 ch13 代码(5)双目初始化 StereoInit()

实现的推导过程中可以看一下。里的SVD分解的部分。

2023-09-22 16:33:28 299 3

原创 手撕 视觉slam14讲 ch13 代码(4)VisualOdometry类和工程主函数

num_features_是每帧最多提取的特征点数量,此外还保存一个参数num_features_init_,这个参数在后面的地图初始化中会用到。在后端初始化中,主要是新开一个线程backend_thread_,然后把这个线程中运行的函数设置为Backend::BackendLoopI()函数。因为需要实例化并初始化frontend_,backend_,map_,viewer_四个对象,因此我们需要再额外写出前端、后端、显示这三个类的构造函数。

2023-09-13 17:24:14 259

原创 手撕 视觉slam14讲 ch13 代码(3)相机类、数据集类、参数配置类

我们首先从数据集读取入手,包括读取数据集的参数文件来获得相机的内参和外参,以及读取图片,因此,我们还需要抽象出相机类、数据集类、参数配置类。相机类最简单,我们先来实现它。

2023-09-11 21:13:09 399

原创 手撕 视觉slam14讲 ch13 代码(2)基本类的抽象

虚线:表示依赖关系,A指向B,则代表A依赖于B,即A类中使用了B类的属性或方法,但是不改变B的内容。这里指的是工厂类制造具体产品,显然具体产品是作为返回类型。工厂模式:抽象工厂有子类具体工厂ABC,分别用于生产对应的具体产品ABC。简单工厂模式:一个工厂类分别生产每种具体产品,缺点是对修改不封闭,新增加产品要修改工厂。至此三个基本的类抽象完毕,但是还缺一个地图类(Map)来管理frame和mappoint。常见的SLAM系统中的帧(Frame)需要包含以下信息:id,位姿,图像,左右目特征点。

2023-09-02 22:38:43 389 1

原创 手撕 视觉slam14讲 ch13 代码(1)工程框架与代码结构

开始,我们按照自己写系统的思路进行,首先确定好SLAM整体系统的流程,见下图,输入为双目图像,之后进入前端位姿估计和后端优化,中间维护一个由关键帧和地图点组成的地图。3. MapPoint(地图点类):3D点,通过三角化等方式计算出2d特征点的深度,即获得其3D位置。2. Feature(特征点类):2D点,通过对帧提取特征点,实现后续光流追踪。在学习slam一年之后开始,开始自己理思路,全手敲完成ch13的整个代码。工程框架与代码结构确定好后,我们开始进一步抽象出一些基本的类。

2023-09-02 18:02:22 270

原创 手撕 视觉slam14讲 ch7 / pose_estimation_3d2d.cpp (1)

1. 读图,两张rgb(cv::imread)2. 找到两张rgb图中的特征点匹配对2.1定义所需要的参数:keypoints1, keypoints2,matches2.2 提取每张图像的检测 Oriented FAST 角点位置并匹配筛选(调用功能函数1)3. 建立3d点(像素坐标到相机坐标)3.1读出深度图(cv::imread)3.2取得每个匹配点对的深度3.2.1 得到第y行,第x个像素的深度值3.2.2 去除没有深度的点3.2.3 转到相机坐标系(调用功能函数2)

2023-08-31 16:02:03 1767

原创 Ubuntu18.04 GitHub提交代码

安装完成后,检查git版本,一般自带2.17.1版本。

2023-08-14 20:40:32 199

原创 踩坑 视觉SLAM 十四讲第二版 ch13 编译及运行问题

需要将 assert(vo->Init() == true这行注释,并改为vo->Init()重新编译运行,效果如图,可以看出轨迹和地图错位严重,并且01序列直接跟踪失败。注意不要在/bin 路径下执行,需要在/ch13下运行。(整体文件很大,约22G,可以先下载一个00序列)在所有 CmakeList文件中后面添加。

2023-08-08 22:41:38 559 5

原创 D455+VINS-Fusion+surfelmapping 稠密建图(三)

【代码】D455+VINS-Fusion+surfelmapping 稠密建图(三)

2023-08-07 21:39:01 660 1

原创 踩坑 视觉SLAM 十四讲第二版 ch8 编译及运行问题

CMakeLists.txt中:在后面加上 fmt2.不存在用户定义的从 "std::_Bind" 到 "const cv::ParallelLoopBody" 的适当转换:error: invalid initialization of reference of type ‘const cv::Para

2023-07-25 21:07:54 689

原创 ORB-SLAM3 ROS 编译报错:Failed to invoke rospack to get compile flags for package ‘ORB_SLAM3‘. Look abov.

【代码】ORB-SLAM3 ROS 编译报错:Failed to invoke rospack to get compile flags for package ‘ORB_SLAM3‘. Look abov.

2023-07-19 14:41:54 1166 3

原创 D455+VINS-Fusion+surfelmapping 稠密建图(二)

【代码】D455+VINS-Fusion+surfelmapping 稠密建图(二)

2023-07-19 10:00:57 649 4

原创 D455+VINS-Fusion+surfelmapping 稠密建图(一)

【代码】D455+VINS-Fusion+surfelmapping 稠密建图(一)

2023-07-17 17:12:19 961 10

原创 D455相机标定 双目+imu(三)

②双目标定结果:camchain-mult_cam_d455.yaml:③标定板文件checkerboard.yaml:3.2 打开相机录制话题 新建一个stereo-imu.launch文件,相关话题修改一下:然后打开相机:关闭结构光将emitter_enable设置为off改变话题hz开始录制:相机的移动如下:首先前后、左右、上下各两个来回,然后俯仰、滚转、偏航三个方向两个来回,注意移动不要太快、需要保证标定板始终

2023-07-11 13:19:57 559

原创 D455相机标定 双目+imu(二)

注意格子边长以你打印后实际测量长度为准!

2023-07-11 11:00:00 393

原创 D455相机标定 双目+imu(一)

首先配置D455启动文件,将rs_camera.launch里改为如下内容,将将accel和gyro的数据合并得到imu话题。

2023-07-10 23:48:30 601

原创 视觉slam14讲 ch3 课后习题5

【代码】视觉slam14讲 ch3 课后习题5。

2023-07-06 12:58:40 56

原创 D455 标定报错 [FATAL] [1612519163.722674]: No corners could be extracted for camera /left! ***

【代码】D455 标定报错 [FATAL] [1612519163.722674]: No corners could be extracted for camera /left!***

2023-07-02 13:25:45 258 1

原创 ubuntu18.04 ros melodic 安装evo

由于我的ubuntu18.04我的为ros自带的2.7.17和ubuntu自带的3.6.9,所以在后面安装的时候,注意一下就行,不用去切换python版本。

2023-05-10 09:54:46 254

原创 服务器上运行ORB-SLAM3错误Pagolin : what(): Pangolin X11: Failed to create an OpenGL context

重新启动服务器服务器。

2023-05-06 10:49:23 805

原创 踩坑 视觉SLAM 十四讲第二版 ch9 编译及运行问题

在target_link_libraries 最后 加上 fmt即可。

2023-05-01 15:39:32 306

原创 解决报错sudo apt --fix-broken install

【代码】解决报错sudo apt --fix-broken install。

2023-05-01 15:21:25 3242

原创 视觉slam14讲 ch7 / pose_estimation_3d2d.cpp 实现过程

【代码】视觉slam14讲 ch7 / pose_estimation_3d2d.cpp 实现过程。

2023-04-28 09:00:00 366

原创 线特征LSD提取、LBD描述子匹配实现过程源码

【代码】线特征LSD提取、LBD描述子匹配实现过程源码。

2023-04-27 10:00:00 1263 1

原创 (二)ORB-SLAM3 中 orb 特征提取匹配部分详解

ORBextractor.cc 代码详解(按代码执行顺序分析)

2023-04-24 19:09:22 503

原创 (一)ORB-SLAM3 中 orb 特征提取匹配部分详解

ORBextractor.cc 代码详解(按代码执行顺序分析)

2023-04-24 16:31:53 784

转载 视觉slam14讲 ch7 / pose_estimation_3d2d.cpp BA优化实现思路

顶点要设置两个东西,一个是Id,一般设为0,一个是Estimate,这里是由R,t组成的SE3Quat形式。只要把R,t放进去就可以了。里面还用到了相机参数camera.类型为g2o::CameraParmetersI,值为K.at(0,0),和cx,cy组成的2维向量,0组成的。它有两个参数,第一个参数为优化变量的维度,这里为6,第二个参数为误差值的维度,这里为3。由之前的PnP,可以求出一个R,t,K又是已知的。Id设为index++,估计值设为p.x,p.y,p.z的组成的向量形式。

2023-04-24 11:54:02 426

空空如也

空空如也

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

TA关注的人

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