![](https://img-blog.csdnimg.cn/9143f6d59c994531b3f63d54b429544c.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
学习视觉SLAM十四讲
高翔
Uncertainty!!
生存/生活--商品和服务--货币--物欲--价值观--人生观--世界观
展开
-
双目相机标定(MATLAB TOOLBOX_calib)
1.双目相机标定参考教程:双目摄像头测量距离1.1 准备工作将左右双目拍摄的标定板(简易)照片存放在MATLAB标定工具箱根目录下(本人的根目录如下)照片命名为 left+序号.bmp right+序号.bmp/usr/local/MATLAB/R2018a/toolbox/TOOLBOX_calib/1.2 左目标定打开MATLAB,并进入上述目录,打开标定工具箱,点击image name我们先处理左目,输入left回车,再输入bmp(图片格式),window size根据参考原创 2022-05-08 18:29:33 · 1830 阅读 · 4 评论 -
Visual Odometry小总结
原创 2022-01-21 23:43:41 · 98 阅读 · 0 评论 -
运行ORB-SLAM2的小例子
在ORB-SLAM2中的Examples文件夹建立自己的项目myvideo文件夹中的内容在ORB-SLAM2的CMakeLists.txt的末尾添加以下内容终端中输入以下内容 (当前工作目录为ORB-SLAM工程目录下)chmod +x build.sh./build.shbuild.sh中的内容运行完后生成myvideo可执行程序...原创 2021-06-01 22:44:38 · 272 阅读 · 1 评论 -
CMake小练习
题目要求建一个hello文件夹在hello下建立两个文件夹include放置头文件src放置源码将所给文件放入指定文件夹创建项目hello的CMakeLists.txtCMakeLists.txt内容项目hello的目录树#进入项目hello文件夹mkdir buildcd buildcmake .. #因为当前工作目录为build内,而CMakeLists.txt在上一级,所以使用cmake ..sudo make install...原创 2021-06-01 21:30:35 · 182 阅读 · 1 评论 -
四元数公式推导
笔记来源:Krasjet*原创 2021-05-30 16:14:51 · 218 阅读 · 0 评论 -
罗德里格斯公式推导
原创 2021-05-30 13:54:06 · 202 阅读 · 0 评论 -
尝试运行示例:单目稠密重建
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(dense)set(CMAKE_CXX_STANDARD 14)set(CMAKE_BUILD_TYPE "Release")set(CMAKE_CXX_FLAGS "-std=c++11 -march=native -O3")set(Sophus_LIBRARIES "/usr/local/lib/libSophus.so")############### dependen原创 2021-05-27 11:51:27 · 322 阅读 · 0 评论 -
尝试运行示例:创建字典
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(feature_train)set(CMAKE_CXX_STANDARD 14)set(DBoW3_INCLUDE_DIRS "/usr/local/include")set(DBoW3_LIBS "/usr/local/lib/libDBoW3.so")find_package(OpenCV 3.1 REQUIRED)include_directories(${OpenCV原创 2021-05-25 16:46:45 · 140 阅读 · 0 评论 -
尝试运行示例:李代数上的位姿图优化
尝试把Sophus用到g2o中定义自己的顶点和边CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(lie_algebra)set(CMAKE_CXX_STANDARD 14)set(Sophus_LIBRARIES "/usr/local/lib/libSophus.so")list(APPEND CMAKE_MODULE_PATH ${lie_algebra_SOURCE_DIR}/cmake_modules)find_原创 2021-05-22 13:39:00 · 284 阅读 · 0 评论 -
尝试运行示例:位姿图优化
g2o原生位姿图(用g2o_viewer打开/slambook2/ch10/sphere.g2o)仿真位姿图(sphere.g2o)它的真实轨迹为一个球,由从下往上的多个层组成。每层为一个正圆形,很多个大小不一的圆形层组成了一个完整的球体,共包含2500个位姿节点,可看成一个转圈上升的过程。仿真程序生成了t-1到t时刻的边(里程计边)层与层之间的边(回环)在每条边上添加观测噪声,并根据里程计边的噪声,重新设置节点的初始值。这样就得到了带累积误差的位姿图数据。它局部看起来像球体的一部分,但整原创 2021-05-22 11:40:30 · 520 阅读 · 0 评论 -
尝试运行示例:g2o求解BA
遇到的问题:解决:问题:解决:Ctrl+Shift+R用到的文件CMakeLists.txtproject(g2oBA)cmake_minimum_required(VERSION 3.13)set(CMAKE_BUILD_TYPE "Release")set(CMAKE_CXX_FLAGS "-O3 -std=c++11")set(Sophus_LIBRARIES "/usr/local/lib/libSophus.so")set(CMAKE_CXX_STANDARD 14原创 2021-05-20 22:23:45 · 242 阅读 · 0 评论 -
尝试运行示例:Ceres BA (使用BAL数据集)
所有文件CMakeLists.txt//#指定要求最小的cmake版本,如果版本小于该要求,程序终止cmake_minimum_required(VERSION 3.13)//#项目名称 project(CeresBA)//#用变量替换值set(CMAKE_CXX_STANDARD 14)//#列表操作(读、搜索、修改、排序)//#追加例子:LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)list(AP原创 2021-05-20 13:20:18 · 783 阅读 · 2 评论 -
尝试运行示例:单层直接法和多层直接法
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(directmethod)set(CMAKE_CXX_STANDARD 14)set(Sophus_LIBS "/usr/local/lib/libSophus.so")#OpenCVfind_package(OpenCV REQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})#Pangolinfind_package(Pa原创 2021-05-09 22:56:38 · 198 阅读 · 0 评论 -
尝试运行示例:LK光流
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(opticalflow)set(CMAKE_CXX_STANDARD 14)//# set(OpenCV_DIR /usr/local/opencv4/lib/cmake/opencv4)find_package(OpenCV REQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})include_directories("/原创 2021-05-09 19:02:14 · 324 阅读 · 1 评论 -
尝试运行示例:使用EPnP求解位姿
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(pose_estimation_32)//# Release 发布模式,没有调试信息,全优化set(CMAKE_BUILD_TYPE "Release")//# add -D define flags to the compilation of source files.//# add_definitions(-DFOO -DBAR ...)add_definitions("-D原创 2021-05-07 16:31:34 · 417 阅读 · 0 评论 -
尝试运行示例:三角测量
根据对极几何求解的相机位姿,通过三角化求出特征点的空间位置CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(triangular)set(CMAKE_CXX_STANDARD 14)find_package(OpenCV REQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})add_executable(triangular triangulation.cpp)target原创 2021-05-04 12:18:09 · 146 阅读 · 0 评论 -
尝试运行示例:対极约束求解相机运动
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(2d_2d)set(CMAKE_CXX_STANDARD 14)find_package(OpenCV REQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})add_executable(2d_2d 2d2d.cpp)target_link_libraries(2d_2d ${OpenCV_LIBS})2d2d.cpp#i原创 2021-05-03 23:12:03 · 178 阅读 · 0 评论 -
尝试运行示例:手写ORB特征
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(orbself)#用变量替换值set(CMAKE_CXX_STANDARD 14)set(CMAKE_CXX_FLAGS "-std=c++11 ${SSE_FLAGS} -g -march=native")#搜索外部库find_package(OpenCV REQUIRED)#指定头文件的搜索路径,编译器查找相应文件include_directories(${OpenCV_原创 2021-05-03 16:50:42 · 303 阅读 · 0 评论 -
尝试运行示例:ORB特征提取与匹配
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(orb)#用变量替换值set(CMAKE_CXX_STANDARD 14)#搜索外部库find_package(OpenCV REQUIRED)#指定头文件的搜索路径,编译器查找相应文件include_directories(${OpenCV_INCLUDE_DIRS})#用指定的源文件为工程添加可执行文件add_executable(orb orb_cv.cpp)#将O原创 2021-05-03 12:32:10 · 241 阅读 · 0 评论 -
尝试运行示例:使用g2o拟合曲线
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(g2oCurve)set(CMAKE_CXX_FLAGS "-std=c++14")set(CMAKE_CXX_STANDARD 14)list(APPEND CMAKE_MODULE_PATH /home/.../Documents/slambook2/ch6/cmake)#g2ofind_package(G2O REQUIRED)include_directories原创 2021-05-02 19:19:09 · 204 阅读 · 0 评论 -
尝试运行示例:使用Ceres拟合曲线
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(cerescurve)set(CMAKE_CXX_STANDARD 14)#Ceres#搜索外部库find_package(Ceres REQUIRED)#指定头文件的搜索路径,编译器查找相应文件include_directories(${CERES_INCLUDE_DIRS})#OpenCV#搜索外部库find_package(OpenCV REQUIRED)#原创 2021-05-02 17:11:29 · 187 阅读 · 0 评论 -
尝试运行示例:手写高斯牛顿法
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(GN)#用变量替换值set(CMAKE_CXX_STANDARD 14)set(CMAKE_BUILD_TYPE Release)set(CMAKE_CXX_FLAGS "-std=c++14 -O3")# OpenCV#搜索外部库find_package(OpenCV REQUIRED)#指定头文件的搜索路径,编译器查找相应文件include_directories(原创 2021-05-02 15:48:48 · 111 阅读 · 2 评论 -
尝试运行示例:RGB-D视觉
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(rgbdVision)#用变量替换值set(CMAKE_CXX_STANDARD 14)set(Sophus_LIBRARIES "/usr/local/lib/libSophus.so")#搜索外部库find_package(Pangolin REQUIRED)find_package(OpenCV REQUIRED)#指定头文件的搜索路径,编译器查找相应文件includ原创 2021-04-30 18:53:17 · 218 阅读 · 1 评论 -
尝试运行示例:双目视觉
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(stereo)#用变量替换值set(CMAKE_CXX_STANDARD 14)set(CMAKE_CXX_FLAGS "-std=c++11")#搜索外部库find_package(Pangolin REQUIRED)find_package(OpenCV REQUIRED)#指定头文件的搜索路径,编译器查找相应文件include_directories(${OpenCV原创 2021-04-30 15:37:31 · 184 阅读 · 1 评论 -
尝试运行示例:图像去畸变
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(undistort)#用变量替换值#变量:CMAKE_CXX_STANDARD 值:14set(CMAKE_CXX_STANDARD 14)set(CMAKE_CXX_FLAGS "-std=c++11")#搜索外部库find_package(OpenCV REQUIRED)#指定头文件的搜索路径,编译器查找相应文件include_directories(${OpenCV_原创 2021-04-30 14:38:21 · 174 阅读 · 0 评论 -
尝试运行示例:操作OpenCV图像
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(image)#用变量替换值set(CMAKE_CXX_STANDARD 14)set(CMAKE_CXX_FLAGS "-std=c++11")#搜索外部库find_package(OpenCV REQUIRED)#指定头文件的搜索路径,编译器查找相应头文件include_directories(${OpenCV_INCLUDE_DIRS})#用指定的源文件为工程添加可执行原创 2021-04-30 13:59:47 · 116 阅读 · 0 评论 -
尝试运行示例:评估轨迹的误差
CMakeLists.txtcmake_minimum_required(VERSION 3.13)project(trajectoryError)#用变量替换值set(CMAKE_CXX_STANDARD 14)set(Sophus_LIBRARIES "/usr/local/lib/libSophus.so")#搜索外部库find_package(Pangolin REQUIRED)#指定头文件的搜索路径,编译器查找相应头文件include_directories(${Pango原创 2021-04-29 20:51:00 · 322 阅读 · 0 评论 -
尝试运行示例:Sophus
CMakeLists.txtfind_package(Sophus REQUIRED) //找不到Sophus库set(Sophus_LIBRARIES libSophus.so)Fixed//搜索外部库#find_package(Sophus REQUIRED) //注释此行//用变量替代值,Sophus_LIBRARIES 替代 /usr/local/lib/libSophus.soset(Sophus_LIBRARIES "/usr/local/lib/libSophus.so")原创 2021-04-29 19:13:18 · 324 阅读 · 0 评论 -
尝试运行示例:实际的坐标变换例子
#include <iostream>#include <vector>#include <algorithm>#include <Eigen/Core>#include <Eigen/Geometry>using namespace std;using namespace Eigen;int main(int argc, char** argv) { Quaterniond q1(0.35, 0.2, 0.3, 0.1);/原创 2020-11-12 12:22:50 · 335 阅读 · 1 评论 -
尝试运行示例:显示相机的位姿
#include <iostream> 2 #include <iomanip> 3 4 using namespace std; 5 6 #include <Eigen/Core> 7 #include <Eigen/Geometry> 8 9 using namespace Eigen; 10 11 #include <pangolin/pangolin.h> 12 13 struct Rota原创 2020-11-12 12:27:55 · 909 阅读 · 0 评论 -
尝试运行示例:显示运动轨迹
#include <iostream>#include <Eigen/Core>#include <unistd.h>#include <pangolin/pangolin.h>using namespace std;using namespace Eigen;string trajectory_file = "/home/aeronautics/slambook2/ch3/examples/trajectory.txt";void Dra原创 2020-11-29 14:48:26 · 322 阅读 · 0 评论 -
视觉SLAM十四讲第三章习题5
#include <iostream>#include <Eigen/Core>#include <Eigen/Geometry>#define MATRIX_SIZE 4using namespace std;/*提取大矩阵左上角3×3矩阵,有两种方式: * 1.直接从0-2循环遍历大矩阵的前三行和三列 * 2.用矩阵变量.block(0,0,3,3) 从左上角00位置开始取3行3列*/int main(int argc, char **argv) {原创 2020-11-11 22:28:18 · 287 阅读 · 0 评论