今天本来是想介绍ASM和carsim。但是呢,因为想强烈推荐一些无人车入门资源。所以打算先更新这波学习资源。
我认为无人车学习资源分为3种。
1 学习框架
2 学习理论
3 学习代码
那么挨个推荐迄今为止我看到的好资料。看得少,见笑了
1 学习无人车框架
学习某种东西之前,首先我们应该学习一个大体的框架。这也是为什么我们看的书总是会先出现背景介绍及框架。
因为一个良好的框架可以把整个体系画出来。
如下图中,我们先学习整个黑框,也就是所有内容的框架,然后学习内容,然后学习箭头。实际意思就是,先学习框架,再学习框架里面的某个内容及相关知识,然后再学习每个模块之间的联系。这样的学习方法可以把每个新学到的内容逐个放进他应该去的位置。这样学习就可以避免很多东西,我们学了却不知道这个跟别的有什么关系,或者根本不知道这个内容是属于哪里的,为什么要学这种问题。而且学会某个内容的情况下,这个内容就可以单独成为一个体系,想深入研究就继续钻研,如果想了解更多内容就根据箭头学习新的内容(知识)。
如果不从框架开始学的话,就会像无头苍蝇一样乱撞。每个都学不好,每个单独拿出来都不了解,对整个知识体系也没有深入的理解。这样就算学了也是白学,乱学。这样倒不是学不会,而是会浪费很多没必要的时间和精力。
学习的步骤(我认为的)
那么,就介绍一下我认为非常适合构建框架的资源。
MIT 课程录像。
有资深老司机给学生们普及无人车相关知识。没有任何背景也可以愉快的观看。当然,没啥背景的话,听不懂的内容应该比较多。就算听懂了也是单纯听懂了英语。涉及的内容相当宽。从感知到决策到最后控制都有涉猎。不仅如此,因为这个课程的讲师Lex Fridman还邀请了很多知名的无人车公司大佬过来演讲。所以还有很多产业相关的内容和成本计算相关的内容(比较少)。邀请的公司有Waymo,Aurora,nutonomy。其实这些视频中让我十分深刻的是,Boston dynamics开发的机器人通过强化学习自己学会了后空翻!! 我练了那么久都没练明白的东西!! 只能说厉害厉害
强烈推荐!
MIT 6.S094: Deep Learning for Self-Driving Carsselfdrivingcars.mit.edu
2. PerceptIn 老板 SHAOSHAN LIU 写的书 : Creating Autonomous Vehicle Systems
非常好的书籍。
2018热乎的书。价格我记得是500rmb左右。
(评论里面有同学说有中文版的,叫‘第一本无人驾驶技术书’。我看了一下,内容有不少是不一样的。英文版的是面向国外的读者的,而中文版是针对中国读者的。所以中文版本里面有很多关于中国无人车情况的内容。
我认为中文版相对简单一些。也有可能是因为中文,所以我觉得简单~~
总之就是这么个情况。)
想购买的同学参考下面图片
书籍
书名及作者
因为他涉及到了所有的无人车模块。感知,传感,决策,预测轨迹,预测行为,控制方法,高精地图等等等等。
所以就是一个大框架!
虽然有写简单的原理介绍,但是内容不多,好在提供了很多参考文献,可以当作一个引子去论文库找文献看。
我认为是非常好的书籍!
还有就是thrun大神的 概率机器人 probabilistic robotics!
2 学习理论
这个把,就需要长跑了。
并不是简单的通过看什么视频就能解决的事情。要看各种各样的书,读各种各样的论文。
论文库 IEEE。论文很多.
IEEE Xplore Digital Libraryieeexplore.ieee.org
但是,这里想推荐的就是,别试图把所有的内容都学一遍。不现实。因为每个模块都是一个单独的学术研究方向,他要学习的东西是非常非常多的。
这里我推荐学无人车必学的内容如下。以下内容都可以在Udacity 学到。当然还有coursera等知名在线教育。国内也有很多,比如腾讯课堂啥的。
c语言和C++(基本要求)
Linux操作(很多设备,都是基于linux开发的)
python(是为了用人工智能库)
车辆动力学(无人车层面的车辆模型,我认为简单的自行车模型就够了)
线性代数
高等数学(如泰勒级数,泰勒展开,噪声分布,统计,概率,加减乘除。。。)
是的,要学的东西超多,因为无人车是个整合性应用工程。所以要对每个领域都有一定知识。我认为合格的无人车工程师就是可以非常深入的解决一个领域,同时还了解其他领域的相关知识及流程。这样他才有能力整合无人车系统的前后所有的系统构建逻辑。
3 学习代码
除了培训以外,一般不会有人带人一点一点学代码。对于本科是机械的我来说,开始编程真的是个痛苦的经历。所以这边推荐,如果不是IT专业的人学习无人车,建议先学一些编程。
无人车代码涉及到很多领域。大部分代码和计算机视觉用到比较多的是c和c++和python,硬件架构主要用到的可能是linux,还有比较有意思的是,很多公司还会用docker作为开发环境,比如百度apollo。
推荐代码学习资源
Udacity 无人车纳米学位, Robotics, Artificial Intelligent Robotics,Deep Learning 等等
Nanodegree Programs and Free Online Classes | Udacitywww.udacity.com
Baidu Apollo github。百度开发apollo,很多代码都是可以在apollo的代码库里找到的。代码藏得很深,不过基本都在src文件夹里面。根据大神们编好的代码,我们可以快速的学习如何构建代码。里面涉及的语言有linux,c++,c,python。还有用到docker,但是这个就不是什么语言了,只是一种工具。百度还是很厉害的 。我看他们的voxel net已经在用了。据我所知好像是2017提出的理论, 这么快就代码化并上传使用了,还提供那么多云计算,仿真场景,其实挺不容易的。
ApolloAuto/apollogithub.com
今天就先介绍这么多把。我看的就这些。
其实还有很多内容需要我们去学习,但是现在暂时还没有无人车专业,所以也就没有整个体系的相关资源,只能是一点一点学了。
还有一些不经常看的内容(如linux的AGL开源车辆控制项目),很多我也不是很懂,这里就不一一介绍了
谢谢支持,各位看官的关注就是持续更新的动力~
看完就别吝啬点赞加关注啦~
同时也希望朋友往咱们专栏投稿,让我们在无人车算法的造诣上不停的成长~!
20180617 林明