首页/文章/ 详情

自动驾驶仿真|esmini中如何使用传感器

1年前浏览528

大家好,我是李慢慢。

上一篇关于esmini的文章《自动驾驶仿真|如何基于esmini做规控SIL测试?》中,描述了仿真中的闭环数据,即仿真中,esmini怎么与外部进行通信。文末也留了些探索项,其中一个就是传感器怎么使用。

为什么要研究传感器的使用?

原文中,我们拿到场景中的目标信息,用的是OSI接口直接去拿场景中的各种信号。但我总觉得这种方式有些粗暴,实车驾驶中难道不应该是靠传感器去获得外界的信号嘛。于是又从官方文档中去找传感器的使用方法(更多的还要感激孙工的点拨),然后就找到了这么一段代码:

大致理解了一下代码,就是利用了esmini的lib库里的一些接口,去创建传感器(貌似是只支持‘理想传感器’),然后把传感器探测到的目标数据打印了出来。这段代码也打开了我的新思路,就是它编译后,运行它直接就能:加载openSCENARIO的场景-->创建传感器模型-->运行esmini进行仿真-->获得传感器探测到的数据-->关闭esmini仿真。

还是一贯的轻量级作风,瑞斯拜。


想要让这段代码跑起来,还不能用传统的编译方式(g++/gcc),倒腾了一阵子,最后参照官方的某个build教程才成功:

我这里跑起来后的效果如下(运行起来后通过键盘上的“r”键,可以切换是否显示FOV框):



顺便贴上传感器的接口的使用方法。

1、这个传感器如何配置参数:


















/**Create an ideal object sensor and attach to specified vehicle@param object_id Handle to the object to which the sensor should be attached@param x Position x coordinate of the sensor in vehicle local coordinates@param y Position y coordinate of the sensor in vehicle local coordinates@param z Position z coordinate of the sensor in vehicle local coordinates@param h heading of the sensor in vehicle local coordinates@param fovH Horizontal field of view, in degrees@param rangeNear Near value of the sensor depth range@param rangeFar Far value of the sensor depth range@param maxObj Maximum number of objects theat the sensor can track@return Sensor ID (Global index of sensor), -1 if unsucessful*/SE_DLL_API int SE_AddObjectSensor(int object_id,     float x, float y, float z,    float h, float rangeNear, float rangeFar,    float fovH, int maxObj);


2、这个传感器能探测到哪些数据:


最后,简单总结下:

1、esmini自带的理想传感器,无法实现遮挡效果。

2、esmini自带的理想传感器,输出坐标实测为世界坐标系。个人猜测它的原理就是用FOV等参数对场景中的目标物做了个过滤。

3、对完美传感器的效果不满的话,或者需要开发其它种类的传感器,需要自己开发。

本文完。


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