5

无人驾驶(在apollo中添加新车辆)

 3 years ago
source link: https://blog.csdn.net/feixiaoxing/article/details/88691656
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

无人驾驶(在apollo中添加新车辆)

费晓行 2019-03-20 16:46:05 2200
分类专栏: 自动驾驶

【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

    目前最火的自动驾驶平台其实是百度的apollo,但是大家有没有想过,apollo是如何利用工控机和汽车之间进行通信的呢?换句话说,服务器本身是如何向汽车发送加速、减速、转向的命令呢?答案就是can总线。

1、can模块的位置

https://github.com/ApolloAuto/apollo/tree/master/modules/canbus

2、如何添加各品牌商的汽车

    我们知道,apollo除了各个传感器的标定(以camera为例,常用的标定就有摄像头内参标定、旋转矩阵标定、帧率标定、分辨率标定、阀值标定等等)、算法的标定之外,另外一个重要功能就是尽量方便各个品牌商在apollo平台添加自己的汽车。但是各个品牌之间对于can总线的定义并不是通用的,很多都是各个OEM厂家自己定制的。大家可以看一下目前apollo支持哪些乘用车,地址在这https://github.com/ApolloAuto/apollo/tree/master/modules/canbus/vehicle。观察一下,目前除了长城的wey之外,其他支持的车型还是以国外的汽车为主。

3、最适合用来学习的车辆

    就个人而言,目前最喜欢看的代码还是lincoln汽车的代码,它的代码是最规整的、也是最清晰的,protocol协议也是最漂亮的。地址在这,https://github.com/ApolloAuto/apollo/tree/master/modules/canbus/vehicle/lincoln

4、常用的can消息有哪些

    按照lincoln汽车作为例子来说,目前它支持的can消息有加速消息、刹车命令、刹车消息、油箱信息、档位信息、gps信息、陀螺仪信息、授权信息、杂项信息、转向命令、环视信息、加速命令、发动机信息、胎压信息、转向命令、版本信息和车速信息。地址在这,https://github.com/ApolloAuto/apollo/tree/master/modules/canbus/vehicle/lincoln/protocol

5、消息类型

    大部分消息其实都是recv消息,真正send的命令很少

6、如何添加自己的车辆

    基本步骤其实很简单,

    a,在vehicle_factory.cc文件中注册自己的车辆

    b,在vehicle目录下创建一个目录,比如为某个国产车辆品牌abc

    c,进入vehicle,创建abc_vehicle_factory.cc文件、abc_message_manager.cc文件、abc_controller.cc三个文件

    d,继续创建一个protocol目录

    e,在protocol目录中完成abc_message_manager.cc中提到的各个can消息

    f,进一步完成abc_controller.cc文件,VehicleController.cc中没有实现的虚函数,需要全部实现

    g,更新canbus_conf.pb.txt文件,添加abc的相关信息

    h,先用apollo仿真环境测试一遍,最后再用实际车辆运行一下

7、can模块的作用

https://github.com/ApolloAuto/apollo/tree/master/modules/canbus

8、后续的话

    现在汽车其实是一个大的计算平台,所以不管是刹车、加速、减速,本质上都是作为一个传感器存在的。它和最终的执行机构不是直接连接在一起的,所以正是有了can平台和can信号,我们才能利用外面的工控机来对车辆进行设置和控制。

8、官方教大家如何添加新车辆

    大家也可以看看百度apollo是如何叫大家添加新车辆的,https://github.com/ApolloAuto/apollo/blob/master/docs/howto/how_to_add_a_new_vehicle.md

后续的话:

    apollo不管是文档还是代码设计方面还是有很多可以学习的东西,建议大家好好掌握一下,对个人的提高和成长很有裨益。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK