在Nullmax看来,量产工程并非看不见、摸不着的「玄学规律」,实际上它是一系列流程、方法、工具、经验的综合运用。通过量产工程,需求和技术可以平稳落地,自动驾驶复杂的万丈高楼也可以平地而起。
二是Nullmax非常了解整车及关联件,可以直接触达最根本的问题。Nullmax不仅精通算法和软件,而且对芯片、传感器、执行器等关键硬件同样有着深入的理解。Nullmax擅长从系统层面思考如何实现软硬件完美融合,这是快速完成问题定位并协同对应的Tier 1、Tier 2解决问题的核心所在。
比如感知效果不佳时,就需要快速判断到底是算法还是相机ISP,又或者其他环节存在问题。Nullmax拥有出色的视觉感知能力,对ISP、CMOS、镜头等细节足够了解,并且对系统上下游有充分的理解以及丰富的实战经验,所以在量产过程中常常能够第一时间发现和解决问题。
三是Nullmax构建了平台化的技术架构,尤其是专门的自动驾驶中间件。不同车型的硬件差异极大,不仅性能、响应曲线有差别,而且关联件的接口也不一样。如果没有做好平台化,让系统适配一款新车往往需要大量的修改,工作量巨大,效率过低。
比如在项目定点之后,Nullmax会根据客户的要求进行极其细致的分析,确认正式的需求文档,推动项目的具体开发。这份需求在早期不会完全固化,而是会考虑需求和技术的演化,在项目中保持迭代。
而在需求确认之后,Nullmax会设计系统的架构,分析传感器、计算平台等硬件配置,并明确关联件的量产要求。这样在取得量产样车后,就可以快速完成关联件的验证和适配,将平台化软件系统的接口调配打通。
Nullmax可以根据样车的下线计划,匹配联调的节奏,提高开发效率。比如在第一阶段,先将车辆横向、纵向的控制调通,实现ACC、AEB等基础功能的运行,在第二阶段,再优化性能或者增加复杂功能。
通常在样车和关联件比较成熟之后,Nullmax会对软件系统和关联件进行深度的联调。因为对于整个系统而言,软件和硬件不是完全割裂,很多地方需要共同优化才能实现最佳的效果。一般完成联调以后,关联件的接口和响应曲线固化下来,开发工作就可以进入新的阶段,专注功能性能的提升。
当系统提升到一个较为成熟的阶段,Nullmax会通过大范围的实车路试,全面检验系统的性能,同时利用路试收集的大量数据,完善和迭代系统。
最终,经过持续的迭代,达到客户的全部功能和性能要求后,Nullmax就会向客户交付最终版本的自动驾驶系统。
在项目开始阶段,Nullmax就会将功能安全、预期功能安全和信息安全加入到需求当中,而不仅仅是达成功能、性能的指标,还要确保交付的系统足够安全。
功能安全层面,Nullmax会按照ISO 26262的标准,将需求进行非常细致的拆解,深入到子系统层面。完成编程以后,也会在子系统和系统层面进行测试,确保达到要求。
而在预期功能安全方面,Nullmax会通过覆盖不同天气、路况、路段等场景要素的大规模路测,挖掘出各种未知的危险场景。
预期功能安全根据已知、未知和安全、危险,将所有场景分为四类:已知的安全场景,未知的安全场景,已知的危险场景,未知的危险场景。其中,已知的危险场景,通过常规的测试手段可以完成系统验证和改进。所以功能安全的关键在于未知的危险场景,大规模的路测可以通过不同场景要素的组合找出这些场景,最大限度地把问题暴露出来。
实际上,除了软件在环、仿真、路测以外,Nullmax还会进行大量其他的测试。比如在系统和子系统层级之下,Nullmax会进行大量的单元测试,以后单元测试之后软件模块的集成测试,还有代码的覆盖度测试、静态测试,保证代码的质量。
这样的话,安全就不仅是从最顶层贯彻,还是从底层做起,从而实现最小颗粒度的安全,最终保证整个系统的安全。