为什么要学习概率机器人?

耐心看下去的前言

首先介绍一下我自己,本人之前算是做过几年基于机器人比赛的单片机开发,如STM32,89C51等,也积累一定的机器人方面的经验和知识,同时也扩展了视野。在大学三年级的空闲的几个月,了解到SLAM(同时定位与地图构建),感觉还是比较有兴趣,开始入门,算是要入坑了,最近一年零零碎碎在学习ROS(机器人操作系统),激光雷达SLAM等,也在真实环境下,基于ROS实现了一整套差分轮式移动机器人的激光SLAM和导航方案。

这这套方案中可以学习到一些知识。比如几个重要的技术:
(1)直流减速电机的底层驱动(stm32开发,实现接口上传两轮速度,IMU等数据,接收速度控制数据进而驱动电机,编码器测速,速度环PID控制等)
(2)嵌入式设备ROS环境的搭建(这里使用树莓派3b,官网有很明确的教程)
(3)在ROS环境,编写urdf文件(机器人模型文件),编写机器人驱动程序等(这些其实胡春旭老师都介绍的十分详细,但是实现起来还是会遇到不少问题)
(4)ROS与STM32的通信,这个部分可能会难倒很大一部分人,不清楚其他类似通信协议的人通常会很蒙,尽管网上有不少开源代码,但是,能沉下心去针对自己硬件开发环境去改的不多,经常在相关的群看到同学问这个问题,我这里实现了一套基于stm32与ROS的通信方案,使用我感觉还比较可靠,如果需要可以私信我。
(5)安装建图和导航的相关的包,进一步去建图和导航,这一部分其实实现难度不大,网上教程很多但是会遇到一些莫名其妙的问题,这个时候,最好的方法是去Google。
(6)完善方案,就是一些小问题,比如,静态IP设置、分布式通信设置、串口绑定、开机自启动等等。

经过上面的一套流程,解决了所有问题,你可以问一下自己学到了什么,我自我感觉,感觉什么也没学到。不是说好的学习SLAM的吗?怎么一句代码没看到,只是了解这个建图包发布了什么话题,订阅了什么话题,输出什么类型的地图,需要什么样的输入数据等等,建图算法到底是怎么实现的啊,从以上的内容无从得知。是不是有点不开心,有的人就是要做上面的东西都要花上一学期。

接着去学建图算法到底怎么实现的,然后去看了深蓝学院激光SLAM的课。学完一遍还是云里雾里。虽然,了解的程度可能更深了一步,从前两讲的课程之后,不管是作业还是理论理解起来都比较吃力,不是说好的大学的基础就可以嘛,可能我大学没学习,哈哈哈。

接着去看高博的视觉SLAM十四讲,如果是做激光slam的话,前期将第1、2、3、4、6章的内容学一下就可以了。到这里好像是懂一点理论知识了。

接下来去看关于激光SLAM的论文,建议先看一些综述性文章,再看一些同学的毕业论文,我个人感觉先看国内的,再看国外的。看论文期间,你会发现一系列的问题:
(1) 基础概念:贝叶斯滤波?
(2) 高斯滤波:卡尔曼滤波?扩展卡尔曼滤波?无迹卡尔曼滤波?信息滤波?
(3) 非参数滤波:直方图滤波?粒子滤波?静态二值贝叶斯滤波?
(4) 运动模型:速度和里程计运动模型大家都应该可以看懂,
(5) 测量模型:波束模型?似然域模型?基于相关性的、特征的测量模型?
(6) 移动机器人定位:马尔可夫定位?估计一致性?栅格定位?蒙特卡洛定位?等等
(7) 地图构建:占用栅格地图构建?

如果你上面的东西都懂的话,就不建议看下面的文章了,不适合大佬看。要是大佬看了能找一些理解偏差或者甚至是错误的地方就完美了,要是有请私信我,感激不尽。

上面的这些问题,难道要一个一个百度嘛,不是不可以。我思前想后,想起了一本书,《概率机器人》,人家都说是机器人开发的圣经,以前也有人给我推荐,一直没看,连目录都没看,脸红。有一天,打开电子版,看了看目录,我惊了,什么?上面的内容都是这本书上的,我都怀疑那些人的论文,是模仿的这本书,论文上多少有介绍不清楚的地方,也可能是我自己理解不充分,想要解决这些问题,建议看《概率机器人》这本书,中英文版本都有,在我的公众号发送概率机器人,就可以获得带目录可复制的《概率机器人》中英文版本电子版。经过我这些天的阅读,翻译书的通病,大家都懂。

