apollo9.0的学习记录 (二) 关于通过apollo 9.0学习自动驾驶系统的一些思考,以及后续学习的大致路径

自己的一些背景

这篇文章主要是我自己用来梳理一下我后续自学apollo 9.0的一些计划,并不会适用于大部分人,但是其中的一些思考或许能给大家一些帮助。简单的说下我自己的背景,本科毕业在实验室帮忙做一些智驾相关的研究,三年以后去智驾教育相关的公司做了一年半的智驾教育设备开发,现在在某车企做智驾创新项目的开发。之前大部分的时间都是基于autoware.ai那套东西去做二次开发的,目前学习apollo9.0是为了能够移植部分算法放到手头的项目中使用。

一些零碎的思考

这部分就是一些零碎的自问自答~没啥太多逻辑,见谅

为啥好好的autoware不研究跑来搞apollo呢?

对于初学者来说如果有ros基础的话 autoware入门智驾其实是更简单的,相对资料其实也会比apollo更丰富一点,而且现在auto版本的autoware从功能的角度讲也并不比apollo9.0差。autoware玩的有点多了 然后我懒得学ros2,就整个apollo 9.0来研究研究吧。

为啥要写博客?

就是玩。

为啥第一篇博客写的是环境搭建而不是这篇大纲

忘了。而且啥都没干就开始给自己制定计划,总感觉容易直接凉了,环境搭起来了,好歹也算把事情开了个头。而且后面干啥都能有个反馈,对于自学来说我认为正反馈是很非常重要的,如果做一个没有外力驱使事情没有正反馈等于也没有内趋的力基本就凉了,所以先给自己做的事情设计一个可持续且频率较高的正反馈机制是能长久坚持一个事情的前提。对于自动驾驶系统的学习,仿真是一个很好的正反馈产生的机制,比如你修改了代码这个车就产生了相应的变化,看着就开心~当然如果有实车去测试你的研究成果这个正反馈的强度会高很多。或者写博客或者发视频也是一个挺不错的产生正反馈的方式。

为啥选择carla作为仿真器

开始用的这玩意,就一直沿用下来了。但是实话说如果要做规控算法的优化carla并不是个很好的仿真器,相对于panosim,carsim这些对于车辆动力学模型还原度高很多的仿真器,carla这个游戏引擎真的就捉襟见肘了,但是胜在carla相对易用对新手较为友好,做一些入门学习还是够用的。

学习apollo 9.0的前置条件(一拍脑门子写的诸多遗漏望补充)

核心的条件 c++基础,高数,线代基础 强烈推荐的一些前置内容 ros docker容器 智驾传感器相关的基础知识(激光 相机 毫米波 组合导航 ) 线控底盘还有车辆动力学模型相关知识(规控方向核心)

个人学习计划

1.先看图

以前在实验室的时候我老板就这么和我说 看论文先看摘要再看结论 然后看图表最后把核心的公式看看其他的就不重要了~我看开源项目也秉持着我们老板的这个思路,先看图,把阿波罗的整体框架图正明白了,后面每个模块能找到图的也先找图看。后面干啥都可以按图索骥

2.按图索骥

开发面对的是代码,图这个东西只能给你一个全局的概念,但是这个概念是悬在空中的,实体的代码才是踏实的东西,所以需要在源码里面找到和图里面各模块的对应的代码,这个对应在开始的时候只需要大的文件夹对应上就行,后面研究深了,也可以自己研究从子模块里面的源码文件到模块框架图的对应,甚至函数到具体的子模块的运行逻辑中的对应关系也可以自己画图来展示,我有一个观点就是学习的时候最好你能创造点什么,这样创造本身也是会对你的学习行为产生正反馈的,这个创造包括但不限于笔记,框图,修改的代码,录的视频啥的。如果有一天你胸中有阿波罗的一个函数级别的大框架图,你看待apollo这个代码的心态和现在会完全不同。

3.从反馈最强的部分入手

完成上面两步后,就要开始改代码然后在这个庞大的系统上做一点微小的改动,我个人会从底盘驱动和控制入手来深入学习阿波罗,原因很简单,我改了这个carla里面的车会动,看着就很开心,carla的驱动过了bridge后其实就是一个简单的控车的cyber节点,然后我们就可以写个简单的给车发油门刹车的cyber程序然后给车发控制指令先让carla里面的车跑起来,跑起来之后是不是我们就想着让车匀速行驶,是不是就可以自己写个pid让车自己匀速跑。慢慢的从这开始我们是不是可以生长出很多想法。而且每个想法的实现结果都可以在carla里面得到反馈。这样的学习就更容易持续下去

4.去糟存精

从上门写驱动开始慢慢我们一个一个把阿波罗的组件接进来,这时候我们会有一些自己的小小想法,我们希望这个代码按我们想要的方式运行,去实现我们的小小想法,这个时候我们其实就应该去针对性的审视这个apollo代码,毕竟这样的开源代码服务的是一个通用场景,我们自己的小小想法大多是服务于特定场景,这时候我们可以尝试以我们这个特定场景的角度去思考这个开源项目的不合理的地方还有需要修改的点,在这个过程中完成代码的本地化,直到有一天我们开始做实际的项目,我们会发现,代码里面没有一句是apollo的原文,但是时常能看到apollo的影子,也就算学成了。

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值