来源:知乎
无人驾驶,从软件的功能模块来看有这么几个,给打算自学且正在选择方向的一个参考:
01. 地图&定位SLAM是自动驾驶最先在做的领域了。在建图这一块,前几年还在给大家普及什么叫高精度地图,但现在传统的图商也能又快又好地做出来一张高精度地图了,就是标准不一致比较难搞。
要学SLAM,有几个必备的资料:
- Cyrill Stachniss的youtube线上课程和课件
- Sebastian Thrun的书Probabilistic Robotics
- SLAM: The Essential Algorithms
- A practical introduction to pose-graph SLAM with ROS
- Probabilistic Systems Analysis and Applied Probability
以及,多看点最新的paper,试下最新的算法。
02. 感知感知是最基础的,也是业内前几年在重点发力的模块,目前感知单靠计算机视觉或者单靠雷达都是不可靠的,所以要学就学最核心的一块——多传感器融合和时序融合。
前几年搞算法是最吃香的,算法研发的薪资简直高到离谱,但这个领域的门槛是很高的,如果不是手握多篇顶会paper,就不要轻易尝试了,前几年也一下子被资本催生得过火了。
多传感器融合和时序融合先要会C ,列了些入门的免费课程:
- C Tutorial for Complete Beginners
- Learn C by Creating
- C , Short, and Sweet, Part 1
- C Programming Basics
- Beginning C Templates
C 学得差不多,就该打ACM了
- How to prepare for ACM – ICPC?
对实时定位也要懂(不懂的翻回去看上面)
了解下系统动力学(System dynamics)
- Introduction to System Dynamics
以及运动学建模(kinematics modeling)
- Kinematic Model - an overview
- Kinematics: Describing the Motions of Spacecraft
多传感器融合相关资料:
- Handbook of Multisensor Data Fusion: Theory and Practice, Second Edition
- Statistical Sensor Fusion. Fredrik Gustafsson. Studentlitteratur, 2018.
- Statistical Sensor Fusion. Exercises. Christian Lundquist, Zoran Sjanic, and Fredrik Gustafsson. Studentlitteratur, 2015.
- Statistical Sensor Fusion Matlab Toolbox
- Android app Sensor Fusion app
如果你还是对算法情有独钟,那就先从计算机视觉开始吧:
- Tombone's Computer Vision Blog: From feature descriptors to deep learning 20 years of computer vision
- Andrew Ng的Machine Learning课程
- Convolutional Neural Networks for Visual Recognition
- Tombone's Computer Vision Blog
- Andrej Karpathy blog
- 实践下Google Vision API
03. 仿真为什么不把更重要的决策规划放在前面?因为仿真也是一个基础模块,自动驾驶仿真软件很多,比如Perscan、Carmaker、VTD,以及开源的Carla、Airsim等。
虽然现在业内更多公司用的基于游戏引擎做的仿真系统,但是看看Waymo的Carcraft,还是自己研发的仿真系统,个人感觉这个才是大势所趋。
必备技能C
全栈开发能力也需要很强,以下也是些免费的资料
- Learn X in Y Minutes
- What CS Majors Should Know
- Google’s Technical Development Guide
- CSS Tricks — Complete Flexbox Guide
- Regex Cheat Sheet
- DevDocs
- Awesome List of Everything Programming
- How to Break Into the Tech Industry — a Guide to Job Hunting and Tech Interviews
学一下AngularJS 或 Angular2
- AngularJS For Beginners
- AngularJS: Framework Fundamentals
机器学习也还得略懂一二
- Free Machine Learning Course (fast.ai)
- Machine Learning Course by Stanford University (Coursera)
- Deep Learning Course (deeplearning.ai)
- Machine Learning Course A-Z™: Hands-On Python & R In Data Science (Udemy)
- Free Machine Learning Data Science Course (Harvard University)
04. 运动决策规划这是目前在重点攻克的难题,可以说也是潜力最大的领域。许多人都是从机器人转过来的。
重要的事说三遍:C ,C ,C
ROS入门
- Tutorials : Installation
- Powering the world's robots
- UBC Open Robotics
- Learn TurtleBot and ROS
- Husky UR5 Mobile Manipulation Demo
重点了解下运动优化(Trajectory optimization)
- Introduction to Trajectory Optimization
- Overview of Trajectory Optimization Techniques
- Underactuated Robotics - Lecture 9: Trajectory Optimization
- An Overview of Planning Under Uncertainty
深度学习也是一定要会的
- Neural Networks and Deep Learning-Andrew Ng
- How to Learn Machine Learning, The Self-Starter Way
- Jeremy Howard: The wonderful and terrifying implications of computers that can learn
- Blaise Agüera y Arcas: How computers are learning to be creative
- Anthony Goldbloom: The jobs we'll lose to machines — and the ones we won't
以上,还是先从挑一个方向开始吧。