Lucas.Liu

Lucas.Liu

2021-09-09

Subscription

外行眼里的特斯拉 AI Day(三):规划与控制

  1. 特斯拉
1,470

作者:温斯罗普

正文

全文 1,399 字

预计阅读 6 分钟

继上一篇:

外行眼里的特斯拉 AI Day(二):视觉识别

完成了视觉识别后,神经网络就知道图像里的物体具体是什么,还包括了每个物体的位置、速度、朝着哪个方向移动等信息。比如知道了哪里是道路、马路的边缘、交通灯、地面标识、指示牌,还知道了最近经过了哪些关键的指示标识,也就是存储起来的一连串关键信息快照 / 索引。

接下来 AP 系统会做三件事情。

首先,它会判断所有这些移动物体下一步的意图。第二,它需要基于这些移动物体的下一步意图来相应调整原计划行驶的路径。第三,它需要告诉车子下一步应该如何配合执行。

这些看起来简单的步骤在某些情况下可能会变得很复杂。我们来举一个例子,当车子行驶在一条三车道的最右侧车道上,中间车道有几辆其他车子,按路线需要在前方的路口左转。如果想要完成这个左转的动作,就需要先并道到中间车道的两个车子之间,然后再换到最左侧的车道。而这一切都需要在到达前方路口前恰好完成,不能行驶得太快或者太慢,否则会影响并道或者影响其他车辆行驶。期间也不能突然加速或者突然减速,否则会影响乘坐的体验。

目前,特斯拉用了一种基于 C++ 编程的搜索算法来实现行驶规划。实际上这种搜索算法可以模拟数千种不同的情况,也就是特斯拉和其他车子之间的相互关系及行进路径可能性,当然了,这种是粗规划。根据特斯拉的说法,每 1.5 毫秒可以完成 2500 次不同的粗规划模拟。所有这些粗规划都是基于真实物体动态模拟出来的,如果特斯拉行驶在一个车子很少的道路上,那么粗规划也会基于车道、隔离带等来模拟。

当粗规划完成后,车子就会有接下来 15 秒的行驶路线了。紧接着,车子基于这个粗略的行驶路径会制定出更进一步的计划,力求让整个行驶过程更加顺畅,比如:转弯的半径、行驶的车道、速度的调整。

这些也是基于 C++ 编程的搜索算法来实现的,不过考虑的因素与前面粗规划稍有不同。它把侧方的加减速、横向移动、碰撞风险、执行的时间都放到一起,换算成一个 「总成本」(total cost)。然后就不断迭代,也就是搜索最小化这个总成本的最优路径。

特斯拉展示的一个例子是为了搜索出一个 10 秒左右的顺畅的行驶路径,大约要用这个搜索算法进行约 100 次搜索迭代。

这个路径规划模块加上之前所说的视觉识别模块(外行眼里的特斯拉 AI Day(二):视觉识别)的整体运行速度是每 27 毫秒输出一版结果,也就是每秒可以迭代识别和规划结果 36 次。所以,为了保证特斯拉的车子可以顺畅行驶,不被一些计划外的事件和突然出现的物体所打断,AP 系统每秒会刷新感知周围的场景和迭代规划行驶路径达 36 次。

当然了,AP 系统并非无所不知,它并不能预先知道自己在变道时,前面那辆车子里的驾驶员是否因正在玩手机回复 Twitter 而分心。但是它能比你快得多地察觉到前面的车子可能会与自己发生碰撞危险,这时 AP 系统会相应地调整自己的路径规划和行驶策略。

目前特斯拉正在尝试用一种更新的路径规划算法,这种算法主要使用神经网络,而不是像现在一样还需要程序员去编程的 C++。未来选择用神经网络的规划算法可能是因为这种算法可以更快地完成任务,也或许可以提供更多更优的路径。

可能在我们看来有些不可理解,其中一个最难的路径规划场景居然是停车场。特斯拉下面展示了正在研发的神经网络规划算法在处理类似的场景时,比起现在的路径规划算法的用时要少很多。

C++ 算法
C++ 和导航点结合的算法
神经网络的算法

接下来的章节,我们会具体地讲一讲特斯拉的神经网络训练。

(未完待续)

本文原作者 @cosmacelf 是一位 reddit 技术作者,原文标题及链接:

《Layman's Explanation of Tesla AI Day》

https://www.reddit.com/r/teslamotors/comments/pcgz6d/laymans_explanation_of_tesla_ai_day

本文著作权归作者所有,并授权 42 号车库独家使用,未经 42 号车库许可,不得转载使用。
Comment · 0
Owner: 0
Sort by like

Upload
大胆发表你的想法~
7
Comment