原创: 阿波君 Apollo开发者社区 11月27日
Azure是一种灵活和支持互操作的平台,它可以被用来创建云中运行的应用或者通过基于云的特性来加强现有应用。它开放式的架构给开发者提供了Web应用、互联设备的应用、个人电脑、服务器、或者提供最优在线复杂解决方案的选择。
上周阿波君为大家详细介绍了「进阶课程㊴丨Apollo安装过程概述」。
此课程主要介绍了Apollo安装分为三步:第一是安装基础环境;第二是拉取Docker镜像并创建容器;第三是进入容器编译源码;此外,还简单概述了仿真平台的使用方式。
本周阿波君将继续与大家分享Azure仿真平台使用的相关课程。下面,我们一起进入进阶课程第40期。
本节补充介绍另一个仿真平台,它是基于微软的一个仿真平台Azure,该仿真平台不需要本地部署。
图1 Apollo的Github账号上的两个状态
在Apollo的Github账号上可看见图1所示的两个状态,左侧的Build用来做持续集成。由于有很多的开发者会提交自己对Apollo修改后的代码,我们不可能每次都把代码下载到本地进行验证。为了简化验证,团队会把已经编辑好的测试运例用来测试开发者提交的代码是否正确,以此来判断开发者的代码对目前的Master的分支是否有影响。Build提供了对开发者代码验证的一种渠道。
Simulation主要用来验证代码的鲁棒性。Apollo团队在微软的Azure仿真平台上部署了很多场景,拿最新的代码去在这些场景下进行测试和验证,看相应模块在这些场景的执行情况,最终得到代码的鲁棒性报告。该仿真平台的地址是azure.apollo.auto。在该仿真平台运行自己的代码是不需要进行本地编译的,其使用流程如下所示。
首先是克隆Apollo在Github上的代码,然后在本地对相应的模块进行修改,例如Planning。修改之后将代码提交到自己在Github的Apollo仓库中,可以是Master分支也可以是新建的分支。最后在微软的Azure仿真平台选择目标场景对更新后的代码进行验证。
图2 如何使用Azure仿真平台
运行结束之后会拿到一个报告,表示修改后的代码在不同场景下的执行情况。图3给出了一个运行报告的样例。第一列的Scenario是一些场景,在仿真平台中,我们会把一段很长的路切割成很多的场景,比如有左转、左转有行人、有行人横插等。后面几列是对应场景的状态描述,Run Status表示场景的运行状态,如果后面的指标中有一个失败,那么Run Status就是失败的。具体衡量的指标有碰撞检测、速度校验、On Road检测, Red-Light检测(是否有闯红灯的情况)、ARW检测(是否成功到达目的地)、Hard Break(急刹车)、加速度(它是影响体感的一个指标)。
图3 仿真平台运行报告样例