首页/文章/ 详情
banner

案例-如何用CICD来触发自动驾驶仿真?

1年前浏览3500
大家好呀,我是李慢慢。
当自动驾驶开发工程师将开发好的代码上传到代码仓库后,怎么样才能自动触发自动驾驶仿真进行代码的功能测试呢?
本文想要简单研究下这条路的技术栈,并通过案例来实际演练。
先交待一下环境:
操作系统:Ubuntu20.04(虚拟机)
代码仓库:gitlab(远程) + git(本地)
仿真软件:esmini
测试对象:AEB控制算法
测试场景:追尾场景(OpenScenaro+OpenDrive)
编程语言:python+shell
历史文章:见文末
仿真运行代码:
相关代码放到了gitlab上,链接如下:
https://gitlab.com/auto_sim/lmm_test_cicd
简单解释下:start_simulation.py是用来启动esmini和aeb算法的,Cases里存放的是运行场景,真正的aeb示例代码我放到了
my_AEB_Controller里。
把上述仓库里的东西clone到本地后,可以通过以下方式直接开启自动驾驶仿真测试。
      
    git clone git@gitlab.com:auto_sim/lmm_test_cicd.gitcd lmm_test_cicdpython start_simulation.py  
    运行效果大概如下:
    上图中,左边是仿真测试的可视化界面,右边是运行的代码。代码运行完成后,输出物是在target文件夹里创建一个report.csv文件,文件里写入aeb触发时刻的ttc(文件及文件内容完全由使用者自己决定)。这个文件将作为后续CICD测试的工件artifact。
    CICD gitlab-runner配置项:
    解释:CICD检测到cicd_validation这个分支发生更新,即触发运行特定代码:python start_simulation.py,并在该任务成功运行完成后,返回工件artifact,我这里把他当作仿真测试运行完成后的结果文件,这个结果文件以"任务+分支"来命令,文件内容是运行工程下target文件夹里的东西进行压缩打包。打包的东西是什么取决于我在target文件夹里放了什么,此案例中我只放了了report.csv文件,这个文件里我是用aeb程序激活后写入的ttc时刻。
    CICD触发和结果
    假如我是一名开发工程师,我今天更新了自动驾驶某个算法,然后我把它提交到了仓库某个分支下,过了一会儿,我就能下载并查看新算法的仿真测试结果。嗯,真香。
    采用CICD流程的有效收益:
    1、算法工程师可以快速进行大批量仿真测试,验证算法逻辑功能;
    2、仿真工程师可以专心开发测试场景,以更高场景覆盖度测试代码逻辑,提前发现算法的问题,或者定位算法工作边界;
    来源:车路慢慢
    python自动驾驶控制
    著作权归作者所有,欢迎分享,未经许可,不得转载
    首次发布时间:2023-06-25
    最近编辑:1年前
    李慢慢
    硕士 自动驾驶仿真工程师一枚
    获赞 11粉丝 63文章 122课程 0
    点赞
    收藏
    未登录
    1条评论
    superJiang
    签名征集中
    7月前
    您好, 请问源码如何访问,gitlab貌似没有访问权限了,盼复
    回复
    课程
    培训
    服务
    行家
    VIP会员 学习 福利任务 兑换礼品
    下载APP
    联系我们
    帮助与反馈