2019-2020-2学期机器人工程专业需要开设SLAM技术课程,使用教材为视觉SLAM十四讲从理论到实践第二版。

为方便学生学习课程知识,将Arduino、ROS1、ROS2和SLAM集成到课程定制版镜像中。链接如下:

  • https://blog.csdn.net/ZhangRelay/article/details/102596056

第一章 预备知识

关键词:数学、C++、Linux

学有余力的同学,请完成课后习题。

第二章 初识SLAM

关键词:SLAM、g++、IDE

g++ helloSLAM.cpp -o hello_slam

熟练使用:mkdir build , cmake .. , make等。

IDE环境使用KDevelop或者VSCode等都行。

第三章 三维空间刚体运动

关键词:矩阵、四元数、欧拉角、Eigen

全部内容:

matrix 2x3 from 1 to 6:
1 2 3
4 5 6
print matrix 2x3:
1   2   3
4   5   6
[1,2,3;4,5,6]*[3,2,1]=10 28
[1,2,3;4,5,6]*[4,5,6]: 32 77
random matrix: 0.680375   0.59688 -0.329554
-0.211234  0.823295  0.5364590.566198 -0.604897 -0.444451
transpose: 0.680375 -0.211234  0.5661980.59688  0.823295 -0.604897
-0.329554  0.536459 -0.444451
sum: 1.61307
trace: 1.05922
times 10: 6.80375   5.9688 -3.29554
-2.11234  8.23295  5.364595.66198 -6.04897 -4.44451
inverse:
-0.198521   2.22739    2.83571.00605 -0.555135  -1.41603-1.62213   3.59308   3.28973
det: 0.208598
Eigen values =
0.02428990.9921541.80558
Eigen vectors =
-0.549013 -0.735943  0.3961980.253452 -0.598296 -0.760134
-0.796459  0.316906 -0.514998
time of normal inverse is 0.312ms
x = -55.7896 -298.793  130.113 -388.455 -159.312  160.654 -40.0416 -193.561  155.844  181.144  185.125 -62.7786  19.8333 -30.8772 -200.746  55.8385 -206.604  26.3559 -14.6789  122.719 -221.449   26.233  -318.95 -78.6931  50.1446  87.1986 -194.922  132.319  -171.78 -4.19736   11.876 -171.779  48.3047  84.1812 -104.958 -47.2103 -57.4502 -48.9477 -19.4237  28.9419  111.421  92.1237 -288.248 -23.3478  -275.22 -292.062  -92.698  5.96847 -93.6244  109.734
time of Qr decomposition is 0.182ms
x = -55.7896 -298.793  130.113 -388.455 -159.312  160.654 -40.0416 -193.561  155.844  181.144  185.125 -62.7786  19.8333 -30.8772 -200.746  55.8385 -206.604  26.3559 -14.6789  122.719 -221.449   26.233  -318.95 -78.6931  50.1446  87.1986 -194.922  132.319  -171.78 -4.19736   11.876 -171.779  48.3047  84.1812 -104.958 -47.2103 -57.4502 -48.9477 -19.4237  28.9419  111.421  92.1237 -288.248 -23.3478  -275.22 -292.062  -92.698  5.96847 -93.6244  109.734
time of ldlt decomposition is 0.054ms
x = -55.7896 -298.793  130.113 -388.455 -159.312  160.654 -40.0416 -193.561  155.844  181.144  185.125 -62.7786  19.8333 -30.8772 -200.746  55.8385 -206.604  26.3559 -14.6789  122.719 -221.449   26.233  -318.95 -78.6931  50.1446  87.1986 -194.922  132.319  -171.78 -4.19736   11.876 -171.779  48.3047  84.1812 -104.958 -47.2103 -57.4502 -48.9477 -19.4237  28.9419  111.421  92.1237 -288.248 -23.3478  -275.22 -292.062  -92.698  5.96847 -93.6244  109.734

