CN111881519A - 一种自动驾驶的测试方法、装置、计算机设备及存储介质 - Google Patents
一种自动驾驶的测试方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111881519A CN111881519A CN202010761494.0A CN202010761494A CN111881519A CN 111881519 A CN111881519 A CN 111881519A CN 202010761494 A CN202010761494 A CN 202010761494A CN 111881519 A CN111881519 A CN 111881519A
- Authority
- CN
- China
- Prior art keywords
- automatic driving
- test
- daemon
- cloud service
- daemon process
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/15—Vehicle, aircraft or watercraft design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Aviation & Aerospace Engineering (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Automation & Control Theory (AREA)
- Traffic Control Systems (AREA)
Abstract
本发明实施例公开了一种自动驾驶的测试方法、装置、计算机设备及存储介质,该方法包括:在第一云服务中,响应于测试自动驾驶程序的请求,设置用于测试自动驾驶程序的参数,参数包括真实车辆在路面行驶时采集到的场景数据;从第二云服务中,选定测试自动驾驶程序的机器,机器中已运行守护进程;在第二云服务中,守护进程从第一云服务中读取参数;守护进程模拟操作对象,按照参数在场景数据中对虚拟车辆执行自动驾驶,以测试自动驾驶程序。将真实的场景作为测试场景,由守护进程模拟操作对象执行测试操作,使得整个自动驾驶程序的测试过程更为贴近真实的自动驾驶的路测过程,得到的测试结果更为真实可靠。
Description
技术领域
本发明实施例涉及自动驾驶技术,尤其涉及一种自动驾驶的测试方法、装置、计算机设备及存储介质。
背景技术
自动驾驶作为当前全球汽车与交通出行领域智能化和网联化发展的主要方向,将在未来的交通中具有重要的价值。
为了实现车辆自动驾驶***,针对自动驾驶程序的测试是非常重要的一个环节。目前,最直接的测试方法是把自动驾驶程序部署到真实的车辆上进行测试,这被称为路测。路测过程一般需要安全员在车辆上进行一些操作,比如启动车辆,必要时手动接管车辆,等等。然而,考虑到时间,资源,安全等因素,通常在路测之前需要在虚拟车辆环境下进行一些仿真模拟测试,以保证路测的意义最大化。
现有方法中,应用于自动驾驶***的仿真模拟测试软件,往往通过配置软件的固定参数来生成测试所需的场景数据以及传感器数据,由于这类型的测试软件是纯虚拟的测试环境,得到的测试结果有时不能很好的反映自动驾驶程序在真实车辆上的表现。
发明内容
本发明提供一种自动驾驶的测试方法、装置、计算机设备及存储介质,以解决自动驾驶程序在纯虚拟的测试环境下、测试过程失真的问题。
第一方面,本发明实施例提供了一种自动驾驶的测试方法,包括:
在第一云服务中,响应于测试自动驾驶程序的请求,设置用于测试所述自动驾驶程序的参数,所述参数包括真实车辆在路面行驶时采集到的场景数据;
从第二云服务中,选定测试所述自动驾驶程序的机器,所述机器中已运行守护进程;
在所述第二云服务中,所述守护进程从所述第一云服务中读取所述参数;
所述守护进程模拟操作对象,按照所述参数在所述场景数据中对虚拟车辆执行自动驾驶,以测试所述自动驾驶程序。
第二方面,本发明实施例还提供了一种自动驾驶的测试装置,包括:
请求响应模块,用于在第一云服务中,响应于测试自动驾驶程序的请求,设置用于测试所述自动驾驶程序的参数,所述参数包括真实车辆在路面行驶时采集到的场景数据;
机器确定模块,用于从第二云服务中,选定测试所述自动驾驶程序的机器,所述机器中已运行守护进程;
参数读取模块,用于在所述第二云服务中,所述守护进程从所述第一云服务中读取所述参数;
测试模块,用于所述守护进程模拟操作对象,按照所述参数在所述场景数据中对虚拟车辆执行自动驾驶,以测试所述自动驾驶程序。
第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的测试方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述的测试方法。
在本实施例中,在第一云服务中,响应于测试自动驾驶程序的请求,设置用于测试自动驾驶程序的参数,参数包括真实车辆在路面行驶时采集到的场景数据;从第二云服务中,选定测试自动驾驶程序的机器,机器中已运行守护进程;在第二云服务中,守护进程从第一云服务中读取参数;守护进程模拟操作对象,按照参数在场景数据中对虚拟车辆执行自动驾驶,以测试自动驾驶程序。本发明所提及的测试是虚拟的测试,将实际车辆在真实环境中采集到的场景数据作为测试的测试场景,可以提高测试的真实度、仿真度,同时由守护进程模拟操作对象在测试场景中执行自动驾驶,使得整个自动驾驶程序的测试过程更加贴近真实的自动驾驶的路测过程,得到的测试结果更为真实可靠;更进一步的,基于更为真实可靠的测试结果,能够在实际路测之前,预先测试出自动驾驶程序在与真实的场景数据结合中、程序内部存在的一些问题,以便根据测试结果对自动驾驶程序进行及时调整。
附图说明
图1为本发明实施例提供的无人驾驶车辆的结构示意图;
图2为本发明实施例提供的测试架构的结构示意图;
图3为本发明实施例一提供的一种自动驾驶的测试方法的流程图;
图4为本发明实施例二提供的一种自动驾驶的测试方法的流程图;
图5是本发明实施例二提供的一种测试场景地点循环设置的示意图;
图6为本发明实施例三提供的一种自动驾驶的测试装置的结构示意图;
图7为本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
应注意到:在本发明实施例的描述中,术语“第一”、“第二”、“第三”等次序词仅用于区分描述,而不能理解为指示或暗示相对重要性。
为了进一步理解本发明的技术方案,下面对自动驾驶的定义和自动驾驶技术分层进行解析:
自动驾驶是指让汽车自己拥有环境感知、路径规划并且自主实现车辆控制的技术,也就是电子技术控制汽车进行的仿人驾驶或是自动驾驶。
根据车辆***对于车辆操控任务的把控程度,将自动驾驶技术分为L0-L5五个层级,***在L1-L3级主要起辅助功能;当到达L4级,车辆驾驶将全部交给***,而L4、L5的区别在于特定场景和全场景应用。
L0层级称为非自动化层级,其定义是:由驾驶员全程负责执行动态驾驶任务,可能会得到车辆***警告或其他干预***的辅助支持。
L1层级称为驾驶人辅助层级,其定义是:在特定驾驶模式下,单项驾驶辅助***通过获取车辆行车环境信息对车辆横向或纵向驾驶动作进行操控,但驾驶员需要负责对除此之外的动态驾驶任务进行操作。
L2层级称为部分自动化层级,其定义是:在特定驾驶模式下,多项驾驶辅助***通过获取车辆行车环境信息对车辆横向或纵向驾驶动作同时进行操控,但驾驶员需要负责对除此之外的动态驾驶任务进行操作。
L3层级称为有条件自动化层级,其定义是:在特定驾驶模式下,***负责执行车辆全部动态驾驶任务,驾驶员需要在特殊情况发生时,适时对***提出的干预请求进行回应。
L4层级称为高度自动化层级,其定义是:在特定驾驶模式下,***负责执行车辆全部动态驾驶任务,即使驾驶员在特殊情况发生时未能对***提出的干预请求做出回应。
L5层级称为全自动化层级,其定义是:***负责完成全天候全路况的动态驾驶任务,***可由驾驶员进行管理。
参见图1,示出了可以应用本发明实施例中自动驾驶的测试方法、自动驾驶的测试装置的实施例的无人驾驶车辆100。
如图1所示,无人驾驶车辆100可以包括驾驶控制设备101,车身总线102,ECU(Electronic Control Unit,电子控制单元)103、ECU 104、ECU 105,传感器106、传感器107、传感器108和执行器件109、执行器件110、执行器件111。
驾驶控制设备(又称为车载大脑)101负责整个无人驾驶车辆100的总体智能控制。驾驶控制设备101可以是单独设置的控制器,例如可编程逻辑控制器(ProgrammableLogicController,PLC)、单片机、工业控制机等;也可以是由其他具有输入/输出端口,并具有运算控制功能的电子器件组成的设备;还可以是安装有车辆驾驶控制类应用的计算机设备。驾驶控制设备可以对从车身总线102上接收到的各个ECU发来的数据和/或各个传感器发来的数据进行分析处理,作出相应的决策,并将决策对应的指令发送到车身总线。
车身总线102可以是用于连接驾驶控制设备101,ECU 103、ECU 104、ECU 105,传感器106、传感器107、传感器108以及无人驾驶车辆100的其他未示出的设备的总线。由于CAN(Controller AreaNetwork,控制器局域网络)总线的高性能和可靠性已被广泛认同,因此目前机动车中常用的车身总线为CAN总线。当然,可以理解的是车身总线也可以是其他类型的总线。
车身总线102可以将驾驶控制设备101发出的指令发送给ECU 103、ECU 104、ECU105,ECU 103、ECU 104、ECU 105再将上述指令进行分析处理后发给相应的执行器件执行。
传感器106、传感器107、传感器108包括但不限于激光雷达、相机、加速度计、陀螺仪、磁力计、超声波雷达,等等。
激光雷达作为无人驾驶领域常用的传感器,是一种使用激光对物体进行探测和测距的设备,其传感器内部具有一种旋转结构,能够每秒钟向环境发送数百万光脉冲,输出点云数据。
相机一般用于对无人驾驶车辆的周边环境拍摄图片,记录车辆行驶的场景。
加速度计也叫重力感应器,其通过测量组件在某个轴向的受力情况来得到轴向上的加速度大小和方向。
陀螺仪也叫地感器,其输出数据为某个轴向上角速度的大小与方向,一般常用的是三轴陀螺仪,三轴陀螺仪的工作原理是通过测量三维坐标系内陀螺转子的垂直轴与设备之间的夹角,并计算角速度,通过夹角和角速度来判别物体在三维空间内的运动状态。
磁力计也叫地磁、磁感器,可用于测试磁场强度和方向,定位设备的方位。
超声波雷达的工作原理是通过超声波发射装置向外发出超声波,到通过接收器接收到发送过来超声波时的时间差来测算距离。常见的超声波雷达有两种,一种是安装在汽车前后保险杠上的,也就是用于测量汽车前后障碍物的倒车雷达,另一种是安装在汽车侧面的,用于测量侧方障碍物距离的超声波雷达,可应用于泊车库位检测和高速横向辅助。
需要说明的是,本发明实施例所提供的自动驾驶的测试方法可以由驾驶控制设备101执行,相应地,自动驾驶的测试装置一般设置于驾驶控制设备101中,本发明实施例所提供的自动驾驶的测试是指虚拟的仿真测试,其中用于测试的自动驾驶程序也是在虚拟测试中运行的程序,该自动驾驶程序可以由驾驶控制设备101内的其他模块共同配合执行。
应该理解,图1中的无人驾驶车辆、驾驶控制设备、车身总线、ECU、执行器件和传感器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的无人驾驶车辆、驾驶控制设备、车身总线、ECU和传感器。
出于经济成本和时间的考量,无人驾驶车辆在道路上行驶测试之前,往往需要先对自动驾驶程序进行大量的仿真测试,这类仿真测试需要预先准备场景数据,比如,安全员驾驶真实车辆在路面进行行驶(路测的过程),同时记录相应的场景数据。
该场景数据中包含真实车辆上配备的各个传感器采集到的数据,比如视频数据、加速度、角速度、三维点云等等。
为了对大量的场景数据进行管理分类,便于日后测试自动驾驶程序,可以为每次采集到的场景数据都配置一个描述文件,在描述文件内写清楚有关场景数据的具体信息,例如,场景类型、传感器类型、数据类型等等。
由于真实车辆在实际行驶中采集到的场景数据十分有限,为了丰富测试的多样性,补充更多的场景数据用于测试自动驾驶程序,可以采用随机生成器模拟真实的场景数据生成虚拟的场景数据,将虚拟的场景数据与真实的场景数据进行融合,对单一场景数据进行衍生和扩展,也可以在真实的场景数据中,选取部分场景数据用随机生成器替代,或者还可以使用随机生成器对部分真实的场景数据进行调整。
如图2所示,本发明实施例提供的测试架构包括第一云服务210和第二云服务220,第一云服务210与第二云服务220相互关联。
第一云服务210和第二云服务220都是云服务,云服务是指通过网络以按需、易扩展的方式获得所需服务,云服务多用于实现数据存取、运算等目的。
第一云服务210一般部署在一个网络,使得客户端与第一云服务210处于同一个网络,如公网,也称公有云,负责调度、生成测试的参数,第二云服务220一般部署在另一个网络,如在局域网,也称私有云,负责执行测试。
第一云服务210包括控制***211、数据库212和接口213。
第二云服务220包括机器221、机器222、机器223,机器221中运行有守护进程2210,机器222中运行有守护进程2220,机器223中运行有守护进程2230。其中,守护进程是一类在后台运行的进程,用于执行特定的***任务。守护进程一般在***引导的时候启动,并且会一直运行直到***关闭。
控制***211用于控制测试的整体流程,负责机器的调度,以及测试开始前各个准备步骤的执行控制等等,数据库212用于存储着第一云服务210与第二云服务220需要用于交互的信息,接口213用于外部设备访问第一云服务210。
第一云服务210的接口213开放给第二云服务220中的守护进程2210、守护进程2220和守护进程2230访问,为这些守护进程提供特定交互数据,第一云服务210中的数据库212与控制***211连接,控制***211可以访问数据库212内存储的数据,还可以在数据库212内查询第二云服务220中机器221、机器222、机器223的状态,第一云服务210中的数据库212与接口213连接,守护进程2210、守护进程2220和守护进程2230都可以通过接口213来访问数据库212内部的测试详细信息,守护进程运行在各台机器上,与数据库212中的数据进行交互,并在机器上执行指定程序和指令进行测试。
应该理解,图2中的第一云服务的接口、第二云服务的机器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的接口和机器。
实施例一
图3为本发明实施例一提供的一种自动驾驶的测试方法的流程图,本实施例可适用于真实车辆执行自动驾驶软件进行自动驾驶测试的情况,也可适用于虚拟测试环境中模拟车辆进行自动驾驶的软件测试仿真的情况,该方法可以由自动驾驶的测试装置来执行,该测试装置可以由软件和/或硬件实现,可配置在计算机设备中,例如,服务器、个人电脑等计算设备,等等,该方法具体包括如下步骤:
步骤301、在第一云服务中,响应于测试自动驾驶程序的请求,设置用于测试自动驾驶程序的参数。
在本实施例中,用户在客户端(如浏览器)登录第一云服务,并向第一云服务提供自动驾驶程序,请求对该自动驾驶程序进行测试。
为了提高测试的效率,第一云服务能够满足多个测试任务的需求,即第一云服务可以处理同一客户端中的多个测试任务,也可以处理多个客户端中陆续递交的测试任务。具体的,客户端的用户可以通过网络向第一云服务提交测试任务的请求,第一云服务会对用户提交的请求作出响应,将请求存储在队列中,第一云服务内部的控制***会依据请求的优先级从队列中读取用于测试自动驾驶程序的请求,对该请求进行解析,根据解析的结果执行一系列的测试准备操作,例如,对自动驾驶程序的源代码进行编译、选择与请求配套的测试模块、选择初始化的模式、设置用于测试自动驾驶程序的参数,等等。
应用本发明实施例,可由技术人员驾驶真实的车辆在路面行驶,采集视频数据、传感器数据、行走的路线等作为场景数据。
该场景数据可以设置标签,表示其主要的特征,如道路所属的区域(包括城市、道路等)、道路的类型(如高速公路、省道、直道、弯道等)、道路的长度,道路出现的事件(如交通事故、障碍物、交通灯等),等等,以便用户进行选择、匹配。
在本实施例中,测试自动驾驶程序的参数包括真实车辆在路面行驶时采集到的场景数据,可以根据用户的需求对测试自动驾驶程序的场景数据进行选择,比如,用户主动要求对哪个具体的场景数据测试自动驾驶程序,又比如,用户要求选定场景数据的类型,如高速公路、城市的道路等,再比如,用户无要求,则随机选择场景数据,或者自动选择测试评分较高的场景数据,等等。
当然,测试自动驾驶程序的参数除了包括真实车辆在路面行驶时采集到的场景数据之外,还可以包括地点、时长、传感器的类型、针对同一场景数据的测试频率,等等,本实施例对此不加以限制。
需要说明的是,当第一云服务接收到大量测试自动驾驶程序的请求时,若没有优先级的限制,则依次响应存储在队列中的请求,本实施例对此不作任何限定。
步骤302、从第二云服务中,选定测试自动驾驶程序的机器。
在本实施例中,参照图2,第二云服务220用于配合第一云服务210、对自动驾驶程序进行测试,第二云服务220中具有多个测试自动驾驶程序的机器(即具有计算能力的设备),当第二云服务220处于正常工作状态时,每个机器中均已运行守护进程,这些守护进程2210、2220、2230可以通过访问第一云服务210暴露的接口213来获取测试的详细信息,然后执行自动驾驶程序的测试操作。
一般情况下,第二云服务中的每台机器在同一时间执行一个测试,因此,在本实施例中,第一云服务维护第二云服务中各个机器实时的状态,通过该状态选定测试合适的自动驾驶程序的机器对自动驾驶程序进行测试。
在具体实现中,可在第一云服务本地查询第二云服务中各个机器的状态,状态包括空闲、占用,空闲表示机器未执行测试,占用表示机器已执行测试。
若遍历到某个机器的状态为空闲,则可以确定在该机器中测试自动驾驶程序,与此同时,将该机器的状态从空闲修改为占用,避免执行其他测试、造成冲突。
当然,当接收该机器发送的、完成测试的消息,则可以将该机器的状态从占用修改为空闲,释放资源,等待下一次测试。
需要说明的是,选定用于测试自动驾驶程序的机器的方式有很多,本实施例对此不作限定。除了上述示例方法外,还可以参考如下方式选定用于测试自动驾驶程序的机器,例如,将第二云服务中每台机器的工作状态记录到一个列表中,该列表会实时更新机器的最新状态,当接收到测试自动驾驶程序的请求时,可以通过读取该列表中机器的状态来确定用于进行本次测试的机器;或者,对第二云服务中的每台机器设置一个标志位,具体的,当机器处于工作状态时,将标志位置1,当机器发生故障时,将标志位置N,当机器处于正常的空闲状态时,则将标志位置0。
步骤303、在第二云服务中,守护进程从第一云服务中读取参数。
第一云服务在选定机器之后,则通知该机器中的守护进程对自动驾驶程序执行测试,该守护进行响应该通知,从第一云服务中请求自动驾驶程序以及适于对自动驾驶程序进行测试的参数。
在具体实现中,参照图2,第一云服务210中具有数据库212、接口213,在该数据库中存储有为每个测试而设置的参数,第二云服务220中的守护进程可以通过第一云服务210暴露的接口213,请求其测试所应用的参数。
第一云服务210在验证守护进程的合法性之后,在数据库212中读取在该守护进程所在机器测试自动化程序的参数,并通过该接口213将该参数发送至该守护进程。
步骤304、守护进程模拟操作对象,按照参数在场景数据中对虚拟车辆执行自动驾驶,以测试自动驾驶程序。
在实际应用中,配备有自动驾驶***的车辆在道路上进行测试的过程中,为了避免突发情况的发生,通常会配备有安全员,安全员能够对车辆执行动态驾驶任务,动态驾驶任务包括对车辆的速度、转向、变道、灯光、喇叭等进行控制,还包括对障碍物进行主动躲避、对实际行驶路径进行规划、对驾驶环境变化进行决策响应、对驾驶环境进行实时监测与预先准备等等。
对于不同业务领域而言,可以设置不同的操作对象,即具有特定业务操作能力的对象,对于自动驾驶领域的测试而言,操作对象为具有车辆驾驶操纵能力的对象,可以表示为安全员或者远程操作终端,等等。
在本实施例中,为了模拟真实车辆的路测过程,在测试平台中模拟真实车辆的内外部件构造了一台虚拟车辆,该虚拟车辆可以执行虚拟的测试,首先,在测试平台中播放场景数据,该场景数据为真实车辆在真实环境中采集的数据,其次,守护进程模拟操作对象,对虚拟车辆进行管控,以实现虚拟环境中的真实测试,模拟更为真实的自动驾驶过程。
以操作对象为安全员为例,守护进程充当安全员这一角色,按照第一云服务配置的参数对测试进行操作,例如,当开始测试时,守护进程模拟安全员启动虚拟车辆,在场景数据中对虚拟车辆执行动态驾驶任务,可以通过读取参数中的地点执行更改目的地的操作、执行转向操作、执行变道操作等等,也可以通过读取参数中的速度让虚拟车辆保持稳定的速度行驶,还可以在特定的场景数据区域启动接管命令和开启自动驾驶模式的命令,总而言之,守护进程模拟安全员,按照参数在场景数据中对虚拟车辆执行自动驾驶,以测试自动驾驶程序。
以操作对象为远程操作终端为例,守护进程模拟远程操作终端从第一云服务获取测试所需的参数,守护进程按照参数中的不同配置信息、模拟远程操作终端对虚拟车辆下发远程操控命令,使虚拟车辆在场景数据中执行自动驾驶,守护进程模拟远程操作终端对虚拟车辆的自动驾驶过程进行远程监控和干预,以测试自动驾驶程序。
在本实施例中,在第一云服务中,响应于测试自动驾驶程序的请求,设置用于测试自动驾驶程序的参数,参数包括真实车辆在路面行驶时采集到的场景数据;从第二云服务中,选定测试自动驾驶程序的机器,机器中已运行守护进程;在第二云服务中,守护进程从第一云服务中读取参数;守护进程模拟操作对象,按照参数在场景数据中对虚拟车辆执行自动驾驶,以测试自动驾驶程序。本发明所提及的测试是虚拟的测试,将实际车辆在真实环境中采集到的场景数据作为测试的测试场景,可以提高测试的真实度、仿真度,同时由守护进程模拟操作对象在测试场景中执行自动驾驶,使得整个自动驾驶程序的测试过程更加贴近真实的自动驾驶的路测过程,得到的测试结果更为真实可靠;更进一步的,基于更为真实可靠的测试结果,能够在实际路测之前,预先测试出自动驾驶程序在与真实的场景数据结合中、程序内部存在的一些问题,以便根据测试结果对自动驾驶程序进行及时调整。
实施例二
图4为本发明实施例二提供的一种自动驾驶的测试方法的流程图,本实施例以前述实施例为基础,对自动驾驶的测试方法进行了内容的补充和细化,该方法具体包括如下步骤:
步骤401、在第一云服务中,响应于测试自动驾驶程序的请求,设置用于测试自动驾驶程序的参数。
在本实施例中,第一云服务可以是分布式的计算机组,也可以是一台大型服务器,还可以是网络虚拟机,第一云服务中包括控制***、数据库、外部访问接口,第一云服务能够满足多个客户端对自动驾驶程序测试的需求,不同客户端的用户都可以将需要测试的自动驾驶程序以及实际采集到的场景数据上传到第一云服务中,然后借助第一云服务的控制***和数据库、对自动驾驶程序的测试进行测试流程的监控和同步管理。而当用户缺乏测试自动驾驶程序的场景数据时,也可以在第一云服务的数据库中挑选开源的场景数据、或者随机生成器生成的虚拟场景用作测试,从而解决用户因测试的场景数据单一、而无法测试自动驾驶程序的鲁棒性的问题。
在第一云服务中,可以通过访问数据库中用于存储请求信息的队列,读取测试自动驾驶程序的请求,以针对请求的类别执行具体的测试操作,需要说明的是,在进入自动驾驶程序测试之前,需要根据响应的请求来执行测试的准备操作。其中,执行测试的准备操作包括:设置用于测试自动驾驶程序的参数,该参数包括真实车辆在路面行驶时采集到的场景数据;选取测试的模块,例如仅测试自动驾驶程序的避障模块,或者,仅测试自动驾驶程序的路径规划模块。
步骤402、从第二云服务中,选定测试自动驾驶程序的机器。
其中,第二云服务可以是本地的云服务器、虚拟主机或者本地计算设备等,第二云服务中已配备有不止一个用于测试自动驾驶程序的机器,这些机器都可以参与测试,每个机器中已运行守护进程。
第一云服务在接收到测试的请求后,会与第二云服务建立联系,对第二云服务中机器的状态进行查询,当检测到处于空闲状态的机器时,第一云服务会下发调度指令通知第二云服务,对该机器进行锁定,以选定该机器执行自动驾驶程序的测试。
步骤403、在第二云服务中,守护进程从第一云服务中读取参数。
在本实施例中,第二云服务与第一云服务相互关联,位于第二云服务中的守护进程可以通过访问第一云服务中的数据库来获取用于测试的参数,包括自动驾驶测试的地点、时长、频率、传感器类型等。
步骤404、守护进程模拟操作对象启动自动驾驶模式,以运行自动驾驶程序。
在本实施例中,守护进程模拟操作对象对虚拟车辆执行启动操作,此时守护进程对虚拟车辆的行驶状态进行监控,待虚拟车辆的行驶状态保持稳定时,守护进程激活虚拟车辆的自动驾驶模式,以在真实的测试场景数据中运行自动驾驶程序。
本实施例主要适用于L3、L4层级的自动驾驶模式,由自动驾驶程序负责执行车辆全部动态驾驶任务,在特殊情况发生时,守护进程可以适时对***提出的干预请求进行回应。在特定场景数据下,本实施例也可以适用于L5层级的自动驾驶测试。
步骤405、在自动驾驶模式下,守护进程模拟操作对象输入地点,以使自动驾驶程序生成经过地点、且位于场景数据内的测试路线。
当虚拟车辆的自动驾驶模式为激活状态时,守护进程根据场景数据生成若干地点的集合,守护进程模拟操作对象将集合中位于首位的地点设置为起始地,然后依次将集合中其余的地点设置为目的地,守护进程判断地点中是否存在未被设置为目的地的地点;若是,则守护进程读取未被设置为目的地的地点,将未被设置为目的地的地点设定为目的地;若否,则使待测试的自动驾驶程序依据这些地点自动规划驾驶路径,生成从起始地依次经过各个目的地最终回到起始地、且位于场景数据内的测试路线。
守护进程模拟操作对象输入地点,能够更加真实的模拟操作对象在路测过程中为配置有自动驾驶***的车辆、设置行驶路线中所要经过的地点的操作。
在一种设置目的地的方式中,守护进程从第一云服务的数据库中提取参数,该参数中包含有针对不同的场景数据所生成的若干地点,这些地点可以以队列等形式依次排列,守护进程依次读取队列中的地点,每两个地点之间形成一段测试路线,位于首位的地点(即该场景数据中、虚拟车辆初始所处的地点)与位于末位的地点相同,使得多个测试路线可组成封闭、训练的测试路线,具体而言,在自动驾驶模式下,守护进程读取队列的数据,从而判断是否剩余未行驶的地点(即守护进程设置为目的地的地点),若是,则守护进程读取下一个未行驶的地点,模拟操作对象输入地点、将该地点设置为下一次自动驾驶的目的地,以使自动驾驶程序生成从当前的地点至下一个未行驶的地点、且位于场景数据内的测试路线;若否,则守护进程确定完成生成位于场景数据内、且在所有地点循环的测试路线,从而完成一次在封闭、训练的测试路线对自动驾驶程序的测试。
例如,如图5所示,位于首位的地点和位于末位的地点都是A地点,守护进程驱动虚拟车辆从A地点开始行驶,沿B地点、C地点、D地点继续行驶,当虚拟车辆到达E地点时,守护进程判断出剩余未行驶的F地点、G地点和H地点,则守护进程依次读取F地点、G地点和H地点,驱动虚拟车辆从E地点继续行驶经过F地点、G地点和H地点,此时,自动驾驶程序已生成从A地点-B地点-C地点-D地点-E地点-F地点-G地点-H地点的测试路线,直到虚拟车辆再次回到A地点,自动驾驶程序生成从A地点-B地点-C地点-D地点-E地点-F地点-G地点-H地点-A地点的测试路线,确定完成生成位于本次测试的场景数据内、且在所有地点循环的测试路线。
将位于首位的地点与位于末位的地点设定为相同的地点(均为起始地),使得测试自动驾驶程序的场景能够首尾相连,可以循环播放,从而支持测试平台长时间的测试运行。再者,由于采集到的真实的场景数据有限,为了满足测试的需求,将测试自动驾驶程序的场景数据循环播放,既可以测试自动驾驶程序在单一场景数据中的鲁棒性,又能够降低采集场景数据的成本。
进一步的,在完成一次在封闭、训练的测试路线对自动驾驶程序的测试之后,守护进程判断是否满足测试的完成条件,从而判断是否完成测试自动驾驶程序。例如,守护进程可以通过读取预先设置的参数中的目标时长、目标循环次数来判断是否完成测试自动驾驶程序,即测试的时长超过目标时长,或者,在封闭、训练的测试路线测试的次数超过目标训练次数,即可认为完成测试,否则,认为未完成测试。
如果已完成测试自动驾驶程序,则对自动驾驶程序生成测试结果。
测试结果可以以测试报告的形式呈现,测试报告包括虚拟车辆运行自动驾驶程序的全部日志信息(时间、行驶速度、包含地点位置的测试路线、发生模式切换操作的次数、切换操作发生时的时间点、手动驾驶模式占距测试总时长的时间占比等等),性能信息(各模块执行效率,整体CPU、内存、I/O等***资源使用情况),稳定性报告(***是否出现异常),等等,当测试完成后,该测试报告会回馈给测试请求的提交者。
如果未完成测试自动驾驶程序,则将所有地点的状态初始化,重新将所有的地点设置为目的地,进入下一次循环的测试路线。
在下一次循环的测试路线中,可以更换场景数据中的传感器类型,以测试传感器与自动驾驶程序的适配性,例如,上一次测试中使用的是激光雷达、相机、加速度计和陀螺仪,下一次循环测试中可以使用激光雷达、超声波雷达、加速度计、陀螺仪和磁力计。
在上述两种实现方式中,由守护进程在自动驾驶模式下判断是否剩余未行驶的地点,以守护进程对地点的访问次数作为依据,以判断自动驾驶程序生成测试路线的状态。
步骤406、在自动驾驶模式下,守护进程模拟操作对象执行启动操作,以使自动驾驶程序驱动虚拟车辆沿测试路线行驶。
当确认自动驾驶模式成功启动后,守护进程模拟操作对象对自动驾驶程序下达测试启动指令,当自动驾驶程序接收到测试启动指令后,驱动虚拟车辆沿测试路线行驶。
步骤407、守护进程确定自动驾驶模式发生异常。
守护进程通过检测当前测试的状态,与真实车辆在路面行驶采集场景数据时的状态进行比较,从而确定自动驾驶模式是否发生异常,即两者相符,可以认为自动驾驶模式正常,两者不符,可以认为自动驾驶模式发生异常。守护进程会将检测到的自动驾驶模式的状态均记录在测试结果中,包括自动驾驶模式正常和异常的测试情况。
例如,虚拟车辆在测试过程中没有按照预先设定的规则进行行驶,预先设定的规则包括避障规则、车辆行驶规则、交通法规、路径规划的规则,等等;或者,守护进程可以通过实时查询自动驾驶测试过程中的输出结果来确定自动驾驶模式发生异常,例如虚拟车辆的位姿数据异常、传感器的输出数据异常,等等。需要说明的是,本实施例对自动驾驶模式的异常确定方式不作任何限定。
在一个示例中,步骤407可以包括如下具体步骤:
步骤4071、守护进程确定目标路线。
目标路线为真实车辆在路面行驶、采集场景数据时的路线,一般情况下,目标路线为在该场景数据中优选的行驶路线。
守护进程可以在第一云服务的数据库中查找与测试的场景数据适配的路线,将该路线确定为目标路线。
步骤4072、计算测试路线与目标路线之间的第一差异。
在本示例中,可将测试路线与目标路线进行比较,计算两者之间的差异,作为第一差异,以体现测试路线偏离目标路线的程度。
测试路线与目标路线都可以用虚拟车辆在场景数据内行驶的位置数据来表示,以欧式空间为例,仅考虑平面坐标系(X-Y坐标系),假设虚拟车辆的起始点为坐标原点(0,0),则位置数据的表现形式为平面坐标(x,y),x为X轴方向的位移取值,y为Y轴方向的位移取值,在自动驾驶程序的测试中预先规定虚拟车辆的前进方向为X轴正向或者Y轴正向。
因此,选定同一场景数据下的测试路线与目标路线,将测试路线的位置数据与目标路线的位置数据针对测试场景内的每个地点一一对应,然后在每个地点中,统计两者的位置数据在X轴方向上的第一差值、在Y轴方向上的第二差值,对所有的第一差值求和取平均,得到第一均差值,对所有的第二差值求和取平均,得到第二均差值,计算第一均差值和第二均差值的平均值,以该平均值作为测试路线与目标路线之间的第一差异。需要说明的是,本示例对第一差异的计算方式不作任何限定。
步骤4073、若第一差异超过预设的第一阈值,则确定自动驾驶模式发生异常。
在本示例中,可预先设置第一阈值,该第一阈值表示偏离的临界值。
将测试路线与目标路线之间的第一差异与第一阈值进行比较。
如果该第一差异未超过第一阈值,则表示测试路线偏离目标路线的程度较小,在允许的范围内,继续通过测试路线偏离目标路线的程度检测自动驾驶模式是否发生异常。
如果该第一差异超过预设的第一阈值,则表示测试路线偏离目标路线的程度较大,超过允许的范围,可以确定自动驾驶模式发生异常。
在本实施例中,通过计算测试路线与目标路线之间的第一差异,将第一差异与预设的第一阈值进行比较,能够从数值上直观的看出两者测试路线的不同,可以通过第一差异判断自动驾驶模式的状态为异常还是正常。
除了将测试路线与目标路线进行比较外,还可以通过比较操作重合度来确定自动驾驶程序的自动驾驶模式发生异常。比如,自动驾驶模式中的转向操作较为频繁,在多个地点的转向操作与路测的情况不同,又比如,自动驾驶模式中虚拟车辆在某个地点停留转圈,而实际的路测中并没有出现这样的情况。
步骤408、响应于异常,守护进程模拟操作对象将自动驾驶模式切换至手动驾驶模式。
在真实的路测场景中,当真实车辆的自动驾驶模式出现异常时,往往由安全员通过刹车、转方向盘等方式对真实车辆进行接管,停止自动驾驶模式,启动手动驾驶,以继续执行车辆行驶任务,避免发生意外。
在本实施例中,手动驾驶模式是指守护进程对自动驾驶程序的测试过程进行干预的模式。为了使得测试自动驾驶程序的过程更贴近真实的路测过程,自动驾驶程序中配置有两种测试模式,即自动驾驶模式和手动驾驶模式,守护进程会在接收到自动驾驶模式发生异常的信号后,模拟操作对象将自动驾驶模式切换至手动驾驶模式。其中,自动驾驶模式和手动驾驶模式互不影响,均可以独立工作,当自动驾驶模式发生异常时,自动驾驶程序切换至手动驾驶模式,此时自动驾驶程序还能够在测试进入手动驾驶模式的这段时间内对自动驾驶模式进行自主纠错,避免自动驾驶程序在单一测试模式下容易崩溃的问题。
其中,从自动驾驶模式切换至手动驾驶模式时的时间点、地点位置等信息都会被记录在测试结果中,例如,切换发生时的第一时间点、第一场景、第一位置数据,等等。
步骤409、在手动驾驶模式下,守护进程模拟操作对象在场景数据中驾驶虚拟车辆,直至自动驾驶模式恢复正常。
在手动驾驶模式下,守护进程模拟操作对象在场景数据中执行一系列的驾驶操作,比如调整虚拟车辆的行驶速度,控制虚拟车辆的转向,控制虚拟车辆沿着车道中间的位置行驶,等等。直到自动驾驶模式恢复正常之前,一方面,继续按照上述方式控制虚拟车辆进行行驶,守护进程趋向真实车辆在路面行驶采集场景数据时的状态对虚拟车辆的行驶路线进行纠错;另一方面,自动驾驶模式进行自主修复,以恢复正常。其中,手动驾驶模式占距测试总时长的时间占比会被记录在测试结果中。
在本实施例的一种实现方式中,步骤409可以包括如下具体步骤:
步骤4091、在手动驾驶模式下,守护进程模拟操作对象在场景数据中以趋向目标路线作为目标驾驶虚拟车辆。
目标路线为真实车辆在路面行驶、采集场景数据时的路线。由于自动驾驶程序在切换至手动驾驶模式之前,其在自动驾驶模式下生成的测试路线与目标路线相比较、存在较大的偏差。因此,在手动驾驶模式下,守护进程首先获取目标路线中每个地点的位置坐标,然后模拟操作对象依次读取每个地点的位置坐标、以驾驶虚拟车辆逐步趋向位置坐标进行行驶,以继续进行自动驾驶程序的测试。
步骤4092、守护进程读取自动驾驶程序生成的新的测试路线。
在守护进程模拟操作对象在场景数据中以趋向目标路线作为目标、驾驶虚拟车辆的期间,自动驾驶程序会在手动驾驶模式下生成新的测试路线,该新的测试路线适用于自动驾驶模式进行行驶,守护进程读取新的测试路线,获得新的测试路线的位置数据。
步骤4093、计算新的测试路线与目标路线之间的第二差异。
在本实施例中,以欧式空间为例,仅考虑平面坐标系(X-Y坐标系),假设虚拟车辆的起始点为坐标原点(0,0),则位置数据的表现形式为平面坐标(x,y),x为X轴方向的位移取值,y为Y轴方向的位移取值,在自动驾驶程序的测试中预先规定虚拟车辆的前进方向为X轴正向或者Y轴正向。
计算新的测试路线与目标路线之间的第二差异,可以采用以下方式:将新的测试路线的位置数据与目标路线的位置数据针对场景数据内的每个地点一一对应,然后在每个地点中,统计两者的位置数据在X轴方向上的差值、在Y轴方向上的差值,对所有X轴方向上的差值和所有Y轴方向上的差值分别求和取平均,得到X轴方向上的均差值和Y轴方向上的均差值,选取这两个均差值的最大值作为新的测试路线与目标路线之间的第二差异。需要说明的是,本实施例对第二差异的计算方式不作任何限定。
步骤4094、若第二差异小于预设的第二阈值,则确定自动驾驶模式恢复正常。
在本实施例中,选取新的测试路线的位置数据与目标路线的位置数据在平面坐标系X轴方向和Y轴方向的位置均差值中的最大值作为第二差异,与预设的第二阈值进行比较,若第二差异小于预设的第二阈值,则确定自动驾驶模式恢复正常。
当确定自动驾驶模式恢复正常状态后,守护进程启动自动驾驶模式,模拟操作对象将手动驾驶模式切换至自动驾驶模式。
其中,从手动驾驶模式切换至自动驾驶模式时的时间点、地点位置等信息都会被记录在测试结果中,例如,切换发生时的第二时间点、第二场景、第二位置数据,等等。
在本实施例中,守护进程模拟操作对象对自动驾驶程序的两种模式进行切换,当自动驾驶模式发生异常时,守护进程模拟操作对象将自动驾驶模式切换至手动驾驶模式,能够克服单一模式发生异常情况导致测试终止的缺陷,可以使得自动驾驶程序在测试过程中长期运行,以及增强自动驾驶程序在测试过程中的稳定性,待自动驾驶模式经过自主纠错模块修正恢复正常后,守护进程再次将手动驾驶模式切换至自动驾驶模式,以上两种模式切换的过程更加贴近真实车辆的路测过程,最终能够获得更为真实、多样化的测试结果,这些测试结果可以为自动驾驶程序提供更可靠有效的参考数据。
实施例三
图6为本发明实施例三提供的一种自动驾驶的测试装置的结构示意图,该装置具体可以包括如下模块:
请求响应模块601,用于在第一云服务中,响应于测试自动驾驶程序的请求,设置用于测试所述自动驾驶程序的参数,所述参数包括真实车辆在路面行驶时采集到的场景数据;
机器确定模块602,用于从第二云服务中,选定测试所述自动驾驶程序的机器,所述机器中已运行守护进程;
参数读取模块603,用于在所述第二云服务中,所述守护进程从所述第一云服务中读取所述参数;
测试模块604,用于所述守护进程模拟操作对象,按照所述参数在所述场景数据中对虚拟车辆执行自动驾驶,以测试所述自动驾驶程序。
在本发明的一个实施例中,所述机器确定模块602包括:
查询子模块,用于查询第二云服务中各个机器的状态,所述状态包括空闲、占用;
判断子模块,用于若某个机器的状态为空闲,则确定在所述机器中测试所述自动驾驶程序;
状态修改子模块,用于将所述机器的状态从空闲修改为占用。
在本发明的一个实施例中,所述测试模块604包括:
自动驾驶启动子模块,用于所述守护进程模拟操作对象启动自动驾驶模式,以运行所述自动驾驶程序;
模拟测试子模块,用于在所述自动驾驶模式下,所述守护进程模拟操作对象输入所述地点,以使所述自动驾驶程序生成经过所述地点、且位于所述场景数据内的测试路线;
驾驶测试子模块,用于在所述自动驾驶模式下,所述守护进程模拟操作对象执行启动操作,以使所述自动驾驶程序驱动虚拟车辆沿所述测试路线行驶。
在本发明的一个实施例中,所述模拟测试子模块包括:
地点集合获取单元,用于所述守护进程根据所述场景数据生成若干地点的集合;
起始地设置单元,用于在所述自动驾驶模式下,所述守护进程模拟操作对象将所述集合中位于首位的地点设置为起始地;
目的地设置单元,用于所述守护进程依次将所述集合中其余所述地点设置为目的地;
地点判断单元,用于所述守护进程判断所述地点中是否存在未被设置为目的地的地点;
目的地确定单元,用于若是,则所述守护进程读取未被设置为目的地的地点,将未被设置为目的地的地点设定为目的地;
测试完成单元,用于若否,则使所述自动驾驶程序生成从所述起始地依次经过所述目的地抵达所述起始地、且位于所述场景数据内的测试路线。
在本发明的一个实施例中,所述模拟测试子模块还包括:
测试判断单元,用于所述守护进程判断是否完成测试所述自动驾驶程序;
测试结果生成单元,用于若是,则对所述自动驾驶程序生成测试结果;
循环测试单元,用于若否,则将所有所述地点的状态初始化,返回执行所述守护进程判断所述地点中是否存在未被设置为目的地的地点。
在本发明的一个实施例中,所述测试模块604还包括:
异常确定子模块,用于所述守护进程确定自动驾驶模式发生异常;
第一模式切换子模块,用于响应于所述异常,所述守护进程模拟操作对象将所述自动驾驶模式切换至手动驾驶模式;
手动驾驶测试子模块,用于在所述手动驾驶模式下,所述守护进程模拟操作对象在所述场景数据中驾驶虚拟车辆,直至所述自动驾驶模式恢复正常;
第二模式切换子模块,用于响应于所述正常,所述守护进程模拟操作对象将所述手动驾驶模式切换至所述自动驾驶模式。
在本发明的一个实施例中,所述异常确定子模块包括:
目标路线确定单元,用于所述守护进程确定目标路线,所述目标路线为所述真实车辆在路面行驶、采集所述场景数据时的路线;
差异计算单元,用于计算所述测试路线与所述目标路线之间的第一差异;
异常确定单元,用于若所述第一差异超过预设的第一阈值,则确定自动驾驶模式发生异常。
在本发明的一个实施例中,所述手动驾驶测试子模块包括:
手动驾驶测试单元,用于在所述手动驾驶模式下,所述守护进程模拟操作对象在所述场景数据中以趋向所述目标路线作为目标驾驶所述虚拟车辆;
测试路线读取单元,用于所述守护进程读取所述自动驾驶程序生成的新的测试路线;
差异计算单元,用于计算所述新的测试路线与所述目标路线之间的第二差异;
正常状态确定单元,用于若所述第二差异小于预设的第二阈值,则确定所述自动驾驶模式恢复正常。
本发明实施例所提供的自动驾驶的测试装置可执行本发明任意实施例所提供的自动驾驶的测试方法,具备执行方法相应的功能模块和有益效果。
实施例四
图7为本发明实施例四提供的一种计算机设备的结构示意图。如图7所示,该计算机设备包括处理器700、存储器701、通信模块702、输入装置703和输出装置704;计算机设备中处理器700的数量可以是一个或多个,图7中以一个处理器700为例;计算机设备中的处理器700、存储器701、通信模块702、输入装置703和输出装置704可以通过总线或其他方式连接,图7中以通过总线连接为例。
存储器701作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本实施例中的自动驾驶的测试方法对应的模块(例如,如图6所示的自动驾驶的测试装置中的请求响应模块601、机器确定模块602、参数读取模块603和测试模块604)。处理器700通过运行存储在存储器701中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的自动驾驶的测试方法。
存储器701可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器701可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器701可进一步包括相对于处理器700远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信模块702,用于与显示屏建立连接,并实现与显示屏的数据交互。
输入装置703可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入,还可以是用于获取图像的摄像头以及获取音频数据的拾音设备。
输出装置704可以包括扬声器等音频设备。
需要说明的是,输入装置703和输出装置704的具体组成可以根据实际情况设定。
处理器700通过运行存储在存储器701中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的电子白板的连接节点控制方法。
本实施例提供的计算机设备,可执行本发明任一实施例提供的自动驾驶的测试方法,具体相应的功能和有益效果。
实施例五
本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现一种自动驾驶的测试方法,该方法包括:
在第一云服务中,响应于测试自动驾驶程序的请求,设置用于测试所述自动驾驶程序的参数,所述参数包括真实车辆在路面行驶时采集到的场景数据;
从第二云服务中,选定测试所述自动驾驶程序的机器,所述机器中已运行守护进程;
在所述第二云服务中,所述守护进程从所述第一云服务中读取所述参数;
所述守护进程模拟操作对象,按照所述参数在所述场景数据中对虚拟车辆执行自动驾驶,以测试所述自动驾驶程序。
当然,本发明实施例所提供的计算机可读存储介质,其计算机程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的自动驾驶的测试方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述自动驾驶的测试装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (11)
1.一种自动驾驶的测试方法,其特征在于,包括:
在第一云服务中,响应于测试自动驾驶程序的请求,设置用于测试所述自动驾驶程序的参数,所述参数包括真实车辆在路面行驶时采集到的场景数据;
从第二云服务中,选定测试所述自动驾驶程序的机器,所述机器中已运行守护进程;
在所述第二云服务中,所述守护进程从所述第一云服务中读取所述参数;
所述守护进程模拟操作对象,按照所述参数在所述场景数据中对虚拟车辆执行自动驾驶,以测试所述自动驾驶程序。
2.根据权利要求1所述的方法,其特征在于,所述从第二云服务中,选定测试所述自动驾驶程序的机器,所述机器中已运行守护进程,包括:
查询第二云服务中各个机器的状态,所述状态包括空闲、占用;
若某个机器的状态为空闲,则确定在所述机器中测试所述自动驾驶程序;
将所述机器的状态从空闲修改为占用。
3.根据权利要求1所述的方法,其特征在于,所述参数还包括地点;
所述守护进程模拟操作对象,按照所述参数在所述场景数据中对虚拟车辆执行自动驾驶,以测试所述自动驾驶程序,包括:
所述守护进程模拟操作对象启动自动驾驶模式,以运行所述自动驾驶程序;
在所述自动驾驶模式下,所述守护进程模拟操作对象输入所述地点,以使所述自动驾驶程序生成经过所述地点、且位于所述场景数据内的测试路线;
在所述自动驾驶模式下,所述守护进程模拟操作对象执行启动操作,以使所述自动驾驶程序驱动虚拟车辆沿所述测试路线行驶。
4.根据权利要求3所述的方法,其特征在于,所述在所述自动驾驶模式下,所述守护进程模拟操作对象输入所述地点,以使所述自动驾驶程序生成经过所述地点、且位于所述场景数据内的测试路线,包括:
所述守护进程根据所述场景数据生成若干地点的集合;
在所述自动驾驶模式下,所述守护进程模拟操作对象将所述集合中位于首位的地点设置为起始地;
所述守护进程依次将所述集合中其余所述地点设置为目的地;
所述守护进程判断所述地点中是否存在未被设置为目的地的地点;
若是,则所述守护进程读取未被设置为目的地的地点,将未被设置为目的地的地点设定为目的地;
若否,则使所述自动驾驶程序生成从所述起始地依次经过所述目的地抵达所述起始地、且位于所述场景数据内的测试路线。
5.根据权利要求4所述的方法,其特征在于,所述在所述自动驾驶模式下,所述守护进程模拟操作对象输入所述地点,以使所述自动驾驶程序生成经过所述地点、且位于所述场景数据内的测试路线,还包括:
所述守护进程判断是否完成测试所述自动驾驶程序;
若是,则对所述自动驾驶程序生成测试结果;
若否,则将所有所述地点的状态初始化,返回执行所述守护进程判断所述地点中是否存在未被设置为目的地的地点。
6.根据权利要求3所述的方法,其特征在于,所述守护进程按照所述参数在所述场景数据中对虚拟车辆执行自动驾驶,以测试所述自动驾驶程序,还包括:
所述守护进程确定自动驾驶模式发生异常;
响应于所述异常,所述守护进程模拟操作对象将所述自动驾驶模式切换至手动驾驶模式;
在所述手动驾驶模式下,所述守护进程模拟操作对象在所述场景数据中驾驶虚拟车辆,直至所述自动驾驶模式恢复正常;
响应于所述正常,所述守护进程模拟操作对象将所述手动驾驶模式切换至所述自动驾驶模式。
7.根据权利要求6所述的方法,其特征在于,所述守护进程确定自动驾驶模式发生异常,包括:
所述守护进程确定目标路线,所述目标路线为所述真实车辆在路面行驶、采集所述场景数据时的路线;
计算所述测试路线与所述目标路线之间的第一差异;
若所述第一差异超过预设的第一阈值,则确定自动驾驶模式发生异常。
8.根据权利要求7所述的方法,其特征在于,所述在所述手动驾驶模式下,所述守护进程模拟操作对象在所述场景数据中驾驶虚拟车辆,直至所述自动驾驶模式恢复正常,包括:
在所述手动驾驶模式下,所述守护进程模拟操作对象在所述场景数据中以趋向所述目标路线作为目标驾驶所述虚拟车辆;
所述守护进程读取所述自动驾驶程序生成的新的测试路线;
计算所述新的测试路线与所述目标路线之间的第二差异;
若所述第二差异小于预设的第二阈值,则确定所述自动驾驶模式恢复正常。
9.一种自动驾驶的测试装置,其特征在于,包括:
请求响应模块,用于在第一云服务中,响应于测试自动驾驶程序的请求,设置用于测试所述自动驾驶程序的参数,所述参数包括真实车辆在路面行驶时采集到的场景数据;
机器确定模块,用于从第二云服务中,选定测试所述自动驾驶程序的机器,所述机器中已运行守护进程;
参数读取模块,用于在所述第二云服务中,所述守护进程从所述第一云服务中读取所述参数;
测试模块,用于所述守护进程模拟操作对象,按照所述参数在所述场景数据中对虚拟车辆执行自动驾驶,以测试所述自动驾驶程序。
10.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的测试方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010761494.0A CN111881519B (zh) | 2020-07-31 | 2020-07-31 | 一种自动驾驶的测试方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010761494.0A CN111881519B (zh) | 2020-07-31 | 2020-07-31 | 一种自动驾驶的测试方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111881519A true CN111881519A (zh) | 2020-11-03 |
CN111881519B CN111881519B (zh) | 2022-08-05 |
Family
ID=73205305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010761494.0A Active CN111881519B (zh) | 2020-07-31 | 2020-07-31 | 一种自动驾驶的测试方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111881519B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112466005A (zh) * | 2020-11-26 | 2021-03-09 | 重庆长安汽车股份有限公司 | 基于用户使用习惯的自动驾驶围栏的更新***及方法 |
CN112557058A (zh) * | 2020-12-10 | 2021-03-26 | 清华大学苏州汽车研究院(吴江) | 一种自动驾驶测试*** |
CN112667366A (zh) * | 2021-03-16 | 2021-04-16 | 中汽数据有限公司 | 动态场景数据的导入方法、装置、设备及可读存储介质 |
CN112925221A (zh) * | 2021-01-20 | 2021-06-08 | 重庆长安汽车股份有限公司 | 基于数据回注的辅助驾驶闭环测试方法 |
CN113093569A (zh) * | 2021-04-13 | 2021-07-09 | 中国第一汽车股份有限公司 | 自动驾驶的仿真测试方法、装置、设备和存储介质 |
CN114407918A (zh) * | 2021-12-30 | 2022-04-29 | 广州文远知行科技有限公司 | 接管场景分析方法、装置、设备及存储介质 |
CN115878494A (zh) * | 2023-01-04 | 2023-03-31 | 小米汽车科技有限公司 | 自动驾驶软件***的测试方法、装置、车辆及存储介质 |
CN116010854A (zh) * | 2023-02-03 | 2023-04-25 | 小米汽车科技有限公司 | 异常原因的确定方法、装置、电子设备及存储介质 |
WO2023178486A1 (zh) * | 2022-03-21 | 2023-09-28 | 华为技术有限公司 | 一种自动驾驶虚拟环境的构建方法及装置 |
CN117408061A (zh) * | 2023-10-13 | 2024-01-16 | 上海同星智能科技有限公司 | 整车模型仿真性能优化***及计算机装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335293A (zh) * | 2015-11-30 | 2016-02-17 | 努比亚技术有限公司 | 一种基于接口并行的自动化测试***和方法 |
CN106153352A (zh) * | 2016-07-04 | 2016-11-23 | 江苏大学 | 一种无人驾驶车辆测试验证平台及其测试方法 |
CN108267322A (zh) * | 2017-01-03 | 2018-07-10 | 北京百度网讯科技有限公司 | 对自动驾驶性能进行测试的方法和*** |
CN108766096A (zh) * | 2018-03-21 | 2018-11-06 | 武汉理工大学 | 一种基于驾驶模拟器的自动驾驶人机交互仿真测试*** |
CN110795818A (zh) * | 2019-09-12 | 2020-02-14 | 腾讯科技(深圳)有限公司 | 一种确定虚拟测试场景方法、装置、电子设备和存储介质 |
CN111179585A (zh) * | 2018-11-09 | 2020-05-19 | 上海汽车集团股份有限公司 | 自动驾驶车辆的场地测试方法及装置 |
CN111382048A (zh) * | 2018-12-28 | 2020-07-07 | 北京奇虎科技有限公司 | 真机测试平台上移动设备的管理方法和装置 |
-
2020
- 2020-07-31 CN CN202010761494.0A patent/CN111881519B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335293A (zh) * | 2015-11-30 | 2016-02-17 | 努比亚技术有限公司 | 一种基于接口并行的自动化测试***和方法 |
CN106153352A (zh) * | 2016-07-04 | 2016-11-23 | 江苏大学 | 一种无人驾驶车辆测试验证平台及其测试方法 |
CN108267322A (zh) * | 2017-01-03 | 2018-07-10 | 北京百度网讯科技有限公司 | 对自动驾驶性能进行测试的方法和*** |
CN108766096A (zh) * | 2018-03-21 | 2018-11-06 | 武汉理工大学 | 一种基于驾驶模拟器的自动驾驶人机交互仿真测试*** |
CN111179585A (zh) * | 2018-11-09 | 2020-05-19 | 上海汽车集团股份有限公司 | 自动驾驶车辆的场地测试方法及装置 |
CN111382048A (zh) * | 2018-12-28 | 2020-07-07 | 北京奇虎科技有限公司 | 真机测试平台上移动设备的管理方法和装置 |
CN110795818A (zh) * | 2019-09-12 | 2020-02-14 | 腾讯科技(深圳)有限公司 | 一种确定虚拟测试场景方法、装置、电子设备和存储介质 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112466005A (zh) * | 2020-11-26 | 2021-03-09 | 重庆长安汽车股份有限公司 | 基于用户使用习惯的自动驾驶围栏的更新***及方法 |
CN112466005B (zh) * | 2020-11-26 | 2022-08-09 | 重庆长安汽车股份有限公司 | 基于用户使用习惯的自动驾驶围栏的更新***及方法 |
CN112557058A (zh) * | 2020-12-10 | 2021-03-26 | 清华大学苏州汽车研究院(吴江) | 一种自动驾驶测试*** |
CN112557058B (zh) * | 2020-12-10 | 2023-12-05 | 清华大学苏州汽车研究院(吴江) | 一种自动驾驶测试*** |
CN112925221B (zh) * | 2021-01-20 | 2022-10-11 | 重庆长安汽车股份有限公司 | 基于数据回注的辅助驾驶闭环测试方法 |
CN112925221A (zh) * | 2021-01-20 | 2021-06-08 | 重庆长安汽车股份有限公司 | 基于数据回注的辅助驾驶闭环测试方法 |
CN112667366A (zh) * | 2021-03-16 | 2021-04-16 | 中汽数据有限公司 | 动态场景数据的导入方法、装置、设备及可读存储介质 |
CN112667366B (zh) * | 2021-03-16 | 2021-07-20 | 中汽数据有限公司 | 动态场景数据的导入方法、装置、设备及可读存储介质 |
CN113093569A (zh) * | 2021-04-13 | 2021-07-09 | 中国第一汽车股份有限公司 | 自动驾驶的仿真测试方法、装置、设备和存储介质 |
CN114407918A (zh) * | 2021-12-30 | 2022-04-29 | 广州文远知行科技有限公司 | 接管场景分析方法、装置、设备及存储介质 |
WO2023178486A1 (zh) * | 2022-03-21 | 2023-09-28 | 华为技术有限公司 | 一种自动驾驶虚拟环境的构建方法及装置 |
CN115878494A (zh) * | 2023-01-04 | 2023-03-31 | 小米汽车科技有限公司 | 自动驾驶软件***的测试方法、装置、车辆及存储介质 |
CN115878494B (zh) * | 2023-01-04 | 2023-05-09 | 小米汽车科技有限公司 | 自动驾驶软件***的测试方法、装置、车辆及存储介质 |
CN116010854A (zh) * | 2023-02-03 | 2023-04-25 | 小米汽车科技有限公司 | 异常原因的确定方法、装置、电子设备及存储介质 |
CN116010854B (zh) * | 2023-02-03 | 2023-10-17 | 小米汽车科技有限公司 | 异常原因的确定方法、装置、电子设备及存储介质 |
CN117408061A (zh) * | 2023-10-13 | 2024-01-16 | 上海同星智能科技有限公司 | 整车模型仿真性能优化***及计算机装置 |
CN117408061B (zh) * | 2023-10-13 | 2024-05-03 | 上海同星智能科技有限公司 | 整车模型仿真性能优化***及计算机装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111881519B (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111881519B (zh) | 一种自动驾驶的测试方法、装置、计算机设备及存储介质 | |
CN111881520B (zh) | 一种自动驾驶测试的异常检测方法、装置、计算机设备及存储介质 | |
US11842638B2 (en) | Parallel remote control driving system for intelligent network vehicle | |
US10710602B2 (en) | Systems and methods for a vehicle controller safety monitor | |
US10896122B2 (en) | Using divergence to conduct log-based simulations | |
CN112700668B (zh) | 自动驾驶的远程控制方法、自动驾驶车辆及云端设备 | |
CN110209146B (zh) | 自动驾驶车辆的测试方法、装置、设备及可读存储介质 | |
CN112997060A (zh) | 用于修改自主车辆的控制单元的方法和*** | |
JP2019528518A (ja) | 自動運転車両の操縦システム | |
CN112819968B (zh) | 基于混合现实的自动驾驶车辆的测试方法和装置 | |
US20200247415A1 (en) | Vehicle, and control apparatus and control method thereof | |
US20220289253A1 (en) | Method for evaluating autonomous driving system, apparatus and storage medium | |
Goebl et al. | Design and capabilities of the Munich cognitive automobile | |
CN112671487B (zh) | 一种车辆测试的方法、服务器以及测试车辆 | |
CN115761686A (zh) | 用于检测自动驾驶***中的意外控制状态的方法和装置 | |
CN112536795A (zh) | 控制机器人运行的方法、装置、终端设备及存储介质 | |
US11142212B2 (en) | Safety-aware comparator for redundant subsystems in autonomous vehicles | |
CN116010854B (zh) | 异常原因的确定方法、装置、电子设备及存储介质 | |
US20230067822A1 (en) | E2e learning-based evaluator for an autonomous driving vehicle | |
CN114936515A (zh) | 一种生成仿真交通场景文件的方法及*** | |
CN114511834A (zh) | 一种确定提示信息的方法、装置、电子设备及存储介质 | |
CN114692289A (zh) | 自动驾驶算法测试方法及相关设备 | |
CN113911139B (zh) | 车辆控制方法、装置和电子设备 | |
CN113687980B (zh) | 异常数据自恢复方法、***、电子设备和可读存储介质 | |
US11429097B2 (en) | Programmatic application of router flags for vehicle limitations |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |