9-OpenDRIVE独立模式

   1 概述

    该功能允许用户摄取任何OpenDRIVE文件作为开箱即用的CARLA地图。为了做到这一点,模拟器将自动生成一个道路网格供车辆导航。

    此模式仅使用OpenDRIVE文件运行完整模拟,不需要任何其他几何图形或资源。为此,模拟器会获取一个OpenDRIVE文件,并按程序创建一个时间3D网格来运行模拟。
    生成的网格以简洁的方式描述了道路定义。所有元素都将与OpenDRIVE文件相对应。为了防止车辆从路上掉下来,采取了两项措施。
    交叉口的车道稍宽,那里的车辆流动最为复杂。
    在道路边界处创建可见墙,作为最后的安全措施。
    交通信号灯、停车位和停车位将实时生成。行人将在地图上出现的人行道和人行横道上导航。所有这些元素以及道路上的每个细节都基于OpenDRIVE文件。由于独立模式直接使用.xodr,其中任何问题都会传递到仿真中。这可能是一个问题,尤其是在许多车道混合的路口。

2 运行独立地图


    打开一个OpenDRIVE文件只需要通过API调用client.generate_OpenDRIVE_world()。这将生成新地图。该方法需要两个参数。
  opendrive是解析为字符串的opendrive文件的内容。
  parameters是 carla.OpendriveGenerationParameters包含网格生成的设置。此参数是可选的。

    vertex_distance(默认值2.0米)--网格顶点之间的距离。距离越大,网格越不准确。但是,如果距离太小,生成的网格将太稠密而无法使用。

    max_road_length(默认为50.0米)-网格部分的最大长度。网格被分成几个部分,以减少渲染开销。如果某个部分不可见,UE将不会渲染它。份量越小,越有可能被丢弃。但是,如果部分太小,UE将有太多的对象需要管理,并且性能也会受到影响。

    wall_height(默认值为1.0米)--在道路边界上创建的附加墙的高度。这些措施可以防止车辆坠落。

  additional_width(默认0.6米,每边0.3)-小的宽度增量应用于交叉车道。这是防止车辆坠落的安全措施。

    smooth_junctions(默认为True) -如果为True, OpenDRIVE的一些信息将被重新解释以平滑结点处的最终网格。这样做是为了防止不同车道相交时可能发生的一些错位问题。如果设置为False,网格将完全按照OpenDRIVE中的描述生成。

    enable_mesh_visibility(默认为True) -如果为False,网格将不被渲染,这可以为仿真器节省大量的渲染工作。

    为了方便地测试此功能,PythonAPI/util/中的config.py脚本有一个新的参数,-x或--xodr-path。该参数需要一个包含.xodr文件路径的字符串,例如path/example.xodr。如果网格是用这个脚本生成的,使用的参数将始终是默认的。

    这个功能可以用CARLA提供的新TownBig进行测试。

python3 config.py -x opendrive/TownBig.xodr

    注意:client.generate_opendrive_world()使用解析为字符串的OpenDRIVE 文件的内容。而config.py脚本需要.xodr文件的路径。

    如果遇到opendrive无法正确解析的错误,请确保CarlaUE4/Content/Carla/Maps/ opdrive /目录有写权限。这是服务器正确解析xodr文件所必需的。

3 网格生成


    网格的生成是该模式的关键要素。只有当生成的网格平滑并完全符合其定义时,该特性才能成功。因此,这一过程会持续迭代。特别是在不平坦的车道连接的地方,交叉口需要进行平滑处理。

    生成交叉口网格时,较高的车道往往会遮挡其下方的车道。参数smooth_functions可防止此类问题。除此之外,不是将整个地图创建为一个独特的网格,而是创建不同的部分。通过划分网格,模拟器可以避免渲染不可见的部分,从而节省成本。
    关于网格生成的当前状态,应该考虑以下一些因素。

    连接处平滑。默认平滑可防止上述倾斜连接处的问题。但是,它将在此过程中修改原始网格。如果不期望被修改,将smooth_functions设置为False以禁用平滑。
    横向坡度。此功能目前尚未集成到CARLA中。
    人行道高度。目前,所有人行道的硬编码都是一样的。人行道必须高于道路标高才能检测到碰撞,但RoadRunner不会将此值导出到OpenDRIVE文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值