Li Yingping's Studio.

Apollo D-Kit 调试笔记(二):动力学标定与循迹验证

字数统计: 2.2k阅读时长: 8 min
2020/10/22

准备工作


Apollo Fuel服务的申请

  • 打开https://login.bce.baidu.com/?redirect=https%3A%2F%2Fconsole.bce.baidu.com%2F登录BOS,进入控制台后点击对象存储BOS,在页面中开通对象存储服务,并创建一个Bucket,选择私有、按使用流量计费。创建完成之后,记录下Bucket名称、地域,而后,点击右上角Access Key按钮,在弹出的页面中记录下AkSK

  • 打开http://bce.apollo.auto,在左侧选择“帐号状态”,点击“Apollo Fuel”下方的蓝色超链接“这里”,在弹出的模态框中输入对应的信息,包括车辆自身的信息和上述BOS服务的信息,提交确认,等待商务人员审核。

可能用到的软件

  • 循迹实验中,Apollo D-Kit的行驶数据会被保存在本地的一个CSV文件中,为了方便对其中的数据进行可视化分析,可能会使用到Matlab和QGIS,Matlab可以用来可视化速度、油门大小等信息,QGIS可以将GPS信息进行可视化。QGIS是一个开源软件的,其下载地址如下:

    QGIS Project:https://www.qgis.org/zh-Hans/site/
    QGIS 下载页:https://www.qgis.org/zh-Hans/site/forusers/download.html

动力学标定


动力学标定概述

  • 动力学标定是通过采集车辆底盘在运行时油门幅度、刹车幅度、车辆速度、车辆加速度等数据,建立车辆动力学模型的过程。动力学标定的结果是一张车辆踏板标定表,反映了油门和刹车作用在车辆上的效果。Apollo D-Kit的动力学标定过程可以在Dreamview中可视化完成。

  • Apollo D-Kit的动力学标定需要采集低速小油门、低速大油门、低速急刹车、低速缓刹车、高速大油门、高速小油门、高速急刹车、高速缓刹车这8种场景条件下的运行数据,其中速度条件、油门条件和刹车条件的定义如下:

    • 速度条件:低速——;高速——

    • 油门条件:小油门——;大油门——

    • 刹车条件:缓刹车——;急刹车——

  • 上述标定配置位于apollo/modules/calibration/data/dev_kit/dreamview_conf/data_collection_table.pb.txt中。

动力学标定流程

