前言:多年前看到一片知乎文章
YY硕:机器人工程师学习计划zhuanlan.zhihu.com当时看到这个,只觉醍醐灌顶,能看到有如此详尽的关于机器人工程师的个人技术发展规划,又不禁觉得有些遗憾,因为这个规划是本科大一到硕士毕业的计划,而我已经上研究生了。毕业后在相关的领域工作了一年多,今天回顾一下我在当时的条件和后来的经历,做一个总结。想开始上手开始做一些机器人的项目,最少需要哪些技能和背景知识?
一、基础知识技能
0. 推荐实践平台:Ubuntu/mac 终端, windows 10下使用WSL Ubuntu子系统(打开microsoft store,搜Ubuntu即可)。
1. c++理论课堂:面向对象程序设计-C++ - 网易云课堂。 这里面暂时不需要把所有的都学了,把1~10讲和最后的第41讲学了就基本对C++有个大致的了解了。累计时长估计3小时。(后续可以再把这个看完,同时可以阅读C++ primer)
2. 代码版本管理工具git的使用,先学习几个简单的命令就OK
git clone 下载代码
git pull 从远程库更新代码
git add 缓存修改
git commit 提交修改
git push 将代码提交推送到远程库
后续使用过程中,可以更多系统的学习以下这个教程。
Git教程www.liaoxuefeng.com3. cmake的使用
参考实例:https://github.com/gaoxiang12/slambook2/tree/master/ch2, 注意cmakelists.txt里面的几个关键次的意思。
4. 摄像机测距的原理
摄像机模型(针孔模型),理解三维世界坐标的点转换到摄像机坐标系(光心),再投影到图像坐标系(底片),转换到像素坐标系的数学过程。理解了这里也就理解了相机的内参和外参。(想更深入的了解,可以学习 张广军老师的书《机器视觉》)
5. OpenCV
OpenCV图像处理库的了解和基本操作 ,参考实例https://github.com/gaoxiang12/slambook2/tree/master/ch5/imageBasics(想更深入的了解,可以学习 浅墨 的书《OpenCV3编程入门》)
6. 同样重要的一个库,Eigen矩阵运算库,参考实例
https://github.com/gaoxiang12/slambook2/tree/master/ch3/useEigen
二、 ROS与Gazebo
需要学习几个基本的Linux命令:(sudo apt install ; sudo apt update; cd / ~ . .. ; ls )
1.ROS安装:
可以参考我之前的文章,也可以自己到ros的网站上自己按照教程安装。
Jose Cruise:ROS 中的Gazebo安装及使用、以及一些常见的问题解决zhuanlan.zhihu.com2.ROS理解
学习初级教程1.1的1-10看完就可以了解ROS的大致结构和使用逻辑:累计2小时可看完
cn/ROS/Tutorials - ROS Wikiwiki.ros.org3.ROS使用
版本选 kinetic ,跟着教程过一遍
catkin/Tutorials/create_a_workspace - ROS Wikiwiki.ros.org4. 测试一下自己的理解
(a) 如何启动ROS程序,有哪些方法?
(b) 控制turtlebot, 走一个完整的圆形,并停止。
至此,以上是我认为的学习机器人的最基础的知识技能范围。
三、 Gazebo的学习
1.gazebo安装:
这里准备了一个gazebo等环境都已经安装好的Ubuntu镜像和使用指南,用windows或mac的同学可以用虚拟机安装这个镜像,用Ubuntu的同学可以自己配一下这个环境;
Jose Cruise:gazebo tutorials 之环境准备zhuanlan.zhihu.com2. 基于仿真平台和以上的教程指南的后半部分,完成一个无人机的位置闭环控制;
3. 完成无人小车的闭环位置控制;
Jose Cruise:基于gazebo平台的麦克纳姆轮小车的仿真控制zhuanlan.zhihu.com4. 在此平台上设置了一个题目——走迷宫
Jose Cruise:无人机仿真之走出迷宫zhuanlan.zhihu.com