- 博客(31)
- 收藏
- 关注
原创 SIFT3D点云关键点提取详细介绍
1.引言SIFT3D的理论基础完全是从图像特征SIFT2D中迁移类比过来的,类似的还有Harris3D和Harris6D的理论基础也是来源于Harris2D的,这些点云特征在PCL库中都有具体的实现。Harris3D和Harris6D目前已经有很好的博客和视频讲解了但是SIFT3D却没有一个比较好的介绍。于是本人最近详细看了PCL库中SIFT3D关键点的提取流程,并类比SIFT2D在这里进行完整的介绍。.........
2022-05-17 21:54:32
1948
6
原创 解决PCl库依赖的flann与Opencv的冲突问题:
程序编译会定位到错误:flann/util/serialization.h中std::unordered_map<XXX, XXX> no member named serialize()。参考issue做了许多尝试最终解决了。主要问题出在opencv头文件中的一些宏定义和flann库中的冲突,最后解决方案就是从自己的main函数所在文件中开始一步步查看头文件的包含顺序,一定要保证pcl库中依赖的flann在opencv头文件之前先包含进去。比如我遇到这个问题的解决方法如下:#inclu
2021-12-21 11:32:24
4544
4
原创 C++里面调用Python函数得到目标检测的返回结果(可实现二维数组的传输)
背景:在算法测试阶段想在C++算法中直接获取基于python的目标检测结果。内容:目标检测采用yolo,执行脚本infer.py,其中主要接口函数为def image_infer(img_path) ''' 省略。。。。。 '''return result // 返回值是所有目标检测框的位置,是一个二维数组。接下来如何在C++里面得到python返回值呢,主要代码具体如下 Py_Initialize(); if(!Py_IsInitialized()){ cout
2021-11-15 12:05:18
3104
2
原创 git使用
git代码管理1.新建仓库例如名字为GitLearn2.将本地代码上传到GitHub远程仓库建立一个秘钥$ git config --global user.name "用户名"$ git config --global user.email 自己的邮箱$ git config --list$ ssh-keygen -t rsa -C "自己的邮箱"将秘钥id_rsa.pub复制到自己的github里,在setting-SSH and GPG keys-New SSH key.验证本地仓
2021-09-23 14:50:25
244
原创 手机数据跑VO/VIO记录
步骤:前期工作:使用ROS包camera_calibration标定手机,修改yaml参数配置文件1.roscore2.打开手机端数据获取APK,IP地址为电脑端IP3.手机图像topic重命名:rosrun image_transport republish compressed in:=/android/image_raw raout:=/cam0/image_raw3.运行ORBSLAM:rosrun ORB_SLAM2 Mono /home/fs/catkin_ws/src/ORB_SLA
2021-08-05 17:57:13
746
原创 rosdep update失败的最新终极解决办法
本人Ubuntu1804上安装ROS后,无法rosdep update 尝试各种换网、翻墙,修改hosts,修改DNS都无济于事。最后参考博客:Ubuntu18.04安装ROS及rosdep报错解决办法 换了gitee上的源顺利解决。下面操作中我也在自己的码云仓库上传了一版,其中注意两点:权限设置public路径默认是blob,一定要改为raw.例如: https://gitee.com/zhao-xuzuo/rosdistro/raw/master/rosdep/osx-homebrew.yaml
2021-08-05 15:57:50
715
原创 Android Studio使用记录
1.下载安装Android Studio参考博客:安装 | 手把手教你Android studio 3.5.2安装(安装教程)2.创建demo编译失败的问题参考博客:解决Android Studio报错 Installed Build Tools revision 31.0.0 is corrupted.3.导入别人的工程参考博客:导入别人的android studio项目4.编译Vins-On-Android项目出错...
2021-07-28 14:24:11
535
原创 Ubuntu20.04下成功运行VINS-mono
可以编译成功但是运行时段错误查找原因应该是ROS noetic版本中自带的OpenCV4和VINS-mono中需要使用的OpenCV3冲突的问题。为了便于查找问题,我只先编译feature_tracker包。解决思路历程:o想着把OpenCV4相关的库移除掉,但是发现编译feature_tracker的时候仍然会关联到Opencv4的库,查找原因是因为cv_bridge是依赖opencv4的,这样导致同时使用了opencv3和opencv4,因此运行出现段错误。oo进一步想着(1)把vins-mon
2021-07-27 14:57:29
6543
31
原创 Ubuntu下的实用操作汇总(更新补充中)
-------------------好记性不如个烂笔头,汇总一下以免每次都要查找----------------------1.移动文件到指定文件夹下sudo mv 文件名 指定文件夹路径2.查看库版本(1) OpenCV: pkg-config OpenCV(根据实际进行修改) --modversion #前提根目录下安装了opncv(2) Cmake: cmake --version...
2021-07-27 10:39:44
129
原创 Ubuntu报错_ZTVN6google4base6LoggerE‘ can not be used when making a shared object; recompile with -fPIC
问题描述如下:/usr/bin/ld: /usr/local/lib/libglog.a(libglog_la-logging.o): relocation R_X86_64_32S against `_ZTVN6google4base6LoggerE' can not be used when making a shared object; recompile with -fPIC/usr/local/lib/libglog.a: error adding symbols: Bad valuecol
2021-03-15 15:45:47
702
原创 Ubuntu报错:package architecture (arm64) does not match system (amd64)
问题:使用dpkg安装deb程序时报错package architecture (arm64) does not match system (amd64)解决方法:sudo dpkg --add-architecture amd64若出现package architecture (amd64) does not match system (arm64)则执行:sudo dpkg --add-architecture arm64即可...
2020-12-05 15:33:40
22495
12
原创 用一套键鼠控制两台主机
自己最近做一个项目涉及到以下场景:需要在一台window10系统的电脑上看一些文档,同时在一台装Ubuntu1804的电脑上跑一些代码。因此需要同时用两套鼠标键盘,切换起来十分麻烦,而且经常会拿错。因此参考以下博客解决了用一套键鼠控制两台主机的问题。https://blog.youkuaiyun.com/konglong2017/article/details/90369945中间也看了其他博客踩了不少坑,最后总结一下:(1)必须局域网条件下,能互相ping通(2)synergy版本必须一致,我的win10和U
2020-11-14 11:26:02
1619
原创 彻底搞清多线程和多进程
参考:浅谈操作系统与内存https://www.cnblogs.com/downey-blog/p/10482472.html51单片机与STM32单片机架构的区别https://www.cnblogs.com/ltybk/p/11533300.htmlCPUCPU唯一的能力其实就是处理二进制数据。CPU有三种总线:控制总线,地址总线,数据总线,这些总线统称为系统总线,主要用来与外设交...
2019-12-23 11:02:21
910
1
原创 PL-SVO代码解析
---------------------------------------------------------------------------------------------------------------------------
2019-11-21 21:33:59
609
3
原创 知识点梳理:基本矩阵F、本质矩阵E、单应矩阵H
1.基本矩阵F:根据两帧间匹配的像素点对儿计算2.本质矩阵E:通过归一化坐标对进行计算。因为R,t共有6个自由度,又因为单目尺度等价性,所以实际上E矩阵共有5个自由度。因此至少需要5个点对来求解。十四讲中说因为E矩阵的内在性质是一种非线性,求解起来十分麻烦。这句话怎么理解呢?其实意思应该是说把E矩阵用5个变量来表示是比较困难的,他们之间是一个非线性的表示形式(E=[t]×R[\mathbf ...
2019-11-19 21:01:51
5151
2
原创 PL-VIO: Tightly-Coupled Monocular Visual–Inertial Odometry Using Point and Line Features
sensors 中科院贺一家博士首先看下图,点线特征融合VIO系统的观测示意图IMU预积分同VINS-Mono线特征几何表示1.普吕克坐标表示普吕克坐标表示用线特征方向向量和线特征与相机坐标系原点所构成的平面的法向量表示,如下所示L=(n⊤,d⊤)⊤∈R6\mathcal{L}=\left(\mathbf{n}^{\top}, \mathbf{d}^{\top}\right)^...
2019-11-18 14:42:37
2080
原创 PL-SVO: Semi-Direct Monocular Visual Odometry by Combining Points and Line Segments
IROS2016 西班牙马拉加大学首先看系统流程图主要分为跟踪线程和建图线程两大部分。跟踪线程1.基于稀疏模型的图像对齐设定一个初始位姿Tk,k−1T_{k,k-1}Tk,k−1,且已经存在一些空间点线,然后把空间点线投影到当前帧,然后优化当前帧位姿Tk,k−1T_{k,k-1}Tk,k−1使得当前帧与参考帧的光度误差最小。关于线特征需要早端点pq之间等距采样多个图像块,表示如...
2019-11-18 10:19:28
474
原创 OKVIS:Keyframe-Based Visual-Inertial SLAM Using Nonlinear Optimization
主要是看了范帝楷大佬在泡泡机器人SLAM中介绍。我把链接写到博客里便于自己以后查看。【泡泡机器人原创专栏-OKVIS】OKVIS理论推导(上) https://mp.weixin.qq.com/s/FDMDleH8wszsD9HkBXwAnQ【泡泡机器人原创专栏-OKVIS】OKVIS理论推导(下)https://mp.weixin.qq.com/s/UvRA_hOULokRgqJH1wk1...
2019-11-13 11:21:05
1060
原创 Basalt:Visual-Inertial Mapping with Non-Linear Factor Recovery
定义:Jr(s)=limξ→0r(s⊕ξ)⊖r(s)ξ\mathbf{J}_{\mathbf{r}(\mathbf{s})}=\lim _{\xi \rightarrow \mathbf{0}} \frac{\mathbf{r}(\mathbf{s} \oplus \boldsymbol{\xi}) \ominus \mathbf{r}(\mathbf{s})}{\xi}Jr(s)=ξ→...
2019-11-13 08:45:19
2568
原创 VIORB-SLAM:Visual-Inertial Monocular SLAM with Map Reuse
我看VIORBSLAM的时候已经看完VINS-Mono了,发现VIORB在初始化时和VINS是有一些区别的。而后端是基于ORBSLAM的所以和ORBSLAM很相似。下面主要从数据预处理、初始化、跟踪建图优化三个部分进行总结。数据预处理相机:针孔相机模型。ORB特征提取匹配等不多说了。文中关于焦距的说法应该是错的吧,严格来讲 fu\ {f}_u fu和 fv\ {...
2019-11-10 19:33:25
2014
5
原创 VINS-Mono代码阅读
一、feature_tracker首先初始化feature_tracker节点,函数readParameters(n)加载config参数配置文件。trackerData[i].readIntrinsicParameter(CAM_NAMES[i])给相机模型加载内参,这里是单目i=1;如果是鱼眼相机则加载mask。然后开始订阅相机的topic,调用回调函数读取图片**[1]**,然后初始化3个...
2019-11-01 19:04:18
814
原创 编译PL-SVO时遇到的一些问题(二)
根据上一篇安装的环境pl-svo编译成功了接着配置参数跑数据集:我跑的时euroc数据集,使用的IDE是CLion,配置参数如下即可运行结果还是跑不起来的,mrpt这个库缺少wxgtk的依赖,之前之所以能够编译成功是因为mrpt编译时并不完全需要wxgtk中间过程仍然很曲折,下面直接写自己的解决方案。我的系统是Ubuntu1404、cmake3.11.3参照官网:下载mrpt1.5....
2019-03-28 15:50:32
781
转载 编译安装cmake-3.13.2及cmake-gui
环境:PC操作系统:Ubuntu 14.04 LTS交叉编译工具:gcc 5.4.0非编译安装方法: 版本会比较旧,编译安装可安装最新版sudo apt-get install cmake步骤:1、下载cmake源码官网下载页cmake-3.13.22、解压以及进入到解压目录下tar zxvf cmake-3.13.2.tar.gzcd cmake-3.13.2/3、...
2019-03-28 14:46:17
1713
原创 编译PL-SVO时遇到的一些问题(一)
1.找不到fastConfig.cmakefast库编译安装后在pl-svo的camke-models文件夹下面加入fastConfig.cmake,但是在编译pl-svo时就是camke ..就是找不到该文件,于是修改camkelists.txt,加入语句set(fast_DIR "/home/fs/Documents/pl-svo/cmake-modules")即可2.运行r...
2019-03-27 21:00:29
1253
2
原创 Glog库使用时的一些错误
Glog库使用时的错误( 本人在编译源码StructSLAM时遇到的一些关于glog库的问题)问题描述:自己之前按照下面的方式成功安装过gflags和glog库,也在编译其他源码时使用过,今天在使用时遇到了上述错误。download new version gflag and compile.$ git clone https://github.com/gflags/gflags.g...
2019-03-12 16:14:18
1697
转载 Ubuntu中动态库.so和静态库.a介绍
Ubuntu中.so和.a后缀的文件介绍( 今天在编译某个开源代码的时候遇到glog库的链接问题,由于对.so和.a动态库和静态库不够明白,于是学习了一波)转自:http://www.cnblogs.com/laojie4321/archive/2012/03/28/2421056.html在Linux中创建静态库 .a 和 动态库 .so我们通常把一些公用函数制作成函数库,供其它程序使用...
2019-03-12 15:48:14
4327
原创 关于激光雷达和视觉融合的里程计研究总结
根据设计的里程计系统中雷达和相机所起作用的比重不同,可大致分为3类:一类是视觉辅助激光的,一类是激光辅助视觉的,另一类是激光和视觉里程计相互融合相互矫正的。下面将具体解释一下这三类融合方案。视觉辅助激光。前期通过在查找国内外文献发现,国内的研究基本都是这种方式,一般是利用视觉信息来提高激光SLAM系统的闭环检测的准确性,或者是辅助重定位,或者是在位姿估计阶段构架激光特征的变换误差和视觉重投影误...
2019-03-01 14:37:20
7094
9
原创 Turtlebot3 buger在仿真环境下建图导航
Gazebo仿真实验(建图+导航)turtlebot3 buger1.打开gazebo仿真环境并加载地图roslaunch turtlebot3_gazebo turtlebot3_world.launch(也可以自己动手画)2.打开rvizroslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch3.启动键盘控制roslaunc...
2018-10-26 17:47:41
792
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人