CN114692289A - 自动驾驶算法测试方法及相关设备 - Google Patents

自动驾驶算法测试方法及相关设备 Download PDF

Info

Publication number
CN114692289A
CN114692289A CN202011645222.0A CN202011645222A CN114692289A CN 114692289 A CN114692289 A CN 114692289A CN 202011645222 A CN202011645222 A CN 202011645222A CN 114692289 A CN114692289 A CN 114692289A
Authority
CN
China
Prior art keywords
obstacle
obstacles
vehicle
position information
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011645222.0A
Other languages
English (en)
Inventor
张宝宽
张磊
王超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011645222.0A priority Critical patent/CN114692289A/zh
Priority to PCT/CN2021/136414 priority patent/WO2022143057A1/zh
Priority to EP21913798.1A priority patent/EP4261729A1/en
Publication of CN114692289A publication Critical patent/CN114692289A/zh
Priority to US18/215,581 priority patent/US20230339513A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0027Planning or execution of driving tasks using trajectory prediction for other traffic participants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects

Abstract

本申请涉及自动驾驶领域,具体公开了一种自动驾驶算法测试方法及装置。该方法包括:按照自动驾驶算法的测试功能从障碍物集合中获取N个障碍物,将N个障碍物中每个障碍物的ID及初始运动信息保存至障碍物资源池中;根据第一障碍物的ID从障碍物资源池中获取第一障碍物的周围障碍物的运动信息,并根据第一障碍物的周围障碍物的运动信息控制第一障碍物运行,得到第一障碍物的运动信息;将该运动信息保存至障碍物资源池中;根据自车的位置信息及障碍物资源池中获取自车与n个障碍物的交互结果;根据交互结果确定自动驾驶算法的测试结果。通过引入障碍物资源池,实现了测试场景中的障碍物进行统一管理,为构建复杂的测试场景提供了便利。

Description