经过,这么长的前情铺垫,上面只是把SLAM路上的学习历程简要的粗略的讲了一下,也方便大家理解为什么要学概率机器人。最近也在一段时间一直在读这本书,发现各种假设,各种条件,各种联系,各种问题,各种解决方法,十分复杂,像我这种天资不聪颖的,读起来十分混乱,决定要仔细整理一下每个章节,先声明,这里不是大佬的公式推导课堂,只是简单的整理,便于阅读,便于理解,滤除不需要的废话,给大家争取更多学习时间。第一遍阅读不建议推导公式,工科的学生,能善用公式都不错了。遇到必须推导公式的时候,在看书上的推导也不晚。

正文开始

下面开始第一章:绪论
第一章主要讲了
(1)机器人学中的不确定性有哪些
首先清楚一点,机器人必须能接纳客观世界中存在的大量不确定因素。
在这里插入图片描述
不确定性问题就是智能机器人系统设计的主要绊脚石,如何处理不确定性问题,就有了《概率机器人》。

(2)什么是概率机器人学
概率机器人学致力于研究机器人感知和行为的不确定性。
概率机器人的思想:用概率理论的运算去明确表示这种不确定性。也可以这样理解(不再是只依赖可能出现的情况的单一的“最好推测”,而是用概率算法来表示在整个推测空间的概率信息分布)。
通过概率算法获得在数学上表示的模糊性和置信度,可以根据置信度选择相对鲁棒的控制方式,甚至可以主动选择控制方式,进而大大降低了不确定性。

下面介绍一下书上的例子,直观的感受概率机器人学的应用。

移动机器人定位

场景:带有三个相同门的平面地图和载有传感器的机器人,如图1
问题:机器人在哪?
在这里插入图片描述
图1
概率描述方式:通过在整个位置空间上的一个概率密度函数来表示机器人的瞬时置信度(机器人在哪的概率)。
步骤1:初始置信度如图1所示,传感器还没有检测,所有位置具有相同的概率密度。
步骤2:传感器进行第一次测量,看到自己在门附近,但不知道是哪一个门,用该信息更新置信度,如图2。这时也发现在不靠近门的位置也分配了正的概率,非常小(好像是有一点吧,假装看见),这就是上面关于传感器的不确定性导致的结果。
在这里插入图片描述
图2
步骤3:机器人向前运动,给出了运动对置信度的影响,置信度沿着运动方向移动,如图3。与图2相比变得平坦了,这些改变就是上面机器人执行机构运动引入的不确定性。
在这里插入图片描述
图3
步骤4:传感器再一次观察,更新置信度,如图4,概率算法将大概放到一个门的位置,现在机器人相当确信自己的位置。
在这里插入图片描述
图4
步骤5:机器人再一次向前移动,更新置信度,如图5,机器人沿着走廊的置信度。
在这里插入图片描述
图5
机器人定位的例子就是采用了贝叶斯滤波算法来进行机器人定位空间上的后验估计。
上面概率算法计算了机器人的瞬间不确定性。概率算法也能预知未来的不确定性,并在决定正确的控制选择时,对未来不确定性进行考虑。

海岸导航

场景:一个在起始位置带有传感器的机器人有两个不同的目标位置A、B。
位置A的定位特征少,定位的不确定性大,实际到达目标位置的概率就低。
位置B的定位特征多,定位的不确定性小,实际到达目标位置的概率就高。
书上说了一大堆就是上面这个意思。

(3)总结
概率算法的优势:在面对传感器的局限和机器人模型的局限时鲁棒性更强,可以更好的面对这个复杂的世界。
概率算法的局限
计算的复杂度:考虑的是整个空间的概率,而不是单一的推测。
近似的必要性:大多数机器人世界是连续的,精确的后验分布往往很难计算。

概率机器人学是通过数学上概率的方式描述各种不确定性,进而处理机器人问题的科学。

到这里,第一章的内容就总结完了。就上面一点内容,能理解上面最后一句话就行。喜欢的话可以持续关注啊。
在这里插入图片描述
关注公众号,发送概率机器人,即可获得下载链接。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zhao_ke_xue/article/details/105097263