视觉slam学习之路(一)看高翔十四讲所遇到的问题

目前实验室做机器人,主要分三个方向,定位导航,建图,图像识别,之前做的也是做了下Qt上位机,后面又弄红外识别,因为这学期上课也没怎么花时间在项目,然后导师让我们确定一个方向来,便于以后发论文什么。上个礼拜看了些论文,感觉视觉slam方向还可以,图像识别毕竟不是计算机科班,可能真正要弄也很难有成果,slam也是最近才研究起来,也挺适合我们搞,需要一些高数、c++、ros等知识,学的东西也挺多的,但这样才能体现研究生的价值,不然本科生也能做,然后确定了这个研究方向,希望好好研究个一两年有所成就,研三一个师兄搞的是激光slam,找的工作待遇也不错,前景还是可以的。然后这个礼拜就主要安装了ubuntu、kde,看十四讲书,运行里面的程序,也遇到不少问题,所以就记录下来,下面这些遇到的问题也是自己写的记录,粘贴过来可能不适合大家看,不过希望有所帮助吧,凑合着看,后面希望能更新,像高博 @半闲居士 那样开个博客,哈哈。

2018年1.18 1.高翔P28 g++ helloSLAM.CPP 遇到问题:g++ error:没有那个文件目录 解决:需找到文件目录 cd /home/cy/slambok/ch2/ (文件目录有空格需跳 用tab? cmake . 编译 make (%有问题 ./helloSLAM 【g++就 ./a.out

2.30页要删除之前生成的中间文件,即删除CMakelists.txt和helloSLAM.cpp以外的所有文件。否则make时会报错

3.31页增加库文件,先前第2步建的build要保存,因为cmakelists.txt有之前的构建,我的错误是新建libHelloSLAM.CPP时cpp竟然是大写,然后make时报错makefile找不到,弄了半天才发现这个错误。

4从编程的角度讲,通常有静态库文件和动态库文件。windows静态库文件就是.lib文件,动态库文件就是.dll文件。内容一样,都是将函数封装在一起编译后供自己或他人调用。好处在于编译后的库文件看不到源代码,可保密;同时不会因为不小心修改了函数而出问题,便于维护。 两种库的区别在于静态库被调用时直接加载到内存,而动态库再是在需要的时候加载到内存,不使用的时候再从内存释放。

unix系统的静态库文件和动态库文件后缀分别是.a和.so

5.main函数的源文件生车可执行文件 其他源文件编译成库文件。

6.有个疑问就是,书上调用的库文件printHello最终输出,但是之前的helloSLAM.cpp的源文件执行的却没有? 后面试了下在配置启动器更改配置文件为helloslam,则输出helloslam.cpp的源程序,增加两个配置不知为什么还是只执行usehello.难道一次只能执行一个执行文件?

7.按debug模式竟然闪现,不能调试。 解决:问了师兄解决了,原来是配置启动器设置的调试断点不是当前启动配置,然后会出现闪现。

8.齐次坐标 参考:http://blog.csdn.net/janestar/article/details/44244849

2018年1月19日

1.欧拉角https://www.zhihu.com/question/47736315

2.58页useGeometry程序,书上源程序命名useGeometry.cpp,然后我自己编写源程序名是按的书上的,CMakelists按高的源代码,但是高给的源代码命名是eigenGeoetry.cpp,CMakeLists.txt中add_executable( eigenGeometry eigenGeometry.cpp )然后导致我在终端时cmake出现找不到源程序的错误eigenGeoetry.cpp,因为我命名的是useGeometry.cpp。后面MAKE完总按./useGeometry 然后出现“没有那个文件或目录”错误

解决:add_executable( eigenGeometry eigenGeometry.cpp )改为add_executable( useGeometry useGeometry.cpp )。也就是前面那个程序名可以自己改,但是后面终端执行时./useGeometry与程序名一致,后卖弄那个需与命名的源程序名一致。

原文地址:https://www.cnblogs.com/cybest/p/8900199.html

时间: 2024-10-19 22:29:17

视觉slam学习之路(一)看高翔十四讲所遇到的问题的相关文章

入门实战《深度学习技术图像处理入门》+《视觉SLAM十四讲从理论到实践》

学习图像识别处理,想在数据分析竞赛中取得较高的排名,看了<深度学习技术图像处理入门>电子书,一边看电子书一边做标记,对配套的代码也做了测试,收获颇多. 从机器学习.图像处理的基本概念入手,逐步阐述深度学习图像处理技术的基本原理以及简单的实现. 学习理论后做实验,使用卷积神经网络进行端到端学习,构建深度卷积神经网络,使用循环神经网络改进模型,评估模型,测试模型.最关键的是可以将模型运用于实战之中,将深度学习模型导入到工程中,数据类型转换函数,实施CAM可视化,这是我最需要的. 视觉和图形学真是一

CV学习资料《卷积神经网络与视觉计算》+《深度学习实践计算机视觉》+《视觉SLAM十四讲从理论到实践》电子资料代码分析

视觉和图形学真是一家,基础都一样! 如果学习图像识别,计算机视觉,推荐电子书<视觉SLAM十四讲:从理论到实践>,系统介绍了视觉SLAM(同时定位与地图构建)所需的基本知识与核心算法,既包括数学理论基础,如三维空间的刚体运动.非线性优化,又包括计算机视觉的算法实现,例如多视图几何.回环检测等. 一个周读完了,代码很清晰!Particle Filtering,KF,EKF, Batch Optimization, Lie Group,ICP,LK光流... 尤其惊喜的是文末作者看好的IMU-SL

《SLAM十四讲》个人学习知识点梳理

0.引言 从六月末到八月初大概一个月时间一直在啃SLAM十四讲[1]这本书,这本书把SLAM中涉及的基本知识点都涵盖了,所以在这里做一个复习,对这本书自己学到的东西做一个梳理. 书本地址:http://www.broadview.com.cn/book/4938 书本代码:https://github.com/gaoxiang12/slambook 1.SLAM概述 SLAM:即时定位与地图构建(Simultaneous Localization and Mapping) 数学描述: 一个典型的

浅读《视觉SLAM十四讲:从理论到实践》--操作1--初识SLAM

下载<视觉SLAM十四讲:从理论到实践>源码:https://github.com/gaoxiang12/slambook 第二讲:初识SLAM 2.4.2 Hello SLAM(书本P27) 1.从github上下载源码,并解压 Ubuntu上,解压zip,先找到zip文件所在位置,然后运行下面代码,进行解压. unzip slambook-master.zip 解压后,找到ch2文件夹,在文件夹中找到helloSLAM.cpp文件 运行cpp文件 g++ helloSLAM.cpp 如未安

《视觉slam十四讲》之第3讲-实践Eigen库

<视觉slam十四讲>之第3讲-实践Eigen库 Eigen库的安装 sudo apt-get install libeigen3-dev 注:Eigen是一个由纯头文件搭建的线性代数库,头文件安装路径为/usr/include/eigen3/. 实例1:Eigen的基础运算 #include <iostream> #include <ctime> #include <Eigen/Core> // Eigen 部分 #include <Eigen/De

视觉SLAM十四讲随笔

**************************************************************************************************************************************************ch1:clion的使用 断点设置之后,逐行执行 (Step Into) ( F7 ),逐函数执行 (Step Over) ( F8 ),注意0和O在clion中的显示区别,0是中间有个点的 O看起来像0,中

《视觉slam十四讲》-第3讲-三维空间刚体运动

<视觉slam十四讲>-第3讲-三维空间刚体运动 原文地址:https://www.cnblogs.com/tangyuanjie/p/12606386.html

读懂金融危机必看的十四本书

华尔街见闻网站此前曾推荐过不少书单(例如华尔街人必读的22本金融佳作.金融新手必看的十本书以及最值得一读的经济史书单),本周末我们为读者总结了关于最近一场金融危机的金融佳作,希望能给读者带来帮助. 1. <大空头> (The Big Short: Inside the Doomsday Machine) 作者: 迈克尔?刘易斯(Michael Lewis) 本书展现的是一群智力超群.性格怪异的"终结者".他们之前仅仅是名不见经传的华尔街员工,但他们是洞察次贷危机的"

视觉slam十四讲ch6曲线拟合 代码注释(笔记版)

1 #include <opencv2/core/core.hpp> 2 #include <ceres/ceres.h> 3 #include <chrono> 4 5 using namespace std; 6 7 // 代价函数的计算模型 8 struct CURVE_FITTING_COST 9 { 10 CURVE_FITTING_COST ( double x, double y ) : _x ( x ), _y ( y ) {} 11 // 残差的计算