首页/文章/ 详情

Carla 0.9.15发布啦,来看看有哪些新功能吧

8月前浏览616
前言        

         

       

11月10日,CARLA正式发布0.9.15版本!带来数字孪生程序化、大地图上新、素材一键导入等诸多新特性。这些升级显著的加速了CARLA的内容创作流程。本文由深信科创CTO、CARLA核心开发者潘余曦博士,深信科创工程师、CARLA Leaderboard核心开发者严宋扬撰写,为大家带来CARLA 0.9.15最新特性的技术解读。同时,深信科创也在自动驾驶仿真及数据闭环工具链SYNKROTRON® OASIS中集成CARLA 0.9.15版本,期待与CARLA开源社区一起将自动驾驶仿真能力推向新的高度。


         

CARLA 0.9.15的主要亮点


           


①   加入全新地图Town 13与Town 15:

  •                    
    Town 13是一张10x10平方公里的大型地图,与Town 12规格一致,但也存在诸多细节差异。Town 13和Town 12互为补充,可以通过训练验证组合帮助用户发现算法过拟合问题;                        
  •                    
    Town 15是一张标准大小地图,复刻了一个大学校园,拥有丰富的迷你环岛和交通限制措施;                         
② 添加新的重型货车模型:新增了一款驾驶室前置式的重型货车模型,增强了CARLA车辆库的多样性;               
③ 程序化三维地图与建筑生成工具:              
  • 数字孪生工具能够基于OpenStreetMap真实路网数据,程序化生成三维地图,其中包含了道路、建筑和植被;
  • 程序化建筑生成工具可以通过使用不同的建筑模组与调节参数,在建筑风格上创造出无限的变化;
④  CARLA资产目录:增加了用户浏览带有图片信息的模型详情,帮助用户轻松选择所需的仿真资产;              
⑤ 与英伟达Omniverse集成: 支持直接导入英伟达Omniverse平台SimReady的内容,加速三维仿真环境的构建。              
             



         

一、加入全新地图Town 13与Town 15


Town 13:100平方公里的全新大地图

上个版本的CARLA引入了广受好评的Town 12大地图,相较于标准尺寸的地图,它为复杂的仿真场景提供了更广阔的舞台。这次CARLA 0.9.15版本带来了全新的100平方公里Town 13大地图,其拥有复杂的区域结构,从城市到乡村,从单行道到大型高速公路等仿真场景一应俱全。

值得注意的是,Town 13在道路结构、建筑风格和模型参数等方面与Town 12有所不同。Town 13和Town 12互为补充,可以共同构成训练-验证模型的二元组。开发者可以在一个Town中训练,在另一个Town中进行验证,形成检测自动驾驶技术栈中过拟合问题的有效方法。


Town 15:适用于校园、工业园区自动驾驶训练的新地图

Town 15是一张标准大小的地图,复刻了巴塞罗那自治大学 (Universitat Autònoma de Barcelona, UAB) 的道路结构和一些标志性建筑。此地图特别展现了包括众多环形交叉口、路边停车位和一些陡峭地形在内的道路特点。大学内的计算机视觉中心和人文科学图书馆等标志性建筑也在地图中有精致的建模。Town 15适用于校园及工业园区等低速环境下,对交通安全有极高要求的自动驾驶系统,进行训练与测试。


         


二、添加新的重型货车模型



CARLA 0.9.15版本的仿真车辆模型库中,新增了一款适用于物流运输场景的重型货物牵引车,新版本对此车辆提供了完整的支持。

       



         

三、程序化三维地图与建筑生成工具


地图的构建一直是仿真工程师关注的领域,这是一项耗时耗力、复杂繁琐的工作。在CARLA 0.9.15版本中, CARLA推出了两项新的实验性功能,专用于程序化地生成新地图和建筑。这些工具将有助于提高地图生成的速度,并为自定义CARLA地图添加更多的多样性,帮助仿真工程师高效快速地构建地图。

