查看原文
其他

技术文档 | 如何标定车辆油门和制动

阿波君 Apollo开发者社区 2022-07-29



搭载Apollo平台的无人车是线控车,而不是一个仅有齿轮组成的集合体。其对安全精度和各种复杂技术的集成程度要求非常高。

智能驾驶控制技术以摄像头、雷达为计算采集环境信息,完成对车辆加速度、速度等运动变量的自动调节与控制系统、紧急制动辅助系统、碰撞预警系统、车道偏离预警系统和车道偏离保持系统等模块的控制。

目前应用于车辆上的纵向运动控制系统包括防抱死制动系统、驱动防滑系统、自适应巡航系统、走—停巡航系统和主动避障系统等电子装置。这些点子装置通过控制发动机节气门开度、制动液压及自动变速器,使车辆实现巡航、跟踪和避障等控制目标。

为实现对无人车的控制,Apollo需要知道踩刹车和减速的关系、踩油门和加速的关系等,当无人车拿到一些控制学参数后,就可以实现电脑对无人车的控制。

Apollo在云端后台有巨大仿真空间,可满足每一辆无人车将遇到的复杂路况上传到云端, 网上便有庞大的数据库。可保证即便在无人驾驶算法未更新时,云端的仿真场景仍能够检验是否能够应对实时路况。这个步骤,就是为了确保每个无人车都称得上是“有经验的司机”。

今天,阿波君将和大家一起讨论一下,如何标定车辆油门和制动。




介绍    

车辆校准的目的是找到准确产生从控制模块请求的加速量的油门和制动命令。


准备    

按如下顺序完成准备工作:

1、访问相关代码

2、改变驾驶模式

3、选择测试地点

访问相关代码

  • Canbus, 包括以下模块:

    • GPS 驱动

    • 定位

改变驾驶模式

modules/canbus/conf/canbus_conf.pb.txt中,设置驾驶模式为 AUTO_SPEED_ONLY

选择测试地点

理想的测试地点是平坦的长直路。


更新车辆标定    

以上准备工作完成后, 在modules/tools/calibration中按顺序完成如下工作

1、采集数据

2、处理数据

3、绘制结果

4、转换结果为protobuf格式

采集数据

1、运行 python data_collector.py,参数如 x y z, x 代表了加速的控制指令, y 代表了限制速度(mps), z 是减速指令,正值标识油门量,负值标识刹车量.且每条命令运行多次,其中 data_collector.py在modules/tools/calibration

2、根据车辆反应情况,调整命令脚本

3、运行 python plot_data.py 使采集到的数据可视化

比如输出指令 15 5.2 -10,将会生成名为t15b-10r0.csv的文件。

处理数据

对每个记录的日志分别运行process_data.sh {dir},其中dir为t15b-10r0.csv所在的目录。每个数据日志被处理成t15b-10r0.csv.result

绘制结果

通过运行python plot_results.py t15b-10r0.csv得到可视化最终结果,检查是否有异常

转换结果为protobuf格式

如果一切正常,运行result2pb.sh,把校准结果result.csv转换成控制模块定义的protobuf格式。



﹏﹏﹏﹏﹏   END  ﹏﹏﹏﹏﹏







您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存