(编辑中……,先别看)
目的
本文介绍在 Mathematica 中实现一个 SLAM 仿真的步骤。
为什么研究SLAM
SLAM(Simultaneous Localization and Mapping)的意思是“同步定位和地图创建”,它是移动机器人领域研究的一个问题。没有接触过SLAM的同学可能会觉得它高深莫测,实际上现在很多介绍SLAM的文章对于初学者确实不那么容易理解。本文面向没有基础的初学者,所以在背景介绍时的思维不妨发散一些、眼光不妨长远一些(“废话”也更多一些)。我先用直白语言介绍下为什么要研究SLAM。
笔者小时候喜欢看“动物世界”和“人与自然”这样介绍动植物的科教节目,同时对机器人也有着强烈的兴趣。因此,动植物、机器人、大自然也顺理成章地成为我思考的对象。一个有趣的问题是:植物与动物最大的区别是什么?答案当然见仁见智,不过如果结合要讨论的主题,那我认为区别最大的就是:动物有神经系统,而植物没有。如果再问:神经系统是干什么的?答案很明显:是加工处理信息的。进一步追问下去:为什么信息对动物那么重要,而植物却不需要一个专门处理信息的系统。答案似乎很简单:因为动物要“运动”。运动是个复杂又深刻的话题,它不仅牵扯到空间和时间的变化,还与环境有着复杂的相互作用,而且非常需要信息。想象一下,一只兔子与一只狐狸在野外不期而遇,兔子要想活下去,需要知道自己离狐狸有多远,往哪个方向逃跑,逃跑的路线大概是什么,逃跑的过程怎么躲避障碍物,如何利用上一次“死里逃生”的经验。兔子的每一步关于运动的决策都离不开“信息”。这么多的信息必然需要一个“信息处理器”,也就是神经系统。对于动物来说,恐怕没有什么比知道