./eigenGeometry

./coordinateTransform

./plotTrajectory

图示如下:

./visualizeGeometry

图示如下:

第四章 李群与李代数

关键词:SO(3)、SE(3)、Sophus

./useSophus

编译需要注意“sophus/se3.hpp”,路径要配置正确,如果不想配置,就sudo make install也可以。

全部内容如下:

SO(3) from matrix:
2.22045e-16          -1           01 2.22045e-16           00           0           1
SO(3) from quaternion:
2.22045e-16          -1           01 2.22045e-16           00           0           1
they are equal
so3 =      0      0 1.5708
so3 hat=0 -1.5708       01.5708       0      -0-0       0       0
so3 hat vee=      0      0 1.5708
SO3 updated = 0          -1           01           0     -0.00010.0001 2.03288e-20           1
*******************************
SE3 from R,t=
2.22045e-16          -1           0           11 2.22045e-16           0           00           0           1           00           0           0           1
SE3 from q,t=
2.22045e-16          -1           0           11 2.22045e-16           0           00           0           1           00           0           0           1
se3 =  0.785398 -0.785398         0         0         0    1.5708
se3 hat = 0   -1.5708         0  0.7853981.5708         0        -0 -0.785398-0         0         0         00         0         0         0
se3 hat vee =  0.785398 -0.785398         0         0         0    1.5708
SE3 updated =
2.22045e-16          -1           0      1.00011 2.22045e-16           0           00           0           1           00           0           0           1

./trajectoryError

第五章 相机与图像

关键词:OpenCV

./imageBasics ubuntu.png

./undistortImage

./stereoVision

./joinMap

第六章 非线性优化

关键词:最小二乘法、高斯牛顿法、列文博格-马夸尔特法、Ceres、g2o

./gaussNewton

./ceresCurveFitting

如果出现:./g2oCurveFitting: error while loading shared libraries: libg2o_core.so: cannot open shared object file: No such file or directory

使用如下方式:

$ sudo gedit /etc/ld.so.conf

添加:/usr/local/lib

运行:sudo ldconfig

再次运行:

./g2oCurveFitting

对比求解时间:

  • gaussNewton:solve time cost = 0.000938872 seconds.
  • ceresCurveFitting:solve time cost = 0.00942216 seconds.
  • g2oCurveFitting :solve time cost = 0.000908874 seconds.

依据电脑配置会有差异。

作业为完成1-6章课后习题。