自动驾驶算法测试方法及相关设备
技术领域
本申请涉及自动驾驶领域,尤其涉及一种自动驾驶算法测试方法及相关设备。
背景技术
路测是自动驾驶落地的核心环节。研究显示,自动驾驶汽车需要积累上百万公里的道路 测试,才能保证自动驾驶感知、决策、控制整个链路的安全性和可靠性。通过实车路测验证 算法存在研发成本高、潜在安全风险大、算法开发效率低等问题,因此业界通常采用仿真软 件构造虚拟场景进行算法测试和验证。
但是,目前大部分自动驾驶仿真软件构建仿真场景单一,面临着复杂场景验证效率低下 的关键问题:复杂场景构建难度大,无法还原真实路况的不确定性,自动驾驶系统无法精准 应对真实路况的突发情况,自动驾驶难以实现进一步突破。
自动驾驶仿真软件构建复杂场景存在许多难题,比如:(1)如何构建典型的微观仿真场 景,给出不同类型障碍物的微观行为,如车辆避让、换道、跟车、抢行、突然加速、刹车等 场景、行人过马路、闯红灯等微观行为及静止障碍物;(2)如何构建宏观交通流仿真场景, 模拟随机交通流、交通拥堵等场景;(3)如何有效利用道路测试采集的数据,使得路测采集 的真实场景内的障碍物具有动态交互性、增加场景复杂性也是亟待解决的问题;(4)如何对 上述不同来源的障碍物进行高效的统一管理,实现仿真平台中所有障碍物之间的交互,增加 仿真真实性是当前需要解决的业界难题。
典型交通场景为图1所示,车辆、非机动车、行人、围栏,是一个涉及宏观随机交通流、 微观场景(车辆变道、刹车,行人过马路等行为)的复杂场景,如果能在自动驾驶仿真软件 中构建类似复杂、极端的场景来验证自动驾驶算法,对于自动驾驶系统得以快速突破有着极 其重要的帮助。
发明内容
本申请实施例提供一种自动驾驶算法测试方法及相关设备,通过引入障碍物资源池,实 现了对障碍物进行高效地统一管理,为构建复杂的测试场景提供了便利。
第一方面,本申请提供一种自动驾驶算法测试方法,包括:
按照自动驾驶算法的测试功能从障碍物集合中获取N个障碍物,N个障碍物包括自车的 的障碍物和该自车的障碍物的周围障碍物,N为大于0的整数;将N个障碍物中每个障碍物 的ID及初始运动信息保存至障碍物资源池中;根据第一障碍物的ID从障碍物资源池中获取 第一障碍物的周围障碍物的运动信息,并根据第一障碍物的周围障碍物的运动信息控制第一 障碍物运行,得到第一障碍物的运动信息;将每个障碍物的运动信息保存至障碍物资源池中; 根据自车的位置信息从障碍物资源池中获取n个障碍物的第一运功信息,该n个障碍物为自 车的障碍物,n小于或等于N,根据n个障碍物的第一运动信息获取自车与n个障碍物的交 互结果;根据交互结果确定自动驾驶算法的测试结果。
其中,N个障碍物的类型包括精细化轨迹障碍物、导航型障碍物、宏观交通流和真实路 测障碍物中的部分或者全部。路测障碍物为车辆在真实环境行驶过程中采集得到的障碍物。
可选地,在从障碍物集合中获取N个障碍物之后,为该N个障碍物中的每个障碍物分配 ID,并对每个障碍物进行配置,从而得到每个障碍物的ID及配置信息,并获取N个障碍物 中每个障碍物的ID及其配置信息;或者障碍物集合中包括各类障碍物的ID及其配置信息, 因此在从障碍物集合中获取N个障碍物时,隐含了从障碍物集合中获取N个障碍物的ID及 配置信息,不需要对障碍物进行额外的配置。其中,障碍物的配置信息包括初始运动信息。
通过引入障碍物资源池,实现了对测试场景中的不同类型的障碍物进行统一管理,也为 构建复杂测试场景提供了便利;通过引入宏观交通流和路测障碍物,进一步为构建复杂测试 场景提供了便利。
在一个可行的实施例中,障碍物资源池包括第一缓存和第二缓存,初始运动信息包括初 始位置信息,本申请的方法还包括:
对N个障碍物中的每个障碍物的ID进行哈希处理,得到每个障碍物的ID哈希值;每个 障碍物的ID哈希值用于指示该障碍物的运动信息在第一缓存中的存储空间;
将N个障碍物中每个障碍物的ID及初始运动信息保存至障碍物资源池中,包括:
将N个障碍物中每个障碍物的初始运动信息保存至第一缓存中该障碍物的ID哈希值所 指示的存储空间中;以N个障碍物中的每个障碍物的初始位置信息为索引,将该障碍物的ID 及初始位置信息保存至第二缓存中。
在障碍物资源池中以位置信息为索引存储障碍物的ID,使得在后续搜索障碍物视野内的 障碍物时,可以基于位置信息快速搜素到障碍物视野内的障碍物的ID,提高了搜索效率。
在一个可行的实施例中,障碍物资源池包括第一缓存和第二缓存,根据第一障碍物的ID 从障碍物资源池中获取第一障碍物的周围障碍物的初始运动信息,包括:
根据第一障碍物的ID哈希值从第一缓存中获取第一障碍物的初始运动信息,该初始运动 信息包括初始位置信息,第一障碍物的ID哈希值是对第一障碍物的ID进行哈希处理得到的; 根据第一障碍物的初始位置信息从第二缓存中获取S个障碍物的ID,该S障碍物为位于第一 障碍物的预设区域内的障碍物,第一障碍物的预设区域是根据第一障碍物的初始位置信息确 定的;根据第一障碍物的运动方式从S个障碍物确定第一障碍物的周围障碍物;第一障碍物 的周围障碍物为S个障碍物中,在第一障碍物按照其运动方式运动时与第一障碍物有潜在交 互的障碍物;根据第一障碍物的周围障碍物的ID哈希值从第一缓存中获取周围障碍物的初始 运动信息,第一障碍物的周围障碍物的ID哈希值是对第一障碍物的周围障碍物的ID进行哈 希处理得到的。
在障碍物之间进行交互时,通过引入障碍物的预设区域(该区域可以看成障碍物的视野), 避免了在障碍物资源池的范围内查找与有潜在交互的障碍物,高效实现了障碍物之间的交互。 并且通过此方式实现了路测障碍物与其他障碍物之间的交互,使得路测障碍物与其进行交互 的其他障碍物构成了硬件在环(hardware in the loop,HIL)场景,为构建复杂测试场景提供 了便利,同时有效利用路测障碍物。
在一个可行的实施例中,第一运动信息包括第一位置信息,将障碍物资源池中第一障碍 物的初始运动信息更新为第一运动信息,包括:
根据第一障碍物的初始位置信息从第二缓存中确定第一障碍物的初始位置信息对应的 ID,若第一障碍物的初始位置信息对应的ID为该第一障碍物的ID,则将第二缓存中第一障 碍物的初始位置信息更新为第一障碍物的第一位置信息;根据第一障碍物的ID哈希值将第一 缓存中第一障碍物的初始运动信息更新为第一运动信息。
通过实时更新障碍物的运动信息,使得在后续障碍物之间的交互时,障碍物能够获取与 其有潜在交互的障碍物的运动信息,从而障碍物之间交互更加合理。
在一个可行的实施例中,本申请的方法还包括:
根据用户指令获取新增障碍物的ID及配置信息,并对新增障碍物的配置信息进行解析, 得到新增障碍物的初始运动信息;该初始运动信息包括新增障碍物的初始位置信息;对新增 障碍物的ID进行哈希处理,以得到新增障碍物的ID哈希值,并将新增障碍物的初始运动信 息保存至第一缓存中新增障碍物的ID哈希值所示的存储空间中;并以新增障碍物的初始位置 信息为索引,将新增障碍物的ID和初始运动信息保存至障碍物资源池的第二缓存中。同时在 后续过程中,可以按照上述方式更新障碍物资源池中新增障碍物的相关信息。
其中,新增障碍物包括精细化轨迹障碍物、导航型轨迹障碍物、宏观交通流和路测障碍 物中的部分或者全部。
通过随机在测试场景中插入宏观交通车流、导航型障碍物、精细轨迹障碍物等多类型障 碍物,可以实现指定场景的细节仿真,极大的提高了仿真场景灵活性和智能性。
在一个可行的实施例中,第一运动信息包括第一位置信息,根据自车的位置信息从障碍 物资源池中获取n个障碍物的第一运动信息,包括:
根据自车的位置信息从第二缓存中确定M个障碍物的ID及第一位置信息,M个障碍物 为位于自车的预设范围内的障碍物;自车的预设范围是基于自车的位置信息确定的,M为小 于或等于N的正整数;根据预设交互方式和M个障碍物的第一位置信息从M个障碍物中确 定n个障碍物;该n个障碍物为与自车存在潜在交互的障碍物;根据n个障碍物中每个障碍 物的ID哈希值从第一缓存中确定n个障碍物中每个障碍物的第一运动信息。
通过引入自车的预设范围,可以快速从障碍物资源池的第二缓存中确定出位于自车的预 设范围内的障碍物,提高了搜索效率。
第二方面,本申请实施例还提供一种仿真测试装置,包括:
获取单元,用于按照自动驾驶算法的测试功能从障碍物集合中获取N个障碍物;该N个 障碍物包括自车的障碍物和自车障碍物的周围障碍物,N个障碍物的类型包括精细化轨迹障 碍物、导航型障碍物、宏观交通流和路测障碍物中的部分或者全部;N为大于0的整数;
保存单元,用于将N个障碍物中每个障碍物的ID及初始运动信息保存至障碍物资源池;
仿真测试单元,用于根据第一障碍物ID从障碍物资源池中获取第一障碍物的周围障碍物 的运动信息,并根据第一障碍物的周围障碍物的运动信息控制第一障碍物运行,得到每个障 碍物的第一运动信息;将障碍物资源池中第一障碍物的初始运动信息更新为第一障碍物的第 一运动信息;根据自车的位置信息从障碍物资源池获取n个障碍物的第一运动信息,n个障 碍物为自车的障碍物,n小于或等于N;根据n个障碍物的第一运动信息获取自车与n个障 碍物的交互结果;根据交互结果确定自动驾驶算法的测试结果。
在一个可行的实施例中,障碍物资源池包括第一缓存和第二缓存,初始运动信息包括初 始位置信息,仿真测试装置还包括:
处理单元,用于对N个障碍物中的每个障碍物的ID进行哈希处理,得到每个障碍物的 ID哈希值,每个障碍物的ID哈希值用于指示该障碍物的运动信息在第一缓存中的存储空间;
保存单元具体用于:
将N个障碍物中每个障碍物的初始运动信息保存至第一缓存中该障碍物的ID哈希值所 指示的存储空间中;以N个障碍物中的每个障碍物的初始位置信息为索引,将每个障碍物的ID及初始位置信息保存至第二缓存中。
在一个可行的实施例中,障碍物资源池包括第一缓存和第二缓存,在根据第一障碍物的 ID从障碍物资源池中获取第一障碍物的周围障碍物的初始运动信息的方面,仿真测试单元具 体用于:
根据第一障碍物的ID哈希值从第一缓存中获取第一障碍物的初始运动信息,该初始运动 信息包括初始位置信息,第一障碍物的ID哈希值是对第一障碍物的ID进行哈希处理得到的; 根据第一障碍物的初始位置信息从第二缓存中获取S个障碍物的ID,S个障碍物为位于第一 障碍物的预设区域内的障碍物,第一障碍物的预设区域是基于第一障碍物的初始位置信息确 定的,S小于或等于N;根据第一障碍物的运动方式从S个障碍物中确定第一障碍物的周围 障碍物,第一障碍物的周围障碍物为S个障碍物中在第一障碍物按照运动方式运动时与第一 障碍物有潜在交互的障碍物;根据第一障碍物的周围障碍物的ID哈希值从第一缓存中获取周 围障碍物的初始运动信息,第一障碍物的周围障碍物的ID哈希值是对第一障碍物的周围障碍 物的ID进行哈希处理得到的。
在一个可行的实施例中,第一运动信息包括第一位置信息,在将障碍物资源池中第一障 碍物的初始运动信息更新为第一运动信息的方面,仿真测试单元具体用于:
根据第一障碍物的初始位置信息从第二缓存中确定第一障碍物的初始位置信息对应的 ID,若第一障碍物的初始位置信息对应的ID为该第一障碍物的ID,则将第二缓存中第一障 碍物的初始位置信息更新为第一障碍物的第一位置信息;根据第一障碍物的ID哈希值将第一 缓存中第一障碍物的初始运动信息更新为第一运动信息。
在一个可行的实施例中,第一运动信息包括第一位置信息,在根据自车的位置信息从障 碍物资源池中获取n个障碍物的第一运动信息的方面,仿真测试单元具体用于:
根据自车的位置信息从第二缓存中确定M个障碍物的ID及第一位置信息,M个障碍物 为位于自车的预设范围内的障碍物;自车的预设范围是基于自车的位置信息确定的,M为小 于或等于N的正整数;根据预设交互方式和M个障碍物的第一位置信息从M个障碍物中确 定n个障碍物;n个障碍物为与自车存在潜在交互的障碍物;根据n个障碍物中每个障碍物 的ID哈希值从第一缓存中确定n个障碍物中每个障碍物的第一运动信息。
第三方面,本申请实施例还提供一种仿真测试装置,包括:
存储器和与该存储器耦合的处理器,其中,存储器中存储有指令,当处理器执行该指令 时,执行如第一方面中的部分或者全部。
第四方面,本申请实施例提供一种芯片系统,该芯片系统应用于电子设备;芯片系统包 括一个或多个接口电路,以及一个或多个处理器;所述接口电路和所述处理器通过线路互联; 所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述 信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述电子 设备执行如第一方面所述方法的部分或全部。
第五方面,本申请实施例提供一种计算机可读存储介质,该计算机存储介质存储有计算 机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行 如第一方面所述方法的部分或全部。
第六方面,本申请实施例提供一种计算机程序产品,其特征在于,包括计算机指令,当 所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面所述方法的部分或 全部。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术 描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一 些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些 附图获得其他的附图。
图1为十字路口交通场景示意图;
图2为本申请实施例提供的一种自动驾驶算法测试方法的流程示意图;
图3a为障碍物视野的示意图;
图3b为自车视野和障碍物视野的示意图;
图4为障碍物之间交互示意图;
图5为自车与障碍物之间交互示意图;
图6为数据通道的示意图;
图7为一种测试场景示意图;
图8为导航型障碍物的视野示意图;
图9为导航型障碍物的视野示意图;
图10为另一种测试场景示意图;
图11为本申请实施例提供的一种仿真测试装置的结构示意图;
图12为本申请实施例提供的另一种仿真测试装置的结构示意图;
图13为本申请实施例提供的另一种仿真测试装置的结构示意图。
具体实施方式
下面结合附图对本申请的实施例进行描述。
首先对本申请中的关键术语进行解释。
精细化轨迹障碍物:包括但不限于障碍物的类型,速度、起始点坐标、轨迹点坐标及终 点坐标等属性的障碍物。在测试中,该类障碍物严格按照预先设定的速度和轨迹点从起始点 运动到终点。其中,精细化轨迹障碍物的类型包括但不限于人、轿车、卡车、自行车、电动 车。
导航型障碍物:相比于精细化轨迹障碍物,该类障碍物的属性包括类型、速度、起始点 和终点。在测试场景中,该类障碍物只需按照预先设定的速度上限从起始点运动到终点,在 此过程中会根据与其他障碍物的交互动态调整速度和运动轨迹。
宏观交通流:指汽车在道路上连续行驶形成的车流。广义上还包括其他车辆的车流和人 流。在某段时间内,在不受横向交叉影响的路段上,交通流呈连续流状态;在遇到路口信号 灯管制时,呈断续流状态。宏观交通流的属性包括但不限于障碍物的数量、障碍物的类型、 速度、起始点和终点等。
路测障碍物:车辆在真实路测环境中行驶测量得到的障碍物,该障碍物包括车辆行驶过 程中附近的机动车辆、行人、非机动车辆等。
参见图2,图2为本申请实施例提供的一种自动驾驶算法测试方法的流程示意图。如图2 所示,该方法包括:
S201、仿真测试装置根据自动驾驶算法的测试功能从障碍物集合中获取N个障碍物。
其中,上述N个障碍物包括自车的障碍物和该自车的障碍物的周围障碍物。
可选地,在从障碍物集合中获取N个障碍物之后,为该N个障碍物中的每个障碍物分配 ID,并对每个障碍物进行配置,从而得到每个障碍物的ID及配置信息,并获取N个障碍物 中每个障碍物的ID及其配置信息;或者障碍物集合中包括各类障碍物的ID及其配置信息, 因此在从障碍物集合中获取N个障碍物时,隐含了从障碍物集合中获取N个障碍物的ID及 配置信息,不需要对障碍物进行额外的配置。
其中,上述多个第一障碍物的类型包括精细化轨迹障碍物、导航型障碍物、宏观交通流 和路测障碍物中的部分或者全部。
其中,比如在需要测试基于自动驾驶算法行驶的自车是否具有正常换道、超车、过路口 或者路边停车等功能时,在测试场景中需要引入导航型障碍物;再比如在需要测试基于自动 驾驶算法行驶的自车在障碍物超车抢道(cut in),或者被障碍物cut out自车、挤压自车、横 穿路口、非法逆行或闯红灯的情况下,自车能否正常合规行驶时,在测试场景中需要引入精 细化轨迹障碍物;再比如在需要测试基于自动驾驶算法行驶的自车在交通拥堵的情况下能否 正常合规行驶时,在测试场景中需要引入宏观交通流,以模拟交通拥堵;再比如在需要测试 基于自动驾驶算法行驶行驶的自车在真实环境中能否正常合规行驶时,在测试场景中引入基 于路测过程中得到的路测障碍物,以增加测试场景的真实性和随机性。
进一步地,精细化轨迹障碍物的配置信息包括但不限于障碍物的子类型、速度、起点坐 标、轨迹点坐标和终点坐标等;导航型障碍物的配置信息包括但不限于障碍物的子类型、速 度、起点坐标和终点坐标等;宏观交通流的配置信息包括但不限于障碍物的数量、障碍物的 子类型、速度、起点坐标和终点坐标等;路测障碍物的配置信息包括但不限于障碍物的子类 型、在路测过程中采集到的每个时刻的速度、航向角和坐标等。
在此需要指出的是,障碍物的子类型包括但不限于行人、动物、轿车、公交车、卡车、 自行车和电动车等。
可选地,宏观交通流可以是预置于自动驾驶算法仿真测试装置中的,也可以是仿真测试 装置从其他设备中获取的,比如仿真测试装置向其他设备发送宏观交通流获取请求,该获取 请求中包括交通流的配置信息,其他设备基于宏观交通流的配置信息生成该宏观交通流,并 将该宏观交通流发送至仿真测试装置,以响应上述宏观交通流获取请求。
在一个可行的实施例中,自动驾驶算法的功能有多个,比如停车避障、超车、向左变道、 向右变道、跟车等,对于测试自动驾驶算法某一功能时,仿真测试装置可以获取该功能对应 的配置文件,该配置文件中包括上述N个障碍物的ID及配置信息,从而实现根据自动驾驶 算法的测试功能从障碍物集合中获取N个障碍物,并获取该N个障碍物中每个障碍物的ID 及配置信息。
可选地,配置文件可以预置于仿真测试装置中,也可以是仿真测试装置从其他设备中获 取的。
在此需要指出的是,仿真测试装置可以为自车的一部分,也可以为专门的测试服务器; 当然这只是一个示例,不是对本申请的限定,仿真测试装置还可以为其他设备,在此不再一 一列举。
S202、仿真测试装置将N个障碍物中的每个障碍物的初始运动信息保存至障碍物资源池。
其中,N个障碍物的初始运动信息是根据该第一障碍物的配置信息得到的,障碍物的运 动信息包括但不限于障碍物的子类型、起点坐标、终点坐标、当前坐标、速度和航向角等。
在一个可选地实施例中,在获取N个障碍物的配置信息后,对该N个障碍物中的每个障 碍物的配置信息进行解析,以得到该障碍物的初始运动信息;以N个障碍物中每个障碍物的 ID为索引,将每个障碍物的ID及其初始运动信息保存至障碍物资源池中,以便对N个障碍 物进行统一管理。
在一个可选地实施例中,障碍物资源池包括第一缓存和第二缓存,在获取N个障碍物的 配置信息后,对该N个障碍物中的每个障碍物的配置信息进行解析,以得到该障碍物的初始 运动信息,该初始运动信息包括初始位置信息,该位置信息可以是坐标,当然还可以是其他, 在本申请中不做限定;对N个障碍物中每个第一障碍物的ID进行哈希处理,以得到该障碍 物的ID哈希值,该ID哈希值用于指示第一缓存中的存储空间,或者ID哈希值可以看成存 储地址,该存储地址所对应的存储空间包含于第一缓存;将N个障碍物中每个第一障碍物的 初始运动信息保存至该第一障碍物的ID哈希值所指示的存储空间中;然后以N个障碍物中 每个障碍物的初始位置信息为索引,将每个障碍物的ID及初始位置信息保存至障碍物资源池 的第二缓存中,以便对N个障碍物进行统一管理,并且在后续查找与障碍物或者自车有交互 的障碍物时,一般是基于位置信息来查找,因此在第二缓存中,基于位置信息可以快速找到 所需的障碍物的ID,然后基于障碍物的ID从第一缓存中这些障碍物的运动信息,提高了搜 索效率。
S203、仿真测试装置根据第一障碍物的ID从障碍物资源池中获取第一障碍物的周围障碍 物的初始运动信息,并根据第一障碍物的周围障碍物的初始运动信息控制第一障碍物运行, 得到第一障碍物的第一运动结果,将障碍物资源池中第一障碍物的初始位置信息更新为第一 障碍物的第一运动结果。
在一个示例中,对于精细化轨迹障碍物,在测试过程中,按照简单车辆动力学模型和 dusbin曲线模拟运行;其中,简单车辆动力学模型如下:
Figure BDA0002880774950000071
其中,车体的原点位于车辆后轮的中心,x轴沿着车辆主轴方向,与车辆运动方向相同; 车辆的运动速度为us,方向盘的转角为φ,它与前轮的转角相同;前轮和后轮中心的距离为L, 航向偏角为θ。比如轿车、公交车及卡车等精细化轨迹障碍物,均是按照上述方式运动的。
对于导航型障碍物,在测试过程中,以导航型障碍物的起点坐标所指示的位置为起点, 根据测试场景中的其他障碍物的运动信息,实时规划出导航性障碍物的当前位置到终点坐标 所指示的位置之间的导航路径;然后导航型障碍物按照实时规划出的路径行驶。
对于宏观交通流,在测试过程中,宏观交通流以按照其运动信息中起点坐标所指示的位 置和终点坐标所指示的位置分别为起点和终点,并按照宏观交通流的运动信息中的速度来行 驶。
由于路测障碍物的运动信息包括在路测过程中每个时刻的速度、航向角及坐标,因此为 了模拟真实的行驶环境,在测试过程中,按照路测障碍物的运动信息中的速度、航向角和坐 标等信息控制路测障碍物运动。
可选地,在控制障碍物运动时,可以不仅仅基于障碍物的运动信息,还可以基于运动信 息和障碍物在测试过程中所要执行的动作来控制障碍物的运动,从而构建更加具有细节的测 试场景。
在一个可行的实施例中,对于N个障碍物中的每个障碍物按照如下方式进行处理:
根据第一障碍物的ID从障碍物资源池中获取第一障碍物的周围障碍物的初始运动信息, 并根据第一障碍物的周围障碍物的初始运动信息控制第一障碍物运行,得到第一障碍物的第 一运动信息,将障碍物资源池中第一障碍物的初始运动信息更新为第一障碍物的第一运动信 息;第一障碍物为N个障碍物中的任一个;
按照上述方式,可实现对障碍物资源池中N个障碍物的每个障碍物的运动信息的更新。
可选地,根据第一障碍物的ID从障碍物资源池中获取第一障碍物的周围障碍物的初始运 动信息,包括:
根据第一障碍物的ID哈希值从障碍物资源池的第一缓存中获取第一障碍物的初始运动 信息,第一障碍物的ID哈希值是对第一障碍物的ID进行哈希处理得到的,第一障碍物的初 始运动信息包括第一障碍物的初始位置信息;根据第一障碍物的初始位置信息从障碍物资源 池的第二缓存中确定S个障碍物的ID,该S个障碍物为位于第一障碍物的预设范围的障碍物, 其中,第一障碍物的预设区域为以第一障碍物的位置为中心,半径为R的区域;当然第一障 碍物的预设区域还可以为以第一障碍物的位置为中心的方形区域或者矩形区域,在此不做限 定,第一障碍物的预设区域可以称为第一障碍物的视野;应理解,当根据第一障碍物的初始 位置信息从障碍物资源池的第二缓存中确定S个障碍物时,上述第一障碍物的位置为该第一 障碍物的初始位置信息所指示的位置;可选地,S个障碍物为第二缓存中位置与第一障碍物 的初始位置信息所指示位置之间的距离小于的预设距离的障碍物;根据第一障碍物的运动方 式从S个障碍物中确定第一障碍物的周围障碍物,该第一障碍物的周围障碍物为S个障碍物 中在第一障碍物按照其运动方式运动时与第一障碍物有潜在交互的障碍物;根据第一障碍物 的周围障碍物的ID哈希值从第一缓存中获取周围障碍物的初始运动信息,其中,第一障碍物 的周围障碍物的ID哈希值是根据第一障碍物的周围障碍物的ID进行哈希处理得到的。
在获取第一障碍物的周围障碍物的初始运动信息后,根据第一障碍物的周围障碍物的初 始运动信息控制第一障碍物运行,得到第一障碍物的第一运动信息。
举例说明,如图3a所示,以N个障碍物中的任一障碍物A为例,虚线框内的区域为障碍物A的预设区域,位于障碍物A的预设区域内的障碍物包括障碍物B、障碍物C和障碍物 D。根据障碍物A、B、C和D中每个障碍物的位置信息,可以确定障碍物B位于障碍物A 的前方,障碍物C和障碍物D分别位于障碍物A的右后方和左后方;假设障碍物A的运动 方式为往左变道,障碍物D与障碍物A有潜在交互,因此障碍物A的周围障碍物为上述障 碍物D;根据障碍物D的初始运动信息确定障碍物D是即将加速超车还是速度保持不变;若 确定障碍物D是即将加速超车,则控制障碍物A保持速度和方向不变行驶,以避免障碍物A 变道时与障碍物D发生碰撞,若确定障碍物D速度保持不变,则控制障碍物A向左变道, 以完成向左变道操作;并获取障碍物A在此过程中的运动信息,该运动信息为第一运动信息, 该第一运动信息包括第一位置信息。
再举例说明,如图4所示,对于车辆1、车辆2、车辆3和车辆4,其预设区域分别为如图4所示的第一区域、第二区域、第三区域和第四区域;对于车辆1,第一区域内的除了车 辆1之外的车辆均可看成车辆1视野内的障碍物,可以基于车辆1的位置信息从障碍物资源 池的第二缓存中确定的;第一区域内与车辆1同向行驶的且位于车辆1的左侧和前方的车辆(黑线白底的车辆)对车辆1的行驶会产生影响,灰色白底的车辆对车辆1的行驶不会产生影响,黑线白底的车辆即为车辆1的目标障碍物,因此第一区域内黑线白底的车辆为车辆1的周围障碍物;
对于车辆2,第二区域内的除了车辆2之外的车辆均可看成车辆2视野内的障碍物,可 以基于车辆2的位置信息从障碍物资源池的第二缓存中确定的;第二区域内与车辆2同向行 驶的且位于车辆2的左上角和前方的车辆(黑线白底的车辆)对车辆2的行驶会产生影响, 黑线白底的车辆即为车辆2的周围障碍物,因此第二区域内黑线白底的车辆为车辆2的周围 障碍物;
对于车辆3,第三区域内的除了车辆3之外的车辆均可看成车辆3视野内的障碍物,可 以基于车辆3的位置信息从障碍物资源池的第二缓存中确定的;第三区域内与车辆3位于同 一车道且位于车辆3的前方的车辆(黑线白底的车辆)对车辆3的行驶会产生影响,灰色白 底的车辆对车辆3的行驶不会产生影响,黑线白底的车辆即为车辆3的周围障碍物,因此第 三区域内黑线白底的车辆为车辆3的周围障碍物;
对于车辆4,第四区域内的除了车辆4之外的车辆均可看成车辆4视野内的障碍物,可 以基于车辆4的位置信息从障碍物资源池的第二缓存中确定的;第四区域内与车辆4同向行 驶的且位于车辆4的左上角的车辆(黑线白底的车辆)对车辆4的行驶会产生影响,灰色白 底的车辆对车辆4的行驶不会产生影响,黑线白底的车辆即为车辆4的周围障碍物,因此第 四区域内黑线白底的车辆为车辆4的周围障碍物。
按照上述方法获取车辆1、车辆2、车辆3和车辆4的周围障碍物后,根据车辆1、车辆2、车辆3和车辆4的周围障碍物的ID从障碍物资源池中获取这些车辆的周围障碍物的第一运动信息。
在获取第一障碍物的第一运动信息后,根据第一障碍物的ID哈希值从障碍物资源池的第 一缓存中获取第一障碍物的初始运动信息,该初始运动信息包括初始位置信息,根据初始位 置信息从障碍物资源池的第二缓存中获取该初始位置信息对应的ID,若该ID为第一障碍物 的ID,则将第二缓存中该ID对应的位置信息更新为第一位置信息;将第一缓存中第一障碍 物的初始运动信息更新为第一障碍物的第一运动信息,以便于基于障碍物资源池对N个障碍 物的管理。
再举例说明,如图3a所示,障碍物A为N个障碍物中的任一个,虚线框内的区域为障碍物A的预设区域,位于障碍物A的预设区域内的障碍物包括障碍物B、障碍物C和障碍物 D,障碍物B、障碍物C和障碍物D为障碍物A视野内的障碍物。根据障碍物A、B、C和D 中每个障碍物的位置信息,可以确定障碍物B位于障碍物A的前方,障碍物C和障碍物D 分别位于障碍物A的右后方和左后方;假设障碍物A为导航型障碍物,导航型障碍物的轨迹 不是固定的,因此障碍物A的运动方式可以为往左变道,障碍物A的目标障碍物为上述障碍 物D;根据障碍物D的运动信息确定障碍物D是即将加速超车还是速度保持不变;若确定障 碍物D是即将加速超车,则控制障碍物A保持速度和方向不变行驶,以避免障碍物A变道 时与障碍物D发生碰撞;若确定障碍物D速度保持不变,则控制障碍物A向左变道,以完 成向左变道操作;假设障碍物A为精确轨迹障碍物,精细化轨迹障碍物的行驶轨迹是固定的, 因此运动方式可以为跟车,障碍物A的目标障碍物为上述障碍物B;根据障碍物B的运动信 息确定障碍物B加速行驶还是减速行驶;若确定障碍物B加速行驶,则控制障碍物A加速行 驶;若确定障碍物B减速行驶,则控制障碍物A减速行驶,以避免与障碍物A追尾;假设障 碍物A和障碍物B为宏观交通流中的相邻障碍物,对于障碍物A,其预设交互方式为跟车, 障碍物A的第三障碍物为上述障碍物B;根据障碍物B的运动信息确定障碍物B加速行驶还 是减速行驶;若确定障碍物B加速行驶,则控制障碍物A加速行驶;若确定障碍物B减速行 驶,则控制障碍物A减速行驶。
按照上述方式控制障碍物A运行后,获取障碍物A的运动信息,并按照上述方法将障碍 物A的第一运动信息更新障碍物资源池中障碍物A的运动信息。
通过引入障碍物之间的交互,能够更加真实地模拟现实驾驶场景,进而使得自动驾驶算 法的测试结果更加准确。
S204、仿真测试装置根据自车的位置信息从障碍物资源池中获取n个障碍物的第一运动 信息,n个第一障碍物为自车的障碍物,n小于或等于N。
具体地,根据自车的位置信息从障碍物资源池的第二缓存中确定M个障碍物的ID及第 一运动信息,该M个障碍物为自车的预设范围内的障碍物,M小于或等于N;根据自车的预 设交互方式和M个障碍物的第一位置信息从M个障碍物中确定n个障碍物,n个障碍物为与 自车存在潜在交互的障碍物;根据n个障碍物中每个障碍物的ID哈希值从第一缓存中确定n 个障碍物中每个障碍物的第一运动信息。
可选地,自车的预设区域可以为以自车坐标为中心,半径为r的圆形区域内,或者方形 区域内,当然还可以是其他不规则形状。根据自车的预设交互方式和M个障碍物的第一位置 信息从M个障碍物中确定n个障碍物,该n个障碍物为与自车有潜在交互的障碍物,比如当 预设交互方式为自车向前行驶时,与自车有潜在交互的障碍物为位于自车前方的障碍物;再 比如,当预设交互方式为自车即将向右侧变道时,与自车有潜在交互的障碍物为位于自车右 侧及右后侧的障碍物;再比如,当预设交互方式为自车即将向左侧变道时,与自车有潜在交 互的障碍物为位于自车左侧及左后侧的障碍物;再比如,当预设交互方式为自车倒车时,与 自车有潜在交互的障碍物为位于自车后方内的障碍物。
举例说明,如图3b所示,位于障碍物A的预设区域内的障碍物包括障碍物B、障碍物C 和障碍物D;根据障碍物A、B、C和D中每个障碍物的位置信息,可以确定障碍物B位于 障碍物A的前方,障碍物C和障碍物D分别位于障碍物A的右后方和左后方;假设障碍物 A的运动方式为往右变道,障碍物C与障碍物A有潜在交互,因此障碍物A的周围障碍物为 上述障碍物C;根据障碍物C的初始运动信息确定障碍物C是速度保持不变行驶,控制障碍 物A向右变道;对于自车,其预设范围内的障碍物包括障碍物A、障碍物B和障碍物C,假 设自车的预设交互方式为向左变道,与自车有潜在交互的障碍物包括障碍物A和障碍物C; 上述n个障碍物包括障碍物A和障碍物C。
在此需要指出的是,在对自动驾驶算法进行测试的过程中,N个障碍物和自车的运动信 息都是在发生变化的,为了基于障碍物资源池更好地管理障碍物,实时更新障碍物资源池中 的N个障碍物的运动信息。
在测试过程中实时更新障碍物资源池中N个障碍物的运动信息,具体通过以下方式实现:
实时获取第一障碍物的第二运动信息,该第二运动信息包括第二位置信息,该第二位置 信息是第一障碍物的实时位置信息;然后根据第一障碍物的ID哈希值,从障碍物资源池的第 一缓存中确定第一障碍物的运动信息的存储位置,进而获取第一障碍物的历史运动信息,该 历史运动信息包括历史位置信息;根据第一障碍物的历史位置信息从第二缓存中获取该历史 位置信息对应的ID,若第一障碍物的历史位置信息对应的ID为该障碍物的ID,则将第二缓 存中第一障碍物的第二位置信息更新为第一障碍物的历史位置信息,并将第一缓存中第一障 碍物的ID哈希值所指示的存储位置存储的第一障碍物的历史运动信息更新为该障碍物的第 二运动信息;第一障碍物为N个障碍物中的任一个;
按照对障碍物资源池中第一障碍物的运动信息的更新方式,对障碍物资源池中的N个障 碍物中的每个障碍物进行运动信息的更新。
为了增加测试场景的丰富性和随机性,可以根据预设的方式或者用户的指令增加障碍物; 其中预设的方式可以为:在预设时长内自车未与障碍物发生交互,则自动增加一些与自车有 交互的障碍物,该障碍物可以为精细化轨迹障碍物、导航型轨迹障碍物、宏观交通流、路测 障碍物或者其他障碍物;在根据预设的方式或者用户的指令获取新增障碍物的ID及配置信息, 并对新增障碍物的配置信息进行解析,得到新增障碍物的初始运动信息,该初始运动信息包 括新增障碍物的初始位置信息;对新增障碍物的ID进行哈希处理,以得到新增障碍物的ID 哈希值,并将新增障碍物的初始运动信息保存至第一缓存中新增障碍物的ID哈希值所示的存 储空间中;并以新增障碍物的初始位置信息为索引,将新增障碍物的ID和初始运动信息保存 至障碍物资源池的第二缓存中。同时在后续过程中,可以按照上述方式更新障碍物资源池中 新增障碍物的相关信息。
在一个可行的实施例中,在测试过程中,障碍物资源池中会存在一些在后续测试过程中 与自车没有交互的障碍物,或者存在一些与第二障碍物没有交互的障碍物,其中,上述第二 障碍物为在后续测试过程中与自车有潜在交互的障碍物,为了降低对障碍物资源池的管理开 销,需要将障碍物资源池中这些障碍物的相关信息删除,删除的具体方式可以为:获取需要 删除的障碍物的ID;对需要删除的障碍物的ID进行哈希处理,得到需要删除的障碍物的ID 哈希值,基于需要删除的障碍物的ID哈希值从障碍物资源池的第一缓存中获取该障碍物的运 动信息,该运动信息包括位置信息,基于位置信息从第二缓存中获取该位置信息对应的ID, 然后将该ID及其对应的位置信息从第二缓存中删除;可选地,由于第二缓存中不同障碍物的 位置信息的更新时间不一致,会导致具有相同位置信息的障碍物可能有多个,比如在时刻t1 时,障碍物z1和障碍物z2的位置信息分别为ad1和ad2,在时刻t2时,障碍物z1的位置信 息从ad1更新为ad2,障碍物z2的位置信息没更新,此时,在第二缓存中障碍物z1的位置信 息与障碍物z2的位置信息相同,基于位置信息ad2可从第二缓存中获取障碍物的ID:z1和 z2,因此根据需要删除的障碍物的ID将该障碍物的位置信息及ID从第二缓存中删除,根据 需要删除的障碍物障碍物的ID哈希值从第一缓存中将需要删除的障碍物障碍物的运动信息 删除。
可选地,删除的具体方式可以为:获取需要删除的障碍物的ID;对需要删除的障碍物的 ID进行哈希处理,得到需要删除的障碍物的ID哈希值,基于需要删除的障碍物的ID哈希值 从障碍物资源池的第一缓存中获取需要删除的障碍物的运动信息,该运动信息包括位置信息, 基于位置信息从第二缓存中获取该位置信息对应的ID,由于同一位置信息在第一缓存和第二 缓存中存储精度可能不一致,导致基于从第一缓存中获取的位置信息无法从第二缓存中确定 该位置信息对应的ID,因此基于从第一缓存中获取的位置信息从第二缓存中获取一个或多个 ID,该一个或多个ID对应的位置信息与从第一缓存中获取的位置信息之间差值的绝对值小于 预设距离,然后将一个或多个ID及其对应的位置信息中与需要删除障碍物的ID相同的ID 及其对应的位置信息从第二缓存中删除。
在仿真测试场景中引入障碍物资源池,实现了对仿真测试场景中的障碍物的统一管理。
需要指出的是,对于测试场景中的任一障碍物X,从仿真测试装置角度可以将障碍物X 看成一个函数或者模型,该函数或者模型运行于仿真测试装置的CPU上,障碍物资源池保存 运行内存上,运行内存中包括一个消息队列;在测试过程中需要实时向障碍物资源池发送障 碍物X的运动信息,并且还可以从障碍物资源池中获取障碍物X的预设区域内的第三障碍物, 还可以从障碍物资源池中获取任一障碍物的运动信息;具体是CPU向运行内存发送上报消息, 该上报消息携带有障碍物X的ID哈希值及障碍物X的实时运动信息,运行内存将上报消息 保存在消息队列中,CPU还可以向运行内存发送第一获取请求消息,该第一获取请求消息用 于请求获取障碍物X的预设范围内的障碍物的ID,且该第一获取请求消息携带有障碍物X 的ID哈希值;运行内存将该第一获取请求消息保存在消息队列中;CPU还可以向运行内存 发送第二获取请求消息,该第二获取请求消息用于请求获取障碍物E的运动信息,该第二获 取请求消息携带有障碍物E的ID哈希值;运行内存可以从消息队列中依次或者并行读取消 息并执行相应的操作;比如若读取的是上报消息,则运行内存根将上报消息中携带的ID哈希 值将携带的实时运动信息保存至障碍物资源池中;若读取的是第一获取请求消息,运行内存 根据障碍物X的ID哈希值从障碍物资源池的第一缓存中获取障碍物X的运动信息,该运动 信息包括位置信息,再根据障碍物X的位置信息从第二缓存中获取位于障碍物X的预设范围 内的障碍物的ID;运行内存在获取障碍物X的预设范围内的障碍物的ID后,将向CPU发送 响应消息,该响应消息携带有障碍物X的预设范围内的障碍物的ID;若读取的是第二获取请 求消息,运行内存根据障碍物E的ID哈希值从障碍物资源池中的第一缓存中获取障碍物E 的运动信息,并向CPU发送携带障碍物E的运动信息的第二响应消息。其中上报消息不需要 响应,因此上报消息可以看成异步请求消息;第一获取请求消息和第二获取请求消息需要响 应,因此第一获取请求消息和第二获取请求消息可以看成同步请求消息,如图6所示。在运 行内存针对任一消息执行完对应的操作后,运行内存将该消息从消息队列中删除。上述消息 队列可以看成障碍物与障碍物资源池之间的数据通道。通过对多个上报消息或者多个请求消 息的并行处理,确保了资源池与障碍物之间数据通道通信的高效低时延。
在确定需要发送与障碍物X相关的请求消息时,其中,请求消息中包括障碍物X的信息, 包括但不限于障碍物X的ID哈希值、位置以及视野范围内障碍物的信息,将障碍物X的信 息保存至障碍物X的请求缓存中,打包成上报消息或者请求消息,对于请求消息,CPU在得 到对应的响应消息后,将该响应消息保存至障碍物X的响应缓存中,如图6所示。
可选地,第一获取请求消息用于请求获取的可以是视野内的障碍物的ID,也可以是视野 内的障碍物的运动信息;在请求获取的是视野内的障碍物的运动信息时,在基于视野内的ID 从障碍物中确定目标障碍物后,需要再发送用于请求获取目标障碍物的运动信息的请求消息。
按照上述方式,可以实现多个障碍物,比如包括精确轨迹障碍物、导航型障碍物、宏观 交通流和路测障碍物之间的交互,更加真实地模拟现实驾驶环境,提高了自动驾驶算法测试 结果的准确性。
S205、根据n个障碍物的第一运动信息获取与自车与n个第一障碍物的交互结果,并根 据该交互结果确定自动驾驶算法的测试结果。
其中,交互结果包括但不限于安全跟车、追尾、安全超车、超车发生碰撞、避障失败与 障碍物发生碰撞、避障成功等。
举例说明,如图3b所示,位于障碍物A的预设区域内的障碍物包括障碍物B、障碍物C 和障碍物D;根据障碍物A、B、C和D中每个障碍物的位置信息,可以确定障碍物B位于 障碍物A的前方,障碍物C和障碍物D分别位于障碍物A的右后方和左后方;假设障碍物 A的运动方式为往右变道,障碍物C与障碍物A有潜在交互,因此障碍物A的周围障碍物为 上述障碍物C;根据障碍物C的初始运动信息确定障碍物C是速度保持不变行驶,控制障碍 物A向右变道;对于自车,其预设范围内的障碍物包括障碍物A、障碍物B和障碍物C,假 设自车的预设交互方式为向左变道,与自车有潜在交互的障碍物包括障碍物A和障碍物C; 按照障碍物C的运动信息确定障碍物C速度保持不变行驶,若自车向右变道,则自车与障碍 物的交互结果包括与障碍物A发生碰撞,与障碍物C为发生碰撞;若自车保持速度和方向不 变行驶,则自车与障碍物的交互结果包括与障碍物A和障碍物C均未发生碰撞。
再举例说明,自车向前行驶,上述第二障碍物位于自车前方的障碍物,可以根据自车的 坐标及上述多个第一障碍物的坐标从多个第一障碍物中确定一个或多个第二障碍物,第二障 碍物为多个第一障碍物中位于自车前方的障碍物;假设预设交互动作为跟车,则第三障碍物 为与自车位于同一车道的障碍物,如图5中的a图所示,第三障碍物为障碍物1;假设根据 障碍物1的运动信息确定障碍物1是减速,且自车此时是加速或者速度保持不变,则确定交 互结果是追尾;假设根据障碍物1的运动信息确定障碍物1是加速,且自车此时是减速或者 速度保持不变,则确定交互结果是跟车失败。
假设预设交互动作为自车向前行驶,如图5中b图所示,第三障碍物为障碍物2,根据 障碍物2的运动信息确定障碍物2即将插入本车道,此时可以控制自车可以加速超车、或者 减速避让,或者停车避让;交互结果可以为加速安全通过、加速超车发生碰撞、减速或停车 避让成功;
假设预设交互动作为向右变道,第三障碍物为左后方及后方的障碍物,如图5中的c图 所示的障碍物3;根据障碍物3的运动信息确定障碍物3速度保持不变行驶;此时可以自车 向左变道并加速,交互结果可以为向左变道成功。
按照上述方式,可以得到自车与障碍物的交互结果。
在一个可选的实施例中,在仿真测试装置的显示界面上实时显示自车及自车视野内障碍 物,或者实时显示自车与N个障碍物。
在一个示例中,可以从任务完成度、是否符合交通规则、安全、车辆舒适性和通行效率 中的任一维度或者多个维度组合对交互结果进行分析,进而确定自动驾驶算法的测试结果, 该测试结果包括通过测试和未通过测试。
可选地,交互结果可以分为安全驾驶和危险驾驶,分别统计交互结果中安全驾驶的次数 和危险驾驶的次数,然后根据安全驾驶的次数和危险驾驶的次数计算安全驾驶的比例;当安 全驾驶的比例高于预设比例时,则确定自动驾驶算法通过测试;当安全驾驶的比例不高于预 设比例时,则确定自动驾驶算法通过测试。
当然,交互结果还可以基于自动驾驶算法任务完成度、是否符合交通规则、车辆舒适性 和通行效率任一维度;当然还可以基于任务完成度、是否符合交通规则、车辆舒适性和通行 效率多个维度对交互结果进行分析,进而确定自动驾驶算法是否通过测试。
在一个具体的示例中,以在宏观交通流背景中测试自车对导航型障碍物进行超车抢道的 功能,具体步骤包括:
S801、在测试场景中部署精细化轨迹障碍物。
具体地,获取精细化轨迹障碍物的配置信息,精细化轨迹障碍物的配置信息包括但不限 于障碍物的子类型、起点坐标,终点坐标、行驶轨迹点坐标和速度,其中,障碍物的子类型 为汽车。在测试过程中,根据配置信息,按照车辆动力学模型及dubins曲线控制精细化轨迹 障碍物运行。车辆动力学模型可参见上述实施例的相关描述,在此不再叙述。
S802、在测试场景中部署导航型障碍物。
具体地,获取导航型障碍物的配置信息,该配置信息包括但不限于障碍物的子类型、速 度、起点坐标和终点坐标。基于起点坐标和终点坐标为导航型障碍物规划行驶路径。在测试 过程中,导航型障碍物可进行避障、变道、与其他障碍物进行交互,比如导航型障碍物在行 驶过程中,发现前方有障碍物影响行驶,则导航型障碍物停车或者变道,体现了障碍物之间 的交互。如图8所示,两条黄线内的区域为导航型障碍物的视野,两条黄线内的一条线为导 航型障碍物的轨迹线。
S803、在测试场景中部署宏观交通流。
具体地,获取宏观交通流的配置信息,该配置信息包括但不限于障碍物的数量、障碍物 的子类型、速度、起点坐标和终点坐标等。宏观交通流的配置信息可以是导入的配置文件中 解析得到的,也可以是用户输入的;在得到该配置信息后,将该配置信息发送至接入的第三 方交通流软件中,第三方交通流软件基于输入的配置信息生成宏观交通流,并将生成的宏观 交通流输入至仿真测试软件中,已完成在测试场景中部署宏观交通流。
S804、构建障碍物资源池与障碍物进行数据交互的数据通道。
在此需要说明的是,数据通道的相关描述可看见针对上述图6的描述,在此不再叙述。
通过对多个上报消息或者多个请求消息的并行处理,确保了资源池与障碍物之间通信的 高效低时延。
S805、以障碍物ID作为关键信息,利用哈希算法对障碍物信息进行存储。
具体地,精细化轨迹障碍物的配置信息、导航型障碍物的配置信息和宏观交通流的配置 信息中分别解析出精细化轨迹障碍物的初始运动信息、导航型障碍物的初始运动信息和宏观 交通流的初始运动信息;以这些障碍物的ID为索引,将这些障碍物的运动信息保存至障碍物 资源池中。
可选地,分别对精细化轨迹障碍物ID、导航型障碍物ID和宏观交通流的ID进行哈希处 理,以得到精细化轨迹障碍物ID哈希值、导航型障碍物ID哈希值和宏观交通流的ID哈希 值;将上述障碍物的初始运动信息保存至障碍物资源池的第一缓存中上述障碍物的ID哈希值 所指示的存储空间中并以这些障碍物的初始位置信息为索引,将这些障碍物的位置信息及ID 保存至障碍物资源池的第二缓存中。通过引入障碍物资源池,实现了对测试场景中的障碍物 进行统一管理。
在一个可行的实施例中,在测试过程中,测试场景内的障碍物的运动信息是在发生变化 的,为了便于障碍物资源池管理测试场景中的障碍物,实时获取测试场景内各障碍物的运动 信息,并更新障碍物资源池中障碍物的运动信息,具体实现过程可参见步骤S203的相关描述。
在一个可行的实施例中,在测试过程中,为了增加测试场景的复杂性,可以根据用户指 令向测试场景中增加新的障碍物,并将新增障碍物的ID及运动信息保存至障碍物资源池,以 便于管理,具体实现过程可参见步骤S203的相关描述。其中,新增的障碍物可以为精细化轨 迹障碍物、导航型障碍物、宏观交通流和路测障碍物中的部分或者全部。
在一个可行的实施例中,在测试过程中,测试场景中会存在对自车行驶没影响的障碍物, 对于这些障碍物,可以根据这些障碍物的ID,从障碍物资源池将这些障碍物的运动信息删除, 具体实现过程可参见步骤S203的相关描述,从而实现将这些障碍物从测试场景中删除。其中, 这些障碍物可以为精细化轨迹障碍物、导航型障碍物、宏观交通流和路测障碍物中的部分或 者全部。
S806、根据导航型障碍物的ID,从障碍物资源池中获取导航型障碍物的视野内的障碍物 及其运动信息;再根据导航型障碍物的运动方式从导航型障碍物视野内的障碍物确定出目标 障碍物及其运动信息,并根据目标障碍物的运动信息控制导航型障碍物运行。
具体地,CPU向运行内存发送携带导航型障碍物的ID哈希值的获取请求消息,该获取 请求消息用于请求获取导航型障碍物视野范围内的障碍物;运动内存根据障碍物ID哈希值从 障碍物资源池的第一缓存中获取导航型障碍物的运动信息,该运动信息包括位置信息;运行 内存根据导航型障碍物的位置信息从障碍物资源池的第二缓存中获取位于导航型障碍物的视 野内的障碍物的位置及ID;或者直接根据获取请求消息中携带的导航型障碍物的位置,及障 碍物资源池中各障碍物的位置,获取位于导航型障碍物的视野内的障碍物;其中,导航型障 碍物的视野为以导航型障碍物为中心的圆形区域或者方形区域,如图9所示,当然还可以是 其他形状;向CPU发送携带导航型障碍物的视野内的障碍物的ID及运动信息的响应消息; CPU根据导航型障碍物的运动方式从导航型障碍物视野内的障碍物中获取目标障碍物,比如 导航型障碍物向前行驶时,导航型障碍物的目标障碍物包括导航型障碍物视野内的障碍物中 位于自车前方或者右前方的障碍物;再比如导航型障碍物向左变道时,导航型障碍物的目标 障碍物包括导航型障碍物视野内的障碍物中位于自车左侧或者左后方的障碍物;最后根据目 标障碍物的运动信息预测目标障碍物的运动方式,根据目标障碍物的运动方式控制导航型障 碍物运动,从而实现障碍物之间的交互。比如导航型障碍物向前行驶时,前方障碍物停止不 动,导航型障碍物停车或者变道以免追尾,如图9所示,导航型障碍物的前方有一条横线, 表示导航型障碍物停车。
在此需要说明的是,障碍物与资源池之间的数据通道的具体描述可参见图6的相关描述, 在此不再叙述。
S807、在自车向右变道时获取自车与自车的障碍物的交互结果。
具体地,根据自车的位置信息从障碍物资源池中获取T个第二障碍物的ID和运动信息, 该T个第二障碍物为自车视野内的障碍物,T为大于0的整数;如图7所示,虚线框内的区 域为自车的视野,自车视野内的障碍物包括宏观交通流的部分、精细化轨迹障碍物和导航型 障碍物;根据自车预设的交互方式(比如向右变道)和T个第二障碍物的位置信息从T个第 二障碍物中确定自车的障碍物,并获取自车的障碍物的运动信息,自车的障碍物为位于自车 右后方的导航型障碍物;根据右前方的导航型障碍物的运动信息及自车的运动信息确定自车 与右后方导航型障碍物的交互结果。交互结果包括变道成功且变道后自车位于右后方障碍物 的前方、变道成功且变道后自车位于右后方障碍物的后方或者自车与右后方障碍物发生碰撞。
S808、根据交互结果确定自动驾驶算法的测试结果。
比如,若交互结果为变道成功且变道后自车位于右后方障碍物的前方或者变道成功且变 道后自车位于右后方障碍物的后方,自动驾驶算法通过测试;若交互结果为自车与右后方障 碍物发生碰撞,则自动驾驶算法未通过测试。
通过引入障碍物资源池,实现了对测试场景中的障碍物进行统一管理;对测试场景中障 碍物的增加、删除和更新,也只需要对障碍物资源池进行管理,不需要多节点多数据通道互 相传递数据,简化了仿真平台数据通信的复杂度,提高了仿真效率;在测试场景中增加障碍 物,可实现对指定场景的细节仿真,极大提高了仿真场景的灵活性和智能性;通过基于障碍 物的位置在障碍物资源池的第二缓存中确定该障碍物的视野内的障碍物,在障碍物资源池中 是以位置信息为索引的,通过位置信息在第二缓存中搜索障碍物的视野内的障碍物,提高了 查询效率,高效地实现了障碍物之间的交互。
在另一个具体的示例中,以在路测障碍物与其他障碍物构成的HIL场景下测试路测障碍 物对自车向右变道策略的影响,具体步骤包括:
S1001、在测试场景中部署精细化轨迹障碍物。
S1002、在测试场景中部署导航型障碍物。
S1003、在测试场景中部署宏观交通流。
在此需要说明的是,步骤S1001-S1003的具体实现过程可参见步骤S801-S803的相关描 述,在此不再叙述。
S1004、在测试场景中配置路测障碍物。
具体地,获取路测障碍物的配置信息,该配置信息包括但不限于路测障碍物的子类型, 路测障碍物在真实路测场景中的初始位置和速度等。至此构建出如图10所示的测试场景。
S1005、构建障碍物资源池与障碍物进行数据交互的数据通道。
在此需要说明的是,数据通道的相关描述可看见针对上述图6的描述,在此不再叙述。
通过对多个上报消息或者多个请求消息的并行处理,确保了资源池与障碍物之间通信的 高效低时延。
S1006、以障碍物ID作为关键信息,利用哈希算法对障碍物信息进行存储。
具体地,精细化轨迹障碍物的配置信息、导航型障碍物的配置信息、宏观交通流的配置 信息和路测障碍物的配置信息中分别解析出精细化轨迹障碍物的初始运动信息、导航型障碍 物的初始运动信息、宏观交通流的初始运动信息和路测障碍物的的初始运动信息;以这些障 碍物的ID为索引,将这些障碍物的运动信息保存至障碍物资源池中。
可选地,分别对精细化轨迹障碍物ID、导航型障碍物ID和宏观交通流的ID进行哈希处 理,以得到精细化轨迹障碍物ID哈希值、导航型障碍物ID哈希值和宏观交通流的ID哈希 值;将上述障碍物的初始运动信息保存至障碍物资源池的第一缓存中上述障碍物的ID哈希值 所指示的存储空间中并以这些障碍物的初始位置信息为索引,将这些障碍物的位置信息及ID 保存至障碍物资源池的第二缓存中。通过引入障碍物资源池,实现了对测试场景中的障碍物 进行统一管理。并且在障碍物资源池中以位置信息为索引存储障碍物的ID,可以快速搜素到 障碍物视野内的障碍物的ID,进而基于ID获取障碍物的运动信息,提高了搜索效率。
S1007、根据路测障碍物的ID,从障碍物资源池中获取路测障碍物的视野内的障碍物及 其运动信息;再根据路测障碍物的运动方式从路测障碍物视野内的障碍物中确定目标障碍物 及其运动信息,并根据目标障碍物的运动信息控制路测障碍物运行。
如图10所示,根据路测障碍物位置确定的路侧障碍物视野内的障碍物包括宏观交通流、 在路测障碍物右后方行驶的自车;路测障碍物跟在与其同向行驶的宏观交通流后行驶,因此 路测障碍物的目标障碍物为其同向行驶的宏观交通流;当该宏观交通流减速或者停车时,为 了避免路测障碍物追尾,控制路测障碍物向右变道。路测障碍物与宏观交通流进行交互,路 测障碍物与该宏观交通流构成一种增强型HIL场景。
S1008、在自车向右变道时获取自车与自车的障碍物的交互结果。
具体地,根据自车的位置信息从障碍物资源池中获取T个第二障碍物的ID和运动信息, 该T个第二障碍物为自车视野内的障碍物,T为大于0的整数;如图10所示,自车的视野如 图10中的虚线框所示,T个个第二障碍物包括位于虚线框内的障碍物,根据预设交互方式, 比如向右变道,及T个第二障碍物的位置信息从T个第二障碍物中确定自车的障碍物,自车 的障碍物包括位于自车右后方的导航型障碍物和位于自车右前方且向自车所在车道进行变道 的路测障碍物;获取自车的障碍物的运动信息;根据自车的障碍物的运动信息及自车的运动 信息确定自车与自车的障碍物的交互结果。交互结果包括自车停止向右变道且与路测障碍物 发生碰撞、自车停止向右变道且未与路测障碍物发生碰撞、自车向右变道时与右后方导航型 障碍物发生碰撞或者自车向右变道时未与右后方导航型障碍物发生碰撞。
S1009、根据交互结果确定自动驾驶算法的测试结果。
具体地,自车与右后方障碍物或者路测障碍物发生碰撞时,确定自动驾驶算法未通过测 试;自车与右后方障碍物或者路测障碍物未发生碰撞时,确定自动驾驶算法通过测试。
通过引入路测障碍物,并且利用路测障碍物与其他障碍物的交互,构建了增强型HIL场 景,有效的利用道路测试采集的数据,使得路测采集的真实场景内的障碍物具有动态交互性, 并为复杂场景的部署提供了便利。
参见图11,图11为本申请实施例提供的一种仿真测试装置的结构示意图。如图11所示, 该仿真测试装置1100包括:精细化轨迹障碍物生成模块1101、导航型障碍物生成模块1102、 交通流模块1103、HIL障碍物模块1104、资源池模块1105、仿真模块1106和障碍物可视化 模块1107;
精细化障碍物生成模块1101,用于根据精细化障碍物的属性生成精细化轨迹障碍物,再 采用车辆动力学模型及Dubins曲线,根据精细化障碍物的属性生成精细化轨迹障碍物;其中, 该精细化轨迹障碍物的属性包括但不限于障碍物的类型、速度、起点坐标、轨迹点坐标、终 点坐标等;
导航型障碍物生成模块1102,用于根据导航型障碍物的属性生成导航型障碍物,导航型 障碍物的属性包括但不限于障碍物的类型、速度、起点坐标、终点坐标。(通过高精度地图基 于起点坐标和终点坐标该障碍物的轨迹);
交通流模块1103,用于在测试场景中部署宏观交通流,该交通流的属性,包括但不限于 交通流中障碍物的数量、障碍物类型、起点坐标和终点坐标等;根据交通流的属性生成交通 流;可选地,通过第三方交通流软件根据交通流的属性生成交通流;或者将交通流的属性发 送至第三方设备,第三方设备通过第三方交通流软件根据交通流的属性生成交通流,并将该 交通流发生至交通流模块1103;
路测障碍物模块1104,用于在测试场景中部署路测障碍物,路测障碍物的属性包括但不 限于路测障碍物的子类型、坐标、速度和航向角的。需要指出的是,路测障碍物在与其他障 碍物(比如精细化轨迹障碍物、导航型障碍物或者宏观交通流)进行交互时,路测障碍物与 其他障碍物构成一种增强型HIL场景。
资源池模块1105,用于根据上述各障碍物的ID存储上述各障碍物的运动信息。具体地, 障碍物资源池包括第一缓存和第二缓存,对于障碍物的ID进行哈希处理,得到障碍物的ID 哈希值,并以ID哈希值为存储地址,将障碍物的运动信息存储至第一缓存中ID哈希值所指 示的存储空间中;并以障碍物的位置信息为索引,将障碍物的ID和位置信息保存至第二缓存 中。
仿真模块1106,用于在对自动驾驶算法进行测试的过程中,对测试场景中的每个障碍物, 实时获取与该障碍物有潜在交互的障碍物的运动信息,并基于这些运动信息控制上述障碍物 运动,实现障碍物与障碍物之间的交互;对于基于自动驾驶算法运动的自车,获取与自车有 潜在交互的障碍物的运动信息,并基于自车的运动信息和这些障碍物的运动获取交互结果, 并基于交互结果判断自动驾驶算法是否通过测试。
在此需要指出的是,仿真模块1106的功能实现过程具体参见步骤S203-S205、S805-S807 及S1006-S1009的相关描述,在此不再叙述。
障碍物可视化模块1107,用于在显示界面上实时显示上述各障碍物及自车之间的位置关 系。
参见图12,图12为本申请实施例提供的一种仿真测试装置的结构示意图。如图12所示, 该仿真测试装置1200包括:
获取单元1201,用于按照自动驾驶算法的测试功能从障碍物集合中获取N个障碍物;该 N个障碍物包括自车的障碍物和自车障碍物的周围障碍物,N个障碍物的类型包括精细化轨 迹障碍物、导航型障碍物、宏观交通流和路测障碍物中的部分或者全部;N为大于0的整数;
保存单元1202,用于将N个障碍物中每个障碍物的ID及初始运动信息保存至障碍物资 源池;
仿真测试单元1203,用于根据第一障碍物ID从障碍物资源池中获取第一障碍物的周围 障碍物的运动信息,并根据第一障碍物的周围障碍物的运动信息控制第一障碍物运行,得到 每个障碍物的第一运动信息;将障碍物资源池中第一障碍物的初始运动信息更新为第一障碍 物的第一运动信息;根据自车的位置信息从障碍物资源池获取n个障碍物的第一运动信息,n 个障碍物为自车的障碍物,n小于或等于N;根据n个障碍物的第一运动信息获取自车与n 个障碍物的交互结果;根据交互结果确定自动驾驶算法的测试结果。
在一个可行的实施例中,障碍物资源池包括第一缓存和第二缓存,初始运动信息包括初 始位置信息,仿真测试装置1200还包括:
处理单元1204,用于对N个障碍物中的每个障碍物的ID进行哈希处理,得到每个障碍 物的ID哈希值,每个障碍物的ID哈希值用于指示该障碍物的运动信息在第一缓存中的存储 空间;
保存单元1202具体用于:
将N个障碍物中每个障碍物的初始运动信息保存至第一缓存中该障碍物的ID哈希值所 指示的存储空间中;以N个障碍物中的每个障碍物的初始位置信息为索引,将每个障碍物的 ID及初始位置信息保存至第二缓存中。
在一个可行的实施例中,障碍物资源池包括第一缓存和第二缓存,在根据第一障碍物的 ID从障碍物资源池中获取第一障碍物的周围障碍物的初始运动信息的方面,仿真测试单元 1203具体用于:
根据第一障碍物的ID哈希值从第一缓存中获取第一障碍物的初始运动信息,该初始运动 信息包括初始位置信息,第一障碍物的ID哈希值是对第一障碍物的ID进行哈希处理得到的; 根据第一障碍物的初始位置信息从第二缓存中获取S个障碍物的ID,S个障碍物为位于第一 障碍物的预设区域内的障碍物,第一障碍物的预设区域是基于第一障碍物的初始位置信息确 定的,S小于或等于N;根据第一障碍物的运动方式从S个障碍物中确定第一障碍物的周围 障碍物,第一障碍物的周围障碍物为S个障碍物中在第一障碍物按照运动方式运动时与第一 障碍物有潜在交互的障碍物;根据第一障碍物的周围障碍物的ID哈希值从第一缓存中获取周 围障碍物的初始运动信息,第一障碍物的周围障碍物的ID哈希值是对第一障碍物的周围障碍 物的ID进行哈希处理得到的。
在一个可行的实施例中,第一运动信息包括第一位置信息,在将障碍物资源池中第一障 碍物的初始运动信息更新为第一运动信息的方面,仿真测试单元1203具体用于:
根据第一障碍物的初始位置信息从第二缓存中确定第一障碍物的初始位置信息对应的 ID,若第一障碍物的初始位置信息对应的ID为该第一障碍物的ID,则将第二缓存中第一障 碍物的初始位置信息更新为第一障碍物的第一位置信息;根据第一障碍物的ID哈希值将第一 缓存中第一障碍物的初始运动信息更新为第一运动信息。
在一个可行的实施例中,第一运动信息包括第一位置信息,在根据自车的位置信息从障 碍物资源池中获取n个障碍物的第一运动信息的方面,仿真测试单元1203具体用于:
根据自车的位置信息从第二缓存中确定M个障碍物的ID及第一位置信息,M个障碍物 为位于自车的预设范围内的障碍物;自车的预设范围是基于自车的位置信息确定的,M为小 于或等于N的正整数;根据预设交互方式和M个障碍物的第一位置信息从M个障碍物中确 定n个障碍物;n个障碍物为与自车存在潜在交互的障碍物;根据n个障碍物中每个障碍物 的ID哈希值从第一缓存中确定n个障碍物中每个障碍物的第一运动信息。
需要说明的是,上述各单元(获取单元1201、保存单元1202、仿真测试单元1203和处 理单元1204)用于执行上述方法的步骤S201-S205的相关内容。其中,获取单元1201用于执行步骤S201的相关内容,保存单元1202用于执行步骤S202的相关内容,仿真测试单元用于执行步骤S203-S205的相关内容。
在本实施例中,仿真测试装置1200是以单元的形式来呈现。这里的“单元”可以指特定应 用集成电路(application-specific integrated circuit,ASIC),执行一个或多个软件或固件程序的 处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。此外,以上获取单元 1201、保存单元1202、仿真测试单元1203和处理单元1204可通过图13所示的仿真测试装 置的处理器1301来实现。
如图13所示仿真测试装置1300可以以图13中的结构来实现,该仿真测试装置1300包 括至少一个处理器1301,至少一个存储器1302以及至少一个通信接口1303。所述处理器1301、 所述存储器1302和所述通信接口1303通过所述通信总线连接并完成相互间的通信。
处理器1301可以是通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集 成电路。
通信接口1303,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器1302可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的 其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息 和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory, CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝 光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结 构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是 独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器1302用于存储执行以上方案的应用程序代码,并由处理器1301来控 制执行。所述处理器1301用于执行所述存储器1302中存储的应用程序代码。
存储器1302存储的代码可执行以上提供的任一种自动驾驶算法的测试方法,比如:按照 自动驾驶算法的测试功能从障碍物集合中获取N个障碍物,N个障碍物包括自车的的障碍物 和该自车的障碍物的周围障碍物,N为大于0的整数;将N个障碍物中每个障碍物的ID及 初始运动信息保存至障碍物资源池中;根据第一障碍物的ID从障碍物资源池中获取第一障碍 物的周围障碍物的运动信息,并根据第一障碍物的周围障碍物的运动信息控制第一障碍物运 行,得到第一障碍物的运动信息;将每个障碍物的运动信息保存至障碍物资源池中;根据自 车的位置信息从障碍物资源池中获取n个障碍物的第一运功信息,该n个障碍物为自车的障 碍物,n小于或等于N,根据n个障碍物的第一运动信息获取自车与n个障碍物的交互结果; 根据交互结果确定自动驾驶算法的测试结果。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该 程序执行时包括上述方法实施例中记载的任何一种自动驾驶算法的测试方法的部分或全部步 骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动 作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据 本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说 明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可 以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。 例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功 能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到 另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或 直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性 或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部 件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元 上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个 单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以 采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以 存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现 有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计 算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算 机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的 存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程 序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括: 闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方 式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对 于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之 处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (14)

