我们如何研发了世界上最酷的调车内燃机车自动驾驶系统
测试中使用的原型机车之一

为什么它是最酷的?就是因为它是唯一进入试运行的3级自动驾驶系统。而它之所以是唯一被带到试运行的自动驾驶系统,原因在于如果没有发展有轨电车等自动驾驶产品,进入这个市场是没有意义的。内燃机车种类繁多,对于生产来说这是个有趣且重要的任务,但作为单独的任务很难回本。比如,我们知道Siemens这类的公司有这方面的开发成果,但我们没见过他们的有轨电车在城市环境中行驶,没见过他们的机车运载着实际货物。

由于我们在俄罗斯和中国已经有不少无人驾驶电车领域的开发和解决方案,所以我们决定在一家有着大量用于将材料运送到车间的调车机内燃机车队的大企业进行实验。

那里的问题在于,内燃机车的运行受到信号众多、人员和基础设施的位置、调度员的命令等因素的限制。司机在整个轮班期间(约12小时),甚至在夜间都必须保持高度的注意力。结果是,他迟早会出现问题,不是错过什么,出车祸,就是撞死人。这是生活,事故有时发生,但在这个具体的情况下,可以在内燃机车上装上雷达,因为这不是一个机车的停工,而是整个大公司的停工,并且停工时间很长。避免碰撞和自动驾驶系统能够大大降低驾驶室内的司机所承受的负荷,然后停工现象也就不复存在了。

图中的模块是我们开始工作的早期相机单元原型之一。跟开始相比,它已经经过了很大的改变,不过找到事物开始的地方总是很有意思。现在我就给大家讲讲,机器人是如何在站位上进行定向的,因为这个任务其实很不容易。

我们的自动驾驶系统在恶劣的天气和气候条件下,在任何光线下都能够安全运行。

这就是安装到内燃机车的设备 (目前的相机硬件与最初的原型有很大的区别):

我们如何研发了世界上最酷的调车内燃机车自动驾驶系统
我们如何研发了世界上最酷的调车内燃机车自动驾驶系统

需要三台摄像机,因为机车的移动速度相当快,刹车距离与有轨电车相比很长(有轨电车在紧急情况下几乎立即停住);后面的负荷又很重。因此,要提前做好情况预测。经常需要读出在这种场景下交通信号灯的指示。
我们如何研发了世界上最酷的调车内燃机车自动驾驶系统

所以有三个摄像头:
我们如何研发了世界上最酷的调车内燃机车自动驾驶系统Z这是摄像头看到的情景:
我们如何研发了世界上最酷的调车内燃机车自动驾驶系统

再加上雷达。

这样的一套软硬件相当昂贵,大约在1.5万元左右。它不会被装在汽车上,因为一套软硬件不应该比汽车贵。然而,在内燃机车上安装这样的软硬件综合体便是合理的,能够回本。并且两者的任务是不同的。谷歌在最近的发布会上展示了他们的全套传感器,在他们看来,这套传感器应该安装在每一辆无人驾驶汽车上,价格远高于10万美金。他们和我们都有相同的备份模式:如果其中一个子系统怀了,还可以通过其他子系统开到车库(服务)。

我们为什么会在俄罗斯开始工作

因为我们在农业机械方面位列前三,在铁路运输方面位列前五,而且我们有着世界上最发达的有轨电车网络之一(但不意味着是最好的,比如说中国就发达得多)。世界上拖拉机、联合收割机、有轨电车和内燃机车的市场占到了总汽车市场的三分之一。三分之一!俄罗斯有发展这一切的理想条件,因为在90年代没有购买新机械,许多地区的机械是新的,也就是说,几乎没有老的机械设备。

世界上有30万台机车,其中“俄罗斯铁路”有5万个火车头,15万台调车机车。此外,还有1万辆私人所有的机车。这往往来自大型工厂,比如,在诺沃利佩茨克工厂上有250台机车,我们在那里进行试验。它们解决一个特定的任务:将原材料运送到生产设备或成品运输到干线铁路的过程的连续性。化工、冶金和矿山企业有这样的任务。

每年生产的内燃机车不到1000台。要处理好当前车队的问题,完善它。这个我们做得到。

