广东的网站建设,wordpress中的template,网站建设放在什么科目,江苏首天建设集团网站本文介绍一款同时支持协同驾驶开发与测试、自动驾驶全栈开发 和 CARLA-SUMO联合仿真的开源框架 OpenCDA#xff0c;论文已收录于 ITSC 2021。主要feature有#xff1a;
支持CARLA-SUMO联合仿真#xff0c;CARLA端主管环境渲染、传感器模拟、车辆动力#xff0c;Sumo端主管… 本文介绍一款同时支持协同驾驶开发与测试、自动驾驶全栈开发 和 CARLA-SUMO联合仿真的开源框架 OpenCDA论文已收录于 ITSC 2021。主要feature有
支持CARLA-SUMO联合仿真CARLA端主管环境渲染、传感器模拟、车辆动力Sumo端主管交通仿真。同时支持协同驾驶/单车智能的开发。内置简单易用的V2X模拟可以灵活模拟各种噪声与信号延迟。OpenCDA自带默认的感知、定位、规划、控制、协同变道与车队行驶的算法可以说搞懂了OpenCDA就等于搞懂了如何在CARLA里做完整的自动驾驶全栈开发。自带10个测试场景可快速测试你各个模块算法的鲁棒性。在特定地图下自定义场景快捷简单只需给定一个yaml文件10行代码即可搞定框架高度模块化可以轻易将任一模块里的算法切换为用户的算法而不会影响其他的模块运行。提供默认的评价指标每次仿真运行后自动评价各模块表现与整车表现。安装简便文档记录详细有完整的开发者手册。
论文链接为https://arxiv.org/pdf/2107.06260.pdf
项目链接为https://github.com/ucla-mobility/OpenCDA
文档链接为https://opencda-documentation.readthedocs.io/en/latest/ 文章目录1. Overview of OpenCDA2. Experiment Setups and Evaluation Measurement2.1 Platooning Protocol Design2.2 Platooning Scenario Testing Design2.3 Evaluation Measurements3. Result Analysis3.1 Single Lane Platooning3.2 Cooperative Merge and Joint Platoon1. Overview of OpenCDA
下面对 OpenCDA 进行介绍如下图所示OpenCDA由三部分组成simulation tools、cooperative driving automation system、scenario manager。
仿真工具中环境仿真使用CARLA仿真交通仿真使用SUMO仿真此外还使用了其它仿真工具例如无线通信仿真工具ns-3等。协同驾驶系统中传感器模块收集原始的传感器信息信息传送到感知层然后传递到规划层最后通过执行层发送执行命令CARLA 执行器执行命令。场景管理中包含场景配置文件场景初始化特定事件触发器评估功能。场景中包含静态元素和动态元素静态元素由CARLA确定动态元素由配置文件确定。当任务结束时会对整个驾驶过程进行评估包括交通层面评估以及单车层面评估。 Software Class Design and Logic Flow
为了更好地说明OpenCDA是如何工作的这里以一个应用例子 vehicle platooning 来说明首先介绍类组件如下图所示。
使用分层类管理器来控制仿真最基础的类为 VehicleManager包含着全栈协同驾驶算法。类成员 PerceptionManager 和 LocalizationManager 对自车进行感知和定位。BehaviorAgent 规划驾驶行为同时其 LocalPlanner 通过三次样条插值方法产生轨迹 ytα0α1xtα2xt2α3xt3(1)y_t \alpha_0\alpha_1x_t\alpha_2x_t^2\alpha_3x_t^3 \tag{1}ytα0α1xtα2xt2α3xt3(1) at{min(vtarget−vtΔt,a1),if vtarget≥vtmax(vtarget−vtΔt,a2),otherwise(2)a_t \begin {cases} \min(\frac{v_{target}-v_t}{\Delta t},a^1), \text {if $v_{target} \geq v_t$} \\ \max(\frac{v_{target}-v_t}{\Delta t},a^2), \text {otherwise} \end{cases} \tag{2} at{min(Δtvtarget−vt,a1),max(Δtvtarget−vt,a2),if vtarget≥vtotherwise(2) xtvt−1Δtat−1Δt22(3)x_t v_{t-1}\Delta t \frac{a_{t-1}\Delta t^2}{2} \tag{3}xtvt−1Δt2at−1Δt2(3) vtvt−1at−1Δt(4)v_t v_{t-1} a_{t-1}\Delta t \tag{4}vtvt−1at−1Δt(4)
其中xt,ytx_t,y_txt,yt是汽车在ttt时刻的位置α0,α1,α2,α3\alpha_0,\alpha_1,\alpha_2,\alpha_3α0,α1,α2,α3是三次多项式系数ata_tat是加速度其中a1,a2a^1,a^2a1,a2是与舒适性相关的加速度和减速度。Δt\Delta tΔt是时间精度vtarget,vtv_{target},v_tvtarget,vt是最终想要的目标速度和ttt时刻的速度。
产生后的轨迹会传送到 ControlManager 产生转向制动加速等控制命令。V2XManager 会发送或接收由其余CAVs生成的数据包用于协同驾驶应用。 仿真工作时的逻辑流如下图所示。场景测试时
通过yaml文件配置CARLA server、交通情况和每一个汽车参数传感器参数、检测模型、目标速度等。接下来每辆汽车通过V2XManager信息共享如果激活了协同应用CoopPerceptionManager和CoopLocalizationManager会使用所有的信息进行目标检测和定位反之汽车会选择默认的PerceptionManager和LocalizationManager。信息传送到下流模块进行规划。同样地协同应用激活的话会选择协同策略做出决策反之BehaviorAgent和TrajectoryPlanner会规划行为并生成平顺的轨迹。最终ControlManager输出控制命令CARLA server将这些命令应用在对应汽车上更新信息进行下一步仿真。仿真终止时内置评估工具箱对驾驶性能进行评估包括感知、定位、规划、控制、安全性等。 2. Experiment Setups and Evaluation Measurement
为了验证OpenCDA的实际效果如何作者以汽车编队vehicle platooning为例来说明整个仿真测试时间步长为0.05s0.05s0.05s。
2.1 Platooning Protocol Design
首先是编队协议设计在编队应用中所有车辆由PlatoonManager来管理协议如下图所示。整体上整个驾驶任务可以分成许多子任务编队成员根据编队状态的不同也有着不同的驾驶模式。
编队应用被激活后编队中的领航车leading vehicle会通过V2XManager听取外部车辆的入队请求。如果没有收到请求整个队列会保持稳定行驶而领航车会保持领航模式。与此同时如果协同感知应用被激活编队每一个成员会共享彼此间的感知数据如图像3D点云并且会通过PerceptionManager进行感知处理领航车会得到更好的感知结果。
没有车辆申请入队的话所有跟随车following vehicle会平缓的调整车速使队列的相邻汽车保持一个恒定时间间隔为了完成这个任务编队成员会通过V2XManager得到前车的轨迹方法如下 posjtposj−1t−Lj−1posjt−Δt×gap/Δt1gap/Δt(5)pos^t_j \frac{pos^t_{j-1}-L_{j-1}pos^{t-\Delta t}_j\times gap/ \Delta t}{1gap/ \Delta t} \tag{5}posjt1gap/Δtposj−1t−Lj−1posjt−Δt×gap/Δt(5)
vjt∣∣posjt−posjt−Δt∣∣Δt(6)v^t_j \frac{||pos^t_{j}-pos^{t-\Delta t}_{j}||}{ \Delta t} \tag{6}vjtΔt∣∣posjt−posjt−Δt∣∣(6)
其中posjt,posj−1tpos^t_j,pos^t_{j-1}posjt,posj−1t是ttt时刻车辆编号为jjj的位置和其前车位置。Lj−1L_{j-1}Lj−1是前车长度Δt\Delta tΔt是时间精度gapgapgap是想要的时间间隔。vjtv^t_jvjt是ttt时刻汽车速度。
如果队列收到了一个入队请求领航车会根据申请车的位置规划路径来判断是否可以进行入队操作。如果入队申请被拒的话车辆会继续寻找并保持单车驾驶模式否则PlatooningManager会选择最合适的入队位置如果需要的话队列成员会调整自身速度入队车辆会移动到入队位置完成入队操作。 2.2 Platooning Scenario Testing Design
下图是编队联合仿真测试场景片段整个测试都使用了感知和定位算法感知算法为yolov5定位算法为GNSS/IMU融合算法。 如下图所示这里有两个测试场景
单车道编队5辆汽车在同一车道行驶为了测试队列稳定性当领航车突然改变车速时观察跟随车会不会继续保持想要的时间间隔。协同编队当其余车道上车辆申请入队时领航车决定最佳的入队位置这里使用了两种算法来选择最佳入队位置一种是heuristic-based另一种是Genetic Fuzzy System。
Single lane platooningCooperative Merge and join the platoonReal-world human-driven vehicle speed profile2.3 Evaluation Measurements
这里是一些评价指标
安全性自动驾驶中最重要的评价指标使用了碰撞时间(TTC)平均碰撞时间(attc)危险频率碰撞时间小于警告时间平均碰撞时间计算方法为 ATTC∑t1Nxit−xi−1t−lvit−vi−1tN(7)ATTC \frac{{\sum^{N}_{t1}}\frac{x^t_i-x^t_{i-1}-l}{v^t_i-v^t_{i-1}}}{N} \tag{7}ATTCN∑t1Nvit−vi−1txit−xi−1t−l(7) 其中xitx^t_ixit是ttt时刻车辆位置xi−1tx^t_{i-1}xi−1t是前车位置lll是车辆长度NNN是vitvi−1tv^t_iv^t_{i-1}vitvi−1t的仿真时间步数。稳定性使用时间间隔和加速度来表示效率使用完成入队时间和加速度标准差来表示。 3. Result Analysis
3.1 Single Lane Platooning
单车道入队测试结果为 3.2 Cooperative Merge and Joint Platoon
协同入队测试结果为