1.一种自动驾驶算法的测试方法,其特征在于,包括:
按照所述自动驾驶算法的测试功能从障碍物集合中获取N个障碍物;所述N个障碍物包括自车的障碍物和所述自车的障碍物的周围障碍物,所述N个障碍物的类型包括精细化轨迹障碍物、导航型障碍物、宏观交通流和真实路测障碍物中的部分或者全部;所述N为大于0的整数;
将所述N个障碍物中每个障碍物的ID及初始运动信息保存至障碍物资源池中;
根据第一障碍物的ID从所述障碍物资源池中获取所述第一障碍物的周围障碍物的初始运动信息,并根据所述第一障碍物的周围障碍物的初始运动信息控制所述第一障碍物运行,得到所述第一障碍物的第一运动信息;将所述障碍物资源池所述第一障碍物的初始运动信息更新为所述第一运动信息,所述第一障碍物为所述N个障碍物中的任意一个;
根据自车的位置信息从所述障碍物资源池中获取n个障碍物的第一运动信息;所述n个障碍物为所述自车的障碍物,n小于或等于N;
根据所述n个障碍物的第一运动信息获取所述自车与所述n个障碍物的交互结果;
根据所述交互结果确定所述自动驾驶算法的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述障碍物资源池包括第一缓存和第二缓存,所述初始运动信息包括初始位置信息,所述方法还包括:
对所述N个障碍物中的每个障碍物的ID进行哈希处理,得到所述每个障碍物的ID哈希值,
所述将所述N个障碍物中每个障碍物的ID及初始运动信息保存至障碍物资源池中,包括:
将所述N个障碍物中每个障碍物的初始运动信息保存至所述第一缓存中该障碍物的ID哈希值所指示的存储空间中;
以所述N个障碍物中的每个障碍物的初始位置信息为索引,将该障碍物的ID及初始位置信息保存至所述第二缓存中。
3.根据权利要求1或2所述的方法,其特征在于,所述障碍物资源池包括第一缓存和第二缓存,所述根据第一障碍物的ID从所述障碍物资源池中获取所述第一障碍物的周围障碍物的初始运动信息,包括:
根据所述第一障碍物的ID哈希值从所述第一缓存中获取所述第一障碍物的初始运动信息,所述初始运动信息包括初始位置信息,所述第一障碍物的ID哈希值是对所述第一障碍物的ID进行哈希处理得到的;
根据所述第一障碍物的初始位置信息从第二缓存获取S个障碍物的ID,所述S个障碍物为位于所述第一障碍物的预设区域内的障碍物;所述第一障碍物的预设区域是基于所述第一障碍物的初始位置信息确定的,所述S小于或者等于N;
根据所述第一障碍物的运动方式从所述S个障碍物确定所述第一障碍物的周围障碍物;所述第一障碍物的周围障碍物为所述S个障碍物中,在所述第一障碍物按照所述运动方式运动时与所述第一障碍物有潜在交互的障碍物;
根据所述第一障碍物的周围障碍物的ID哈希值从所述第一缓存中获取所述周围障碍物的初始运动信息,所述第一障碍物的周围障碍物的ID哈希值是对所述周围障碍物的ID进行哈希处理得到的。
4.根据权利要求3所述的方法,其特征在于,所述第一运动信息包括第一位置信息,所述将所述障碍物资源池所述第一障碍物的初始运动信息更新为所述第一运动信息,包括:
根据所述第一障碍物的初始位置信息从所述第二缓存中确定所述第一障碍物的初始位置信息对应的ID,若所述第一障碍物的初始位置信息对应的ID为该第一障碍物的ID,则将所述第二缓存中所述第一障碍物的初始位置信息更新为所述第一障碍物的第一位置信息;
根据所述第一障碍物的ID哈希值将所述第一缓存中所述第一障碍物的初始运动信息更新为所述第一运动信息。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述第一运动信息包括第一位置信息,所述根据自车的位置信息从所述障碍物资源池中获取n个障碍物的第一运动信息,包括:
根据所述自车的位置信息从所述第二缓存中确定M个障碍物的ID及第一位置信息,所述M个障碍物为位于所述自车的预设范围内的障碍物;所述自车的预设范围是基于所述自车的位置信息确定的,所述M为小于或等于N的正整数;
根据预设交互方式和所述M个障碍物的第一位置信息从所述M个障碍物中确定n个障碍物;所述n个障碍物为与所述自车存在潜在交互的障碍物;
根据所述n个障碍物中每个障碍物的ID哈希值从所述第一缓存中确定所述n个障碍物中每个障碍物的第一运动信息。
6.一种仿真测试装置,其特征在于,包括:
获取单元,用于按照所述自动驾驶算法的测试功能从障碍物集合中获取N个障碍物;所述N个障碍物包括自车的障碍物和所述自车障碍物的周围障碍物,所述N个障碍物的类型包括精细化轨迹障碍物、导航型障碍物、宏观交通流和真实路测障碍物中的部分或者全部;所述N为大于0的整数;
存储单元,用于将所述N个障碍物中每个障碍物的ID及初始运动信息保存至障碍物资源池中;
仿真测试单元,用于根据第一障碍物的ID从所述障碍物资源池中获取所述第一障碍物的周围障碍物的运动信息,并根据所述第一障碍物的周围障碍物的运动信息控制所述第一障碍物运行,得到所述第一障碍物的第一运动信息;将所述障碍物资源池中所述第一障碍物的初始运动信息更新为所述第一运动信息;根据自车的位置信息从所述障碍物资源池获取n个障碍物的第一运动信息,所述n个障碍物为所述自车的障碍物,n小于或等于N;根据所述n个障碍物的第一运动信息获取所述自车与所述n个障碍物的交互结果;根据所述交互结果确定所述自动驾驶算法的测试结果。
7.根据权利要求6所述的装置,其特征在于,所述障碍物资源池包括第一缓存和第二缓存,所述初始运动信息包括初始位置信息,所述装置还包括:
处理单元,用于对所述N个障碍物中的每个障碍物的ID进行哈希处理,得到所述每个障碍物的ID哈希值,
所述保存单元具体用于:
将所述N个障碍物中每个障碍物的初始运动信息保存至所述第一缓存中该障碍物的ID哈希值所指示的存储空间中;
以所述N个障碍物中的每个障碍物的初始位置信息为索引,将所述每个障碍物的ID及初始位置信息保存至所述第二缓存中。
8.根据权利要求6或7所述的装置,其特征在于,所述障碍物资源池包括第一缓存和第二缓存,在所述根据第一障碍物的ID从所述障碍物资源池中获取所述第一障碍物的周围障碍物的初始运动信息的方面,所述仿真测试单元具体用于:
根据所述第一障碍物的ID哈希值从所述第一缓存中获取所述第一障碍物的初始运动信息,所述初始运动信息包括初始位置信息,所述第一障碍物的ID哈希值是对所述第一障碍物的ID进行哈希处理得到的;
根据所述第一障碍物的初始位置信息从所述第二缓存中获取S个障碍物的ID,所述S个障碍物为位于所述第一障碍物的预设区域内的障碍物,所述第一障碍物的预设区域是基于所述第一障碍物的初始位置信息确定的,所述S小于或等于N;
根据所述第一障碍物的运动方式从所述S个障碍物中确定所述第一障碍物的周围障碍物,所述第一障碍物的周围障碍物为S个障碍物中在所述第一障碍物按照所述运动方式运动时与所述第一障碍物有潜在交互的障碍物;
根据所述第一障碍物的周围障碍物的ID哈希值从所述第一缓存中获取所述周围障碍物的初始运动信息,所述第一障碍物的周围障碍物的ID哈希值是对所述周围障碍物的ID进行哈希处理得到的。
9.根据权利要求8所述的装置,其特征在于,所述第一运动信息包括第一位置信息,在所述将所述障碍物资源池中所述第一障碍物的初始运动信息更新为所述第一运动信息的方面,所述仿真测试单元具体用于:
根据所述第一障碍物的初始位置信息从所述第二缓存中确定所述第一障碍物的初始位置信息对应的ID,若所述第一障碍物的初始位置信息对应的ID为该第一障碍物的ID,则将所述第二缓存中所述第一障碍物的初始位置信息更新为所述第一障碍物的第一位置信息;
根据所述第一障碍物的ID哈希值将所述第一缓存中所述第一障碍物的初始运动信息更新为所述第一运动信息。
10.根据权利要求7-9任一项所述的装置,其特征在于,所述第一运动信息包括第一位置信息,在所述根据自车的位置信息从所述障碍物资源池中获取n个障碍物的第一运动信息的方面,所述仿真测试单元具体用于:
根据所述自车的位置信息从所述第二缓存中确定M个障碍物的ID及第一位置信息,所述M个障碍物为位于所述自车的预设范围内的障碍物;所述自车的预设范围是基于所述自车的位置信息确定的,所述M为小于或等于N的正整数;
根据预设交互方式和所述M个障碍物的第一位置信息从所述M个障碍物中确定n个障碍物;所述n个障碍物为与所述自车存在潜在交互的障碍物;
根据所述n个障碍物中每个障碍物的ID哈希值从所述第一缓存中确定所述n个障碍物中每个障碍物的第一运动信息。
11.一种仿真测试装置,其特征在于,包括:
存储器,用于存储指令;以及
处理器,与所述存储器耦合;
其中,当所述处理器执行所述指令时,执行如权利要求1-5任一项所述的方法。
12.一种芯片系统,其特征在于,所述芯片系统应用于电子设备;所述芯片系统包括一个或多个接口电路,以及一个或多个处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述电子设备执行如权利要求1-5中任意一项所述方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-5任一项所述的方法。
14.一种计算机程序产品,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-5任一项所述的方法。
CN202011645222.0A 2020-12-31 2020-12-31 自动驾驶算法测试方法及相关设备 Pending CN114692289A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202011645222.0A CN114692289A (zh) 2020-12-31 2020-12-31 自动驾驶算法测试方法及相关设备
PCT/CN2021/136414 WO2022143057A1 (zh) 2020-12-31 2021-12-08 自动驾驶算法测试方法及相关设备
EP21913798.1A EP4261729A1 (en) 2020-12-31 2021-12-08 Self-driving algorithm testing method and related device
US18/215,581 US20230339513A1 (en) 2020-12-31 2023-06-28 Method for testing autonomous-driving algorithm, and related device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011645222.0A CN114692289A (zh) 2020-12-31 2020-12-31 自动驾驶算法测试方法及相关设备

