首页/文章/ 详情

自动驾驶仿真|如何基于esmini做规控SIL测试?

1年前浏览1346

大家好,我是李慢慢。

此前曾发表过一篇文章:

介绍一款开源的自动驾驶仿真场景播放器:esmini

文章中描述了如何下载、安装、及使用esmini工具,用它进行openDRIVE地图查看,和openSCENARIO场景播放。当时已然对这个工具赞不绝口了,因为它开源、安装简单、秒打开、支持三维旋转、缩放、支持录制和回放等功能。

然而就在前不久的茶话会的交流中,得到高人点拨,才知道esmini的强大远不止如此,它还可以用来做算法测试,尤其是规控算法的逻辑验证。

鉴于此,自己私下做了些探索。
正文如下:

1、SIL规控测试原理
既然esmini已经可以播放openSCENARIO场景了,那么距离SIL测试还有两个问题要解决。
1、如何把外部(规控算法)的控制信号接进去?
2、如何把场景中的信号拿出来?
逻辑图如下:

2、把驾驶控制信号接进去
先来解决第一个问题,如何将外部的算法控制指令,输入仿真场景内,用来控制主车的行为。这里我们借用官方的案例。
在这个名叫“testUDPDriver.py”的脚本起始部分就讲述了如何使用它。打开两个终端,第一个用esmini打开一个场景,第二个是运行本脚本。
终端1:

  
./bin/esmini --window 60 60 800 400 --osc ./scripts/udp_driver/two_cars_in_open_space.xosc  
注意1:在esmini的安装目录下运行;
注意2:在windows中运行的话,需要把“/”改为“\”;
--osi是指定要运行的openSCENARIO场景文件;
终端2:

python ./scripts/udp_driver/testUDPDriver.py --id 0 --id 1
这个脚本将打开一个可以操作的界面,通过拖动滑块,可以操控主车0或者目标车1的位姿、油门、刹车、转向等行为。

3、把场景信号拿出来
再来解决第二个问题,从场景里拿到信号。这里我们依然借用官方的案例。

这个名叫“testUDPDriver-print-osi-info.py”的python脚本,打开它其实就可以在开头看到它的使用方法,简单解释下,就是打开两个终端,其中一个运行一个OpenSCENARIO的场景,另一个运行当前代码。效果就是打印出来场景里的一些信息。
终端1:

./bin/esmini --window 60 60 800 400 --osc ./scripts/udp_driver/one_car_on_road.xosc --osi_receiver_ip 127.0.0.1
--osi_receiver_ip是指定OSI仿真接口UDP数据包的发送地址;后续可以写一个UDP接收程序,丛这个端口拿到仿真中的数据。
终端2:

python ./scripts/udp_driver/testUDPDriver-print-osi-info.py
注意:protobuf版本:3.19.0;


注:上述的输出内容,都是通过OSI接口(Open Simulation Interface)来获得的,想知道通过这个接口能获得哪些信号,使用者还需要详细去学习一个这个行业标准哦。esmini提供的OSI的proto-pb库如下:
附上OSI标准github链接:
https://github.com/OpenSimulationInterface/open-simulation-interface

4、规控测试的闭环实现
接下来,将上述过程串起来,形成闭环,为此我简单做了个的demo。

为了方便演示,我这边计划用Python写一个AEB的算法脚本,该脚本通过udp从场景里拿到目标车的位置,并计算主车撞击目标车的时间ttc,当该时间小于2s时,输出制动指令给主车。
我的预期效果是:如果我不加入AEB控制算法,将发生车辆追尾;如果加入AEB控制算法,主车将制动。

5、后期课题
ok,既然闭环走通了,就可以上批量测试了。
相比于简单的demo,SIL批量测试可能又会出现新的需求需要解决。
我能想到的比如:
需求1、esmini支持多少种目标类型,可以私人定制化扩展吗?
需求2、大量case测试过程中如何隐藏窗口,结果分析时又如何回放单个case数据?
需求3、如何高并发大规模测试?
需求4、如何配置传感器或开发传感器模型?
需求5:如何连接车辆动力学模型?
需求6:如何渲染更逼真的视景?
需求7、openSCENARIO中的DefaultDriver和UDPDriver之间的如何实现无缝切换?
鉴于文章不能写的又臭又长,上述问题还是留待后续更新好了。欢迎有经验的小伙伴前来讨论,共同进步。
本文完。瑞斯拜。


来源:车路慢慢
python自动驾驶控制渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-22
最近编辑:1年前
李慢慢
硕士 自动驾驶仿真工程师一枚
获赞 11粉丝 70文章 122课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