首先称赞一下,能早早有自己的想法,并且开始自学。
智能汽车其实涵盖了很多的方向,我暂时能想到的有:
- 测量。主要涉及各种传感器的原理,标定,使用,以及初步的信号处理。常见的传感器有毫米波雷达,激光雷达,单目摄像头,双目摄像头等。
- 感知。主要涉及的机器视觉和计算机视觉。目的是从传感器信号中获取有价值的信息。典型的例子就是从激光雷达的点云里找出周围的车辆。有很多CV的小伙伴就耕耘在这个领域里。
- 定位。确定车辆位置和姿态。你说的SLAM就是一个例子。搞高精度地图的也可以归到这个方向。
- 多传感器融合。融合不同的传感器信息,获得互补的,更稳健的信息。单独拿出来说,是因为融合的方式比较多样,难以笼统的归类到上述三条的任意一个中去。
- 决策。指根据已有环境和自身车辆的信息,确定正确的行为。在这里集中了很多折腾马尔可夫链,决策树,强化学习的小伙伴。
- 控制。负责把决策转化为行动。基本就是传统的控制论那一套,具体运用到了汽车上。另外这个领域需要你熟知车辆的动力学特性以及舒适型需求,以免设计出来的控制策略过于刺激。
- 通信。车内部大量的传感器,控制器,执行器都需要通信。在未来车和车之间,车和交通管制中心之间很可能也要通信。在这个领域你会接触到各种总线技术(比如CAN)以及标准(比如Autosar)。ROS大概也可以算到这个领域里。
- 有人认为智能制造也算智能汽车的一环。我觉得这种分类是胡来。见仁见智了。
以上的任何一个方向都足够读个博士出来。自学「智能汽车」在我看来很容易找不到方向,出现「什么都学了点皮毛,然后就学不进去」的困境。
我并不推荐在本科期间就深入某个领域(大佬除外哈,大佬无所畏惧),有些事读研读博的时候做更合适。我的建议是:
- 打好本科基础。比如你要搞SLAM,需要大量的线性代数运算。搞决策,需要概率论和优化理论。搞控制,需要控制论和汽车动力学。搞传感器和通信,需要信号处理。另外,本科成绩刷高点,也方便你保研出国嘛。
- 掌握一门编程语言。MATLAB,Python,C++都行。不要贪多,一门熟练之后学别的都快。了解最基本的数据结构和算法。最重要的是:养成好的编程习惯,比如使用git,写注释文档,写单元测试,使用debug工具,用搜索引擎查找问题,阅读源码。
- 学会使用任何一个Linux发行版(建议Ubuntu)。随便装个虚拟机耍两天不算哈。要学会在Linux环境下配置开发环境,编写程序。
- 用项目驱动学习。你们学校应该有各种学生车队可以加入,真刀真枪做一个项目,收获远远大于闭门造车。learn by doing嘛。去企业实习或者去教授的课题组搬砖也有类似的效果。
- 切忌盲目冒进。说实话你现在自学的东西有点庞杂了。比如SLAM(我猜你搞的visual SLAM吧)这种硬核问题,我建议你掌握好机器视觉、线性代数、概率论和运动学之后再慢慢啃。
- 读研读博吧。学校给本科生开智能驾驶方向,在我看来噱头大于实质。