Pony.ai 的基础架构挑战与实践


导读: 本次分享将从以下几个方面介绍——

  • Pony.ai 基础架构做什么
  • 车载系统
  • 仿真平台
  • 数据基础架构
  • 其他基础架构

01 Pony.ai 基础架构


Pony.ai 的基础架构挑战与实践

首先给大家介绍一下 Pony.ai 的基础架构团队做什么。互联网公司在系统基础架构在业务扩展时通常会遇到一些通用的技术挑战,比如存储系统、计算平台还有 Web 服务治理。对于 Pony.ai 而言我们是一家做自动驾驶的公司,除了上述提到的互联网公司会遇到的一些技术挑战之外,会有很多自动驾驶技可视化分析术本身相关的技术挑战,比如大家都可以想到的车载系统、仿真平台。此外,对于 Pony.ai 来说,如果运营一个大规模的自动驾驶车队,需要有一架构图怎么画套完善的车队运营基础。自动驾驶需要和人进行交互,因此需要一个人机交互的接口。这些都是 Po架构师证书ny.ai 的基础架雷达拼图构团队正在做的事情。

Pony.ai 的基础架构挑战与实践

Pony.ai 的目标是建立一个比较大规雷达币今日行情模的自动驾驶车队,车队规模在未来会成百上千计,而目前公司正处于自动驾驶车队数量快可视化数据图表速扩张的阶段,虽然对其架构图怎么制作他技术挑战也存在,但是对基础架构的架构图挑战更是巨大的,它要求整个自动驾驶的基础数据处理包括哪些内容架构要有足够的可扩展性。随着车辆数量的增可视化数据图表加,运营区域会增加、数据量会增加、工程师数量增加,系统各个模块数量会增加、内部代码量也会增加。这些都会给基础架构带来非常多的技术问题。接下来会详可视化音乐细介绍在我们在基础架构演进过程中遇到的挑战。

02 车载系统

Pony.ai 的基础架构挑战与实践

首先介绍的是自动驾驶车载系统。

那么什么是车载系统呢?一般来说自动驾驶系统上有很多传感器代替人类收集雷达币信息,车载系统需要处理这些数据信息,最终转化为对车辆的控制决策,如踩刹车、转多少方向盘,做出决策后传递给车辆。

上图是一个自动驾驶系统数据处理方法示意图,每一个方块对应系统中的一个模块。

首先,车载系统通数据处理活动不包括以下哪种情形过一些传感器去感知真实世界,有激光雷达、摄像头等驱动收集真实世界中的信息,这些信息会传递给 Perception 模块,这个模块会实时感知车辆行驶中周围的环境,比如车辆周围有哪些车辆以什么样的状态在行驶;车辆周围有哪些行人等。

当 Perc数据处理eption 模块收集到这些信息后将其传递给 Pred可视化音乐iction 模块,我们不能只依据当前车辆周围环境信息做决策,需要对车辆周围的任何物体或者人、障碍物接下来的可视化工具行为预计,如前面路口的车是转弯还是直行对接下来车辆的决策很重要。

当 Prediction 模块生成这些信息后会传递给 Planner 模块,这个模块会规划接下来车辆一段时间的行驶轨迹、做出什么样的决策。比如前面有行人需要踩刹车等待行人先安全生产法过去,前面车行驶比较慢可能需要变道超安全教育平台登录车。

当 Planner 模块规划好轨迹后传递给 control 模块,计算出车辆需要进行操作的指标参数,如打多少方向盘,踩多少刹车等,最后传递给自动驾驶车辆。在模块运行中,可能还需要其他一些模块,需要高精度地图、实时定位,还需要 rou架构图怎么制作ter 模块,当指定起点终点时,需要计算出一条合理的路线。


Pony.ai 的基础架构挑战与实践

车载系统需要去调度各个模块的运行,模块间的消息通信(一个模块的输入可能是另一个模块的输出),还有车辆上有不同的计算资源,不同的模块可能也需要不同的架构图怎么制作计算资源,一些感知的算法可能安全教育平台登录入口需要很大的 GPU,有些模块可能是 CPU 计算多一些,因此需要系统合理分配不同模块需要的计算资源。日志记录也是车载系统需要提供的非常重要的功能功能,在自动驾驶的过程数据处理英文中,系统需要记录车辆运行过程。这样如果出现一些雷达售后非预计的情况可以通过日志信息进行 debug,来帮助系雷达拼图统持续演进。此外,自动驾驶安全要求很安全期计算器高,因此系统需要有非常完善的架构图监控和报架构警系统,当系统出现一点点问题都需要及时报警,使得安全员可以进行正确的反应来避免潜在的危险。

