SLAM
追求卓越583
这个作者很懒,什么都没留下…
展开
-
Ubuntu16.04卸载opencv 3.0.0
一、卸载 opencv3.0.01、查看已安装的 opencv 版本pkg-config --modversion opencv2、卸载 找到当初安装 opencv3.0.0 的 build 目录,进入 build 目录cd /home/***/opencv/buildsudo make uninstallcd ..sudo rm -r build如果找不到 build 目录,可以重新建立 build 目录安装对应版本,再执行卸载步骤。然后清理 /usr ...原创 2020-12-21 16:08:15 · 625 阅读 · 0 评论 -
OpenCV编译出现 CMake Error: CUDA_nppi_LIBRARY (ADVANCED)
由于先安装了Cuda,再对OpenCV进行编译安装时,出现错误具体内容如下:CMake Error: The following variables are used in this project, but they are set to NOTFOUND.Please set them or make sure they are set and tested correctly in the CMake files:CUDA_nppi_LIBRARY (ADVANCED) li原创 2020-12-21 11:17:54 · 4561 阅读 · 3 评论 -
【ORB-SLAM2】(三):单目摄像头+ROS+ORB_SLAM2实时测试
介绍:首先启动一个单目摄像头,其次发布节点话题/usb_cam/image_raw,最后ORB_SLAM2订阅摄像头数据进行处理(这里需要修改相应的源文件里的话题类型,其默认值为 /camera/image_raw)。git上有ros节点使用介绍,https://github.com/Vincentqyw/ORB-SLAM2-CHINESE1. 为mono、monoAR、stereore和RGB-D构建节点将包含Examples/ROS/ORB_SLAM2的path添加到ROS_PACKAGE_原创 2020-07-16 21:52:23 · 2492 阅读 · 1 评论 -
ORB_SLAM2编译出现问题
在: ./build_ros.sh 出现错误:错误1:Building ROS nodesmkdir: cannot create directory ‘build’: File exists[rosbuild] Building package ORB_SLAM2[rosbuild] Error from directory check: /opt/ros/kinetic/share/ros/core/rosbuild/bin/check_same_directories.py /home原创 2020-07-16 20:36:19 · 5495 阅读 · 4 评论 -
Ubuntu16.04安装Eigen3
Eigen下载地址:https://gitlab.com/libeigen/eigen/-/releases安装的版本为3.2.0。在https://gitlab.com/libeigen/eigen/-/releases下载 Eigen3.2.10 压缩文件,并解压。cd ~/softwaretar -zxvf eigen-3.3.7.tar.gz编译安装eigen3.3.7cd eigen-3.3.7/mkdir buildcd buildcmake .....原创 2020-07-12 17:40:32 · 7969 阅读 · 1 评论 -
ubuntu16.04卸载eigen
查看eigen3的位置:sudo updatedb locate eigen3 #查看eigen3的位置依次删除eigen3的安装文件:sudo rm -rf /usr/include/eigen3sudo rm -rf /usr/lib/cmake/eigen3sudo rm -rf /usr/local/include/eigen3sudo rm -rf /usr/share/doc/libeigen3-devsudo rm -rf /usr/local/sha...原创 2020-07-12 17:26:01 · 6367 阅读 · 1 评论 -
ubuntu16.04卸载ceres
sudo rm -r /usr/local/lib/cmake/Ceressudo rm -rf /usr/local/include/ceres /usr/local/lib/libceres.a参考:https://blog.csdn.net/weixin_45617478/article/details/104125635原创 2020-07-12 16:41:14 · 2493 阅读 · 1 评论 -
ubuntu16.04安装ceres库
1.ceres是google库,首先安装相关依赖sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.4 libgflags-dev libeigen3-devsudo apt-get install libgoogle-glog-dev libgtest-dev2.如果安装时找不到 cxsparse 或者其他的lib,需要添加下面的源sudo gedit /etc/apt/sources.list原创 2020-07-11 19:21:24 · 1719 阅读 · 0 评论 -
【ORB-SLAM2】(一):Ubuntu16.04下配置ORB-SLAM2
1 准备工作在开始配置ORB-SLAM2之前,有若干工具是需要提前安装的,即vim、cmake、git、gcc、g++。sudo apt-get install vim git cmake -ysudo apt-get install gcc g++ -y-y表示自动安装,不需要每项手动确认输入 Yes一般地,完整版的Ubuntu都带有gcc和g++接下来将安装 ROS Kinetic Kame2 ROS Kinetic Kame 的安装和配置下面我将给出 ROS Kinet原创 2020-07-09 17:30:36 · 2261 阅读 · 0 评论 -
SLAM 整体性总结
VSLAM方法框架:整个SLAM大概可以分为前端和后端 ,前端相当于VO(视觉里程计),研究帧与帧之间变换关系。首先提取每帧图像特征点,利用相邻帧图像,进行特征点匹配,然后利用RANSAC去除大噪声,然后进行匹配,得到一个pose信息(位置和姿态),同时可以利用IMU(Inertial measurement unit惯性测量单元)提供的姿态信息进行滤波融合后端则主要是对前端出结果进行优化,利用滤波理论(EKF、UKF、PF)、或者优化理论TORO、G2O进行树或者图的优化。最终得到最优的位姿估计。原创 2020-07-07 11:27:14 · 1010 阅读 · 0 评论 -
通俗易懂的IMU讲解,这一篇就够了
IMU技术的出现弥补了GPS定位的不足,两者相辅相成,可以让自动驾驶汽车获得最准确的定位信息。IMU全称inertial measurement unit,即惯性测量单元,它由三个单轴的加速度计和三个单轴的陀螺仪组成,加速度计检测物体在载体坐标系统独立三轴的加速度信号,而陀螺仪检测载体相对于导航坐标系的角速度信号,对这些信号进行处理之后,便可解算出物体的姿态。值得注意的是,IMU提供的是一...原创 2019-09-10 20:55:43 · 30580 阅读 · 4 评论 -
ubuntu16.04 安装opencv的viz模块
缺少viz模块报错:fatal error: opencv2/viz/viz.hpp: No such file or directory#include <opencv2/viz/viz.hpp>1、找到自己当时解压后的opencv3.1.0源码,如果编译过会有个build文件夹:cd build2、安装依赖sudo apt-get install li...原创 2019-07-22 16:51:28 · 2542 阅读 · 0 评论 -
SLAM后端--滤波方法和非线性优化方法
SLAM的后端一般分为两种处理方法,一种是以扩展卡尔曼滤波(EKF)为代表的滤波方法,一种是以图优化为代表的非线性优化方法。不过,目前SLAM研究的主流热点几乎都是基于图优化的。滤波方法的优缺点:优点:在当时计算资源受限、待估计量比较简单的情况下,EKF为代表的滤波方法比较有效,经常用在激光SLAM中。缺点:它的一个大缺点就是存储量和状态量是平方增长关系,因为存储的是协方差矩阵,因此不...原创 2019-07-30 15:35:01 · 9885 阅读 · 0 评论 -
正定矩阵与半正定矩阵定义性质与理解
参考:https://blog.csdn.net/asd136912/article/details/79146151原创 2019-07-18 20:18:57 · 3386 阅读 · 0 评论 -
高博14讲:第七讲中g20报错
高博14讲:第七讲中g20 3d3d 3d2d 报错的改动原因:g2o版本更新引起的错误修改3d3d报错:/home/yk/桌面/slambook-master/ch7/pose_estimation_3d3d.cpp: In function ‘void bundleAdjustment(const std::vector<cv::Point3_<float> &...原创 2019-06-17 10:02:10 · 3005 阅读 · 2 评论 -
高博14讲:第七讲
编译并运行:sudo mkdir build # 创建build文件夹cd buildsudo cmake ..报错1:Could NOT find CSPARSE (missing: CSPARSE_INCLUDE_DIR CSPARSE_LIBRARY) CMake Error: The following variables are used in this pr...原创 2019-06-17 10:43:15 · 1680 阅读 · 3 评论 -
高博14讲--第三讲 三维空间刚体运动
高博14讲--第三讲 三维空间刚体运动旋转矩阵点和向量、坐标系对极约束推导过程本质矩阵八点法八点法推导过程本质矩阵$\ E$的SVD分解八点法的讨论合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,...原创 2019-07-07 21:44:20 · 1869 阅读 · 0 评论 -
高博14讲--第七讲 视觉里程计-7.7 3D-2D:PnP(未完待续)
高博14讲--第七讲 视觉里程计-7.7 3D-2D:PnPPnP的基本问题新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与...原创 2019-07-02 11:31:02 · 1302 阅读 · 0 评论 -
向量的内积(点乘)与 向量的外积(叉乘)
向量的内积(点乘)定义概括地说,向量的内积(点乘/数量积)。对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,如下所示,对于向量a和向量b:a和b的点积公式为:这里要求一维向量a和向量b的行列数相同。注意:点乘的结果是一个标量(数量而不是向量)定义:两个向量a与b的内积为 a·b = |a||b|cos∠(a, b),特别地,0·a =a·0 = 0...原创 2019-06-27 20:13:43 · 8740 阅读 · 1 评论 -
高博14讲--第七讲 视觉里程计-7.3 2D-2D:对极几何(未完待续)
高博14讲--第七讲 视觉里程计-7.3 2D-2D:对极几何对极约束两种求解方法代数的解法优化的解法代数与优化方法的对比直接线性变换(DTL)P3P合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能...原创 2019-07-04 10:51:53 · 3493 阅读 · 0 评论 -
为什么要引入齐次坐标,齐次坐标的意义(一)
问题:两条平行线可以相交于一点在欧氏几何空间,同一平面的两条平行线不能相交,这是我们都熟悉的一种场景。然而,在透视空间里面,两条平行线可以相交,例如:火车轨道随着我们的视线越来越窄,最后两条平行线在无穷远处交于一点。欧氏空间(或者笛卡尔空间)描述2D/3D几何非常适合,但是这种方法却不适合处理透视空间的问题(实际上,欧氏几何是透视几何的一个子集合),2维笛卡尔坐标可以表示为...原创 2020-08-09 08:28:55 · 32375 阅读 · 9 评论 -
为什么要引入齐次坐标,齐次坐标的意义(二)
前面我们提到了图像的缩放变换和旋转变换,可以用矩阵乘法的形式来表达变换后的像素位置映射关系。那么,对于平移变换呢?平移变换表示的是位置变化的概念。如下图所示,一个图像矩形从中心点[x1,y1]平移到了中心点[x2,y2]处,整体大小和角度都没有变化。在x方向和y方向上分别平移了tx和ty大小。显然:这对于图像中的每一个点都是成立的。写成矩阵的形式就是:我们再把前面的...原创 2020-08-09 08:28:40 · 17776 阅读 · 34 评论 -
高博14讲--第七讲 视觉里程计-7.3 2D-2D:对极几何
高博14讲--第七讲 视觉里程计-7.3 2D-2D:对极几何基本问题对极约束对极约束推导过程本质矩阵八点法八点法推导过程本质矩阵$\ E$的SVD分解单目SLAM的一些问题尺度不确定性纯旋转问题基本问题 当相机为单目时,只知道2D的像素坐标,根据两组2D点估计相机的运动,用对极几何来解决。对极约束 两个相机之间的变换为 T12\ T_{...原创 2019-07-04 22:38:58 · 1325 阅读 · 0 评论 -
高博14讲--第七讲 视觉里程计-7.7 3D-2D:PnP
高博14讲--第七讲 视觉里程计-7.7 3D-2D:PnPPnP的基本问题直接线性变换(DTL)P3PPnP的基本问题 PnP(Perspective-n-Point):已知3D点的空间位置(世界坐标)和相机上的投影点(像素坐标),求相机的旋转和平移(外参),估计相机的位姿。 3D-2D就是指,已知空间中点的三维的世界坐标和二维的像素坐标...原创 2019-07-04 23:34:45 · 1325 阅读 · 0 评论 -
【相机标定推导】关于齐次坐标的理解(经典)
问题:两条平行线可以相交于一点在欧氏几何空间,同一平面的两条平行线不能相交,这是我们都熟悉的一种场景。然而,在透视空间里面,两条平行线可以相交,例如:火车轨道随着我们的视线越来越窄,最后两条平行线在无穷远处交于一点。欧氏空间(或者笛卡尔空间)描述2D/3D几何非常适合,但是这种方法却不适合处理透视空间的问题(实际上,欧氏几何是透视几何的一个子集合),2维笛卡尔坐标可以表示为(x,y)。如...原创 2019-05-26 15:48:16 · 1989 阅读 · 0 评论