视觉SLAM十四讲从理论到实践第二版源码调试笔记(理论基础1-6章)相关推荐

  1. tensorflow 语义slam_研究《视觉SLAM十四讲从理论到实践第2版》PDF代码+《OpenCV+TensorFlow深度学习与计算机视觉实战》PDF代码笔记...

    我们知道随着人工神经网络和深度学习的发展,通过模拟视觉所构建的卷积神经网络模型在图像识别和分类上取得了非常好的效果,借助于深度学习技术的发展,使用人工智能去处理常规劳动,理解语音语义,帮助医学诊断和支 ...

  2. 《视觉slam十四讲从理论到实践》第一讲习题自测解答

    0x00 前言 <视觉slam十四讲从理论到实践>第一讲习题自测解析. 借助自身知识储备和搜索引擎后完成习题,仅供参考. 部分答案会觉得没有说明的必要就会略   0x01 习题部分 1.有 ...

  3. 《视觉SLAM十四讲——从理论到实践》学习笔记

    第1讲:预备知识 1.3 风格约定 矩阵 A∧A^{\wedge}A∧: AAA的反对称矩阵. 坐标点 坐标点用向量表示,具体来说,是用列向量表示,vetcor(3,1): Eigen学习手册 数据结 ...

  4. 《视觉SLAM 十四讲》第五讲 实践:拼接点云-编译遇到的terminate called after throwing an instance of 'pcl::IOException问题及解决方法

    <视觉SLAM 十四讲>第五讲 实践:拼接点云-编译遇到的terminate called after throwing an instance of 'pcl::IOException问 ...

  5. 【《视觉SLAM十四讲》前ch2-ch6实践全过程和遇到的问题及解决办法】

    文章目录 前言 一.运行环境配置 1.在虚拟机上安装Ubuntu14.04 2.方便Ubuntu使用 二.<十四讲>的实践部分过程与问题 1.Ubuntu下安装包的两种方法 2.编译高翔的 ...

  6. 视觉slam十四讲 pdf_视觉SLAM十四讲|第12讲 回环检测

    1. 什么是回环检测 前面有说过累积误差的问题,前一时刻的误差会积累到后面,导致画不成圈圈,如图12-1所示,而画圈圈(全局一致性)很重要,所以需要有一个步骤来纠正当前的计算偏差. 回环检测通过判断相 ...

  7. 【视觉SLAM入门】一些关于视觉SLAM十四讲的重要基础概念

    文章目录 高翔. *视觉SLAM十四讲 从理论到实践*. 电子工业出版社, 2017. Print. 第二章:初识SLAM 第三章:三维空间刚体运动 第四章:李群与李代数 第五章:相机与图像 第六章: ...

  8. 视觉SLAM十四讲笔记-1

    视觉SLAM十四讲笔记-1 文章目录 视觉SLAM十四讲笔记-1 第一讲:预备知识 1.1 本书讲什么 1.2 如何使用本书 参考链接: link link 高翔,张涛,等. 视觉 SLAM 十四讲: ...

  9. 视觉SLAM十四讲学习记录 第一讲

    2022年6月16日,现在是大学本科毕业准研一的暑假,老师开组会让我们确定了研究方向,我的研究方向是协同探测与自动驾驶.与师兄交流后建议我阅读一本书<视觉SLAM十四讲从理论到实践>.怕自 ...

最新文章

  1. hdu 5438 Ponds 拓扑排序
  2. ondblog 修改informix日志模式
  3. 接口抽象类继承父类和子类
  4. Linux信号 一 信号可靠性与分类
  5. php curl 代理ip访问url
  6. clickhouse的ReplacingMergeTree引擎实战
  7. 文件管理系统_Python学习第170节--Linux文件管理系统实际操作和具体介绍
  8. AutoEncoder概念【常用】
  9. Vivado生成bit文件布局失败解决
  10. Redis学习总结(4)——Spring Data操作Redis
  11. #翻译#将像素绘制到屏幕上
  12. vscode 文件夹中查找_真香!使用 VSCode 进行远程开发调试
  13. hadoop资料汇总
  14. 自动化测试平台(七):头像展示、下拉菜单及用户管理模块增删改功能实现
  15. 《陶哲轩实分析》——给读者的一点建议
  16. 电商运营中京东运营法则
  17. 调节e18-d80nk的测量距离_重磅发布丨长距离综合管道潜望镜正式亮相|传感器|潜望镜|光学|远距离...
  18. esxi 用途和开机自启动设置。
  19. 快牙网传——轻松传文件
  20. 解决开发板不兼容earpods问题

热门文章

  1. GBase 8c异地容灾
  2. Victor Zue教授的创新观
  3. 阿里云sms短信服务
  4. linux 清除bios 密码吗,如何设置/清除 BIOS 硬盘密码
  5. Appium服务器初始化参数(Capability)
  6. “物联网×”:“互联网+”的下一个风口
  7. 【它山之玉】慎重选择博士后(或博士生)导师-科学网马臻
  8. 制作Mind+ Arduino UNO + EMW3080芯片连接阿里云的用户库
  9. decimal在java怎么用?
  10. 电主轴编码器测试工具VS sensorikHCU500/DCMU-BOX,海德汉PWM21/PWT101,LENORD+BAUER(L+B)211BSO/211CS04E2M使用对比