Pony.ai 的基础架构挑战与实践

对于车载系统有很多要求,在某些方面可能实现比较困难。首先是可靠性,代码逻辑设计错误数据处理工程师会出现各种问题在车载架构工程师系统可能引起严重后果,因此对这方面的可可视化工具靠性要求很安全教育平台登录高。特别是 Pon架构师和程序员的区别y.ai 正在扩展车队的规模,不稳定的系统可能严重影响车队运营效率。可靠性也体现在系统监控和异常报警的可靠性要求也很高。第二个系统设计的要求就是高性能,各模块间消息通信的数据量很大。在我们最新一代车载系统中有6个1080P摄像头,当以每秒10-20帧的帧率获取数据,每秒会产生的数据量是非常大的。要使这么大的数据量高效在各可视化音乐个模块之间传输,对于设计上的挑战还是很大的。吞吐量之外,模块可视化编程通信延迟也要求很低,想象一下如果识别到车辆前方的行人之后需要1秒才能作出反应,就可能会数据处理的最小单位造成严重的后果了。最后一点是系统需要保持高效的灵活性,需要系统灵活的支架构师工资持各种不同的模块计算资源的接入,还有不同类型模块的接入。

针对这些系统设计上的需求公司早期决定放弃有名的开源 ROS,自主研发 PonyBrain。做出决策的原因有:首先 ROS 作为开源系统,代码质量可能不受公司控制,不能很好地保证代码质量。另外一点是 ROS 作为安全教育平台登录一个通用的机器人操作系统,可能不太贴合一些特殊的自动驾驶需求。基于上面这些因素,我们选择自研 PonyBrain 系统。

Pony.ai 的基础架构挑战与实践

对于之前提到的系统设计上的挑战,我们也都在工程实践上有一套数据处理英文针对性的措施。首先可靠性挑战,只有高质量的代码才有可能让系统足够可靠。为雷达云图了提高代码质量,我们在公司执行非常严的 Code review 和 Unit test 的机制来保证代码质量,确保不会有意外状况出现。同时,我们还会使用一些工具来及时发现问题,如静雷达表态分析和 ASAN,还有监测内存泄露的工具。在系统运雷达币是什么投资可靠么行时也会有多重系统可靠性检查,在系统启动前会校验系统启动环境,系统运行时也会有实时监控检查,监控系统运行是否符合预期;系统运行后也会将收集到的所有数据架构工程师都会执行数据分析,监测系统运行是否存在潜在问题。

我们公司还会雷达云图有持续的集成与发布平台来保证每一册代码改动后的系统可靠性,会提供一个稳定的 Release 版本发布给车队测试。

Pony.ai 的基础架构挑战与实践

对于高性能方面,我们不可能设计一个通用的高性能可视化管理系统,只能依据车载系统的实际需求做一些合理的架构设计上的取舍。我们在设计时更可能多的考虑些消息通信中需要支持的一些场景,避免大数据的拷贝时影响性能的逻辑。我们也会预计不同模块资源需求合理的分配计算资源,保证不同模块高效运行。还有是对系统定期进行 Profile 分析,通过数据矩阵的方式分析系统瓶颈,去优化性能。

对于系统灵活性方面,一开始就需要安全教育平台登录定义好通用的模块接口可视化分析的通用的消息通信接口去支持不同类型的模块和不同的消息通信。

03. 仿真平台


Pony.ai 的基础架构挑战与实践

仿真平台在日常开发起到非常重要的作用。其重要性不言而喻。首先仿真平台相对于路测低开销,不需要路测和人力的介入来架构师工资评价系统性能变化;第二个就是低风安全生产法险,不会对实际中的任何车辆产生影响;第三点提供了基于数据驱动的快速迭代算法的可能性,新算法直接可以在仿真平台上评估。可视化管理

仿真可视化管理平台有两个主要的使用场景。第一,它需要支持真实路测收集的场景,在路测中可能出现某一个场景处理不好,需要能够对异常进行追溯和修复,需要在仿真平台进行复现来检验算法。第二,架构仿真平台需要支持人工或者随机生成的场景,来帮助我们去测试一些不太成熟的算法或者是很难路测到的一些场景,如前面几辆车行驶较慢,车辆在变道的时候左边有一辆运行比较快的大车,这时需要车辆做出正确的决可视化是什么意思策,这样可以保证所有的算法和 feature 都可架构图怎么制作以在仿真平台上做足够多的测试。

Pony.ai 的基础架构挑战与实践

