大家好,我是李慢慢。
前面介绍了一款制作OpenDRIVE文件的开源工具(如下链接),truevision。
有了OpenDRIVE,仿真就有了地图。接下来就是在地图上讲故事(交通参与者的各种行为)。那就必须说说,OpenSCENARIO,因为它就是讲故事的,更准确地说,它定义了讲故事的准则,按照这套准则,讲出来的故事话本,保存在一个.xosc的文件中。
这个故事的话本,想要徒手看懂有点困难,把它播放出来,就好懂多了。今天介绍的,就是这么一个播放OpenSCENARIO格式话本的小工具:esmini。
目录:
1、esmini简介
2、esmini下载及安装
3、esmini使用方法
1、esmini简介
esmini 是一个播放 OpenSCENARIO 文件的软件工具。它既作为独立应用程序提供,也作为与自定义应用程序链接的共享库提供。此外,还开发了一些工具来支持交通场景的设计和分析。
esmini的官方说明链接:
这个说明文档真的很有用吖,本文后续尝试都是基于本说明文档进行的,诸君若是看本文有何疑问,最好的方法就是去看这个官方文档哦。
2、esmini下载及安装
esmini源码下载地址:
https://github.com/esmini/esmini/releases/tag/v2.26.1
源码有支持windows的、ubuntu的、和mac的。我这里选择了windows版本的。需要下载如下两个压缩包。
解压之后即可,不需额外安装。
3、esmini使用方法
进入【esmini-demo_win】文件夹,可以直接使用内置的案例。如下:
双击任何.bat文件,都能打开一个窗口,进行某个场景的播放。(这个播放并不是平面的,而是3D模型,可以通过鼠标键盘控制旋转和缩放等。)
其实仔细看下bat文件的内容,就知道它的工作原理了。以【run_cut-in.bat】为例,它内部其实就一句代码:
"../../bin/esmini" --window 60 60 1024 576 --osc ../../resources/xosc/cut-in.xosc
它其实就是调用了bin文件夹下面的esmini.exe程序,打开一个设定尺寸大小的窗口,播放某个指定路径的场景文件。
有没有很简单?
知道了这个原理,我们就可以自己想办法运行我们需要运行的场景了。
例如用python脚本运行某个场景:
# 指定场景文件的路径
file_path = "D:/esmini/test_xosc/trajectory_example.xosc"
# 指定esmini程序的路径
esmini_path = "D:/esmini/esmini-demo_win/esmini-demo/bin/esmini"
# 指定运行的指令
cmd = esmini_path + str(" --window 60 60 1024 576 --osc ) + file_path ")
# 运行指令
os.system(cmd)
上述esmini工程还只是个demo,完整的代码,需要将另一个文件解压后,替换掉demo里的对应内容,具体操作,参考官方说明文档。
4、esmini其他功能
esmini不仅可以播放OpenSCENARIO文件,还可以重播已经仿真完成的文件,也即【replayer】功能。
还可以以3D视图来查看OpenDRIVE文件,验证我们创建的xodr文件的逻辑是否正确,也即【odrviewer】功能。
还有以2D方式查看OpenDRIVE文件的功能【odrplot】。
还有数据可视化的功能【plot_dat】。
esmini还有很多值得探索的,它是一个非常优秀的开源项目,很适合用来做参数化建模,很适合和咱们自己的业务进行融合。诸君如果感兴趣,欢迎自行探索,也欢迎前来找李慢慢交流,共同进步。
瑞斯拜。