首先你需要数学基础:高等数学,线性代数,概率论数理统计和随机过程,离散数学,数值分析 。
其次需要算法的积累:人工神经网络,支持向量机,遗传算法等等算法;
当然还有各个领域需要的算法,比如你要让机器人自己在位置环境导航和建图就需要研究 。
入门资料很少。虽然国内也有不少人在做,但这方面现在没有太好的入门教程。
《SLAM for dummies》可以算是一篇。中文资料几乎没有。 SLAM研究已进行了三十多年,从上世纪的九十年代开始。其中又有若干历史分枝和争论,要把握它的走向就很费工夫。 难以实现。SLAM是一个完整的系统,由许多个分支模块组成。现在经典的方案是“图像前端,优化后端,闭环检测”的三部曲,很多文献看完了自己实现不出来。 自己动手编程需要学习大量的先决知识。首先你要会C和C++,网上很多代码还用了11标准的C++。第二要会用Linux。第三要会cmake,vim/emacs及一些编程工具。第四要会用openCV, PCL, Eigen等第三方库。只有学会了这些东西之后,你才能真正上手编一个SLAM系统。如果你要跑实际机器人,还要会ROS。 当然,困难多意味着收获也多,坎坷的道路才能锻炼人(比如说走着走着才发现Linux和C++才是我的真爱之类的。)
再推荐一个学习的地方:http://blog.csdn.net/qq_24747993/article/details/53759308