数字孪生工具

数字孪生工具可以利用OpenStreetMap数据,制作独特的CARLA地图。用户可以下载一个区域的OSM数据作为输入,然后通过工具界面浏览地图。选择一个感兴趣的区域后,该工具会提取道路网络,并使用真实的道路材质进行渲染,同时生成三维建筑和植被,填充道路间的空隙。这样生成的CARLA地图与现实中的路网高度相似。地图中的建筑是根据OSM中提取的建筑轮廓和高度数据构建的,确保数字孪生中的建筑与选定区域中的真实建筑在比例上相匹配。建筑物采用了 CARLA 资产库中的各种风格的模组进行装饰,以创造视觉上的多样性。        
       

程序化建筑生成工具

程序化建筑生成工具为CARLA用户提供了创建新建筑的能力,用户可以使用不同的建筑物模组和调节参数来控制建筑的特征。        

同时,可以向建筑物添加各种装饰,如窗花、门楣、窗台、水管、遮阳棚、百叶窗和天线等,以创造出不同程度的变化。        
       



         

四、CARLA资产目录


在CARLA 0.9.15版本中,CARLA提供了一个在线交互式目录,涵盖地图、车辆、行人和道具等主要资源。这个目录支持各种资源的可视化浏览,用户可以方便地在其中找到所需的资源,直接对应蓝图ID。此外,目录还提供了适用于Town 12和Town 13的在线导航工具,只需拖拽轻点,就可以在大型地图中轻松获取目标区域的坐标。



         

五、支持与英伟达Omniverse集成


英伟达的SimReady规范是为仿真场景量身打造的,旨在支持专门针对仿真目的的3D内容构建,简化在机器学习和自动驾驶领域的3D虚拟环境的制作流程。通过Omniverse Unreal Engine插件(已整合进CARLA),用户能够轻松快速地导入已配备完整车灯、车门和车轮的车辆等SimReady内容,以及随手可得的模型来丰富CARLA地图。CARLA与Omniverse的紧密结合大幅提升了构建3D仿真环境的效率,并为Omniverse生态系统中的众多应用开启了新的可能性。



         

六、其他修复和改进


  • 新的API:仅在需要加载的地图与当前地图不同的时候进行加载

  • 添加了空的Actor蓝图

  • 具有AI或在重放模式下的行人现在快了大约10倍。在撞到车辆之前,它们的碰撞已被禁用

  • 修复了FPixelReader::SavePixelsToDisk(PixelData, FilePath)函数由于像素数组未正确设置而导致崩溃的错误

  • 修复了导入脚本,如果目标文件夹中有许多其他TilesInfo.txt,可以全部使用它们

  • 修复了传感器以检查数据流是否准备就绪(竞争条件下)

  • 为carla.TrafficManager Python API函数添加了关键字参数

  • 通过传递ARGS=–no-unity来启用Surface non-unity构建模式;允许解除遮蔽和修复IWYU类型的错误

  • 修复了Directx纹理中的额外数据,因此在Windows上需要逐行复 制以删除图像上的额外字节

  • 修复了TrafficManager中的一个错误,避免行驶到结束车道的车辆在变道时表现异常

  • 由碰撞传感器检测到的碰撞不再在每帧生成多个事件



         

七、立即尝试新的CARLA


CARLA 0.9.15在素材内容创作方面取得了重大进展。无论您是自动驾驶领域的研究人员、开发者还是爱好者,CARLA都提供了一个更加高效、实用、易上手的测试、开发和创新平台。欢迎大家使用,携手深信科创与CARLA 0.9.15一起将您的自动驾驶项目推向新的高度,深信不疑,科创未来!

本文完。


来源:车路漫漫
ACT碰撞建筑python自动驾驶数字孪生物流控制渲染Unity
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-12-10
最近编辑:8月前
李慢慢
硕士 自动驾驶仿真工程师一枚
获赞 14粉丝 93文章 320课程 0
点赞
收藏
作者推荐

