![](https://habrastorage.org/webt/xy/8_/nn/xy8_nnzqb4brig2vyl7k6ql1i54.jpeg)
На днях «Ведомости» рассказали, что скоро в Москве начнут тестировать беспилотный трамвай. Сейчас его испытывают в депо, но через пару месяцев планируют запустить на маршруте №17 — пока без пассажиров и с водителем в кабине.
На следующем этапе водитель тоже продолжит контролировать трамвай. Система будет только фиксировать срабатывания, но на управление трамваем сможет повлиять только в двух случаях — затормозит, если увидит на путях посторонний объект, и снизит скорость, если водитель слишком разгонится в плохих погодных условиях.
Скорее всего, полностью беспилотным трамвай станет только через несколько лет. Как пишут «Ведомости», к 2021-2022 годам.
Разработка идет на базе модели «Витязь М», которую выпускает «ПК Транспортные системы», а самим автопилотом занимается компания Cognitive Technologies. Руководитель ее департамента разработки беспилотных транспортных средств Юрий Минкин рассказал нам о проекте подробнее.
Сенсоры
Система будет использовать 20 камер и 10 радаров — это если говорить про конфигурацию для полностью беспилотного трамвая. Мы сейчас прорабатываем решение, чтобы сенсоры покрывали полностью все 360 градусов вокруг трамвая. Это наша текущая оценка количества.
Большая часть будет установлена спереди. Там в разных конфигурациях стоит до пяти камер. Три камеры сзади, и остальные распределены по вагону. Ещё отдельные сенсоры контролируют периметр двери. В дверях будут работать либо камеры, либо другие датчики — этот вопрос мы еще прорабатываем. Они должны видеть, когда в дверях никого нет, и их можно закрывать.
Камеры и радары по отдельности — это хорошие приборы, но они не дают полной информации, когда работают изолированно, особенно, в сложных условиях. В идеальных условиях камер хватает вообще для всего. Но к сожалению мы живём не в идеальном мире. Камеры могут по разным причинам перестать нормально функционировать.
Например, солнце засвечивает, или очень низкий уровень освещенности, сильный снегопад, сильный дождь. То есть те условия, в которых ни человек, ни камеры ничего не видят. Было бы странно выпускать систему, которая никуда не поедет в сильный туман. Она не нужна и даже опасна, потому что туман может подкрасться незаметно. А радар не так чувствителен к погодным условиям, но при этом не может видеть полной картинки. Например, он не распознает сигнал светофора.
Чтобы всё это решить, используется технология data fusion — когда мы одновременно обрабатываем данные и с камер, и с радаров, и принимаем решения на основе двух разных сенсоров. Так получается всепогодное решение, которое при этом достаточно приемлемо стоит.
Точность детектирования в сложных условиях, конечно, уменьшается. Для обеспечения безопасности движения и обеспечения приемлемого уровня качества необходимо предпринимать меры предосторожности — снижение скорости и так далее. При этом уменьшается тормозной путь, и увеличивается время на оценку текущей ситуации.
Радары будут смотреть вперёд и назад. Они имеют большой радиус действия — до двухсот метров, может быть даже чуть больше. Радары будут стоять на углах, чтобы мы контролировали все слепые зоны. И еще несколько по периметру трамвая.
Радары — это наша разработка. Камеры мы берём готовые. Но что конкретно будет ставиться, в каком количестве, и на каких этапах — это совместный вопрос с производителем трамваев. Поэтому лучше мы будем говорить обо всем на этапе финального проектного решения.
Софт
Во-первых, это синхронное получение и обработка данных с разных сенсоров — камеры, радары, высокоточное позиционирование, инерциальные датчики. Главное, чтобы данные получались синхронно, чтобы система понимала, что вся информация относится к одному периоду времени.
Также мы получаем информацию от бортовых систем трамвая. Например, положение органов управления, скорость вращения двигателя, состояние дверей и различных узлов трамвая.
Ещё есть высокоточная картография — информация, которую мы собрали заранее, и она постоянно обновляется. С ней мы всегда можем восстановить местоположение по информации с камер и радаров, даже если потеряли сигнал GPS. Мы знаем, где находятся все объекты интереса на маршруте, остановки, светофоры и прочее.
Например, чтобы не тратить компьютерные ресурсы на детектирование сигналов светофоров по всему маршруту, мы, зная, где они находятся, включаем соответствующую компоненту при необходимости. Это позволяет оптимизировать вычислительную нагрузку.
Следующий уровень по софту — это обработка. Мы восстанавливаем дорожную сцену вокруг себя, расставляем объекты, анализируем дорожную сцену и принимаем решения, каким образом воздействовать на органы управления.
Если мы говорим про систему предупреждения водителя, то оцениваем пора ли системе вмешиваться, или не пора. Если про автопилот, то он постоянно оценивает дорожную сцену.
Машинное зрение и обучение нейронных сетей
С помощью машинного зрения мы детектируем самые разные объекты — пешеходов, автомобили, сигналы светофора, положение стрелок и прочее. Все множество объектов, за которыми следит водитель, также распознаются и системой.
Распознавание мы совершаем на основе нейронных сетей — это наиболее зарекомендовавший себя подход. Но эта задача требует относительно мощного компьютера, чтобы он давал приемлемое качество на приемлемой скорости. В вагоне есть возможность разместить такое оборудование, подключить его к питанию. При этом стоимость оборудования приемлема для такого вида транспорта.
Мы собирали и собираем данные на действующих трамваях уже давно. Проект длится больше полугода, просто сейчас это было объявлено. Собираем в разное время суток, в разных условиях освещенности. Датасеты мы постоянно расширяем — это наиболее ценная вещь. Алгоритмы развиваются и совершенствуется, а датасеты могут использоваться для тестирования и обучения на протяжении многих лет. Это основа любого машинного обучения.
Для части детекторов, например, распознавания автомобилей и пешеходов, мы используем данные, которые собирали раньше, до проекта с трамваем
Безопасность, система резервирования, атаки
Благодаря высокой технологичности трамвайных вагонов мы можем полностью электронно, при помощи соответствующего блока сопряжения, управлять трамваем. Можем воздействовать на все органы управления и получать информацию о текущем состоянии всех систем трамвая.
Есть система резервирования. Все узлы дублируются с запасом. Наша система всегда подает сигнал в автономный блок о том, что она работает. Как только этот сигнал пропадает, блок просто останавливает машину.
Вся информация содержится локально. Мы никак не управляем трамваем снаружи. Во-первых, иначе было бы не безопасно. Во-вторых, существующие каналы связи не позволяют обеспечить достаточных гарантий. Все мы понимаем, что если вдруг в процессе движения что-то произойдёт с каналом связи, то ситуация вообще будет непредсказуемая. Поэтому всё обрабатывается исключительно на борту.
Эта система не имеет входа снаружи. Она полностью закрыта для атак. Только если атаковать сам трамвай, вскрывать панель, подключаться к проводам — но это уже фантастическая история. Взломать через интернет и управлять трамваем невозможно. Вся система закрыта и полностью изолирована.
В случае атак с помощью изображений-обманок нам поможет радар. Например, зрение будет обмануто — увидит несуществующий автомобиль и затормозит. Но на радаре мы увидим, что ничего впереди нет. Да, станет понятно — здесь что-то не то, трамвай снизит скорость или подаст сигнал.
Но опять же, мы собираем все способы, которые позволяют обмануть зрение, и вырабатываем методы, как их обойти, сделать так, чтобы на такие картинки система зрения не реагировала. Обманки специфичны под каждую реализацию, они не универсальны. Допустим, на «Тесле» стоит определённая система, и кому-то становится понятно, как её обмануть. И скорее всего то, что обманет «Теслу», не обманет нас.
Бороться с этим можно постоянным мониторингом. Плохие парни придумывают новые способы как украсть, хорошие парни придумывать, как от этого защититься.
Отличия трамвая от обычного беспилотного транспорта
С одной стороны возрастает ответственность, потому что это пассажирский транспорт. Всегда надо обеспечивать плавность хода. Ты понимаешь, что на борту десятки человек, за которых ты отвечаешь.
С другой стороны, трамвай идёт по рельсам, у него практически всегда есть преимущество по ПДД. Не надо решать задачу подруливания, всегда досконально известна его траектория, все ключевые точки интереса, все светофоры, остановки. Это существенно упрощает задачу.
К тому же трамвай большой, меньше проблем с размещением оборудования, с его запитыванием. В автомобиле мощности генератора не всегда достаточно, чтобы разместить такое оборудование, которое позволяет ездить автономно. А в трамвае с этим нет проблем.
Трамвай, с которым мы работали, очень современный. Там все электронно управляемое, и уже много встроенных систем безопасности. Например, он вообще не может двинуться, пока не заблокирована дверь. Если двери наткнутся на что-то при закрытии, они откроются сами, никогда никого не зажмут. Поэтому получилась очень удачная базовая машина, на которые мы уже ставим свои системы.
То есть, с точки зрения реализации — проще, но ответственнее.
Но очень много всего надо согласовывать. Сначала мы согласовываем с производителем трамвая, потом выходим на «Мосгортранс», и это немного усложняет ход испытаний. Если машину мы можем пригнать на полигон, то здесь тестирование можно делать либо в условиях небольшого депо — но там много не поездишь — либо специально организовывать тестирование в городских условиях, обеспечивать безопасность. Например, ездить ночью.
Автопилот и расписание
Это будет работать так же, как и работает сейчас. У любого трамвая есть график, по которому он должен идти. Если на трамвайных путях встала машина, то график подвинется. Он уже составляется с учётом, что на пути движения могут быть помехи. Есть очень большой опыт в эксплуатации трамваев, давно известно насколько в среднем трамвай может отклоняться от своего идеального графика. Эти отклонения мы закладываем в маршрут движения.
Естественно, может произойти и что-то серьезнее. В будущем будет предусмотрена система, когда мы будем знать о движении других трамваев, и будем двигаться с этим учётом.
Да, водитель может подождать лишнюю секунду человека, который к нему бежит, машет руками и опаздывает, а машина нет. Теоретически, это конечно можно заложить, но на практике такого не будет. Если мы минуту подождём, то через минуту ещё кто-то прибежит. Это машина, и она работает по четким правилам. Благодаря этим фиксированным правилам она и безопаснее.
Что нужно, чтобы проект вышел из стадии пилотного
Нужно все тестировать — даже то, что уже готово. В некотором ряде условий все работает хорошо. Но мы понимаем — жизнь богата на события, поэтому надо пробовать дальше, имитировать разные сценарии в условиях города, чтобы посмотреть, сработает система или нет.
В наших планах запустить несколько трамваев, которые будут ездить, собирать данные и смотреть, как работает система. То есть система не будет воздействовать на органы управления, а будет просто отписывать свои срабатывания. А мы будем следить и сравнивать реакцию системы с реакцией водителя. На основе этого будем анализировать — что правильно, что неправильно. У нас будет вся информация с сенсоров, и мы увидим, где что идет не так.
Естественно, нужно дорабатывать и алгоритмы. Зрение уже достаточно близко к промышленным стандартам, к тому, что уже можно допускать до работы. Надо отрабатывать сценарии и анализировать нюансы. Например, анализировать как движутся пешеходы, чтобы система не срабатывала ложно, но, при этом, тормозила, когда это действительно нужно.
Это все настроечные, отладочные нюансы, которые занимают достаточно много времени.