码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 路网编辑器技术预研


    路网编辑器技术预研

    文章目录

    • 路网编辑器技术预研
      • 1. 前言
      • 2. 商业平台
        • 2.1 Apollo[[1]](#1)
        • 2.2 51Sim-One[[2]](#2)
      • 3. GitHub开源平台
        • 3.1 libOpenDRIVE[[3]](#3)
        • 3.2 OpenRoadEd[[4]](#4)
        • 3.3 PCG-OpenDRIVE[[5]](#5)
        • 3.4 OpenDriveOnlineEditor[[6]](#6)
        • 3.5 CommonRoad Scenario Designer[[7]](#7)
        • 3.6 opendrivejs[[8]](#8)
      • 参考链接

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    C++代码编译WebAssembly主要步骤:

    1. 安装CMake(编译构建工具):直接下载免安装压缩包,配置环境变量即可,下载链接;
    2. 安装MinGW(编译器):可参考链接Windows 中使用的 GCC 编译器,注意配置环境变量;
    3. 安装EMSDK(将C++代码编译成WebAssembly字节码的工具链):可参考链接Emscripten简介及初体验;
    4. 双击emsdk目录下的emcmdprompt.bat,切到需要构建编译的目录下./build,执行命令emcmake cmake .. -G "MinGW Makefiles";
    5. 执行命令emmake make;
    6. 执行命令cp ModuleOpenDrive.* ../Viewer
    7. 通过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]

    opendrivejs is a javascript based parser to visualize .xodr file 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

    [6] OpenDrive Online Editor

    [7] CommonRoad Scenario Designer

    [8] opendrivejs

  • 相关阅读:
    My Forty-Second Page - 二叉搜索树的最近公共祖先 - By Nicolas
    JS高级:事件循环-队列-一些相关面试题
    Redis 要凉了?
    mysql的分组group by
    Day35力扣打卡
    LeetCode中等题之递增子序列
    中国传统美食网页HTML代码 学生网页课程设计期末作业下载 美食大学生网页设计制作成品下载 DW餐饮美食网页作业代码下载
    02-《人月神话》霍金敬酒和虫族战争-中译本纠错及联想
    网络安全工具AntSword蚁剑内存马使用
    Leetcode 11. 盛最多水的容器
  • 原文地址:https://blog.csdn.net/wml00000/article/details/126132207
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号