解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 2 讲 初识SLAM (下)

在上一篇博客中,我主要解读了视觉SLAM所用的传感器和经典的视觉SLAM框架。在这篇博客中,我接着上一篇博客的内容,解读第二讲的下半部分:

  • SLAM问题的数学表述;
  • 完成后续代码实践需要做的准备工作。

解读

SLAM的数学描述

关于SLAM的数学描述,就是两个方程,一个是运动方程,一个是观测方程
x k = f ( x k − 1 , u k , w k ) z k , j = h ( y j , x k , v k , j ) x_k = f(x_{k-1}, u_k, w_k) \\ z_{k,j} = h(y_j, x_k, v_{k,j}) xk=f(xk1,uk,wk)zk,j=h(yj,xk,vk,j)如果你学过控制理论相关的课程,你对上面这两个等式并不陌生,上面的运动和观测方程,随处可见。即使你没有学过相关课程,根据《视觉SLAM十四讲》中的介绍,你也足以理解。
  
  书中有出现一个名词“路标(Landmark)”,如果你初见,可能不能知道它具体代表什么,书中也并没有解释,在这里我要给你解释一下。
  
  在SLAM中“路标”并不是“道路标志”,“路标”指的就是空间中的一些特殊的点。这么说可能还是不具体,看下面这张图在这里插入图片描述
  图中绿色框框中的绿点指示的空间点就是我们所说的“路标”。当我们拍下照片后,就获得了这些“路标”的测量值。为了找到场景的特点,我们会采用不同的方法,在图片中提取一些场景对应的像素点,这些像素点常常是那些变化比较明显的角点,上图中车道线的角点,栏杆的角点都是我们所说的“路标”。随着学习的深入,我们会知道有各种提取角点的算法,而现在你只需要知道“路标”是空间中的一些特殊点就可以了。

编程实践

Linux系统
作者在书中提到,使用Linux发行版中的Ubuntu,书中推荐使用的是Ubuntu14.04,实际上我建议大家使用16.04的版本,一方面是因为16.04不算老也不算新,所以稳定性和功能性都是最适合的,我在16.04的版本上实验了书中的几乎所有的例子,没有碰到系统版本导致的问题。
  
  刚安装好Ubuntu系统之后,也许你根本不知道怎么操作,不用害怕,它也是一个电脑系统,你只要多用用就习惯了,你可以用它来上网看视频,聊微信,总之Windows上能完成的操作,ubuntu上即使不能一模一样的去操作,但是也能找到相应的替代方法,你装上系统之后,可以尝试安装上一些常用的软件,比如谷歌浏览器、网易云音乐、有道词典、搜狗输入法等等,你也可以稍微美化一下你的系统,但是不要在这上面花太多时间,这会浪费很多精力。分享一下我稍微美化之后的样子。
在这里插入图片描述
CMake
作者提到当工程原来越大的时候,要管理每个文件之间的关系会变得很困难,这个时候我们就需要使用CMake这个工具。我们使用了CMake工具之后,我们就可以将我们的文件管理的井井有条。比方说,把.h头文件放在include为名称的文件夹里面,将.cc的源文件放在src为名称的文件夹里面,将编译产生的.a /.so,库文件放在lib文件夹下,将可执行文件放在example文件下,总之我们可以随意控制我们的工程形式,十分方便,对于使用C++语言来说,CMake是必不可少的工具,是每一个人都应该掌握的。关于它的学习,你只需要边用边学就可以,没有必要把它弄懂了才去做实践。在这里我推荐给你一个文档,你边用边查,
《CMake实践》百度云链接链接: https://pan.baidu.com/s/15M-g5h1rNF4Hyvef1DgsKw 提取码: ektx
我建议你一开始,可以先采用我的模板,将你的工程都按照我的模板进行管理,先模仿然后你就会创造了,可以查考我另外一篇博客:
Cmake配置工程,管理src和include文件夹,构建最常见的工程目录结构
也许初学,你不知道每个命令的用法和意义,但是我保证你只需要照着葫芦画瓢,不需要很久你就懂了。


关于库这里面需要的知识也很多,但是不用担心,我们只要会用就行了。后面我们会学到矩阵Eigen库,图像OpenCV库,点云PCL库,非线性优化g2o库等等,切记不要去对库的所有内容花时间学习,我们用到什么内容就学什么内容,不然你会浪费很多时间。关于库你还需要知道,我们只要拿到了库的头文件和库文件,我们就可以调用库中的函数了,至于这其中奥秘,暂且就放一边把。而库的调用,在CMake中只需要三行代码就足够了,比方说OpenCV库:

find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_labraries(xxxxxx ${OpenCV_LIBS})

调用OpenCV库,主要代码就这三行,第一行代码,找到OpenCV库,第二行包含它的头文件,第三行包含它的库文件。

不过你也别着急,我们还没有真正开始学习CMake,作者在后续的实践中,会一直使用CMake,你现在有个简单的了解就行,这里面你可能有很多疑问,但是请你先收藏你的疑惑,先大胆的去尝试,去使用。

IDE
IDE就是我们代码的开发环境。Linux上可以用的IDE非常多,有VS code,CLion,Kdevelop等等。我比较喜欢CLion,因为它的界面是深色的,很好看,代码补全,跳转,都特别好用,而且插件很多,如果你让我推荐,我推荐使用CLion。不过你选择哪一款都没问题。

又啰里啰嗦写了一大堆,也不知道对你是否有用,如果表达的不准确或者有错误的地方,请你要不吝赐教。

壮志与毅力是事业的双翼

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
视觉SLAM十四》第二版主要分为三个大部分:激光SLAM视觉SLAM和激光视觉等多传感器融合SLAM。在激光SLAM部分,书中介绍了激光传感器的原理、产品选型,以及开源激光SLAM系统的介绍、比较和分类。此外,书中还介绍了深度学习在激光SLAM中的应用以及激光SLAM面临的挑战和未来发展。在视觉SLAM部分,书中涵盖了视觉传感器的原理、产品选型,以及开源视觉SLAM系统和视觉惯性系统的介绍、比较和分类。同样地,书中还讨论了深度学习在视觉SLAM中的应用以及视觉SLAM的挑战和未来。最后,在多传感器SLAM系统部分,书中介绍了多传感器之间的内外参标定方法,并从硬件层、数据层和任务层介绍了现有的多传感器融合工具、融合技术和融合产品。书中还探讨了多传感器融合面临的挑战和未来发展。 总而言之,《视觉SLAM十四》第二版主要介绍了激光SLAM视觉SLAM和激光视觉等多传感器融合SLAM的原理、应用、挑战以及未来发展。这本书适合对SLAM感兴趣的读者,无论是从事相关研究还是工程应用的人员都会受益。阅读本书可以帮助读者了解SLAM的基本概念和方法,并深入探讨SLAM在不同传感器和多传感器融合下的应用和挑战。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [《视觉SLAM十四(高翔)》高清中文版PDF 1](https://download.csdn.net/download/weixin_35823755/86294534)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [视觉slam十四 第二版 pdf_第二版SLAM上帝视角,它来啦!!!](https://blog.csdn.net/weixin_39620001/article/details/111384898)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值