Publications (1)

Publication Number Publication Date
CN114692289A true CN114692289A (zh) 2022-07-01

Family

ID=82136503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011645222.0A Pending CN114692289A (zh) 2020-12-31 2020-12-31 自动驾驶算法测试方法及相关设备

Country Status (4)

Country Link
US (1) US20230339513A1 (zh)
EP (1) EP4261729A1 (zh)
CN (1) CN114692289A (zh)
WO (1) WO2022143057A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115879323B (zh) * 2023-02-02 2023-05-23 西安深信科创信息技术有限公司 自动驾驶仿真测试方法、电子设备及计算机可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11378961B2 (en) * 2018-04-17 2022-07-05 Baidu Usa Llc Method for generating prediction trajectories of obstacles for autonomous driving vehicles
CN108875998A (zh) * 2018-04-20 2018-11-23 北京智行者科技有限公司 一种自动驾驶车辆规划方法和系统
CN111123732B (zh) * 2018-10-31 2023-06-27 百度在线网络技术(北京)有限公司 自动驾驶车辆仿真的方法、装置、存储介质和终端设备
CN109885066B (zh) * 2019-03-26 2021-08-24 北京经纬恒润科技股份有限公司 一种运动轨迹预测方法及装置
CN111625950B (zh) * 2020-05-20 2023-09-05 北京百度网讯科技有限公司 自动驾驶仿真场景重建方法、装置、设备和介质

