手把手教你搭建OpenDRIVE道路模型(上)

news/2024/11/13 21:33:45/文章来源:https://www.cnblogs.com/hirain123/p/18540253

       OpenDRIVE作为一种高度专业化的道路建模标准格式,采用XML数据语言构建,其核心优势在于能够精确且详尽地刻画道路网络的几何特征,包括但不限于车道宽度、曲率、坡度以及道路交叉口的复杂布局。它不仅涵盖了基础的道路元素,还深入到了交通基础设施的细节层面,如交通标志的位置与类型、交通信号灯的相位与时序、道路表面的材质与摩擦系数等,为自动驾驶算法和高级驾驶辅助系统(ADAS)提供了全面且精确的环境感知基础。

       此外,OpenDRIVE支持灵活的道路网络拓扑结构定义,能够处理环路、分支、合并等多种复杂道路形态,并通过层次化的节点和链接设计,有效管理大规模道路数据的组织与访问。这种结构化的建模方式简化了自动驾驶系统对复杂交通场景的理解与应对,提升了系统的安全性、可靠性与适应性。

       在自动驾驶技术的研发与验证阶段,OpenDRIVE格式的数据被广泛应用于仿真测试平台的搭建,帮助开发者在虚拟环境中对算法进行高效迭代与优化,从而加速自动驾驶技术的商业化进程,推动汽车行业向更加智能化、自主化的未来发展。

       经纬恒润动力学仿真软件ModelBase遵循国际道路标准OpenDRIVE标准,开发内嵌了道路编辑器,可用于对仿真测试过程中的车辆行驶工况进行搭建。从搭建的形式上,软件支持通过导入OpenDRIVE格式文件来自动生成道路,然后可利用道路编辑器在此基础上进行编辑修改,或是从零开始进行道路模型的创建。当然,编辑后的道路模型也可以OpenDRIVE格式对外导出使用。

       下面我们来一起看一下道路编辑器的功能和操作使用方法,道路编辑器的操作界面如图1所示。

图1 道路编辑器操作界面

绘制工具栏 

       通过鼠标左键单击可实现对工具栏中不同功能按钮间的切换,这些功能包括以下多种选择。

  • 选择

       用于对编辑区域内的Road、Junction、Signal和Object等进行选中,然后用于在右侧的参数配置界面对这些元素进行详细的特征编辑,或是进行复制粘贴、删除等操作。

  • 移动旋转

       在选中编辑区域内的Road、Signal和Object等元素,可通过拖拽形式对其位置进行移动,或结合右侧的路网参数配置窗口以参数输入形式对元素的位置和角度进行调整。

  • 局部放大

       用于在编辑区域内对添加后的元素进行放大显示。

  • 创建直路

       用于实现在编辑区域内进行直路的创建。在具体操作时,用鼠标左键在编辑区域内单击点下第一个点作为直路的起点,移动鼠标,此时在第一个点和鼠标移动点之间会出现一条黑色直虚线(直路中心线位置预览),当再次单击点下第二个点作为直路的终点后,一条直路便绘制完成了。

  • 创建圆弧路

       用于实现在编辑区域内进行圆弧路的创建。在具体操作时,用鼠标左键在编辑区域内单击点下第一个点作为圆弧路的起点,移动鼠标,此时在第一个点和鼠标移动点之间会出现一条黑色直虚线(圆弧路起点位置切线方向预览),当确定好切线角度并再次点击鼠标左键后,在第一个点和鼠标位置之间将会出现一条黑色圆弧形虚线(圆弧路中心线位置预览),当单击点下第三个点作为圆弧路的终点后,一条圆弧路便绘制完成了。

  • 创建样条路

       用于实现在编辑区域内进行任意形状样条路的创建。在具体操作时,用鼠标左键在编辑区域内单击点下第一个点作为样条路的起点,移动鼠标,此时在第一个点和鼠标移动点之间会出现一条黑色直线(该段样条路中心线位置预览),然后可再次单击点下第二个点作为道路的拐点位置,此时可继续移动鼠标,第二点和鼠标移动点之间同样会出现一条黑色直线。可依此重复操作,使样条路不断被延长,当想结束绘制时,单击鼠标右键即可退出编辑并得到一条样条路。

  • 创建路口

       用于进行交通路口的创建。在具体操作时,用鼠标左键在编辑区域内待添加路口附近单击点下第一个点,然后移动鼠标,在第一个点和鼠标移动点之间出现一个黑色矩形框,令矩形框囊括路口涉及路段后,可再次单击点下第二个点来确定矩形框的大小,随后可基于选择按钮对路口中道路的车道按实际需求进行连接。

  • 自定义编辑道路配置

        » 添加直路:用于对已创建好的直路/圆弧路/样条路以直路的形式进行延长

        » 添加圆弧路:用于对已创建好的直路/圆弧路/样条路以圆弧路的形式进行延长

        » 添加样条路:用于对已创建好的直路/圆弧路/样条路以样条路的形式进行延长

        » 合并道路:用于对两条不同道路路段进行前后连接合并

        » 切割道路:功能与合并道路相反,用于将道路分割成多个路段