一文看懂CARLA中的车辆动力学

前言 本文详细介绍CARLA的动力学模型,以便开发者能更加得心应手地使用CARLA。 什么是车辆动力学?车辆动力学是研究车辆在不同驾驶条件下的运动和力学特性的学科。它涉及到汽车的运动、操作和控制,以及汽车所受到的各种力和力矩。在车辆动力学的研究中,需要考虑多种复杂的因素,如车辆的重量、重心位置、空气阻力、摩擦力、惯性等。这些因素会对车辆的运动产生影响,从而影响驾驶者的操控感受和车辆的安全性能。 车辆动力学主要研究以下几个方面: 车辆模型:通常会采用一些简化的车辆模型,如集中质量模型、弹簧-阻尼模型等,以便于分析车辆的动力学特性;牛顿运动定律:包括惯性定律、动量定律和能量定律等。这些定律描述了物体运动的基本规律,可以用来分析车辆的运动状态;车辆动力学特性:包括车辆的加速度、速度、角速度等运动参数,以及轮胎的力-滑移特性、发动机的扭矩-转速特性等。这些特性决定了车辆在不同条件下的运动表现;稳定性分析:稳定性是车辆动力学的一个重要问题,包括纵向稳定性、横向稳定性和垂向稳定性等。稳定性分析可以用来研究车辆在行驶过程中的平衡状态和失稳条件;操纵性分析:操纵性是评价车辆动力学性能的重要指标之一,包括转向性能、制动性能和加速性能等。操纵性能的好坏直接影响到驾驶者的操控感受和车辆的安全性能;空气动力学:如空气阻力、升力、侧向力和压力分布等。空气动力学对车辆的动力学性能和行驶稳定性有一定的影响;轮胎力学:轮胎是车辆与地面接触的唯一部分,其力学特性对车辆的动力学性能有很大的影响。轮胎力学包括轮胎的力-滑移特性、轮胎的侧向力和纵向力等;为了在仿真世界中实现车辆动力学,首先需要实现物理引擎;下面简要介绍一下CARLA底层采用的Unreal Engine(虚幻引擎,简称UE)的物理引擎。 UE的物理引擎目前业界主要有三大物理引擎,分别是PhysX、Havok、Bullet。 PhysX:由NVIDIA开发的实时物理模拟引擎,广泛用于游戏开发,提供高性能、精确和逼真的物理模拟功能。 Havok:一款可靠且广泛应用的物理引擎,提供出色的碰撞检测和物体模拟功能,被广泛应用于游戏和影视制作领域。 Bullet:开源的物理引擎,具有广泛的跨平台支持,并以其稳定性和高性能而闻名,被广泛应用于游戏和动画领域。 Unreal Engine(简称UE)原生默认支持PhysX物理引擎解决方案,这也是大部分项目常用的技术方案。与此同时,UE 从4.23版本之后,也推出了Unreal Chaos物理系统。对于大多数项目而言,Unreal PhysX基本能够满足需求,可以良好地支持常规场景查询和物理模拟。 Chaos的主要技术目标是实现大规模物理可破坏组件的使用。如果项目具有大量高级物理模拟和可破碎建筑,那么使用Chaos会带来更稳定和高效的性能。在一般场景查询方面,PhysX的性能优于Chaos,只有在处理高级大规模可破坏物体模拟时,Chaos才能展现其优势。 CARLA用于模拟车辆在各种复杂交通场景下的自动驾驶性能,较少涉及破碎效果的模拟。因此,对于CARLA来说,PhysX物理系统是个不错的选择(UE从V5开始,抛弃了PhysX,如果要使用UE5或为更长远做打算,也建议选用Chaos)。 UE 的车辆动力学CARLA当前版本(0.9.15)基于UE4.26,这个版本的UE同时支持PhysXVehicles和ChaosVehicles(前者被标记为deprecated),但基于上面的分析,CARLA中依旧选用了PhysXVehicles。我们来对比一下这两个插件的组成部分,可以看出二者功能是相似的: 可以在 UnrealEditor -> Edit -> Plugins 中搜索到PhysXVehicles插件。车轮车轮作为汽车基础部件,被定义在名为VehicleWheel的类中。车轮拥有多个参数,其中部分重要的参数如下: 车轮半径(ShapeRadius)车轮宽度(ShapeWidth)车轮质量(Mass)阻尼率(DampingRate):阻尼系数,用于衡量车轮在受到外部冲击时吸收冲击能量的能力。阻尼率的值越大,车轮的减震效果越好,车辆行驶更加平稳。转向角度(SteerAngle):车轮与车辆直行方向之间的夹角,以度数表示。轮胎摩擦力(TireConfig):轮胎的摩擦系数和摩擦角度。横向刚度值(LatStiffValue):轮胎在受到横向力时的刚度表现或者对该横向力的抵抗能力。高横向刚度值表示轮胎具有更好的操控性和稳定性。纵向刚度值(LongStiffValue):轮胎在受到纵向力时的刚度表现或者对该纵向力的抵抗能力。较高的纵向刚度值表示轮胎具有更好的加速和制动性能,并能更好地传递动力和提供牵引力。最大制动扭矩(MaxBrakeTorque):车轮能够承受的最大制动力矩,反映了车轮和制动系统的极限能力。制动扭矩越大,车辆在制动过程中的减速速度越快,制动距离越短。最大手刹制动扭矩(MaxHandBrakeTorque):车轮能够承受的最大手刹制动力矩,用于评估手刹系统的性能和可靠性。车轮位置(Location)和速度(Velocity)也是车轮参数的一部分,可以用于定位和测量车轮的状态。 车辆运动组件 汽车运动组件的核心在于UWheeledVehicleMovementComponent4W,它实现了四轮车辆的动态表现。其中包含的参数集不容忽视,包括但不限于以下几个:车辆引擎数据:涉及车辆引擎性能方面的各种参数,如扭矩曲线、最大转速、转动惯量等。车辆差速器数据:车辆前后轮及左右轮之间的扭矩分配比例。车辆变速器数据:车辆换挡及各种齿轮比率、换挡时间等参数。方向盘曲线:表示允许的最大转向角度与前向速度的关系曲线。随着车速的提高,允许的最大转向角度也相应减小。车辆引擎车辆引擎是汽车动力组件中不可或缺的一部分,下面是该部分的各项参数和功能。 扭矩曲线(TorqueCurve):用以描述引擎在给定转速下扭矩(Nm)的变化曲线。其对于揭示引擎的动力输出与转速之间的关系具有重要意义。最大转速(MaxRPM):该属性代表着引擎的最高转速,以每分钟转数(RPM)为单位进行度量。这个属性限制了引擎最高可以旋转的速率。转动惯量(MOI):用于描述引擎在旋转时的惯性,以千克米平方(Kgm^2)为单位。其值的高低对于引擎在不同转速下的稳定性和响应性具有决定性作用。阻尼率(DampingRate):阻尼率用于描述物体在振动过程中衰减的速率,对于控制引擎的振动特性具有至关重要的作用。阻尼率在不同转速下也有所不同,可分为全油门、零油门、离合器接合、离合器分离四种状态。峰值扭矩(PeakTorque):峰值扭矩是引擎动力输出的最高点,其位置取决于引擎的结构和设计。通过扭矩曲线找到峰值扭矩可用于测算引擎最大动力输出。变速器 变速器是车辆运动组件的一个部分,数据详细如下: bUseGearAutoBox:表示是否使用自动变速器。如果为true,则车辆将自动选择最适合当前行驶条件的传动档位;如果为false,则需要手动选择档位。GearSwitchTime:表示切换档位所需的时间(以秒为单位)。它定义了从一个挡位到另一个挡位的过渡时间。较短的过渡时间意味着换挡速度更快。GearAutoBoxLatency:表示自动变速器发起换挡所需的最小时间,以秒为单位。在车辆使用自动变速器时,该时间定义了自动变速器检测到需要换挡并实际发起换挡之间的延迟。FinalRatio:最终挡位比例,用于乘以传动挡位比例。它决定了最终挡位的效果。通过调整这个比例,可以改变车辆的加速性能和最高速度。ForwardGears:一个存储正向挡位比例的数组。它可以包含多达30个正向挡位。每个正向挡位比例定义了车辆在不同挡位下的传动比例,影响了车辆的速度和加速能力。ReverseGearRatio:表示倒挡的比例。它定义了车辆在倒挡时的传动比例,用于控制倒车速度。NeutralGearUpRatio:定义了引擎转速(engineRevs)相对于最大引擎转速(maxEngineRevs)的一个高值比例。当引擎转速达到这个比例时,车辆会递增挡位,正常情况下是从空挡转到第一挡。ClutchStrength:这个变量表示离合器的强度,以Kgm^2/s为单位。离合器用于控制发动机输出转矩到变速器的传递。离合器强度越大,传递给变速器的转矩越高,车辆的加速能力也就更强。 CARLA的车辆动力学CARLA车辆的基类是CarlaWheeledVehicle,它继承自PhysXVehicle组件的WheeledVehicle。生成车辆时,这个类的构造函数初始化了VehicleBounds和BaseMovementComponent,前者用于保存和获取车辆的长宽高,后者是继承于UE的MovementComponent的移动组件类。在这个类的BeginPlay函数中,设置了车门以及初始化了轮胎摩擦力。另外类中有一些设置(Setter)和获取(Getter)函数,包括车辆状态、控制信号、BoundingBox、物理(动力学)特性等。CARLA支持UE PhysX车辆动力学,也支持CarSim车辆动力学,默认为前者。VehicleControl是一个结构体,包括了控制车辆所需的所有变量,即油门、转向、刹车等。当车辆接收到输入的控制信号时,CARLA车辆移动组件会调用ProcessControl函数来将控制信号应用到车辆上。 其中第3行GetVehicleMovementComponent函数是PhysXVehicle组件的一个API,用于获取车辆的移动组件: 最后,CARLA车辆的物理特性用VehiclePhysicsControl来表示,其包含了上文中的部分物理特性,另外还有2个关于车辆本身的物理特性:DragCoefficient:空气阻力系数,是衡量车辆在行驶过程中所受空气阻力的一个重要参数。它是由一定特征面积计算得出的单位面积,表示空气对行驶中的车辆形成的一种反向力。空气阻力与速度的平方成正比,因此,高速车对空气阻力的影响非常明显。如果汽车的风阻系数较高,意味着行驶时所受的空气阻力较大,会导致更高的油耗和更低的车辆稳定性。CenterOfMass:质心位置,对于车辆的控制比较重要。当质心位置在车辆前方时,会降低车辆的转向灵敏度(Understeering),当质心位置在车辆后方时,会增加车辆的转向灵敏度(Oversteering)。因此如果要调整车辆的转向性能,质心时不可忽视的点。如果要在CARLA中设置车辆的动力学参数,例如下面这样即可:CARLA Vehicle的apply_physics_control方法 会在被调用的下一帧将参数应用到车辆上。 总结 在对汽车性能进行模拟的场景下,CARLA 提供了丰富的动力学模拟工具。在不过于苛求精确性的仿真场景,这些工具具有良好的适用性。导入外部车辆动力学模型时,如果未明确相关的动力学参数,则可以结合已有模型进行修改,以便优化加速性能和转向性能。比如,当车辆过于敏捷时,可以适当增加轮胎横向刚度,或向前调整质心位置以改善转向表现。当发现车辆动力性能低于实际车辆时,可以进行优化调整,如调整扭矩曲线、降低轮胎摩擦力、降低风阻系数等,以改善加速表现。 来源:车路漫漫

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