通过Apollo软件进行车辆踏板标定的基本原理和方法步骤,了解车辆标定的作用,掌握标定后的数据处理过程,通过实际操作演示标定过程,帮助开发者快速掌握车辆方法和标定流程。
1.标定的目的和基本原理
Apollo系统软件的标定,是一个存在于操作系统软件的表:
标定表:提供一个描述车辆速度、油门/刹车开合度、加速度量之间的映射表。
Apollo自动驾驶判断依据:根据标定表判断和预估采取刹车或油门。
加速度与油门刹车的关系:
加速度为正值,需要油门完成正值加速度;加速度为负值,需要刹车完成负值加速度。
不同的车,标定表是不同的。
2.标定的操作方法步骤
2.1标定前准备
Apollo标定准备,启动各模块:
bash docker/scripts/dev_start.sh
启动Docker;输入密码;bash docker/scripts/dev_into.sh/
进入Docker;bash scripts/canbus.sh/
启动canbus模块;bash scripts/gps.sh/
启动GPS模块;bash scripts/localization.sh/
启动localization模块;bash scripts/roscore.sh/
启动rescore模块;
检查模块启动情况:
-
rostopic echo /apollo/canbus/chassis
获取底盘数据; -
rostopic echo /apollo/sensor/gnss/best_pose
获取GPS数据;
(当sol_type的值为NARROW_INT时,表示GPS信号良好,反之检查是否有遮挡物或查看GPS日志报错等) -
rostopic echo /apollo/localization/pose
获取localization/pose topic数据;
(当定位信息一直刷新,表示信号正常,若没有,尝试移动车辆到信号好的地方)
2.2标定
Tips:
由于标定命令执行后,车辆进入自动驾驶,尽量选择长直、空旷、无人的场地进行标定,以确保安全;若车辆轨迹异常,需要遥控器介入接管急停。
标定开始前确保遥控器不再接管车辆,以及车辆尾部急停按钮在非急停状态,从而使用标定命令驾驶。
标定过程需要多测采集以获得不同的数据。
标定脚本执行目录:/apollo/modules/tools/calibration;
实操演示:紧急停车
-
数据采集
python data_collector.py
执行数据采集脚本;
按照提示输入标定参数x(油门踏板开合度百分比)、y(车辆目标达到速度)、z(刹车踏板开合度百分比);
数据采集参数:油门12%,目标速度1m/s,刹车-15%(空格隔开);
输入q,数据采集停止;
输入ls,输出当前数据采集结果(.csv);
多次采集,循环上述步骤。 -
数据处理
mkdir cal_1001
新建目录存放数据;
cp *.csv./cal_1001/
拷贝文件到新建目录;(ls命令展示结果)
退回到上一层目录;
bash process_data.sh cal_1001
处理原始数据,生成文件result.csv;
python plot_results.py result.csv
绘制标定结果;
bash result2pb.sh result.csv
生成protobuf标定文件,文件目录:/apollo/modules/calibration/control_conf_.pd.txt;
打开文件,标定数据位置在lon_controller_conf下calibration_table数据段;
首先,删除无用数据;
其次,拷贝calibration_table数据段;
标定表存放目录/apollo/modules/calibration/data/ch,有文件calibration_table.pd.txt;
最后,将拷贝的数据段,放入目标文件对应位置。