路网参数配置 

       在基于工具栏完成道路形状样式的绘制后,可通过“选择”按钮选中编辑区域内的Road、Signal和Object等元素,在界面右侧的路网参数配置窗口对更加详细的特征参数进行具体查看和编辑,包括以下几点。

  • 轨迹

       用于不同样式道路的中心轨迹进行查看或编辑,其中包括:

        » 直路:可查看和修改道路起点的X、Y坐标,以及道路的航向角和长度

        » 圆弧路:可查看和修改道路起点的X、Y坐标和切线方向的航向角,以及圆弧路的长度和转弯半径

        » 样条路:可查看道路起点的X、Y坐标和切线方向的航向角,以及道路长度和形状拟合多项式系数

  • 车道

       用于对道路进行车道颗粒度的特征编辑,可编辑参数包括车道的类型、宽度、高度、最大行驶速度和附着系数,以及车道线样式等。

  • 高程

       可结合偏移量对道路中选定路段的高程值进行设置,进而实现对道路坡度的编辑。

  • 超高

       结合偏移量对道路中选定路段的侧倾角进行设置。

  • 类型

       可用于对道路的类型参数(如最大车速)进行设置。

  • 中心偏移

       可结合偏移量对道路中选定路段的中心线偏移量进行设置。

  • 前驱后继

       用于对选定道路的前驱和后继道路类型、ID进行查看。

  • 地形

       用于对道路两侧进行平原、高山、森林、山区、耕地和建筑等地形环境的添加,并可对添加区域范围进行编辑。

       以上是使用ModelBase搭建OpenDRIVE道路的操作说明,如何进一步丰富实现静态场景,敬请关注《手把手教你搭建OpenDRIVE道路模型(下)》

       ModelBase是经纬恒润自主研发的综合驾驶测试仿真软件,具备车辆动力学模型及智能驾驶场景仿真能力,可用于乘用车、商用车的整车电控系统、ADAS系统的设计、测试和验证。可以覆盖电控系统的整个开发周期,包括早期的算法仿真测试(MIL/SIL),控制器的硬件在环测试(HIL),半实物台架测试(如电机台架、动力系统台架、整车台架等),以及车辆在环测试(VIL)。

了解更多

       ModelBase软件可免费申请试用,请致电 010-64840808转6116或发邮件至market_dept@hirain.com(联系时请说明来自博客园)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/831892.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot项目引入Elasticsearch时启动失败

1、前情提要: https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/installation.html 以上是Elasticsearch对接Java的官方文档(pom依赖部分)我本地Windows安装的Elasticsearch也是8.15.3版本 2、启动报错 *************************** APPLICA…

四款超实用的免费报表工具推荐!轻松选择适合你的数据神器

现如今,报表工具逐渐成为企业数据分析和决策的重要一环。本文将为大家介绍四款免费报表工具,通过这些工具,用户可以轻松地将原始数据转换为直观易懂的报表,帮助决策者更快地获取信息和做出判断。无论是寻求简单易用、实时更新,还是需要强大的数据分析能力的用户,都能在这…

联训题单 / 集训杂题纪要

UPD: 新增了杂题选改栏 总览题单 进度 备注数据结构1 4/24 数据结构可爱捏 >_<搜索 模拟 All Clear/10 搜索可爱捏 >_<数学1 0/11 数学不可爱捏 `-字符串 6/13 哈希可爱捏 >_<杂题选改 7 杂题专题没了,杂题倒是有不少数据结构 1 STEP 读假题了,读成下面这…

Python 提取PowerPoint文档中的图片

如果你需要在多个PowerPoint演示文稿中使用相同的图片,直接从原始PPT中提取并保存图片可以避免重复寻找和下载。此外,将PPT中的重要图片提取出来可以将其作为备份,以防原文件损坏或丢失。本文将通过以下两个示例介绍如何使用Python提取PPT文档中的图片。Python 提取指定幻灯…

高级语言程序设计课程第七次个人作业

班级:https://edu.cnblogs.com/campus/fzu/2024C 作业要求:https://edu.cnblogs.com/campus/fzu/2024C/homework/13304 学号:102400121 姓名:林永庆 12 从左到右,从上到下,从右到左,从下到上345678总结:菜就多练 反思:菜就多练

解线性方程组迭代法

解线性方程组迭代法 在数值分析中,迭代法是解决大规模线性方程组的重要工具。迭代法可以有效地减少计算复杂度,使得求解效率更高。本文将从前置知识开始,介绍向量和矩阵的范数,再深入探讨求解线性方程组的 Jacobi 和 Gauss-Seidel 迭代法。 一、前置知识:向量和矩阵的范数…

Linux kernel 堆溢出利用方法(二)

本文我们通过我们的老朋友heap_bof来讲解Linux kernel中off-by-null的利用手法。在通过讲解另一道相对来说比较困难的kernel off-by-null + docker escape来深入了解这种漏洞的利用手法。前言 本文我们通过我们的老朋友heap_bof来讲解Linux kernel中off-by-null的利用手法。在通…

wpf项目使用winform控件

环境:Win10、VS2017 一、新建WPF项目 2. WPF项目添加System.Windows.Forms和WindowsFormsIntegration引用 3. 编写WPF窗体代码 3.1. 头部添加引用1 xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" 2 xmlns:wfi ="clr-namespac…

Spring带泛型的ApplicationEvent无法监听问题分析(转载)

1 背景 在开发过程中,经常遇到发送事件来通知其他模块进行相应的业务处理;笔者实用的是spring自带的ApplicationEventPublisher和EventListener进行事件的发收; 但是开发时遇到一个问题: 如果事件很多,但是事件模式都差不多,就需要定义很多事件类来分别表示各种事件,例如…

PG 修改表结构提示有试图依赖的处理方法

ALTER TABLE victim ALTER COLUMN victim_belong_url TYPE varchar(1000) USING victim_belong_url::varchar(1000); 修改字段长度 通过修改 pg_attribute 基表的方式来绕开这个限制#通过表名查出attrelid SELECT relname, attname,attnum,attrelid,attname FROM pg_class c,pg…

OMV安装文件管理器filebrowser和照片管理photoprism插件时Pull不了镜像的解决办法

OMV安装文件管理器filebrowser和照片管理photoprism插件安装后不能启动服务或者PULL不了镜像卡着不动都是因为现在国内pull不了镜像的原因 这里有个迷惑的人的地方是很多朋友认为是用docker来pull的镜像,于是增加了docker国内加速源后发现OMV还是拉取不了镜像。解决方法如下:…

NOIP2024加赛4

NOIP2024加赛4\(T1\) luogu P11267 【MX-S5-T1】王国边缘 \(85pts\)预处理前缀中最后一个 \(1\) 出现的位置然后就可以倍增跳了。点击查看代码 const ll p=1000000007; int nxt[200010][62],f[200010][62],last[200010]; char t[200010]; ll divide(ll s,ll k) {ll ans=0;for(l…