在封闭区域发生的事故看起来比外面要多。这个情况下几乎没有人死亡,但总有财产损失(箭头,列车脱轨等);况且在修理的同时,生产节奏总是被打破。

任务是制造L3无人驾驶机车。

解决方案

有轨电车研发能够让机车走得很稳:
我们如何研发了世界上最酷的调车内燃机车自动驾驶系统

并且可以很好地看到障碍物:
我们如何研发了世界上最酷的调车内燃机车自动驾驶系统

但是仅在机车上使用代码是行不通的。因为,如果有轨电车线路比较简单(分支很少的双轨),则机车的站点复杂程度要高得多,还必须在密集的铁轨群中很好地航行。

调车内燃机车的好处在于,它们不会在全国范围内行驶它,而沿着自己的封闭路线行驶。我们做的第一件事就是开始做基于路线图和卫星图像的轨迹图作为辅助数据来源(我们必须承认,使用卫星图像更快、更可靠)。也就是说,我们已经训练出了能够分别路径的神经网络,但是目前我们需要手动调整结果。最终我们得到这样的路线:

我们如何研发了世界上最酷的调车内燃机车自动驾驶系统

机上有高精度的GPS+GLONASS(很贵,不过这里需要),还有视觉定位系统和雷达。这意味着,你可以在路线段周围进行地理参照,通过识别周围的物体,就可以准确地定位。

有了卫星地图就很方便:
我们如何研发了世界上最酷的调车内燃机车自动驾驶系统

因此,我们接下来要做的事是开始教内燃机车了解车站。实际上,每次走在路线上时,机车都会记住并识别周围的物体,以便将它们分为永久性和临时性的(用罐子或人进行导航很奇怪,但用电线杆、交通信号灯和箭头的总和就很适合)。然后把物体投影到地图上。这就是数据来源之一,它使得自动驾驶决策的准确性大大提高。存储算法和FaceID大致相同,即将新的成功数据添加到训练样本中。

自然,我们需要在开始时手动标记数据集。这不是最愉快、最简单的工作,但却是非常重要的。只能在物体上采集数据集,因为商业数据集里没有这样的信息。

我们如何研发了世界上最酷的调车内燃机车自动驾驶系统

车站的特点之一就是光线明亮,识别条件很差。这里就需要一个雷达来搜索行人,单独的视频分析做不到这一点:

我们如何研发了世界上最酷的调车内燃机车自动驾驶系统

这样通过立体视觉,可以检测出不良场景(轨道上的任意障碍物到物体距离的估计),从而为周围画面的低级检测创造更多的数据:
我们如何研发了世界上最酷的调车内燃机车自动驾驶系统

因为雷达是我们自己设计的,所以我们能够从所有的传感器中获取低级数据,通过神经网络马上从这些传感器中获得比一般的传感器更多的相关性。这里包括最初的雷达扫描。事实证明,这对项目也非常重要。

当然,我们也会用行人动作预测(了解详情,请看之前有关电车的帖子)。但这里的情况很简单,人们几乎不动,也不会跳到内燃机车下面试图钻进去。这是展示避开障碍物的视频。

调车机车在障碍物前面刹车

这就是箭头的位置检测方法:我们在导航中等待箭头,寻找箭头的位置,我们切换到远处的摄像头进行更仔细的观察,在帧中突出显示有箭头的框架,把它放在神经元网络里面,从而得到箭头状态的结果。

我们如何研发了世界上最酷的调车内燃机车自动驾驶系统

调车内燃机车的任务与普通机车的任务有什么不同?

这就是调车内燃机车。
我们如何研发了世界上最酷的调车内燃机车自动驾驶系统

在这里,它更美了。

我们如何研发了世界上最酷的调车内燃机车自动驾驶系统

这样的调车内燃机车总是忙着与火车对接。

运动的特殊性在于,它既能拉又能推。它向两个方向移动,也就是说与驾驶室主视图相反。

有很多机动车的限制,除了通常的交通信号灯外,还有自己的交通信号灯。

