MRPT 指导教程 v1.0.2 PDF 文档
Mobile Robot Programming Toolkit(MRPT)为开发人员提供了可移植且经过良好测试的应用程序和库,涵盖了常见机器人研究领域中使用的数据结构和算法。
目录
第一章入门
1.1编译MRPT
1.1-1预备条件
(1.1)Windows
(1.2)GNU/Linux
(1.3)Ubuntu/Debian
(1.4)Fedora
(1.5)OpenSUSE
(1.6)Mac
OLE_LINK3
OLE_LINK4
1.1-2CMakebuild选项
(2.1)使用cmake-gui
(2.2)在控制台运行cmake
(2.3)感兴趣的build选项
OLE_LINK5
OLE_LINK6
OLE_LINK9
OLE_LINK10
1.1-3生成Makefiles/IDE工程
1.1-4编译
1.1-5其它编译器介绍
(5.1)Windows下使用MinGW
(5.2)GNU/Linux下使用clang
1.2你的第一个C++/MRPT程序
1.2-1源码文件
1.2-2使用CMake
1.2-3接下来?
1.3简介MRPT库
1.3-1已有库
1.3-2创建库
1.4你需要那个MRPT库?
1.5智能指针
1.6常见问题和错误
1.6-1一般问题
1.6-2常见错误
1.7在Linux中用Makefile和pkg-config编译定制应用
1.7怎样在ROS节点中使用MRPT?
1.7-1小动作
1.7-2Ready-to-use示例
1.8怎样与PCL交互使用MRPT?
OLE_LINK125
OLE_LINK128
OLE_LINK163
OLE_LINK164
第二章GUI窗口和3DOpenGL图形
2.13D场景简介
2.1-1示例
2.1-2类
2.1-3视窗
2.2高效的百万级点云渲染
OLE_LINK179
OLE_LINK180
2.3对Stanford3D模型文件格式(PLY)的支持
2.4消息框(渲染为矢量OpenGL图形)
2.5在3D(OpenGL)窗口渲染视频
2.62D字体实现
第三章图像,图像处理,摄像头模型
3.1特征探测和跟踪
3.1-1简介
3.1-2探测器&描述子
3.1-3跟踪
3.1-4加载/保存为文本文件
3.2高效的非畸变图像序列
3.3使用MRPT校准多种摄像头
3.4立体图像校正
OLE_LINK100
OLE_LINK101
第四章地图(定位,SLAM,建图)
4.1Graph-SLAM地图
4.1-1文本文件.graph格式
4.1-2二进制文件.graphbin格式
OLE_LINK104
OLE_LINK105
OLE_LINK106
OLE_LINK107
4.1-3相关C++代码
4.1-4Graph地图示例
OLE_LINK86
OLE_LINK87
4.2占据栅格地图
4.2-1理论基础
4.2-2一种高效实现
OLE_LINK98
OLE_LINK99
4.2-3已实现传感器模型(似然观测模型)
4.2-4已实现操作
OLE_LINK110
OLE_LINK111
OLE_LINK114
OLE_LINK115
4.3度量地图层次模型
4.3-1关于MRPT中的地图
4.3-2地图们
(2.1)多度量地图Multi-metricmap
(2.2)信标地图Beaconmaps
(2.3)2D气体浓度地图
(2.4)2D高度(海拔)地图
(2.5)路标地图Landmarkmaps
(2.6)占据栅格地图Occupancygridmaps
(2.7)点云地图Pointmaps
4.3-3多度量地图的配置
OLE_LINK33
OLE_LINK34
第五章数学和几何
5.12D_3D_几何
5.1-12D/3DPoint、Pose、齐次坐标
5.1-2MRPT中的空间几何类
(2.1)CPoint2D:(x,y)
(2.2)CPoint3D:(x,y,z)
(2.3)CPose2D:(x,y,ϕ)
(2.4)CPose3D:(x,y,z,yaw,pitch,roll)
(2.5)CPose3DQuat:3D变换+四元数(x,y,z,qr,qx,qy,qz)
5.1-33D旋转矩阵的推导
5.1-4类之间转换
5.1-5常用运算
(5.1)位姿合并/逆合并
(5.2)计算距离
(5.3)计算范数
(5.4)输出到控制台
5.1-6四元数
5.1-7实例:移动机器人摄像头坐标变换
OLE_LINK19
OLE_LINK22
OLE_LINK25
OLE_LINK26
5.2Levenberg-Marquardt算法(数字雅可比矩阵)
5.3矩阵、向量、数组和线性代数:MRPT和Eigen类
5.3-1线性代数类:Eigen
5.3-2MRPT特有类
OLE_LINK31
OLE_LINK32
5.3-3MRPT矩阵类和Eigen类之间的差异
5.3-4常见错误(及解决方案)
(4.1)编译时对齐问题
OLE_LINK39
OLE_LINK40
OLE_LINK41
(4.2)运行时对齐问题
(4.3)混合数值类型:显式转换
OLE_LINK48
OLE_LINK49
(4.4)resize()与setSize()
5.3-5从MRPT0.9.2移植代码的问题
(5.1)MRPT::vector_float和MRPT::vector_double问题
(5.2)从位姿(TPose2D,...)显式构造矩阵
(5.3)矩阵元素的迭代器
(5.4)CVectorFloat和CVectorDouble
(5.5)矩阵方法unit()
5.3-6高级主题
(6.1)在你的代码中同时包含MRPT和Eigen头文件
5.4RANSACC++类
5.4-1RANSAC算法
5.4-2C++示例
(2.1)拟合3D平面
(2.2)拟合多个3D平面
(2.3)拟合多个2D线
(2.4)基于RANSAC的数据关联
5.5SLERP插值
5.5-1描述
5.5-2C++实现
5.5-3参考
第六章杂项
6.1Kinect和MRPT
6.1-1概述
6.1-2示例代码和文档
6.1-3在Windows中安装
OLE_LINK147
OLE_LINK148
OLE_LINK173
OLE_LINK174
OLE_LINK191
OLE_LINK192
(3.1)使用OpenKinect的libfreenect(推荐)
(3.2)使用CLNUISDK
6.1-4在Unix/Linux中安装
6.1-5数据集
6.2Kinect校正
6.3关于计量单位
OLE_LINK193
OLE_LINK194
6.4从RGB+D观测生成3D点云(CObservation3DRangeScan对象)
6.4-1参数校正
6.4-2投影方程
(2.1)一般情况
(2.2)“校正的”深度图
6.4-3相关MRPTAPIs
(3.1)RGB+D–>local3Dpointcloud
(3.2)RGB+D–>local3Dpointcloud–>CPointsMap(
(3.3)RGB+D–>CPointsMap(&derived)
(3.4)RGB+D–>mrpt::opengl::CPointCloud
(3.5)RGB+D–>mrpt::opengl::CPointCloudColoured
(3.6)RGB+D–>pcl::PointCloud<PointXYZ>
(3.7)RGB+D–>pcl::PointCloud<PointXYZRGB>
6.5元编程:类型名to字符串
6.5-1描述
6.5-2示例
6.6mrpt-ros-pkg
6.7在读取运行时Kinect数据和读取RGBD数据集文件之间的切换
6.8在MRPT中单元测试
第七章里程和运动模型
7.1概率运动模型
7.1-1介绍
7.1-2高斯概率运动模型
7.1-3Thrun,Fox&Burgard’sbook:粒子运动模型
参考文献
第八章路径和运动规划
8.1避障
8.1-1概述
8.1-2参考
8.2占据栅格地图下的路径规划
8.2-1描述
8.2-2使用
8.2-3结果
参考文献
第九章概率编程
第十章扫描匹配和ICP
10.13D-ICP示例
10.2迭代最近点(ICP)和其它匹配算法
10.2-1迭代最近点(ICP)算法
(1.1)使用示例
(1.2)“经典”ICP算法
(1.3)Levenberg-Marquardt的ICP算法
10.2-2对应关系组优化
(2.1)最小二乘刚性变换(2D+方向)
(2.2)最小二乘刚性变换(6D)
(2.3)鲁棒刚性变换(2D+方向)
参考文献
第十一章串行化
11.1串行化机制
11.1-1基础
(1.1)类
(1.2)POD(普通旧数据类型)和特例
(1.3)存储基础数据类型的数组
(1.4)基本用法
11.1-2运行时类识别
OLE_LINK17
OLE_LINK18
OLE_LINK23
OLE_LINK24
OLE_LINK27
OLE_LINK28
11.1-3如何实现新的可串行化类
(3.1)一般步骤
(3.2)特殊情况
11.1-4MRPT中串行化的用途
11.1-5MRPT内部注册可串行化类
11.1-6串行化和STL容器
11.2Rawlog格式
11.2-1现有操作工具
11.2-2FORMAT#1:一种贝叶斯友好的文件格式
(2.1)这种格式的”.rawlog”文件的实际内容
11.2-3FORMAT#2:一种时间戳排序的观测序列
(3.1)这种格式的”.rawlog”文件的实际内容
11.2-4压缩Rawlog文件
11.2-5生成Rawlog文件
11.2-6读取Rawlog文件
(6.1)选项A:文件流
(6.2)选项B:一次读取
11.2-7关于里程数据的注意事项
第十二章统计和贝叶斯滤波[StatisticsandBayesfiltering]
12.1平均似然对数值[AveragingLog-LikelihoodValues]:数值稳定
12.1-1加权似然对数值[Weightedlog-likelihoodvalues]
12.1-2未加权似然对数值(算术平均值)[Unweightedlog-likelihoodv
12.2卡尔曼滤波[KalmanFilters]
12.2-1MRPT中的卡尔曼滤波器
12.2-2为特定问题写一个KF类
(2.1)派生新类
(2.2)算法内部流程
12.2-3一个示例
(3.1)问题描述
(3.2)实现
(3.2.1)转移模型
(3.2.2)转移模型雅可比矩阵
(3.2.3)观测及观测模型
12.3粒子滤波算法
12.3-1顺序重要性重采样[SequentialImportanceResampling]
12.3-2辅助粒子滤波[AuxiliaryParticleFilter]-APF(pfA
12.3-3最优采样[OptimalSampling](pfOptimalProposal)
12.3-4逼近最优采样[ApproximateOptimalSampling](pfAuxi
参考文献
R2
R3
12.4粒子滤波器
12.5空间表征概率密度分布
12.6重采样机制
12.6-1重采样算法
(1.1)prMultinomial(默认)
(1.2)prResidual
(1.3)prStratified
(1.4)prSystematic
12.6-2MATLAB版本
参考文献
第十三章有用的MRPT宏(C++预处理器)
13.1用于异常处理的宏
13.1-1异常类别
13.1-2异常引发宏(似断言宏)
13.1-3用于异常传递的特殊宏
13.2关于宏MRPT_START/MRPT_END
下载地址:https://www.wenjiangs.com/wp-content/uploads/2022/12/mrpt_book.zip
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论