数据采集
  • 将Apollo D-Kit移动至足够长的直线路段后,启动Apollo D-Kit,进入Docker容器内,并通过bootstrap.sh脚本启动Dreamview。在--setup mode--中选择vehicle calibration并将--vehicle--置为Dev_Kit

  • 在下方Others区域中勾选Data Collection Moniter,在右侧弹出的面板中点击Go Straight按钮,下方出现8个进度条,分别对应上述8种场景条件。在后续的驾驶过程中,当满足其中的一种场景条件时,相应的进度条就会增加,当所有进度条都满了之后,即可完成数据采集。

  • 在Docker内终端运行命令cyber_monitor,检查/apollo/canbus/chassis是否有数据,检查/apollo/sensor/gnss/best_pose是否有数据且sol_type字段是否为NARROW_INT,检查/apollo/localization/pose是否有数据。若均无误,在Dreamview中点击左侧Module Controller,打开三个开关,开始操作车辆采集数据。

  • 当采集完成后,在Module Controller中关闭Recoder开关。在apollo/data/bag下可以找到一个形如yyyy-MM-dd-HH-mm-ss和一个形如yyyy-MM-dd-HH-mm-ss_s的两个文件夹,复制出其中不带_s后缀的文件夹备用。

  • (Optional)如果采集过程中出现失败,重新进入Dreamview无法打开Go Straight页面,需要运行rm -rf ~/apollo/data/bag/*删除残缺的数据文件,在Docker内执行bash apollo.sh build_opt重新编译工程。

标定任务提交
  • 登录百度智能云,打开BOS服务,在Bucket根目录下新建一个任务文件夹,例如Task001,在其中建立一个代表车辆的文件夹,例如Dev_Kit,在其中建立一个名为Records的文件夹,在、再上传一个该车辆的配置文件(位于/apollo/modules/calibration/data/dev_kit/vehicle_param.pb.txt),再Records文件夹下建立一个形如yyyy-MM-dd-HH-mm-ss的文件夹,将Apollo采集的数据传到该文件夹下。需要注意的是,BOS服务按量计费,再进行后续操作之前需要在百度智能云中预存足够的费用。

  • 打开http://bce.apollo.auto,在左侧选择Apollo Fuel并在二级菜单中选择任务,点击“新建任务”,在下拉菜单中选择“控制评测”,在“输入数据路径”中填写上一个步骤中建立的任务文件夹名,即Task001,点击“提交任务”。

更新配置文件
  • 云标定完成后,会将标定结果发送至预留的邮箱中,压缩包是.tar.gz格式,解压后将标定结果用于替换apollo/modules/calibration/data/dev_kit/control_conf.pb.txt中的lon_controller_conf字段下的calibration_table字段。

循迹实验


录制阶段

  • 在完成车辆的动力学标定之后,可以进行车辆的循迹实验。启动工控机,在命令行下打开CAN卡,启动Docker容器,进入Docker内环境,使用bash apollo.sh build_opt_gpu命令重新编译工程,并通过bash scripts/bootstrap.sh命令启动Dreamview。

  • --setup mode--中选择模式Rtk,并在--vehicle--中选择Dev Kit车型,在侧边栏中进入Module Controller页面,打开CanbusGPSLocalization三个模块,在cyber_monitor中监听/apollo/canbus/chassis/apollo/canbus/chassis_detail/apollo/sensor/gnss/best_pose/apollo/localization/pose四个Channel的数据是否正常。

  • 如各个Channel的数据均符合要求,可以将车辆开至合适的场地,记录下车辆的车头方向和起点位置,点击RTK Recorder启动循迹数据的记录模块录制数据,此时使用遥控器手动控制车辆前进一段轨迹,在达到终点后,再次点击RTK Recorder,关闭录制。需要注意的是,车辆停止和关闭数据录制之间的间隔需要尽可能的短,以免录制过多冗余数据。

回放阶段

  • 驾驶车辆返回录制过程的起始点后,将遥控器放权,在Module Controller页面中打开Control模块,再启动RTK Player模块,此时在界面中应规划出一条光滑无毛刺的蓝色轨迹线,该轨迹即是录制阶段车辆行驶的轨迹,请确认轨迹是否符合预期。

  • 在侧边栏点击Task,在下方的控制区域点击Start Auto,此时车辆将按照规划的轨迹执行自动驾驶,此时可以观察界面中不断replan的轨迹和车辆的实时驾驶状态是否科学安全,如有异常,随时使用遥控器接管车辆。

  • 到达终点后,车辆会自动停止,此时先使用遥控器接管车辆,再在Module Controller页面中关闭RTK PlayerControl模块,完成循迹实验。

循迹实验的调试

CAN总线的调试
  • Dreamview中高层下达的指令通过CAN总线控制地盘的运动,如果车辆的循迹运动有问题,可以检查CAN总线的控制是否正常。在Apollo的工程代码中,官方提供的canbus_teleop脚本能实现这一功能,在Docker的内环境中执行下列命令可以进入一个这个脚本的CLI页面。

    1
    2
    cd /apollo/scripts
    bash canbus_teleop.sh
  • 在CLI中会显示该工具的使用方法,一般说来,需要先同时按下m键和0键重置系统,在同时按下m键和1键开始对底盘进行控制,连续按下a键和d键观察车前轮是否有左右运动,同时按下g键和1键为汽车挂前进挡,连续按下w键观察汽车是否前进,连续按下s键观察汽车是否能停下来。

  • 如果上述操作均无异常,说明CAN总线通信没有问题。

录制数据的可视化
  • 在录制阶段,RTK Recorder采集到的数据会被保存在apollo/data/log/garage.csv这一文件中,其中包括车辆在每一时刻下的位置信息、速度、加速度、油门档位等各种驾驶信息,记录的频率是100Hz。

  • 对于其常规数据的可视化,通过Excel中的图表工具就可以完成,对于GPS信息,文件中记录的是WGS84坐标系下UTM投影后的值,这个信息可以通过QGIS软件进行可视化,具体的操作步骤可以参考下方其官方文档中的说明,更多的关于GIS的内容可以在下方的网站中获得:

    Importing a delimited text file:https://docs.qgis.org/3.10/en/docs/user_manual/managing_data_source/opening_data.html?highlight=csv#importing-a-delimited-text-file
    麻辣GIS:https://malagis.com/

CATALOG
  1. 1. 准备工作
    1. 1.1. Apollo Fuel服务的申请
    2. 1.2. 可能用到的软件
  2. 2. 动力学标定
    1. 2.1. 动力学标定概述
    2. 2.2. 动力学标定流程
      1. 2.2.1. 数据采集
      2. 2.2.2. 标定任务提交
      3. 2.2.3. 更新配置文件
  3. 3. 循迹实验
    1. 3.1. 录制阶段
    2. 3.2. 回放阶段
    3. 3.3. 循迹实验的调试
      1. 3.3.1. CAN总线的调试
      2. 3.3.2. 录制数据的可视化