如果普通线上箭头较少,则站内的一般会有整个切换网。站内的GPS+RTK校正是不够的,因为周围的铁不一样多。卡尔曼滤波加平滑并不能保证轨道被保存。离我们一半米的地方时常有相邻路径,机车可以把自己定位到那里,这就导致算法错误。我们使用粒子过滤器来处理低级数据,它使我们的定位精度提高了10倍。粒子滤波很难计算(这个困难可以避免),我们不能明确地指定运动模型。但是我们可以从所有传感器为他提供数据:其中包括里程表、车站的杆子、交通信号灯和箭头,并绑定到虚拟卡。桥下工作:分布在车站的杆子,箭头和交通信号灯前面的分布比GPS可以更准确地估计其自身位置。未来,我们计划完全放弃RTK校正,GPS只会在最初的位置评估中使用。接下来是在地图上以及在摄像机/雷达上柱子之间的相关性。

交通信号灯比有轨电车上的交通信号灯要复杂一些。有必要区分交通信号灯。路线上有机车自动报警,对于调车任务,轨道上的信号在站内不重复。我们需要夜间模式,这时交通信号灯会照亮摄像头。在白天模式下,它们有时会变白。这就是发明过滤系统的原因。要用300米的距离来识别障碍物,以便及时停止列车。

有了准备好的、带有标记的卫星地图后效果很好,但自动驾驶系统需要在新站自己通行五六次以后才学会,所以如果办公室不准备地图,就需要在新站开空车。另一方面,如果地图已经过时,我们的机器人也不会迷路。这一点很重要,它需要大量的资源,因为不仅需要看到对象,还需要分析每一个对象的类型。驾驶人员可以成为永久分类的对象,因为他总是都站在一个地方,但如果给他加上人的分类,机器人就明白了,把他放在地图上是没有意义的。

驾驶员需要助手在行驶方向上观察180度,因为机车具有一种特殊结构,当机车在前方时,机车会关闭左侧视野。而且驾驶员必须与一名助手一起驾驶(通常不允许仅一位驾驶员驾驶),要么需要视觉系统和自动驾驶系统。

有了我们的系统后,经过测试和认证后,无需现场助手即可通过我们的系统。系统不会休眠。

这里是说明情况的最好的例子之一。BelAZ撞到了内燃机车,刹车失灵,BelAZ的悬架起飞,横梁破裂。

刹车比较困难。在有轨电车的情况下,我们可以灵活地控制过程,并进行部分刹车。如果是火车的话,必须完全停下,否则可能造成列车破裂。有轨电车可以减速并控制碰撞前的时间。这是由它的制动系统和固定重量。火车每一次都不同,最多可以有100多节车厢,气动刹车器需要几秒的时间。最大的问题在于,如果我们控制火车的制动器,就要控制整个火车的压力,这对于自动驾驶仪来说是有点无法控制的。

系统到底是做什么的?

现在,当接近列车的速度超过间隙或轨道上有障碍物(包括人)时,它在交通信号灯时启动自动驾驶刹车。我们计算碰撞预测、物体轨迹、列车速度。如果一个人在列车通过的同时过轨,我们先发出警告,如果时间不多,我们开始刹车。

基本原则:

Cognitive Rail Pilot demo.mp4

测试基地在瓦洛格达市,因为那里非常重视安全问题。几年前,有个机车司机睡着了,通过禁止信号开进了油罐车。结果,车一翻,一堆油罐车掉轨,还好它们是空的。当时还留下了照片,印象深刻

如果油罐车不是空的,照片便不会留下来,一切会被炸掉。疲劳的驾驶员通过禁止信号灯,这比想象的更普遍。这里可能不是欺骗行为,而是对调度员在对讲机上的命令的误解(在调度员允许的情况下,可以在蓝灯下行驶)。但如果不看箭头,它会坏。当前的列车不会发生任何事故,但下一个反方向的列车可能会脱轨。

这就是从驾驶室里看到的情景:

机车司机从驾驶室内看到什么

正如大家所看到的,我们正在稳步推进将老旧的苏联ChME3调车机车改造成高可靠性的无人驾驶机车,或者至少是为其配备副驾驶功能。后者的功能已经具备并投入使用。

相关文章:

  • 2021-10-02
  • 2021-09-18
  • 2021-05-19
  • 2022-12-23
  • 2022-12-23
  • 2021-05-19
  • 2021-07-28
猜你喜欢
  • 2021-12-18
  • 2021-07-08
  • 2021-06-12
  • 2021-08-28
  • 2021-09-04
  • 2021-12-31
  • 2022-01-17
相关资源
相似解决方案