下面来谈谈仿真平台的挑战与实践。首先是如何保证仿真结果的足够可视化音乐可靠。服务器的环境不可能和车辆的环境足够一致,机器配置和服务器配置可能存在区别,如何在仿真平台上雷达表模拟车载计算平台的环境并不容易。在仿真安全教育日平台里不像真是场景有控制反馈的机制,因此架构师和程序员的区别需要对真实车辆的动力学模型进行仿真建模来支持仿真平台。第二个就是仿真数据的选择和管理。我们需要对路测数据进行管理,提取一些类型收集这些路测数据,仿真流水线可依据不同需求运行不同的 feature 和 case。第三点就是仿真的系统性能很重要,快速的得到仿真的结果可以帮助工程师更快的验证新的算法。因此需要一个分布式高性能的仿真平台,能够快速的将仿真结果反馈出来供工程师去决策。

4. 数据基础可视化管理架构


Pony.ai 的基础架构挑战与实践

数据是自动驾驶技术的核心驱动力,在做仿真、模型验证,解决路测不好的 case 时,都需要靠数据支持,架构师工资因此我们需要解决雷达售后数据的存储和访问、数据处理机制、数据同步机制等问题。对于数据基础架构而言,面临的核心挑战是数据量很大,数数据处理活动不包括以下哪种情形据量是 PB 级。还有就是数据属性不同于互联网数据,有大量客户端安全模式产生的数据(互联网是用户累计数据量大,单个用户数可视化工具据量不大),有大量传感器数据,有大量模块运行日志数据。

Pony.ai 的基础架构挑战与实践

数据存储的挑战。首先会依据特定的数据使用场景设计一些合理的存储格式,安全教育日例如需要便于车载系统记录,需要进行大规模数据分析。有些数据有部分访问和随机访问的需求,一个8个小时运行数据,我们可能关心的只是运行过程异常的时间段,这个时候就需要系统能够方便获取我们感兴趣的雷达云图数据。最重要的一点是要便于文件系统存储。当确定了存储格式雷达还需要选择合适的存储系统,如冷热数据不同选安全期计算器择方案,存储系统高可用,容易水平扩展,控制成本。

Pony.ai 的基础架构挑战与实践

数据处理可以帮助收集性能指标,有 MPI、模块运行效率数据处理活动不包括以下哪种情形、乘客舒适度体验安全教育日等,还有就是路测有趣场景的挖掘,如接管、急刹、感知算法架构工程师识别、不合理的变道策略等用于模型训练和仿真。在数据处理我们雷达表要着重减少从可视化分析数据采集到数据处理完成的延迟,这直接影响了路测的问题得到解决可视化音乐软件的效率;另外就是依据不同类型数据处理的任务选择合适的处理系统,如有些数据处理任务是 CPU 密集型,有些是 IO 密集型,要区分不同需求用不同的机制去完成;与车载系统一样,数据可视化是什么意思处理系统雷达同样需要有通用的任可视化图表务定义以支持灵活的添加新任务。

特别说一说数据同步,Pony.ai 有三个办公室和多个测车地点,但这并不意味着需要多个系统,整个公司在用同一整套的解决方案去部署在多个不同的测车地点,这样我们的系统是有足够的泛化能力的。那么数据需要在测车地点和研发办公室之间按需可视化音乐同步服务,这个服务又受到带宽等网络条件的限制,设计起来还是非常有挑战架构是什么意思的。

5. 其他基础架构服务

Pony.ai 的基础架构挑战与实践

公司需要建立可视化图表一个自动数据处理工程师驾驶车队,车队运营会有很多业务需求,车辆增长快,运营人员增长也快。如何高效运营这雷达云图个车队对配套服务的要求很可视化工具高,需要进行车辆状态管理、路测任务管理,还有车队运营实时监数据处理活动不包括以下控,帮助车辆运营状态实时观安全教育平台登录入口测车辆状态。

对于车队运营基础平台的挑战在可视化分析 Web service 的产品开发和产品的迭代速度很快、业务逻辑复杂。相关的基础架构需要去面对快速变化的复杂需求以及大量 Web service 的部署与管理。为了支持各种各样的计算和服务需要大规模的服务调度平台充分利用服务器集群支持多种应用,因此会在 Kubern可视化编程etes雷达拼图 平台上做一些开发。

Pony.ai 的基础架构挑战与实践

随着规模雷达扩大可能会有一些可视化需求,需要维护一个通用的可视化工具,便于工架构图模板程师方可视化是什么意思便查询算法运安全生产法行和场景运行,因此需要高性能,需要注重 3D 实时渲染性能,系统是跨平台,支持桌面/移动/Web 等多平台,还有人机交互接口,方便乘客使用的用户界面。


今天的分享就到这里,谢谢大家。

本文首发于微信公众号:DataFunTalk,欢迎转载,转载请留言或私信。