Also Published As

Publication number Publication date
US20230339513A1 (en) 2023-10-26
EP4261729A1 (en) 2023-10-18
WO2022143057A1 (zh) 2022-07-07

Similar Documents

Publication Publication Date Title
CN110118661B (zh) 驾驶仿真场景的处理方法、装置及存储介质
US10896122B2 (en) Using divergence to conduct log-based simulations
CN113486531A (zh) 一种车辆行驶路径规划方法、设备及系统
US11385991B1 (en) Collision evaluation for log-based simulations
CN111380555A (zh) 车辆行为预测方法及装置、电子设备、存储介质
CN111731295B (zh) 行驶控制装置、行驶控制方法以及存储程序的存储介质
US11529951B2 (en) Safety system, automated driving system, and methods thereof
CN111932881A (zh) 交通路口管理方法、装置、终端设备及存储介质
CN113212454A (zh) 车辆行驶状态的调整方法、装置、计算机设备和存储介质
US20230339513A1 (en) Method for testing autonomous-driving algorithm, and related device
CN114475656A (zh) 行驶轨迹预测方法、装置、电子设备以及存储介质
CN115497323B (zh) 基于v2x的车辆协同变道方法及设备
CN113511215B (zh) 一种混合自动驾驶决策方法、设备及计算机存储介质
CN115092186A (zh) 一种车辆自动驾驶方法及装置、电子设备、存储介质
WO2023014731A1 (en) System and methods of adaptive relevancy prediction for autonomous driving
CN115112138A (zh) 轨迹规划信息生成方法、装置、电子设备以及存储介质
CN113911135A (zh) 控制装置及控制方法以及车辆
WO2022047476A1 (en) Autonomous vehicle planned route prediction
CN116847401B (zh) 车联网测试方法、设备和可读存储介质
CN112904843B (zh) 一种自动驾驶场景确定方法、装置、电子设备及存储介质
CN112464462B (zh) 一种仿真运行数据的处理方法及装置
US20230415773A1 (en) Validating protolanes with actor behavior flowcharts
US20230418291A1 (en) Testing reuse across protolane families
US20230415767A1 (en) Protolanes for testing autonomous vehicle intent
CN117782136A (zh) 虚拟驾驶辅助导航方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination