当前位置:网站首页>路网编辑器技术预研
路网编辑器技术预研
2022-08-04 04:28:00 【giao00000】
路网编辑器技术预研
文章目录
1. 前言
本文基于【自动驾驶仿真平台概述】进行延申,记录路网编辑器预研工作。大致分为两个方向:
- 借鉴商业平台,如Apollo、51Sim-One等;
- GitHub开源平台
2. 商业平台
2.1 Apollo[1]
Apollo Studio提供场景编辑功能,未发现有路网编辑功能。
Apollo路网可视化通过网络请求路网切片实现。
2.2 51Sim-One[2]
51Sim-One提供场景编辑功能,文档中指明有独立自研场景构建软件World Editor(用于构建路网,在目前开放的平台中未找到该功能)。
51Sim-One路网可视化采用Leaflet(Element中可以发现Leaflet相关标签),基于自研封装的JavaScript代码解析OpenDrive路网数据(可以在源代码中发现部分痕迹)。
3. GitHub开源平台
3.1 libOpenDRIVE[3]
基于C++编写的轻量库,可以解析OpenDRIVE文件并生成三维模型。
可以将C++代码编译成.wasm(WebAssembly)文件(可在浏览器端运行的二进制机器码),嵌入到前端应用。
首先通过CMake生成MakeFile,然后通过VS打开解决方案,进行编译。
$ ./build/Debug/test-xodr Viewer/data.xodr
road: 500, length: 16.52
road: 501, length: 4.00
road: 502, length: 4.00
road: 503, length: 16.52
road: 504, length: 20.00
road: 505, length: 20.00
road: 506, length: 20.00
road: 507, length: 20.00
road: 508, length: 541.50
road: 509, length: 541.50
road: 510, length: 16.12
road: 511, length: 16.12
road: 512, length: 16.12
road: 513, length: 16.12
road: 514, length: 4.00
road: 515, length: 16.52
road: 516, length: 4.00
road: 517, length: 16.52
Finished, got 22108 lane points, 20572 roadmark points
C++代码编译WebAssembly主要步骤:
- 安装CMake(编译构建工具):直接下载免安装压缩包,配置环境变量即可,下载链接;
- 安装MinGW(编译器):可参考链接Windows 中使用的 GCC 编译器,注意配置环境变量;
- 安装EMSDK(将C++代码编译成WebAssembly字节码的工具链):可参考链接Emscripten简介及初体验;
- 双击emsdk目录下的
emcmdprompt.bat,切到需要构建编译的目录下./build,执行命令emcmake cmake .. -G "MinGW Makefiles"; - 执行命令
emmake make; - 执行命令
cp ModuleOpenDrive.* ../Viewer - 通过LiveServer运行Viewer目录下的index.html
3.2 OpenRoadEd[4]
由C++编写的可运行在Ubuntu和Windows上的桌面端软件,支持路网编辑和OpenSceneGraph descriptions。
3.3 PCG-OpenDRIVE[5]
JavaScript编写,能够解析OpenDrive文件,并通过Three.js可视化。
源码下载后可直接运行。
3.4 OpenDriveOnlineEditor[6]
基于Elm语言开发,支持解析、查看OpenDrive文件。
3.5 CommonRoad Scenario Designer[7]
An Open-Source Toolbox for Map Conversion and Scenario Creation for Autonomous Vehicles
用于路网地图转换和场景构建的开源工具箱,基于Python开发,代码库地址commonroad-scenario-designer。
Scenario Designer can convert maps from the Lanelet/Lanelet2, OpenDRIVE, OpenStreetMap (OSM), and SUMO formats to the CommonRoad format.
可以将 Lanelet/Lanelet2, OpenDRIVE, OpenStreetMap (OSM)以及SUMO格式的静态路网地图转换为CommonRoad格式。
Additionally, we provide conversions from the CommonRoad map format to the SUMO and Lanelet format.
另外,支持将用户界面编辑后的CommonRoad格式地图转换到SUMO、Lanelet格式。
3.6 opendrivejs[8]
opendrivejsis a javascript based parser to visualize.xodrfile into browser.
JavaScript编写,可以解析并在Three.js环境下可视化OpenDrive文件。基于React构建。
参考链接
[1] Apollo场景编辑
[2] 51Sim-One概述
[3] Small, lightweight C++ library for handling OpenDRIVE files
[4] OpenRoadEd
[5] PCG-OpenDRIVE
[7] CommonRoad Scenario Designer
[8] opendrivejs
边栏推荐
猜你喜欢

用户与用户互发红包/支付宝C2C/B2C现金红包php源码示例/H5方式/兼容苹果/安卓

SQL interview Questions

深度学习之 10 卷积神经网络3

【MD5】采用MD5+盐的加密方式完成注册用户和登录账号

Implementing a server-side message active push solution based on SSE

文件内容的操作

将xml标签转换为txt(voc格式转换为yolo方便进行训练)

Postgresql source code (66) insert on conflict grammar introduction and kernel execution process analysis

小程序 + 电商,玩转新零售

Learn iframes and use them to solve cross-domain problems
随机推荐
2022年软件测试——精选金融银行面试真题
【机器学习】21天挑战赛学习笔记(一)
将xml标签转换为txt(voc格式转换为yolo方便进行训练)
技术解析|如何将 Pulsar 数据快速且无缝接入 Apache Doris
使用serve搭建本地服务器
"Introduction to nlp + actual combat: Chapter 8: Using Pytorch to realize handwritten digit recognition"
烧录场景下开发如何进行源代码保密工作
帮助企业实现数字化转型成功的八项指导原则
系统设计.如何设计一个秒杀系统(完整版 转)
机器学习模型的“可解释性”
文件内容的操作
深度学习之 10 卷积神经网络3
Jenkins 导出、导入 Job Pipeline
【21天学习挑战赛】图像的旋转问题(二维数组)
Simple operation of the file system
图像处理之Bolb分析(一)
Cache pool of unity framework
SQL query String field less than 10 how to check
go module的介绍与应用
小程序 + 电商,玩转新零售