做机器人视觉定位、传感器融合方面的研究
来自《机器人工程师学习计划》,原文是大疆工程师YY硕对自己过去学习方式的一个总结。今天呈现给大家的文章,是经过小瓦君阅读理解后的整理版哦~ 如果你有追踪小瓦君的文章,那么到本周为止,你已经知道要成为一个机器人工程师,在大学本科时期该做什么准备了。想要变得更优秀,你在研究生时期更应该努力... 研究生的时候,你的目标应该要比较清晰了,就是做一种机器人至少两年时间,并从中发掘出可以发表论文的知识点。 还记不记得小瓦君上周罗列出的书单?到了研究生的阶段你就可以精读了 不同的研究方向需要精读的书会有所不同哦! 做机器人视觉定位、传感器融合方面的研究 作者:Sebastian Thrun/Wolfram Burgard/Dieter Fox 作者:Richard Hartley/Andrew Zisserman Linear Estimation作者:Thomas Kailath/Ali H. Sayed/Babak Hassibi 出版社:Prentice Hall 出版年:2000-4-10 An Invitation to 3-DVision 作者:Yi Ma/Stefano Soatto/Jana Kosecka/S. Shankar Sastry 做控制系统的研究 作者:Chen, Chi-Tsong 作者:Richard C. Dorf 作者:Featherstone, Roy 随机系统的控制和最优控制 作者:Stephen Boyd/Lieven Vandenberghe 作者:Chen, Chi-Tsong 作者:P. S. Maybeck
如果做规划算法的研究,那么还要读其他偏CS一些的书,比如讲A* search,random forest,图论方面知识的教材。 如果研究机器人视觉定位,几种常用的定位算法:PTAM,ROS的标配VO,SVO,LSD-SLAM,ORB-SLAM,都必须自己学习之后全部跑一遍。 由于SLAM这两年很火,研究的人很多,所以网上可以参考的资料也很多,比如https://github.com/hcdth011/ROS-Hydro-SLAM,就在ROS上实现了几种定位算法的对比。 一些大学里学过的知识点,必须结合研究生期间的项目需求弄得很清楚,比如三大变换(傅里叶变换,拉普拉斯变换,Z变换),旋转表示法(欧拉角、四元数、旋转矩阵),数值计算怎么防止矩阵出现数值问题等等。 除了自己的项目,还需要把凸优化、微分方程、卡尔曼滤波还有多自由度机械臂的控制学习一下。这三个领域的知识,是任何一种机器人都会用的到比较难的知识。 凸优化 凸优化和凸优化的各种变形是非常重要的知识,各行各业里的研究问题,多半是会建立一个优化问题去解决的。 《Convex Optimization》一定要认真读一读。Matlab、Python、C 都有一些现成的工具包可以帮助你解优化问题,最好能自己手写一些基本的优化算法,比如gradient descend,barrier method等等。
另外现在主流的SLAM算法,后端都是通过一种叫做g2o的优化算法来出效果的。而且g2o能够整合bundle adjustment和structure-from-motion这两大计算机视觉里的关键问题,是一种很好的计算思想,非常有必要学习一下g2o。 卡尔曼滤波 卡尔曼滤波在下面的3本书里都有提到,在《Stochastic models estimation and control》有相当多的篇幅。卡尔曼滤波有好几种证明的方法,同学最好能自己学会1-2种。 多自由度机械臂
多自由度的机械臂的难点在于机械臂的运动学正反解、运动学控制和动力学控制,基本是一个建模分析和数值算法实现的问题。
你可以用Simscape里面的刚体搭一个多自由度机械臂,然后通过Simulink仿真去学习机械臂的控制;也可以用Gazebo的URDF语言写一个机械臂,然后通过Gazebo和ROS的接口去控制机械臂;也可以用ROS里面的著名工具包MoveIt! Motion Planning Framework,不过MoveIt的问题是,只能仿真运动学,而不能仿真动力学。
工业领域对多自由度的机械臂控制通常用D-H表示法的建模工具(Denavit)。 这里笔者推荐《A mathematical introduction to robotic manipulation》。 旋转表示法 旋转表示法应该作为研究生阶段的一个重要学习的知识点。 两本书,前者是机械臂控制领域的著名教材,后者是计算机视觉领域的著名教材,它们的第二章基本是一样的,都在讲旋转表示法。 这是因为所有的旋转表示法都可以归纳为一种优雅的李群结构:SO(3)群。而计算机视觉和机械臂控制都涉及到理解刚体的旋转,事实上用计算系统去观测和控制所有的刚体构成的系统,理解旋转都是很关键的问题。 研究生阶段还要培养的一个能力是借助各种工具仿真机器人系统的能力。但很多机器人系统真的造出来的话造价昂贵,需要在实际制造之前写一个比较真实的仿真系统出来测试算法。
|