马克·塔克,塔塔汽车公司
英国Autodrive是一个为期三年的雄心勃勃的项目,正在米尔顿·凯恩斯(Milton Keynes)和考文垂(Coventry)的街道上试验联网和自动驾驶车辆的使用。作为这项工作的一部分,塔塔汽车公司正在开发自动驾驶汽车。自主试验开始于受控的测试轨道环境,然后在逐步复杂的城市场景中进行,最终在英国城市的街道上进行。
在本次演讲中,您将了解如何开发自动驾驶汽车所需的复杂控制系统,以及塔塔汽车是如何使用Simulink的金宝app®,机器人系统工具箱™和Simulink Real-time™开发金宝app轨迹规划和运动控制的算法,并将其部署到自动车辆中进行测试。
记录时间:2018年10月3日
非常感谢。所以我很快就能搞清我们是谁。你可能听说过塔塔集团。尤其是在印度,这是一个非常大的群体。其实跨国。你可能听说过这里的一些品牌,包括塔塔钢铁、塔塔通信、塔塔莱西。塔塔汽车就是其中的一部分。我们是塔塔汽车的一部分。
所以塔塔汽车在商用车和乘用车方面都是相当大的。正如你们所知,它还拥有捷豹和路虎。我们是塔塔汽车欧洲技术中心的一部分。我们最初的任务是把技术从欧洲带到印度。
所以在印度的乘用车市场上,尤其没有印度本土品牌。他们把技术带到那里,这样他们就可以开发和制造自己的汽车,他们现在就在这样做。他们也得到了更多的进口。所以印度的市场已经发生了很大的变化。但我们是来支持印度的母公司的。金宝app
事实上,我们的总部设在考文垂及其周围。我们有一个车间。我们有一个设计工作室。我们在大学校园里也有办公室。对于你们这些曾经去过校园的人来说,我们现在实际上要搬进左边的新大楼。实际上很晚了。但现在它将被冠名为国家丰田创新中心。我们将与捷豹路虎、华威制造集团和其他参与者分享这一点。
这就是我们。这次演讲将集中讨论自治问题。但我只是想简单地说明ADAS和自主性之间的区别。ADAS,顾名思义,就是在驱动的某些功能上支持驱动程序。金宝app很多这样的功能已经在汽车上实现了。比如自适应巡航控制,车道偏离警告。所以你可以从纵向,横向,和车辆的运动中得到一些额外的帮助。
虽然自动车辆,但更多关于夺走司机的一些响应并接管横向和纵向控制的任务。为此,它需要对车辆进行环境来进行感应,以控制车辆。相当大的西方自治水平。我知道这是非常小的文字,但我很快就过了。
基本上,前三个层次都与驾驶员和驾驶员协助有关。第一层是驾驶员完全处于控制之中。然后我们进入一级驾驶员协助,其中一些任务被从驾驶员手中拿走。或者他在一些任务金宝app中得到了支持。像自适应巡航控制是否支持车辆的纵向行驶,或者像车道保持辅助,或车道偏离警告,这些都是支持驾驶员的。金宝app这是纵向的。在侧面也是一样的。
当您开始进入自主区域时,那就是我们开始做更多实际的地方,如果您喜欢,处理以及如何在特定方案中实际响应。所以我们真正在这里得到了一些被称为条件自动化。因此,这是系统接管车辆的情况。但预计司机将在某些情况下重新控制控制。
随着时间的推移,我们会进入高速公路试点项目或城市试点项目。在这些情况下,飞行器完全处于控制状态。你不需要辅助司机。金宝app但这只是在特定的情况下。非常具体的场景。比如在高速公路上。但这一切都通向第五级,即给予全力支持。金宝app汽车得到了完全的控制。所以不需要开车。而且没有驾驶员控制来接管控制。
另一个很好的例子是停车。我们已经看到了0级。司机完全控制住了局面。然后你就得到了不同程度的支持。金宝app简单的东西,比如环绕视图。然后你就有了各种自动停车功能。最终,这将导致像代客泊车这样的事情,你可能会出现,把车交出来,车自己去停车。这是SAE自动化水平的一个很好的例子。
这一切都导致这一级别五个完全自动化。现在有一些相当关键的球员看着这一刻。你可能听到关于谷歌的人的新闻,优步。他们都在发展很多。他们是那种试图迅速地将公路放在高速公路上的大型球员。我们在塔塔做的是完全不同的。而且我们比那更好。所以我会试着告诉你我们所做的事情以及如何是独特的。
它也值得设置场景。为什么自主性有很多关注?一切都说,这项技术非常有趣,从我的角度来看。在这件事上工作很棒。真的需要有一些好处。和一些关键的关键效益。基本上,在安全方面,大量的崩溃-90%的崩溃 - 可以以某种方式归因于司机。因此,有效地在车辆中的驾驶员是最不确定的系统之一。
我知道我们得到了不同的道路状况。汽车上有各种各样的磨损和撕裂。但有效地,在一辆新车,在良好的条件下,您可以获得一个可以从另一个极端到另一个极端的司机。您可以获得更老的司机,年轻的驱动因素,你可以让那些以某种方式受损的人。一些能力较少。有些人刚刚有不同的驾驶态度。它们更加温顺。有些人可能更具侵略性。
因此,这将有效地,自动驾驶将在这方面创造一个公平的竞争环境。不仅是在安全方面,而且在我们实际如何使用道路方面,这可能会有很大的好处。我稍后会讲到我们在米尔顿凯恩斯做的一些实验。你开车去米尔顿凯恩斯。走M1。我做的事。常常有交通堵塞。停车经常有困难。
如果我们有自动驾驶的车队,其中一些问题就会减少。你如何设置汽车,你可以以某种方式使它们更有效率。比如空气质量。其他正在发生变化的因素;一个关键的问题是,几年前,居住在农村的人口占城市人口的比例发生了变化。因此,人们拥有自己汽车的需求正在改变。所以我住在乡下。没有车,我去不了很多地方。公共交通不是很好。但是越来越多的人生活在城市,那里的要求是不同的。
我们对待汽车的方式也发生了很大变化。因此,汽车拥有量可能会发生变化。在未来,这可能不是一个拥有汽车的问题。有很多人都在说,机动性是一种服务,基本上,如果你想去某个地方,汽车是一种选择或解决方案的一部分,可以把你从一个地方带到另一个地方。
好吧。我们来快速介绍一下英国自动驾驶项目。这在目前是非常重要的,因为我们已经达到了项目的最后阶段,在目前的两周中,我们正在做大量的拍摄和大量的向贵宾展示。这个项目已经运行了好几年。三、四年了。和资助项目一样,这是一个合作项目。在车辆方面,我们有RDM吊舱,你们可能在新闻上看到过。他们围着米尔顿凯恩斯转。你有自动驾驶汽车。我要谈谈我们的自动驾驶汽车。 JLR also got autonomous vehicles in the project.
并且还有一个连接的元素,我们都是自己,JLR和福特一直在v2x。因此,将车辆传送到车辆和车辆到基础设施的手段。项目中的其他合作伙伴列在下面。但这包括不同委员会,法人实体等的支持。金宝app但我只是将更多地专注于技术方面。
让我先穿过我们的车辆。所以这是我们的车辆。这是一个塔塔六角洲。正如我所说,塔塔乘用车很大程度上支持印度市场。金宝app所以他们通常在欧洲可能会有很多不同的汽车。所以它非常针对印度,价格是一个非常关键的因素。所以这是我们正在制作和销售的汽车类型。因此,这些数字并不像一些国际卖家那么伟大,因为市场受到限制。
这是塔塔的一辆车。叫做六边形。在这个特殊的变种中,它是一个六座的。有三排,两个座位。如你所见,我们移除了后排,放入了processing。我将谈谈汽车的四个要素我们改变了什么。其中一个关键因素是感知。所以我们在车上安装了很多传感器。等下再详细讲一遍。
和很多这些自主系统一样,接下来要讨论的一个问题是感知。传感器给我们原始数据。但这些原始数据需要以某种方式进行处理,以便为我们提供一些有用的信息,使我们能够真正使用这些信息——例如,用于探测物体。对物体进行分类,规划路线。从这些原始数据中,我们需要做我们所谓的感知,并提取这些数据。
我们有一个街区,叫做规划。所以我们现在得到了关于道路和环境的信息。我们需要规划从我们现在到我们想去的地方的路线。这有三个阶段。我将再一次详细介绍不同层次的规划。一旦我们有了计划,我们就需要控制车辆。这就是最后一个街区。这是一个相当高的车辆视野。
有趣的是,我们的团队规模很小。但我们有一些传统的汽车工程师。MATLAB 金宝appSimulink的用户。他们对汽车控制非常熟悉。这是图的右边。但我们也有一些计算机科学家,研究机器人的人,来自伯明翰大学的人,但他们都是基于Linux, c++和Python。
我们有两个不同的领域。它最终分裂的方式是,很多感觉和知觉都是在这些环境中完成的。它们与MATLAB和Simulink在控制和规划中所做的工作相结合。金宝app我会讲一下我们是如何在技术上把它们融合在一起的。也许这样做会有一些问题。
我应该提到的是,将这些结合在一起的一种方法是我们系统的关键,我将在一分钟内详细介绍。我们使用的是机器人操作系统,它由MATLAB支持。因此,它是一种在左边的C++和Python代码之间进行通信的简单方法,右边是MATLAB窗口。我们还使用了一些称为PTP的方法,这是我们同步时间的方法。这就是所谓的精确时间协议。金宝app
这是一个标准。IEEE标准。这也得到了双方的支持。金宝app这是对这两种不同解题方法进行积分的另一种方法。我们用的是CAN。我提到这一点是为了完整性,因为这是我们最终与运载工具集成的方式。简单介绍一下这些传感器。我没有最好的车和传感器的最好的照片。但实际上,我们有很多雷达。近程和远程。 We've got laser scanners. We've got what they're calling 2D laser scanners. So we've got six of those positioned around the car. And they give about 130 degrees of field of view.
因此,如果您合并在一起,您将在车辆周围完整360度。然后我们也有360度的Lidars。所以它们是全旋转扫描的。那就是在那里屏幕左侧看到的。我们有许多相机参考。我们还有一个车道检测和物体检测相机。我们也有GPS。你可以在那里看到一个天线。有点像磁盘。
得到了两个,两个天线。一个前后给我们方向。我们还有来自基站的信息,为我们提供GPS的差异方面,以使我们更好的准确性。右边的小图片,你可以看到什么,它不清楚。这意味着给出一个点云表示。那是你可能得到的输出。您可以从其中一个激光扫描仪获得的原始输出。
这就是我们的传感器套件。就像我说的,我们在后面坐了两个座位,我们在那里放了一个架子。我们有很多过程。所以我们有很多处理,特别是在传感方面,是在这些工业部件中进行的。你们可以看到有四个。这些都是在基于linux的平台上完成的。你还会看到右边的蓝色,那是Speedgoat盒子。这就是我们连接到飞行器的盒子来控制我们的驱动线系统。
在那里你也有像盒子一样的东西融合在一起。例如激光雷达信息。GPS处理器之类的。最后,我们得到了有线驱动系统。所以我们所做的,并没有直接与引擎管理或刹车系统对接。我们所做的就是在上面加一个驱动装置来做驾驶员所做的事情。我把这里放大了一点。我们在转向柱上安装了两个发动机。我们有一个活塞来推动刹车。然后我们绕过电子油门。
我们也有,你可以看到在中间,我们有一个大的紧急停止按钮的盒子。这样司机就能完全控制了。它还提供了一些其他的控制。这里有变速杆,手刹,还有类似的东西。我们还可以控制点火,雨刷,各种辅助设备。因此,当我们构建这个功能时,我们可以将所有这些整合到我们的系统中。
这个系统实际上是基于移动性的解决方案。所以我们去找了第三方。所以有些车,对于那些不能转动方向盘的人,他们会安装一个操纵杆。我们用的是同样的系统。但我们没有操纵杆,我们实际上有一个CAN接口,这样我们就可以控制各种各样的控制。但我们总是可以恢复到全手动驾驶模式,这样我们就可以在站点之间行驶。当我们进行测试时,如果情况出现,我们可以立即恢复。
这是一张很长的幻灯片。我尽量不把它搞得太慢。但是我已经提到了高水平。我们如何感知,如何规划,以及如何控制。这些都是使用这个ROS总线连接在一起的。这个机器人操作系统的想法。所以我真正想要展示的是不同的处理过程从何而来,以及我们是如何组成我们的系统的。
例如,这是前两件事是一些传感器。原始传感器。这可能是LiDars或雷达或GPS。猛击猛击。这实际上有效地有效地处理了已经完成的处理。因此,SLAM代表同时定位和映射。因此,它有效地检测到对象的位置,因此您可以有效地停止创建这些对象的位置的地图。但与此同时,您也对这些物体定位了自己。因此,它是一个同时创建地图并对自己定位的过程。
所以这是一个很好的技术。但这是在很多激光雷达数据上完成的。所以然后进入我们的ROS巴士。然后我们将采取一些信息并将其置于各种过程中。所以在这里,我们正在谈论传感器融合等事情。传感器融合,我们有各种各样的好处。在这种情况下,我们在雷达上使用传感器融合。对不起,在Lidars上。六个围绕汽车融合在一起,使它们好像是一个传感器。但是你传感器融合,为您提供一些冗余的元素,或者实际上是某种协同作用。 You might use a radar to give you good range information. You make of a video image to give you good lateral information. You could fuse those together to give you a much better picture of where an object is.
所以我们进行了传感器融合。我们有点云处理。这就是我们从激光雷达得到所有点的地方。我们得到了很多点因为在360度激光雷达上,我们说需要处理30万个点来获得一些有用的信息。但处理过程仍在继续,信息可以返回到公交车上。
然后我们有了各种规划功能。现在我要多讲一些不同的规划功能。但本质上,它有三个阶段。一个是全局规划,一个是行为规划,一个是轨迹规划。这些也利用了一些离线过程图。因此,我们提前为这个应用程序创建了一个地图。然后是一些效用函数。所以我们有各种屏幕直接与ROS总线接口。我们有控制gui。有一个很好的软件叫Arvis,我想这是一个免费的软件。 But basically on that you can layer up different information from different sensors. So you can visualize what's actually being detected as you go along.
我们也要看门。有了它,我们的车就有了额外的安全功能,我们可以用它来检测系统中的任何故障。并在适当的情况下将控制归还给驱动程序。我们得到的一件事是我们从ROS总线获取信息。现在的Speedgoat盒子是一个基于windows的盒子。或者是基于dos的盒子。目前,ROS是一个基于linux的机器。所以我们不能直接用它。ROS也将可移植到基于dos的系统上。希望我们可以用它。 And ROS too will hopefully also have real-time capability.
但目前我们不能那样做。所以我们在那里得到了另一个接口,我们正在呼叫ROS桥。所以它需要罗斯信息。或者它需要,它读取,它直接向我们的扬声器盒发送,即在那里。这就是我在谈论的。像ROS这样的东西。它实际上是一个中间件。它实际上都是从以太网沟通。和我们的ROS桥一样。我们只是将以太网直接送入我们的演讲者。
我们的最终控制是让我们想要车辆的控件 - 并转向我们的驾驶电线系统。并恢复回归种类更传统的凸轮。所以这是我们的系统,因为我们得到了它。所以我真的很想强调我们如何使用ROS加入所有内容。另一件事要说的是它是一系列的软件的写作。
我们已经画出了蓝框的轮廓。我们在很大程度上接受了这些功能。绿色的部分,是我们自己做的。但我们已经在Linux或c++中做过了。用紫色表示的是MATLAB和Simulink。金宝app
界面,运动控制器,和Speedgoat显然是在MATLAB Simulink中完成的。金宝app我们也在MATLAB Simulink中做了很多轨迹规划。金宝app但这是嵌入到Linux环境中的。我们已经将MATLAB的Simulink嵌入到实时处理器中。金宝app我们在Linux中混合了MATLAB和Simulink。金宝app我们也有纯Linux进程。
所以我说我只是快速地过一遍规划者的级别只是给你们一些背景知识让你们至少了解一下我们是如何做的。但我相信这是一个相当标准的方法。所以计划分为三个阶段。我们有一个全球规划师。我刚刚画了一张非常简单的地图。这是一张从车站到大学的混凝土地图。这和说,我想从A到B,最好的路线是什么没有区别?这是一个相当高水平的计划。
从那个高级计划中,我们会做我们称之为行为计划者的事情。因此,这实际上是计划,然后我们已经获得了路线的本地化地图。我们实际上将它们分成我们称呼车辆的内容。每个Lanelet都有一些与之相关的行为。所以标准行为保持在车道。但是,我们可能会有类似的东西,就像左转或停在红绿灯处。所以那些是我们需要计划见面的行为。
它们进入我们称之为静态的地图,因为它们不会改变。那么战略规划的一部分是什么呢。对于显而易见的事情,如障碍变得明显,还需要进行动态规划。规划的下一部分是确定轨迹。因此,我们实际上计算了许多候选配置文件。然后我们会选择最合适的。
所以一开始,我们计划一条路径。所以从位置上来说,这是一条空间路径。这就变成了我们所说的轨迹。而轨迹,不同之处在于我们现在有了一些时间信息。实际上,我们已经把它加进去了。我们不仅要在xy位置。我们想要在给定的时间,给定的速度,得到一个位置xy。
从所有的候选轨迹中我们将通过各种标准,各种测试来选择最合适的轨迹。这将涉及到最准确的位置,或避免障碍,最好的舒适性的司机,等等。有很多标准。我在这里列出了一些。然后我将更多地讨论控制。
因此,这些规划算法是在MatlabSimulink中完成的。但是被嵌入Linux。这些控制算法被嵌入到Spe金宝appedgoat中。我只举了三个例子。这个项目的前身是我们有一辆小型印度运输车。它被称为塔塔王牌。他们给其中一个用铅酸电池充电。在上一个项目中,这是非常简单的自主测试。这就是所谓的纯粹追求。纯粹的追求基本上是说,我知道我想绕过那个弯道,你选择一个点。你基本上会转向这一点,并不断更新它。这相当简单。它确实有一些局限性。在准确性和稳定性之间的权衡上,你必须小心。但这是一个非常简单的问题。对于低速机动,这是绝对好的。
如果你喜欢在长牵引杆上被牵引,你可以将其与之相比。如果你们中有人有过拖车和马厩的经验,你知道这在这种情况下是非常相似的。它并不总是稳定的。所以你必须有效地选择你的前瞻点来匹配。有效匹配你的速度。因此,你走得越快,你就越需要寻求稳定。但这意味着你最终会走捷径。这就是它的局限性。
另一种方法是保持车道。这就是你观察前面的轨迹,然后画一条曲线。在这种情况下,如果你拟合一个简单的二次方程,这个二次方程的系数会告诉你在车道上的位置。你的头在你的车道上。给出一个曲率函数。这些可以直接用在简单的控制回路中。所以你可能在这些不同的控制回路上有一个简单的比例增益。
这对于高速公路上保持车道的应用是很好的。特别是你跑得更快,这很好。所以当曲线很浅的时候。轨迹跟踪是我们实际使用的方法。这是基于模型预测控制方法的。我们使用MATLAB中的工具箱。所以我在这里展示的是这个模型是非常关键的。我们嵌入的模型是我们实际如何实现性能的关键。这些只是为了展示高层次的模型。
有效地,我们在中间使用的模型,这是实际的实时实现。但是,我们在离线模拟中使用的相同型号,以及在播放数据中。因此,只需使用相同的模型在不同的数据上进行分析和测试,非常好。
如果有人想后谈我,我对模型预测控制器设计有很多有趣的评论。我认为马克今天下午说话。他也会看待那些。我找到了一种有趣的技术。使用Matlab Simulink非常容易。金宝app但是,与植入有几点 - 不成熟。但更多要做这种方法,这很有意思。
另一个关键问题。我提到过使用PTP。精确时间协议。我们发现的一个关键问题是,因为你有很多过程在工作,我们得到了很多数据。它们都以某种形式老化了。我们还没有时间戳,现在所有的东西都发布了。所以我们不知道。所以有效的ROS总线,你得到一个与数据相关的时间戳。下面的图表显示了系统中不同的信息。你会有很多不同的延误。 They vary. They're fairly cyclical. But they do vary. And so to correct for time delays, which is quite a problem, we've had to use PTP. And then feed that into the algorithms.
数据日志记录和可视化也是相当的密钥。所以我们正在做所有这些测试运行。我们正在做所有这些模拟。但实际上能够可视化这些算法的工作程度意味着我们必须有点创建一些可视化它的新方法。如此相当明显的事情,左边是我们将获得我们的GPS曲目并在地图或卫星图像上叠加它们。但在右侧,我们实际上发现,实际上,如果在这种情况下,如果您在这种情况下叠加,则速度绘制您的轨迹,您实际上可以看到您的计划速度轨迹与您的实际相比如何。
在这种情况下,左边的黑色是实际的。绿色是我们想要的。你可以看到他们配合得很好。这只是代表。它不能给你一个精确的结果,因为在任何时间点,轨迹可能会因为障碍物的出现而改变。因此,你可能想做些不同的事情。但它能让你知道你做得有多好。所以我们主要是为线下设计这些工具。
但是听马克刚才说的很有趣。如果这些可以成为在线工具,它们将对我们更有帮助。这里有更多的可视化工具。有些来自底部的Arvis。点云处理。所有这些都是我们的系统中有不同元素的东西。在某种程度上,有些人是极速山羊。如果它们能在网上和线下结合起来,那将特别有用。
我试图从我们一直在做的各种测试中选择一些有趣的比特。这是在COVENTRY于去年年底完成的。其中一些在米尔顿凯恩斯。目前,我们实际上正在拍摄。今天,我在这里。但BBC正在拍摄我们。所以我们可能会在接下来的几天内得到一些新闻。
你发现这里的明显镜子向左转。所以在右转时剪裁。我为此道歉。但我的工作不是电影编辑器。我只是想展示它实际上运作的一些剪辑。开始了这个功能开发。但最终,我认为它真的强调,我们刚刚采取了一种务实的方法来发展一些自主车辆功能。我们是一个非常小的团队这样做。所以我们使用了现成的工具。我已经列出了一些那里的人。
现成的硬件。并在适当的情况下使用定制的第三方软件。虽然我们自己做了一些关键算法。这就是把它和ROSS、PTP、规划算法和控制算法粘在一起的原因。
离开的时候说声谢谢一个很小的团队。上面提到了几个名字。我也从吉安卡洛那里得到了一些帮助。特别是这次演讲。所以我想为此感谢他。我知道我耽误了你吃午饭。但如果你想留下来提出任何问题,我很乐意回答。
您还可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。