apollo学习笔记---通过lincoln找出如何将控制信号和CAN通讯相连接

任务目标:

        现在人工智能成为当下热门研究对象,自动驾驶技术作为人工智能重要的一个研究领域集结了大量的科技人才,然而高成本和高技术门槛成为研究自动驾驶技术的一个重要瓶颈。apollo的发布为我们的开发提供了一个选择,无奈,apollo推荐的lincoln实在太贵了,如果能够实现国产车的自动驾驶,岂不美哉?

        硬件:HAVAL H8

        软件:apollo2.5        


添加车辆:

        使用apollo添加一辆国产车进去,首先需要做软件层面的改动,根据官方文档,链接如下:

怎样添加一辆新的汽车

        对比其中lincoln的代码,整理如下(代码目录参考github上apollo的官方代码):

1. 添加完善汽车控制器:

        在目录apollo/modules/canbus/vehicle/下,如下图所示,各源文件和头文件是添加新的车辆需要继承的代码及类。如果要添加新的汽车进去,可以参考lincoln的代码。

apollo学习笔记---通过lincoln找出如何将控制信号和CAN通讯相连接_第1张图片

        创建新的haval_controller.h(或者直接修改linclon的名字,因为一个文件名并不影响后续的代码的使用,如果你喜欢,就用lincoln就行,连名字都不用改),同理,需要修改haval_controller.cc

2. 添加完善新的信息管理器  

        在目录apollo/modules/canbus/vehicle/lincoln/下,参考其代码:

apollo学习笔记---通过lincoln找出如何将控制信号和CAN通讯相连接_第2张图片

3. 完善汽车厂库的类

        同上

4. 注册新车

       在目录apollo/modules/canbus/vehicle/下,添加自己的车子就行

apollo学习笔记---通过lincoln找出如何将控制信号和CAN通讯相连接_第3张图片


!!!疑问:难道就这么简单?

        当然不是,前面的修改都只是改了个名字而已,那么核心的应该修改的是什么呢?我认为应该是两个:1. CAN的底层协议 2. 车子的控制算法,每个车子的参数都是不同的,控制算法肯定不能是完全一样的。所以我们需要转变思路,不是像文档所说那样,添加一个车子就行了,只是换了个马甲而已。

我们需要更改代码,因为不同CAN卡的二次开发函数是不同的,所以我们需要写一些代码,将apollo和自己配置的CAN卡的代码进行数据传输,后续更新

你可能感兴趣的:(学习笔记)