КулЛиб - Классная библиотека! Скачать книги бесплатно 

Разработка беспилотных транспортных средств [Шаошань Лю] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]
Шаошань Лю, Лиюнь Ли, Цзе Тан, Шуаш Ву, Жан-Люк Годье

Разработка беспилотных
транспортных средств

Creating Autonomous
Vehicle Systems
Shaoshan Liu, Liyun Li, Jie Tang, Shuang Wu, and Jean-Luc Gaudiot

Разработка беспилотных
транспортных средств
Шаошань Лю, Лиюнь Ли, Цзе Тан, Шуаш Ву, Жан-Люк Годье

Москва, 2022

УДК 629.7.02n
ББК 39.52
Л91

Л91

Шаошань Лю, Лиюнь Ли, Цзе Тан, Шуаш Ву, Жан-Люк Годье
Разработка беспилотных транспортных средств / науч. ред. В. С. Яценков;
пер. с анг. П. М. Бомбаковой. – М.: ДМК Пресс, 2022. – 246 с.: ил.
ISBN 978-5-97060-969-9
В книге представлен один из первых технических обзоров беспилотных
транспортных средств (БТС), адресованных широкой аудитории компьютерных
специалистов и инженеров, а также студентов технических вузов и всех, кто
сталкивается с БТС на практике.
Авторы делятся практическим опытом разработки БТС – начиная с алгоритмов локализации, восприятия, планирования и контроля и заканчивая глубоким
обучением моделей. Рассматриваются последние достижения в области управления БТС, а также практические примеры из реальной жизни, что позволит читателям эффективно применять полученные знания в коммерческих проектах.
В разделе «Преподавание и обучение» множество полезной информации,
которая поможет использовать книгу как часть программы учебных курсов.

УДК 629.7.02
ББК 39.52

© 2020 Morgan and Claypool Publishers All Rights Reserved Morgan and Claypool Publishers
Все права защищены. Любая часть этой книги не может быть воспроизведена
в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.

ISBN (анг.) 978-1-68173-935-9
ISBN (рус.) 978-5-97060-969-9

© 2020 by Morgan & Claypool
© Оформление, издание, перевод, ДМК Пресс, 2022

Оглавление
Об авторах.........................................................................................................10
Предисловие от издательства. ..................................................................13
Предисловие.....................................................................................................14
Предисловие ко второму изданию..........................................................16
Глава 1. Знакомство с беспилотными технологиями.......................19
1.1. Обзор технологий в составе БТС................................................................19
1.2. Алгоритмы БТС...........................................................................................20
1.2.1. Сбор данных об окружающей среде (сенсорное сканирование)......20
1.2.2. Восприятие...........................................................................................21
1.2.3. Распознавание и отслеживание объектов..........................................24
1.2.4. Действия...............................................................................................24
1.3. Клиентская система БТС.............................................................................26
1.3.1. Операционная система для роботов (ROS)........................................26
1.3.2. Аппаратная платформа.......................................................................28
1.4. Облачная платформа БТС...........................................................................29
1.4.1. Симуляция............................................................................................29
1.4.2. Создание HD-карт................................................................................30
1.5. Это только начало.......................................................................................31

Глава 2. Локализация БТС............................................................................32
2.1. Локализация с помощью спутниковых навигационных систем.............32
2.1.1. GNSS......................................................................................................32
2.1.1. Анализ погрешностей GNSS................................................................33
2.1.3. Спутниковые системы дифференциальной коррекции...................35
2.1.4. Кинематический и дифференциальный режимы GPS......................35
2.1.5. Позиционирование высокой точности..............................................37
2.1.6. Интеграция GNSS и INS.......................................................................39
2.2. Локализация с помощью лидара и HD-карт.............................................40
2.2.1. Технология LiDAR.................................................................................40
2.2.2. HD-карты. Краткий обзор....................................................................43
2.2.3. Локализация посредством лидара и HD-карт....................................47
2.3. Визуальная одометрия...............................................................................51
2.3.1. Стереовизуальная одометрия.............................................................52
2.3.2. Монокулярная визуальная одометрия...............................................53
2.3.3. Инерциальная визуальная одометрия...............................................54

6





2.4. Счисление координат и колесная одометрия...........................................55
2.4.1. Колесные энкодеры..............................................................................56
2.4.2. Погрешности колесной одометрии....................................................57
2.4.3. Минимизация погрешностей колесной одометрии..........................58
2.5. Сбор и обобщение данных нескольких сенсоров.....................................60
2.5.1. Беспилотный автомобиль Boss для городских условий от
Университета Карнеги–Меллона (CMU)......................................................60
2.5.2. Беспилотный автомобиль Junior для городских условий от
Стэнфордского университета.......................................................................62
2.5.3. Bertha от Mercedes Benz.......................................................................64
2.6. Справочные материалы..............................................................................66

Глава 3. Алгоритмы восприятия беспилотных технологий............69
3.1. Введение......................................................................................................69
3.2. Датасеты......................................................................................................70
3.3. Обнаружение...............................................................................................72
3.4. Сегментация................................................................................................74
3.5. Стереозрение, оптический поток, поток сцен..........................................76
3.5.1. Стереоскопия и глубина......................................................................76
3.5.2. Оптический поток................................................................................77
3.5.3. Поток сцен............................................................................................78
3.6. Отслеживание..............................................................................................79
3.7. Заключение..................................................................................................82
3.8. Справочные материалы..............................................................................82

Глава 4. Глубокое обучение в алгоритмах восприятия
беспилотных технологий.............................................................................85
4.1. Сверточные нейронные сети.....................................................................85
4.2. Обнаружение...............................................................................................86
4.3. Семантическая сегментация......................................................................90
4.4. Стереозрение и оптический поток............................................................93
4.4.1. Стереозрение........................................................................................93
4.4.2. Оптический поток................................................................................95
4.4.3. Обучение без учителя для плотного сопоставления изображений..... 97
4.5. Заключение.................................................................................................99
4.6. Справочные материалы............................................................................100

Глава 5. Прогнозирование и маршрутизация....................................102
5.1. Планирование и управление. Общие сведения......................................102
5.1.1. Архитектура: планирование и управление в широком смысле.....102
5.1.2. Область ответственности каждого модуля: какие задачи
решают модули............................................................................................104
5.2. Прогнозирование движения....................................................................107
5.2.1. Поведенческое прогнозирование с точки зрения
классификации объектов............................................................................109
5.2.2. Генерация траектории транспортного средства..............................113

 

7

5.3. Маршрутизация на основе полос движения...........................................116
5.3.1. Применение взвешенного ориентированного графа
для задач маршрутизации..........................................................................117
5.3.2. Распространенные алгоритмы маршрутизации ............................120
5.3.3. Стоимость графа маршрутизации:
слабая или сильная маршрутизация..........................................................123
5.4. Заключение...............................................................................................124
5.5. Справочные материалы............................................................................124

Глава 6. Принятие решений, планирование и управление..........126
6.1. Принятие поведенческих решений.........................................................126
6.1.1. Подход с применением марковского процесса
принятия решений......................................................................................128
6.1.2. Подход «разделяй и властвуй» на основе сценариев......................131
6.2. Планирование движения..........................................................................139
6.2.1. Модель транспортного средства, модель дороги и система
координат SL................................................................................................142
6.2.2. Планирование движения на основе планирования пути
и скорости....................................................................................................143
6.2.3. Планирование движения посредством продольного
и поперечного планирования....................................................................150
6.3. Управление на основе обратной связи....................................................154
6.3.1. Модель «Велосипед»..........................................................................155
6.3.2. ПИД-регулирование...........................................................................157
6.4. Заключение...............................................................................................158
6.5. Справочные материалы............................................................................159

Глава 7. Планирование и управление на основе обучения
с подкреплением...........................................................................................161
7.1. Введение....................................................................................................161
7.2. Обучение с подкреплением......................................................................163
7.2.1. Q-обучение.........................................................................................166
7.2.2. Методы «субъект–критик».................................................................170
7.3. Планирование и управление БА на основе
алгоритмов с обучением.............................................................................172
7.3.1. Применение обучения с подкреплением на уровне
принятия поведенческих решений............................................................173
7.3.2. Применение обучения с подкреплением на уровнях
планирования и управления......................................................................173
7.4. Заключение................................................................................................177
7.5. Справочные материалы............................................................................177

Глава 8. Клиентские системы для беспилотных технологий......179
8.1. Сложность системы беспилотного управления......................................179
8.2. Операционная система для беспилотной технологии...........................181
8.2.1. Обзор ROS...........................................................................................181

8





8.2.2. Надежность системы..........................................................................183
8.2.3. Повышение производительности.....................................................185
8.2.4. Управление ресурсами и безопасность............................................185
8.3. Вычислительная платформа....................................................................186
8.3.1. Реализация вычислительной платформы........................................186
8.3.2. Существующие вычислительные решения......................................186
8.3.3. Вопросы архитектуры вычислительной системы...........................188
8.4. Справочные материалы............................................................................191

Глава 9. Облачные платформы для беспилотных технологий......192
9.1. Введение....................................................................................................192
9.2. Инфраструктура........................................................................................193
9.2.1. Структура распределенных вычислений.........................................194
9.2.2. Распределенное хранение.................................................................194
9.2.3. Гетерогенные вычисления................................................................195
9.3. Симуляция.................................................................................................197
9.3.1. BinPipeRDD.........................................................................................198
9.3.2. Объединение Spark и ROS..................................................................199
9.3.3. Производительность..........................................................................199
9.4. Обучение модели......................................................................................200
9.4.1. Почему именно Spark?.......................................................................200
9.4.2. Архитектура обучающей платформы...............................................201
9.4.3. Гетерогенные вычисления................................................................202
9.5. Создание HD-карт.....................................................................................203
9.5.1. HD-карты............................................................................................204
9.5.2. Создание карт в облаке......................................................................205
9.6. Заключение...............................................................................................206
9.7. Справочные материалы............................................................................207

Глава 10. Беспилотная доставка «до двери»
в сложных дорожных условиях..............................................................208
10.1. Предыстория и предпосылки.................................................................208
10.2. Технологии беспилотной доставки в сложных дорожных условиях.... 209
10.3. JD.com: решение с использованием
беспилотных технологий................................................................................211
10.3.1. Архитектура беспилотных технологий...........................................211
10.3.2. Локализация и HD-карты................................................................212
10.3.3. Восприятие.......................................................................................214
10.3.4. Прогнозирование, принятие решений
и планирование движения.........................................................................216
10.4. Стратегии защиты и обеспечения безопасности..................................219
10.4.1. Проверка в симуляции.....................................................................219
10.4.2. Мониторинг на стороне транспортного средства.........................220
10.4.3. Удаленный мониторинг...................................................................220
10.5. Развертывание в производственной среде...........................................220
10.6. Полученные уроки..................................................................................221
10.7. Справочные материалы..........................................................................222

 

9

Глава 11. Беспилотные транспортные средства от PerceptIn.....223
11.1. Введение..................................................................................................223
11.2. Дорогостоящие технологии....................................................................224
11.2.1. Сенсорное сканирование.................................................................224
11.2.2. Локализация.....................................................................................225
11.2.3. Восприятие.......................................................................................225
11.2.4. Принятие решений..........................................................................226
11.2.5. Создание и обслуживание HD-карт................................................226
11.2.6. Интеграция системы........................................................................227
11.3. Достижение ценовой доступности и надежности................................227
11.3.1. Сбор и обобщение данных нескольких сенсоров..........................228
11.3.2. Модульная конструкция..................................................................229
11.3.3. Высокоточные визуальные карты...................................................230
11.4. Развертывание сети беспилотных низкоскоростных
электромобилей (LSEV) для предоставления услуг.......................................231
11.5. Выводы.....................................................................................................232
11.6. Справочные материалы..........................................................................232

Применение этой книги в преподавании и обучении...................234
1. Введение.......................................................................................................234
2. Существующие учебные курсы по управлению БТС.................................235
3. Модульный и интегрированный подход к обучению...............................236
3.1. Методика преподавания......................................................................236
3.2. Учебные материалы к модулям...........................................................237
3.3. Интеграционные экспериментальные платформы...........................238
4. Пилотные тематические курсы...................................................................238
4.1. Введение в курс БТС.............................................................................239
4.2. Изучение БТС как дополнение курса о встроенных системах..........240
4.3. Курс профессиональной подготовки...................................................240
5. Заключение..................................................................................................241
Справочные материалы..................................................................................242

Предметный указатель............................................................................... 244

Об авторах
Доктор Шаошань Лю (Dr. Shaoshan Liu) является основателем и генеральным директором PerceptIn, компании, занимающейся разработкой беспилотных технологий. С момента основания PerceptIn получила
финансирование на сумму более 12 млн долл. США от
ведущих венчурных компаний, таких как Walden
International, Matrix Partners и Samsung Ventures. До основания PerceptIn д-р Шаошань Лю посвятил более
10 лет работе в ведущих научно-исследовательских институтах, среди которых Baidu USA, LinkedIn, Microsoft,
Microsoft Research, INRIA, Intel Research и Broadcom. Доктор Шаошань Лю получил степень доктора компьютерной инженерии в Калифорнийском университете в Ирвайне. Он является автором более чем 60 исследовательских трудов, а также обладателем более
150 международных патентов США в области робототехники и беспилотных
технологий. Также он является ведущим автором популярной серии пособий
«Создание беспилотных транспортных систем» (Creating Autonomous Vehicle
Systems) и «Разработка беспилотных транспортных средств и роботов»
(Engineering Autonomous Vehicles and Robots). Доктор Шаошань Лю – старший
член ассоциации Института инженеров электротехники и электроники (IEEE –
Institute of Electrical and Electronics Engineers), а также выдающийся спикер
компьютерного общества IEEE (IEEE Computer Society) и Ассоциации вычислительной техники (ACM – Association for Computing Machinery). Также он является основателем Специального технического сообщества IEEE (IEEE Special
Technical Community) в направлении разработки беспилотных транспортных
систем. Электронный адрес: shaoshan.liu@perceptin.io.
Доктор Лиюнь Ли (Dr. Liyun Li) имеет более чем шестилетний опыт разработки ПО для беспилотных технологий. В настоящее время он является главным инженером и менеджером в Xpeng Motors (NYSE: XPEV),
где он руководит разработкой программного обеспечения для Navigation Guided Pilot (NGP). До прихода
в Xpeng Motors он занимал должность главного инженера в JD.com. Он является одним из основателей команды по разработке беспилотных технологий Baidu
USA, где руководил работой по созданию основных модулей в беспилотной системе Baidu с открытым исход-

Об авторах 

11

ным кодом, в частности модулей планирования и прогнозирования. Доктор
Ли является автором двух книг в области беспилотных технологий, а именно
«Создания беспилотных транспортных систем» (Creating Autonomous Vehicle
Systems) (Morgan & Claypool Publishers) и «Первая книга о беспилотных технологиях» (The First Technology Book in Autonomous Driving) (Publishing House
of Electronics Industry (PHEI)). Также он является обладателем более чем 20
международных патентов в области беспилотных технологий. Доктор Ли получил степень доктора компьютерных наук в Нью-Йоркском университете
(New York University) и степень бакалавра электронной инженерии в Университете Цинхуа (Tsinghua University).
Доктор Цзе Тан (Dr. Jie Tang) является действующим
доцентом факультета компьютерных наук и инженерии
Южно-Китайского технологического университета (Гуанчжоу, Китай) (South China University of Technology).
Ранее она работала в качестве научного сотрудника
в Калифорнийском университете (Риверсайд) (University
of California) и в Университете Кларксона (Clarkson
University) с декабря 2013-го по август 2015 г. В 2006 г.
д-р Тан получила степень бакалавра по направлению
компьютерных наук в Оборонном научно-техническом
университете. В 2012 г. она получила степень доктора
компьютерных наук в Пекинском технологическом институте (Beijing Institute
of Technology). С 2009 по 2011 год она была приглашенным исследователем
в Лаборатории параллельных систем и компьютерной архитектуры (PASCAL –
PArallel Systems and Computer Architecture Lab) Калифорнийского университета в Ирвайне, США. Электронный адрес: cstangjie@ scut.edu.cn.
Доктор Шуан Ву (Dr. Shuang Wu) является действующим научным сотрудником Yitu Technology. Ранее он
работал старшим научным сотрудником лаборатории
искусственного интеллекта Baidu (Baidu's AI lab) в Саннивейле, Калифорния, и старшим архитектором в Baidu
USDC. Он получил степень доктора физики в Университете Южной Калифорнии (University of Southern
California) и некоторое время работал в качестве молодого научного сотрудника в Калифорнийском университете в Лос-Анджелесе (UCLA – University of California,
Los Angeles). Он занимался исследованиями в области
компьютерного и биологического зрения, а также изучал прикладное машинное обучение и его применение в промышленности
для компьютерной рекламы и распознавания речи. Его труды были опубликованы такими конференциями, как NIPS (Neural Information Processing Systems)
и ICML (International Conference on Machine Learning).

12



Об авторах

Доктор Жан-Люк Годье (Dr. Jean-Luc Gaudiot) получил диплом инженера (Diplôme d'Ingénieur) в ESIEE (Париж, Франция) в 1976 г. После он получил степени магистра и доктора компьютерных наук в Калифорнийском
университете в Лос-Анджелесе в 1977 и 1982 г. соответственно. В настоящее время он является профессором
кафедры электротехники и информатики в Калифорнийском университете в Ирвайне (UCI – University of
California, Irvine). До прихода в UCI в 2002 г. с 1982 г. он
был профессором электротехники в Университете Южной Калифорнии (University of Southern California). В область его научных интересов входят многопоточные архитектуры, отказоустойчивые мультипроцессоры, а также реализация реконфигурируемых
архитектур. На его счету более 250 опубликованных статей для журналов
и конференций. Спонсорами его исследований были NSF, DoE и DARPA, а также
ряд других промышленных компаний. Доктор Жан-Люк Годье находился на
самых разных должностях и в 2017 г. был избран президентом компьютерного
сообщества IEEE (IEEE Computer Society). Электронный адрес: gaudiot@uci.edu.

Предисловие от издательства
Отзывы и пожелания
Мы всегда рады отзывам наших читателей. Расскажите нам, что вы думаете об
этой книге, – что понравилось или, может быть, не понравилось. Отзывы важны
для нас, чтобы выпускать книги, которые будут для вас максимально полезны.
Вы можете написать отзыв на нашем сайте www.dmkpress.com, зайдя на
страницу книги и оставив комментарий в разделе «Отзывы и рецензии». Также
можно послать письмо главному редактору по адресу dmkpress@gmail.com;
при этом укажите название книги в теме письма.
Если вы являетесь экспертом в какой-либо области и заинтересованы в написании новой книги, заполните форму на нашем сайте по адресу http://
dmkpress.com/authors/publish_book/ или напишите в издательство по адресу
dmkpress@gmail.com.

Список опечаток
Хотя мы приняли все возможные меры для того, чтобы обеспечить высокое
качество наших текстов, ошибки все равно случаются. Если вы найдете ошибку
в одной из наших книг – возможно, ошибку в основном тексте или программном коде, – мы будем очень благодарны, если вы сообщите нам о ней. Сделав
это, вы избавите других читателей от недопонимания и поможете нам улучшить последующие издания этой книги.
Если вы найдете какие-либо ошибки в коде, пожалуйста, сообщите о них
главному редактору по адресу dmkpress@gmail.com, и мы исправим это
в следующих тиражах.

Нарушение авторских прав
Пиратство в интернете по-прежнему остается насущной проблемой. Издательство «ДМК Пресс» очень серьезно относится к вопросам защиты авторских прав и лицензирования. Если вы столкнетесь в интернете с незаконной
публикацией какой-либо из наших книг, пожалуйста, пришлите нам ссылку на
интернет-ресурс, чтобы мы могли применить санкции.
Ссылку на подозрительные материалы можно прислать по адресу dmkpress@
gmail.com.
Мы высоко ценим любую помощь по защите наших авторов, благодаря которой мы можем предоставлять вам качественные материалы.

Предисловие
Книга «Разработка беспилотных транспортных средств» авторского коллектива под руководством Шаошань Лю погружает читателя в захватывающий мир
современных технологий в области транспорта и особенно автоматизации
движения автомобильного транспорта при помощи беспилотных автомобилей и высокоавтоматизированных транспортных средств.
Это издание позволяет очень детально ознакомиться с современными достижениями в области построения как операционных систем для управления
высокоавтоматизированными транспортными средствами, так и алгоритмов
для решения конкретных задач, которые основаны на методах искусственного
интеллекта и управляют отдельными аспектами движения беспилотников.
Инженерам-транспортникам, которые работают в области построения интеллектуальных транспортных систем и разработки самих беспилотных транспортных средств, представленная книга станет фактически настольной книгой
на ближайшие годы, поскольку она описывает все самые современные технологии и даже немного смотрит в будущее, чтобы охватить своими идеями все
возможные варианты развития беспилотников.
Впрочем, отдельные аспекты функционирования беспилотников, или высокоавтоматизированных транспортных средств, в этой книге не раскрыты.
В частности:
 не раскрыто получение информации от централизованной интеллектуальной транспортной системы по технологиям V2X;
 нет описания одноранговых сетей VANET для передачи информации
между беспилотниками;
 не описаны возможные сценарии задач, которые могут быть решены
роем беспилотников, но не могут быть решены отдельными беспилотным транспортным средством.
Тем не менее книга крайне интересная, но для ее изучения читателю важно
быть готовым, поскольку в ней не раскрывается сущность и природа новых
технологий как с точки зрения «железа», так и с точки зрения программного
обеспечения. Еще очень важно понимать физику действия сенсоров беспилотного автомобиля и логику работы алгоритмов на основе искусственного интеллекта, которые управляют беспилотным транспортным средством. Поэтому перед чтением этой книги, перед погружением в область проектирования
и производства беспилотников желательно ознакомиться с современными достижениями в области искусственного интеллекта, сенсорики, транспортных
платформ и им подобным.
Важным моментом в этой книге является то, что она дает методические рекомендации для преподавателей высших учебных заведений транспортной
направленности, в которых обучаются будущие транспортные инженеры, и ее
можно использовать в качестве прямого методического пособия и источника
получения информации для обучения всем технологиям создания беспилот-

Предисловие 

15

ных транспортных средств. Это очень важно, поскольку того количества инженеров, работающих в этой области, и того количества выпускающихся молодых специалистов сегодня недостаточно из-за бурно развивающейся отрасли
автоматизации автомобильного движения. И мне будет очень приятно, если
эта книга станет использоваться в таких институтах, как МАДИ, РУТ и прочих
подобных высших учебных заведениях для подготовки будущих инженеровтранспортников.
Мы, как люди, которые сегодня непосредственно участвуют в автоматизации дорожного движения на автомобильных дорогах России, также рекомендуем использовать эту книгу для работы в области построения интеллектуальных транспортных систем, в области разработки сервисной V2X-платформы
для централизованного управления беспилотными транспортными средствами и решения других подобных задач.
Кроме того, эта книга будет полезна сегодня для решения вопросов в области
стандартизации различных аспектов функционирования беспилотных транспортных средств. Именно поэтому выход этой книги на русском языке крайне
актуален и очень полезен для развития беспилотных технологий в России.
Несмотря на то что книга является описанием авторского опыта и описанием авторских подходов к разработке беспилотных автомобилей, она имеет отношение к общему принципу построения беспилотных транспортных средств
любой модальности, таких как автомобили, летательные аппараты, роботы
в трубопроводном транспорте и т. д. Все представленные принципы являются
универсальными для всех видов транспорта, поэтому книга также рекомендуется для изучения инженерам-транспортникам, которые занимаются автоматизацией не только автомобильного транспорта, но и транспорта других
модальностей – в первую очередь воздушного, водного и железнодорожного.
Я выражаю свое восхищение коллективом издательства, который перевел
книгу на русский язык и издает ее в России для наших специалистов, и благодарю авторский коллектив за ее написание.
Душкин Роман Викторович,
главный архитектор
Интеллектуальных транспортных систем
ООО «Ростелематика»

Предисловие ко второму изданию
На сегодняшний день беспилотные транспортные средства (БТС) – наземные,
водные или воздушные – уже вошли в нашу жизнь и применяются в самых разных областях, начиная от сервисов беспилотного такси и заканчивая автоматическими системами воздушного наблюдения за особо важными удаленными
районами. Благодаря непрерывному техническому прогрессу за последние несколько десятилетий человечество смогло реализовать подобные инновации.
Однако на сегодняшний день в этой области существует ряд проблем, связанных с проектированием. Так, задача исследователей и инженеров заключается в преодолении этих проблем, что позволит обеспечить продуктивное, эффективное и, что особенно важно, безопасное функционирование описанных
выше многочисленных и сложных автономных устройств.
Таким образом, цель этой книги – предоставить обзор проблем проектирования беспилотных транспортных систем, а также познакомить читателя
с некоторыми общими проектными решениями. Обязательными условиями
успешной разработки беспилотных систем являются хорошее технологическое
оснащение, интеграция оборудования и программного обеспечения, а также
синергия с резидентными платформами (такими как облачные серверы). Основное внимание в этой книге уделяется наземным транспортным средствам и,
в частности, автомобилям и их функционированию в городских и внегородских
условиях, а также в условиях бездорожья. Эта книга адресована инженерам, работающим как в академической, так и в промышленной областях. Она предлагает обзор и решение текущих проблем, а также проблем, которые могут возникнуть при будущих исследованиях. Среди них могут оказаться как проблемы
сенсорного сканирования и восприятия у автономных систем, так и проблемы
иного плана, например поддержка облачных серверов. Полезным дополнением
к книге является большое количество библиографических ссылок, которые помогут читателю сориентироваться в «дебрях» предыдущих работ.
Аудитория тепло приняла первое издание этой книги. Многие университеты включили ее в программы своих курсов обучения, а также она послужила материалом для внутренних тренингов в некоторых организациях (более
подробную информацию об этом можно найти в новом разделе «Преподавание и обучение»). Кроме того, первое издание получило множество полезных
комментариев и отзывов от читателей, которые значительно повлияли на совершенствования содержания второго издания. В частности, на основе этих
комментариев и отзывов мы внесли следующие изменения: во-первых, мы
расширили главы 3 и 4 и добавили в них информацию о передовых методах
восприятия; во-вторых, мы переработали главы 5, 6 и 7, что позволило доступнее донести содержащуюся в них информацию до читателей; в-третьих, в главы 10 и 11 мы добавили примеры промышленных испытаний систем, которые позволят читателям применять полученные знания на практике. Помимо

Предисловие ко второму изданию 

17

этого, для преподавателей мы добавили раздел под названием «Преподавание
и обучение», который призван содействовать при использовании этой книги
в программе обучающих курсов. Мы считаем, что преимущество второго издания состоит в том, что наряду с информацией о последних достижениях в области автономных транспортных систем оно содержит и практические примеры
из реальной жизни, которые позволят читателям успешно применять полученные знания на практике.

Структура книги
В главе 1 представлена краткая история информационных технологий, а также
обзор алгоритмов, лежащих в основе автономных транспортных систем, архитектуры таких систем и необходимой инфраструктуры поддержки. В главе 2
представлены наиболее популярные подходы к локализации, которая является
одной из наиболее важных задач области. Также здесь подробно описаны преимущества, недостатки и особенности интеграции различных версий принципов глобальной спутниковой навигационной системы (GNSS – Global Navigation
Satellite System), инерциальной навигационной системы (INS – Inertial Navigation
system), а также принципов работы лидара (LiDAR – Light Detection and Ranging)
и колесной одометрии. В главе 3 описаны принципы восприятия («понимания») окружающей среды на основе данных сенсорного сканирования, а также
представлены обзорные описания различных прикладных алгоритмов, таких
как интерпретация сцен, обработка потоков изображений, отслеживание и др.
В главе 4 представлены подходы глубокого обучения к восприятию, основанные на обработке больших наборов данных и сложных вычислениях, необходимых для классификации изображений, обнаружения объектов, семантической
сегментации и многого другого. Глава 5 описывает задачи БТС, возникающие
после исследования окружающей среды, такие как прогнозирование будущих
событий (например, движения другого транспортного средства, находящегося
неподалеку). Далее, в главе 6, подробно описывается процессы принятия решений, планирования и контроля. Обратная связь между модулями, в том числе и принятие ими независимых друг от друга решений, а также разрешение
конфликтов (например, один модуль может рекомендовать смену полосы движения, а другой может обнаружить препятствие на этой полосе) рассматривается с упором на описание алгоритмов принятия поведенческих решений (таких как марковский процесс принятия решений [MDP – Markov decision process],
основанный на принципе «разделяй и властвуй») и планирования движения.
Все это подводит нас к главе 7, где говорится о необходимости реализации алгоритмов планирования и контроля, основанных на обучении с подкреплением, для полной интеграции ситуационных сценариев при разработке автономной системы. Глава 8 содержит информацию о бортовой вычислительной
платформе. Здесь вы можете найти общее описание экосистемы под названием операционная система для роботов (ROS – Robot Operating System), а также
описание реально используемого оборудования. Рассказывая о потребности
в гетерогенных вычислениях, мы также подчеркиваем необходимость умения
автономных систем производить вычисления в режиме реального времени
(обработка данных с сенсоров), а также рассматриваем некоторые приклад-

18

 Предисловие ко второму изданию

ные аспекты (энергопотребление и рассеивание тепла). Таким образом, делаем
вывод, что для создания автономных систем требуется использование разных
обрабатывающих модулей на основе центральных процессоров (CPU – Central
Processing Unit) общего назначения, графических процессоров (GPU – Graphic
Processing Unit), программируемых пользователем вентильных матриц (FPGA –
Field-Programmable Gate Array) и т. д. В главе 9 рассматривается инфраструктура
облачной платформы, которая служит для «связывания всех модулей воедино» (т. е. обеспечивает распределение имитационных тестов для новых алгоритмов, автономного обучения модели глубокого обучения и построения карт
высокой четкости (HD-карт). Глава 10 представляет учебный пример коммерческого беспилотного автомобиля (БА), предназначенного для доставки «до
двери» в сложных дорожных условиях. В главе 11 представлен анализ доступных на сегодняшний день БТС, используемых для оказания услуг микротранзитных перевозок.

Глава

1

Знакомство с беспилотными
технологиями
Сегодня мы стоим на пороге рассвета беспилотных технологий. Чтобы понять, что
нас ожидает в будущем, необходимо обратиться к истории, с чего мы и начнем.
Начало развития информационных технологий приходится на 1960-е, когда Fairchild Semiconductors и Intel заложили их фундамент, выпустив первые
в мире микропроцессоры, а в качестве побочного продукта основав Кремниевую долину. Однако, несмотря на то что микропроцессорные технологии обеспечивали значительный прирост производительности, они были недоступны
для широкого применения. В 1980-х годах Microsoft и Apple заложили фундамент второго этапа развития информационных технологий, представив графический пользовательский интерфейс и реализовав концепцию «ПК/Mac в каждом доме». В 2000-х интернет-компании под эгидой Google дали старт третьему
этапу, связав людей и информацию, т. е. обеспечили потенциальную связь между источниками и потребителями информации. Затем в 2010-х создатели социальных сетей, таких как Facebook и LinkedIn, положили начало четвертому этапу, буквально переместив человеческое общество в интернет и позволив людям
напрямую взаимодействовать друг с другом. По мере значительного увеличения количества интернет-пользователей примерно в 2015 году появились Uber
и Airbnb, которые начали пятый этап развития информационных технологий
и сформировали коммерческие интернет-площадки. Однако, несмотря на то
что Uber и Airbnb предоставили пользователям средства для доступа к поставщикам услуг через интернет, услуги по-прежнему предоставлялись людьми.

1.1. Обзор технологий в составе БТС
Как представлено на рис. 1.1, БТС представляет собой не одну технологию,
а сложную систему технологий, состоящую из множества подсистем. Итак, разобьем их на три основные группы: алгоритмы сенсорного сканирования, восприятия и принятия решений (требующие, как правило, построения сложных
логических выводов); клиентские системы, включая операционную систему
и аппаратную платформу; и облачные платформы, в том числе создание карт
высокой четкости (HD-карт), обучение моделей глубокого обучения, моделирование и хранение данных.

20



Знакомство с беспилотными технологиями

Первая подсистема отвечает за извлечение важной информации из необработанных данных, полученных сенсорами, и обеспечивает исследование роботом окружающей среды, на чем в дальнейшем строится принятие решений
относительно его будущих действий. Клиентские системы объединяют алгоритмы первой подсистемы, тем самым позволяя им работать в режиме реального
времени и обеспечивая надежность. Например, если камера генерирует данные
с частотой 60 Гц, клиентским системам необходимо убедиться, что самый длинный этап обработки занимает менее 16 мс. Платформа облачных вычислений
отвечает за автономные вычисления и хранение данных. С ее помощью мы можем тестировать новые алгоритмы, обновлять HD-карты и обучать БТС более
качественным моделям распознавания, отслеживания и принятия решений.
Сенсорное
сканирование

Восприятие

Принятие решений

Локализация

Планирование
пути

LiDAR

Распознавание
объектов

Прогнозирование действий

Камера

Отслеживание
объектов

Обход
препятствий

GPS/IMU

Облачная платформа
HD-карта

Обучение
модели

Симуляция

Хранение
данных

Операционная система
Аппаратная платформа

Рис. 1.1. Обзор архитектуры БТС

1.2. Алгоритмы БТС
Алгоритмы БТС включают в себя: сенсорное сканирование окружающей среды, т. е. извлечение важной информации из необработанных данных, полученных датчиками; восприятие, сущность которого заключается в локализации транспортного средства и исследовании окружающей среды; и принятие
решений, другими словами, принятие мер, обеспечивающих надежное и безопасное достижение транспортным средством – чаще всего беспилотным автомобилем (БА) – пункта назначения.

1.2.1. Сбор данных об окружающей среде
(сенсорное сканирование)1
Обычно на борту БА располагается несколько основных сенсоров. Каждый из
них имеет свои преимущества и недостатки, поэтому – из соображений надежности и безопасности – сенсоры работают в совокупности. Рассмотрим их виды:
 GPS/IMU: система GPS/IMU обеспечивает локализацию (вычисление
пространственных координат) БТС, сообщая данные инерциальной си1

На английском языке процесс сбора информации при помощи сенсоров называется
sensing, однако устоявшегося русского перевода у этого термина нет, поэтому в данной книге будет применяться перевод «сенсорное сканирование», так как он лучше
всего отражает суть циклического сбора данных с набора сенсоров. – Прим. перев.

1.2. Алгоритмы БТС  21
стемы и глобальную оценку местоположения с высокой частотой (примерно 200 Гц). GPS – довольно точная система, но она имеет низкую частоту обновления (всего около 10 Гц) и поэтому не может предоставлять
информацию в режиме реального времени. Что касается IMU, у таких
сенсоров наблюдается тенденция накопления погрешностей, что впоследствии приводит к ухудшению оценок местоположения. Но зато IMU
может предоставлять обновления чаще, с частотой 200 Гц или выше.
Комбинируя GPS и IMU, мы можем предоставлять точные данные о местоположении транспортных средств в реальном времени;
 LiDAR: лидар используется для обзора местности, определения местоположения и обхода препятствий. Способ его работы заключается в том,
что за счет отражения луча от окружающих предметов он измеряет время прохождения луча и вычисляет расстояния до них. Благодаря высокой
точности лидар применяется для создания HD-карт, определения местоположения движущегося транспортного средства на HD-картах, обнаружения препятствий и многого другого. Обычно блок лидара, такой как
64-лучевой лазер Velodyne, вращается с частотой 10 об/мин и осуществляет около 1,3 млн считываний в секунду;
 камеры: в основном камеры используются для отслеживания и распознавания объектов, а также для решения задач типа выбора полосы движения, обнаружения светофоров, пешеходов и т. д. В существующих реализациях, как правило, на БА по кругу устанавливают восемь или более
камер с разрешением 1080p. Таким образом, появляется возможность
обнаружения, распознавания и отслеживания объектов спереди, сзади
и по обе стороны БА. Обычно камеры работают с частотой 60 Гц и в совокупности генерируют около 1,8 Гб необработанных данных в секунду;
 радар и сонар: радар и сонар используются в качестве последней линии
обороны при уклонении от препятствий. Данные, получаемые этими
датчиками, показывают расстояние до ближайшего объекта, а также скорость транспортного средства. Как только БА обнаруживает, что приближается к какому-либо объекту и возникает опасность столкновения, он
тормозит или поворачивает, чтобы избежать препятствия. Следовательно, данные, генерируемые радаром и сонаром, практически не требуют
обработки и обычно поступают непосредственно в процессор управления, что позволяет реализовать такие «экстренные» функции, как поворот, торможение или предварительное натяжение ремней безопасности.

1.2.2. Восприятие
Далее данные с сенсоров передаются на стадию восприятия. Три основных задачи этапа восприятия – это локализация, обнаружение и отслеживание объекта.
Для локализации можно использовать связку GPS/IMU, и, как упоминалось
выше, GPS обеспечивает довольно точную локализацию, но со сравнительно
низкой частотой обновления, в то время как IMU предоставляет моментальные обновления за счет менее точных данных. Для объединения преимуществ двух сенсоров обычно используют фильтр Калмана. Суть этого метода
представлена на рис. 1.2: IMU обновляет положение автомобиля каждые 5 мс,
но со временем накапливаются погрешности. Каждые 100 мс приходят обновления от GPS, которые помогают исправить погрешности IMU. Благодаря

22



Знакомство с беспилотными технологиями

этому методу комбинация GPS/IMU может обеспечивать быструю и точную
локализацию БА. Тем не менее мы не можем полагатьсяисключительно на
эту комбинацию по трем причинам: (1) сенсоры могут работать с необходимой точностью лишь в пределах одного метра; (2) сигнал GPS имеет проблемы с многолучевым распространением, поэтому он может отражаться от
зданий, создавая помехи; и (3) GPS требует беспрепятственной передачи со
спутников и, следовательно, не будет получать данные в туннелях или подобных местах.

Прогноз

IMU
Предыдущее положение

Фильтр
Калмана

Прогноз положения

Обновление

GPS

Рис. 1.2. Локализация при помощи GPS/IMU

Также для локализации можно использовать данные камер. Локализация
с помощью камер может быть реализована в виде упрощенной схемы: (1)
сначала путем триангуляции пар стереоизображений мы получаем карту
диспаратности2 (disparity map), которую можно использовать для получения
информации о глубине для каждой точки; (2) сопоставив характерные признаки между последовательными кадрами стереоизображения, мы можем
установить корреляции между ними в разных кадрах. Затем можем оценить
перемещение БТС за время, прошедшее между двумя прошлыми кадрами;
а также, (3) сравнивая характерные особенности с теми, что есть на известной карте, мы можем получить данные о текущем положении транспортного
средства. Все же такой подход к локализации очень чувствителен к условиям
освещения и, следовательно, не является надежным.
Именно поэтому лидар использует методы фильтра частиц. Облако точек,
генерируемое лидаром, «описывает форму» окружающей среды, но отдельные
точки датчик различает с трудом. Используя фильтр частиц, система сравнивает конкретную наблюдаемую форму облака точек с уже имеющейся картой.
Для определения местонахождения движущегося транспортного средства
относительно этих карт мы можем применить метод фильтра частиц, который позволяет сопоставить данные лидара с картой. Мы выяснили, что метод
фильтрации частиц обеспечивает локализацию в реальном времени с точностью до 10 см и эффективен в городских условиях. Однако у лидара есть одна
проблема: когда в воздухе много взвешенных частиц, таких как капли дождя
2

Карта смещений/расхождений между двумя изображениями. – Прим. ред.

1.2. Алгоритмы БТС  23
и пыль, точность измерений снижается за счет возникающего шума. Следовательно, как представлено на рис. 1.4, для достижения надежной и точной
локализации нам необходимо использовать все датчики в совокупности, объединяя их преимущества.

Оценка
движения

Сопоставление
признаков

Выявление
признаков

Визуальная одометрия

Триангуляция

Стерео
изображения

Положение
транспортного
средства

Предыдущая карта диспаратности

Рис. 1.3. Стереовизуальная одометрия

Распространение

Объединение
данных с сенсоров

Положение

HD-карта

Рис. 1.4. Процесс локализации с помощью объединения сенсоров

24

 Знакомство с беспилотными технологиями

1.2.3. Распознавание и отслеживание объектов
Первоначально для обнаружения и отслеживания объектов использовался лидар, поскольку он способен предоставлять точную информацию о глубине. В последние годы мы стали свидетелями быстрого развития технологии глубокого
обучения, которая позволяет относительно точно обнаруживать и отслеживать
объекты. Сверточная нейронная сеть (CNN – Convolution Neural Network) – это тип
глубокой нейронной сети (DNN – Deep Neural Network), которая широко используется для распознавания объектов. CNN обычно состоит из нескольких слоев.
(1) Сверточный слой, используя разные фильтры, извлекает различные признаки
из образов входных данных. Каждый фильтр содержит набор «обучаемых» параметров. (2) Слой активации принимает решение об активации целевого нейрона. (3) Объединяющий слой уменьшает пространственный размер представления,
чтобы уменьшить количество параметров и, следовательно, вычислений в сети.
(4) Полностью подключенный слой характерен тем, что нейроны устанавливают
полные связи с активированными нейронами предыдущего слоя.
Отслеживание объектов относится к автоматической оценке траектории
объекта во время его движения. После того как отслеживаемый объект идентифицирован с использованием методов распознавания объектов, цель отслеживания объекта состоит в том, чтобы впоследствии автоматически отслеживать траекторию объекта. Такая технология может использоваться для
отслеживания ближайших движущихся транспортных средств, а также людей,
переходящих дорогу, чтобы предотвратить столкновение БА с ними. В последние годы методы глубокого обучения демонстрировали преимущества в отслеживании объектов в сравнении с традиционными методами. В частности,
с помощью вспомогательных естественных изображений составной автокодировщик можно обучать в автономном режиме, что позволит изучить общие
признаки изображения, которые более устойчивы к вариациям точек обзора
и положениям транспортных средств. Затем автономную обученную модель
можно применять для онлайн-трекинга.

Рис. 1.5. Распознавание и отслеживание объектов [34] (используется с разрешения правообладателя)

1.2.4. Действия
Основываясь на исследовании среды, в которой находится БА, этап принятия
решения обеспечивает безопасный и эффективный план действий в режиме
реального времени.

1.2. Алгоритмы БТС  25

Прогноз действий
Одна из основных задач для водителей-людей при перемещении в транспортном потоке – наблюдать и оценивать действия других водителей, которые
напрямую влияют на собственную стратегию вождения. Особенно актуально
это на дорогах с несколькими полосами движения, а также в моменты, когда
автомобиль находится в точке смены движения. Чтобы убедиться в безопасности передвижений, блок принятия решений БА генерирует прогнозы действий ближайших транспортных средств и принимает решения на основе этих
прогнозов. Чтобы предсказать действия других транспортных средств, можно
сгенерировать стохастическую (вероятностную) модель наборов достижимых
положений других участников движения и связать эти наборы достижимости
с распределением вероятностей.

b
2
3
a
1
4

c
0

Рис. 1.6. Прогноз действий

Планирование пути
Планирование пути маневренного БА в динамической среде представляет
собой довольно сложную задачу, особенно в те моменты, когда от БА требуется использовать все возможности маневрирования. «Грубый» метод
заключается в поиске всех возможных путей и использовании критерия
качества для определения наилучшего пути. Однако он требует огромных
вычислительных ресурсов и может быть неприменим в режиме реального
времени. С целью обойти описанные сложности были созданы вероятностные планировщики, обеспечивающие эффективное планирование пути
в реальном времени.

26

 Знакомство с беспилотными технологиями

Обход препятствий
Поскольку безопасность является первостепенной задачей при разработке
БТС, обычно создается как минимум два уровня механизмов обхода препятствий. Такой подход может гарантировать, что транспортное средство не столкнется с препятствиями. Первый уровень является проактивным и основан на
прогнозировании трафика. Механизм прогнозирования трафика генерирует
такие показатели, как время до столкновения или минимальное расстояние,
и на основе этой информации запускается механизм обхода препятствий
для выполнения локального перепланирования пути. Если данный механизм
вый­дет из строя, то задачу возьмет на себя второй уровень – механизм реагирования, использующий данные радара. Как только радар обнаруживает препятствие, он запускает механизм замещающего управления, чтобы избежать
столкновения.

1.3. Клиентская система БТС
Клиентские системы объединяют вышеупомянутые алгоритмы для удовлетворения требований функционирования в реальном времени и надежности.
Основные сложности здесь заключаются в следующем: во-первых, системе
необходимо обеспечить скорость обработки огромного количества генерируемых сенсорами данных; во-вторых, если часть системы выходит из строя,
необходимо обеспечить гарантию восстановления после сбоя; и в-третьих,
все вычисления должны выполняться в условиях ограниченной энергии
и ресурсов БА.

1.3.1. Операционная система для роботов (ROS)
ROS – это широко используемая мощная среда распределенных вычислений,
разработанная для приложений робототехники. На рис. 1.7 представлено, как
каждая задача (например, локализация) размещается в узле ROS. Узлы ROS
могут общаться друг с другом через темы и службы. ROS отлично подходит
для управления БТС, за исключением нескольких проблем: (1) надежности:
ROS имеет одно главное устройство и не обладает функциями мониторинга
для восстановления отказавших узлов; (2) производительности: при отправке сообщений на широковещательные каналы она многократно дублирует их,
что приводит к снижению производительности; (3) безопасности: у системы
нет механизмов аутентификации и шифрования. Решить эти проблемы была
призвана версия ROS 2.0, однако ее тестирование еще не производилось,
а многие ее функции еще недоступны. Следовательно, чтобы использовать
ROS в управлении БТС, сначала необходимо найти решение всех вышеперечисленных проблем.

1.3. Клиентская система БТС  27

Узел
Сообщение

Сервис

Узел

Тема

Узел

Публикация

Узел

Подписка

Сообщение
Публикация

Узел

Узел

Рис. 1.7. Операционная система для роботов (ROS)

Надежность
Текущая реализация ROS имеет только один главный узел, поэтому, если он
выйдет из строя, произойдет сбой всей системы. Разумеется, это не соответствует требованиям безопасности для БА. Чтобы решить эту проблему, в ROS
был реализован механизм, похожий на ZooKeeper. На рис. 1.8 показано, что
в этой схеме, помимо главного узла, есть и резервный. В случае отказа основного узла резервный узел возьмет на себя управление, что позволит системе
продолжить работу. Кроме того, механизм ZooKeeper отслеживает и перезапускает все вышедшие из строя узлы, обеспечивая надежность всей системы ROS.
Локальный кластер Zookeeper
Выбор лидера

Выбор лидера

Главный
Публикация темы
Публикующий
узел

Резервный

Подписка на тему

Установление прямого канала

Подписывающийся
узел

Рис. 1.8. Zookeeper для ROS

Производительность
Еще одна проблема текущей реализации ROS – производительность. Узлы
ROS обмениваются данными очень часто, поэтому крайне важно обеспечить
эффективную связь между ними. Во-первых, когда локальные узлы связываются друг с другом, коммуникация происходит через механизм обратной
связи. Каждый раз добавляются накладные расходы в 20 мс. С целью устра-

28

 Знакомство с беспилотными технологиями

нить накладные расходы используется механизм общей памяти. Так, теперь
сообщению не нужно проходить через стек TCP/IP, чтобы добраться до узла
назначения. Во-вторых, когда узел ROS транслирует сообщение, оно копируется несколько раз, значительно уменьшая пропускную способность системы.
Как представлено на рис. 1.9, переключение на механизм широковещательной
рассылки может значительно повысить пропускную способность системы.
5,400

(Полученных сообщений)/с

4,500×

×

3,600

×

×

2,700
1,800
900
0

1

2
3
Количество подписавшихся на тему

4

Рис. 1.9. Multicast и широковещательная рассылка в ROS

Безопасность
Как мы знаем, безопасность – это самый важный вопрос для ROS. Представьте
два сценария: в первом сценарии узел ROS похищают (захватывают над ним
контроль) и непрерывно посылают запросы на выделение памяти, пока в системе не заканчивается память и не начинается отключение других узлов ROS.
В этом сценарии хакер успешно сможет создать сбой в системе. Во втором сценарии, поскольку по умолчанию сообщения ROS не зашифрованы, хакер легко
перехватывает сообщение между узлами и применяет атаку типа «злонамеренный посредник». Чтобы решить первую проблему, мы можем использовать
контейнер Linux (LXC – Linux Container), чтобы ограничить количество ресурсов, используемых каждым узлом, а также предоставить механизм песочницы
для защиты узлов друг от друга и тем самым эффективно предотвратить утечку
ресурсов. Чтобы решить вторую проблему, мы можем зашифровать сообщения
и предотвратить их перехват.

1.3.2. Аппаратная платформа
Чтобы разобраться в проблемах, возникающих при разработке аппаратной
платформы для БТС, следует рассмотреть реализацию вычислительной платформы от ведущей компании в области БТС. Данная платформа состоит из двух
вычислительных блоков, каждый из которых оснащен процессором Intel Xeon
E5 и имеет от четырех до восьми графических ускорителей Nvidia K80. Второй
вычислительный блок выполняет точно такие же задачи, что и первый, и используется для обеспечения надежности: в случае отказа первого блока второй
может немедленно вступить в работу. Если же оба блока будут работать на пико-

1.4. Облачная платформа БТС  29
вой производительности (более 5000 Вт потребляемой мощности), это приведет
к сильному перегреву. Кроме того, каждый блок стоит 20 000–30 000 долл., что
делает данное решение недоступным для среднестатистического потребителя.
Потребляемая мощность, количество выделяемого тепла и стоимость оборудования не позволяют поставить создание БА на поток. Чтобы исследовать
границы диапазона и понять, насколько хорошо системы БТС могут работать
на мобильной SoC3 ARM, мы реализовали упрощенную систему на мобильной
SoC на базе ARM с пиковым энергопотреблением всего 15 Вт. Оказывается,
производительность была близка к нашим требованиям: конвейер локализации был способен обрабатывать 25 изображений в секунду, почти не отставая
от скорости генерации 30 изображений в секунду. Благодаря глубокому обучению появилась возможность выполнять 2-3 задачи распознавания объектов
в секунду. Этап планирования и контроля позволил спланировать путь за 6 мс.
С помощью этой системы мы могли вести машину со скоростью около пяти
миль в час и не терять ее локализации.

1.4. Облачная платформа БТС
БТС представляют собой мобильные системы, поэтому им требуется облачная
платформа. Две основные функции облачной платформы заключаются в осуществлении распределенных вычислений и распределенном хранении. Облачные технологии имеют несколько приложений, таких как моделирование,
которые используются для проверки новых алгоритмов. Также, они могут обеспечить создание HD-карт и обучение моделей глубокого обучения. При создании облачной платформы для распределенных вычислений мы использовали
Spark, для гетерогенных вычислений – OpenCL и для хранения в памяти – Alluxio.
Объединив вместе Spark, OpenCL и Alluxio, мы смогли создать надежное облако
с низким показателем задержки и высокой пропускной способностью.

1.4.1. Симуляция
Основное применение такой системы – моделирование. Когда мы разрабатываем новый алгоритм, нужно тщательно протестировать его перед внедрением в БА. Тестировать алгоритмы на реальных БА было бы слишком дорого
и затратно по времени, поэтому обычно мы тестируем новые алгоритмы на симуляторах, например с помощью воспроизведения данных через узлы ROS. Тестирование нового алгоритма даже на одном БА было бы слишком затратным.
Как представлено на рис. 1.10, для решения этой проблемы мы разработали
платформу распределенного моделирования. В данном случае для управления
распределенными вычислительными узлами мы используем Spark, и на каждом узле мы запускаем экземпляр воспроизведения ROS. В тестовом наборе
БТС для распознавания объектов, который мы использовали, потребовалось
три часа для запуска на одном сервере; при использовании разработанной
нами распределенной системы тест завершился за 25 мин (притом что мы увеличили количество автомобилей до восьми).
3

System-on-Crystall – система на кристалле, полнофункциональная система на одной
микросхеме. – Прим. ред.

30



Знакомство с беспилотными технологиями

Драйвер
Spark

Приложение
симуляции

Воркер
Spark

Канал

Воркер
Spark

Канал

Воркер
Spark

Канал

Узел ROS

Узел ROS

Узел ROS

Рис. 1.10. Платформа моделирования на основе Spark и ROS

1.4.2. Создание HD-карт
На рис. 1.11 представлен процесс создания HD-карты. Как видите, этот процесс
довольно сложен и включает в себя множество этапов, в том числе обработку
данных, полученных датчиками, создание и выравнивание карты точек, создание 2D-карты отражательной способности, маркировку HD-карты, а также создание конечного варианта карты. Посредством Spark мы объединили все эти
этапы в один. Что еще более важно, с помощью Spark можно реализовать вычислительный механизм непосредственно в памяти, так что теперь у нас нет
необходимости хранить промежуточные данные на жестком диске, что значительно снижает затраты производительности в процессе создания карты.

«Сырые»
данные

Облака
точек

Выравнивание
облака точек

Двумерная карта
отражения

Разметка
HD-карты

Процесс создания HD-карты

Рис. 1.11. Создание HD-карты на основе облака точек

Карта высокой
точности

1.5. Это только начало  31
Поскольку при создании БТС мы используем различные модели глубокого
обучения, крайне важно предоставлять обновления для постоянного повышения эффективности и действенности этих моделей. Однако, поскольку объем
сгенерированных необработанных данных огромен, мы не сможем добиться
быстрого обучения модели с использованием отдельных серверов. Чтобы решить эту проблему, мы разработали хорошо масштабируемую распределенную систему глубокого обучения с использованием Spark и Paddle (платформа
глубокого обучения, исходный код которой недавно был открыт Baidu). Как
представлено на рис. 1.12, в драйвере Spark мы управляем контекстом Spark
и контекстом Paddle, и в каждом узле исполнитель Spark размещает экземпляр
тренера Paddler. Кроме того, в качестве сервера параметров для этой системы
мы используем Alluxio. Такой подход позволил нам достичь линейного масштабирования производительности по мере добавления дополнительных ресурсов, что доказывает высокую масштабируемость системы.
Кластер Yarn
Администратор
узлов

Администратор
узлов

Администратор
узлов

Администратор
узлов

Тренер
Paddle

Тренер
Paddle

Тренер
Paddle

Тренер
Paddle

Исполнитель
Spark

Исполнитель
Spark

Исполнитель
Spark

Исполнитель
Spark

Исполнитель
Spark

Алгоритм Paddle

Тренер
Paddle

Драйвер
Spark

Рис. 1.12. Система обучения распределенной модели глубокого обучения

1.5. Это только начало
Повторимся, что БТС или искусственный интеллект (ИИ) в целом – это не одна
технология, а интеграция множества технологий. Поэтому высока необходимость инноваций в алгоритмах, системных интеграциях и облачных платформах. И все это только начало, поскольку в наше время у инженеров есть масса
новых возможностей. Вероятно, 2020 год можно считать полноценным началом эры ИИ , поскольку на рынке появилось множество соответствующих инновационных продуктов.

Глава

2
Локализация БТС

Аннотация
Локализация, т. е. точное определение местоположения объекта в режиме реального времени, на сегодняшний день является одной из наиболее
важных задач при создании БТС. В этой главе мы рассмотрим различные
технические средства локализации, такие как спутниковая навигационная система, лидар и HD-карты, метод визуальной одометрии, а также
другие способы счисления координат. Также познакомимся с несколькими
реальными примерами применения метода сбора и обобщения данных
сенсоров, позволяющего обеспечить более точную локализацию.

2.1. Локализация с помощью спутниковых
навигационных систем
Когда автомобилем управляет человек, как правило, для определения своего
местоположения и построения дальнейшего маршрута, он пользуется глобальной навигационной спутниковой системой (ГНСС, GNSS – global navigation satellite
system). Беспилотные автомобили также могут пользоваться GNSS. В этом разделе мы рассмотрим плюсы и минусы применения этой системы в беспилотных технологиях.

2.1.1. GNSS
GNSS представляет собой совокупность нескольких спутниковых систем:
GPS, ГЛОНАСС, Galileo и BeiDou. В этом подразделе мы рассмотрим систему
GPS. Итак, GPS работает по следующему принципу: приемники GPS улавливают кодированные сигналы, излучаемые спутниками GPS, обрабатывают их и на основе полученных данных вычисляют свое местоположение
и скорость в режиме реального времени [1]. Для того чтобы определить свое
местоположение, приемнику GPS требуется четыре спутниковых сигнала,
которые позволят вычислить положение в трех измерениях и смещение
времени. GPS-спутники располагаются в шести орбитальных плоскостях на
почти круговых орбитах на высоте около 20 200 км над поверхностью Земли.
Наклонение орбит всех спутников составляет 55° к экватору, а период обращения около 11 ч 58 мин.

2.1. Локализация с помощью спутниковых навигационных систем  33
Сигналы, генерируемые на борту спутников, формируются из опорной (фундаментальной) частоты ƒ0 = 10,23 МГц [1]. Сигналы содержат метку времени
бортовых атомных часов, суточная погрешность которых составляет 10-13 с. Два
несущих сигнала в L-диапазоне частот, обозначаемых как L1 и L2, генерируются путем целочисленного умножения ƒ0. Несущие частоты L1 и L2 подвергаются двухфазной модуляции (кодированию) для передачи в приемник сигналов
точного бортового времени и параметров орбиты. Коды сигналов представляют собой последовательности с состояниями +1 или –1, соответствующими
двоичным значениям 0 или 1. Двухфазная модуляция выполняется сдвигом
фазы несущей на 180° всякий раз, когда происходит изменение состояния
кода. Спутниковые сигналы содержат информацию о спутниковых орбитах,
возмущениях орбиты, системном времени GPS, параметрах ионосферы, а также данные спутниковых часов, сообщения о состоянии системы и т. д. Навигационное сообщение состоит из 25 фреймов, каждый из которых содержит
1500 бит и подразделяется на 5 субфреймов величиной 300 бит.
Еще одной важной частью системы GNSS является определение базовой
системы координат, которая имеет решающее значение при описании движения спутника, моделировании наблюдений и интерпретации результатов.
GNSS требует наличия двух систем отсчета: (а) инерциальной системы отсчета, описывающей движение спутника; и (б) земной системы координат,
позволяющей описывать местоположение станций наблюдения и результаты спутниковой геодезии. Таким образом, используются две системы. Параметры их преобразования хорошо известны, а сам процесс преобразования
происходит в приемнике GNSS посредством программного обеспечения постобработки, что позволяет вычислять положение приемников в соответствии с земной системой координат. Земная система координат строится на
трех осях – Z, X и Y. Ось Z совпадает с осью вращения Земли, определенной
как международное условное начало (CIO – Conventional International Origin).
Ось X соответствует Гринвичскому меридиану, а ось Y ортогональна осям
Z и X и дополняет систему до правой. В качестве системы отсчета GPS используется WGS84, за основу которой взят геоцентрический эквипотенциальный эллипсоид вращения [2].
За последние несколько лет количество GNSS-спутников, поддерживающих несколько спутниковых группировок, росло так же быстро, как и число
GNSS-спутников за предыдущее десятилетие. Учитывая появление и развитие новых спутниковых группировок, ожидается, что со временем все устройства будут способны поддерживать несколько группировок, что обеспечит
лучшую доступность услуги навигации даже в областях со слабым сигналом;
также значительно повысится точность (поскольку чем больше спутников,
тем выше точность) и надежность (поскольку сигналы независимых систем
труднее подменить).

2.1.1. Анализ погрешностей GNSS
В идеале результаты локализации с применением системы GNSS не должны
иметь погрешностей. Однако существуют несколько факторов, ввиду которых
погрешности все же имеются. В этом подразделе мы рассмотрим потенциальных виновников их возникновения.

34



Локализация БТС

 Спутниковые часы: любая погрешность атомных часов спутника GNSS
может привести к значительному расхождению между определенными
приемником координатами и реальным местоположением объекта. Погрешность часов в 10 нс примерно равна позиционной погрешности в 3 м.
 Ошибки эфемерид: спутники GNSS движутся по определенным орбитам.
Но параметры орбит, как и параметры спутниковых часов, могут немного меняться. Когда орбита спутника изменяется, наземная система
управления отправляет на спутники поправку, и эфемериды спутников
обновляются. Однако, даже несмотря на внесенные поправки, погрешности параметров орбиты могут привести к возникновению позиционной погрешности до ±2,5 м.
 Ионосферная задержка: ионосфера – это слой атмосферы Земли на высоте от 80 до 600 км. Ионосфера содержит частицы, имеющие электрический заряд, которые называются ионами. Ионы задерживают спутниковые сигналы и могут быть причиной серьезных погрешностей позиции
спутника (обычно ±5 м). Ионосферная задержка зависит от солнечной
активности, времени года, сезона, времени суток и местоположения.
Все эти факторы затрудняют прогнозирование влияния ионосферной
задержки на спутниковые сигналы. Также данная задержка зависит от
радиочастоты сигнала, проходящего через ионосферу.
 Тропосферная задержка: тропосфера – это ближайший к поверхности Земли слой атмосферы. Тропосферные задержки зависят от изменения влажности, температуры и атмосферного давления в данном слое. В пределах
одной территориальной зоны тропосферные условия практически одинаковы, вследствие чего базовые станции и рабочие приемники испытывают похожее влияние тропосферы. Таким образом, станции RTK (Real Time
Kinematic – кинематика реального времени) GPS могут компенсировать
тропосферную задержку, о чем мы поговорим в следующем подразделе.
 Многолучевость: многолучевое распространение возникает, когда сигнал GNSS отражается от какого-либо объекта (например, стены здания)
и затем поступает к антенне приемника GNSS. Ввиду того, что отраженный сигнал распространяется дольше, к антенне он поступает с небольшой задержкой. Такая задержка может привести к тому, что координаты,
вычисленные приемником, окажутся неверными.
В табл. 2.1 представлены вышеописанные погрешности и их масштаб. Более
подробную информацию об этом см. в [3, 4, 5, 6].
Таблица 2.1. Системные погрешности GNSS (на основе [3])
Источник погрешности

Масштаб, м

Бортовые часы

±2

Ошибка эфемерид

±2,5

Ионосферная задержка

±5

Тропосферная задержка

±0,5

Шумы приемника

±0,3

Многолучевость

±1

2.1. Локализация с помощью спутниковых навигационных систем  35

2.1.3. Спутниковые системы дифференциальной коррекции
Спутниковые системы дифференциальной коррекции (ССДК, SBAS – Satellite
Based Augmentation Systems) являются вспомогательными системами GNSS
и служат для устранения погрешностей измерений. Они призваны улучшить
некоторые характеристики GNSS, такие как точность, целостность, бесперебойность и доступность. Концепция ССДК основывается на слежении за измерениями GNSS с помощью наземных станций, размещенных по всему
континенту, координаты расположения которых известны с высокой степенью точности. Погрешности измерений GNSS передаются в пункт обработки,
который рассчитывает дифференциальные поправки и параметры целостности. Затем все эти данные транслируются по всему континенту с помощью
геостационарных спутников в качестве дополнения к исходному сообщению
GNSS или накладываются на него. Геостационарные спутники в свою очередь
способны покрывать довольно обширные территории.
Некоторые страны имеют собственные ССДК. В Европе действует европейская геостационарная служба навигационного покрытия (EGNOS – European
Geostationary Navigation Overlay Service), покрывающая преимущественно территорию Европы. В США действует система распространения поправок к данным (WAAS – Wide Area Augmentation System). В Китае – спутниковая навигационная система BeiDou (BDS – the BeiDou System). В Японии – многофункциональная
система дифференциальной коррекции спутникового базирования (MSAS – Multifunctional Satellite Augmentation System). Индия запустила собственную реализацию ССДК под названием GPS and GEO Augmented Navigation (GAGAN), покрывающую индийский субконтинент. Все вышеперечисленные системы
соответствуют единому мировому стандарту, ввиду чего являются совместимыми и способны взаимодействовать между собой.
Обратите внимание, что большинство коммерческих GNSS-приемников
поддерживает ССДК. Например, в спецификации системы WAAS прописана
точность определения местоположения 7,6 м или меньше как для горизонтальных, так и для вертикальных измерений по крайней мере в 95 % случаев. Фактически показатели измерения эффективности системы показали, что система
обеспечивает погрешность не более 1 м по горизонтали и 1,5 м по вертикали на
большей части территории США.

2.1.4. Кинематический и дифференциальный режимы GPS
Основываясь на нашем опыте, мы можем утверждать, что большинство существующих на рынке систем GNSS с функцией поддержки нескольких спутниковых группировок обеспечивает точность определения местоположения
с погрешностью 2 м. Для водителей-людей такой результат приемлем, а для
беспилотного автомобиля – нет, так как транспортному средству необходимо
четко знать, где проходит дорога, и видеть ее границы. Чтобы оставаться на
определенной полосе, автомобилю необходимо знать, где он находится. Таким
образом, требуется локализация хотя бы с дециметровой точностью. В этом
инженерам могут помочь режим кинематики в реальном времени (RTK – RealTime Kinematic) и дифференциальный режим GPS. В этом подразделе мы рассмотрим принцип работы этих технологий.

36

 Локализация БТС

Кинематический режим GNSS обеспечивает высокую точность определения местоположения за счет устранения большего числа погрешностей спутниковых часов, ошибок эфемерид, ионосферных и тропосферных задержек.
На рис. 2.1 представлен принцип работы кинематического режима GNSS.
Здесь мы можем видеть, что GNSS-приемник установлен на станции, местоположение которой точно известно, т. е. на базовой станции. Приемник базовой станции вычисляет свое местоположение на основе спутниковых данных
и сравнивает полученную информацию с координатами его фактического местоположения, а затем определяет разницу. Далее данные с поправками могут
быть переданы на борт БА.
RTK работает по принципу измерения фазы несущей и предоставляет более точную информацию о диапазонах (и, следовательно, данные о местоположении), чем кодовые измерения. Локализация с помощью кода – это один
из методов обработки, который работает по принципу сбора данных посредством приемника, использующего код «грубого» захвата (C/A code – coarse
acquisition code). То есть для определения местоположения приемник использует псевдослучайный код. Дифференциальная коррекция позволяет повысить точность вышеописанного метода до 5 м. Принцип измерения фазы несущей также позволяет осуществлять сбор данных через приемник, который
для определения местоположения использует сигнал несущей радиочастоты.
Частота несущего сигнала гораздо выше, чем частота псевдослучайного кода,
поэтому такой способ определения местоположения может предоставить
более точные данные, чем определение местоположения с помощью одного
лишь псевдослучайного кода. Псевдослучайный код сужает радиус погрешности, но код несущей справляется с этим еще лучше. Дифференциальная
коррекция такого метода позволяет повысить точность определения координат до 1 м. При использовании принципа измерения фазы несущей диапазон
несущей вычисляется путем определения количества циклов несущей между
спутником и БА, а затем умножения этого числа на длину волны несущей.
Однако использование этого принципа не исключает появления погрешностей спутниковых часов, ошибок эфемерид, а также ионосферных и тропосферных задержек. Для устранения всех этих проблем с помощью RTK необходимо, чтобы результаты измерений передавались с базовой станции на
транспортное средство.
С помощью кинематики в режиме реального времени транспортные средства определяют свое местоположение с помощью таких алгоритмов, как
устранение неоднозначности и дифференциальная коррекция. Точность
определения местоположения зависит от удаленности транспортного средства от базовой станции и точности дифференциальных поправок. Как правило, точность поправок соответствует точности определения местоположения базовой станции и качеству ее спутниковых наблюдений. Следовательно,
критически важным фактором, позволяющим минимизировать воздействия
окружающей среды, такие как помехи и многолучевость, является выбор места установки. Также важными факторами являются качество базовой станции, приемников и антенн самих транспортных средств.

2.1. Локализация с помощью спутниковых навигационных систем  37
Кинематика в реальном времени
Точность позиционирования +/– 2 см

Передающая
антенна

tions
Correc

10–20 км
Базовая станция
(известное положение)

Передатчик

Приемник GPS

Ровер
(точка проекции)

Рис. 2.1. RTK GNSS (на основе [46])

2.1.5. Позиционирование высокой точности
Несмотря на то что система RTK GNSS удовлетворяет требованиям беспилотных технологий, зачастую ее реализация требует развертывания дорогостоящих базовых станций. В этом подразделе мы рассмотрим, как GNSS-система
позиционирования высокой точности (PPP – Precise Point Positioning) может помочь решить эту проблему [7, 8].
На рис. 2.2 представлен принцип работы PPP GNSS. По всему миру развернуто множество опорных станций, которые получают точные данные об
эфемеридах спутников и данные спутниковых часов в режиме реального
времени. Затем такие станции вычисляют поправки, которые следует применить к результатам определения местоположения спутника. После расчета поправок они направляются конечным пользователям посредством
спутникового сигнала или через интернет. Точно определенные эфемериды спутников и точные данные их часов сводят к минимуму возникновение
соответствующих погрешностей. А для устранения ионосферных эффектов
первого порядка, пропорциональных частоте несущей волны, можно использовать двухчастотный GNSS-приемник. Следовательно, ионосферная
задержка может быть полностью устранена путем использования комбинации двухчастотных измерений GNSS. Тропосферная задержка корректируется путем использования модели UNB (University of New Brunswick – Университет Нью-Брансуика) [9]: для достижения большей точности при оценке
местоположения и других неизвестных данных рассчитывается также остаточная тропосферная задержка [10]. Путем сочетания всех вышеописанных
методов система PPP может повысить точность определения местоположения до нескольких сантиметров.

38

 Локализация БТС

Спутниковая
группировка ГЛОНАСС

Спутниковая
группировка ГЛОНАСС

Спутниковая
группировка ГЛОНАСС

Пользователь ГНСС

Internet

Опорная
станция

Опорная
станция
Центр
управления
сетью

Подсистема
наземной линии
связи

Рис. 2.2. PPP GNSS. Данные предоставлены NovAtel, Inc., использовано с разрешения правообладателя

В частности, алгоритм PPP использует кодовый сигнал и фазовые измерения от двухчастотного приемника, а также точные эфемериды и данные спутниковых часов. Наблюдения, поступающие со всех спутников, обрабатываются c помощью расширенного фильтра Калмана (EKF – Extended Kalman filter).
Фильтр Калмана оперирует предположениям значений местоположения,
погрешности часов приемника, тропосферной задержки и неоднозначности
фазы несущей. Он сводит к минимуму шум в системе и позволяет определять
положение с точностью до сантиметра. Оценка состояний совершенствуется
с помощью последовательных измерений GNSS до тех пор, пока они не сводятся к стабильным и точным значениям.
Система PPP отличается от RTK тем, что не требует доступа к наблюдениям одной или нескольких базовых станций. Также PPP обеспечивает вычисление абсолютного позиционирования вместо местоположения относительно базовой станции, как это делает RTK. PPP требует лишь точных данных
об эфемеридах и данных часов, которые вычисляются наземным центром
обработки данных с помощью измерений от опорных станций из относительно разреженной сети станций. Обратите внимание, что PPP использует
только один приемник GPS и, соответственно, в непосредственной близости
от пользователя не требуются опорные станции. Следовательно, PPP можно
рассматривать как систему глобального позиционирования, потому что его
принцип расчета координат относится к глобальной системе отсчета. PPP
обеспечивает гораздо большую согласованность позиционирования, чем
RTK, где решения принимаются относительно локальной базовой станции

2.1. Локализация с помощью спутниковых навигационных систем  39
или станций. Кроме того, по своей структуре система PPP аналогична системе дифференциальной коррекции. В сравнении с этой системой, ключевым
преимуществом PPP является то, что ей достаточно наличия точных эталонных эфемерид и данных спутниковых часов в режиме реального времени
для обеспечения сантиметровой точности, в то время как погрешность системы дифференциальной коррекции может составлять несколько метров.
Кроме того, системы PPP позволяют использовать единый глобальный поток
поправок, в то время как системы дифференциальной коррекции работают
на уровне регионов.
Одна из основных проблем PPP заключается в том, что для устранения
локальных помех, таких как атмосферные условия, многолучевость и геометрия спутника, и обеспечения достаточной точности определения координат
(с погрешностью в дециметр) обычно требуется длительный период времени
(около 30 мин). На сегодняшний день существует несколько консолидированных сервисов постобработки систем PPP. Но в то же время такие системы находятся на начальной стадии разработки [11, 12, 13].

2.1.6. Интеграция GNSS и INS
В предыдущих подразделах мы рассмотрели различные поколения технологий
GNSS. В этом подразделе мы исследуем, как инерционные данные могут быть
использованы для улучшения методов локализации GNSS [14]. Инерциальная
навигационная система (INS, INS – Inertial Navigation System) использует информацию о вращении и ускорении от инерциального измерительного модуля (IMU –
Inertial Measurement Unit) для вычисления относительного положения объекта
с течением времени. Типичный шестиосевой модуль состоит из шести дополнительных датчиков, размещенных на трех ортогональных осях. На каждой
оси расположены акселерометр и гироскоп. Акселерометры измеряют линейное ускорение, а гироскопы измеряют ускорение вращения (угловое ускорение). С помощью этих датчиков инерциальные измерительные модули могут
точно определять свое относительное движение в трехмерном пространстве.
INS использует эти измерения для расчета местоположения и скорости. Кроме
того, модули способны измерять скорости вращения относительно трех осей.
Впоследствии эти измерения могут быть использованы для определения относительных положений (крен, тангаж и азимут).
Как правило, системы INS работают с частотой 1 кГц, что обеспечивает частое
обновление данных о местоположении. Однако такие системы имеют и недостатки: во-первых, INS обеспечивает только определение положения относительно
начальной точки, которая также должна быть известна INS. Во-вторых, что более
важно, навигация в трехмерном пространстве с помощью INS фактически представляет собой суммирование (или интеграцию) сотен/тысяч выборок в секунду, во время создания которых также возникают и накапливаются погрешности.
Это означает, что без коррекции и наличия внешнего опорного сигнала система
INS будет быстро отклоняться от истинного положения. Таким образом, при использовании INS для выполнения задач локализации крайне важно обеспечить
точный внешний ориентир, позволяющий минимизировать погрешности локализации с помощью математического фильтра – фильтра Калмана.

40



Локализация БТС

IN S
Предыдущее
положение

Прогноз
Фильтр
Калмана

Прогноз положения

Обновление

ГНСС

Рис. 2.3. Интеграция GNSS и INS с фильтром Калмана

Как представлено на рис. 2.3, внешним ориентиром может являться система
GNSS. Спутниковая система предоставляет абсолютный набор координат, который можно использовать в качестве начальной точки. Также она предоставляет данные о координатах и скорости непрерывно, что позволяет обновлять
оценки фильтра INS. Когда сигнал GNSS прерывается (например, при проезде
транспортного средства через туннель), система INS поможет определять местоположение транспортного средства в течение короткого периода времени.

2.2. Локализация с помощью лидара и HD-карт
Большинство производителей прототипов БТС, в том числе Waymo, Baidu,
BMW и др., для решения задач локализации в своих проектах используют лидары и HD-карты. В этом разделе мы рассмотрим, как устроены их технологии,
а также изучим аспекты их взаимодействия, позволяющие обеспечить точную
локализацию БТС.

2.2.1. Технология LiDAR
В этом подразделе мы рассмотрим технологию LiDAR более подробно. Название устройства «лидар» произошло от английского сокращения LiDAR, которое
расшифровывается как Light Detection And Ranging и переводится на русский
язык как «обнаружение и определение дальности с помощью света». Сенсор
лидара измеряет расстояние до объекта путем освещения его импульсным лазерным излучением и дальнейшего измерения времени, через которое отраженный от объекта импульс возвращается к источнику [15]. Затем на основе
разницы в значениях времени возврата лазерного импульса и длины волны
создается цифровая 3D-модель объекта. Таким образом, основной принцип
работы лидара заключается в следующем: сначала излучатель испускает лазерные импульсы на поверхность объекта (частота импульсов может достигать
150 000 Гц). Затем лидар измеряет время, затраченное на прохождение каждого импульса. И, поскольку скорость света является постоянной величиной,
прибор может рассчитать расстояние между излучателем и объектом с высокой точностью. Путем повторения этого процесса снова и снова прибор может
построить сложную «карту» измеряемойповерхности.

2.2. Локализация с помощью лидара и HD-карт  41
Как правило, лидары используют один из двух методов обнаружения объектов: некогерентное (также известное как прямой метод измерения) и когерентное обнаружение [16]. Когерентные системы лучше всего подходят для
доплеровских или фазочувствительных измерений. Обычно такие системы
принимают сигналы методом оптического гетеродинирования, который представляет собой способ извлечения информации, закодированной в виде модуляции фазы или частоты электромагнитного излучения. Благодаря этому мощностные затраты таких систем значительно снижаются, отчасти за счет более
высоких требований к трансиверу. Для сравнения: когерентный свет распространяется во всех направлениях, а в некогерентных системах применяются
узкоспециализированные диоды, которые генерируют энергию в оптической
части электромагнитного спектра или около нее, что означает, что все электромагнитные волны распространяются в одном направлении. Таким образом,
потребление энергии значительно снижается.
Существуют две основные категории импульсных лидаров: высокоэнергетические и микроимпульсные системы. Высокоэнергетические лидары испускают более мощные световые импульсы, которые могут быть опасны для
глаз человека. Обычно такие системы используются для исследования атмосферы, в частности для измерения различных атмосферных параметров,
таких как высота, наслоения и плотность облаков, свойства частиц облаков,
температура, давление, ветер, влажность и концентрация примесей газов.
Микроимпульсные системы, напротив, излучают свет меньшей мощности
и являются безопасными для человеческих глаз. Но даже при их использовании требуется соблюдать небольшие меры предосторожности. Оригинальная
конструкция [17] микроимпульсных лидар-передатчиков представляет собой диодный лазер с энергией импульса в микроджоулях и высокой частотой
их испускания. За счет расширения испускаемого луча достигается безопасность для человеческого глаза. В приемнике размещается твердотельный лавинный фотодиодный детектор, работающий по принципу счетчика Гейгера. При создании БТС обычно применяются когерентные микроимпульсные
лидар-системы, поскольку они соответствуют первой категории требований
лазерной безопасности.
Лазеры, используемые в лидарах, можно разделить на категории согласно
длине волны. Чаще всего используются лазеры с длиной волны 600–1000 нм,
и обычно их максимальная мощность ограничивается в соответствии с требованиями первой категории лазерной безопасности. Также достаточно часто
используются лазеры с длиной волны 1550 нм. Такие лазеры позволяют обнаруживать объекты на большей дальности, однако с меньшей точностью. Кроме
того, лазер с длиной волны 1550 нм не виден для приборов ночного видения
и поэтому хорошо подходит для использования в военных целях. Лидар-системы, установленные на бортах самолетов, оснащены YAG-лазерами с диодной
накачкой 1064 нм, а в батиметрических системах (измерение глубины водоемов) используются YAG-лазеры с двойной диодной накачкой 532 нм, излучение которых меньше подвержено затуханию в воде. Более четкого разрешения
можно достичь путем излучения коротких импульсов при условии, что полосы
пропускания детектора приемника и электроники достаточно, чтобы справиться с увеличившимся потоком данных.

42



Локализация БТС

Как правило, лидар-системы состоят из двух основных групп компонентов:
лазерных сканеров и лазерных приемников. Скорость генерации изображений
зависит от скорости, с которой они могут быть отсканированы системой. На сегодняшний день различным целям соответствуют различные методы сканирования, среди них колебание излучателя по азимуту и углу места, системы
колеблющихся плоских зеркал, двухосевые сканеры и многогранные зеркала.
Тип оптики определяет разрешение и дальность обнаружения системой [18,
19]. Лазерные приемники считывают и записывают сигнал, принимаемый
системой. Существует два основных типа технологий лазерных приемников:
кремниевые лавинные фотодиоды и фотоумножители [20].

Лазерные
излучатели
(группа из 16)

Лазерные
приемники
(группа из 32)

Корпус
(частота вращения
блока 5–20 Гц)

Корпус
двигателя

Рис. 2.4. Velodyne HDL-64 [45]

На рис. 2.4 представлена лидар-система Velodyne HDL-64, которая широко
применяется при создании БТС. Данная система использует 64 лидар-канала,
позиционированных по углам от +2,0° до –24,9° для формирования вертикального углового поля зрения 26,9° и обеспечивающих горизонтальный обзор
360° в реальном времени благодаря конструкции с вращающейся головкой. Частота вращения головки устанавливается пользователем в диапазоне 5–20 Гц,
что позволяет определять плотность точек данных, генерируемых лидаром.
Лазер устройства HDL-64 имеет длину волны 905 нм и импульс 5 нс. Он способен захватывать облако точек с частотой до 2 200 000 точек/с на расстоянии до
120 м и с точностью ±2 см. Верхняя часть устройства состоит из лазерных излучателей (4 группы по 16 штук в каждой), а нижняя часть состоит из лазерных
приемников (2 группы по 32 штуки в каждой).
На практике одной из основных проблем, с которыми сталкиваются производители и пользователи лидаров, является калибровка [21]. Точность лидаров
сильно зависит от их калибровки. При должной калибровке точные трехмерные данные из окружающей среды могут быть легко обработаны для выделения линейных или плоских объектов (очертаний). И напротив, выделение объектов затрудняется, если сенсор плохо откалиброван.

2.2. Локализация с помощью лидара и HD-карт  43
Многолучевой лидар можно представить в виде набора лучей (прямых линий). Они определяют положение и ориентацию лазерных лучей в привязанной к сенсору системе координат. Внутренняя калибровка для таких систем
заключается в оценке параметров, определяющих положение и ориентацию
каждого из лазерных лучей. Принцип, лежащий в основе методов калибровки, – это процесс оптимизации, выполняемый для оценки параметров калибровки лидара таким образом, чтобы 3D-данные, полученные лидаром, максимально соответствовали действительности. Процесс калибровки представляет
собой процесс оптимизации, который включает в себя множество параметров
и может быть разделен на следующие этапы:
 выбор параметризации: для определения одного лазерного луча
в 3D-системе координат требуется не менее пяти параметров, включая
два параметра угла для определения положения линии луча в пространстве и три параметра для определения начальной точки луча. Если для
корректировки измерения, выполненного лазерным лучом, требуется
коэффициент коррекции расстояния, количество параметров калибровки увеличивается до шести или семи на каждый лазерный луч;
 выбор целевой функции: основой процесса оптимизации является выбор целевой функции / функции стоимости (переменная С). Во время
этого процесса осуществляется количественное сравнение полученных
данных трехмерного облака точек и реальной среды. Согласно формуле
функции стоимости, если наблюдается большая разница между полученными данными и реальной средой, затраты будут выше, и, наоборот, при
соответствии между полученными трехмерными данными и реальной
средой затраты будут ниже;
 сегментацию данных: этот шаг предназначен для фильтрации данных,
которые фактически соответствуют объекту калибровки, о котором которому известны достоверные данные. Среда, выбранная для процесса
калибровки, должна быть спроектирована и сделана так, чтобы обеспечить соответствующую сегментацию данных.
Количество калибровочных параметров увеличивается пропорционально
количеству лучей. Следовательно, процесс калибровки для устройств с большим количеством лучей будет сложнее. Это одна из основных причин, почему
стоимость устройств с многолучевыми системами гораздо выше.

2.2.2. HD-карты. Краткий обзор
В этом подразделе мы рассмотрим технические детали создания HD-карт.
Но сначала ответим на вопрос: «Зачем нужны HD-карты для беспилотной технологии?» Представьте на мгновение поездку по знакомому маршруту, например, из дома в офис. Еще до того, как вы начнете путь, в вашей голове уже
будет мысленная «карта» этой поездки, что позволит вам сосредоточиться на
действительно важных для безопасности аспектах вождения. Например, вы
можете предвидеть необычное поведение других водителей, которые решат
объехать знакомую вам яму. Также вы можете заранее вспомнить ограничение
скорости, даже не смотря на знаки, которые вдруг закроет большой грузовик.
Теперь сравните это с поездкой по совершенно новому маршруту. Здесь вашему мозгу нужно будет обработать гораздо больше информации, потому что

44

 Локализация БТС

окружающая среда ему незнакома. Вы можете реагировать только на то, что
видите в данный момент. Те же принципы применимы к БТС. HD-карты делают маршруты знакомыми для БТС, что обеспечивает безопасность в поездках.
Тогда почему бы не использовать для беспилотных технологий цифровые карты? Ответ прост. Цифровые карты предназначены для использования людьми. Обычно они имеют низкое разрешение (точность на уровне метра) низкую
частоту обновления. Но для того, чтобы БТС двигалось по дороге, ему необходимо знать, где находится эта дорога. Чтобы оставаться на определенной полосе, ему необходимо знать, где она находится. Таким образом, локализация
должна осуществляться с точностью до дециметров. Поэтому цифровые карты
не смогут обеспечить БТС точную локализацию в режиме реального времени,
особенно когда окружающая среда не соответствует тому, что указано на карте.
При создании карт для применения их в беспилотных технологиях возникают три основные проблемы: карты должны быть очень точными (с точностью до сантиметра), соответственно, в HD-качестве; они должны постоянно
обновляться, чтобы отражать изменения на дорогах (на практике частота обновления составляет один раз в неделю); они должны бесперебойно и с высокой производительностью взаимодействовать с остальными технологиями
БТС. Для достижения высокой точности мы можем использовать лидар в сочетании с другими сенсорами для сбора картографических данных. Для того
чтобы обеспечить высокую частоту обновления, можем использовать краудсорсинг (источник информации – люди) во время процесса создания карты
(подход DeepMap) вместо того, чтобы периодически создавать карты путем
использования специальных сканирующих автомобилей (подход Google
и Baidu). Для интеграции HD-карт с беспилотными технологиями мы можем
создать высокопроизводительную облачную инфраструктуру, которая будет
предоставлять обновления HD-карт в реальном времени. Далее в этом разделе мы рассмотрим создание HD-карт, погрешность которых составляет лишь
несколько сантиметров.
Основная цель создания HD-карт состоит в том, чтобы улучшить навигацию
GNSS/INS за счет использования подробной карты окружающей среды, а затем
использовать лидар для определения местоположения транспортного средства относительно HD-карты [22, 23, 24]. Таким образом, ключом к созданию
HD-карт является объединение информации, полученной различными способами (GNSS/INS/лидар) Такой поход позволяет минимизировать погрешности
в каждом элементе сетки HD-карты. Сначала GNSS/INS генерируют приблизительную информацию о местоположении для каждого сканирования, а затем
лидар определяет местоположение каждой точки с высокой точностью. Ключевая проблема здесь заключается в том, каким образом обеспечить совместную
работу различных источников данных для получения высокоточных локальных
карт и как создать глобальные карты путем «сшивания» локальных карт вместе.
Для начала давайте изучим анатомию HD-карт. Подобно традиционным
картам, HD-карты также имеют иерархические структуры данных. Базовый
слой (нижний уровень) представляет собой высокоточный 2D-объект с разрешением 5×5 см [23]. Этот уровень включает 2D-вид сверху поверхности дороги,
снятый в инфракрасном спектре с помощью лидара. Каждый элемент сетки
на этом слое хранит информацию о способности отражать импульсы лидара.

2.2. Локализация с помощью лидара и HD-карт  45
По информации об отражательной способности поверхности мы можем выяснить, является ли элемент сетки свободной дорожной поверхностью или на
этом участке есть препятствия. Как будет сказано несколько позже, для локализации БТС с помощью HD-карт в режиме реального времени необходимо
сравнить текущие лидар-сканы с информацией об отражательной способности, которая хранится в элементах сетки базового слоя.

Рис. 2.5. HD-карта. Любезно предоставлено DeepMap, используется с разрешения правообладателя

Базовый слой представляет собой ортогональный инфракрасный снимок
Земли. Каждой ячейке 2D-сетки назначается положение x–y в среде со значением отражательной способности инфракрасного излучения. Для захвата необработанного изображения на транспортном средстве устанавливаются один
или несколько лидаров, направленных вниз на поверхность дороги. Лазеры
в этих сенсорах не только определяют расстояние до поверхности, но и измеряют коэффициент отражательной способности. Путем наложения данных отражательной способности на данные 3D-измерений в результате мы получаем
инфракрасное изображение поверхности. Одним из стандартных способов,
позволяющих исключить влияние нестационарных объектов на результаты
локализации, является подгонка плоскости земной поверхности к каждому
результату лазерного сканирования и сохранение только тех измерений, которые совпадают с этой плоскостью [23]. Ключевым преимуществом лидара, по
сравнению с обычными камерами, является возможность игнорировать вертикальные объекты. Таким образом, на слое карты отображается только плоская поверхность, а другие транспортные средства автоматически исключаются. Такая система может работать даже ночью, поскольку лидар не нуждается
в освещении. Следовательно, процесс создания карт практически не зависит от
условий внешнего освещения (в отличие от пассивных камер).

46

 Локализация БТС

Каждый скан, полученный лидарами, фактически является локальной картой окружающей среды. Однако для создания глобальной карты необходимо «сшить» все локальные карты. Этот процесс называется сопоставлением
карт [24]. Сущность процесса сопоставления карт заключается в сравнении
локальных сканов лидаров и определении мест, где они совпадают друг с другом. Далее, эти места используются как ориентиры для «сшивания» карт. Так,
мы можем представить две последовательности сканов как две непересекающиеся последовательности временных показателей: a1, a2 и т. д. и b1, b2 и т. д.
Соответствующие друг другу ячейки сетки отражают наложение сканов друг на
друга, превышающее заданный порог T. Как только область пересечения сканов будет найдена, можно сгенерировать две отдельные карты: одну на основе
данных a1, a2 и т. д., а другую на основе b1, b2, и т. д. Затем выполняется процесс
совмещения карт. Во время этого процесса предполагается, что поиск пересечения выполняется в соответствии с максимальной вероятностью отражения
инфракрасного излучения. В частности, между этими картами вычисляется
поле линейной корреляции различных смещений x–y. Обратите внимание, что
все сканы лидара подвергаются постобработке в соответствии с данными GNSS
и INS. Таким образом, каждый скан связан с исходным положением ,
где x и y – точное местоположение транспортного средства, а θ – направление
его движения. Данные о положении позволяют минимизировать погрешности в процессе сопоставления карт, во время которого вычисляются коэффициенты корреляции для элементов, значение инфракрасной отражательной
способности которых уже известно. В случаях, когда участок пересечения карт
является уникальным, мы находим единственный пик в этом поле корреляции. Тогда предполагается, что пик этого корреляционного поля является наилучшей оценкой для локального совмещения карт.
Следующим слоем HD-карты после базового является слой семантической
информации. Как представлено на рис. 2.6, этот слой содержит информацию
о местоположении, а также характеристиках линий дорожной разметки и полос
движения. В различных условиях (например, при плохой погоде или наличии
помех от других транспортных средств) надежность информации, поступающей
с сенсоров БТС, может снижаться. В таких случаях информация о полосах движения на HD-карте может помочь БТС точно и надежно определять положение
дорожных полос, а также оценивать степень загруженности соседних полос в режиме реального времени. Также в HD-картах есть слой, отображающий информацию о дорожных знаках, сигналах светофоров и т. п. Этот слой несет в себе две
функции: во-первых, на этапе восприятия он позволяет автомобилю «увидеть»
дорожные знаки и ограничения скорости; во-вторых, на этапе планирования он
позволяет транспортному средству передвигаться безопасно, ориентируясь на
дорожные знаки и ограничения скорости, содержащиеся на HD-карте, даже в тех
случаях, когда оно не может обнаружить их в реальной среде.
Еще одна проблема заключается в ограниченном запасе памяти, ведь, как
известно, HD-снимкам требуется много места для хранения. Например, значительный объем памяти занимают карты обширных пространств с разрешением 5 см/пиксель. Для сокращения занимаемого картами объема существует
два метода, позволяющих помещать эти данные в основную память [23]. Первый метод заключается в отфильтровывании нерелевантной информации:

2.2. Локализация с помощью лидара и HD-карт  47
при сборе данных в движущемся транспортном средстве прямоугольная область, ограничивающая размер скана, увеличивается квадратично с пройденным расстоянием, несмотря на то что сами данные растут только линейно.
Для того чтобы этого избежать, мы можем разбить прямоугольную область на
квадратную сетку и сохранять только необходимые ячейки. Такой подход позволяет снизить объем памяти, занимаемой изображением до 10 Мб на милю
дороги при разрешении 5 см/пиксель. Таким образом, на жестком диске емкостью 1 Тб может храниться информация об окружающей среде на расстояние 100 000 миль. Итак, первый метод оптимизирует использование дискового накопителя. Второй же метод обеспечивает оптимизацию использования
памяти иным способом. В любой момент во время движения нам требуется
лишь локальная HD-карта. Кроме того, у нас имеются данные GNSS/INS, которые помогают приблизительно определять положение транспортного средства
в реальном времени. Следовательно, мы можем использовать эту информацию для динамической предварительной загрузки небольшой части HD-карты
в память независимо от размера всей карты.

s

t

Признаки

Полосы движения

Опорная линия
t

s

Рис. 2.6. Семантический слой HD-карт

2.2.3. Локализация посредством лидара и HD-карт
После построения HD-карты необходимо локализовать транспортное средство
в соответствии с ней в реальном времени [25, 26, 27, 28]. Обычно это происходит посредством использования фильтра частиц, который анализирует данные о дальности, чтобы построить поверхность земли под автомобилем. За-

48

 Локализация БТС

тем он осуществляет корреляцию инфракрасной отражательной способности
и карты с помощью коэффициента Пирсона. Частицы проецируются вперед во
времени с учетом данных о скорости от инерциальной навигационной системы, которая для определения скорости транспортного средства полагается на
колесную одометрию, IMU и систему GNSS.
Прежде чем углубиться в детали локализации с помощью HD-карт, давайте разберемся с используемыми в этом процессе математическими инструментами. До того, как популярными стали методы фильтрации частиц, стандартным методом построения моделей пространства состояний был фильтр
Калмана. Фильтр Калмана может применяться как оптимальное решение для
линейной гауссовской модели пространства состояний. Если модель не линейна или не выполняются условия гауссовской модели, применяются другие
варианты фильтров Калмана, такие как расширенный фильтр Калмана (EKF –
Extended Kalman filter) или сигма-точечный фильтр Калмана (UKF – Unscented
Kalman filter). Однако для абсолютно нелинейных или не-гауссовских моделей
неприменим ни один из вышеуказанных фильтров. Альтернативой являются
технологии фильтрации частиц. Они позволяют постепенно аппроксимировать граничное распределение скрытого процесса по мере того, как становятся доступными наблюдения. В каждый момент времени происходит выборка
по важности. Это нужно для аппроксимации распределения набором дискретных значений, известных как частицы, каждая из которых имеет свой вес [29].
Фильтр Калмана основан на предположениях о линейности и нормальности
распределения. Последовательные методы Монте-Карло, в частности фильтр
частиц, воспроизводят работу фильтра Калмана в этих нелинейных и/или негауссовских средах. Ключевое отличие состоит в том, что вместо вывода аналитических уравнений, как это происходит при применении фильтра Калмана,
частичный фильтр использует методы моделирования для генерации оценок
состояния и обновлений. Если мы применим фильтрацию частиц к линейной
и гауссовской модели, мы получим тот же результат, что и при применении
фильтра Калмана. В случае с линейными гауссовскими средами с точки зрения
вычислений фильтр Калмана реализуется намного проще, поскольку он позволяет избежать моделирования. Таким образом, если система плохо вписывается в линейную и/или гауссовскую модель, лучше подойдет применение метода
фильтра частиц, который позволит разбить проблему на отдельные «частицы»,
каждая из которых, по сути, является одним из возможных состояний модели.
Так, набор достаточно большого количества частиц позволяет обрабатывать
любой вид распределения вероятности.
Применение фильтра частиц позволяет осуществлять локализацию транспортного средства на HD-карте в режиме реального времени. На рис. 2.7 показана локализация с помощью фильтра частиц в действии. Слева на рисунке
мы можем наблюдать группу частиц в пространстве спереди БТС (как правило,
размер этого пространства ограничивается погрешностями GNSS/INS). Справа
на рисунке представлена сгенерированная карта, а также след робота. Каждая
частица в пространстве имеет свой вес. Чем выше вес, тем более вероятно, что
эта частица и является транспортным средством (соответственно, так мы можем
вычислить его текущее местоположение). В приведенном примере наибольший
вес имеет красная частица, а наименьший – черная. Алгоритм фильтра частиц

2.2. Локализация с помощью лидара и HD-карт  49
является рекурсивным и работает в два этапа: прогнозирование и обновление.
После каждого действия каждая частица модифицируется в соответствии с существующей моделью, а также добавляется случайный шум, что имитирует влияние шума на интересующую переменную. Так устроен этап прогнозирования.
За ним следует этап обновления: здесь вес каждой частицы повторно оценивается на основе последнего лидар-сканирования. В частности, если лидар-сканы
соответствуют среде вокруг частицы (точки на HD-карте), то вполне вероятно,
что частица находится очень близко к точному местоположению транспортного
средства, и, следовательно, ей назначается очень высокий вес. После этапа обновления, если значительное количество частиц с большим весом концентрируется на небольшой области (сценарий, называемый конвергенцией), все этапы
запускаются заново, но уже в меньшей области (процесс, называемый повторной выборкой). Такой подход значительно повышает точность локализации.

Рис. 2.7. Фильтрация частиц в действии

Для достижения высокого быстродействия в режиме реального времени
фильтр частиц обслуживает трехмерный вектор положения (оси x, у и рыскание), а крен и тангаж изначально считаются достаточно точными. Прогноз движения в алгоритме фильтрации частиц основывается на измерениях скорости
в инерциальной системе. Как и на этапе создания карты при локальном анализе земной поверхности, данные лидаров, определяющие положение объектов,
расположенных над земной поверхностью, игнорируются. Кроме того, в измерениях участвуют лишь те объекты, которые определены на соответствующей
карте, т. е. для которых уже есть предыдущее значение отражательной способности. Чтобы минимизировать погрешности локализации, из текущей оценки
положения связкой GNSS/INS постоянно извлекается небольшое количество
частиц. Система GNSS, если таковая имеется, используется при вычислении
вероятности измерения и позволяет сократить возможные неточности определения положения частиц. Одним из факторов, затрудняющих определение
местонахождения транспортного средства, является погода. Дождь влияет на
внешний вид дорожного покрытия, поскольку у влажных поверхностей, как
правило, отражательная способность инфракрасного излучения меньше, чем

50

 Локализация БТС

у сухих. Чтобы нивелировать этот эффект, фильтр частиц нормализует яркость
и стандартное отклонение для скана каждого отдельного расстояния, а также
соответствующих полос локальной карты. Нормализация преобразует метод
наименьших квадратов разности в вычисление коэффициента корреляции
Пирсона с пропущенными переменными.
В предыдущих абзацах изложен базовый подход к локализации на HD-картах
на основе данных лидара. Теперь рассмотрим основные проблемы этого подхода. Первая проблема, которая может возникнуть, – погрешность локализации: при описанном выше подходе используется двоичная классификация
для определения того, совпадают ли данные лидара с частью HD-карты. Если
они не совпадают, скан отбрасывается. Несмотря на простоту этого подхода,
на практике зачастую возникают ложные результаты (ложноположительные
или отрицательные), что приводит к возникновению ошибок. Для того чтобы
устранить эти проблемы, авторы [25] предлагают расширить HD-карту, чтобы
инкапсулировать вероятностную природу окружающей среды. Такой подход
позволяет представить мир более точно и осуществлять локализацию с меньшим количеством ошибок. В соответствии со своим подходом авторы принимают во внимание сумму всех наблюдаемых данных и моделируют отклонения,
наблюдаемые в каждой части карты, вместо того чтобы определять, является
ли скан, полученный при помощи лидара, частью статической среды. В сравнении с вероятностным подходом, этот подход имеет несколько преимуществ.
Во-первых, хотя, как правило, отражения от поверхностей относительно инвариантны к углу падения, при измерении угловых отражающих поверхностей,
например блестящих объектов, при разных положениях объекта получаются
разные результаты. Вместо того чтобы игнорировать эти различия, что может
привести к погрешностям локализации, при таком подходе они учитываются
в неявной форме. Во-вторых, этот подход обеспечивает повышенную устойчивость к динамическим препятствиям: при моделировании распределения
наблюдений отражательной способности на HD-карте динамические препятствия автоматически не учитываются при локализации по их следам на карте.
В-третьих, этот подход позволяет получить прямую вероятностную интерпретацию модели измерения, используемой при локализации.
Вторая проблема – высокая стоимость лидаров: 3D-лидары довольно дорогие, стоимость одного устройства может достигать 100 000 долл. Высокая стоимость может стать серьезным препятствием для коммерческого производства
БТС. Для решения этой проблемы было предложено множество различных
подходов, использующих более экономичные сенсоры. В частности, в [26] авторы демонстрируют метод точного определения местоположения транспортного средства на дороге с помощью одного 2D-лазерного сканера и с использованием имеющейся HD-карты (созданной с помощью высококачественного
лидара). В их реализации 2D-лазер направлен вниз (поэтому он называется
push-broom scanner, т. е. сканер-метла), что позволяет создавать небольшие
3D-полосы данных лидара, которые можно статистически сопоставить с HDкартой. Для применения такого подхода необходимо предоставить точную
информацию о скорости транспортного средства в модуль локализации в режиме реального времени. Эта информация может быть получена от спидометров транспортного средства. Такой подход позволил авторам превзойти

2.3. Визуальная одометрия  51
систему локализации с помощью связки GNSS/INS. Аналогичный подход был
предложен в [27], где авторы представляют алгоритм локализации транспортных средств в трехмерной городской среде с использованием только одного
2D-сканера лидара и одометрической информации.
Еще одна проблема – погодные условия (например, дождь, снег или грязь).
Они могут сильно влиять на точность лидаров. Например, при неблагоприятных погодных условиях может быть плохо видно дорожную разметку, или же
может меняться текстура дорожного покрытия. В таких случаях система локализации на основе лидара часто дает сбой. Интересно, что неблагоприятные погодные условия влияют на отражательную способность сканов лидара,
поэтому, если бы мы могли использовать другую информацию вместо коэффициентов отражения для определения местоположения, мы потенциально
могли бы решить эту проблему. Поэтому в [28] для сопоставления результатов
сканирования авторы предлагают использовать трехмерную структуру (учитывать также z-координату) вместо коэффициентов отражения. Авторы предложили использовать карты на основе гауссовой смеси распределений для
определения структуры окружающей среды. Такие карты представляют собой
набор гауссовой смеси распределений по z-координате (высоте). Для обеспечения высокой производительности в режиме реального времени авторы также
разрабатывают новый подход с разными разрешениями, основывающийся на
методе ветвей и границ. Такой подход подразумевает использование растеризованных таблиц соответствий гауссовых смесей.

2.3. Визуальная одометрия
Визуальная одометрия (ВО) – это метод оценки движения транспортного средства с помощью анализа входных данных с одной или нескольких камер [30, 31,
32]. Основная задача ВО – вычислить относительные преобразования Tx изображений Ix и Ix-1, а затем использовать преобразования для восстановления
полной траектории V0: n транспортного средства. Таким образом, с помощью
ВО путь движения транспортного средства определяется постепенно, позиция
за позицией. Для более точной оценки локальной траектории применяется
итерационное уточнение последних x занимаемых транспортным средством
позиций. Итерационное уточнение строится на минимизации суммы квадратов ошибок перепроецирования восстановленных 3D-точек на последних
m изображениях. Этот процесс называется блочным уравниванием.
На рис. 2.8 представлен процесс ВО. Для каждого нового изображения
Ix первым шагом является извлечение характерных точек из изображения;
второй шаг – сопоставление извлеченных характерных точек с точками предыдущих кадров. Обратите внимание, что 2D-объекты, которые являются репроекцией одного и того же 3D-объекта в разных кадрах, называются соответствиями изображений. Третий шаг – оценка движения, которая происходит
посредством вычисления относительного движения Tx в период времени x–1
и x. Затем путем объединения Tx с предыдущим расположением вычисляется
расположение транспортного средства Vx. Завершающий шаг – блочное уравнивание последних x кадров, что позволяет получить более точную оценку
локальной траектории.

52



Локализация БТС
Последовательность изображений

Обнаружение признаков

Сопоставление признаков (или отслеживание)

Оценка движения
2D в 2D

3D в 3D

3D в 2D

Локальная оптимизация (блочное уравнивание)

Рис. 2.8. Типичный конвейер ВО (на основе [30])

Основной этап вычислений, выполняемый для каждого изображения в системе ВО – это оценка движения. На этом этапе вычисляется изменение положения транспортного средства на основе текущего и предыдущего изображений. Комбинируя эти изображения, можно восстановить полную траекторию
движения транспортного средства. В зависимости от того, указаны ли соответствия объектов в двух или трех измерениях, существует три различных метода.
2D–2D: в этом случае и fx-1, и fx указываются в координатах 2D-изображения.
3D–3D: в этом случае и fx-1, и fx указаны в 3D, и осуществляется триангуляция 3D-точки для каждого кадра. 3D–2D: в этом случае fk-1 указаны в 3D, а fk
представляют собой соответствующие 2D-репроекции изображения Ix. При
использовании монокуляра необходимо триангулировать 3D-структуру двух
соседних изображений Ix-2 и Ix-1, а затем сопоставить с 2D-объектами третьего
изображения Ix.

2.3.1. Стереовизуальная одометрия
На основании наблюдений мы можем сделать вывод о том, что инерциальные
сенсоры неустойчивы к заносу, а колесная одометрия ненадежна на бездорожье. Следовательно, для определения местоположения в реальном времени
мы можем применять визуальную одометрию. Стереовизуальная одометрия
работает путем расчета движения камеры от кадра к кадру на основе последовательных пар стереоизображений. Такой метод успешно применяется для
беспилотных технологий. Например, алгоритм, представленный в [35], отличается от большинства алгоритмов визуальной одометрии в двух ключевых отношениях: (1) он не производит предварительных предположений о движении
камеры и (2) он основывается на смещении плотных изображений, которое
вычисляется с помощью отдельного стерео-алгоритма. Авторы продемонстрировали, что после 4000 кадров и 400 м перемещения погрешности местоположения обычно составляют менее 1 м (0,25 % пройденного расстояния), а вре-

2.3. Визуальная одометрия  53
мя обработки составляет всего около 20 мс для изображений с разрешением
512×384. Алгоритм строится на нескольких этапах: (1) выделении характерных
признаков (особенностей) каждого кадра при помощи углового метода; (2) сопоставлении характерных признаков между кадрами с использованием суммы
абсолютных различий по локальным окнам; (3) поиске наибольшего набора
самосогласованных совпадений (поиск точки данных, наиболее соответствующей расчетной модели); и (4) поиске движения от кадра к кадру, которое
минимизирует ошибку повторного проецирования для характерных признаков в расчетной модели. Этап сопоставления признаков неизбежно приводит
к возникновению ошибочных соответствий, которые, если их не исправить,
будут неблагоприятно влиять на оценку движения. Самым распространенным
решением этой проблемы является робастная оценка, которая может «закрывать глаза» на некоторое количество ошибочных совпадений. Однако в [35] на
этапе выявления данных, соответствующих расчетной модели, авторы используют упорядоченные стереодальномерные данные. Суть заключается в том,
что 3D-локации признаков должны оставаться неизменными, и это ограничение можно использовать для выявления взаимно согласованных наборов признаков до расчета оценки движения. Обратите внимание, что этот алгоритм
не требует начальной оценки движения и, следовательно, может обрабатывать
очень большие смещения изображений.

2.3.2. Монокулярная визуальная одометрия
Отличие стереоскопической одометрии от монокулярной состоит в том, что
в монокулярной ВО и относительное движение, и 3D-структура должны быть
рассчитаны на основе 2D-данных, поскольку абсолютный масштаб сцены неизвестен. Расстояние между первыми двумя положениями камеры обычно принимается фиксированным, что позволяет выстроить начальную 3D-структуру.
По мере поступления новых изображений относительный масштаб и положение камеры по отношению к первым двум кадрам определяются с использованием информации о 3D-структуре. Методы монокулярной ВО можно разделить
на три категории: методы на основе признаков, методы на основе внешнего
представления и гибридные методы. Первые основаны на отслеживании характерных повторяющихся признаков; вторые основываются на информации
об интенсивности пикселей изображения или его частей; и третьи представляют собой комбинацию двух предыдущих методов.
В [36] авторы предлагают систему локализации беспилотных транспортных
средств с помощью одной широкоугольной камеры. Они выдвигают несколько
аргументов в пользу использования такого типа камер: (1) присутствует большое количество случайных выбросов данных, например движущиеся транспортные средства, колеблющиеся деревья и пешеходы; (2) зачастую можно
выделить очень мало визуальных особенностей; (3) окклюзии, особенно от
деревьев, делают практически невозможным отслеживание ориентиров в течение длительного периода времени. Предлагаемая система представляет
собой полностью инкрементную систему локализации, которая точно оценивает траекторию камеры, не полагаясь на какую-либо модель движения. При
использовании данного алгоритма в заданный период времени оценивается
только текущее местоположение, в то время как предыдущие положения ка-

54

 Локализация БТС

меры остаются неизменными. В основу системы положен быстрый и простой
алгоритм оценки положения, который использует информацию не только из
рассчитанной 3D-карты, но и из эпиполярных ограничений. Авторы продемонстрировали, что эпиполярные ограничения позволяют более эффективно
оценивать траекторию камеры, нежели традиционный подход.
Чтобы проверить эффективность предложенного алгоритма, авторы провели
эксперимент. В ходе эксперимента транспортное средство проехало 2,5 км, а частота кадров составляла 10 изображений в секунду. Результаты показали, что
такая система позволяет снизить погрешности локализации примерно до 2 %.

2.3.3. Инерциальная визуальная одометрия
Частота обновления данных инерциальной системы крайне высока (1 кГц),
однако они подвержены проблемам заносов. Несмотря на то что ВО обеспечивает точные обновления местоположения, когда транспортное средство делает резкие повороты, она часто теряет траекторию своего местоположения
из-за отсутствия совпадающих характерных признаков, вызванного редким
обновлением изображения. Визуальные и инерциальные измерения обладают взаимодополняющими свойствами, и они хорошо подходят для объединения снимков. Все это позволяет обеспечить надежную и точную локализацию
и картирование (что и является основной потребностью любой беспилотной
системы). Техника объединения данных с визуальных и инерциальных сенсоров для определения местоположения в реальном времени называется визуальной инерциальной одометрией (ВИО). Существует два основных подхода
к решению задачи визуально-инерциального оценивания: методы пакетной
нелинейной оптимизации [37] и методы рекурсивной фильтрации [38]. Первый метод минимизирует погрешность, возникающую из интегрированных
инерционных измерений, и погрешности перепроецирования визуальных
наблюдений. Второй метод использует инерционные измерения для распространения состояния, в то время как обновления основаны на визуальных наблюдениях.
В [37] авторы включают инерциальные измерения в пакетный визуальный
метод SLAM (simultaneous localization and mapping – метод одновременной локализации и построения карты). Нелинейная оптимизация позволяет отследить
положение камеры и положения ориентиров за счет минимизации ошибки перепроецирования ориентиров, наблюдаемых в кадрах камеры. При введении
инерциальных измерений, они создают временны́е ограничения не только
между последовательными положениями, но также и между последовательными оценками скорости и смещения инерциальных сенсоров (акселерометров
и гироскопов), с помощью которых расширяется размерность вектора состояния робота. Авторы формулируют задачу визуально-инерциальной локализации и отображения как одну совместную оптимизацию функции стоимости
J(x), содержащей как визуальные ошибки перепроецирования, так и член временной ошибки от инерциального датчика, где x представляет текущее состояние транспортного средства.
Первый шаг – распространение. Сначала инерциальные измерения используются для распространения положения транспортного средства, что позволяет получить предварительную недостоверную оценку состояний. Предполо-

2.4. Счисление координат и колесная одометрия  55
жим, что в этот момент доступен набор прошлых кадров, а также локальная
карта, состоящая из ориентиров с известным 3D-положением. В качестве
первого этапа установления соответствий выполняется сопоставление 3D–2D.
Затем выполняется 2D–2D-сопоставление, в процессе которого связываются
ключевые точки без соответствия 3D-ориентирам. Далее выполняется триангуляция для инициализации новых положений 3D-ориентиров. Выполняется
как стереоскопическая триангуляция по парам стереоизображений, так и между текущим кадром и любым предыдущим доступным кадром.
Второй шаг – оптимизация, когда появляется новый кадр изображения, из
этого изображения извлекаются признаки, что позволяет определить новые
3D-точки, которые можно использовать для расширения карты, как описано
выше. Время от времени определенный кадр выбирается в качестве ключевого кадра, что запускает оптимизацию. Простая идея выбора ключевого кадра
состоит в том, что, если соотношение между сопоставленными и вновь обнаруженными характерными точками невелико, этот кадр вставляется как ключевой. Затем новый ключевой кадр вместе со всеми предыдущими ключевыми
кадрами используется в глобальной оптимизации, чтобы минимизировать как
визуальные ошибки перепроецирования, так и временну́ю погрешность инерциального сенсора. Результаты проведенного эксперимента показывают, что
при использовании такого метода оптимизации погрешность локализации
при перемещении на 500 м составляет менее 0,3 %.
Несмотря на то что методы оптимизации обычно обеспечивают более высокую точность локализации, необходимость в нескольких итерациях также
влечет за собой более высокие вычислительные затраты. Поэтому для локализации транспортных средств был предложен облегченный подход, основанный на расширенном фильтре Калмана (extended Kalman filter, EKF) [38].
В этом подходе авторы используют алгоритмы EKF для поддержания скользящего окна положений камеры в векторе состояния и используют наблюдения
за характерными признаками для применения вероятностных ограничений
между этимиположениями. Алгоритм можно разделить на следующие этапы:
(a) распространение: для каждого инерциального измерения распространяется состояние фильтра и ковариация; (b) регистрацию изображения: каждый
раз, когда записывается новое изображение, матрицу состояний и ковариаций
дополняют копией текущей оценки положения камеры; и (c) обновление: когда становятся доступными измерения характеристик текущего изображения,
выполняется обновление EKF. По результатам проведенного эксперимента
авторы получили следующие результаты: транспортное средство проехало
3,2 км, а погрешность положения составила всего 10 м (0,31 % от пройденного
расстояния).

2.4. Счисление координат и колесная одометрия
Счисление координат (англ. dead reckoning произошло от термина deduced
reckoning, употребляющегося в сфере мореплавания) – это простая математическая процедура, позволяющая оценить текущее местоположение транспортного средства путем оценки предыдущего положения с помощью известной информации о направлении и скорости движения в течение заданного

56



Локализация БТС

промежутка времени [39]. Подавляющее большинство существующих сегодня
беспилотных систем полагается на метод счисления координат как на основную навигационную стратегию. Наиболее упрощенной реализацией этого
метода является колесная одометрия – оценка перемещения посредством
данных, поступающих с колесных энкодеров. В этом разделе мы рассмотрим
непосредственно сами энкодеры, причины погрешностей колесной одометрии и способы их минимизации.

2.4.1. Колесные энкодеры
Основным инструментом одометрии являются оптические энкодеры, непосредственно связанные с якорем двигателя или колесной осью. Большинство
мобильных роботов передвигается с помощью колес, поэтому базовый обзор
устройства энкодеров, которые точно определяют угловое положение и скорость, является важной исходной точкой для дальнейшего изучения одометрии. Существует множество различных типов колесных энкодеров, среди них
оптические энкодеры, доплеровские энкодеры, дифференциальный привод, трехколесный привод, принцип рулевого управления Аккермана, синхронный привод,
всенаправленный привод, навесной колесный одометр и т. д.
В этом подразделе мы рассмотрим рулевой механизм Аккермана4, поскольку именно он преимущественно применяется в автомобильной промышленности. Данный рулевой механизм обеспечивает поворот внутреннего переднего колеса на немного более острый угол, чем внешнего, тем самым устраняя
проскальзывание шин, вызванное геометрическими особенностями. Как
представлено на рис. 2.9, продолжения осей двух передних колес пересекаются в общей точке, которая лежит на продолжении оси задних колес. Таким образом, геометрическое место точек, находящихся под центром каждой шины,
представляет собой набор концентрических дуг вокруг центральной точки
вращения P1, и все векторы мгновенной скорости впоследствии будут касательными к этим дугам. Все это удовлетворяет уравнению Аккермана:
ctgi  ctg 0 

d
,
l

где θi – относительный угол поворота внутреннего колеса, θ0 – относительный
угол поворота внешнего колеса, l – продольное расстояние между колесами,
а d – поперечное расстояние между колесами.
Система рулевого управления Аккермана представляет собой довольно
точное решение для одометрии, поскольку в ней учитывается сила сцепления
и дорожный просвет, которые важны для работы на любой местности. Таким
образом, данная система лучше всего подходит для функционирования БТС
в реальных условиях. Транспортные средства, использующие такую систему,
как правило, оснащены бензиновым или дизельным двигателем, а также механической или автоматической коробкой передач, где мощность передается
на четыре колеса через раздаточную коробку, дифференциал и карданные соединения.
4

Рулевой механизм с поворотными кулаками и трапецией. – Прим. ред.

2.4. Счисление координат и колесная одометрия  57
θo

θ SA

θi

l

d

y
P1

x

Рис. 2.9. Реализация системы рулевого управления Аккермана (на основе [39])

2.4.2. Погрешности колесной одометрии
Как отмечается в [39], при колесной одометрии используются энкодеры, измеряющие вращение колеса и/или положение рулевого управления. Хорошо известно, что метод колесной одометрии обеспечивает хорошую точность и высокую частоту регистрации, а также является недорогим в реализации. Однако
основная идея одометрии заключается в суммировании инкрементальной
информации о движении с течением времени, что неизбежно приводит к накоплению погрешностей. В частности, накопление погрешностей ориентации
может привести к серьезным позиционным погрешностям, которые будут увеличиваться пропорционально расстоянию, пройденному роботом.
Объединение данных одометрии и абсолютных координат может обеспечить лучшую и более надежную оценку положения. Одометрия может использоваться между обновлениями абсолютных координат с ориентирами
(такими как визуальные ориентиры / отличительные признаки, используемые в визуальной одометрии). При заданной точности позиционирования
повышенная точность одометрии позволяет реже обновлять точное положение. В результате для заданного расстояния требуется меньше ориентиров.
Многие алгоритмы картирования и сопоставления ориентиров предполагают,
что транспортное средство способно достаточно хорошо поддерживать актуальность информации о положении, что позволяет ему искать ориентиры
в ограниченной области и сопоставлять характерные признаки в этой ограниченной области для достижения короткого времени обработки и повышения
точности сопоставления. В некоторых случаях данные одометрии являются
единственной доступной навигационной информацией; например, когда обстоятельства препятствуют размещению и выбору ориентиров в окружающей
среде или когда другая сенсорная подсистема не может предоставить пригодные для использования данные.

58



Локализация БТС

Одометрия основана на предположении, что обороты колеса могут быть
переведены в линейное перемещение относительно поверхности. Это предположение, однако, не всегда достоверно. Одним из примеров, когда оно
не является достоверным, является проскальзывание колеса: если одно колесо проскальзывает, скажем, по разлитому маслу, то данные соответствующего
энкодера о вращении не будут соответствовать линейному смещению колеса.
Источники погрешностей колесной одометрии можно разделить на две категории: систематические и несистематические. К систематическим относятся
неравные диаметры колес, где средний фактический диаметр колеса отличается от номинального, фактическая колесная база отличается от номинальной, перекос колес, конечное разрешение энкодера, а также конечная частота
регистрации энкодера. К несистематическим относятся движение по неровной
поверхности, наезд на неожиданные объекты на поверхности, проскальзывание
колес из-за скользкой поверхности, проскальзывание колес из-за чрезмерного
ускорения, быстрый поворот (занос), внешние силы (взаимодействие с внешними телами), внутренние силы (эффект рояльного колеса), а также неточечный
контакт колеса с поверхностью.
Понимание различий между систематическими и несистематическими
погрешностями имеет большое значение для эффективного устранения погрешностей одометрии. Например, систематические погрешности особенно
серьезны, поскольку они могут накапливаться. На большинстве гладких поверхностей систематические погрешности значительно превалируют над несистематическими. Однако на шероховатых поверхностях со значительными
неровностями преобладают несистематические погрешности. Проблема несистематических погрешностей заключается в том, что они могут возникать неожиданно и вызывать серьезные погрешности определения позиции. Обычно
в беспилотных системах транспортных средств, оснащенных гибридной системой одометрии и визуальной навигации, частоту изображений выбирают
исходя из наиболее неблагоприятных вариантов возникновения систематических погрешностей. Такие системы могут выйти из строя при возникновении
одной или нескольких крупных несистематических погрешностей.

2.4.3. Минимизация погрешностей колесной одометрии
Точность результатов колесной одометрии в некоторой степени зависит от
кинематической конструкции и определенных критических размеров. В этом
подразделе мы резюмируем некоторые конструктивные особенности, влияющие на точность счисления [39]: транспортные средства с небольшой колесной
базой сильнее подвержены возникновению погрешностей ориентации, нежели транспортные средства с большой колесной базой. У транспортных средств
с поворотными колесами5, на которые приходится значительная часть общего веса, может возникать проскальзывание шины при движении задним ходом («эффект тележки для покупок»). И наоборот, если на поворотные колеса
приходится лишь небольшая часть веса, то проскальзывания при изменении
направления движения не произойдет. Кроме того, давно известно, что иде5

Так называемые рояльные колеса или следящие колеса, обычно применяются в тележках для покупок, передвижной мебели и т. д. – Прим. ред.

2.4. Счисление координат и колесная одометрия  59
альные с точки зрения одометрии колеса должны быть тонкими и не поддающимися сжатию. Такие колеса могут быть выполнены из алюминия и покрыты
тонким слоем резины для обеспечения сцепления. Однако на практике такая
конструкция неосуществима, поскольку колеса, используемые для получения
одометрических данных, обычно также являются несущими и ведущими колесами, для которых требуется большая поверхность контакта с землей. Далее
в этом подразделе мы рассмотрим основные методы минимизации систематических и несистематических погрешностей колесной одометрии.
Итак, методы минимизации систематических ошибок одометрии включают
в себя:
 вспомогательные колеса и прицеп с энкодерами: как правило, точность
одометрических данных можно повысить, добавив пару тонких, не несущих нагрузку колес с энкодерами. Поскольку такие колеса не предназначены для передачи мощности, они могут быть очень тонкими и вместо шины иметь лишь небольшой слой резины. Такой метод применим
для транспортных средств с дифференциалом, трехколесным приводом
и транспортных средств, оснащенных системой Аккермана;
 прицеп с энкодерами: альтернативный подход – использование прицепа
с двумя колесными энкодерами. Для гусеничных транспортных средств
метод одометрии практически неприменим ввиду проскальзывания гусениц при поворотах. Прицеп с энкодерами позволяет выполнять одометрию всякий раз, когда это позволяют характеристики грунта. В случаях, когда транспортному средству приходится преодолевать небольшие
препятствия, лестницы или ехать по неровной поверхности, прицеп
приподнимается. Аргументом в пользу такого подхода является то, что
в большинстве случаев транспортное средство передвигается по достаточно гладкой бетонной поверхности, и, таким образом, использование
прицепа с энкодерами представляется эффективным;
 систематическую калибровку: еще одним методом повышения точности одометрии, не предполагающим использование дополнительных
устройств или сенсоров, является тщательная калибровка транспортного
средства. Систематические погрешности, как правило, связаны с особенностями каждого отдельного транспортного средства. Они изменяются
очень медленно в результате износа или неравномерного распределения нагрузки. Следовательно, такие погрешности могут возникать постоянно на протяжении долгих периодов времени. Одним из способов
их минимизации является калибровка каждого транспортного средства
в отдельности. Однако такой способ осложняется тем, что даже незначительные отклонения в геометрии транспортного средства или его частей
могут вызвать существенные одометрические погрешности.
Методы минимизации несистематических погрешностей одометрии включают в себя:
 взаимное определение местоположения: такой метод представляет собой использование двух роботов, способных взаимно определять местоположения. При перемещении одного из роботов в другое место
другой остается неподвижным, наблюдает за движением первого и затем определяет его новое положение. Иными словами, в любой момент

60

 Локализация БТС

один робот может локализовать себя относительно фиксированного
объекта: неподвижного второго робота. Но такой подход может ограничивать эффективность роботов ввиду необходимости постоянных
остановок;
 внутреннюю коррекцию погрешности положения (IPEC – Internal Position
Error Correction): данный метод предполагает взаимное исправление
одометрических погрешностей двумя роботами. Однако, в отличие от
метода взаимного определения местоположения, основным условием
функционирования внутренней коррекции погрешности положения
является непрерывное быстрое движение роботов. Для реализации этого метода требуется, чтобы оба робота могли непрерывно и точно измерять относительное расстояние и курс. Принцип работы здесь основан
на концепции скорости роста ошибок, которая различает «быстрорастущие» и «медленно растущие» одометрические погрешности. Например,
когда робот, оснащенный колесным дифференциалом, встречается с неровностью на поверхности, возникает погрешность ориентации (т. е.
быстрорастущая погрешность). Однако связанная с этим погрешность
бокового смещения изначально очень мала (т. е. является медленно растущей погрешностью). Будучи следствием погрешности ориентации,
она может неограниченно возрастать. Алгоритм внутренней коррекции
погрешностей выполняет измерения относительного положения с достаточно высокой частотой обновления (20 мс). Таким образом, любое
транспортное средство может обнаруживать быстрорастущие погрешности ориентации, полагаясь при этом на тот факт, что погрешности
бокового положения, накопленные обеими платформами в течение интервала выборки, были небольшими.

2.5. Сбор и обобщение данных нескольких сенсоров
В предыдущих разделах мы представили различные методы локализации.
На практике, чтобы добиться устойчивости к погрешностям и надежности, зачастую для локализации применяется стратегия объединения сенсоров (стратегия сбора и обобщения их данных) [40, 41, 42]. В этом разделе мы представим
три реальных примера БТС и рассмотрим применяемые в этих реализациях
подходы к локализации.

2.5.1. Беспилотный автомобиль Boss для городских
условий от Университета Карнеги–Меллона (CMU)
На рис. 2.10 изображен Boss – БА, оснащенный несколькими бортовыми сенсорами (GPS, лидары, радары и камеры), которые позволяют ему отслеживать
перемещение других транспортных средств, обнаруживать статические препятствия и осуществлять локализацию относительно дорожной модели [40].
В городских условиях Boss способен безопасно передвигаться со скоростью
до 48 км/ч. Система была разработана с нуля в соответствии с требованиями
DARPA Urban Challenge. В этом подразделе мы рассмотрим систему локализации данного транспортного средства.

2.5. Сбор и обобщение данных нескольких сенсоров  61

Рис. 2.10. БА от Университета Карнеги–Меллона (CMU)

Первым этапом процесса локализации является дифференциальная оценка положения на основе данных GPS. Для этого система объединяет данные
из коммерческой системы оценки местоположения и сопоставляет анализ дорожной разметки с аннотированной дорожной картой. Первоначальная глобальная оценка местоположения производится посредством объединения
показаний сенсоров. Так, объединяются данные дифференциального GPS,
IMU и колесного энкодера, что позволяет проводить оценку местоположения
с частотой 100 Гц. Стоит отметить, что такая система устойчива к отключению
GPS. При стабильном GPS-сигнале погрешность определения местоположения
составляет не более 0,3 м. Кроме того, при отключении GPS-сигнала на протяжении 1 км система позволяет осуществлять локализацию транспортного
средства с точностью в пределах 1 м.
Несмотря на высокую точность, данная система не предоставляет информацию о полосах движения. Для определения границ полосы движения используются обращенные к поверхности дороги лидары SICK LMS, способные
обнаруживать дорожную разметку. Дорожная разметка обычно выделяется
по яркости на фоне остального дорожного полотна, поэтому ее можно легко обнаружить, выполняя свертку интенсивности скана полосы с наклонной
функцией. Пики и впадины отклика представляют собой потенциальные границы дорожной разметки. С целью минимизации ложных срабатываний за
разметку принимаются только расположенные соответствующим образом
пики и впадины. Далее информация о предполагаемой разметке фильтруется на основе яркости относительно окружающей поверхности. Результатом
всего описанного процесса являются потенциальные точки местоположения
дорожной разметки.
Для обеспечения более точной локализации создается дорожная карта,
в которую вносится информация о статических препятствиях и полосах дви-

62



Локализация БТС

жения. Обратите внимание, что такая карта является «предшественником»
HD-карты. Фактически описываемая нами карта увеличивает точность цифровой карты до 1 м благодаря обнаруживаемым лидарами геометрическим
признакам. Геометрические признаки включают в себя препятствия и дорожную разметку. При создании карты система объединяет данные многочисленных сканирующих лазеров, размещенных на транспортном средстве.
Так, она может создавать как моментальные, так и отфильтрованные карты
препятствий. Моментальная карта препятствий используется при проверке
гипотез движущихся препятствий. При обработке фильтрованных карт игнорируются движущиеся препятствия, что позволяет уменьшить количество
ложных препятствий, появляющихся на картах. Геометрические элементы
(бордюры, обочины и кусты) являются одним из источников информации
для определения формы дороги в городских условиях и на бездорожье. Данные лидаров предоставляют достаточно информации для обнаружения таких
элементов на большом расстоянии. Алгоритмы их обнаружения должны быть
устойчивыми к различиям (разные варианты бордюров, обочин, канав, насыпей и т. д.). Например, для обнаружения бордюров команда создателей Boss
использует два принципиальных подхода к данным лидаров, что позволило
упростить процесс. Во-первых, предполагается, что поверхность дороги относительно плоская и медленно меняется, а края дороги определяются наблюдаемыми изменениями геометрии, в частности высоты. Таким образом,
определение края дороги сводится к изменению высоты поверхности земли.
Во-вторых, каждый скан лидара обрабатывается независимо (в отличие от
подхода, при котором строится трехмерное облако точек). Следовательно,
алгоритм сводится к рассмотрению данных только в одном измерении. Для
локализации транспортного средства на дорожной карте применяется подход с фильтром частиц (см. раздел 2.3).

2.5.2. Беспилотный автомобиль Junior для городских
условий от Стэнфордского университета
На рис. 2.11 представлен Junior – автомобиль, созданный командой Стэнфордского университета для участия в Urban Challenge. Junior является модифицированным Volkswagen Passat Wagon 2006 года выпуска. Он оснащен
пятью лидарами, дифференциальной инерциальной навигационной системой с поддержкой GPS, пятью радарами и двумя четырехъядерными компьютерными системами Intel Core Quad [41]. Дальность обнаружения препятствий
у этого автомобиля может достигать 120 м, а также он может достигать скорости 48 км/ч (что является максимальным ограничением скорости согласно
правилам Urban Challenge).

2.5. Сбор и обобщение данных нескольких сенсоров  63

Рис. 2.11. БА от Стэнфордского Университета [48]

Как и в системе Boss, локализация в Junior начинается с дифференциальной инерциальной навигационной системы с поддержкой GPS, которая обеспечивает интеграцию GPS-координат, инерциальных измерений и колесной
одометрии в режиме реального времени. Погрешности позиционирования
и ориентации этой системы составляют менее 100 см и 0,1° соответственно.
Система оснащена несколькими лидарами, обеспечивающими сканирование
прилегающей трехмерной дорожной среды в реальном времени. Также они
способны измерять инфракрасную отражательную способность поверхности
дороги, что позволяет обнаруживать дорожную разметку и обеспечивает более
точную локализацию транспортного средства.
Транспортному средству предоставляется цифровая карта дорожной сети.
Junior не может определить координаты транспортного средства с достаточной
для следования дорожной полосе точностью только с помощью цифровой карты и системы инерциального позиционирования на основе GPS. Кроме того,
цифровая карта сама по себе неточна и служит источником дополнительных
ошибок, если транспортное средство слепо следует ее данным. Поэтому поверх
цифровой карты Junior осуществляет точную локализацию с использованием
результатов сканирования обстановки локальным лидаром. Для достижения
точной локализации используются два типа информации: отражательная
способность дороги и препятствия, похожие на бордюры. Отражательная способность измеряется с помощью обращенных к поверхности сенсоров RIEGL
LMS-Q120 и SICK LMS. Для выполнения точной локализации применяется одномерный столбчатый фильтр для оценки бокового смещения транспортного
средства относительно цифровой карты. Он оценивает апостериорное распределение бокового смещения на основе отражательной способности и наблюдаемых вдоль дороги бордюров. Он вероятностным образом вознаграждает смещения, при которых шаблоны отражательной способности, похожие на полосы
движения, совпадают с маркерами полосы движения или стороной дороги на
цифровой карте. Фильтр штрафует смещения, если наблюдаемый бордюр попадает в коридор движения на цифровой карте. В результате в любой момент
времени транспортное средство может оценить точное смещение полученных
данных местоположения с помощью инерциальной системы на основе GPS.

64

 Локализация БТС

2.5.3. Bertha от Mercedes Benz
Для осуществления крупномасштабной локализации БА, описанные в предыдущих разделах, полагаются на системы GNSS/INS, а затем для достижения
более точных результатов применяют локальное сканирование с помощью
лидаров. Однако использование лидаров имеет два основных недостатка: вопервых, лидары очень дороги, их стоимость превышает 80 000 долл. США за
единицу; во-вторых, создание HD-карты еще дороже (на создание и обслуживание HD-карты для каждого города потребуются миллионы долларов). Альтернативный подход – использование компьютерного зрения и цифровых
карт. Одним из ярчайших примеров реализации такого подхода является беспилотный автомобиль Bertha от Mercedes Benz. Данное транспортное средство
полагается исключительно на видео- и радарные сенсоры в сочетании с точными цифровыми картами. Все это обеспечивает автомобилю всестороннюю
осведомленность о ситуации на дороге [42]. В этом подразделе мы рассмотрим
детали локализации БА Bertha.

Рис. 2.12. БА Bertha от Mercedes Benz [42], используется с разрешения

Как представлено на рис. 2.12, система данного БА оснащена следующими
сенсорами: GPS-модуль для начальной локализации; четыре радара ближнего действия 120° для наблюдения за перекрестками; два радара дальнего
действия, установленные по бокам автомобиля, для отслеживания быстрого
движения на перекрестках сельских дорог; система стереокамер с базой 35 см
для получения информации о глубине на расстоянии до 60 м; широкоугольная
монокулярная цветная камера на приборной панели для распознавания свето-

2.5. Сбор и обобщение данных нескольких сенсоров  65
фора и пешеходов при поворотах; широкоугольная камера, обращенная назад,
для локализации самого транспортного средства.
Еще одним важным источником информации является подробная цифровая
карта, которая содержит положение полос, их взаимную топологию, а также
атрибуты и отношения, определяющие правила дорожного движения, включая, помимо прочего, информацию о праве проезда, соответствующих светофорах и ограничениях скорости. Карта, используемая в БА Bertha, создается
на основе изображений со стереокамеры: для каждой пары стереоизображений вычисляется изображение несоответствия и трехмерная реконструкция
окружающей среды. Трехмерные точки проецируются на поверхность и накапливаются на основе опорной траектории. Для достижения согласованности
одни и те же стереоизображения также используются для извлечения карты
точечных объектов и карты, содержащей видимые разметки полос. Опорная
траектория записывается навигационной системой RTK GNSS/INS, тогда как
для локализации БА в реальном времени не требуется столь затратная система.
Для составления и обслуживания карт команда Bertha использовала инструменты проекта OpenStreetMap [43].
Для локализации БА Bertha система GNSS/INS обычно допускает погрешность локализации в пределах радиуса 1 м. Вдобавок к этому были разработаны два дополнительных алгоритма относительной локализации карты для
дальнейшего повышения точности локализации до дециметрового диапазона.
Первая система обнаруживает точечные ориентиры в непосредственной близости от транспортного средства и особенно эффективна в городских районах
с большими искусственными сооружениями; такой подход называется поэлементной локализацией. Вторая система использует разметку полос и бордюры,
поскольку их можно легко обнаружить в сельской местности, и переводит наблюдения за этими объектами в оценку местоположения относительно карты,
это называется локализацией на основе разметки полос. Обратите внимание,
что оба этих подхода используют методы визуальной одометрии.
В подходе, ориентированном на разметку полос, сначала, на этапе создания
карты, создается стереоизображение, а затем, во время тестовой беспилотной
поездки, создается другое изображение на основе данных обращенной назад
монокулярной камеры. Два изображения регистрируются в пространстве посредством привязки точечных объектов на основе дескрипторов: характерные признаки в последовательности кадров карты связаны с обнаруженными
признаками на текущем изображении камеры заднего вида транспортного
средства. Учитывая, что трехмерные положения этих ориентиров были восстановлены из последовательности карт на основе стереоизображений, можно
вычислить 6D-преобразование твердого тела между обеими позициями камеры, которое приведет к согласованию связанных признаков. Объединяя это
преобразование с глобальной эталонной позицией изображения карты и информацией о движении от колесных энкодеров и сенсоров скорости рыскания,
имеющихся в транспортном средстве, можно вычислить точную глобальную
оценку положения.
В сельской местности часто единственным статическими объектом на дороге является разметка. По этой причине была разработана система локализации
на основе разметки полос движения. На первом этапе такого подхода строится

66

 Локализация БТС

точная карта, содержащая все видимые отметки. Помимо дорожной разметки
и стоп-линий, на карте отмечены также бордюры и трамвайные рельсы. Затем
на этапе локализации в реальном времени локальный участок этой карты проецируется на текущее изображение, где выполняется сопоставление с поиском
ближайшего соседа на выбранной карте, а полученные расхождения итеративно минимизируются с использованием фильтра Калмана.

2.6. Справочные материалы
[1]
[2]
[3]
[4]
[5]
[6]

[7]

[8]
[9]
[10]
[11]
[12]
[13]
[14]

Misra, P. and Enge, P. 2006. Global Positioning System: Signals, Measurements
and Performance, 2nd ed. MA:Ganga-Jamuna Press.
Leick, A., Rapoport, L., and Tatarnikov, D. 2015. GPS Satellite Surveying. John
Wiley & Sons. DOI: 10.1002/9781119018612.
Jeffrey, C. 2010. An Introduction to GNSS. Calgary, AB: NovAtel Inc.
Groves, P. D. 2013. Principles of GNSS, Inertial, and Multisensor Integrated
Navigation Systems. Artech House.
Irsigler, M., Avila-Rodriguez, J. A., and Hein, G. W. 2005, September. Criteria for
GNSS multipath performance assessment. In Proceedings of the ION GNSS.
Rieder, M. J. and Kirchengast, G. 2001. Error analysis and characterization of atmospheric profiles retrieved from GNSS occultation data. Journal
of Geophysical Research: Atmospheres, 106(D23), p. 31755–31770. DOI:
10.1029/2000JD000052.
Zumberge, J. F., Heflin, M. B., Jefferson, D. C., Watkins, M. M., and Webb, F. H.
1997. Precise point positioning for the efficient and robust analysis of GPS
data from large networks. Journal of Geophysical Research: Solid Earth,
102(B3), p. 5005–5017. DOI: 10.1029/96JB03860.
Gao, Y. and Chen, K. 2004. Performance analysis of precise point positioning
using real-time orbit and clock products. Journal of Global Positioning Systems, 3(1-2), p. 95–100. DOI: 10.5081/jgps.3.1.95.
Collins, J. P. and Langley, R. B. 1997. A Tropospheric Delay Model for the User of
the Wide Area Augmentation System. Department of Geodesy and Geomatics
Engineering, University of New Brunswick.
Wübbena, G., Schmitz, M., and Bagge, A. 2005, September. PPP-RTK: precise
point positioning using state-space representation in RTK networks. In Proceedings of ION GNSS (Vol. 5, p. 13–16).
Geng, J., Teferle, F. N., Meng, X., and Dodson, A. H. 2011. Toward PPP-RTK: Ambiguity resolution in real-time precise point positioning. Advances in Space
Research, 47(10), p. 1664–1673. DOI: 10.1016/j.asr.2010.03.030.
Laurichesse, D. 2011, September. The CNES Real-time PPP with undifferenced
integer ambiguity resolution demonstrator. In Proceedings of the ION GNSS
(p. 654–662).
Grinter, T. and Roberts, C. 2013. Real time precise point positioning: Are we
there yet? IGNSS Symposium, Outrigger Gold Coast, 16–18 July 2013, Paper 8.
Caron, F., Duflos, E., Pomorski, D., and Vanheeghe, P. 2006. GPS/IMU data fusion using multisensor Kalman filtering: introduction of contextual aspects.
Information Fusion, 7(2), p. 221–230. DOI: 10.1016/j.inffus.2004.07.002.

2.6. Справочные материалы  67
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]

[26]

[27]

[28]

[29]
[30]
[31]
[32]

Schwarz, B. 2010. LIDAR: Mapping the world in 3D. Nature Photonics, 4(7),
p. 429. DOI: 10.1038/nphoton.2010.148.
Skinner, W. R. and Hays, P. B. 1994. A comparative study of coherent & incoherent Doppler lidar techniques. Marshall Space Flight Center.
Spinhirne, J. D. 1993. Micro pulse lidar. IEEE Transactions on Geoscience and
Remote Sensing, 31(1), p. 48–55. DOI: 10.1109/36.210443.
Baltsavias, E. P. 1999. Airborne laser scanning: existing systems and firms
and other resources. ISPRS Journal of Photogrammetry and Remote Sensing,
54(2), p. 164–198. DOI: 10.1016/S0924-2716(99)00016-7.
Wehr, A. and Lohr, U. 1999. Airborne laser scanning – an introduction and
overview. ISPRS Journal of Photogrammetry and Remote Sensing, 54(2),
p. 68–82. DOI: 10.1016/ S0924-2716(99)00011-8.
Donati, S. 1999. Photodetectors (Vol. 1). Prentice Hall PTR.
Muhammad, N. and Lacroix, S. 2010, October. Calibration of a rotating multibeam lidar. In 2010 IEEE/RSJ International Conference on Intelligent Robots and
Systems (IROS), (p. 5648–5653). IEEE. DOI: 10.1109/IROS.2010.5651382.
Montemerlo, M. and Thrun, S. 2006. Large-scale robotic 3-d mapping of urban
structures. Experimental Robotics IX, p. 141–150. DOI: 10.1007/11552246_14.
Levinson, J., Montemerlo, M., and Thrun, S. 2007, June. Map-based precision
vehicle localization in urban environments. In Robotics: Science and Systems
(Vol. 4, p. 1). DOI: 10.15607/RSS.2007.III.016.
Konolige, K. 2004, July. Large-scale map-making. In AAAI (p. 457–463).
Levinson, J. and Thrun, S. 2010, May. Robust vehicle localization in urban environments using probabilistic maps. In 2010 IEEE/RSJ International Conference on Robotics and Automation (ICRA), (p. 4372–4378). IEEE. DOI: 10.1109/
ROBOT.2010.5509700.
Baldwin, I. and Newman, P. 2012, May. Road vehicle localization with 2d
push-broom lidar and 3d priors. In 2012 IEEE International Conference
on Robotics and Automation (ICRA), (p. 2611–2617). IEEE. DOI: 10.1109/
ICRA.2012.6224996.
Chong, Z. J., Qin, B., Bandyopadhyay, T., Ang, M. H., Frazzoli, E., and Rus, D.
2013, May. Synthetic 2d lidar for precise vehicle localization in 3d urban environment. In 2013 IEEE International Conference on Robotics and Automation
(ICRA), (p. 1554–1559). IEEE. DOI: 10.1109/ICRA.2013.6630777.
Wolcott, R. W. and Eustice, R. M. 2015, May. Fast LIDAR localization using multiresolution Gaussian mixture maps. In 2015 IEEE International Conference
on Robotics and Automation (ICRA), (p. 2814–2821). IEEE. DOI: 10.1109/
ICRA.2015.7139582.
Chen, Z. 2003. Bayesian filtering: From Kalman filters to particle filters, and
beyond. Statistics, 182(1), p. 1–69. DOI: 10.1080/02331880309257.
Scaramuzza, D. and Friedrich F. 2011. Visual odometry [tutorial]. Robotics & Automation Magazine, IEEE 18.4, p. 80–92. DOI: 10.1109/MRA.2011.943233.
Nistér, D., Naroditsky, O., and Bergen, J. 2006. Visual odometry for ground vehicle
applications. Journal of Field Robotics, 23(1), p. 3–20. DOI: 10.1002/rob.20103.
Forster, C., Pizzoli, M., and Scaramuzza, D. 2014, May. SVO: Fast semi-direct monocular visual odometry. In 2014 IEEE International Conference on Robotics and
Automation (ICRA), (p. 15–22). IEEE. DOI: 10.1109/ICRA.2014.6906584.

68
[33]

[34]

[35]
[36]

[37]

[38]

[39]
[40]

[41]

[42]

[43]
[44]
[45]
[46]
[47]
[48]

 Локализация БТС
Tardif, J. P., Pavlidis, Y., and Daniilidis, K. 2008. September. Monocular visual
odometry in urban environments using an omnidirectional camera. In IROS
2008. IEEE/RSJ International Conference on Intelligent Robots and Systems,
2008. (p. 2531–2538). IEEE.
Scaramuzza, D., Fraundorfer, F., and Siegwart, R. 2009. May. Real-time monocular visual odometry for on-road vehicles with 1-point ransac. In ICRA’09.
IEEE International Conference on Robotics and Automation, 2009. (p. 4293–
4299). IEEE.
Howard, A. 2008. September. Real-time stereo visual odometry for autonomous ground vehicles. In Intelligent Robots and Systems, 2008. IROS 2008.
IEEE/RSJ International Conference on (p. 3946–3952). IEEE.
Tardif, J. P., Pavlidis, Y., and Daniilidis, K. 2008, September. Monocular visual
odometry in urban environments using an omnidirectional camera. In IROS
2008. IEEE/RSJ International Conference on Intelligent Robots and Systems,
2008. (p. 2531–2538). IEEE. DOI: 10.1109/IROS.2008.4651205.
Leutenegger, S., Lynen, S., Bosse, M., Siegwart, R., and Furgale, P. 2015. Keyframe-based visual–inertial odometry using nonlinear optimization.
The International Journal of Robotics Research, 34(3), p. 314–334. DOI:
10.1177/0278364914554813.
Mourikis, A. I. and Roumeliotis, S. I. 2007. A multi-state constraint Kalman
filter for vision-aided inertial navigation. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA). DOI: 10.1109/ROBOT.2007.364024.
Borenstein, J., Everett, H. R., and Feng, L. 1996. Where am I? Sensors and Methods for Mobile Robot Positioning. University of Michigan, 119(120).
Urmson, C., Anhalt, J., Bagnell, D., Baker, C., Bittner, R., Clark, M. N., Dolan, J.,
Duggins, D., Galatali, T., Geyer, C., and Gittleman, M. 2008. Autonomous driving in urban environments: Boss and the urban challenge. Journal of Field
Robotics, 25(8), p. 425–466. DOI: 10.1002/rob.20255.
Montemerlo, M., Becker, J., Bhat, S., Dahlkamp, H., Dolgov, D., Ettinger, S., Haehnel, D., Hilden, T., Hoffmann, G., Huhnke, B., and Johnston, D. 2008. Junior: The
stanford entry in the urban challenge. Journal of Field Robotics, 25(9), p. 569–
597. DOI: 10.1002/ rob.20258.
Ziegler, J., Bender, P., Schreiber, M., Lategahn, H., Strauss, T., Stiller, C., Dang, T.,
Franke, U., Appenrodt, N., Keller, C. G., and Kaus, E. 2014. Making Bertha drive –
An autonomous journey on a historic route. IEEE Intelligent Transportation
Systems Magazine, 6(2), p. 8–20. DOI: 10.1109/MITS.2014.2306552.
Haklay, M. and Weber, P. 2008. Openstreetmap: User-generated street maps.
IEEE Pervasive Computing, 7(4), p. 12–18. DOI: 10.1109/MPRV.2008.80.
Van Sickle, J. 2015. GPS for Land Surveyors, 4th ed. CRC Press.
Jurvetson, S. 2009. Velodyne High-Def LIDAR. Copyright 2009. CC BY 2.0.
https://www.flickr.com/photos/44124348109@N01/4042817787.
Van Sickle, J. 2001. GPS for Land Surveyors, 2nd ed. CRC Press.
Jurvetson, S. 2008. CMU carbot. Copyright 2008. CC BY 2.0.
https://www.flickr.com/photos/jurvetson/2328347458.
Jurvetson, S. 2009. Hands-free Driving. Copyright 2009. CC BY 2.0.
https://www.flickr.com/photos/44124348109@N01/4044601053.

Глава

3
Алгоритмы восприятия
беспилотных технологий

Аннотация
Алгоритмы восприятия позволяют беспилотному автомобилю «почувствовать» динамическую окружающую среду и построить надежное
и подробное представление о ней на основе данных сенсоров. В высокоинтеллектуальных и безопасных автомобилях модули восприятия
должны уметь обнаруживать любые препятствия, распознавать тип
дорожного покрытия, разметку, дорожные знаки и светофоры, а также отслеживать движущиеся объекты в 3D и многое другое. Важность
этапа восприятия сложно переоценить, поскольку от него зависят все
последующие решения, а также этапы планирования и контроля. В этой
главе мы рассмотрим основные функции этапа восприятия, общедоступные наборы данных, формулировку задач данного этапа и его типовые алгоритмы. В следующей главе обсудим алгоритмы восприятия
на основе нейронных сетей.

3.1. Введение
Один из основных критериев, которыми должен обладать БА, – способность
функционировать в сложной динамичной среде. Именно поэтому так важно
обеспечить БА способность воспринимать окружающие его объекты в режиме реального времени. Для достижения этой цели используются данные различных типов сенсоров, таких как камеры, лидары, коротковолновые радары
и ультразвуковые сенсоры. Наиболее важную роль среди всего вышеперечисленного играют камеры и лидары. Основной проблемой компьютерного зрения, подобласти искусственного интеллекта, является визуальный вывод с сенсоров изображений. Многие незаменимые функции алгоритмов восприятия
в беспилотных технологиях перекликаются с фундаментальными проблемами
компьютерного зрения. С 1980-х годов было предпринято множество попыток
создать беспилотный автомобиль, и главным препятствием на пути к достижению этой цели всегда была реализация алгоритмов восприятия. С тех времен
инженеры достигли значительного прогресса, однако восприятие по сей день
остается одним из самых сложных аспектов при создании БТС.

70



Алгоритмы восприятия беспилотных технологий

3.2. Датасеты
Датасеты, представляющие собой наборы обработанных структурированных данных об окружающей среде, являются важным катализатором для оптимизации поиска решений во многих областях. Датасеты облегчают быструю
итерацию алгоритмов на основе количественной оценки их производительности, выявляют потенциальные слабые места и позволяют проводить справедливое сравнение. В области компьютерного зрения существуют датасеты
для отдельных фундаментальных проблем, таких как классификация изображений [1, 2], семантическая сегментация [1, 2, 3], оптический поток [4, 5],
стереоскопическое зрение [6, 7] и отслеживание [8, 9]. Такие датасеты формируются с помощью краудсорсинга или синтетических подходов. Они содержат множество тренировочных выборок (от нескольких штук до нескольких
миллионов маркированных изображений). Таким образом, большие датасеты
с реалистичными изображениями позволяют надежнее оценивать производительность алгоритма на практике.
Стоит отметить, что для беспилотных технологий существуют свои датасеты – KITTI [10] и Cityscapes [11]. Они формируются на основе данных различных сенсоров, отражающих дорожные ситуации. Такие датасеты предоставляют БА информацию о различных реальных ситуациях, с которыми может
столкнуться система. Наборы данных KITTI – это совместный проект Технологического института Карлсруэ (KIT – Karlsruhe Institute of Technology) и Технологического института Toyota в Чикаго (TTIC – Toyota Technological Institute
at Chicago), созданный в 2012 году. Официальный сайт этого проекта вы можете найти по адресу ttp://www.cvlibs.net/datasets/kitti/. Цель создателей KITTI
заключалась в создании сложного реалистичного датасета для беспилотных
технологий. На рис. 3.1 представлен автомобиль, использовавшийся для сбора
данных будущего датасета.
Лазерный сканер Velodyne HDL-64E
Видеокамеры
Point Gray
Flea 2

Рис. 3.1. Автомобиль KITTI (источник: веб-сайт KITTI)

3.2. Датасеты  71
Данный автомобиль оснащен:
 одной инерциальной навигационной системой (GPS/IMU): OXTS RT 3003;
 одним лазерным сканером: Velodyne HDL-64E;
 двумя камерами с градациями серого, 1,4 мегапикселя: Point Grey Flea 2
(FL2-14S3M-C), делающими снимки с частотой 10 Гц;
 двумя цветными камерами, 1,4 мегапикселя: Point Grey Flea 2 (FL214S3C-C), делающими снимки с частотой 10 Гц.
Датасет KITTI содержит:
1) данные стерео- и оптического потока: с помощью двух камер одновременно создается пара стереоизображений. Пара изображений оптического потока снимается одной и той же камерой последовательно во
времени. В наборе содержится 194 пары изображений из обучающей
выборки образцов и 195 пар изображений тестовой выборки. Примерно 50 % пикселей несут действительную информацию о смещении. Как
представлено на рис. 3.2, стереоскопические данные несут информацию
о глубине, а данные оптического потока – о движении;

Рис. 3.2. Стерео- (верхний) и оптический потоки (нижний) данных [10] (использовано
с разрешения правообладателя)

2) данные визуальной одометрии: 22 последовательности пар стереоизображений, более 40 000 кадров на расстоянии 39,2 км;
3) данные обнаружения и ориентации объекта: отмеченные вручную данные, указывающие на такие характеристики, как размер и ориентация
объекта, определяемые с помощью 3D-рамки. Типы объектов включают в себя седаны, фургоны, грузовики, пешеходов, велосипедистов и т. д.
(см. рис. 3.3);

Рис. 3.3. Данные обнаружения объекта [10] (использовано с разрешения правообладателя)

4) данные отслеживания объектов: 21 последовательность изображений обучающей выборки и 29 последовательностей тестовой выборки. Основными целями отслеживания являются пешеходы и автомобили;

72



Алгоритмы восприятия беспилотных технологий

5) данные анализа дороги: 289 последовательностей изображений обучающей выборки и 290 последовательностей тестовой выборки, содержащих информацию о различных типах дорожного покрытия: городском
без опознавательных знаков, городском с опознавательными знаками
и городских полосах с разметкой.
Датасеты KITTI и Cityscapes отличаются от традиционно используемых датасетов для компьютерного зрения следующим:
 использование нескольких сенсоров и 3D-сканеров обеспечивает высокоточную 3D-геометрию, следовательно, информация, полученная такими сенсорами и сканерами, отражает достоверные данные об окружающей среде;
 сбор данных осуществляется в реальной окружающей среде. Данные
не синтезируются, и их сбор не осуществляется в контролируемых лабораторных условиях;
 в этих датасетах содержатся данные для алгоритмов восприятия беспилотных технологий, таких как распознавание препятствий.
Несмотря на популярность описанных датасетов, сегодня постоянно появляются новые алгоритмы. За последние годы было выпущено несколько новых
датасетов для беспилотных технологий:
 Audi Autonomous Driving Dataset (A2D2): https://www.a2d2.audi/a2d2/en.html;
 nuScenes: http://nuscenes.org;
 Berkeley DeepDrive: http://bdd-data.berkeley.edu;
 Waymo Open Dataset: http://waymo.com/open;
 Lyft Level 5 Open Data: http://self-driving.lyft.com/level5/data.

3.3. Обнаружение
На дороге БА окружает большое количество других участников движения, таких как автомобили, пешеходы и т. д. Также дороги полны препятствий – на
них есть разметка и множество других объектов. Очевидно, что быстрое и надежное обнаружение таких объектов (рис. 3.4) имеет решающее значение.
Обнаружение объектов – фундаментальная проблема компьютерного зрения,
и для ее решения было предложено множество разных алгоритмов.

Рис. 3.4. Обнаружение других автомобилей с помощью KITTI ([34], использовано
с разрешения правообладателя)

3.3. Обнаружение  73
Как правило, первый этап алгоритма обнаружения выполняется в препроцессоре входных изображений. Затем в игру вступает детектор, обрабатывающий интересующую область и далее, наконец, классификатор, идентифицирующий обнаруженные объекты. Ввиду возможных значительных различий
в положении, размере, соотношении сторон, ориентации и внешнем виде
объектов детекторы должны, с одной стороны, выделять отличительные признаки, которые могут определять принадлежность объектов к тому или иному
типу, а с другой – создавать инвариантное представление объекта, что обеспечит надежность. Еще одним важным аспектом обнаружения объектов в беспилотных технологиях является скорость: детекторы должны работать в режиме,
близком к реальному времени.
Детектор объектов должен моделировать как внешний вид, так и форму объектов в различных условиях. В 2005 году Далал и Триггс (Dalal and
Triggs) [12] предложили алгоритм, основанный на гистограмме направленных
градиентов (HOG – Histogram of Oriented Gradients ) и методе опорных векторов (SVM – Support Vector Machine). Данный алгоритм представлен на рис. 3.5.
Он осуществляет предварительную обработку входного изображения, вычисляет функции гистограммы направленных градиентов в скользящем окне обнаружения и затем применяет метод опорных векторов непосредственно для
обнаружения. Данный алгоритм фиксирует внешний вид объекта с помощью
специально разработанных функций гистограммы направленных градиентов
и применяет линейный метод опорных векторов для обработки объектов, состоящих из нескольких элементов.

Рис. 3.5. Гистограмма направленных градиентов + метод опорных векторов. По материалам
Далала и Триггса (Dalal and Triggs) [12]

Обнаружение объектовупомянутого выше типа представляет собой особую
сложность ввиду отсутствия неизменной формы. Поэтому, согласно Deformable
Part Model (DPM), разработанной П. Фельценсвальбом (P. Felzenszwalb) и др.
[13], сложный объект разбивается на более простые части, что позволяет системе обнаруживать объекты, состоящие из нескольких элементов, анализируя
их части. При таком подходе количество данных обучающей выборки, необходимых для моделирования внешнего вида сложных объектов, значительно
сокращается. В DPM (рис. 3.6) применяется пирамида функций гистограммы
направленных градиентов для построения многомасштабных гипотез относительно объектов, комплексная пространственная модель для ограничения
конфигурации частей объекта и метод опорных векторов для обработки скрытых переменных, таких как положение частей объекта.
Обнаружение объектов также может осуществляться и посредством других
типов сенсоров, таких как лидары [14]. Несмотря на то что алгоритмы на основе лидаров и алгоритмы на основе камер обладают приблизительно одинаковой производительностью, при использовании лидаров возникает больше
трудностей с обнаружением пешеходов и велосипедистов, вероятно, из-за их

74

 Алгоритмы восприятия беспилотных технологий

относительно небольшого размера. Таким образом, мы можем сделать вывод,
что для обеспечения эффективной работы детекторов необходимо использовать одновременно несколько сенсоров.

Рис. 3.6. Модель деформируемой части объекта. По материалам П. Фельценсвальба
(P. Felzenszwalb) и др. [13] (использовано с разрешения правообладателя)

Безусловно, БА должны иметь возможность перемещаться в потоке в непосредственной близости к пешеходам. Таким образом, по соображениям безопасности решающее значение имеет именно обнаружение пешеходов. Однако
зачастую поведение человека трудно предсказать. Кроме того, внешний вид
людей значительно варьируется. Также имеет место и частичное перекрытие.
Исследования [15, 16] на эту тему, охватывающие различные архитектуры, уже
существуют. На сегодняшний день большинство детекторов, служащих для обнаружения пешеходов, основываются на сверточных нейронных сетях, которые мы рассмотрим в следующей главе.

3.4. Сегментация
Сегментация или, если говорить более точно, семантическая сегментация на
уровне экземпляра, является естественным методом улучшения алгоритмов
обнаружения объектов. Так, для обеспечения эффективной работы БТС необходимо уделить этому аспекту должное внимание. Разбор изображения с камеры на семантически значимые сегменты обеспечивает БТС структурированное «понимание» окружающей его среды (рис. 3.7).

3.4. Сегментация  75

Рис. 3.7. Семантическая сегментация уличной сцены в Цюрихе. На основе данных датасета
Cityscapes [11] (использовано с разрешения правообладателя)

Традиционно семантическая сегментация формулируется как проблема разметки графа, где вершинами графа являются пиксели или суперпиксели. Как
правило, здесь используются алгоритмы вывода на графических моделях, таких
как условное случайное поле (CRF – Conditional Random Field) [17, 18]. При таком
подходе условные случайные поля строятся с вершинами, представляющими
собой пиксели или суперпиксели. Каждый узел может принимать метку из заданного набора, обусловленного функциями, извлеченными в соответствующей
позиции изображения. Края между этими узлами представляют ограничения,
такие как пространственная гладкость, корреляции меток и т. д (см. рис.3.8).
Глобальные
признаки


Региональные
признаки
Локальный
классификатор

Входное изображение




Поле метки



Скрытые
переменные



Узлы
меток

RBM

Рис. 3.8. Графическое представление модели С. Хэ (X. He) и др. [17]

Несмотря на то что подход с использованием условного случайного поля
является приемлемым для сегментации, при увеличении размера изображений, количества входных функций или размера набора меток скорость данного процесса замедляется. Также появляются трудности с фиксацией зави-

76

 Алгоритмы восприятия беспилотных технологий

симостей на больших расстояниях в изображениях. В [19] авторы предлагают
высокоэффективный алгоритм вывода для оптимизации скорости выполнения данного процесса, где условные случайные поля полностью связаны с парными потенциалами между всеми парами пикселей. Также существуют и другие алгоритмы [20], цель которых заключается в обеспечении взаимодействия
классов объектов. Фактически семантическая сегментация должна позволять
предсказывать метки классов с многомасштабными функциями изображения
и контекстными рассуждениями. В следующей главе мы рассмотрим, как к семантической сегментации применяется глубокое обучение.

3.5. Стереозрение, оптический поток, поток сцен
В этом разделе мы рассмотрим несколько алгоритмов восприятия – стереозрение, оптический поток и поток сцен.

3.5.1. Стереоскопия и глубина
Беспилотные автомобили окружает трехмерный мир. Именно поэтому им необходим алгоритм восприятия, предоставляющий трехмерную пространственную
информацию, например информацию о глубине. Лидар получает высокоточные
данные о глубине посредством разреженных трехмерных облаков точек. Одно
изображение дает информацию о характеристике пространства, например о цвете и текстуре его элементов, но не дает информацию о глубине. Процесс трехмерного визуального восприятия у людей осуществляется посредством бинокулярного зрения. По этому же принципу информацию о глубине может получать
и БА – с помощью стереокамеры, снимающей одновременно под разными углами.
Процесс извлечения информации с пары изображений, снятой стереокамерой (Il, Ir), сопровождается процессом установки соответствия, где пиксели
левого изображения Il сопоставляются с пикселями правого изображения Ir на
основе функции стоимости. На этом этапе предполагается, что определенные
пиксели как левого, так и правого изображений соответствуют одной и той же
физической точке и, следовательно, имеют одинаковый внешний вид:
Il (p) = Ir (p+d),

где p – положение пикселя на левом изображении, а d – расхождение.
Также существуют методы, основывающиеся не на значении пикселей, а на
более выраженных признаках, начиная от простых, таких как край и угол, заканчивая сложными специально разработанными алгоритмами, такими как
SIFT [21], SURF [22] и т. д. Такие методы позволяют получать более точный результат сопоставления, однако пространственное соответствие при таких подходах представляется более разреженным. Помимо описанных выше методов
существуют и другие. В них за основу берется пространственная гладкость
в соответствии со следующим уравнением:
d( x, y )  d( x   , y   )
при небольших значениях (α, β). Поиск решения по d является задачей минимизации:

3.5. Стереозрение, оптический поток, поток сцен  77
min d D( p ,d )  mind



qN ( p )

Ir ( q  r )  Il ( q ) .

Такой подход позволяет получать плотные выходные данные, но с более высокими вычислительными затратами.
Другим способом постановки задачи соответствия является оптимизация.
Как алгоритмы, основанные на признаках объектов, так и алгоритмы, основанные на характеристике поверхности, считаются локальными, поскольку d вычисляется на основе локальной информации. В свою очередь глобальные алгоритмы обеспечивают подход к процессу сопоставления изображений с точки
зрения минимизации затрачиваемой энергии, опираясь на предположения
о постоянстве внешнего вида объектов и ограничений пространственной гладкости. В качестве инструментов поиска глобального решения могут использоваться различные методы, включая вариационные методы, динамическое
программирование и алгоритм распространения доверия.
Одним из самых известных алгоритмов сопоставления стереоизображений
является алгоритм Semi-Global Matching (SGM) [23]. У него хорошо проработанная теория [24], а также он довольно быстро работает [25]. Данный алгоритм
представляет собой глобальный метод, где параметры функции распределения
энергии вычисляются по нескольким одномерным линиям в каждом пикселе, а также вычисляется гладкость поверхности (подробности в [23]). Недавно
было обнаружено, что методы, основанные на глубоком обучении, обладают
наилучшей производительностью. Мы обсудим их в следующей главе.
После установки соответствия между парами стереоизображений с двух камер
с фокусным расстоянием f, находящихся на расстоянии B (при условии, что оптические оси камеры выровнены, что ограничивает расхождение d только скалярной величиной), точка на изображении с расхождением d имеет глубину z:
z=

B
f.
d

3.5.2. Оптический поток
Оптический поток [26] представляет собой одну из основных проблем компьютерного зрения и определяется как двумерное движение интенсивностей между двумя изображениями. Такое движение связано с трехмерным движением
в физическом мире, однако отличается от него. Такой подход основывается на
постоянном осуществлении предположений о внешнем виде объектов:
Il (p) = It+1(p+d).

На самом деле оптический поток представляет собой более сложный подход, нежели стереозрение. При подходе с использованием стереокамер, съемка
изображений осуществляется одновременно двумя камерами, доминирующей
причиной расхождения является геометрия, а предположения о постоянстве
внешнего вида в большинстве случаев являются верными. При применении
подхода оптического потока съемка пар изображений осуществляется в разное время, а это означает, что движение является лишь одним из многих изменяющихся факторов, помимо освещения, отражения, прозрачности и т. д. Сле-

78



Алгоритмы восприятия беспилотных технологий

довательно, время от времени могут производиться неверные предположения
о постоянстве внешнего вида. Другой проблемой оптического потока является
проблема усеченного обзора (рис. 3.9): разрыв между одним ограничением
и двумя неизвестными компонентами d. Такая проблема может быть решена
путем введения ограничения гладкости на поле движения d.
A

B

C

Рис. 3.9. Проблема усеченного обзора, на основе материалов
https://stoomey.wordpress.com/2008/04/18/20/

Одним из способов предотвращения потенциальных проблем, вызванных
непостоянством внешнего вида, является замена квадратичной штрафной
функции, используемой в [26], устойчивой функцией стоимости, как в [27, 28].

3.5.3. Поток сцен
Стоит отметить, что для БТС важнее не 2D-оптический поток в плоскости изображения, а реальное 3D-движение объектов. Именно эта идея лежит в основе
тестов производительности KITTI Scene Flow 2015. Оценка потока сцен основана на двух последовательных парах стереоизображений (рис. 3.10), где соответствие определяется не только 3D-положением точек, но и их 3D-движением
с течением времени.
Правое

Левое
t1

flow
D
i

cross
D
i
stereo
D
i

t0

Суперпиксель i
Опорный вид

Рис. 3.10. Две пары стереоизображений потока сцен [29] (использовано с разрешения
правообладателя)

3.6. Отслеживание  79
При оценке потока сцен Менце и Гейгер (Menze and Geiger) [29] используют суперпиксель для построения параметрической 3D-плоскости движущихся
объектов (рис. 3.11), что позволяет сделать предположение относительно местоположения.

Рис. 3.11. Расчет движения объекта, оптический поток и поток сцен [29] (используется
с разрешения правообладателя)

3.6. Отслеживание
Алгоритмы отслеживания позволяют оценивать состояние объектов, например
их местоположение, скорость и ускорение с течением времени. БА должны отслеживать состояние других участников движения, чтобы сохранять безопасное расстояние и прогнозировать траектории их движения. Особенно сложно
оценивать состояние пешеходов и велосипедистов, поскольку они могут резко
менять направление движения. Главные трудности, возникающие при отслеживании, состоят в том, что:
 объекты могут подвергаться частичной или полной окклюзии (перекрытию одного объекта другим);
 объекты одного класса могут быть очень похожими по внешнему виду;
 внешний вид объекта может сильно меняться при смене положения, артикуляции и условий освещения.
Один из подходов к отслеживанию представляет собой последовательный
процесс баейсовской фильтрации, состоящий из нескольких этапов.
1. Этап прогнозирования: посредством построения модели движения, описывающей изменение состояния объекта с течением времени, состояние
объекта в текущем временном интервале прогнозируется с учетом состояния объекта на предыдущем временном интервале.

80

 Алгоритмы восприятия беспилотных технологий

2. Этап коррекции: с учетом прогнозируемого состояния объекта в текущем моменте времени и текущего наблюдения, основывающегося на
данных сенсоров, с использованием модели наблюдения, описывающей
определение наблюдений за состоянием объекта, вычисляется апостериорное распределение вероятностей состояния объекта в текущий момент времени.
3. Затем процесс повторяется итеративно.
Также для отслеживания может применяться фильтр частиц [30, 31]. Однако рекурсивный характер процесса баейсовской фильтрации затрудняет восстановление после возможного временного сбоя обнаружения. Если подход
к отслеживанию является неитерационным, его можно рассматривать как
минимизирующую глобальную функцию энергии, которая включает в себя
ограничения плавности движения и предположения о постоянстве внешнего
вида. Обратной стороной этого подхода является количество предположений относительно объекта, притом что количество возможных траекторий
каждого объекта может быть довольно большим. Следовательно, поиск оптимального решения требует значительных вычислительных затрат. Один
из способов решения этой проблемы, позволяющий минимизировать затраты, – эвристика [32].
Еще одним распространенным подходом к отслеживанию объектов является
отслеживание обнаружением (tracking-by-detection). Последовательные кадры
обрабатываются детектором объектов, а затем обнаруженные объекты сопоставляются с ними. На обоих этапах могут возникать некоторые неопределенности: упущения обнаружения или неверное определение местоположения,
а также проблема ассоциации данных при принятии решения относительно
комбинаторного взрыва с множеством возможных траекторий. С этими неопределенностями можно справиться с помощью марковского процесса принятия решений (MDP – Markov decision process). Например, такой подход к обнаружению объектов применяется в [33] (рис. 3.12).
 Состояние объектов может быть четырех типов: активное, неактивное,
отслеживаемое, потерянное. s ∈ S = Sactive ∩ Stracked ∩ Slost ∩ Sinactive:
Š при обнаружении объект становится «активным»;
Š при верном обнаружении соответствующий объект становится «отслеживаемым»;
Š при неверном обнаружении соответствующий объект становится «неактивным»;
Š «отслеживаемый» объект может стать «потерянным»;
Š «потерянный» объект может снова стать «отслеживаемым»;
Š при длительном пребывании в «потерянном» состоянии объект становится «неактивным»;
Š «неактивный» объект остается «неактивным».
 Все действия a ∈ A.
 Функция перехода T: S × A → A детерминирована.
Функция вознаграждения R: S × A → R обучается на данных.
Политика π: S → A также обучается на данных.

3.6. Отслеживание  81
Обнаружение
объектов
a1

a3
Отслеживаемый

a4

a6

Активный

Потерянный

a5
a2

Неактивный

a7

Рис. 3.12. Отслеживание с помощью марковского процесса принятия решений
(на основе материалов [33])

Этот алгоритм работает следующим образом.
 В «активном» состоянии кандидаты в объекты, предложенные детектором, обрабатываются автономным алгоритмом на основе метода опорных векторов, который определяет достоверность обнаружения. Данный
алгоритм рассматривает особенности и положение кандидатов и выбирает действие a1 или a2.
 В «отслеживаемом» состоянии алгоритм отслеживания–обучения–обнаружения (tracking-learning-detection) использует онлайн-модель внешнего вида, чтобы решить, останется ли объект в «отслеживаемом» состоянии или перейдет в «потерянное» состояние. В качестве шаблона
данной модели используется ограничивающая рамка объекта. Если объект остается в «отслеживаемом» состоянии, его модель внешнего вида
постоянно обновляется.
 В «потерянном» состоянии все шаблоны, собранные во время пребывания объекта в «отслеживаемом» состоянии, используются для определения того, возвратится ли он в «отслеживаемое» состояние. Если объект
пребывает в «потерянном» состоянии дольше заданного времени, он
переходит в «неактивное» состояние.
Такой подход обеспечивает оптимальную производительность при использовании датасета KITTI; см. пример на рис. 3.13.

82

 Алгоритмы восприятия беспилотных технологий

MDP1

Отслеживаемый

Потерянный

Отслеживаемый

MDP1

Отслеживаемый

Потерянный

Отслеживаемый

MDP1

Отслеживаемый

Отслеживаемый

Отслеживаемый

Рис. 3.13. Пример применения алгоритма марковского принятия решений [33]
(использовано с разрешения правообладателя)

3.7. Заключение
Восприятие как один из основных компонентов беспилотных технологий во
многом зависит от компьютерного зрения. В этой главе мы рассмотрели несколько актуальных областей исследования компьютерного зрения и применение соответствующих техник при решении задач восприятия. Также мы
рассмотрели определения проблем, датасеты, общие подходы и их сильные/
слабые стороны. Все это позволило нам лучше разобраться в реализации обнаружения объектов в беспилотных технологиях.

3.8. Справочные материалы
[1]
[2]
[3]

[4]

Deng, J., Dong, W., Socher, R., Li, L. J., Li, K., and Fei-Fei, L. 2009, June. Imagenet: A large-scale hierarchical image database. In IEEE Conference on Computer Vision and Pattern Recognition, 2009. CVPR 2009. (p. 248–255). IEEE.
Everingham, M., Van Gool, L., Williams, C. K., Winn, J., and Zisserman, A. 2010.
The pascal visual object classes (voc) challenge. International Journal of Computer Vision, 88(2), p. 303–338. DOI: 10.1007/s11263-009-0275-4.
Lin, T. Y., Maire, M., Belongie, S., Hays, J., Perona, P., Ramanan, D., Dollár, P., and
Zitnick, C. L. 2014, September. Microsoft coco: Common objects in context.
In European Conference on Computer Vision (p. 740–755). Springer International Publishing. DOI: 10.1007/978-3-319-10602-1_48.
Baker, S., Scharstein, D., Lewis, J. P., Roth, S., Black, M. J., and Szeliski, R. 2011.
A database and evaluation methodology for optical flow. International Journal of Computer Vision, 92(1), p. 1–31. DOI: 10.1007/s11263-010-0390-2.

3.8. Справочные материалы  83
[5]
[6]

[7]

[8]
[9]
[10]

[11]

[12]

[13]

[14]
[15]
[16]
[17]

[18]
[19]

Janai, J., Güney, F., Wulff, J., Black, M., and Geiger, A. 2017. Slow flow: Exploiting
highspeed cameras for accurate and diverse optical flow reference data. IEEE
Conference on Computer Vision and Pattern Recognition (CVPR).
Scharstein, D., Szeliski, R., and Zabih, R. 2001. A taxonomy and evaluation of
dense two-frame stereo correspondence algorithms. In Stereo and MultiBaseline Vision, 2001. (SMBV 2001). Proceedings. IEEE Workshop on (p. 131–
140). IEEE. DOI: 10.1109/ SMBV.2001.988771.
Scharstein, D., Hirschmüller, H., Kitajima, Y., Krathwohl, G., Nešić, N., Wang, X.,
and Westling, P. 2014, September. High-resolution stereo datasets with subpixelaccurate ground truth. In German Conference on Pattern Recognition (p. 31–42).
Springer International Publishing. DOI: 10.1007/978-3-319-11752-2_3.
Leal-Taixé, L., Milan, A., Reid, I., Roth, S., and Schindler, K. 2015. MOTChallenge 2015:
Toward a benchmark for multi-target tracking. arXiv preprint arXiv:1504.01942.
Milan, A., Leal-Taixé, L., Reid, I., Roth, S., and Schindler, K. 2016. Mot16: A benchmark for multi-object tracking. arXiv preprint arXiv:1603.00831.
Geiger, A., Lenz, P., and Urtasun, R. 2012, June. Are we ready for autonomous
driving? the kitti vision benchmark suite. In 2012 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), (p. 3354–3361). IEEE. DOI:
10.1109/CVPR.2012.6248074.
Cordts, M., Omran, M., Ramos, S., Rehfeld, T., Enzweiler, M., Benenson, R., Franke,
U., Roth, S., and Schiele, B. 2016. The cityscapes dataset for semantic urban scene
understanding. In Proceedings of the IEEE Conference on Computer Vision and
Pattern Recognition (p. 3213–3223). DOI: 10.1109/CVPR.2016.350.
Dalal, N. and Triggs, B. 2005, June. Histograms of oriented gradients for human detection. In IEEE Computer Society Conference on Computer Vision
and Pattern Recognition, 2005. CVPR 2005. (Vol. 1, p. 886–893). IEEE. DOI:
10.1109/CVPR.2005.177.
Felzenszwalb, P., McAllester, D., and Ramanan, D. 2008, June. A discriminatively trained, multiscale, deformable part model. In IEEE Conference on Computer Vision and Pattern Recognition, 2008. CVPR 2008. (p. 1–8). IEEE. DOI:
10.1109/CVPR.2008.4587597.
Wang, D. Z. and Posner, I. 2015, July. Voting for voting in online point cloud object
detection. In Robotics: Science and Systems. DOI: 10.15607/RSS.2015.XI.035.
Enzweiler, M. and Gavrila, D. M. 2009. Monocular pedestrian detection: Survey
and experiments. IEEE Transactions on Pattern Analysis and Machine Intelligence, 31(12), p. 2179–2195. DOI: 10.1109/TPAMI.2008.260.
Benenson, R., Omran, M., Hosang, J., and Schiele, B. 2014. Ten years of pedestrian detection, what have we learned?. arXiv preprint arXiv:1411.4304.
He, X., Zemel, R. S., and Carreira-Perpiñán, M. Á. 2004, June. Multiscale conditional random fields for image labeling. In Proceedings of the 2004 IEEE
Computer Society Conference on Computer Vision and Pattern Recognition,
2004. CVPR 2004. (Vol. 2, p. II–II). IEEE.
He, X., Zemel, R., and Ray, D. 2006. Learning and incorporating top-down
cues in image segmentation. Computer Vision–ECCV 2006, p. 338–351. DOI:
10.1007/11744023_27.
Krähenbühl, P. and Koltun, V. 2011. Efficient inference in fully connected crfs
with gaussian edge potentials. In Advances in Neural Information Processing
Systems (p. 109–117).

84
[20]

[21]
[22]
[23]
[24]

[25]

[26]
[27]
[28]
[29]
[30]
[31]

[32]

[33]
[34]



Алгоритмы восприятия беспилотных технологий

Ladicky, L., Russell, C., Kohli, P., and Torr, P. H. 2010, September. Graph cut
based inference with co-occurrence statistics. In European Conference on
Computer Vision (p. 239-253). Springer Berlin Heidelberg. DOI: 10.1007/9783-642-15555-0_18.
Lowe, D. G. 1999. Object recognition from local scale-invariant features. In Computer vision, 1999. The Proceedings of the Seventh IEEE International Conference on (Vol. 2, p. 1150–1157). IEEE. DOI: 10.1109/ICCV.1999.790410.
Bay, H., Tuytelaars, T., and Van Gool, L. 2006. Surf: Speeded up robust features.
Computer Vision–ECCV 2006, p. 404–417. DOI: 10.1007/11744023_32.
Hirschmuller, H. 2008. Stereo processing by semiglobal matching and mutual
information. IEEE Transactions on Pattern Analysis and Machine Intelligence,
30(2), p. 328–341. DOI: 10.1109/TPAMI.2007.1166.
Drory, A., Haubold, C., Avidan, S., and Hamprecht, F. A. 2014, September. Semiglobal matching: a principled derivation in terms of message passing. In German Conference on Pattern Recognition (p. 43–53). Springer International
Publishing. DOI: 10.1007/978- 3-319-11752-2_4.
Gehrig, S. K., Eberli, F., and Meyer, T. 2009, October. A real-time low-power
stereo vision engine using semi-global matching. In International Conference
on Computer Vision Systems (p. 134–143). Springer Berlin Heidelberg. DOI:
10.1007/978-3-642-04667- 4_14.
Horn, B. K. and Schunck, B. G. 1981. Determining optical flow. Artificial Intelligence, 17(1–3), p. 185–203. DOI: 10.1016/0004-3702(81)90024-2.
Black, M. J. and Anandan, P. 1996. The robust estimation of multiple motions:
Parametric and piecewise-smooth flow fields. Computer Vision and Image
Understanding, 63(1), p. 75–104. DOI: 10.1006/cviu.1996.0006.
Zach, C., Pock, T., and Bischof, H. 2007. A duality based approach for realtime
TV-L 1 optical flow. Pattern Recognition, p. 214–223. DOI: 10.1007/978-3540-74936-3_22.
Menze, M. and Geiger, A. 2015. Object scene flow for autonomous vehicles.
In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (p. 3061–3070). DOI: 10.1109/CVPR.2015.7298925.
Giebel, J., Gavrila, D., and Schnörr, C. 2004. A Bayesian framework for multicue 3d object tracking. Computer Vision-ECCV 2004, p. 241–252. DOI:
10.1007/978-3-540- 24673-2_20.
Breitenstein, M. D., Reichlin, F., Leibe, B., Koller-Meier, E., and Van Gool, L. 2011.
Online multiperson tracking-by-detection from a single, uncalibrated camera. IEEE Transactions on Pattern Analysis and Machine Intelligence, 33(9),
p. 1820–1833. DOI: 10.1109/TPAMI.2010.232.
Andriyenko, A. and Schindler, K. 2011, June. Multi-target tracking by continuous energy minimization. In 2011 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), (p. 1265–1272). IEEE. DOI: 10.1109/
CVPR.2011.5995311.
Xiang, Y., Alahi, A., and Savarese, S. 2015. Learning to track: Online multi-object
tracking by decision making. In Proceedings of the IEEE International Conference
on Computer Vision (p. 4705–4713). DOI: 10.1109/ICCV.2015.534.
Geiger, A., Lenz, P., Stiller, C., and Urtasun, R. 2013. Vision Meets Robotics: the
KITTI Dataset. September 2013 International Journal of Robotics Research,
32(11), p. 1231–1237. DOI: 10.1177/0278364913491297.

Глава

4
Глубокое обучение
в алгоритмах восприятия
беспилотных технологий

Аннотация
В предыдущей главе мы рассмотрели основные проблемы восприятия
беспилотных технологий. За последние несколько лет в области компьютерного зрения начали применять концепцию глубинных нейронных
сетей, также известную как глубокое обучение. Данная концепция способствовала значительному прогрессу в таких областях, как классификация изображений, обнаружение объектов, семантическая сегментация
и др. Таким образом, ее применение привнесло значительные изменения
в развитие области компьютерного зрения. Большинство современных
алгоритмов основывается на одном из типов нейронных сетей, основанных на операции свертки, и такой подход становится все популярнее. В этой главе мы рассмотрим некоторые алгоритмы восприятия
беспилотных технологий, основанные на глубоком обучении.

4.1. Сверточные нейронные сети
Сверточные нейронные сети (CNN – Convolutional Neural Network) относятся к одному из типов глубинных нейронных сетей (DNN – Deep Neural Network), в которых
основным вычислительным оператором является свертка. Данной теме был посвящен исследовательский отчет Яна Лекуна (Y. LeCun) и др. [1], представленный
в 1988 году. При создании этого отчета исследователи вдохновлялись удостоившимся Нобелевской премии трудом Хьюбеля и Визеля (Hubel and Wiesel) о зрительной коре головного мозга, созданным в 1969 году. Хьюбель и Визель (Hubel
and Wiesel) обнаружили, что нейроны в области первичной зрительной коры V1
являются ориентационно селективными и трансляционно-инвариантными. Открытие этих особенностей в совокупности с концепцией локальных рецепторных полей легли в основу таких нейронных сетей, как NeoCognitron [2] и LeNet,
созданной Я. Лекуном [1]. Сверточная нейронная сеть представляет собой нейронную сеть прямого распространения, которой присущи следующие свойства:

86

 Глубокое обучение в алгоритмах восприятия беспилотных технологий

 при наличии двух слоев скрытых нейронов связи не осуществляются между
любыми нейронами из разных слоев. Нейронные связи остаются «локальными», что означает, что нейрон в слое выше принимает входные данные
только от нейронов слоя ниже него, расположенных в пределах области,
которую можно изобразить в виде квадрата, – рецептивного поля нейрона;
 вес локальных нейронных связей пространственно распределяется между всеми нейронами слоя. При таком подходе применяется трансляционная инвариантность визуальных данных, что значительно сокращает
количество параметров модели сверточной нейронной сети.
Описанные выше свойства можно рассматривать как неявные предварительные знания о зрении, в связи с чем сверточная нейронная сеть представляется
довольно мощной моделью для решения проблем компьютерного зрения. Все
это демонстрируется в нейросети AlexNet [3], которая в 2021 году стала победителем конкурса по классификации изображений от ImageNet. С тех пор темпы внедрения сверточных нейронных сетей в область компьютерного зрения
значительно ускорились, и сегодня многие современные алгоритмы основаны
именно на таких нейросетях. В связи с этим сверточные нейронные сети стали
ключевым элементом алгоритмов восприятия в беспилотных технологиях.

4.2. Обнаружение
Как правило, алгоритмы обнаружения объектов используют сгенерированные
вручную признаки для сбора соответствующей информации с изображений
и структурированный классификатор для работы с пространственными конструкциями. Однако такой подход не применим при работе с большим объемом данных и не позволяет справиться с бесконечными вариациями внешнего
вида и формы объектов. В своем исследовании Р. Гришик (R. Girschick) и др. [4]
применили подход «предложения и последующей классификации» (proposethen-classify) и доказали, что сверточные нейронные сети могут применяться
для повышения производительности алгоритмов обнаружения объектов. Созданные впоследствие алгоритмы (Fast R-CNN [5] и Faster R-CNN [6]) обладали
более высокой скоростью и точностью.
Алгоритм Faster R-CNN производит обнаружение объекта в два этапа, основанных на одной сверточной нейронной сети.
1. На первом этапе изображение подается на вход сверточной нейронной
сети, и в результате формируется предполагаемая область исследования:
поскольку объект может принимать различные положения и иметь множество возможных вариантов масштаба и соотношения сторон, необходим эффективный метод, который позволит сократить количество предлагаемых кандидатов и при этом обеспечить высокий процент запоминаемости. Для этой цели в алгоритме Faster R-CCN используется сеть региональных предложений (RPN – Region Proposal Network). RPN принимает
карту признаков в качестве входных данных и соединяет ее со скрытым
слоем 256-d (или 512-d), используя скользящее окно 3×3, а затем с двумя
полносвязными слоями: один для класса объекта, другой для его координат. Для обеспечения учета различных размеров объектов (128×128,

4.2. Обнаружение  87
256×256, 512×512) и соотношений сторон (1:1, 1:2, 2:1) в каждой точке рассматривается 3 × 3 = 9 комбинаций. Таким образом, в изображении размером 1000×600 может быть обнаружено (1000/16) × (600/16) × 9 ~ 20000
гипотетических объектов, и сверточная нейронная сеть обеспечивает достаточно точные вычисления. Затем с целью устранения избыточности
и сохранения около 2000 гипотетических объектов (рис. 4.1) применяется
подавление не-максимумов (non-maximal suppression).
4k координат

2k оценок

k якорных блоков

Слой reg

Слой cls

256-d
Промежуточный слой

Скользящее окно
Сверточная карта признаков

Рис. 4.1. RPN [6] (использовано с разрешения правообладателя)

2. На следующем этапе с учетом предположений относительно области
оценивается существование объекта и его класс, а затем – для обеспечения точности – происходит коррекция размера области, местоположения и соотношения сторон. На рис. 4.2 видно, что каждая предполагаемая область сначала проецируется на карту признаков фиксированного
размера в виде слоя подвыборки RoI (Region of Interest), а затем через
несколько полносвязных слоев появляется вектор признаков. В конце
концов, предположения о классе объекта и его расположении/размере
выносятся по двум отдельным ветвям.
Выходные данные:
Слой мягкого Рамочный
максимума ограничитель

Deep
ConvNet
Слой
подвыборки
ROI

FC

FC

FCs

ROI
проекция

Сверточная карта
признаков

Вектор
признаков
ROI

Для каждой ROI

Рис. 4.2. Алгоритм R-CNN (на основе материалов [5], использовано с разрешения
правообладателя)

88

 Глубокое обучение в алгоритмах восприятия беспилотных технологий

Также существует другая группа алгоритмов, которые не базируются на
предположениях. Среди них SSD (Single Shot Detector) [7], YOLO (You Only Look
Once) [8] и YOLO9000 [9]. В их основе лежит сквозная (end-to-end) сверточная
нейронная сеть, где этап вынесения предположений отсутствует. Например,
алгоритм SSD (рис. 4.3) использует для определения признаков объектов модель сети VGG-16 [10]. SSD обнаруживает объекты разных размеров, находящиеся в разных местах, путем наложения постепенно уменьшающихся сверточных слоев. Таким образом, за один этап SSD прогнозирует положение объекта
и принадлежность к тому или иному классу, пропуская этапы вынесения предложений и изменения размера изображения или карты признаков, тем самым
повышая производительность.

38

19

19

Conv4_3

Conv6
(FC6)

Conv7
(FC7)

19

19

300
38

3
512

1024

10

5

Conv8_2

Conv9_2

10

1024

Conv10_2
3

5

512

256

Pool 11
3

256

1 256

Подавление не-максимумов

SSD

300
Изображение

Conv: 3×3×(3×(Классы+4))
Классификатор: Conv: 3×3×(6×(Классы+4))

Обнаружений: 7308 на класс

Слой дополнительных признаков

V GG-16
через слой Pool5

72.1mAP
58FPS

Con v: 3×3×1024 Conv: 1×1×1024 Conv: 1×1×256 Conv: 1×1×128 Conv: 1×1×128
Conv: 3×3×512-s2 Conv: 3×3×256-s2 Conv: 3×3×256-s2 Средний пулинг: глобальный

Рис. 4.3. Сеть SSD (на основе материалов [7])

Большинство алгоритмов, не базирующихся на предположениях, способны осуществлять обнаружение объектов в режиме реального времени. Однако, как отмечается в [11], при условии сокращения количества выносимых
предположений Faster R-SNN также может работать в режиме реального времени с аналогичной точностью. Высокая производительность алгоритмов,
базирующихся на предположениях, таких как Faster R-CNN, была доказана
при работе с датасетом PASCAL VOC. Однако при применении этого алгоритма к датасету KITTI производительность снижается. Так происходит ввиду
того, что KITTI содержит большое количество данных об объектах разных
размеров, а также об объектах, подверженных частичному или значительному перекрытию. Для решения этой проблемы Ч. Цай (C. Cai) и др. [12] создали
мультимасштабную сеть CNN (MS CNN – Multi-scale CNN). Как представлено на рис. 4.4, такая сеть состоит из так называемого ствола, определяющего
признаки разных масштабов, и ветвей, предназначенных для обнаружения
объектов разных масштабов.

4.2. Обнаружение  89

H/8

det-32
512×h×w

det-8
512×h×w

det-conv
512×3×3

Входное изображение

H/3 2

W/8

W/32

c+b

c+b

det-64
512×h×w

3

MaxPool

det-16
512×h×w

W

conv6

MaxPool

conv5-3

conv5-2

conv5-1

∙∙∙

MaxPool

conv4-3

H

H/6 4
W/64

c+b

H/1 6
w/16

c+b

Рис. 4.4. MS CNN (на основе материалов [12])

Каждая ветвь состоит из следующих ключевых элементов (рис. 4.5):
1) слоя обратной свертки, увеличивающего разрешение карты объектов
для более точной локализации;
2) слоя подвыборки RoI с увеличенной областью для сбора контекстной информации, что позволяет повысить точность классификации объектов.
conv4-3-2x

H/4
7

Слои магистральных
каналов CNN

Обратная
свертка

ROI-пулинг

5
7

S12

S12

W/8
S12

W/4
S12

5

S12

Полносвязанный
слой

H/8

∙∙∙

Вероятность Ограничивающий
класса
прямоугольник

conv4-3

Рис. 4.5. Ветвь MS CNN (на основе материалов [12])

Благодаря такому подходу MS CNN обеспечивает более высокую производительность при работе с KITTI, чем Faster R-CNN, особенно при обнаружении
пешеходов и велосипедистов.
За последние несколько лет в алгоритмы обнаружения были внесены значительные улучшения. Среди них алгоритмы, основанные на точечном подходе,
которые позволяют избежать проблем с заранее заданными якорными рамками6 или областями исследования. Один из таких алгоритмов – полностью свер6

Якорные рамки (anchor box) – это набор предопределенных ограничивающих рамок
определенной высоты и ширины. Эти поля предназначены для определения масштаба и соотношения сторон определенных классов объектов, которые вы хотите обнаружить, и обычно выбираются на основе размеров объектов в ваших наборах данных
для обучения. – Прим. ред.

90

 Глубокое обучение в алгоритмах восприятия беспилотных технологий

точное одноэтапное обнаружение объектов (FCOS – Fully Convolutional One-Stage
Object Detection) [20]. Данный алгоритм использует полностью сверточную нейронную сеть, а обучение классификатора происходит в каждой пространственной точке на нескольких картах признаков (рис. 4.6).
Ввиду отсутствия якорных рамок FCOS может обнаруживать объекты разных размеров и с разным соотношением сторон. Помимо этого, такой подход
увеличивает процент запоминаемости, уравновешивая положительный/отрицательный баланс выборки. Полная сеть состоит из:
 магистральной сети, выделяющей признаки при увеличении пространственного охвата и уменьшении плотности;
 сети пирамиды признаков, которая объединяет информацию из нескольких слоев;
 общих головных частей (heads) между несколькими уровнями признаков, служащих для обнаружения объектов разных размеров.
Как и в других сетях обнаружения, головные части имеют ветви классификации и регрессии. Кроме того, в FCOS есть еще и ветвь центровки (centerness
branch), которая служит для блокировки результатов обнаружения низкого качества или результатов, выходящих за пределы центра. В результате FCOS обеспечивает высочайшую точность, задействуя меньший объем памяти.
Заголовок

Заголовок

Заголовок

Заголовок

Заголовок

Общие заголовки между уровнями
признаков

Основной ряд

Пирамида признаков

Классификация + центровка + регрессия

Рис. 4.6. FCOS (на основе материалов [20])

4.3. Семантическая сегментация
Неотъемлемой частью модуля восприятия является семантическая сегментация (или, в более широком смысле, парсинг сцены). Например, чтобы понять,
где находится полоса движения, камеры должны предоставлять БТС изображения, на которых отчетливо видно дорожное покрытие. Семантическая сегментация, хотя и изучалась очень давно, в значительной степени способствовала
внедрению глубокого обучения в область компьютерного зрения.
Основным направлением семантической сегментации на базе CNN является разработка полностью сверточных нейронных сетей (FCN – Fully Convolutional
Networks) [18]. Такие сети создаются исходя из предпосылки, что после удаления слоя мягкого максимума (softmax layer) и замены последнего полносвязан-

4.3. Семантическая сегментация  91
ного слоя сеткой 1×1 сверточные сети, предназначенные для классификации
изображений (такие как VGG-19), могут быть преобразованы в FCN. Такие сети
не только принимают в качестве входных данных изображения любого размера,
но также позволяют прикреплять метку объекта/категории к каждому пикселю.
При предсказании меток на уровне пикселей FCN полагается на обширное
рецептивное поле признаков высокого уровня. Как следствие, иногда возникают трудности с сегментацией небольших объектов, поскольку информация
о таких объектах может перекрываться другими пикселями в пределах того же
рецептивного поля. Как оказалось, многие локальные неоднозначности могут
быть разрешены путем рассмотрения других сопутствующих визуальных паттернов в одном и том же изображении. Так, мы можем сделать вывод о том, что
одной из ключевых проблем семантической сегментации является определение стратегии комбинирования информации глобального уровня с локальными признаками изображения.
Вдохновленные концепцией сети с пространственным пирамидальным
объединением слоев [19], Х. Чжао (H. Zhao) и др. [13] создали сеть с пирамидным
парсингом сцены (PSPNet – Pyramid Scene Parsing Network). На рис. 4.7 представлено строение такой сети. Ее основным элементом является модуль пространственного объединения слоев в пирамиду (pyramid pooling module), изображенный в центре. Алгоритм такой сети работает следующим образом:
1) на первом этапе с целью выделения карт признаков входное изображение проходит через обычную CNN (в PSPNet это остаточная сеть (residual
network));
2) затем карты признаков проходят через несколько пулинговых (объединяющих) слоев (pooling layers), вследствие чего пространственное разрешение уменьшается до 1×1, 2×2, 3×3, 6×6 (изменяемый параметр), что
позволяет собрать контекстную информацию в одно целое;
3) полученные в результате карты признаков представляют собой контекстное представление. Они проходят через сверточный слой 1×1, что
позволяет уменьшить размер вектора признаков и привести его в пропорциональное соответствие с рецептивным полем объекта;
4) на завершающем этапе карты признаков, являющиеся контекстными
представлениями, сжимаются до исходного размера изображения и объединяются с исходными картами признаков CNN. Также на последнем
слое свертки каждый пиксель маркируется.

(a) Входное
изображение

(b) Карта признаков

(c) Модуль пространственного
объединения слоев в пирамиду

Рис. 4.7. PSPNet (на основе материалов [13])

(d) Финальный прогноз

92



Глубокое обучение в алгоритмах восприятия беспилотных технологий

В PSPNet [13] реализовано несколько экспериментальных решений при создании сети:
 средний (Average Pool) или максимальный (Max Pooling) пулинг: эксперименты показали, что оптимальным решением является средний пулинг;
 модуль пространственного объединения в пирамиду с несколькими
уровнями является более оптимальным решением, чем глобальный пулинг (global only pooling);
 эффективным подходом является понижение размерности после пулинга (pooling);
 обучение с учетом дополнительных потерь способствует оптимизации
глубинной сети.
В совокупности с перечисленными выше улучшениями реализация модуля пространственного объединения слоев в пирамиду делает PSPNet одним из
лучших алгоритмов семантической сегментации. Данная сеть стала победителем конкурса ImageNet Scene Parsing Challenge 2016, а также показала один из
лучших результатов для датасетов PASCAL VOC 2012 и Cityscapes. На рис. 4.8
представлены примеры результатов работы с датасетом Cityscapes.

(a) Изображение

(b) Эталонные данные

(c) PSPNet

Рис. 4.8. Итоговые образцы PSPNet (на основе материалов [13])

4.4. Стереозрение и оптический поток  93

4.4. Стереозрение и оптический поток
В этом разделе мы рассмотрим методы глубокого обучения, применяемые для
задач стереозрения и оптического потока.

4.4.1. Стереозрение
Стереозрение и оптический поток позволяют решить проблему соответствия
двух входных изображений. Одним из простых и эффективных способов применения CNN для сопоставления изображений являются сиамские архитектуры (Siamese architecture), в числе которых Content-CNN, созданная В. Луо
(W. Luo) [14]. Content-CNN состоит из двух расположенных бок о бок ветвей
слоев сверток с одинаковыми весами: одна для входного левого изображения,
другая для правого изображения. Выходные данные двух ветвей объединяются
во внутреннем слое (inner-product layer) (рис. 4.9).

Набор п

ризнако
в право
го
изображ
ения

Correlatio
Корреляция

Набор

призна
к
изобра ов левого
жения

ConvNet

Общие параметры

Правое

изображ
ение

Левое и

зображе

ние

Рис. 4.9. Content-CNN (на основе материалов [14], использовано с разрешения правообладателя)

Оценка вектора расхождения в каждом пикселе формулируется как задача
классификации 128 или 256 возможных значений y ∈ Y. При подаче пары изображений с известным расхождением ygt сетевой параметр w определяется путем минимизации перекрестной энтропии:


min   P  y
w

i ,y ( i )

gt


( i )  log P  y( i ), w   ,


94
где:



Глубокое обучение в алгоритмах восприятия беспилотных технологий

Š i – индекс пикселя;
Š y(i) – расхождение в пикселе i;
Š P(ygt) – сглаженное распределение с центром в ygt (погрешность оценки
не равна 0);
Š P[y(i), w] – прогнозируемая вероятность расхождения в пикселе i.

Такой метод обеспечивает высокую (менее секунды) скорость и точность
работы с датасетом KITTI 2012. Также для обеспечения пространственной
плавности движения может применяться дополнительная постобработка. При
использовании локального оконного сглаживания, полуглобального сопоставления блоков и других методов погрешность оценки уменьшается примерно
на 50 %. Точное 2D-поле расхождений позволяет получить точную 3D-оценку
глубины, как представлено на рис. 4.10.

Рис. 4.10. Результаты стереозрения при работе с тестовым набором KITTI 2012
(на основе материалов [14])

4.4. Стереозрение и оптический поток  95

4.4.2. Оптический поток
Для применения глубокого обучения в сквозной модели (end-to-end model)
оптического потока требуется реализация выделения признаков объектов, локального сопоставления и глобальной оптимизации со сверточными слоями.
В сети FlowNet [15] все это реализуется посредством архитектуры кодировщика-декодера (encoder-decoder architecture) (рис. 4.11), которая сначала «сжимает», а затем «расширяет» сверточные слои.

Сверточная
сеть

Рис. 4.11. Архитектура кодировщика-декодера FlowNet (на основе материалов [15], использовано с разрешения правообладателя)

Существует два варианта сетевых структур (рис. 4.12).
1. FlowNetSimple: в этой структуре входные данные в виде двух изображений передаются через последовательность сверточных слоев. Несмотря
на простоту такого подхода, он требует выполнения большого объема
вычислений.
2. FlowNetCorr: в этой структуре признаки двух изображений выделяются
по отдельности, а затем происходит объединение карт признаков с корреляционным слоем, за которым следуют сверточные слои. Фактически
задача корреляционного слоя заключается в вычислении сверткимежду
признаками двух входных изображений.
«Сжимающая» часть архитектуры FlowNet не только сокращает объем вычислений, но также способствует пространственному слиянию контекстной информации. Но, с другой стороны, снижается выходное разрешение.
Во FlowNet данная проблема решается за счет выполнения «свертки вверх» (up
convolution) в слоях «расширяющей» части архитектуры. При этом используются как карты признаков предыдущего слоя, так и соответствующий по размеру слой «сжимающей» части архитектуры FlowNet (см. рис. 4.13).

96



Глубокое обучение в алгоритмах восприятия беспилотных технологий

Рис. 4.12. Два варианта сетевой архитектуры FlowNet (на основе материалов [15],
использовано с разрешения правообладателя)

*: Вне выборки

Рис. 4.13. «Свертка вверх» в FlowNet (на основе материалов [15], использовано
с разрешения правообладателя)

Результаты FlowNet при работе с KITTI со временем работы графического
процессора 0,15 с вполне конкурентоспособны. Также была разработана версия FlowNet 2.0 [16], позволяющая осуществлять более точные вычисления.
Еще один алгоритм для вычисления оптического потока, основанный на
CNN, – SpyNet. В данном алгоритме применяется подход «от грубого к точному» (coarse-to-fine approach), реализованный в виде пространственной пирамиды. На каждом уровне пирамиды одно изображение деформируется в соответствии с текущей оценкой потока, затем вычисляется обновление потока.
Затем процесс повторяется до получения оценки потока высокого разрешения. Считается, что при такой деформации «от грубого к точному» показатель
обновления потока на каждом уровне пирамиды остается небольшим, в связи
с чем высока вероятность попадания изображения в поле ядра свертки.

4.4. Стереозрение и оптический поток  97
С учетом всего вышесказанного мы можем говорить о наличии следующих
этапов и элементов:
 операции понижающей дискретизации (down-sampling) d;
 операции интерполяции (up-sampling) u;
 операции «оборачивания» w (I,V) изображения I с распределением потока V;
 наборе моделей CNN {G0,…, GK} для K уровней. Каждый GK имеет пять
сверточных слоев, вычисляет остаточный поток vk используя интерполированный поток предыдущего уровня Vk-1 и меняет размер изображений
( I k1 , I k2 ):
vk  GK ( I k1 , w( I k2 ,u( Vk 1 )),u( Vk 1 ))
vk  u( Vk 1 )  vk .
При обучении, ввиду зависимости vk между последовательными уровнями,
{G0,…, GK} также необходимо обучать последовательно, один за другим. На этапе выведения первыми идут изображения ( I 01 , I 02 ), прошедшие операцию понижающей дискретизации. На этом этапе начальная оценка потока равна 0.
Затем происходит последовательное вычисление элементов (V0,V1… ,VK)
(рис. 4.14). На каждом уровне входная пара изображений с измененным размером и двухканальный интерполированный поток складываются вместе
и формируют восьмиканальный вход для Gk.
u

+

u

+

V0

V1

V2
G2

w

G1

w

d
I

1
2

0

G0

d
I

I 10

1
1

d
I 22

v0

v1

v2

+

d
I 21

2

I0

Рис. 4.14. Пирамида SpyNet (на основе материалов [17], использовано с разрешения
правообладателя)

SpyNet обеспечивает самую высокую производительность при работе с датасетом KITTI. Также впечатляет небольшой размер модели данной нейросети,
благодаря которому она хорошо подходит для мобильных и встраиваемых сред.

4.4.3. Обучение без учителя для плотного
сопоставления изображений
Как и алгоритмы определения глубины с помощью стереозрения, алгоритмы
оптического потока обычно требуют образцово точного плотного сопоставления (dense correspondence) изображений для обучения. Однако процесс сбора таких данных довольно затратен и сложен. По этой причине в последние

98



Глубокое обучение в алгоритмах восприятия беспилотных технологий

годы для решения данной проблемы стал применяться подход обучения без
учителя. Также были представлены новые алгоритмы, способные обучаться
с помощью последовательных кадров видеоданных. В числе таких алгоритмов monoDepth [21] и его преемник monoDepth 2 [22]. Данные алгоритмы
фокусируются на моноглубине: основная идея заключается в том, что, имея
два изображения (левое и правое), можно определить функцию потерь, состоящую из трех частей:
 потери совпадения внешнего вида: предположим, что соответствующие пиксели двух изображений образуют визуально схожую картину;
 потери плавности расхождения: предположим, что параметры диспаратности локально сглажены и наблюдаются периодические скачки;
 потери соответствия расхождений левого и правого изображений:
предположим, что диспаратность левого и правого изображений соответствуют друг другу.
Все вышеперечисленные потери могут быть вычислены непосредственно из
изображений. Таким образом, отсутствие диспаратности обучающих данных
является обязательным условием.
Полная сеть состоит из двух частей: «кодировщика», где увеличивается
сдвиг, и «декодера», где увеличивается разрешение. Принимая во внимание
эти потери, последующие модули потерь вставляются в несколько ступеней
«декодера», а затем потери суммируются.
US

C ap Appearance Matching Loss
C ds Disparity Smoothness Loss
C lr Left–Right Disparity Consistency Lo ss

S

dr

S

C

Ir

d l( d r)

H ×W ×D

SC

UC

C

C

d r( d l)

dl

I

2H × 2W × 2D

l
US

Рис. 4.15. Модуль потерь моноглубины, на основе материалов [21]. Примечание:
C (Convolution): Свертка, UC (Up-Convolution): Свертка вверх, S (Bilinear Sampling): Билинейная выборка, US (Up-sampling): Интерполяция, SC (Skip Connection): Обходная связь

4.5. Заключение  99
Алгоритмы моноглубины обеспечивают более высокую производительность, чем их предшественники (рис. 4.16). Также существует возможность
повышения их производительности за счет увеличения размера обучающего
датасета.

Рис. 4.16. Алгоритм моноглубины в действии, на основе материалов [21]

4.5. Заключение
Глубокое обучение представляет собой мощную универсальную модель компьютерного зрения. На сегодняшний день в этой области наблюдается огромный прогресс, и, конечно же, такие алгоритмы нашли применение и в беспилотных технологиях. В этой главе мы рассмотрели подмножество возможных
алгоритмов глубокого обучения, по одному или два для каждой функции восприятия. В настоящее время существуют CNN, разработанные и обученные
в соответствии с конкретными целями. Такие однородные строительные блоки модуля восприятия могут привести к единой архитектуре модели, которая
способна выполнять несколько задач восприятия одновременно, не только
сокращая избыточные вычисления, но также улучшая общие показатели точности и надежности.

100



Глубокое обучение в алгоритмах восприятия беспилотных технологий

4.6. Справочные материалы
[1]
[2]
[3]
[4]

[5]
[6]
[7]

[8]

[9]
[10]
[11]
[12]

[13]
[14]
[15]

LeCun, Y., Bottou, L., Bengio, Y., and Haffner, P. 1998. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11),
p. 2278−2324. DOI: 10.1109/5.726791.
Fukushima, K. 1988. Neocognitron: A hierarchical neural network capable of visual pattern recognition. Neural Networks, 1(2), p. 119−130. DOI:
10.1016/0893- 6080(88)90014-7.
Krizhevsky, A., Sutskever, I., and Hinton, G. E. 2012. Imagenet classification
with deep convolutional neural networks. In Advances in Neural Information
Processing Systems (p. 1097−1105).
Girshick, R., Donahue, J., Darrell, T., and Malik, J. 2014. Rich feature hierarchies for accurate object detection and semantic segmentation. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition
(p. 580−587). DOI: 10.1109/ CVPR.2014.81.
Girshick, R. 2015. Fast r-cnn. In Proceedings of the IEEE International Conference on Computer Vision (p. 1440−1448). DOI: 10.1109/ICCV.2015.169.
Ren, S., He, K., Girshick, R., and Sun, J. 2015. Faster r-cnn: Toward real-time
object detection with region proposal networks. In Advances in Neural Information Processing Systems (p. 91−99).
Liu, W., Anguelov, D., Erhan, D., Szegedy, C., Reed, S., Fu, C. Y., and Berg, A. C.
2016, October. SSD: Single shot multibox detector. In European Conference
on Computer Vision (p. 21−37). Springer International Publishing. DOI:
10.1007/978-3-319-46448-0_2.
Redmon, J., Divvala, S., Girshick, R., and Farhadi, A. 2016. You only look once:
Unified, real-time object detection. In Proceedings of the IEEE Conference
on Computer Vision and Pattern Recognition (p. 779−788). DOI: 10.1109/
CVPR.2016.91.
Redmon, J. and Farhadi, A. 2016. YOLO9000: Better, Faster, Stronger. arXiv
preprint arXiv:1612.08242.
Simonyan, K. and Zisserman, A. 2014. Very Deep Convolutional Networks for
Large-Scale Image Recognition. arXiv preprint arXiv:1409.1556.
Huang, J., Rathod, V., Sun, C., Zhu, M., Korattikara, A., Fathi, A., Fischer, I., Wojna,
Z., Song, Y., Guadarrama, S., and Murphy, K. 2016. Speed/Accuracy Trade-offs for
Modern Convolutional Object Detectors. arXiv preprint arXiv:1611.10012.
Cai, Z., Fan, Q., Feris, R. S., and Vasconcelos, N. 2016, October. A unified multiscale deep convolutional neural network for fast object detection. In European Conference on Computer Vision (pp. 354−370). Springer International
Publishing. DOI: 10.1007/978-3- 319-46493-0_22.
Zhao, H., Shi, J., Qi, X., Wang, X., and Jia, J. 2016. Pyramid Scene Parsing Network. arXiv preprint arXiv:1612.01105.
Luo, W., Schwing, A. G., and Urtasun, R. 2016. Efficient deep learning for stereo
matching. In Proceedings of the IEEE Conference on Computer Vision and
Pattern Recognition (p. 5695−5703). DOI: 10.1109/CVPR.2016.614.
Fischer, P., Dosovitskiy, A., Ilg, E., Häusser, P., Hazırbaş, C., Golkov, V., van der
Smagt, P., Cremers, D., and Brox, T. 2015. Flownet: Learning Optical Flow with
Convolutional Networks. arXiv preprint arXiv:1504.06852.

4.6. Справочные материалы  101
[16]
[17]
[18]

[19]

[20]
[21]

[22]

Ilg, E., Mayer, N., Saikia, T., Keuper, M., Dosovitskiy, A., and Brox, T. 2016.
Flownet 2.0: Evolution of Optical Flow Estimation with Deep Networks. arXiv
preprint arXiv:1612.01925.
Ranjan, A. and Black, M. J. 2016. Optical Flow Estimation using a Spatial Pyramid Network. arXiv preprint arXiv:1611.00850.
Long, J., Shelhamer, E., and Darrell, T. 2015. Fully convolutional networks
for semantic segmentation. In Proceedings of the IEEE Conference on
Computer Vision and Pattern Recognition (p. 3431−3440). DOI: 10.1109/
CVPR.2015.7298965.
He, K., Zhang, X., Ren, S., and Sun, J. 2014, September. Spatial pyramid pooling in deep convolutional networks for visual recognition. In European Conference on Computer Vision (p. 346-361). Springer International Publishing.
DOI: 10.1007/978-3-319-10578- 9_23.
Tian, Z., Shen, C., Chen, H., and He, T. 2019. FCOS: Fully convolutional onestage object detection. In ICCV 2019.
Godard, C., Aodha, O. M., and Brostow, G. J. 2017. Unsupervised Monocular
Depth Estimation with Left-Right Consistency. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Honolulu, HI, p. 6602–6611. DOI:
10.1109/CVPR.2017.699.
Godard, C., Mac Aodha, O., Firman, M., and Brostow, G. J. 2019. Digging into
self-supervised monocular depth estimation. In Proceedings of the IEEE International Conference on Computer Vision, 2019, p. 3828–3838. DOI: 10.1109/
ICCV.2019.00393.

Глава

5
Прогнозирование
и маршрутизация

Аннотация
В этой главе мы рассмотрим модули прогнозирования и маршрутизации, уделяя особое внимание аспектам их интеграции в инфраструктуру
планирования и управления беспилотных технологий. Модуль прогнозирования отвечает за осуществление прогнозов поведения окружающих
объектов, идентифицированных модулем восприятия. Он осуществляет прогноз их траектории, а затем подает эту информацию в модули
планирования и управления. Модуль маршрутизации отвечает за маршрутизацию на уровне полос движения, основанную на сегментации полос
на HD-картах. Данный модуль указывает беспилотному автомобилю
путь до пункта назначения в виде последовательности полос на HDкарте. Выходные данные этого модуля отправляются в последующие
модули планирования и управления.

5.1. Планирование и управление. Общие сведения
В этом подразделе мы представим общий обзор архитектуры модулей планирования и управления, а также их подмодулей.

5.1.1. Архитектура: планирование
и управление в широком смысле
Как представлено на рис. 5.1, модуль Карт и локализации осуществляет сбор
необработанных данных, таких как облако точек и данные GPS. Затем он преобразует их в информацию о местонахождении БА. Модуль Восприятия отвечает за обнаружение объектов в непосредственной близости от БА. Оба этих
модуля ориентированы на восприятие объективного мира, тогда как другие
модули, такие как модуль маршрутизации, прогнозирования движения, принятия поведенческих решений, планирования движения и управления на основе
обратной связи, ориентированы на субъективный аспект: они отвечают за то,
как БА прогнозирует поведение внешней среды, а также его дальнейшее передвижение в пространстве.

5.1. Планирование и управление. Общие сведения  103
Все модули на рис. 5.1 используют общий центральный генератор тактовых
импульсов. В тактовом цикле (также называемом фреймом) каждый модуль
независимо извлекает самые последние опубликованные данные из вышестоящих модулей, после чего выполняет свои вычисления и затем публикует результат для использования последующими модулями.

Данные
сенсоров
Радар

Модули
сенсорного
сканирования
Восприятие

Камера
Карта и
локализация

Модули планирования и управления
Узкая концепция планирования и управления:
Широкая концепция планирования и управления:

Обнаруженные
препятствия

Маршруты

Прогнозирование
движения

Маршрутизация

Принятие
поведенческих
решений
Прогнозируемые
траектории
Маршруты

Решения
Планирование
движения
Траектория
Управление на
основе обратной
связи

Управляющий
сигнал

CAN-шина

Рис. 5.1. Модули планирования и управления в узких и широких концепциях

Такая система модулей сложна и включает в себя как аппаратное, так и программное обеспечение. Программное обеспечение в беспилотных транспортных системах напрямую зависит от взаимодействия различных модулей,
в числе которых модуль вычислительного аппаратного обеспечения, интеграции датчиков, восприятия, прогнозирования движения, а также модули планирования и управления, обеспечивающие безопасность и надежность системы.
Взаимодействие всех этих модулей, особенно модуля восприятия и модулей
планирования и управления, имеет решающее значение.
Успешного взаимодействия между этими модулями можно достичь, эффективно минимизируя диапазон решаемых задач и масштаб проблем, для
решения которых предназначены модули. В следующем подразделе мы рассмотрим работу функциональных модулей с точки зрения принципа «разделяй и властвуй» (divide-and-conquer), следуя естественному потоку данных
и постепенной конкретизации проблемы. В соответствии с таким подходом
модули прогнозирования и маршрутизации относятся к более широкой категории планирования и управления, выступая в качестве модулей зависимости данных, которые мы подробно рассмотрим позже в этой главе. В главе 6
мы рассмотрим традиционные модули планирования и управления, отвечающие за принятие поведенческих решений (Decision), планирование движения
(Planning) и управление на основе обратной связи (Control).
Несмотря на то что методы, описанные в этой и следующей главах, широко используются при создании беспилотных транспортных систем, благодаря развитию технологий искусственного интеллекта все более популярным
(и необходимым) подходом становится применение сквозных обучающихся систем. В главе 7 мы рассмотрим их более подробно. В этой главе мы
представляем последовательное и полное рабочее решение, охватывающее
многие аспекты, в числе которых использование различных гетерогенных

104

 Прогнозирование и маршрутизация

входных данных датчиков и карт (иными словами, объективная оценка
окружающего мира беспилотным транспортным средством) для расчета
фактических действий по управлению транспортным средством, а также все
промежуточные решения.

5.1.2. Область ответственности каждого модуля:
какие задачи решают модули
В этом подразделе мы поочередно рассмотрим функции модулей, представленных на рис. 5.1. Модуль маршрутизации отвечает за команды навигации
верхнего уровня. Маршрутизацию можно понимать как перемещение от исходной позиции к конечной путем явного следования по серии полос. Однако,
несмотря на то что все это напоминает функцию, выполняемую традиционными навигационными картографическими сервисами, такими как Google Maps,
модуль маршрутизации в БА обычно содержит больше деталей и напрямую
зависит от HD-карт, созданных специально для беспилотной системы. Таким
образом, такой модуль по своей сложности значительно отличается от традиционных навигационных картографических систем.
Следующим модулем является модуль прогнозирования движения (или
просто модуль прогнозирования). Входные данные этого модуля представляют
собой информацию о воспринимаемых объектах вместе с их «объективными»
атрибутами, такими как положение, скорость и класс (например, транспортное
средство, велосипедист или пешеход). Затем модуль прогнозирования вычисляет траектории каждого объекта и передает эту информацию модулю принятия поведенческих решений.
Прогнозируемая траектория включает как пространственную, так и временную информацию, которая затем будет использоваться последующими
модулями. В ранних работах [1] функция прогнозирования была реализована
как периферийная программная библиотека либо в модуле восприятия для
уточнения его выходных данных, либо в модулях принятия решений/планирования для предварительной обработки входных данных об обнаруженных
объектах. Преимущество реализации прогнозирования в виде программной
библиотеки состоит в том, что программным библиотекам не требуется периодически получать данные из восходящего потока и публиковать данные
в нисходящем, а также они не имеют состояний или памяти. Программные библиотеки предоставляют API-интерфейсы (application programming interface –
программный интерфейс приложения). Они осуществляют вызов функций, а затем предоставляют результаты вычислений. Следовательно, использование
программных библиотек представляет собой более простой подход с точки
зрения логики вычислений. С другой стороны, модуль в беспилотной системе
должен получать результаты восходящего потока и публиковать результаты
своих вычислений периодически, по фрейму. Чтобы повысить точность вычислений, модули должны поддерживать состояния, которые являются памятью о предыдущих фреймах.
С развитием беспилотных технологий и получением БА возможности эффективно функционировать на реальных дорогах все больше внимания стало уделяться вопросам прогнозирования движения. Стоит отметить, что

5.1. Планирование и управление. Общие сведения  105
в большинстве современных беспилотных систем модуль прогнозирования
реализован как функциональный модуль, а не как программная библиотека
[4, 5, 6, 7]. В этой главе мы рассмотрим применение современного основанного
на машинном обучении подхода для формулировки и решения задач прогнозирования движения.
Модуль, расположенный непосредственно после модуля прогнозирования
движения, – модуль принятия поведенческих решений, который служит «вторым пилотом» в беспилотных системах. Он принимает входные данные как от
модулей прогнозирования движения, так и от модулей маршрутизации. На основе полученных входных данных модуль принятия поведенческих решений
генерирует команды, которые определяют дальнейшее управление транспортным средством. Возможные команды: следовать за автомобилем, едущим
впереди по текущей полосе; остановиться за стоп-линией у светофора и ждать,
пока пешеход перейдет по переходу; уступить дорогу проезжающему транспортному средству в соответствии со знаком остановки.
Модуль поведенческих решений определяет поведение самого БА и осуществляет поведенческую оценку любого обнаруженного или отображаемого
на карте объекта. Приведем более конкретный пример. Предположим, что на
текущей полосе движения БА обнаружил другое транспортное средство. В таком случае модуль маршрутизации даст БА команду оставаться на текущей
полосе. По решению самого БА (синтетическое решение) он может оставаться в полосе движения. Также обнаруженное впереди транспортное средство
может принять решение о следовании за другим транспортным средством
впереди (индивидуальное решение). Поведенческое решение для каждого индивидуально воспринимаемого препятствия преобразовывается в ограничения
оптимизации и затраты при планировании движения.
Поведенческое решение БА синтезируется из индивидуальных поведенческих решений и поэтому называется синтетическим. Синтетическое решение
необходимо для определения условий движения в конечном состоянии при
планировании движения. Детали набора выходных команд модуля поведенческих решений могут отличаться в зависимости от реализации. В современных
БА алгоритмы принятия поведенческих решений реализуются в качестве отдельного модуля. Однако в некоторых БА алгоритмы принятия поведенческих
решений и их роль интегрируются в последующие модули, например в модуль
планирования движения [1, 2, 3].
Как уже упоминалось, совместная работа модулей является важным условием эффективного функционирования БА. Следовательно, логика вышестоящего модуля принятия решений о поведении должна быть согласована с логикой последующего модуля планирования движения. Это означает, что модуль
планирования движения должен точно учитывать поведенческие решения
(информацию о которых он получает из выходных данных модуля принятия
поведенческих решений) и точно интегрировать их при составлении траекторных планов для БА. Несмотря на то что набор команд поведенческих решений
предназначен для охвата как можно большего числа сценариев поведения других транспортных средств, он не обязательно является полным. Разумеется,
существуют и некоторые неопределенные сценарии, при возникновении которых даже водители-люди не смогут принять однозначное решение (скорее

106

 Прогнозирование и маршрутизация

всего, у них просто возникнет смутное ощущение необходимости предотвращения столкновения). Явный набор команд поведенческого решения полезен
для диагностики и отладки, но на самом деле важнее то, как эти поведенческие
решения преобразуются в определенные ограничения или затраты планирования движения. В худшем или самом странном сценарии, когда невозможно
принять разумное индивидуальное решение, решением по умолчанию должна
быть передача информации о неявных затратах на предотвращение столкновения модулю планирования движения.
Модуль планирования движения предоставляет запланированный путь или
траекторию для перемещения из точки A в точку B. Задача оптимизации заключается в поиске локального пути из точки A в точку B, где точка A обычно
является текущим местоположением. Точка B может быть любой точкой в целевой локальной области, например любой точкой, которая находится на последовательности целевых полос. При планировании движения выходные данные
модуля поведенческих решений рассматриваются системой как ограничения,
а выходные данные модуля маршрутизации – как цели.
По сравнению с модулем принятия поведенческих решений задача, решаемая модулем планирования движения, более конкретна. Она состоит в вычислении траектории вместе с точками траектории, которые несут в себе информацию о местоположении, курсе движения, скорости, ускорении, кривизне
движения и даже производных высшего порядка этих атрибутов. Поскольку
мы подчеркиваем важность взаимодействия между описываемыми модулями,
модуль планирования движения должен обеспечивать соблюдение двух важных правил. Во-первых, запланированная траектория должна быть согласована с последовательными циклами планирования, гарантируя, что траектории
двух последовательных циклов не изменятся кардинально под влиянием незначительного изменения внешних факторов. Во-вторых, модуль планирования движения должен гарантировать, что БА следует запланированной траектории в соответствии с модулем управления на основе обратной связи. Данный
модуль следит за тем, чтобы такие атрибуты, как кривизна траектории или ее
производная были непрерывными и достаточно плавными, что позволяет избежать выхода за пределы физических ограничений.
Обратите внимание, что на рис. 5.1 данные обзора местности и локализации, а также результаты восприятия подаются непосредственно в модули планирования движения и принятия поведенческих решений. Несмотря на то что
такой подход может показаться избыточным, он представляется более безопасным, поскольку создает резервную копию данных прогнозирования движения. Также во время обработки прогноза движения могут обнаруживаться
новые препятствия. В обоих случаях при сбое прогнозирования или обнаружении вновь возникших препятствий избыточная информация о восприятии, наряду с легкодоступной вспомогательной библиотекой данных обзора
местности и локализации, обеспечит гарантию, что модули поведенческого
решения и планирования движения будут иметь по крайней мере базовую
информацию об объекте, что позволит им предпринять необходимые шаги
и предотвратить столкновение.
Модуль управления на основе обратной связи расположен на серверной
стороне. Он напрямую связывается с системой управления транспортным

5.2. Прогнозирование движения  107
средством через локальную сеть контроллеров (CAN – Controller Area Network).
Основная задача данного модуля состоит в том, чтобы с учетом точек запланированной траектории вычислять фактические электрические сигналы для приведения в действие тормозов, рулевого колеса и газа. Основным
требованием к таким вычислениям является соответствие фактической траектории транспортного средства и запланированной траектории. При этом
система должна принимать во внимание физические модели транспортного
средства и дороги.
В рамках общей концепции планирования и управления в беспилотных системах описанные выше модули являются основными. Философия такого разделения [1, 2] состоит в эффективном и разумном разложении сложной задачи
планирования и управления на ряд подзадач. Когда каждый модуль ориентирован на решение одной проблемы, сложность разработки программного обеспечения значительно снижается за счет модульности и организации параллельного выполнения функций. Следовательно, эффективность исследований
и разработок значительно возрастает. Такой подход является отличительной
чертой предлагаемого нами решения. Фактически модули принятия поведенческих решений, планирования движения и управления на основе обратной
связи решают одну и ту же проблему на разных уровнях. Ввиду их положения
в потоке данных результаты их вычислений зависят друг от друга. Важным моментом при реализации таких модулей является обеспечение последовательности и согласованности вычислений. Общее практическое правило звучит
следующим образом: при возникновении конфликта лучше подтолкнуть вышестоящий модуль на разрешение конфликта, чем заставлять нижестоящий
модуль адаптироваться.
В следующих разделах мы более подробно опишем модули от восходящего
к нисходящему (слева направо на рис. 5.1). Здесь вместо рассмотрения всех
возможных решений мы также сделаем упор на определение проблемы и ее
формулировку в соответствии с конкретными сценариями для каждого модуля. Иными словами, мы представим одно или два практически реализуемых
решения.
С помощью такого уникального подхода мы стремимся создать целостную
картину, отражающую комплексное решение общей проблемы планирования
и управления в беспилотных транспортных системах.

5.2. Прогнозирование движения
Находясь на пути прямого восходящего потока после модулей планирования и управления, модуль прогнозирования движения (Prediction) нацелен
на предсказание поведения обнаруженных объектов. Он вычисляет детали прогноза (пространственно-временные точки траектории) и передает
их нижестоящим модулям. Как правило, обнаруженные алгоритмами восприятия препятствия имеют такие атрибуты, как положение, скорость, курс
движения, ускорение и т. д. На основе сочетания этих атрибутов и простых
физических правил система осуществляет своевременный прогноз. Однако
цель модуля прогнозирования состоит не столько в немедленном осуществлении прогноза на основе физических атрибутов, сколько в осуществле-

108



Прогнозирование и маршрутизация

нии поведенческих прогнозов. При таком типе прогнозирования должны
учитываться многие факторы, такие как предыдущие зафиксированные
данные о поведении объекта, соседние сценарии и особенности местности.
К примеру, на рис. 5.2 представлена транспортная развязка. В таких условиях модулю прогнозирования движения необходимо определить, поедет ли
другое транспортное средство прямо через перекресток или повернет направо, а также будет ли пешеход, стоящий на обочине, переходить по перекрестку или же останется на месте. Такие поведенческие прогнозы могут
быть сформулированы в виде задач классификации и решены посредством
применения методов машинного обучения [8, 9, 10]. Но простого поведенческого прогнозирования недостаточно, поскольку фактические результаты
прогнозирования движения должны представлять собой определенные траектории, состоящие из точек, отмеченных информацией о времени, скорости и направлении. Таким образом, мы формулируем проблему прогнозирования движения в виде двух подзадач:
 задачи классификации категориального поведения дорожного объекта:
например, перестроится ли соседнее транспортное средство на другую
полосу движения или останется на текущей, будет ли пешеход переходить по перекрестку и т. д.;
 задачи регрессии для прогнозирования пути с информацией о скорости и времени: например, при переходе перекрестка скорость пешехода меняется лишь незначительно, а когда, например, транспортное
средство делает поворот, оно обычно сначала замедляется, а затем
ускоряется, и степень изменения скорости зависит от длины и радиуса
поворота.

t+1
t+3

t+4

t+2
t–2

t–1

t
t+3

t+4

Рис. 5.2. Прогнозирование движения объектов на дороге

5.2. Прогнозирование движения  109

5.2.1. Поведенческое прогнозирование с точки зрения
классификации объектов
Прогнозирование поведения объекта на дороге обычно зависит от класса этого
объекта. Например, если поведение транспортного средства ограничивается
лишь сохранением/сменой полосы движения или поворотами, то диапазон вариантов поведения велосипедистов и пешеходов значительно шире. Учитывая
такие различия, модель, основанная на машинном обучении, должна адаптироваться под каждый класс объектов. В этом подразделе мы сосредоточимся
на прогнозировании более предсказуемого (в сравнении с поведением пешеходов и велосипедистов) поведения транспортных средств.
На самом деле прогнозирование поведения транспортных средств также
является далеко не тривиальной задачей. На первый взгляд, можно решить ее
путем построения классификационной модели на основе трех простых сценариев: транспортное средство остается на текущей полосе, меняет полосу
движения или осуществляет простой поворот. Однако, как показывает опыт,
зачастую возникают проблемы с адаптивностью данного подхода, так как в реальном мире возникают более сложные сценарии: например, полос для поворота может быть несколько (направо и налево), а перекрестки не всегда являются
четырехсторонними. Кроме того, существуют сценарии, при которых текущая
полоса естественным образом превращается в поворот и других вариантов движения, не нарушающих правила, просто нет. Таким образом, мы не можем выбирать категории поведения, основываясь на особенностях местности или сценариях, поскольку тогда категории классификации (в задачах классификации
именуемые метками) будут чрезвычайно сложными и неадаптивными.
Для того чтобы разделить классификационные метки и сценарии местности, мы предлагаем новый подход к определению задачи классификации поведения. Основной тезис данного подхода звучит как «будет ли транспортное
средство следовать конечному набору последовательности полос движения
с учетом текущей информации и информации о поведении объектов в прошлом». Так или иначе, такой подход всегда будет зависеть от сегментации
и отображения полос, что представляется довольно разумным, поскольку
транспортные средства по мере их движения, как правило, следуют по полосам на карте. В любой момент транспортное средство может изменить путь
движения, и в таком случае оно будет следовать уже другой серии (последовательности) полос. Итак, согласно рис. 5.3, транспортное средство находится
на Полосе 1 в текущий момент времени t (левая часть рисунка). В таком случае
существуют три возможных варианта последовательности полос, которые будут соответствовать правилам дорожного движения. Таким образом, возникает три возможные траектории, определяемые разными вариантами поведения
транспортного средства.
1. Траектория 1: Полоса 1, Полоса 2, Полоса 3 (поворот направо на перекрестке).
2. Траектория 2: Полоса 1, Полоса 6, Полоса 8 (движение прямо на перекрестке).
3. Траектория 3: Полоса 1, Полоса 4, Полоса 5, Полоса 7 (перемещение на параллельную полосу движения, а затем движение прямо на перекрестке).

110

 Прогнозирование и маршрутизация

3

2
t

1

t +w
Траектория 1

Lane 1, Lane 2, Lane 3

Траектория 2

Lane 1, Lane 6, Lane 8

Траектория 3

Lane 1, Lane 4, Lane 5,
Lane 7

Lane – полоса движения
Рис. 5.3. Формулировка проблемы поведенческого прогнозирования движения как задачи
двоичной классификации в отношении последовательностей полос движения

Предположим, что в момент времени t + w транспортное средство (объект)
находится на Полосе 8 (в соответствии с Траекторией 2: Полоса 1, Полоса 6
и Полоса 8). В таком случае Траектория 2 получает положительную маркировку, а две другие (Траектории 1 и 3) – отрицательную. Инновационный подход,
основывающийся на «классификации относительно выбора определенной
последовательности полос», позволяет прогнозировать траектории и присваивать им положительную или отрицательную маркировку путем воспроизведения данных (которые обычно записаны в формате rosbag). Также может
возникнуть вопрос: если в момент времени t + w транспортное средство находится на пересечении Полос 2 и 6, какими будут метки Траекторий 2 и 3?
При подобных обстоятельствах, ввиду нехватки информации для определения
дальнейшего пути транспортного средства (будет ли оно двигаться прямо или
повернет направо), обеим траекториям может быть присвоена положительная
метка. Скорее всего, выходными данными модуля прогнозирования будут два
варианта траектории.
Исходя из всего вышесказанного, мы можем сформулировать проблему поведенческого прогнозирования как задачу двоичной классификации: «Будет
ли транспортное средство двигаться по определенной полосе движения». Затем на основе этого тезиса мы можем построить унифицированную модель
машинного обучения (модель бинарной классификации). Единственная зависимость, на которую мы полагаемся, – это выделение и сегментация полос
движения. Такая зависимость неизбежна, поскольку в большинстве случаев
транспортное средство следует именно по полосам, и впоследствии на их основе прогнозируется траектория.

5.2. Прогнозирование движения  111
Здесь мы предполагаем, что транспортные средства движутся по определенной логической или структурной последовательности полос. На первый взгляд
это предположение может показаться довольно ограничивающим. Но очень
важно, чтобы подход на основе машинного обучения начинался с изучения
определенных структурированных «разумных» моделей поведения, а не строился на обучении в условиях без ограничений. Кроме того, поскольку мы применяем подход на основе обучения, объем данных, которые мы могли бы накопить, накладывает ограничение на сложность модели обучения, которую мы
можем выбрать. Именно поэтому при прогнозировании движения в беспилотных системах важным аспектом является изучение и понимание логики прогнозирования, а также правил дорожного движения. Разумеется, в реальности
имеет место поведение, отклоняющееся от этих правил (например, следование
логически не связанным полосам движения). Однако при наличии эффективной модели, учитывающей правила дорожного движения, а также достаточного объема данных для обучения мы сможем оптимизировать модель обучения, включив в нее примеры поведения, отклоняющиеся от правил. Например,
можно снять ограничение на последовательность полос, но наложить ограничения только на начальную и конечную полосы. В большинстве случаев построение модели прогнозирования движения на основе последовательности
полос движения является эффективным подходом.

Конструирование признаков для прогнозирования поведения
транспортных средств
Как обсуждалось ранее, маркировка задачи классификации на основе последовательности полос, конструирование признаков, а также применение знаний предметной области при извлечении признаков из необработанных данных являются
важными аспектами создания рабочего классификатора машинного обучения.
В соответствии с проблемой прогнозирования поведения транспортного средства мы можем рассмотреть три категории возможных признаков (см. рис. 5.4).
1. Ранее зафиксированные признаки транспортного средства: предположим, что мы имеем окно зафиксированных ранее данных, состоящее из w фреймов. В каждом фрейме транспортное средство, относительно которого должен быть осуществлен прогноз, представлено его
абсолютным положением, а также его относительным положением по
отношению к полосе движения. Такая категория признаков позволяет
отображать предыдущие зафиксированные данные о движении транспортного средства по текущей полосе или даже по полосам, по которым
транспортное средство двигалось ранее.
2. Признаки последовательности полос: обратите внимание, что расширенная последовательность полос – это экземпляр, который подлежит
классификации по признаку «будет занят» или «не будет занят» транспортным средством. Таким образом, необходимо осуществить выборку
некоторых точек из указанной последовательности полос. Для каждой
выбранной «точки полосы движения» могут быть вычислены атрибуты,
которые представляют собой расширенную форму последовательности
полос. Например, признаками последовательности полос будут являться
направление движения, кривизна и расстояние до границы каждой точ-

112

 Прогнозирование и маршрутизация

ки полосы движения относительно полосы, к которой она принадлежит.
Такая категория признаков представляет форму обозначенной последовательности полос движения.
3. Признаки окружающих объектов: данная категория включает в себя
все признаки объектов, окружающих автомобиль, поведение которых
необходимо определить. Признаки этой категории труднее поддаются
вычислению, что обусловлено тем, что иногда поведение объекта зависит не только от формы полосы движения или предыдущего зафиксированного положения транспортного средства, но и от окружающих
его объектов. Например, если мы возьмем левую и правую смежные/параллельные полосы, мы можем осуществить проекцию целевого транспортного средства на левую и правую смежные полосы. Затем мы можем
вычислить расстояние между ними.
На рис. 5.4 в деталях представлен вариант вектора признаков. С концептуальной точки зрения, если транспортное средство приближается к правой границе полосы движения, а курс его движения также постепенно отклоняется
вправо, весьма вероятно, что, при условии отсутствия препятствий в качестве
целевой будет выбрана последовательность полос движения, предполагающая
поворот направо, а не последовательность, предполагающая движение прямо.

Выбор модели для прогнозирования поведения транспортных средств
Несмотря на то что упомянутые выше признаки несут в себе большую часть
информации о транспортном средстве и его окружении, они формируют скорее
предположение о возможном наборе признаков, основанное на опыте, нежели чем полноценный набор признаков. Следовательно, такие признаки могут
быть адаптированы к конкретным моделям машинного обучения. Существует
два типа моделей для прогнозирования поведения транспортных средств.
1. Модели с отсутствием памяти: к этому типу относятся такие модели,
как SVM [11] или DNN [12]. Такие модели не имеют памяти, поскольку
после обучения модель не изменяется. Кроме того, выходные данные таких моделей не зависят от предыдущих экземпляров входных данных.
Для сбора зафиксированной ранее информации она должна быть явно
закодирована в признаках. Например, мы можем взять несколько фреймов, содержащих предыдущие зафиксированные данные о транспортном средстве, извлечь признаки из каждого фрейма, а затем использовать эти признаки для прогнозирования и обучения. Набор признаков,
представленный на рис. 5.4, учитывает предыдущую зафиксированную
информацию о транспортном средстве.
2. Модели с памятью: к этому типу относятся такие модели, как модели
долгой краткосрочной памяти (LSTM – Long Short-Term Memory) со структурами рекуррентных нейронных сетей (RNN – Recursive Neural Networks)
[13, 14]. Такие модели обладают памятью, поскольку в них выходные
данные зависят от входных. Однако обучать такие модели гораздо сложнее. В таких моделях, как RNN, входными данными могут быть текущие
данные фрейма, такие как текущие признаки транспортного средства
и окружающих объектов. Модель «запоминает» предыдущие входные
данные и параметры модели, что влияет на текущие выходные данные.

5.2. Прогнозирование движения  113
Выбор модели зависит от конкретных сценариев. При не слишком сложных
особенностях местности и окружающей среды можно использовать модели с отсутствием памяти. В более сложных условиях для обеспечения полной обработки ранее зафиксированных данных лучше подойдут модели с памятью, такие
как RNN. Что касается инженерной стороны реализации, модели с памятью легче реализовать онлайн, поскольку в качестве входных данных они принимают
только текущую информацию, а сама модель «запоминает» ранее зафиксированные данные. Модели с отсутствием памяти реализовать онлайн, как правило,
сложнее. Причина этому в том, что зафиксированная ранее информация должна
вводиться в модель в качестве признаков, а онлайн-система должна хранить эту
информацию для дальнейшего извлечения признаков. В идеале временное окно
«w» должно быть самым продолжительным промежутком времени, в течение
которого может осуществляться ожидание для модуля восприятия и последующего отслеживания объекта. Как правило, для «w» может быть задана фиксированная длина, например 5 с. Прогнозируемая траектория должна соответствовать либо минимальному расстоянию, либо минимальному времени. Если мы
зададим «окну памяти» значение 5 с, прогнозируемая траектория будет достигать 5 с. Надежнее установить меньшее значение окна, например 3 с. Обратите
внимание, что обсуждение теоретического предела объема зафиксированных
ранее данных, необходимых для точного прогнозирования будущего поведения, выходит за рамки этой книги. Важными показателями поведенческого прогнозирования являются точность (precision) и отзывчивость (recall). Показатель
точности определяет какое количество прогнозируемых траекторий будет фактически пройдено транспортным средством (объектом). Показатель отзывчивости определяет количество спрогнозированных реальных поведенческих траекторий. Поскольку модуль прогнозирования движения выводит прогнозируемые
траектории в каждом фрейме, две вышеописанные метрики вычисляются путем агрегирования прогнозируемыхтраекторий во всех фреймах.

5.2.2. Генерация траектории транспортного средства
После прогнозирования поведения транспортного средства модуль должен
сгенерировать фактическую пространственно-временную траекторию, основанную на прогнозируемой последовательности полос движения. Одно из
возможных решений генерации траекторий основывается на физических правилах и определенных предположениях. Для отслеживания координат транспортного средства на основе карты полос движения мы предлагаем применять фильтр Калмана. Такой подход строится на предположении о том, что
транспортное средство будет постепенно следовать по центральной линии
(или так называемой опорной линии) полос движения. Мы предлагаем применять фильтр Калмана для отслеживания координат (s, l) точек прогнозируемой
траектории транспортного средства. Говоря простым языком, s представляет
собой расстояние вдоль центральной опорной линии полосы движения (продольное расстояние), а l является поперечным расстоянием, которое перпендикулярно s в любой точке. В главе 6 при рассмотрении модуля планирования
движения мы подробно поговорим о системах координат карт на основе полос движения. Матрица преобразования движения фильтра Калмана выглядит
следующим образом:

114

 Прогнозирование и маршрутизация
st
lt

1
1

A

st
lt

B

t
, где A
0

1

0

0

t

иB

vs
0

0
.
0

Фильтр Калмана может применяться для каждой прогнозируемой последовательности, что позволит отслеживать прогнозируемую траекторию для
каждой конкретной последовательности полос. В матрице перехода состояний
A скорость приближения прогнозируемой траектории к центральной опорной
линии определяется параметром βt. В каждом цикле прогнозирования βt можно регулировать при обновлении измерений фильтра Калмана, и поэтому на
скорость, с которой транспортное средство приближается к центральной линии, будут влиять зафиксированные ранее измерения. После того как βt задан,
мы можем выполнить шаг прогнозирования фильтра Калмана для определенного количества шагов и сгенерировать точку для каждого будущего фрейма
прогнозируемой траектории.
В дополнение к упомянутому выше методу, основанному на правилах, при
генерации траектории возможны решения, основанные на машинном обучении. Преимущество таких решений состоит в том, что здесь могут использоваться зафиксированные ранее фактические траектории, благодаря чему
модель будет стремиться генерировать траекторию, похожую на них, нежели чем опираться на правила. При таком сценарии в машинном обучении
уместно применение регрессионных моделей. Иными словами, мы можем
ввести зафиксированную ранее информацию в качестве входных признаков,
а затем попытаться построить модели, отражающие фактические пути транспортных средств. Мы считаем, что смоделировать реальную траекторию гораздо сложнее, притом что она менее важна, чем поведенческая модель. Все
же мы упомянули эту возможность, и заинтересованные читатели могут изучить исследование на эту тему [18]. Здесь можно отметить, что при генерации фактической траектории целевого транспортного средства мы используем простой подход, основанный на опорных линиях. Фактически здесь для
генерации траекторий других транспортных средств (объектов) могут применяться любые методы планирования, предназначенные для вычисления
траекторий движения.
Итак, мы сформулировали проблему прогнозирования движения в виде
двух задач: прогноза поведения и последующего вычисления фактической
траектории. Задачу прогнозирования поведения мы представили как вопрос
двоичной классификации для каждой возможной последовательности полос
движения, а также пришли к выводу, что решение задачи вычисления фактических пространственно-временных траекторий может быть заимствовано
из методов планирования движения. При решении задачи прогнозирования
поведения взаимодействия между транспортными средствами (объектами)
не рассматриваются явно, поскольку это может вызвать дополнительные сложности. Однако существует одна точка зрения, согласно которой, если частота
прогнозирования достаточно высока, взаимодействия между транспортными
средствами (объектами) могут быть неявно включены.

5.2. Прогнозирование движения  115
Ранее зафиксированные
признаки транспортного
средства

Признаки
последовательности
полос

Признаки окружающих объектов

Рассмотрим [t – w + 1, t]
фреймов, и для каждого
фрейма выделим следующие признаки:
• положение на полосе
по долготе и широте;
• положение в координатах XY;
• скорость, направление и ускорение;
• направление и кривизну проектируемой
полосы движения
в контрольной точке;
• относительное расстояние до границ
полосы движения.
Кроме того, в качестве
характеристик также извлекаются длина, ширина
и высота транспортного
средства

Рассмотрим выборку из
v точек вдоль центрального опорного продольного направления
целевой последовательности полос, которую
необходимо классифицировать. Выделим
следующие признаки из
каждой точки полосы:
• относительное продольное и поперечное положение;
• курс и кривизну;
• расстояние до
левой и правой
границы;
• тип поворота полосы выбранной
точки полосы
движения

Рассмотрим препятствия на двух
конкретных последовательностях
полос движения: последовательность целевой полосы, которую
необходимо классифицировать,
и последовательность текущей полосы движения (т. е. естественное
расширение последующих полос).
Эти две последовательности могут
быть одинаковыми. Спроецируем
целевой объект на каждую последовательность полос и рассмотрим эту
проекцию как эталон. Найдем ближайшие транспортные средства до
и после этой контрольной позиции.
Извлечем из них признаки:
• относительное продольное
положение (относительно проектируемой опорной точки);
• боковое положение, скорость
и направление ближайших
транспортных средств спереди и сзади

t ‒ w, t ‒w+1, ……

Ближайшее идущее
позади
транспортное
средство

t

Последовательность
полос движения:
Точка
полосы
движения

Проекция целевого
транспортного
средства

Ранее зафиксированные
признаки транспортного
средства, например
предыдущие фреймы w,
положение, вектор скорости
и т. д.

1

Полоса
движения 1

Полоса
движения 2

2

3

Ближайшее идущее
впереди
транспортное
средство

Признаки окружающих объектов,
например ближайшие идущие
впереди и сзади транспортные
средства в последовательности
правой соседней полосы движения

Признаки последовательности
полос, например положение,
относительное направление
каждой выбранной точки полосы
движения

Рис. 5.4. Три категории классификационных признаков при выборе полосы движения

116



Прогнозирование и маршрутизация

5.3. Маршрутизация на основе полос движения
Над модулями планирования и управления находится модуль маршрутизации, работающий на уровне полос движения. Далее в этой книге мы будем называть его просто «модуль маршрутизации» (или «маршрутизация»). Данный
модуль значительно отличается от навигационных карт, таких как Google Map.
Традиционные навигационные карты призваны решать задачу транспортного
средства «добраться из пункта А в пункт Б, следуя определенной последовательности дорог». В этом случае минимальный элемент навигации – определенная полоса движения на определенной дороге. Полосы и дороги определяются дорожными знаками в реальном мире и сегментацией. Задачей модуля
маршрутизации в беспилотных системах также является помощь транспортному средству «добраться из пункта А в пункт Б». Однако его выходные данные
предназначены не для водителей-людей, а для последующих модулей, таких
как модули принятия поведенческих решений и планирования движения. Следовательно, область планирования маршрута на уровне полос движения и уровень полос движения, обозначенных на HD-картах, должны совпадать. Полосы движения, обозначенные на HD-картах, не всегда совпадают с реальными
полосами движения и дорогами. На рис. 5.5 стрелки представляют сегментацию полос и направления на уровне HD-карты. Полоса1, Полоса 2…… Полоса8
представляют собой выходную последовательность модуля маршрутизации.
Как мы можем видеть, обозначенные на HD-карте полосы не всегда являются
реальными полосами движения и соответствуют реальным меткам полос. Например, Полоса2, Полоса5… Полоса7 представляют собой «виртуальные» полосы поворота, соответствующие HD-карте. Также относительно длинная полоса
на реальной дороге может быть разделена на несколько «виртуальных» полос
(например, Полоса3, Полоса4).
Поскольку модуль маршрутизации является верхним в модели планирования и управления, его выход в значительной степени зависит от этапа создания
HD-карт. С учетом критерия дорожного графа (поиск кратчайшего маршрута)
и сегментации полос, определенных на HD-карте, а также предопределенной
оптимальной политики задача, которую стремится решить маршрутизация,
состоит в вычислении оптимальной последовательности полос движения от
исходного пункта к месту назначения, по которой будет двигаться БА:

(lanei , start_position, end_position),
где (lanei, start_positioni, end_positioni) – сегмент маршрутизации. Сегмент
маршрутизации идентифицируется принадлежащими ему полосами, а start_
positioni, end_positioni представляют собой начальную и конечную позиции на
центральной опорной линии полосы.

5.3. Маршрутизация на основе полос движения  117
Полоса
движения 1

Полоса
движения 2

Полоса
Полоса
движения
4
движения 3
Полоса
движения 5
Полоса
движения 6

Полоса
движения 7

Полоса
движения 8

Рис. 5.5. Результат маршрутизации по уровням полос движения, определенным HD-картой

5.3.1. Применение взвешенного ориентированного графа
для задач маршрутизации
Отличительной особенностью маршрутизации в беспилотных технологиях является то, что при планировании оптимальных маршрутов модуль маршрутизации должен учитывать сложности, возникающие у БА при выполнении определенных маневров. Именно этим маршрутизация в беспилотных системах
и отличается от традиционных навигационных картографических сервисов, таких как Google Maps. Например, вероятнее всего, модуль маршрутизации в беспилотной системе постарается избежать перехода БА на параллельные полосы
движения, поскольку для выполнения такого маневра модулю планирования
движения потребуется гораздо больше пространства и времени. В таких случаях
для системы приоритетно генерировать сегменты маршрута, не требующие перехода БА с одной полосы на другую в условиях ограниченного свободного пространства. Исходя из этого, такие маршруты имеют более высокую «стоимость».
Трудности, с которыми сталкивается БА при выполнении определенных действий, могут сильно отличаться от трудностей, с которыми сталкиваются водители-люди, ввиду чего в беспилотных системах модуль маршрутизации должен
адаптироваться под модуль планирования движения. В этом плане выходные

118



Прогнозирование и маршрутизация

данные модуля маршрутизации БА отличаются от выходных данных навигационных картографических сервисов, предназначенных для водителей-людей.
Проблема маршрутизации БА на основе HD-карт может быть сформулирована как задача поиска кратчайшего пути на взвешенном ориентированном графе. При таком подходе модуль маршрутизации осуществляет выборку нескольких точек на полосах, обозначенных на HD-карте в пределах определенного
расстояния от текущего местоположения БА. Такие точки называются точками
полосы движения. Они представляют собой предположения о вероятном положении БА на полосе. Точки полос движения, расположенные близко друг к другу,
соединяются направленными ребрами (directed edges) (см. рис. 5.6 и 5.7). В случаях, если системе запрещено двигаться по полосе задним ходом (что является
довольно разумным ограничением), точки полосы движения соединяются друг
с другом только в направлении полосы движения. Вес ребра графа, соединяющего точки полосы движения, представляет собой потенциальную стоимость
перемещения БА от исходной точки полосы движения к конечной. Частота выборки точек полосы движения определяется гарантией, что даже на коротких
отрезках пути будет отобрано достаточно точек. Ребра, соединяющие точки, несут в себе очевидную характеристику местности. Смежные точки вдоль полосы
движения естественным образом соединяются ребром, направление которого
соответствует направлению дорожного движения. Кроме того, точки на разных
полосах движения связаны между собой. В случае, представленном на рис. 5.6,
последняя точка полосы движения соединяется с первой точкой, расположенной на следующей полосе. Также точки движения, находящиеся на параллельных полосах, могут взаимодействовать друг с другом при переходе БА с одной
полосы на другую. На рис. 5.6 представлена возможная конфигурация стоимости ребер графа. Предположим, что стоимость ребер графа в пределах одной
полосы равна 1. Стоимость соединения текущей полосы с полосой движения
на правый поворот ​​равна 5, а соединение с полосой левого поворота стоит 8.
В пределах полосы движения на правый поворот стоимость движения по точкам составляет 2, а на левый – 3. Чтобы подчеркнуть стоимость перехода БА
между полосами движения, предположим, что стоимость ребра, соединяющего
точки полос на двух параллельных полосах движения, равна 10.

Стоимость = 10

Стоимость = 2

Стоимость = 3

Стоимость = 5

Стоимость = 8

Стоимость = 1

Стоимость = 1

Стоимость = 1

Рис. 5.6. Стоимость ребер, соединяющих точки полос движения в сценариях «Правый поворот»,
«Левый поворот» и «Переход на другую полосу»

5.3. Маршрутизация на основе полос движения  119
В конфигурации стоимости на рис. 5.6 мы сравниваем два разных маршрута на одном и том же дорожном графе, представленном на рис. 5.7. Оба
маршрута имеют одинаковые исходную (точка A) и конечную точки полосы
движения (точка B). Маршрут 1 начинается с Полосы 1 и не предполагает поворота (Полоса 4) в левом нижнем углу графа. Затем в левом верхнем углу
осуществляется поворот направо (Полоса 5), и далее движение осуществляется прямо по Полосам 10 и 11, после чего маршрут проходит по Полосе 12 и заканчивается. Маршрут 2 также начинается с Полосы 1, но в левом нижнем углу
графа осуществляет поворот направо (Полоса 2) и затем следует по Полосе 3.
Далее осуществляется переход на параллельную Полосу 6 и поворот налево
(Полоса 7 в правой нижней части графа, которая затем переходит в Полосу 8).
В правой верхней части графа осуществляется поворот направо на Полосу 9,
а затем осуществляется переход на Полосу 12. Так, оба маршрута заканчиваются в одной точке B. При этом общая длина Маршрута 2 может быть меньше,
чем у Маршрута 1, однако при конфигурации стоимости, представленной на
рис. 5.6, модуль маршрутизации с большей вероятностью предпочтет Маршрут 1. Основываясь на предположении, что стоимость ребра, соединяющего
две точки, расположенные на полосах, конечные точки которых не предполагают осуществление поворота, равна 1, общая стоимость Маршрута 1 составляет 23, а общая стоимость Маршрута 2 – 45.
Задача минимальной стоимости пути на взвешенном
ориентированном графе точек полос движения

L5

B
L10

L11

L12
L9

Маршрут 1:
L1, 4, 5, 10, 11, 12

L8
L4

L6

L7

L3
L2
L1
A

Маршрут 2:
L1, 2, 3, 6, 7, 8, 9, 12

Рис. 5.7. Подход к маршрутизации с применением взвешенного ориентированного графа,
обеспечивающий сокращение стоимости пути

120



Прогнозирование и маршрутизация

5.3.2. Распространенные алгоритмы маршрутизации
Проблема маршрутизации в беспилотных системах была формализована в разделе 3.1, и теперь мы можем представить два основных алгоритма
маршрутизации: Алгоритм Дейкстры (Dijkstra's algorithm) [15] и Алгоритм A*
(A* Algorithm) [16].

Алгоритм Дейкстры
Алгоритм Дейкстры – один из самых популярных алгоритмов в теории графов,
задачей которого является нахождение кратчайшего пути. Предложенный Эдсгером В. Дейкстрой (Edsger W. Dijkstra) в 1959 году [15], алгоритм вычисляет
кратчайший путь от исходной к конечной вершине взвешенного графа. В соответствии с данным алгоритмом маршрутизация на основе точек полосы движения осуществляется следующим образом.
1. Из интерфейса HD-карты в пределах диапазона радиуса считываются данные графа связанных полос движения. Далее, как описано в разделе 5.3.1,
осуществляется выборка точек и строится граф связанных полос. Ближайшая к текущему положению БА («ведущего транспортного средства») точка
принимается за исходную вершину графа, а ближайшая к месту назначения
точка – за конечную. Затем стоимость исходной вершины для всех остальных вершин задается равной бесконечности (inf), что означает, что стоимость между исходной и конечной вершинами равна бесконечности. При
этом стоимость пути от исходной вершины к самой себе задается как 0.
2. В качестве исходной точки полосы задается текущая вершина графа, а все
остальные точки отмечаются как «непосещенные» и объединяются в один
набор (набор непосещенных точек). На карте (prev_map) текущая точка полосы движения сопоставляется с предшествующей. На этой карте содержатся
данные о кратчайшем пути от посещенной до предшествующей ей точки.
3. Затем вычисляется приблизительное расстояние от текущей точки полосы
движения до всех рассмотренных соседних непосещенных точек. Например, расстояние до текущей точки полосы движения X = 3, а расстояние
между X и Y = 5. Тогда приблизительное расстояние до Y может составлять 8
(3 + 5). Далее данное значение сравнивается с текущим обозначенным расстоянием до Y. Если текущее обозначенное расстояние меньше, данное значение сохраняется. В противном случае текущее обозначенное расстояние
до Y заменяется на новое приблизительное расстояние, а prev_map обновляется в соответствии с внесенными изменениями.
4. Процесс, описанный в шаге 3, повторяется для всех непосещенных точек, связанных с текущей точкой полосы движения. После того как все соседние точки текущей точки полосы движения будут обработаны, текущая
вершина отмечается как посещенная и удаляется из набора непосещенных точек. Точки, удаленные из набора, больше не участвуют в обновлении минимальных обозначенных расстояний.
5. До тех пор пока конечная точка находится в наборе непосещенных точек, точки полос движения извлекаются оттуда, отмечаются как текущие
вершины, а затем по отношению к ним повторяются шаги 3 и 4. Процесс
завершается, когда из набора непосещенных точек извлекается конечная

5.3. Маршрутизация на основе полос движения  121
точка полосы движения или когда минимальное приблизительное расстояние вершины в наборе непосещенных точек не устанавливается равным бесконечности, что указывает на то, что в пределах определенного
радиуса добраться от исходной точки полосы движения до вершин, оставшихся в наборе непосещенных точек, не представляется возможным. Последний случай предполагает или отсутствие доступных маршрутов или
сбой запроса маршрутизации. При сбое запроса модуль маршрутизации
должен уведомить об этом нижестоящий модуль или же попытаться осуществить новый запрос, расширив радиус дорожного графа.
6. При нахождении кратчайшего пути фактический кратчайший путь из
prev_map строится заново.
Листинг 5.1 представляет собой псевдокод, реализующий алгоритм Дейкстры на взвешенном ориентированном графе полос движения. Строки 2–16
представляют собой типичный алгоритм Дейкстры, который составляет таблицу минимальных приблизительных расстояний между точками полосы движения. Затем из строк 17–22, основываясь на минимальном приблизительном
расстоянии, соответствующем предшествующей точке, алгоритм строит фактический кратчайший путь, постепенно перемещаясь по prev_map. Выходными
данными алгоритма является последовательный список точек полос движения, элементы которого затем группируются в фактические сегменты маршрутизации полосы, например как {(lane, start_position, end_position)} в строке 23.
Листинг 5.1. Псевдокод реализации маршрутизации с помощью алгоритма Дейкстры,
основывающегося на взвешенном ориентированном графе точек полосы движения
1 function Dijkstra_Routing(ГрафТочекПолосДвижения(V,E), src, dsf)
2 создайте набор вершин Q
3 создайте карты dist, prev
4 for each точка полосы движения v в V:
5 dist[v] = inf
6 prev[v] = nullptr
7 добавьте v к Q
8 dist[src] = 0
9 while Q not empty:
10 u = вершина в Q псевдо dist[u] minimum
11 уберите u из Q
12 for each связанная точка полосы движения v вершины u:
13 кандидат = dist[u] + cost(u,v)
14 if кандидат < dist[v]:
15 dist[v] = кандидат
16 prev[v] = u;
17 ret = empty sequence
18 u = dst
19 while prev[u] != nullptr:
20 вставьте u в начало ret
21 u = prev[u]
22 вставьте u в начало ret
23 объедините точку полосы движения в ret с соответствующим идентификатором и отправьте
объединенную последовательность

Построенный в результате граф точек полосы движения имеет V узлов и E
ребер. При использовании минимальной приоритизированной очереди для

122



Прогнозирование и маршрутизация

оптимизации извлечения вершины с минимальным расстоянием в строке 10
временна́я сложность алгоритма Дейкстры может быть равна O(|E| + Vlog|V|).

Алгоритм А*
Еще одним популярным алгоритмом маршрутизации, применимым для
маршрутизации БА, является алгоритм А*, представляющий собой алгоритм
поиска на основе эвристики. Как и алгоритмы поиска в ширину (BFS – breadth
first search) и поиска в глубину (DFS – depth first search), А* также осуществляет
поиск в пространстве в соответствии с определенными метриками. Данный
алгоритм можно рассматривать как алгоритм поиска «на основе заслуг» (meritbased) или алгоритм «первого наилучшего совпадения» (best-first).
А* работает с набором вершин под названием openSet, включающим в себя
потенциальные вершины для расширения поиска. В каждом цикле A* извлекает вершину с наименьшей стоимостью на расширение. Стоимость извлечения
вершины f (v) определяется двумя составляющими: f (v = g (v + h (v)). Во-первых,
в дереве поиска A* каждая вершина будет иметь стоимость, соответствующую
стоимости перехода от исходной вершины к текущей – g (v); при этом каждая
вершина v имеет эвристическую стоимость, обозначенную как h (v). Эвристическая стоимость h (v) представляет собой оценку минимальной стоимости
перехода от текущей вершины к конечной. При удовлетворении h (v) определенным свойствам А* гарантированно сможет найти путь от исходной до конечной точки с минимальной стоимостью. В каждом цикле поиска A* вершина
с минимальной стоимостью f (v = g (v + h (v)) будет расширяться до тех пор, пока
не будет расширен целевой узел. На рис. 5.9 представлена подробная реализация алгоритма. Здесь функция reconstruction_route в строке 11 аналогична части
реконструкции маршрутизации в алгоритме Дейкстры.
Листинг 5.2. Псевдокод реализации Алгоритма А* для маршрутизации БА
1 function AStar_Routing(ГрафТочекПолосДвижения(V,E), src, dst)
2 создайте набор вершин closedSet //набор посещенных узлов
3 создайте набор вершин openSet //набор узлов, подлежащих расширению
4 добавьте src в openSet
5 создайте gScore, fScore со значением по умолчанию inf
6 создайте prev_map со значением по умолчанию nullptr
7 fScore[src] = h(src, dst)
8 while openSet is not empty:
9 current = узел v в openSet такой, что fScore[v] minimum в openSet
10 if current = dst
11 отправьте reconstruction_route(prev_map, current)
12 уберите current из openSet
13 вставьте current в closedSet
14 for each соседний узел u current:
15 if u в closedSet:
16 continue; //игнорируйте соседний узел, которому уже присвоено значение
17 candidate_score = gScore[current] + h{current, u)
18 if u not in openSet: //обнаружен новый узел
19 вставьте u в openSet
20 else if candidate_score >= gScore[u]: //это не лучший путь
21 continue;
22 prev[u] = current
23 gScore[u] = candidate _score
24 fScore[u] = gScore[u] + h(w, dst)

5.3. Маршрутизация на основе полос движения  123
Алгоритм А* является алгоритмом поиска на основе эвристики, поэтому
он может найти путь с минимальной стоимостью при условии, что функция
h() удовлетворяет допустимому показателю [16], что означает, что оценка
минимальной стоимости h(v, dst) не превышает фактическую минимальную
стоимость. Если данное условие не выполняется, гарантии того, что А* сможет найти путь с минимальной стоимостью, нет. В сценарии маршрутизации
автономного транспортного средства с использованием графа точек полосы
движения одним из способов определения эвристической меры между любыми двумя точками движения A и B является h(u, v) = dist(u, v). Dist() представляет собой расстояние в проекции Меркатора [17] между двумя точками полосы
движения в системе географических координат Земли. Алгоритм А*, как алгоритм «первого наилучшего совпадения», может рассматриваться в качестве
расширения алгоритма Дейкстры. И напротив, алгоритм Дейкстры можно рассматривать как частный случай A*, где эвритика h(u, v) = 0.

5.3.3. Стоимость графа маршрутизации:
слабая или сильная маршрутизация
На практике выбор алгоритма обычно не так важен, как конфигурация затрат
при маршрутизации БА. Способы выбора затрат между точками полос движения, упомянутых в разделе 5.3.1, являются критическим фактором при построении рабочего модуля маршрутизации. Например, если исходя из информации
о пробках мы знаем, что на дороге затор, то мы можем вложить затраты в ребра,
соединяющие точки полос движения, принадлежащих текущей дороге, чтобы
при маршрутизации можно было избежать перегруженной полосы; аналогично, если на определенных дорогах предусмотрено регулирование движения,
мы также можем установить достаточно высокую стоимость точкам полос движения на дорогах (например, бесконечность), чтобы эти полосы могли быть
менее предпочтительными или чтобы их можно было избежать в алгоритме
поиска. Кроме того, затраты между точками полос движения можно динамически регулировать, чтобы отразить предпочтения определенных полос другим.
Принимая во внимание, что фактические информационные данные дорожного графа имеют большой объем, модуль маршрутизации может предварительно загрузить дорожный граф и построить граф точек полосы для конкретного случая. Если маршрут к пункту назначения недоступен из-за небольшого
радиуса загруженного графа дорог, модуль маршрутизации может повторно
загрузить данные графа дорог с большим радиусом, заново построить граф
точек полосы движения и пересчитать маршрут. Обычно существует два типа
запросов маршрутизации: первый тип обычно возникает на старте поездки,
и пассажир БА устанавливает исходный и конечный пункты, отправляя запрос
маршрутизации; второй тип маршрутизации обычно инициируется нижестоящими модулями (такими как модуль принятия поведенческих решений или
модуль планирования движения).
Здесь мы вводим понятия сильной и слабой маршрутизации (strong routing
и weak routing.). Сильная маршрутизация подразумевает, что нижестоящие модули будут строго следовать результатам модуля маршрутизации. Это означает, что
по мере движения БА модули принятия решений и планирования будут делать

124



Прогнозирование и маршрутизация

все возможное, чтобы оставаться на полосах, обозначенных маршрутом. Когда
они не могут следовать заданным маршрутам, они отправляют запрос на изменение маршрута, как описано во втором типе запросов маршрутизации. При слабой маршрутизации нижестоящие модули не будут строго следовать результатам
маршрутизации при определенных сценариях. В результате фактическая последовательность полос движения будет отличаться от полученного маршрута, или,
другими словами, мы получим совершенно другое поведение БА. Рассмотрим
сценарий, в котором выходные данные маршрутизации указывают, что БТС необходимо оставаться на текущей полосе движения и что на текущей полосе перед
ним медленно движется другое транспортное средство. При сильной маршрутизации БА будет снижать скорость и просто следовать за ним. При слабой маршрутизации БА может перестроиться на соседнюю параллельную полосу движения, обойти медленно движущееся транспортное средство, а затем вернуться на
предыдущую полосу, как это делает большинство водителей-людей. Независимо
от выбора сильной или слабой маршрутизации, всякий раз, когда происходят
аварийные происшествия или возникает необходимость выполнить экстренные
маневры, нижестоящие модули прежде всего будут действовать в соответствии
с общим принципом «безопасность превыше всего», поэтому в таких случаях, как
правило, отправляется запрос на изменение маршрута.

5.4. Заключение
В этой главе мы рассмотрели модули прогнозирования и маршрутизации, ни
один из которых не входит в традиционную концепцию модулей планирования и управления. Однако с предлагаемым нами более широким пониманием
структуры планирования и управления прогнозирование и маршрутизация
создают исходные данные для традиционного планирования движения. Поэтому мы включили их в более широкую структуру планирования и управления.
Прогнозирование движения абстрагируется до двухуровневой классификации
поведения и проблем генерации траектории. Предлагаемый нами подход представляет собой маршрутизацию на уровне полосы движения, согласно которой БТС следует к месту назначения через последовательности определенных
полос. Далее, в главе 6 мы рассмотрим традиционные модули планирования
и управления, включая модули принятия поведенческих решений, планирования движения и управления на основе обратной связи.

5.5. Справочные материалы
[1]

[2]
[3]

Paden, B., Cap, M., Yong, S. Z., Yershow, D., and Frazzolo, E. 2016. A survey
of motion planning and control techniques for self-driving urban vehicles.
IEEE Transactions on Intelligent Vehicles, 1(1) p. 33–55. DOI: 10.1109/
TIV.2016.2578706.
Buehler, M., Iagnemma, K., and Sanjiv, S. (eds.). 2009. The DARPA Urban Challenge: Autonomous Vehicles in City Traffic. Springer Tracts in Advanced Robotics. DOI: 10.1007/978-3-642-03991-1.
Montemerlo, M., Becker, J., Bhat, S., Dahlkamp, H., Dolgov, D., Ettinger, S., Haehnel, D., Hilden, T., Hoffmann, G., Huhnke, B., Johnston, D., Klumpp, S., Langer,

5.5. Справочные материалы  125

[4]

[5]

[6]

[7]
[8]
[9]

[10]

[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]

D., Levandowski, A., Levinson, J., Marcil, J., Orenstein, D., Paefgen, J., Penny, I.,
Petrovskaya, A., Pflueger, M., Stanek, G., Stavens, D., Vogt, A., and Thrun, S. 2008.
Junior: The Stanford entry in the urban challenge. Journal of Field Robotics:
Special Issue on the 2007 DARPA Urban Challenge, 25(9), p. 569–597.
Gindele, T., Brechtel, S., and Dillmann, R. 2010. A probabilistic model for estimating driver behaviors and vehicle trajectories in traffic environments.
In Proceedings of the 13th International IEEE Conference on Intelligent
Transportation Systems (ITSC), Madeira Island, Portugal, p. 1625–1631. DOI:
10.1109/ITSC.2010.5625262.
Aoude, G. S., Desaraju, V. R., Stephens, L. H., and How, J. P. 2012. Driver behavior classification at intersections and validation on large naturalistic data
set. IEEE Transactions on Intelligent Transportation Systems, 13(2), 724–736.
DOI: 10.1109/tits.2011.2179537.
Lefevre, S., Gao, Y., Vasquez, D., Tseng, H. E., Bajcsy, R., and Borrelli, F. 2014.
Lane keeping assistance with learning-based driver model and model predictive control. In Proceedings of the 12th International Symposium on Advanced Vehicle Control, Tokyo, Japan.
Gadepally, V., Krishnamurthy, A., and Ozguner, U. 2014. A framework for estimating driver decisions near intersections. IEEE Transactions on Intelligent Transportation Systems, 15(2), p. 637–646. DOI: 10.1109/TITS.2013.2285159.
Gadepally, V., Krishnamurthy, A., and Ozgüner, U. 2016. A Framework for Estimating Long Term Driver Behavior. arXiv, 2016; arXiv:1607.03189. 19.
Bonnin, S., Weisswange, T. H., Kummert, F., and Schmuedderich, J. 2014. General behavior prediction by a combination of scenario-specific models. IEEE
Transactions on Intelligent Transportation Systems, 15(4), p. 1478–1488.
DOI: 10.1109/TITS.2014.2299340.
Kumar, P., Perrollaz, M., Lefevre, S., and Laugier, C. 2013. Learning-based approach for online lane change intention prediction. In Proceedings of the
IEEE Intelligent Vehicles Symposium (IV 2013), Gold Coast City, Australia, p.
797–802. DOI: 10.1109/IVS.2013.6629564.
Hsu, C. W., Chang, C. C., and Lin, C. J. 2003. A Practical Guide to Support Vector
Classification. Department of Computer Science, National Taiwan University.
Krizhevsky, A., Sutskever, I., and Hinton, G. E. 2012. Imagenet classification with
deep convolutional neural networks. In Advances in Neural Information Processing Systems (p. 1097–1105).
Medsker, L. R. and Jain, L. C. 2001. Recurrent neural networks. Design and Applications, 5.
Sak, H., Senior, A., and Beaufays, F. 2014. Long short-term memory recurrent
neural network architectures for large scale acoustic modeling. In Fifteenth Annual Conference of the International Speech Communication Association.
Dijkstra's Algorithm. https://en.wikipedia.org/wiki/Dijkstra's_algorithm. 103
A* Algorithm. http://web.mit.edu/eranki/www/tutorials/search/. 103
Earth Coordination System. https://en.wikipedia.org/wiki/Geographic_coordinate_ system.
Rasmussen, C. E. 2006. Gaussian Processes for Machine Learning. The MIT
Press.

Глава

6

Принятие решений,
планирование и управление
Аннотация
В этой главе мы продолжим рассматривать модули планирования и управления, а в частности концепции принятия поведенческих решений, планирования движения и управления на основе обратной связи. Задача модулей
принятия решений, планирования и управления – рассчитывать выполнение
БА различных маневров. В совокупности эти модули представляют собой
традиционную узкую концепцию планирования и управления. Упомянутые
модули направлены на решение одной общей задачи – определения поведения БА. Однако все они работают на разных уровнях решения этой задачи.

6.1. Принятие поведенческих решений
Для общих модулей планирования и управления БА модуль принятия поведенческих решений выступает в качестве «второго пилота». Он осуществляет сбор
и обработку данных из большинства источников. Помимо прочего, эти данные
включают в себя информацию о самом транспортном средстве, в частности о его
местоположении, скорости, мгновенном векторе скорости, ускорении, направлении движения, а также информацию о текущей полосе движения и всех окружающих БА объектах в пределах определенного радиуса. Миссия данного модуля состоит в принятии поведенческого решения на основе всех перечисленных
выше входных данных. Входные данные делятся на несколько категорий.
1. Выходные данные маршрутизации: последовательность полос с указанием определенной начальной и конечной позиции (где переместиться
на полосу, а где покинуть ее).
2. Атрибуты самого БА: текущее GPS-положение, полоса движения, положение относительно полосы движения, скорость, направление, а также
целевая полоса движения с учетом положения БА.
3. Предыдущая зафиксированная информация о БА: информация о принятом в предыдущем фрейме или цикле поведенческом решении, например, приняла ли система решение продолжать движение, остановиться,
повернуть или сменить полосу движения.

6.1. Принятие поведенческих решений  127
4. Информация о препятствиях, находящихся неподалеку от БА: к препятствиям относятся все объекты, находящиеся в пределах определенного
расстояния. Каждый воспринимаемый БА объект имеет атрибуты, в числе которых текущая полоса движения, скорость, направление, а также их
предполагаемые дальнейшие действия и спрогнозированные траектории движения. Информация об объектах и атрибутах генерируется преимущественно модулями восприятия и прогнозирования.
5. Информация об объектах движения и карт: полосы, определяемые HDкартой и их взаимосвязь. Например, предположим, что Полоса 1 и Полоса 2 являются соседними и БА разрешено перестраиваться. В этом случае
БА важно знать, каков допустимый диапазон перемещений при перестроении с одной полосы на другую. Или другой пример: когда БА завершает движение по прямой полосе и собирается перестроиться на полосу с левым поворотом, ему важно знать о наличии светофоров, стопзнаков или пешеходных переходов на стыке полос. Информация такого
рода обнародуется из выходных данных модуля создания карт или в соответствии с воспринимаемыми динамическими дорожными знаками
(например, зеленым или красным сигналом светофора).
6. Локальные правила дорожного движения: например, ограничения скорости в городе или допустимость поворота направо на красный сигнал
светофора.
Цель модуля принятия решений – принимать эффективные и безопасные
решения на основе всех описанных выше данных. Как мы можем заметить,
данный модуль взаимодействует с данными из всех источников. Ввиду неоднородного характера этих данных, а также различий в локальных правилах дорожного движения формулировка проблемы принятия поведенческих
решений представляется весьма сложной задачей. Таким образом, решить
данную проблему с помощью унифицированной математической модели
невозможно. Более целесообразным подходом к ее решению является использование передовых концепций разработки программного обеспечения.
В частности, мы предлагаем разработку системы на основе правил дорожного движения. Уже сегодня такой подход применяется во многих успешных
БТС. Например, в БА Junior [1], разработанном командой Стэнфордского университета для участия в конкурсе DARPA, применяется концепция конечного автомата (КА) (FSM – Finite-State-Machine), где для детерминированного
вычисления траектории и поведения транспортного средства используется
функция стоимости. Точно так же БА Boss [2] от команды Университета Карнеги–Меллона вычисляет промежутки между полосами движения и использует эту информацию вместе с предварительно закодированными правилами
для запуска режима смены полосы движения. Другие системы, такие как Odin
и Virginia Tech [3], также используют основанные на правилах движки для
моделирования поведения своих БА. В связи с растущим числом исследований в области принятия решений и планирования в беспилотных системах
все более популярными в моделировании поведения БА становятся байесовские модели. Например, они применялись в недавних исследовательских
работах [4, 5]. Среди всех байесовских моделей наиболее широко применяе-

128



Принятие решений, планирование и управление

мыми методами моделирования поведения БА являются марковский процесс
принятия решений (MDP – Markov Decision Process) и частично наблюдаемый
марковский процесс принятия решений (POMDP – Partially Observable Markov
Decision Process).
Несмотря на то что академические исследователи предпочитают, как правило, недетерминированные подходы к байесовской модели, мы считаем, что
ключевую роль в реальных системах должны играть основанные на правилах
детерминированные системы принятия решений. В этом разделе мы представим подход к принятию решений, основанный на правилах, а также некоторые сценарии.
Предлагаемый нами основанный на правилах подход реализует принцип
«разделяй и властвуй». При таком подходе система представляет окружающую
среду в виде сцен разных уровней и подходит к каждому уровню индивидуально. Мы считаем, что применение такого подхода при создании реальных
систем обеспечивает безопасность и надежность. Также этот подход довольно
прост. Представьте, как водители-люди едут из пункта А в пункт Б по определенному маршруту. Водители-люди всегда следуют фиксированному набору
правил дорожного движения. Что более важно, поведение водителя-человека при следовании им определенному желаемому маршруту ограничивается множеством факторов, включая окружающую среду, поведение соседних
транспортных средств и пешеходов, а также дорожные знаки. Следовательно,
человек-водитель располагает ограниченным набором вариантов поведения
или же его поведение определяется четкими правилами дорожного движения.
Например, в Калифорнии, если водитель собирается пересечь перекресток
с четырехсторонним знаком остановки, по правилам, прежде чем продолжить
движение он должен остановить транспортное средство на три секунды, уступая дорогу другим участникам дорожного движения, имеющим право проезда.
Весь набор действий определяется в соответствии с четким учетом окружающих объектов и может быть естественно смоделирован детерминированным
образом. При возникновении непредвиденных обстоятельств, которые могут
привести к нарушению правил дорожного движения, на первый план выходит
критерий безопасности и стремление избежать столкновения, что в свою очередь также может быть детерминировано.

6.1.1. Подход с применением марковского процесса
принятия решений
Марковский процесс принятия решений (MDP) определяется набором из пяти
элементов (S, A, Pa, Ra, γ), где:
1) S представляет собой пространство состояний БА. Пространство состояний должно учитывать расположение БА и элементов карты, таких как
полосы движения. Так, БА окружает квадратная область, которую можно
разделить на сетки фиксированной длины и ширины. С учетом наличия
на дорожной карте различных объектов, таких как полосы движения или
опорные линии, также могут быть созданы пространства, относящиеся
к различным комбинациям объектов на карте, например текущая полоса движения БА и смежная с ней полоса;

6.1. Принятие поведенческих решений  129
2) A является выходным пространством поведенческих решений, которое представляет собой фиксированный набор всех возможных
действий БА. Среди таких действий могут быть решения: следовать
за транспортным средством по текущей полосе движения, перестроиться на соседнюю параллельную полосу, повернуть налево/направо,
уступить дорогу или обогнать транспортное средство на перекрестке,
остановиться на светофоре или пешеходном переходе и т. д.;
3) Pa (s, s') = P (s' | s, a) – это условная вероятность достижения состояния s'
при условии нахождения БА в состоянии s и выполнения им действия a;
4) Ra (s, s') – функция вознаграждения за переход из состояния s в s' путем
выполнения действия a. Функция вознаграждения является синтезированной мерой оценки перехода из одного состояния в другое. Среди учитываемых факторов безопасность, комфорт, способность достичь цели
и сложность для нижестоящих модулей;
5) γ – коэффициент уменьшения вознаграждения. Если в текущий момент времени вознаграждение имеет коэффициент 1, то в следующем
временном интервале вознаграждение будет дисконтировано в соответствии с коэффициентом γ. Соответственно, вознаграждение за
t временных интервалов в момент времени в будущем будет соответствовать γt. Фактор дисконтирования гарантирует, что одно и то же вознаграждение всегда будет более ценным в текущий момент времени,
чем в будущем. Значение данного фактора заключается в том, что краткосрочные вознаграждения представляются более ценными, нежели
долгосрочные. Благодаря этому, например, система будет стремиться
как можно быстрее достичь определенной желаемой скорости (установленной пользователем средней эксплуатационной скорости).
Так, при использовании MDP проблема, которую призван решать процесс
принятия решений, состоит в нахождении оптимальной политики поведенческих решений π для выполнения условия S→A. Другими словами, для данного состояния s, в соответствии с оптимальной политикой, должно быть
принято поведенческое решение a = π (s). При нахождении оптимальной
политики весь MDP может рассматриваться как марковская цепь (Markov
Chain). Политика поведенческих решений π заключается в оптимизации
накопленных вознаграждений при переходе из настоящего времени в будущее. Обратите внимание, что если вознаграждение не является детерминированным, а представляет собой случайную величину, то политика
оптимизирует ожидаемыебудущие накопленные вознаграждения. В математическом виде максимизация накопленных вознаграждений выглядит
следующим образом:



t 0

t

Rat (st , st ) ,

где действие a является результатом политики a = π(s). Метод определения
политики обычно основывается на динамическом программировании: предположим, что нам известны матрица вероятности перехода состояния (state

130

 Принятие решений, планирование и управление

transition probability matrix) P и матрица распределения вознаграждения
(reward distribution matrix) R. В таком случае оптимальная политика может
быть определена путем итерации вычислений при сохранении двух массивов состояний:


À(st )  argmax  Pa (st , st 1 )(Ra (st , st 1 )+ V (st 1 )) ,
a

 st 1

V (st )   PÀ(st ) (st , st 1 )(RÀ(st ) (st , st 1 )+ V (st 1 )).
st 1

V(st) представляет собой накопленные будущие вознаграждения, дисконтированные в текущий момент, а π(st) – политику, которую необходимо определить. Данное решение основывается на итерации двух возможных пар
состояний (s, s') до тех пор, пока два представленных выше массива состояний не сойдутся [6, 7]. Кроме того, в алгоритме итерации значений Беллмана
(Bellman’s value iteration algorithm) нет необходимости вычислять π(st). Вместо
этого вычисление π(st) может быть включено в вычисление V(st), что приводит
к следующему шагу итерации значений:


Vi 1 (s )  max  Pa (s, s)(Ra (s, s)+ Vi (s)) ,
a
 s

где i – шаг итерации. На шаге i = 0 выносится первоначальное предположение
о V0(s). На каждом шаге до полного совпадения значение V(s) обновляется.
Существуют различные методы применения MDP в модуле управления БТС,
но рассмотрение дальнейших деталей реализаций MDP в беспилотных системах выходит за рамки этой книги. Мы предлагаем заинтересованным читателям обратиться к [6,7], где в деталях описывается создание пространства
состояний и пространства действий, процесс перехода из одного состояния
в другое и реализация функции вознаграждения.
Далее мы перечислим несколько факторов, которые должны быть учтены
при реализации функции вознаграждения Ra(s, s'), которая является одним из
наиболее важных элементов при построении эффективной системы на основе
MDP. Функция вознаграждения в модуле принятия решений на основе MDP
должна удовлетворять следующим требованиям.
1. Она должна позволять добраться до каждого пункта назначения:
для того чтобы добраться до места назначения, БА должен иметь стимул
к следованию по маршруту, составленному модулем маршрутизации.
Другими словами, если действие, определяемое политикой, т. е. a = π(s),
приводит к отклонению транспортного средства от маршрута, должно
назначаться «наказание». И наоборот, следует вознаграждать систему за
следование по маршруту.
2. Она должна отвечать требованиям безопасности и предотвращать
столкновения: если состояние основывается на равных квадратных
сетках с соотношением сторон N×N, где в центре находится транспортное средство, то любое решение о переходе в другую сетку, где потен-

6.1. Принятие поведенческих решений  131
циально может произойти столкновение, должно нести за собой «наказание». И напротив, принятие решений о переходе к сеткам с низкой
вероятностью столкновения или к сеткам, расположенным далеко от тех,
в которых вероятно столкновение, должно вознаграждаться.
3. Движение БА должно быть комфортным и плавным: комфортная
поездка предполагает небольшое количество резких маневров или их
отсутствие. Ограниченность выполнения резких маневров помогает нижестоящим модулям плавно выполнять большинство решений. Например, плавное изменение скорости должно повлечь за собой более высокую награду, чем резкое ускорение или резкое снижение скорости.
На этом этапе читатель, вероятно, может почувствовать насколько тонкой
является работа по созданию эффективной системы на основе MDP. Здесь должны быть приняты во внимание и сбалансированы все аспекты реализации пространства состояний, пространства действий, матрицы вероятности перехода,
функции вознаграждения и т. д.

6.1.2. Подход «разделяй и властвуй» на основе сценариев
Ключевая идея данного решения – применить принцип «разделяй и властвуй»,
разложив окружающую БА среду на сценарии. В каждом сценарии соответствующее правило должно индивидуально применяться к объектам или элементам
этого сценария, что позволит создать индивидуальное решение относительно
каждого объекта. Далее, путем объединения всех индивидуальных решений
создается синтетическое решение самого БА. Например, при необходимости сохранять движение по текущей полосе сначала необходимо выяснить наличие на
ней ведущего транспортного средства, которое является объектом нашего внимания. Соответствующее правило в этом примере заключается в определении,
какое транспортное средство считается ведущим, когда мы хотим оставаться на
текущей полосе движения «своего» беспилотного автомобиля. Правило определения наличия на текущей полосе главного транспортного средства основывается на намерениях БА (оставаться на текущей полосе), предпочтительной
скорости и окружающих его препятствиях. После определения ведущего транспортного средства его тегом индивидуального решения будет являться СЛЕДОВАТЬ (FOLLOW). Тегом синтетического решения «своего» автомобиля также
будет СЛЕДОВАТЬ (FOLLOW). В сущности, исходя из намерений БА и окружающей его среды, препятствиям присваиваются теги индивидуальных решений.
А важные индивидуальные решения формируют синтетические решения с точки зрения «своего» автомобиля.
Таблица 6.1. Синтетические решения и их параметры в модуле принятия поведенческих
решений
Синтетическое
решение
Продолжать движение (Cruise)

Параметрические данные
• Текущая полоса
• Ограничение скорости текущей полосы

132



Принятие решений, планирование и управление
Окончание табл. 6.1

Синтетическое
решение

Параметрические данные

Следовать
(Follow)

• Текущая полоса движения
• Идентификатор транспортного средства, за которым необходимо
следовать
• Скорость для достижения минимального текущего ограничения
скорости полосы движения и скорость транспортного средства,
за которым следует БА
• Не более 3 м за впереди идущим транспортным средством

Повернуть (Turn)






Перестроиться
(Change Lane)

• Текущая полоса движения
• Целевая полоса движения
• Смена полосы движения при обгоне и повышение скорости
до 10 м/с
• Смена полосы движения, уступив дорогу, и снижение скорость
до 2 м/с

Остановиться
(Stop)

• Текущая полоса движения
• Идентификатор любого объекта, перед которым необходимо совершить остановку (если таковой имеется)
• Остановиться на расстоянии 1 м от объекта, перед которым необходимо совершить остановку

Текущая полоса движения
Целевая полоса движения
Поворот налево или направо
Ограничение скорости при повороте

Обобщающая идея синтетического решения касается того, как должен вести
себя БА. Такое поведенческое решение относится к решениям высшего уровня.
Примеры синтетических решений включают в себя: оставаться на текущей полосе движения, следуя за другим транспортным средством, перестроиться с текущей полосы на соседнюю параллельную полосу или остановиться на определенной стоп-линии в соответствии с дорожным знаком или сигналом светофора.
Поскольку такое решение относится к поведенческим решениям высшего уровня, его потенциальное выходное пространство вместе с его определениями
должны быть согласованы и использоваться совместно с нижестоящим модулем
планирования движения. Кроме того, чтобы помочь модулю планирования движения вывести БА на запланированную траекторию, синтетическое решение
всегда сопровождается некоторыми параметрами. В табл. 6.1 представлено несколько определений синтетических решений, а также их возможные параметры. Обратите внимание на то, при каких параметрах синтетическим решением
в текущий момент времени будет Следовать (Follow). Выходная команда для модуля планирования движения – это не только поведенческая команда следования. Она включает в себя такие параметры, как: идентификатор транспортного
средства, за которым необходимо следовать на текущей полосе движения, рекомендуемая скорость следования (обычно это скорость идущего впереди автомобиля или ограничение скорости полосы движения в зависимости от того,

6.1. Принятие поведенческих решений  133
что ниже) и рекомендуемое расстояние, которое следует соблюдать (например,
3 м от впереди идущего автомобиля). Все это позволяет нижестоящему модулю
планирования движения использовать данные параметры в качестве ограничений для расчета плавной траектории и избегать столкновений.

Индивидуальное решение
В противовес синтетических решений идут индивидуальные решения. Как уже
было сказано, синтетическое решение – это комплексное консолидированное
решение для БА, основывающееся на результатах рассмотрения всех данных об
окружающей среде, включая информацию обо всех объектах на дороге. В связи с этим мы предлагаем подход, предполагающий принятие индивидуальных
решений относительно каждого элемента окружающего мира. Объект, сопровождаемый индивидуальным решением, может являться фактическим воспринимаемым препятствием на дороге или же объектом на логической карте,
например стоп-линией перед светофором или пешеходным переходом. В архитектуре, представленной на рис. 6.2, на первый план выходит разделение окружающей среды на сценарии. Далее относительно объектов вычисляются индивидуальные решения, которые затем связываются с каждым объектом во всех
сценариях. После принятия индивидуальных решений, система может прийти
к синтетическому решению, объединяющему все индивидуальные решения.
Подобно синтетическому, индивидуальные решения также имеют параметры. Они являются не только необходимыми предпосылками для вычисления
синтетического решения, но также и входными данными для нижестоящих
модулей планирования движения. Их предназначение состоит в упрощении
процесса планирования траектории. Например, если БА необходимо перестроиться на соседнюю правую полосу, сначала система осуществляет поиск других
транспортных средств на желаемой и текущей полосах. В зависимости от пространственного и временного расстояний до транспортных средств на соседней правой полосе система предоставляет им индивидуальные теги решения
ОБОГНАТЬ (OVERTAKE) или УСТУПИТЬ (YIELD). При смене полосы движения
БА должен соблюдать дистанцию до ведущего транспортного средства (при его
наличии). Таким образом, относительно ведущего транспортного средства на
«своей» полосе может также быть принято индивидуальное решение, например СЛЕДОВАТЬ (FOLLOW) или ИГНОРИРОВАТЬ (IGNORE). С учетом принятых
индивидуальных решений относительно каждого препятствия БА может перестроиться на другую полосу движения. В таком случае синтетическим решением для БА будет ПЕРЕСТРОИТЬСЯ (CHANGE LINE). Данное решение строится
путем объединения индивидуальных решений.
На этом этапе читатель может задаться вопросом, почему индивидуальные
решения отправляются нижестоящим модулям? Разве не было бы достаточно
передать окончательное синтетическое решение, учитывая, что планирование
движения осуществляется только для самого БА? Опыт показал, что наиболее
эффективным подходом к последующему планированию движения является
передача как синтетического, так и формирующих его индивидуальных решений. Причиной этому является то, что индивидуальные решения гарантируют
обоснованность синтетического решения, что позволяет сформировать более
разумные и явные рамки для модуля планирования движения. Проблема оп-

134



Принятие решений, планирование и управление

тимизации планирования движения может быть решена путем дополнения
синтетического решения индивидуальными. Кроме того, такой подход значительно повышает эффективность отладки.
В табл. 6.2 представлено несколько типичных индивидуальных решений
и их параметры. Например, если индивидуальным решением относительно
объекта X является обгон, то параметры данного решения, вероятно, будут
включать в себя время и расстояние, необходимое для обгона объекта X. Параметр расстояния представляет собой минимальное пустое пространство перед
объектом X, а параметр времени – минимальное время сохранения дистанции
(параметра расстояния) с учетом скорости БА и объекта X. Обратите внимание,
что индивидуальные решения «обогнать или уступить» принимаются только
тогда, когда прогнозируемая траектория объекта пересекается с запланированной траекторией БА. Как правило, решения обогнать/уступить принимаются в сценариях на перекрестках. Далее, мы приведем пример такого сценария,
который демонстрирует как именно мы предлагаем разделять окружающую
среду на сценарии, применяя определенные правила для принятия индивидуальных решений и их дальнейшего объединения в синтетические решения.
Таблица 6.2. Индивидуальные решения и их параметры в модуле принятия поведенческих
решений
Индивидуальное решение
Транспортное
средство

Параметрические данные

Следовать
(Follow)

• Идентификатор транспортного средства, за которым
необходимо следовать
• Рекомендуемая скорость следования за транспортным
средством
• Рекомендуемое расстояние для следования за транспортным средством

Остановиться
(Stop)

• Идентификатор транспортного средства, перед которым
необходимо совершить остановку
• Рекомендуемое для остановки расстояние перед транспортным средством

Обратить
внимание
(Attention)

• Идентификатор транспортного средства, перед которым
необходимо совершить остановку
• Минимальное расстояние, которое нужно соблюдать,
обращая внимание на транспортное средство

Обогнать
(Overtake)

• Идентификатор транспортного средства, которое необходимо обогнать
• Минимальное расстояние для обгона
• Минимальный промежуток времени для обгона

Уступить
(Yield)

• Идентификатор транспортного средства, которому необходимо уступить дорогу
• Минимальное расстояние, которое необходимо выдержать для того, чтобы уступить
• Минимальный промежуток времени, который необходимо выдержать для того, чтобы уступить

6.1. Принятие поведенческих решений  135
Окончание табл. 6.2
Индивидуальное решение
Пешеход

Параметрические данные

Остановиться
(Stop)

• Идентификатор пешехода, перед которым необходимо
совершить остановку
• Минимальное расстояние для остановки перед пешеходом

Свернуть
(Swerve)

• Идентификатор пешехода, перед которым необходимо
свернуть
• Минимальное расстояние, которое необходимо соблюдать при повороте

Построение сценария и создание системы
Расчет индивидуальных решений зависит от построения сценариев. Сценарии можно представить как серии относительно независимых частей
окружающего транспортное средство мира. Мы предлагаем разделить окружающий мир на многоуровневую структуру. В соответствии с таким подходом сценарии можно разделить по уровням, и все сценарии внутри одного
уровня независимы. Сценарии на глубоком уровне могут воспользоваться
результатом вычислений или информацией, полученными из более вышестоящих уровней. Как правило, объект может принадлежать только одному
сценарию. Идея структурированного многоуровневого сценарного представления окружающего мира также основывается на принципе «разделяй
и властвуй»: сначала система сосредотачивается на независимых мелких
«мирах» (сценариях) и принимает решение на этом уровне. При принятии
индивидуальных решений в каждом независимом сценарии одного уровня намерение системы относительно маршрута (куда должен двигаться БА)
и результаты предыдущих вычислений предыдущих уровней используются
совместно. После принятия индивидуальных решений синтетическое решение закрепляется набором правил. На рис. 6.1 (а) и 6.1 (b) представлены
примеры разделения окружающей среды на сценарии и последующего вычисления поведенческих решений.

136



Принятие решений, планирование и управление

Синтетическое решение
Перестроиться с текущей полосы на соседнюю
левую: уступить дорогу транспортному
средству a, обогнать d, обратить внимание на b,
движущееся по текущей полосе
Сценарии и индивидуальные решения
1. «Ведущее транспортное средство»
2. «Левая(ые) полоса(ы)»: обогнать d и уступить a
3. «Идущее(ие) впереди транспортное(ые)
средство(а)»: обратить внимание на b
4. «Транспортное(ые) средство(а),
движущее(ие)ся по правой полосе движения»:
игнорировать c
5. «Идущее(ие) позади транспортное(ые)
средство(а)»: игнорировать e

Рис. 6.1. (а) Многоуровневые сценарии при смене полосы движения

Синтетическое решение
Остановиться перед стоп-линией
пешеходного перехода и подождать, пока
пешеходы перейдут дорогу
Сценарии и индивидуальные решения:
1. «Ведущее транспортное средство»
2. «Пешеходный переход»: остановиться
перед пешеходом c
3. «Светофор»: на красный сигнал
светофора повернуть направо, уступить
дорогу транспортным средствам,
имеющим право проезда
4. Придерживаться свободной полосы,
игнорировать сценарии второго уровня
5. Сценарии перекрестка: на основе
сценариев 1, 2, 3

Рис. 6.1. (b) Многоуровневые сценарии на перекрестке

6.1. Принятие поведенческих решений  137
На рис. 6.1 (a) в сценарии «Левая(ые) полоса(ы)» изображены два автомобиля a и d. Намерением БА является смена полосы движения с текущей на
соседнюю левую в соответствии с выходными данными модуля маршрутизации. С учетом относительного положения БА и его скорости относительно
транспортных средств a и d результатом такого сценария будет принятие решения уступить дорогу транспортному средству a и обогнать транспортное
средство d, что предполагает смену полосы движения. Между тем, другой сценарий «Идущее(ие) впереди транспортное(ые) средство(а)» отражает небольшой мир объектов перед самим автономным транспортным средством и не
зависит от сценария «Левая(ые) полоса(ы)». Несмотря на то что намерение БА
состоит в том, чтобы переключиться на левую полосу движения, все же важно
обращать внимание на идущие впереди по текущей полосе движения транспортные средства. Следовательно, индивидуальное решение относительно
транспортного средства b в сценариях «Идущее(ие) впереди транспортное(ые)
средство(а)» состоит в соблюдении соответствующей дистанции перед
транспортным средством b. Также существуют сценарии «Идущее(ие) позади
транспортное(ые) средство(а)» и «Транспортное(ые) средство(а), движущее(ие)
ся по правой полосе движения». Однако, учитывая, что прогнозируемые территории объектов в этих сценариях не пересекается с запланированной территорией БА, их можно игнорировать.
Сценарии на рис. 6.1 (a) практически не зависят друг от друга, за исключением общего для всех сценария Ведущее транспортное средство. На рис. 6.1
(b) представлен сложный случай с множеством сценариев разных уровней.
Сценарий «Ведущее транспортное средство» является особым, и информация
о нем передается для использования в других сценариях. Первый уровень
сценариев включает в себя сценарии Идущее(ие) впереди транспортное(ые)
средство(а)»/«Идущее(ие) позади транспортное(ые) средство(а)», «Транс­
порт­­ное(ые) средство(а), движущее(ие)ся по левой полосе движения» /
«Транспортное(ые) средство(а), движущее(ие)ся по правой полосе движения»,
а также сценарии, связанные с дорожными знаками в непосредственной близости от БА, такими как «Светофор» и «Пешеходный переход». Более сложные
составные сценарии могут быть построены поверх сценариев первого уровня, используя их в качестве элементов. Как представлено на рис. 6.1 (b), сценарий четырехстороннего перекрестка основан на сценариях «Пешеходный
переход», «Светофор» и «Главное транспортное средство». Помимо сценариев «членства» транспортные средства a и b также принадлежат и сценарию
четырехстороннего перекрестка, поскольку находятся в полосах движения,
относящихся к перекрестку. Что касается сценария «членства», под этим мы
подразумеваем, что сценарии «Пешеходный переход», «Светофор» и «Главное
транспортное средство» являются «членами» сложного сценария. Такое явление мы называем сценарием «членства». Проще говоря, в данном контексте
также применим сценарий перекрестка. При реализации можно представить,
что каждый сценарий по-своему соответствует реальной окружающей среде,
и они в некоторой степени независимы.
Предположим, что БА необходимо повернуть направо, но на светофоре горит красный сигнал, а также система замечает пешехода, переходящего дорогу. Правила дорожного движения разрешают поворот направо, несмотря

138

 Принятие решений, планирование и управление

на сигнал светофора, но только после того, как транспортное средство остановится и уступит дорогу пешеходам или другим транспортным средствам,
которые в текущий момент имеют право проезда/прохода. Индивидуальное
решение в отношении пешехода, переходящего дорогу, будет заключаться
в остановке, в то время как индивидуальное решение относительно транспортных средств a и b будет заключаться в том, чтобы уступить им дорогу.
Сочетая в себе подобные индивидуальные решения, синтезированное решение для БА будет заключаться в остановке перед стоп-линией перед пешеходным переходом.
Как описано выше, каждый сценарий фокусируется на определенной собственной логике для принятия индивидуальных решений относительно
объектов внутри себя. Затем модуль принятия поведенческих решений рассматривает все индивидуальные решения относительно каждого объекта
и принимает окончательное синтетическое решение для БА с учетом индивидуальных решений. Стоит уделить особое внимание возможности существования разных по своей сути или даже противоречащих друг другу решений
относительно одного и того же объекта. Например, транспортное средство
может принять два разных индивидуальных решения в двух разных сценариях: одно – уступить дорогу, а другое – обогнать. Способ разделения окружающего мира на сценарии состоит в естественном распределении реальных
воспринимаемых и концептуальных логических объектов в сценарии, которым они принадлежат. В большинстве случаев объект будет принадлежать
только одному сценарию. Но существуют и исключения. Фактически из соображений надежности некоторые сценарии работают с областями карты, имеющими небольшие пересечения. Если точнее, чтобы сделать систему более
устойчивой, рабочие области (или области интересов) для каждого сценария
могут частично пересекаться друг с другом. В таких маловероятных случаях
уровень осуществляет обработку объединения индивидуальных решений для
проверки безопасности и согласованности в системе поведенческих решений
(рис. 6.2). Например, предположим, что на текущей полосе движения позади БА движется другое транспортное средство, которое намеревается перестроиться на соседнюю левую полосу. В процессе смены полосы движения
данное транспортное средство будет (временно) «существовать» как в сценарии «Идущее(ие) позади транспортное(ые) средство(а)», так и в сценарии
«Транспортное(ые) средство(а), движущее(ие)ся по левой полосе движения».
Далее предположим, что БА также намеревается перестроиться на левую полосу движения. Сценарий «Идущее(ие) позади транспортное(ые) средство(а)»
требует принять индивидуальное решение о том, чтобы обратить внимание
на данное транспортное средство, а сценарий «Транспортное(ые) средство(а),
движущее(ие)ся по левой полосе движения» требует принять решение о том, что
БА должен уступить дорогу. На уровне объединения индивидуальных решений описанные выше решения будут рассматриваться как два разных. Затем
данный уровень повторно вычислит окончательное индивидуальное решение
с учетом аспекта безопасности и намерения БА. В этом случае, если БА уже
начал перестраиваться, будет принято решение уступить дорогу. Если же БА
не начал перестраиваться, будет принято решение просто обратить внимание
на транспортное средство.

6.2. Планирование движения  139
Главное транспортное
средство

Сценарий уровня 0

Сценарий уровня 1

Идущее впереди
транспортное средство
Светофоры

Сценарий уровня 2

Четырехсторонний
перекресток
Разделение
полос движения

Левые полосы

Правые полосы

Пешеходные
переходы
Трехсторонний
перекресток
Слияние полос
движения

Объединение индивидуальных решений в целях гарантии безопасности

Сведение к окончательному синтетическому решению

Создание
многоуровневых
сценариев
и вычисление
индивидуальных
решений

Учет всех
индивидуальных
решений в целях
общей проверки
безопасности
Синтезирование
и объединение
в окончательное
синтетическое
решение

Рис. 6.2. Архитектура основанной на правилах системы принятия поведенческих решений,
содержащей многоуровневые сценарии

На рис. 6.2 в общих чертах представлена структура и логический процесс
описываемой системы. Сверху находятся уровни, ориентированные на построение многоуровневого сценария, где информация о намерениях, картах
и локализации БА, а также о воспринимаемом им окружающем мире используется для построения уровней независимых сценариев. При принятии индивидуальных решений относительно всех объектов каждый независимый
сценарий руководствуется собственной логикой и общим маршрутом БА. После того как сценарии всех уровней завершат вычисление индивидуальных
решений, уровень объединения перепроверит все индивидуальные решения
и разрешит возможные конфликты или устранит несоответствия относительно любого объекта. Снизу находится окончательное синтетическое решение
для самого БА, которое вычисляется путем консолидации объединенных
и согласованных индивидуальных решений. Синтетическое решение вместе
с объединенными индивидуальными решениями будет отправлено в модуль
планирования движения, где происходит планирование пространственновременной траектории БА.

6.2. Планирование движения
Модуль планирования движения находится после модуля принятия поведенческих решений. Его задача – генерировать траекторию и отправлять эти
данные в модуль управления на основе обратной связи, который осуществляет физическое управление БА. Запланированная территория предстает
перед модулем управления в виде определенной последовательности точек
траектории. Каждая из этих точек содержит такие атрибуты, как местополо-

140

 Принятие решений, планирование и управление

жение, время, скорость, кривизна и т. д. Задачу планирования движения БА
можно рассматривать как частный случай задачи планирования движения из
области робототехники. В некотором смысле задача планирования движения
БА даже проще, чем общие задачи планирования движения из области робототехники, поскольку автомобили в основном следуют по определенному заранее дорожному графу и перемещаются в двумерной плоскости. Поскольку
единственными сигналами управления в БА являются дроссельная заслонка,
тормозной механизм и рулевое колесо, возможные траектории должны отвечать некоторым характеристикам, таким как ограничения плавности и кривизны. Таким образом, в этом случае оптимизация становится сравнительно
проще, чем, скажем, планирование траектории в трехмерном пространстве
(например, планирование движения летающего дрона), где существует гораздо больше ограничений.
DARPA Urban Challenge положил начало последующему постепенному развитию планирования движения БА как относительно независимого модуля.
Авторами [4, 8] была предпринята попытка решить проблему планирования
движения в определенных условиях городского движения и парковки. Также
существуют исследования, посвященные решению специальных задач планирования движения, среди которых [7]. В [5, 9] представлены последние работы,
посвященные различным аспектам планирования движения.
По большей части процесс планирования движения заключается в оптимизации пространственно-временной траектории в рамках определенных
пространственно-временных ограничений. Пространственно-временная траектория состоит из точек траектории. Каждая точка имеет определенные
атрибуты, такие как положение, время, скорость, ускорение, кривизна и производные более высокого порядка таких атрибутов, как кривизна. Важность
этих атрибутов состоит в том, что оптимизация направлена непосредственно
на затраты, связанные с точками траектории. Свойства фактической траектории транспортного близки к свойствам сплайн-траекторий (spline trajectories).
Следовательно, проблема планирования движения может быть сформулирована как задача оптимизации для траекторий с определенными общими
свойствами/ограничениями на двумерной плоскости. Траектория транспортного средства схожа со сплайн-траекторией, поскольку обычно транспортные
средства движутся плавно, а их траектории ограничены с точки зрения кривизны (каппа) и скорости изменения кривизны (производная каппа). Сплайнтраектории обычно обладают хорошими характеристиками кривизны и скорости изменения кривизны.
Двумя ключевыми элементами в проблеме оптимизации являются объект
оптимизации и ограничения. Объект оптимизации – стоимость различных вариантов решений, а цель оптимизации – поиск решения с наименьшей стоимостью. Функция стоимости основывается на двух ключевых факторах.
Во-первых, она должна следовать выходным данным вышестоящего модуля
принятия поведенческих решений. Например, индивидуальное решение относительно идущего впереди транспортного средства может заключаться
в том, чтобы следовать за ним, соблюдая определенную дистанцию. В таком
случае запланированная траектория должна достигать, но не выходить за пределы обозначенного расстояния, определенного индивидуальным решением.

6.2. Планирование движения  141
Кроме того, запланированная траектория должна гарантировать отсутствие
столкновений, что означает, что при вычислении траектории необходимо соблюдать минимальное расстояние до любого физического объекта. Во-вторых,
поскольку мы ориентируемся на пользование БА в городских условиях, запланированная траектория должна соответствовать форме дороги. Фактически это означает, что БА должен двигаться по естественным дорогам. Все эти
аспекты представлены в структуре функций стоимости. В то время как в структуру функции стоимости заложено подчинение вышестоящему модулю принятия поведенческих решений и следование указаниям модуля маршрутизации, ограничения в задаче оптимизации планирования движения по большей
части связаны с нижестоящим модулем управления на основе обратной связи.
Например, кривизна и ее производная второго порядка имеют ограничения,
связанные с управлением рулевым колесом. Точно так же скорость изменения
ускорения ограничивается применением дроссельной заслонки в качестве метода управления ускорением.
Как было упомянуто в начале главы, посвященной планированию и управлению, подробное описание всех существующих решений планирования движения выходит за рамки этой книги. Вместо этого мы сосредоточимся на двух
проверенных и успешно применяемых подходах. Первый подход основывается на идеях, изложенных в [9], однако в упрощенном варианте. Проблема
планирования пространственно-временной траектории делится на две задачи, которые необходимо решать последовательно: планирование пути и планирование скорости. Планирование пути решает проблему вычисления формы
траектории на двухмерной плоскости с учетом выходных данных модуля принятия поведенческих решений и определения функции стоимости. Созданные
пути не содержат информации о скорости и представляют собой сплайны различной формы и длины. Планирование скорости основывается на результатах планирования пути и решает проблему следования БА по заданной траектории. По сравнению с подходом, предложенным в [9], который, помимо
прочего, предусматривает решение проблемы оптимизации пространственно-временной траектории, наше решение представляет более четкое разделение и формулировку задачи. Несмотря на то что предлагаемый нами подход
не гарантирует нахождения оптимального решения, реальный опыт показал,
что подход «разделяй и властвуй» для планирования движения является довольно эффективным. Вместо разделения задачи планирования движения
на планирование пути и планирование скорости проблема решается путем
рассмотрения планирования движения в двух ортогональных направлениях,
продольном (s-направление) и поперечном (l-направление), на системе координат SL (описание которой представлено далее в этом разделе). Преимущество такого подхода состоит в том, что форма запланированной траектории
естественным образом учитывает скорость, тогда как при ином подходе выбор
формы траектории может не соответствовать желаемому профилю скорости.
Причина кроется в том, что оптимизация траектории и скорости происходит
по-отдельности. Такое решение является эффективным в городских условиях
и при малых скоростях. В свою очередь предлагаемый нами подход больше
подходит для сценариев, предполагающих высокую скорость, например движение БА по шоссе.

142

 Принятие решений, планирование и управление

6.2.1. Модель транспортного средства, модель дороги
и система координат SL
Здесь мы рассмотрим математическую концепцию положения транспортного средства (которое может быть рассмотрено как вектор положения и скорости) и дорожную систему координат SL. Положение транспортного средства
определяется следующим образом: x = (x, y, θ, κ, v), где (x, y) – положение на
двумерной поверхности, θ – направление движения, κ – кривизна (скорость
изменения θ), а v – скорость, тангенциальная траектории. Данные переменные
удовлетворяют следующему отношению:
x  v cos  ,
y  v sin ,
  vk ,
где κ – ограничение, принятое в системе. Учитывая непрерывность траектории БА, направление пути – s-направление, а связь переменных положения
с s-направлением удовлетворяет следующим уравнениям:
dx / ds  cos ( (s )),
dy / ds  sin ( (s )),
d / ds  k(s ).
Обратите внимание, что здесь отсутствуют какие-либо ограничения на взаимосвязь κ и θ, что означает, что транспортное средство может менять кривизну своего движения κ в любом направлении θ. Однако в реальной модели
управления связь между кривизной κ и направлением θ ограничена, но это
ограничение тривиально с точки зрения ограничения скорости движения по
городской дороге. Следовательно, данный фактор не оказывает значительного
влияния на практическое применение и осуществимость предложенного алгоритма планирования движения.
Часть нашего предлагаемого алгоритма планирования движения, связанная с планированием пути, в значительной степени зависит от HD-карт,
и особенно от определенных на них центральных линиях полос движения,
которые мы также называем опорными линиями. Здесь полоса дороги определяется ее функцией выборки r(s) = [rx(s), ry(s), rθ(s), rκ(s)], где s представляет собой расстояние вдоль тангенциального направления пути, а продольное
расстояние является s-расстоянием. Соответственно, поперечное расстояние
(l-расстояние) перпендикулярно s-направлению. Рассмотрим положение p в
системе координат (s, l) и соответствующую позицию в абсолютной системе
координат (x, y). Положение p(s, l) = [xr(s, l), yr(s, l), θr(s, l), κr(s, l)] в абсолютной
системе координат удовлетворяет следующим соотношениям с позицией
в системе координат (s, l):

6.2. Планирование движения  143
xr (s , l )=rx (s )  l cos (r (s ))  À/ 2 ,
yr (s , l )=ry (s )  l sin (r (s ))  À/ 2 ,

r (s , l )=r (s ) ,
kr (s , l )=rk (s )1  l )1 ,
где κr на внутренней стороне поворота больше, чем на внешней (это означает,
что κr увеличивается с l при постоянном s). Как представлено на рис. 6.3, около
оси x в начале координат поперечное l увеличивается с y. Полосу движения
(k) постоянной ширины можно представить как набор точек в продольном
направлении, соответствующих центральной опорной линии: p(s , l ) : R  .
Такая система координат полосы движения формально называется системой
координат SL.





l

y

s
x

Рис. 6.3. Система координат полосы движения SL на плоскости XY [9], использовано
с разрешения правообладателя

6.2.2. Планирование движения на основе планирования
пути и скорости
Основываясь на описанной ранее системе координат SL, мы можем решить
задачу планирования движения путем планирования пути и скорости. Путь
транспортного средства может быть определен как непрерывный отображенный на карте ρ : [0,1] → C от диапазона [0,1] до набора положений транспортного средства C   x . Как представлено на рис. 6.4, начальная позиция цикла планирования или фрейма известна как ρ1(0) = ρ2(0) = qinit для путей ρ1 и ρ1, которые
заканчиваются соответственно в ρ1(1) = qend1 и ρ2(1) = qend2. Цель планирования
пути – найти путь, который начинается в начальном положении БА, достигает
желаемого конечного положения и удовлетворяет определенным ограничениям с минимальными затратами.
Поиск пути с оптимальной стоимостью схож с расчетом маршрутизации.
Здесь мы также помещаем точки выборки в потенциальные области, которые
путь может пересечь. Возможные траектории состоят из кусочно-полиномиальных сплайнов. Для определения таких сплайнов необходимы начальная
и конечная точки. Следовательно, соединение точек выборки будет представлять собой потенциальную траекторию. На рис. 6.4 мы равномерно делим по-

144

 Принятие решений, планирование и управление

лосу на сегменты с равными расстояниями s и l. Центральная точка в каждой
отдельной небольшой сетке (si, lj) – точка выборки траектории. Так, потенциальный путь БА представляет собой плавный сплайн, соединяющий точки выборки траектории вдоль направления s. В соответствии с сегментацией и выборкой точек траектории (рис. 6.4) мы имеем 16 возможных точек траектории
(4 в направлении s и 4 в направлении l), однако нам необходимо принимать во
внимание только сплайны, которые соединяют точки траектории в направлении увеличения s, поскольку движение задним ходом на обычных городских
дорогах неприемлемо (мы рассмотрим это отдельно, как частный случай). Общее количество возможных путей составляет 44 = 256. В таких условиях задача
планирования пути состоит в поиске оптимального пути с минимальными затратами, удовлетворяющего определенным ограничениям.

Рис. 6.4. Потенциальные траектории на отдельных сетках дорог и точки выборки в системе
координат SL

Для соединения выбранных точек траектории мы используем полиномиальные кривые. Они представляют собой группу кривых, кривизну которых можно представить как полиномиальные функции длины дуги (вдоль направления
s). Кривизна полиномиальной линии несущественна, таким образом мы используем кривые третьего или пятого порядка, длина дуги s и кривизна κ которых удовлетворяют уравнению:
k(s )  k0  k1s  k2 s2  k3 s3 8; 8 k(s )  k0  k1s  k2 s2  k3 s3  k4 s 4  k5 s5 .
Единственное существенное различие между кривыми третьего и пятого порядка состоит в удовлетворении краевых условий: производная второго порядка кривизны dκ2/ds2, которая соответствует скорости вращения рулевого колеса,
не является непрерывной в кривых третьего порядка dκ/ds и в dκ2/ds2. Обратите
внимание, что при низкой скорости прерывистость, вносимая кривыми третьего порядка, не имеет значения для модуля управления на основе обратной
связи. Однако данный фактор нельзя игнорировать при высоких скоростях.
Параметры предложенных полиномиальных кривых, соединяющих выбранные точки траектории, могут быть определены с помощью алгоритма поиска с градиентным спуском. Например, рассмотрим кривые третьего порядка

6.2. Планирование движения  145
(κ (s) = κ0 + κ1s + κ2s2 + κ3s3), соединяющие точку начального положения qinit = (xI
+ xI + θI + κI) и точку целевого положения qgoal = (xG + xG + θG + κG) с непрерывной
кривизной. В начале s пути производные кривизны первого и второго порядка
должны удовлетворять следующим ограничениям:
k0 = k1 ,
k1 = dk( 0)/ds ,
k2 = d 2k( 0)/ds2 .
Так, фактические неизвестные параметры образуют пару (κ3, sG), которая может быть определена с помощью алгоритма поиска с градиентным спуском.
Поиск пути с минимальной стоимостью посредством динамического программирования
Мы выяснили, что задача планирования пути может быть сформулирована
как поиск пути с минимальной стоимостью среди |ltotal /Δ||stotal/Δs| возможных путей,
соединяющих точки траектории по направлению s среди |ltotal /Δl| × |stotal /Δs точек
траектории. Предположим, что данные точки траектории составляют граф G =
(V, E), где каждая точка траектории является вершиной графа: v ∈ V, v = (x,y,s,l).
Для любых двух точек v, u ∈V, если их s-координаты удовлетворяют sv < su, для обозначения кривой третьего или пятого порядка от v к u мы используем e(v, u) ∈ E.
Далее, задача поиска оптимального пути может быть сформулирована как задача поиска пути с наименьшей стоимостью (кратчайшего пути) на ориентированном взвешенном графе. Особенностью данного подхода является то, что
кратчайший путь включает в себя не только затраты, накопленные на текущем
расширенном пути, но также и потенциальные затраты, связанные с последующим расширением пути, если расширение вершины уже установлено. Рассмотрим путь τ, соединяющий n0, n1,… nk, где n0 – начальная точка, а nk – конечная.
Стоимость такой траектории может быть записана в виде:
( )=c( )  ( ),
где c(τ) представляет собой совокупную стоимость следования по пути, а Φ(τ) –
затраты, связанные с достижением конечной точки nk запланированного пути.
Если функция Φ(τ) представляет собой добавочные затраты, вводимые nk, это
означает, что:
( (n0 ,n1 ,...nk ))=g (nk )  ( (nk 1 ,nk )),
где g(n) – минимальная стоимость достижения вершины n. Обратите внимание, что затраты следования по определенной линии не включают в себя
дополнительные затраты, связанные с окончанием пути в n. Рассмотрим все
пути, где nk-1 является предпоследней точкой траектории. Здесь необходимо
найти последнюю точку траектории nk, минимизирующую общую стоимость.
В частности, вершина nk удовлетворяет следующим свойствам.
1. Существует направленное ребро e(nk-1, nk), обозначенное τ(nk-1, nk), которое соединяет nk-1 и nk.

146



Принятие решений, планирование и управление

2. Для наборавершин, которых может достичь nk-1 (существует ребро e(nk-1, ñk),
обозначенное {ñk}), траектория, заканчивающаяся в nk, имеет наименьшую
общую стоимость: nk←argmin g(nk-1) + c(τ(nk-1,ñk)) + Φc(τ(nk-1,ñk)), где c – стоимость линии, соединяющей точки траектории nk-1,ñk.
Следовательно, g(nk-1) можно записать как g(nk) ← g(nk-1) + c(e(nk-1, nk)).
Для вычисления оптимального пути с минимальными затратами, начиная
с начальной вершины n0, соединяя точки траектории в увеличивающемся продольном s-направлении, мы могли бы использовать алгоритм динамического
программирования, представленный в листинге 6.1. Обратите внимание, что
в данном алгоритме связи между двумя точками траектории вычисляются специальным образом при поиске оптимального пути на графе. g(n) представляет
собой стоимость простого достижения вершины n, а ϕ(n) – текущую стоимость
пути к вершине n, которая включает в себя как стоимость достижения вершины n, так и дополнительные затраты на завершение пути вершиной n. Первый
знаменатель g(n) измеряет дополнительные затраты при выборе узлов для расширения от текущего узла до узлов-преемников (листинг 6.1, строка 13). Последний знаменатель ϕ(n) – это критерий, используемый при рассмотрении
того, какие узлы-предшественники расширяются до текущего узла (листинг 6.1,
строка 11). По завершении вычислений g(n) и ϕ(n) можно пройти по карте узлов-предшественников prev_node и определить точку траектории с оптимальной
(минимальной) стоимостью. Поскольку потенциальные подходящие заканчиваются в разных точках траектории, мы создаем виртуальную вершину nf и строим
виртуальные ребра, соединяющие последние точки траектории с nf. Следующей
задачей является поиск пути, соединяющего узел nf с узлом nf с минимальными
затратами. После вычисления g(n) и ϕ(n) последняя фактическая точка траектории может быть найдена с помощью алгоритма, представленного в листинге 6.1.
Листинг 6.1. Реализация алгоритма динамического программирования для поиска пути
с минимальной стоимостью, соединяющего точки траектории (псевдокод)
1 функция Search_DP(МатрицаТочекТраектории(V,E), {s}, {/})
2 инициализируйте карту g : Ɐn ∈ V, g(n) ← inf
3 инициализируйте карту prev_node : Ɐn ∈ V, g(n) ← null
4 for each выбранный si ∈ {s} :
5 Ɐn ∈ V такой, что s(n) = si: ϕ(n) ← inf
6 for each поперечное направление Точки Траектории n = [si, lj]:
7 if g(n)≠inf :
8 сформируйте вектор положения транспортного средства x^n = [x(n),y(n),θ(n),κ(n)]
9 for each исходящее ребро ẽ = (n,n')
10 сформируйте полиномиальную линию τ(ẽ(n,n'))
11 if g(n) + Φc(n) < ϕ(n'):
12 ϕ(n) ← g(n) + Φc(n)
13 g(n’) ← g(n) + c(τ)
14 prev_node(n') ← n
15 end if
16
end for
17 end if
18 end for
19 end for

6.2. Планирование движения  147
Функция стоимости в листинге 6.1 (строка 13) нуждается в рассмотрении
некоторых конструктивных соображений. Рассмотрим стоимость траектории
Ω(τ) = c(τ) + Φ(τ), где c(τ) – стоимость кривой, соединяющей две точки траектории, смежные в s-направлении. При определении функции стоимости необходимо учитывать следующие факторы.
 Фактор, связанный с дорожной картой: необходимо, чтобы запланированные кривые траектории были близки к центральной опорной
линии полос движения. Например, когда поведенческое решение состоит в следовании по прямой полосе, запланированный путь будет иметь
большую стоимость, если он представляет большее боковое расстояние
(без приближения к центральной опорной линии).
 Фактор, связанный с препятствиями: запланированный путь должен
предполагать отсутствие столкновений. Например, с разделением сетки
на полосах с координатами SL (рис. 6.4) любой сетке, содержащей какиелибо препятствия, а также ближайшим к ней сеткам, должна быть назначена очень высокая стоимость. Такой подход гарантирует безопасность.
Обратите внимание, что понятие «отсутствия столкновений» в основном связано со статическими препятствиями при планировании пути,
которые существуют только в пространственном (физическом) аспекте.
Вопрос гарантии безопасности, в частности избежание нестатических
препятствий в пространственно-временных направлениях, мы рассмотрим в контексте обсуждения планирования скорости.
 Выполнимость условий комфортабельности и управления: форма
запланированных кривых траекторий должна быть плавной. Обычно это
означает плавное изменение кривизны и медленное изменение производных кривизны. Кроме того, плавными должны быть не только отдельные элементы запланированных кривых траекторий, но и соединения
между линиями.
Что касается стоимости Φ(τ), которая больше связана с траекторией в целом,
здесь мы могли бы рассматривать только продольное s-расстояние, поскольку
в дальнейшем данная проблема решается в контексте планирования скорости.
Один из способов построения функции стоимости Φ(τ) взят из [9]:
( )=- sf ( )  hd (sf ( )),
  5A; 8 s  sthreshold
hd (s )  
0 8=0G5.

Первое слагаемое – αsf(τ) – это линейная стоимость, которая отдает предпочтение более длинным s за счет предоставления дисконтирования, а второе слагаемое – это нелинейная стоимость, которая срабатывает только в том случае, если
s больше порогового значения. В этом контексте α является коэффициентом для
данного слагаемого. Такой коэффициент называется «дисконтированием».

Планирование скорости посредством ST-графика
После того как модуль планирования пути выполнил свою задачу, модуль планирования движения начнет вычислять, насколько быстро БТС будет двигать-

148

 Принятие решений, планирование и управление

ся по найденному пути, в чем и заключается задача планирования скорости.
Входными данными для планирования скорости являются несколько возможных путей, а также поведение вышестоящих модулей. Обратите внимание, что
ограничения для планирования скорости обычно определяются физическими
ограничениями и соображениями комфорта, такими как степень ускорения
и изменение положения рулевого колеса. Входными данными планирования
скорости являются пути, представленные в виде последовательностей точек.
Следовательно, выходные данные планирования скорости должны связывать
эти точки с желаемой информацией о движении, такой как скорость, ускорение, кривизна и даже их производные более высокого порядка. В свою очередь
информация о статических препятствиях, например форма дороги, обрабатывается при планировании пути. В этом разделе мы сформулируем проблему
планирования скорости как задачу поисковой оптимизации на ST-графикe.
Как правило, ST-график (см. рис 6.5) состоит из двух осей, где T – ось времени,
а S – тангенциальное или продольное расстояние, пройденное по заданному
пути. Важно помнить, что, когда мы говорим о ST-графике, мы предполагаем
наличие определенного пути. Кроме того, ST-график может быть не только двумерным, но и трехмерным, как, например, (SLT-график), где дополнительной
осью будет служить поперечное расстояние, перпендикулярное траектории,
обозначаемое как L. На рис. 6.5 представлен пример планирования скорости
посредством двухмерного ST-графика.
Предположим, что траектория предполагает смену полосы движения путем
планирования траектории, и на целевой полосе (левая соседняя полоса движения) существуют два препятствия в виде транспортных средств (a и b). Будем
считать, что, по данным прогнозирования, движения оба этих автомобиля движутся по своей текущей полосе с постоянной скоростью. В соответствии с этими данными вычисляются перспективные области a и b. На ST-графике данные
области выделены серым цветом. В любой момент проекции транспортных
средств a и b на ST-графике представляют собой линейные сегменты, параллельные оси S, в то время как данные сегменты оси S перемещаются вдоль оси
t, а транспортные средства a и b движутся по траектории ST-графика, ведущей
к обозначенной на рис. 6.5 серым цветом области (серые четырех­угольники).
Как и при планировании пути, область ST-графика равномерно разделяется на
более мелкие сетки, которым впоследствии присваивается определенная стоимость. В таком случае проблема планирования скорости может быть сформулирована как задача поиска пути с минимальной стоимостью на ST-графике.
Например, в момент t = 0 БА находится в позиции s = 0, и в конечном итоге ему
необходимо достичь точки s = send на ST-графике, выбрав путь с наименьшей
стоимостью.
На рис. 6.5 представлено три возможных варианта планирования скорости
на ST-графике.
 План скорости 1: первый вариант представляет собой путь, который всегда находится позади транспортных средств a и b. Его кривая представляет
скорость, с которой БА будет двигаться и в конечном итоге достигнет положения s = send (данная точка не представлена на рисунке). Согласно данному плану скорости, БА сначала уступит дорогу транспортным средствам
a и b и только потом перестроится в соседнюю левую полосу.

6.2. Планирование движения  149
 План скорости 2: в этом варианте путь начинается из той же точки. Однако здесь уклон траектории увеличивается до тех пор, пока БА не достигнет определенной скорости. В какой-то момент соответствующее
расстояние в s-направлении будет превышать расстояние от транспортного средства a, но никогда не превысит расстояние s от транспортного
средства b. В реальном исполнении результат планирования скорости
посредством Плана скорости 2 предполагает, что БА необходимо уступить дорогу b и обогнать a, занимая таким образом позицию между a и b.
 План скорости 3: при таком варианте БА будет разгоняться до тех пор,
пока не обгонит a и b. В любом случае его расстояние s всегда будет больше, чем у a и b.
Поведенческое решение
• Уступить a
• Обогнать b

=> S План скорости 2

b
s

План
скорости 3

S_end
b

a
a

План
скорости 2

План
скорости 1
t

Рис. 6.5. Планирование скорости с помощью ST-графика

Предположим, что конечным поведенческим решением относительно
транспортного средства a должно быть «обогнать», а относительно b – «уступить». В соответствии с такими решениями затраты на прохождение пути по
сеткам перед транспортным средством a будут ниже, что поощрит алгоритм
отдать предпочтение именно этому варианту. Стоимость сеток позади b также будет снижена с целью задать алгоритмические предпочтения для путей
вблизи b. Между тем стоимость сеток позади a или перед b будет выше, что
позволит алгоритму поиска избежать этих областей.
Сетки, расположенные достаточно близко к любому препятствию, будут
иметь очень высокую стоимость, что гарантирует избежание столкновений.
Кроме того, для кривой планирования в целом будет устанавливаться более
высокая стоимость на ускорение. Например, если траектория, соответствующая соединению между двумя точками на кривой планирования скорости,
слишком крутая и предполагает очень большое или даже прерывистое ускорение, тогда стоимость, связанная с ускорением, необходимым для этих двух
точек планирования скорости, может быть установлена ​​чрезвычайно высокой.
Фактически резкое увеличение скорости приведет к потере управления авто-

150

 Принятие решений, планирование и управление

мобилем из-за большого ускорения. Заметим, что потеря управления в данном
случае означает, что в настоящий момент фактическое положение транспортного средства (положение и скорость) слишком сильно отклоняется от желаемого положения, определенного траекторией планирования движения. Иногда важно отрегулировать расположение точек планирования скорости внутри
выбранной сетки, чтобы оптимизировать общую стоимость траектории планирования скорости. Траектория планирования скорости на ST-графике может
быть вычислена с учетом профиля затрат каждой сетки и ее определений посредством алгоритмов поиска на графах, таких как A* или алгоритм Дейкстры.
После вычисления кривой планирования скорости на ST-графике можно определить скорость (наклон) и ускорение (производную от наклона) для каждой
точки траектории в соответствии с результатами планирования движения.
С помощью модулей планирования пути и планирования скорости, описанных
выше, мы сводим поведенческие решения, определяемые пунктом назначения и окружающей средой на нашем пункте назначения и окружающей среде,
в конкретную траекторию, обладающую определенными пространственновременными характеристиками. Затем осуществляется выборка точек данной
траектории. Данные точки вместе с их атрибутами скорости, ускорения, кривизны и т. д. служат входными данными в нижестоящем модуле управления на
основе обратной связи. Задача этого модуля состоит в выработке сигналов для
физического управления транспортным средством.
Здесь стоит упомянуть, что ST-график – это не только интуитивно понятный
метод для решения задачи планирования скорости, но также важная концепция в методе одновременного продольного и поперечного планирования (который мы опишем в следующем разделе).

6.2.3. Планирование движения посредством продольного
и поперечного планирования
Вместо планирования пути, а затем планирования скорости, в [10] авторы выдвигают идею продольного и поперечного планирования. Продольное и поперечное измерения естественно укладываются в систему SL-координат,
описанную в разделе 6.3.1, где s соответствует продольному направлению, а l –
поперечному. Как в продольном, так и в поперечном направлениях проблема
планирования схожа с задачей планирования скорости на ST-графике. Так, простой, но понятный подход может заключаться в применении ST-графика и поиска по графику в направлениях s-t и l-t. Однако подход на основе ST-графика,
который мы рассматривали выше, вполне подходит для обхода препятствий
и выполнения поведенческих решений восходящего потока, но не является
идеальным методом для определения оптимальной желаемой пространственно-временной траектории. Желаемая траектория планирования движения
должна быть плавной, что обычно математически представляется в виде непрерывности положения с его производными в измерении (например, положение, скорость и ускорение). Легкость и комфорт определяется параметром
движения рывками (jerk parameter), который представляет собой скорость ускорения. Рассмотрим оптимальную по критерию рывков траекторию, соединяющую начальное состояние P0 = [p0, ṗ0, p̈ 0] и конечное состояние P1 = [p1, ṗ1, p̈1], где

6.2. Планирование движения  151
положение P может быть либо продольным s-положением, либо поперечным
l-положением во временном интервале T: = t1 – t0. Определим интеграл от ква...
драта рывка: Jt (pt): = ∫t1p 2 (τ) dτ. Для минимизации любой функции стоимости
следующего общего вида:
C  K j Jt  K t g (T )+K p h(p1 )

(где g и h – произвольные функции, а Kj, Kt, Kp > 0) – оптимальным решением
является многочлен пятого порядка. Доказательство с точки зрения оптимального управления очевидно, поскольку конечные затраты g(T) и h(p1) не меняют уравнение Эйлера–Лагранжа (доказательство продемонстрировано в [10]).
Интуитивно функция стоимости учитывает интеграл высокого рывка Jt вдоль
траектории, учитывая также время T и конечное положение h(p1).

Планирование в поперечном направлении
Первым объектом одномерного планирования является поперечное
l-направление. Затем начальное состояние P0 переходит в D0 = [d0, d0, d0], и начальное состояние устанавливается в соответствии с фактическим конечным
состоянием предыдущего фрейма планирования, благодаря чему сохраняется
непрерывность. Выбор конечного состояния P1 осуществляется из ряда возможных поперечных смещений d, где d1 = d1 = 0, поскольку предпочтительным является движение в направлении, параллельном центральной опорной
линии (s-направление). Функции g и h выбраны так, что g(T) = T и h(d1) = d12 .
Мы можем видеть, что за медленную конвергенцию, а также любое поперечное отклонение от d = 0 в конечном состоянии, предусматривается «наказание». Оптимальным решением является многочлен пятого порядка: loptimal(t) =
a5t5 + a4t4 + a3t3 + a2t2+a1t + a0, что минимизирует функцию стоимости:
Cl  K j J t (l(t ))+K tT  K l d12 .
Коэффициенты a5, a4, a3, a2, a1, a0 могут быть вычислены с граничными условиями при D0 = [d0, d0, d0] и D0 = [d1, d1 , d1]. Мы можем осуществить выборку
набора кандидатов di и вычислить набор лучших кандидатов одномерных траекторий как Solutioni, j из [d1, d1 , d1, T]i,j = [d1, 0, 0, Tj]. Каждое возможное решение
будет иметь свою стоимость. Для каждого кандидата мы проверяем, согласуется ли это решение с вышестоящим поведенческим решением, и делаем это
решение недействительным, если обнаруживаются какие-либо нарушения/
конфликты. Остальные допустимые траектории предлагают набор кандидатов
поперечного измерения, который будет использоваться при двумерном вычислении запланированной траектории. Обратите внимание, что в этом контексте поперечные траектории представлены функциями l(t). Мы называем их
траекториями в поперечном измерении.
Описанный выше метод хорошо работает для высокоскоростных траекторий,
где продольное и поперечное направления движения могут быть выбраны независимо. Однако такой подход не действует на низких скоростях. На очень низких
скоростях многие из сгенерированных траекторий в поперечном измерении,
вероятно, будут недействительны ввиду неголономного характера управления

152



Принятие решений, планирование и управление

транспортным средством. При низкой скорости следует активировать другой
режим планирования движения поперечных измерений. В таком режиме поперечная траектория зависит от продольной и обозначается как llow-speed(t) = l (s(t)).
Поскольку поперечное движение зависит от продольного, следует рассматривать
поперечное движение как функцию продольного положения s. Функция стоимости имеет тот же формат, но зависит от длины дуги s, а не t, поэтому мы запишем
ее следующим образом:
Cl  K j J t (l(s ))+K t S  K l d12 ,
где S = s1 – s0 и все производные берутся по s вместо t. Оптимальное решение
такой функции стоимости представляет собой функцию пятого порядка от s и
может быть вычислена с выбранным Tj и конечным состоянием di.

Планирование в продольном направлении
Планирование в продольном направлении происходит аналогичным образом,
за исключением того, что иногда конечное состояние, которое мы хотим отслеживать, может зависеть от движущейся цели. В частности, на продольное движение влияют определенные цели. Например, нашей целью может быть достижение определенной скорости за определенное время или же просто следование за
ведущим транспортным средством. Такие цели/задачи определяют «конечное
состояние». К примеру, режим круиза (удержание определенной скорости) определяет скорость в конечном состоянии и не заботится о положении в конечном
состоянии. Также возьмем случай следования за ведущим транспортным средством, где конечное состояние будет таким: в моменте времени в будущем t мы
хотим быть в определенной позиции (скажем, на x м позади ведущего транспортного средства) и иметь определенную скорость (такую же, как у ведущего
транспортного средства). В случае следования за ведущим конечное состояние
определяется вектором, состоящим из s, ds (или v) и dds (или a). Предположим,
что нам необходимо отслеживать траекторию starget(t). Начальное состояние
S0 = [s0, ṡ0, s̈0]. Набор возможных траекторий может быть выбран с разными ∆si
(положительными или отрицательными) и Tj:
Si , j   s1 , s1 , 
s1 ,Tj   (st arg et (Tj )+ si ), st arg et (Tj ), st arg et (Tj ),Tj  .
Далее мы обсудим характер функции стоимости при трех различных сценариях принятия поведенческого решения.

Следование за другим транспортным средством
Желаемое продольное движение БА в направлении s для следования за впереди идущим транспортным средством состоит в поддержании минимального
расстояния, а также временного промежутка перед идущим впереди транспортным средством. Здесь мы хотели бы подчеркнуть важность выходных данных модуля прогнозирования движения, поскольку starget(t) будет зависеть от прогнозируемой траектории впереди идущего транспортного средства sfront-vehicle(t)
во время цикла/фрейма планирования. Целевое перемещение определяется
выражением:

6.2. Планирование движения  153
st arg et (t )=S front vehicle (t )  Dmin   sfront vehicle (t ) ,
что подразумевает наличие, по крайней мере, расстояния Dmin и постоянного
временного интервала γ при заданной скорости идущего впереди транспортного средства ṡfront-vehicle(t) в конечный момент времени. Если представить желаемое
конечное состояние как [sdesire, ṡdesire, s̈desire], функция стоимости принимает вид:
C s  K j Jt  K tT  K p (s1  sdesire )2 .
Если мы предположим, что прогнозируемая траектория имеет постоянное
ускорение: s̈front-vehicle(t) = s̈front-vehicle(t0), то скорость ṡfront-vehicle(t) и положение sfront-vehicle(t)
могут быть интегрированы следующим образом:
sfront -vehicle (t )  
sfront -vehicle (t0 )+
sfront -vehicle (t0 )(t  t0 ),
1
sfront -vehicle (t )=sfront -vehicle (t0 )+sfront -vehicle (t0 )(t  t0 )+ 
sfront -vehicle (t0 )(t  t0 )2 .
2
Скорость конечного состояния в продольном направлении равна ṡtarget(t) =
ṡfront-vehicle(t) – γs̈front-vehicle(t), а ускорение s̈target(t) = s̈front-vehicle(t1). Иногда ведущего транспортного средства или транспортного средства, за которым необходимо следовать, просто нет, и в таком случае функция стоимости здесь будет не актуальна
для любого транспортного средства, идущего впереди, или ведущего транспортного средства. Это означает отсутствие объекта, за которым необходимо
следовать. В таком случае целью являются «стоимость отслеживания транспортного средства» в следующей функции стоимости:
C s  K j Jt  K tT  K p (s1  sdesire )2 .
В этом случае нет объекта, за которым нужно следовать, но скорость сохраняется. Следовательно, оптимальным набором траекторий будет многочлен
четвертого, а не пятого порядка с набором ∆ṡi и Tj. Иначе говоря, когда нет
«идущего впереди» или ведущего транспортного средства, за которым необходимо следовать, мы заботимся только о достижении определенной скорости
в определенное время.

Смена полосы движения, предполагающая решения «уступить»/«обогнать»
Сценарий
смены
полосы
движения,
предполагающий
решения
«уступить»/«обогнать», схож с описанным выше сценарием, где БА необходимо следовать за другим транспортным средством в продольном направлении.
Обозначим продольное перемещение цели как starget(t).
 При смене полосы движения и принятии решения уступить транспортному средству b целевая траектория принимает следующий вид:
st arg et (t )=Sb (t )  Dmin-yie lg   sb (t ).
 При смене полосы движения путем обгона автомобиля a целевая траектория принимает вид:

154

 Принятие решений, планирование и управление
st arg et (t )=Sa (t )+Dmin-overtake   sa (t ).

 При объединении вышеописанных сценариев с a и b (как на рис. 6.5) целевая траектория принимает вид:
1
st arg et (t )=  sa (t )+sb (t ) .
2

Остановка
Когда БА необходимо остановиться на пешеходном переходе или стоп-линии
у светофора, можно использовать ту же форму функции стоимости, и целевое
движение станет постоянным для s-направления с starget(t)= sstop с производными
первого и второго порядка, равными 0 (ṡtarget(t) = 0 и s̈target(t) = 0). После вычисления
возможных наборов как продольных, так и поперечных траекторий оптимальная
траектория выделяется из возможных комбинаций |Trajlongitudinal| × |Trajlateral|. Каждая
комбинированная траектория сравнивается с выходными данными модуля принятия поведенческих решений на предмет неопределенности, а также избежания
столкновений. Кроме того, отфильтровываются траектории, которые отправляются в модуль управления на основе обратной связи. Окончательная траектория
выбирается из оставшихся допустимых траекторий с минимальными взвешенными продольными и поперечными затратами.

6.3. Управление на основе обратной связи
С точки зрения автономного управления модуль управления на основе обратной связи в беспилотных технологиях не слишком отличается от общепринятого автоматизированного управления. Как управление беспилотным
транспортным средством, так и обычное автоматизированное управление,
основываются на отслеживании разницы между фактическим положением
и положением на определенной заранее траектории посредством непрерывной обратной связи. В [11] представлены исследования на тему управления
на основе обратной связи. Например, авторы [8, 12] в качестве дополнения
к традиционной системе управления на основе обратной связи представляют
дополнительные методы, позволяющие избежать столкновений и оптимизировать маршруты. В предлагаемой нами системной архитектуре беспилотного планирования и управления модуль управления на основе обратной связи
основывается преимущественно на традиционной концепции управления БА
на основе обратной связи и отслеживания положения. На сегодняшний день
данный аспект хорошо изучен, поэтому в этой книге мы упустим его. Однако,
чтобы дать общее представление об управлении БА на основе обратной связи, мы рассмотрим две важные концепции, в частности представим модель
транспортного средства «Велосипед», а также обсудим систему управления на
основе обратной связи с применением ПИД (пропорционально-интегральнодифференцирующий регулятор) (PID ― proportional–integral–derivative controller)
[13, 14]. С подробным описанием других систем управления БА на основе обратной связи читатель может познакомиться в [12].

6.3. Управление на основе обратной связи  155

6.3.1. Модель «Велосипед»
С целью более детального описания алгоритма генерации траектории в планировании движения в разделе 3.1 мы кратко представили модель транспортного
средства. В этом разделе мы подробно опишем наиболее часто используемую
в управлении БА на основе обратной связи модель: «Велосипед». В соответствии
с данной моделью положение транспортного средства рассматривается в двумерной плоскости. Оно может быть описано центральным положением (x, y) и
углом курса θ между транспортным средством и осью x двухмерной плоскости.
В соответствии с данной моделью транспортное средство рассматривается как
неизменяемое тело, передние и задние колеса которого соединяются жесткой
осью. Передние колеса могут свободно поворачивать по курсу в пределах определенного диапазона углов, в то время как задние колеса всегда остаются параллельными кузову и не могут поворачивать. Угол поворота передних колес
определяется положением руля. Важной характеристикой велосипеда является
то, что транспортные средства не могут двигаться в поперечном направлении,
не двигаясь в продольном направлении. Данная характеристика также рассматривается как неголономное ограничение. В данной модели транспортного
средства неголономная связь обычно выражается в виде частных производных
равенств или неравенств. При этом инерция и проскальзывание в точке контакта шины с поверхностью земли не учитываются. Отметим, что данные допущения не оказывают существенного влияния при низких скоростях и дают
лишь незначительную погрешность. Однако на высоких скоростях влияние
инерции на управление БА представляется более значительным, и игнорировать его нельзя. Физическая модель транспортного средства, учитывающая
инерционный эффект движения на высокой скорости [12], более сложна, а ее
описание выходит за рамки этой книги.
На рис. 6.6 представлено положение транспортного средства в модели «Велосипед». Мы представляем xy-плоскость в качестве двумерной плоскости, где
ȇx и ȇy по отдельности представляют единичные векторы в направлениях x и y.
Точка контакта передних колес с поверхностью обозначена как pf, а задних –
как pr . Курсовой угол θ – это угол между транспортным средством и осью x (угол
между вектором pr и единичным вектором ȇx). Угол поворота рулевого колеса
δ – угол между направлением переднего колеса и кузовом транспортного средства, где точки контакта передних и задних колес с поверхностью (pf и pr) удовлетворяют следующим свойствам:


(pr  ey ) cos ( )-(pr  ex ) = 0,


(p f  ey ) cos (   )-(p f  ex ) sin( + ) = 0,
где ṗf и ṗr – вектор мгновенной скорости переднего и заднего колеса в точке их
контакта с поверхностью. Рассмотрим скалярные проекции скорости заднего
колеса на осях x и y: xr: = pr · ȇx и xy: = pr · ȇy, а также тангенциальную скорость
заднего колеса vr: = ṗr · (pf - pr) / ǁ pf - pr ǁ. Следовательно, указанные выше ограничения для pf и pr могут быть представлены как :

156

 Принятие решений, планирование и управление
xr  vr cos ( ),
yr  vr sin ( ),

  vr tg ( )/l ,
где l представляет собой длину транспортного средства (расстояние между
центром передней оси и центром задней оси). Также связь между переменными переднего колеса может быть представлена как:
xr  vr cos (   ),
y f  vr sin (   ),

  v f sin ( )/l.
Обратите внимание, что скалярные переменные скорости передних и задних колес удовлетворяют уравнению vr = vfcos(δ).
ṗf

δ

l
ṗr

ȇy

θ

pf

pr

ȇx
Рис. 6.6. Модель «Велосипед» в управлении на основе обратной связи [5], используется
с разрешения правообладателя

В описанной выше модели «Велосипед» управление означает нахождение
параметров δ ∈ [δmin, δmax] рулевого колеса и скорости движения vr ∈ [δmin, δmax],
которые удовлетворяют ограничениям физического положения. На практике
с целью упрощения вместо фактических желаемых значений скорости рулевого колеса или движения вперед выходными сигналами управления являются
скорость изменения угла поворота рулевого колеса ω и процентное соотношение газа/тормоза. Связь между ω и δ представляется в упрощенном виде
как tan(δ)/l = ω/vr = κ. Следовательно, задача сводится к нахождению скорости
поворота рулевого колеса δ, удовлетворяющей ограничениям. Такое упрощение называется моделью «Одноколесного велосипеда», характеризующейся
упрощением параметра скорости движения вперед, вследствие чего данный
параметр зависит только от длины оси транспортного средства и скорости изменения угла поворота рулевого колеса.

6.3. Управление на основе обратной связи  157

6.3.2. ПИД-регулирование
Наиболее типичным и широко используемым алгоритмом управления БА на
основе обратной связи является система управления с обратной связью с ПИДрегулированием, представленная на рис. 6.7, где e(t) – текущая динамическая
погрешность между желаемой и фактической переменными положения. Переменная, которую необходимо отслеживать, может представлять разницу
с траекторией в продольном/поперечном направлении, разницу угла/кривизны в различных точках траектории или даже комплексной комбинацией этих
переменных. На рис. 6.7 регулятор P представляет обратную связь для текущей
динамической погрешности, коэффициент которой определяется Kp; регуляторы I и D представляют собой интегральную и дифференциальную части, коэффициенты которых определяются Kl и KD соответственно.
P
r (t)
+



e (t)

Kpe(t)
t

I

Ki ∫0 e(τ)dτ

D

Kd de(t)
dt



+
+ ∑
+

u (t)

Объект/Процесс

y (t)

Рис. 6.7. Система управления на основе обратной связи с ПИД-регулятором (на основе
материалов [13])

Что касается модуля управления на основе обратной связи в беспилотной
системе, его задача состоит в управлении транспортным средством и как можно более точном следовании траектории, определяемой вышестоящим модулем планирования движения. Таким образом, мы предлагаем использовать
методологию из [15] и задействовать два ПИД-регулятора, где один из них будет отвечать за управление углом поворота рулевого колеса δ, а другой – за скорость Vs. В заданный период времени n ПИД-регулятор угла поворота рулевого
колеса выглядит следующим образом:
n

 n  K1 e  K 2le / Vs  K 3ie  K 4  le t .
i 1

Переменные θe и le – показатели динамической погрешности между фактическим и желаемым положениями в точке траектории, определенной модулем планирования движения, в данный временной интервал n. Для каждого
временного фрейма n соответствующее положение на траектории рассматривается как контрольная точка. θe представляет собой угловую разницу между
направлением положения транспортного средства и направлением контрольной точки, в то время как le отслеживает разницу в поперечном направлении
между фактическим поперечным положением транспортного средства и поперечным положением контрольной точки. Vs представляет собой скорость
движения вперед. Коэффициенты K1 и K2 предназначены для P-регулятора,

158



Принятие решений, планирование и управление

K3 – для дифференциальной части (D-регулятор), а K4 – для интегральной части (I-регулятор). В то время как регулятор угла поворота рулевого колеса служит для определения направления, другой ПИД-регулятор ориентирован на
скорость Vs при движении вперед в продольном направлении (s-направлении)
и управляет состоянием дроссельной заслонки/тормоза. Данный регулятор
учитывает разницу между фактической кривизной положения транспортного
средства и кривизной контрольной точки. Исходя из данных показателей, мы
можем вывести функцию для отслеживания погрешности скорости движения
вперед. С учетом желаемой скорости движения вперед и фактической скорости
движения xxx ПИД-регулятор скорости движения может быть представлен как:
Ve  Vdesired  Vs ,

U v  K pVe  K I  Ve t  K D Ve / t ,
где Kp, KI и KD представляют собой коэффициенты преобразования для пропорциональной, интегральной и дифференциальной частей соответственно,
а UV – выходной сигнал дроссельной заслонки/тормоза для заданного временного интервала n.
Описанные выше ПИД-регуляторы являются наиболее типичными и базовыми методами реализации модуля управления БА на основе обратной
связи. Чтобы сделать беспилотные технологии еще более комфортными для
пассажиров, потребуются более сложные системы управления на основе обратной связи для дальнейшего отслеживания и настройки таких переменных,
как кривизна и движение рывками. Задача создания плавной и точной системы управления, которая позволит транспортному средству следовать заранее
определенной траектории, не является уникальной задачей для беспилотных
технологий, поскольку на сегодняшний день уже существует множество вариантов ее решения [15].

6.4. Заключение
В главах 5 и 6 мы подробно описали общую архитектуру планирования и управления беспилотными транспортными средствами, состоящую из модулей
маршрутизации, принятия поведенческих решений, прогнозирования движения,
планирования движения и управления на основе обратной связи. Все эти модули
уже имеют варианты реализации как в академических кругах, так и на производстве. Каждая реализация имеет свою сильную сторону, будь то прочная теоретическая основа или отработанная отраслевая практика. На самом деле мы
считаем, что главная проблема беспилотных технологий заключается не в решении конкретных задач на каком-либо отдельном уровне или в модуле, а в
философии того, как мы разделяем общие проблемы планирования и управления БА на отдельные задачи и затем решаем их по порядку. С этой точки
зрения мы не стремимся предложить все возможные решения, основываясь
на различных исследованиях. Вместо этого мы предлагаем читателю последовательный набор рабочих решений для каждого модуля. Мы сосредоточились
на четком определении задач (и их объема) для каждого модуля. Также мы показали, как в ходе выполнения этих задач последовательно решается общая

6.5. Справочные материалы  159
масштабная проблема, следуя потоку данных от абстрактности к конкретности. В каждом модуле или на каждом уровне формулируется отдельная задача,
а затем находится ее практическое решение. Помимо прочего, мы обсудили,
как каждый нижестоящий модуль использует выходные данные вышестоящего модуля, а затем на основе этих данных вычисляется конкретное решение,
определяющее фактические управляющие сигналы для БА.

6.5. Справочные материалы
[1]

[2]

[3]
[4]

[5]

[6]
[7]
[8]
[9]

Montemerlo, M., Becker, J., Bhat, S., Dahlkamp, H., Dolgov, D., Ettinger, S.,
Haehnel, D., Hilden, T., Hoffmann, G., Huhnke, B., Johnston, D., Klumpp, S.,
Langer, D., Levandowski, A., Levinson, J., Marcil, J., Orenstein, D., Paefgen, J.,
Penny, I., Petrovskaya, A., Pflueger, M., Stanek, G., Stavens, D., Vogt, A., and
Thrun, S. 2008. Junior: The Stanford entry in the urban challenge. Journal
of Field Robotics: Special Issue on the 2007 DARPA Urban Challenge, 25(9),
pp. 569‒597.
Urmson, C. , Anhalt, J., Bagnell, D., Baker, C., Bittner, R., Clark, M. N., Dolan, J.,
Duggins, D., Galatali, T., Geyer, C., Gittleman, M., Harbaugh, S., Hebert, M.,
Howard,T. M., Kolski, S., Kelly, A., Likhachev, M. McNaughton, M., Miller, N.,
Peterson, K., Pilnick, B., Rajkumar, R., Rybski, P., Salesky, B., S, Y. W., Singh, S.,
Snider, J., Stentz, A., Whittaker, W., Wolkowicki, Z., Ziglar, J., Bae, H., Brown,
T., Demitrish, D., Litkouhi, B., Nickolaou, J., Sadekar, V., Zhang, W., Struble, J.,
Taylor, M., Darms, M., and Ferguson, D. 2008. Autonomous driving in urban
environments: Boss and the urban challenge. Journal of Field Robotics: Special Issue on the 2007 DARPA Urban Challenge, 25(9), pp. 425‒466.
Buehler, M., Lagnemma, K., and Singh, S. (Eds.) 2009. The DARPA Urban Challenge: Autonomous Vehicles in City Traffic. Springer-Verlag Berlin Heidelberg. DOI: 10.1007/978-3-642-03991-1.
Katrakazas, C., Quddus, M., Chen, W. H., and Deka, L. 2015. Real-time motion planning methods for autonomous on-road driving: State-of-the-art and
future research directions. Elsevier Transporation Research Park C: Emerging
Technologies, Vol. 60, pp. 416‒442. DOI: 10.1016/j.trc.2015.09.011.
Paden, B., Cap, M., Yong, S. Z., Yershow, D., and E. Frazzolo. 2016. A survey
of motion planning and control techniques for self-driving urban vehicles.
IEEE Transactions on Intelligent Vehicles, 1(1), pp. 33‒55. DOI: 10.1109/
TIV.2016.2578706.
Brechtel,S. and Dillmann, R. 2011. Probabilistic MDP-behavior planning for
cars. IEEE Conference on Intelligent Transportation Systems. DOI: 10.1109/
ITSC.2011.6082928.
Ulbrich, S. and Maurer, M. 2013. Probabilistic online POMDP decision making
for lane changes in fully automated driving. 16th International Conference on
Intelligent Transportation Systems (ITSC). DOI: 10.1109/ITSC.2013.6728533.
Gu, T., Snider, J., M. Dolan, J. and Lee J. 2013. Focused trajectory planning for
autonomous on-road driving. IEEE Intelligent Vehicles Symposium (IV). DOI:
10.1109/ IVS.2013.6629524.
Mcnaughton, M. 2011. Parallel algorithms for real-time motion planning.
Doctoral Dissertation. Robotics Institute, Carnegie Mellon University.

160



[10]

Werling, M., Ziegler, J., Kammel, S., and Thrun, S. 2010. Optimal trajectory
generation for dynamic street scenarios in a frenet frame. In 2010 IEEE International Conference on Robotics and Automation (ICRA), (pp. 987‒993). IEEE.
DOI: 10.1109/ROBOT.2010.5509799.
Zakaria, M. A., Zamzuri, H., and Mazlan, S. A. 2016. Dynamic curvature steering control for autonomous vehicle: Performance analysis. IOP Conference
series: Materials Science and Engineering, 114, 012149. DOI: 10.1088/1757899X/114/1/012149.
Connors, J. and Elkaim, G.H. 2008. Trajectory generation and control methodology for an ground autonomous vehicle. AIAA Guidance, Navigation and
Control Conference.
https://en.wikipedia.org/wiki/PID_controller.
National Instruments: http://www.ni.com/white-paper/3782/en/.
Zakaria, M.A., Zamzuri, H., and Mazlan, S.A. 2016. Dynamic curvature steering control for autonomous vehicle: Performance analysis. IOP Conference
series: Materials Science and Engineering, 114, 012149. DOI: 10.1088/1757899X/114/1/012149.

[11]

[12]
[13]
[14]
[15]

Принятие решений, планирование и управление

Глава

7

Планирование и управление
на основе обучения
с подкреплением
Аннотация
Несмотря на то что подходы, основанные на оптимизации, по-прежнему
пользуются популярностью при решении задач планирования и управления, в связи с последними разработками в области искусственного
интеллекта популярность подходов, основанных на обучении, также набирает обороты. Современные подходы к планированию и управлению,
основанные на обучении, имеют свои ограничения, поэтому мы считаем,
что не следует упускать их из виду, так как в будущем такие подходы
станут чрезвычайно важны. В частности, обучение с подкреплением
широко используется при решении задач, оформленных в виде раундов
или временных шагов, каждый из которых основывается на направляющей информации, такой как вознаграждения. По этой причине было
проведено множество экспериментов относительно методологии решения задач планирования и управления БА различных уровней. Так, мы
можем сделать вывод о том, что подходы к планированию и управлению
на основе обучения с подкреплением со временем станут эффективным
вариантом решения задач планирования и управления БА или, по крайней
мере, станут полезным дополнением к уже существующим подходам.

7.1. Введение
В двух предыдущих главах мы описали структуру планирования и управления,
которая в общем смысле состоит из модулей маршрутизации, прогнозирования движения, принятия поведенческих решений, планирования движения
и управления на основе обратной связи. Предлагаемый нами подход к принятию поведенческих решений основывается на иерархии сценариев и правил,
что позволяет обеспечивать высокую безопасность. Фактически как в модуле
планирования движения, так и в модуле управления на основе обратной связи
решаются две задачи оптимизации при определенных ограничениях. Хотя та-

162

 Планирование и управление на основе обучения с подкреплением

кой традиционный подход к планированию и управлению является доминирующим, подходы, основанные на обучении [1, 2, 3, 8, 9], после своего появления
также привлекли повышенный интерес исследователей. К слову, эффективность данных подходов доказывается и на практике [5, 6].
Однако, несмотря на популярность подходов, основанных на оптимизации,
мы считаем необходимым уделить также некоторое внимание технологиям на
основе обучения. В частности, в этой главе мы хотели бы сделать акцент на
подходах к планированию и управлению, основывающихся на обучении с подкреплением. Такой выбор обусловлен тремя причинами. Первая заключается
в том, что, по нашему мнению, беспилотные технологии все еще находятся на
начальном этапе своего развития, а существующие сценарии их применения
по сложности не могут сравниться с условиями реальной неограниченной городской среды. Большинство автопроизводителей и компаний, занимающихся
беспилотными технологиями, тестируют свои БА с помощью дорожных испытаний, которые, как правило, проходят на ограниченных территориях или даже
на определенных ограниченных маршрутах. Фактически ни одно существующее на сегодняшний день беспилотное транспортное средство не может удовлетворить требования уровня L4 [10] в условиях неограниченной городской
среды. Результаты, полученные в условиях ограниченных сценариев, таких как
замкнутая автомагистраль или другая замкнутая область (аэропорт, производственная зона и т. д), не гарантируют эффективности подходов, основанных
на оптимизации, для решения всех возможных реальных задач, возникающих
в неограниченной среде.
Вторая причина заключается в том, что применение только подходов, основанных на оптимизации, не позволяет в полной мере использовать накопленные ранее данные о БА. В частности, упомянутые подходы, как правило,
основываются на формулировке задачи планирования как математической оптимизации, цель которой состоит в максимизации определенных вознаграждений (и минимизации стоимости) при определенных ограничениях. Обычно
цели и ограничения, устанавливаемые в рамках таких подходов, основываются
на человеческом опыте или эвристике. При этом репрезентативность человеческого опыта или эвристических методов ограничена, а охват всех возможных
ситуаций представляется весьма сложной задачей. Кроме того, данные о том,
как транспортными средствами управляют водители-люди, не используются
в явной форме. Мы считаем, что накопление и применение данных такого рода
может помочь при разрешении критических ситуаций или сложных случаев,
при которых может быть недостаточно даже применения нескольких реализаций одновременно. Все это особенно актуально в эпоху больших объемов
данных, когдаосновным критерием важности данных является их полезность,
а также человечество уже имеет накопленные массивы данных о поведении
как водителей-людей, так и БТС. Таким образом, сегодня вопрос о том, как использовать накопленные массивы данных в целях более эффективного решения задач планирования и управления БА, является крайне актуальным. Очевидно, что из этих массивов данных может быть извлечена крайне полезная
информация, но на сегодняшний день еще не последовало успешных попыток
решения этой задачи. Традиционные подходы, основанные на оптимизации,
не дают широких возможностей использовать описанные выше накопленные

7.2. Обучение с подкреплением  163
данные в полном объеме. Методы, основанные на обучении, позволяют использовать такие данные естественным образом. Помимо двух перечисленных
выше причин, последняя, но самая важная заключается в том, что люди также
учатся водить автомобили, и в большинстве случаев это происходит с участием
учителей, но не посредством оптимизации стоимости и цели. В этом и состоит наиболее важный аргумент в пользу подходов на основе обучения с подкреплением. Процесс обучения с подкреплением осуществляется посредством
итеративного взаимодействия с окружающей средой. Данный процесс схож
с обучением водителей-людей, которое строится на коммуникации с учителем
и соответствует определенной программе. В этом смысле обучение с подкреплением уже применялось при решении задач управления в области робототехники, и мы уверены, что оно также сыграет решающую роль в решениях
задач планирования и управления БА.
В начале этой главы мы представим основы обучения с подкреплением. Затем обсудим два популярных алгоритма такого обучения: Q-обучение
(Q-learning) и «актор–критик» (Actor-Critic). Такие решения, основанные на
обучении с подкреплением, относятся к различным уровням планирования
и управления БА. Некоторые из них работают на уровне принятия поведенческих решений [3,9], а другие работают напрямую с выходными данными модулей планирования или даже на уровне выходных сигналов модуля управления
на основе обратной связи [2]. Кроме того, подходы на основе обучения с подкреплениями продемонстрировали свою эффективность в ряде различных
сценариев [1]. Тем не менее решение задач планирования и управления БА
в неограниченных городских сценариях по-прежнему остается очень сложной
проблемой, которая не может быть решена полностью.

7.2. Обучение с подкреплением
Ключевой характеристикой обучения с подкреплением является то, что в процессе обучения система взаимодействует с окружающей средой. Таким образом,
процесс является замкнутым, как представлено на рис. 7.1. Объектом обучения
с подкреплением является так называемый агент, который принимает решения на основе совершения различных действий. Все, что находится вне агента,
обозначается как среда. Так, обучение с подкреплением представляет собой
процесс, в котором агент взаимодействует с окружающей средой, совершая
различные действия, ощущая состояния и получая вознаграждения.
St+1

Среда

Rt+1

Состояние: St

Вознаграждение: Rt

Действие: At

Агент

Рис. 7.1. Структура процесса обучения с подкреплением: агент взаимодействует
с окружающей средой (совершает действие, ощущает состояние и получает вознаграждение)

164

 Планирование и управление на основе обучения с подкреплением

Более конкретно, процесс обучения состоит из шагов, индексированных временем t = 0,1,2,3…. В каждый момент времени t агент «считывает» среду и получает информацию о ее состоянии, обозначенном как St ∈ S, где S – пространство
состояний. Затем агент должен принять решение, выполнив действие At ∈ A(St),
где A(St) – пространство действий с учетом состояния St. После выполнения действия в момент времени t +1 среда интерактивно переходит в состояние St + 1
и дает скалярное вознаграждение Rt. Обновленное состояние St + 1 немедленно
воспринимается агентом, который также мгновенно получает вознаграждение Rt. Процесс генерации вознаграждения окружающей средой называется
функцией вознаграждения. Функция вознаграждения определяет мгновенное
вознаграждение, которое отображает состояние (или пару «действие–состояние») среды в скалярном виде, указывающее на непосредственную внутреннюю
степень «желательности» такого перехода. Цель агента – научиться действовать
таким образом, чтобы максимизировать общее накопленное в течение всего
процесса вознаграждение. В отличие от функции вознаграждения, которая
представляет «желательность» перехода между состояниями путем выполнения действия, общее накопленное вознаграждение называется выгода (returns).
Если вознаграждения после временного шага t равны Rt + 1, Rt + 2, Rt + 3…, одной
простой формой выгоды (return), которую мы могли бы стремиться максимизировать, является просто сумма вознаграждений:
Gt  Rt 1 , Rt 2 , Rt 3 ...  RT ,
где T – последний временной шаг. Такой тип выгоды для максимизации подходит для сценариев, в которых агент взаимодействует с окружающей средой в условиях ограниченных конечных шагов (например, два игрока играют
в покер). Здесь каждая допустимая последовательность состояний начинается
с определенных состояний и всегда заканчивается набором состояний, называемых конечными состояниями (terminal states). Каждая допустимая последовательность состояний называется эпизодом (episode), а задачи такого типа –
эпизодическими задачами обучения (episodic learning tasks).
Однако существует одна проблема, при которой допустимая последовательность состояний может быть бесконечной. Задачи такого типа называются продолжающимися задачами (continuing tasks). В таких случаях суммировать
вознаграждения нецелесообразно, поскольку ввиду бесконечности состояний
последний временной шаг недостижим. Вместо этого функция выгоды (return
function) или цель для максимизации представляется как ожидаемое дисконтированное вознаграждение (expected discounted rewards):


Gt  Rt 1   Rt 2   2 Rt 3 ...    k Rt k 1 ,
k 0

где 0 ≤ γ ≤ 1 – параметр, определяющий степень дисконтирования оценки будущего вознаграждения (на один временной шаг вперед). В частности, данный
γ-параметр дисконтирует будущее вознаграждение. Например, сумма вознаграждения X в момент времени t оценивается как γ×X в момент времени t – 1.
Именно это мы подразумеваем под словами «на один временной шаг вперед».

7.2. Обучение с подкреплением  165
Показать, что если вознаграждение на любом временном шаге ограничено, то
накопленные дисконтированные вознаграждения также будут ограничены, –
математически тривиально. В предельном случае, когда γ = 0, агент заботится
лишь о максимальном немедленном вознаграждении.
На каждом временном шаге агенту необходимо выбрать действие, которое
нужно предпринять с учетом воспринимаемого состояния. Агент должен следовать стратегии, которая максимизирует ожидаемую выгоду. Такая стратегия
называется политикой и обозначается как π. Политика π определяет стратегию
того, как обучающийся агент ведет себя в любом заданном состоянии St. Политика может принимать простые формы, такие как справочная таблица состояний
и действий, или сложные, такие как ГНС (глубокая нейронная сеть) (DNN – Deep
Neural Network ). В следующих разделах мы подробно опишем вычислительную
аппроксимацию (computational approximation) оптимальной политики. Формально политика π является функцией от π:S → A, которая преобразовывает
любое заданное состояние St ∈ S в момент времени t в действие, где At ∈ (ASt),
а вероятность того, что действие a будет выбрано в состоянии s, обозначается
как πt(a│s). Выбор действия обычно связан с так называемой функцией значения (value function) Vπ (s). Функция значения определяет, насколько хорошо
или плохо для агента находиться в заданном состоянии s. Формально данная
функция определяет ожидаемую отдачу от перехода в состояние s и последующего следования данной политике. Для простого марковского процесса принятия решений (MDP, описанный в главе 6), где переходы между состояниями
являются марковскими, функция значения состояния может быть записана
 

как: V (s )  E (Gt |St =s )  E    k Rt k 1 |St =s  , где Eπ – оператор математического
 k 0

ожидания с учетом политики π. Такая функция значения также называется
функцией значения состояния (state-value function) для политики π. Точно так же
Q-функция значения определяет пары «состояние–действие» как скалярное
значение, представляющее ожидаемую выгоду состояния St после выполнения
действия At и дальнейшего следования политике π. Такая функция может быть
 

записана как: Q (s ,a )  E (Gt |St =s , At =a )  E    k Rt k 1 | St =s , At =a 
 k 0
.
Для многих алгоритмов процесс обучения с подкреплением в основном
предполагает создание функции значения состояния или функции значения
состояния–действия.
Уникальным свойством способа определения функций стоимости Qπ и Vπ
является присущая ему рекурсивная структура. Такие рекурсивные структуры имеют особую формализацию при условии марковского характера среды.
Один эпизод в таком MDP будет представлен как последовательность:
s0 ,a0 ,r1 , s1 ,a1 ,r2 , s2 ,a2 ,r3 , s3 ,...sT −1 ,aT −1 ,rT , sT .
В MDP, учитывая любую политику π и состояние s, функция ценности
Vπ(s) = Eπ(Gt│St = s) может быть расширена и представлена как:
V (s )  E (Gt |St =s )   a  (a | s ) s p(s | s ,a ) r (s ,a , s)   V (s) .

166

 Планирование и управление на основе обучения с подкреплением

Такое выражение является уравнением Беллмана (Bellman Equation) для функции стоимости Vπ(s). Более подробное описание алгоритмов обучения с подкреплением представлено в [7].

7.2.1. Q-обучение
Q-обучение [7] является одним из самых популярных алгоритмов, используемых для обучения с подкреплением. Идея этого алгоритма состоит в том,
чтобы научить систему аппроксимировать стратегию, которая максимизирует
ожидаемую выгоду в любом заданном состоянии st, предпринимая действия
at и затем следуя оптимальной стратегии: Q(st, at) = maxπ Rt+1. Выбор дальнейшей политики основывается на: π (st) = argmaxa Q(st, at). Ключевой задачей
t
в Q-обучении является точная оценка Q-функции, которая сопоставляет пары
«состояние–действие» с оптимальной ожидаемой выгодой. Q-функция Q(st, at)
имеет следующую рекурсивную структуру: Q(st, at) = r(st, at, st+1) + γ maxa Q(st+1,
t+1
at+1). Данная структура является уравнением Беллмана в терминах Q-функции.
На основе такого рекурсивного представления Q(st, at) Q-функция может быть
решена с помощью динамического программирования с применением метода
обратного распространения ошибки (backward propagation):
sfront -vehicle (t )  
sfront -vehicle (t0 )+
sfront -vehicle (t0 )(t  t0 ),
1
sfront -vehicle (t )=sfront -vehicle (t0 )+sfront -vehicle (t0 )(t  t0 )+ 
s
(t )(t  t0 )2 .
2 front -vehicle 0
Требование сходимости вычисленной таким образом Q-функции для аппроксимации оптимальной функции «состояние–действие» состоит в постоянном
обновлении пар «состояние–действие». Исходя из данного предположения, мы
доказываем, что варианты алгоритма Q-обучения с условиями стохастической
аппроксимации по параметрам сходятся с оптимальной функцией «состояние–действие» с вероятностью 1. Как представлено на листинге 7.1, алгоритм
Q-обучения представляет собой итеративное обновление Q-таблицы, содержащей |S| строк и |A| столбцов.
Листинг 7.1. Алгоритм Q-обучения
1 function Q_Learning(Эпизоды)
2 инициализация Q(s,a) и Q(terminate-state,:)=0
3 for each эпизод в Эпизоды:
4
инициализация исходное состояние S
5
repeat (for each шаг эпизода)
6 выберите action a ∈ A, используя -жадную политику из Q-таблицы
7 выполните действие a и отметьте вознаграждение R и следующее состояние s'
8 Q(s,a)
← Q(s,a) + a [R+γ maxQ(s',a') – Q(s,a)]

a'
9 S ← s'
10 until S - не конечное состояние

ε-жадный алгоритм выбора действия означает, что агент случайным образом с вероятностью ε выбирает действие, которое нужно предпринять, при
этом предпринимая наилучшее возможное действие (то, которое дает наибольшую ожидаемую выгоду при текущем состоянии st) с вероятностью 1 – ε.

7.2. Обучение с подкреплением  167
Однако ввиду применения алгоритма, представленного на листинге 7.1, при
большом пространстве состояний |S| и пространстве действий |A| таблица может стать чрезвычайно объемной. В случае с беспилотными технологиями, где
пространство состояний может представлять собой комбинацию из входных
данных сенсора, статуса транспортного средства, а также информации о местоположении и карте, состояние может быть представлено как большой многомерный вектор, где значение в каждом измерении будет непрерывным. Разумеется, можно сказать, что такие пространства всегда можно дискретизировать,
ввиду чего большая разреженная Q-таблица вовсе не является проблемой.
Но процесс схождения такой таблицы, вероятно, займет чрезвычайно долгое
время, что в свою очередь приведет к неэффективности или даже непрактичности обучения. При чрезмерном увеличении пространства «состояний–действий» приемлемым подходом для аппроксимации Q-функции является глубокое обучение. ГНС очень хорошо подходят для эффективного структурирования
данных большого размера. На рис. 7.2 представлены две возможные структуры
для аппроксимации Q-функции нейронной сетью. Сеть, представленная на
рисунке слева, принимает состояния и действия в качестве входных данных,
а затем выводит значение Q для любой пары «состояния–действия». Однако
данная структура не столь неэффективна, поскольку здесь для каждой пары
должно выполняться вычисление прямого прохода (forward pass computation).
На практике применяются ГНС со структурами, подобными на рисунке справа.
Данная сеть принимает в качестве входных данных только состояния и выводит
возможные значения Q для каждого возможного действия a ∈ A, ввиду чего достаточно выполнить лишь одно вычисление прямого прохода.
В табл. 7.1 представлена структура типичной ГНС, которая использовалась
в Google DeepMind – сети Deep-Q-Learning (DQN). Она представляет собой типичную нейронную сеть со сверточными слоями, где последние стадии являются полностью связанными слоями. Ее наиболее существенным отличием от
типичных нейронных сетей, применяемых в компьютерном зрении, является
отсутствие слоев подвыборки. Слои подвыборки обеспечивают неизменность
расположения сети. В нашем случае мы не хотим, чтобы местоположение объекта характеризовало его существование при обнаружении.
Q-значение
Q-значение 1
Сеть

Сеть

……

Состояния:

s1, s2, s3, sN

Q-значение 2

……

Состояния:

a1, a2, a3, aM

Состояния:

s1, s2, s3, sN

Рис. 7.2. Deep-Q-Learning (DQN): структуры нейронных сетей

Q-значение 3

168



Планирование и управление на основе обучения с подкреплением

Таблица 7.1. Deep-Q-Learning: типичная структура нейронной сети в DQN
Слой

Входные
данные

Размер
фильтра

Шаг

Число
фильтров

Активация

Выходные
данные

conv1

84 × 84 × 4

8×8

4

32

Линейное спрямление (ReLU – rectified
linear unit)

20 × 20 × 32

conv2

20 × 20 × 32

4v4

2

64

ReLU

9 × 9 × 64

conv3

9 × 9 × 64

3×3

1

64

ReLU

7 × 7 × 64

fc4

7 × 7 × 64

512

ReLU

512

fc5

512

18

Линеаризованная
(Linear)

18

Данная сеть использует структуру, представленную справа на рис. 7.2, которая предполагает вывод Q-значений каждого возможного действия для любого заданного входного состояния. Обучение ГНС можно рассматривать как
задачу регрессии, оптимизирующую потерю в форме квадратичной ошибки
между прогнозируемыми и целевыми значениями Q. Потеря в форме квадратичной ошибки может быть выражена как:
2
1
L= r (st ,at , st 1 )   max at 1 Q(st 1 ,at 1 )  Q(st ,at ) ,
2

где r(st, at, st+1) + γ maxat+1 Q(st+1, at+1) – целевой член, а Q(st, at) – прогнозируемый
член с учетом перехода (st, at, r, st+1). Соответственно, предыдущий алгоритм обновления таблицы Q-функции адаптируется к процедуре следующим образом.
1. С целью получить прогнозируемые Q-значения для всех действий выполняется вычисление прямого прохода для текущего состояния st.
2. Выполняется прямой проход для следующего состояния st+1, а затем
определяется максимум всех выходных данных сети maxat+1 Q(st+1, at+1).
3. Задается целевое значение Q для действия at равным r(st, at, st+1) +
γ maxat+1 Q(st+1, at+1) в соответствии с вычислениями, выполненными
в предыдущем шаге. Для каждого последующего действия установите
целевое значение Q в соответствии с результатом шага 1, установив
при этом нулевое значение ошибки для выходных данных.
4. Обновите значение весовых значений посредством обратного распространения.
Листинг 7.2 представляет собой подробное описание данного алгоритма.
Здесь используется два метода облегчения процесса обучения. Первый – это
воспроизведение опыта (experience replay). Ключевая идея данного метода заключается в сохранении информации обо всех осуществленных переходах состояний (st, at, r, st+1) в глобальную память (replay memory). В процессе обучения
сети из пула памяти осуществляется выборка мини-пакетов, служащих фактическими примерами переходов. Случайная выборка из глобальной памяти

7.2. Обучение с подкреплением  169
позволяет нарушить распределение данных обучающей выборки и впоследствии внести большее количество различных вариантов. Метод воспроизведения опыта делает обучение более контролируемым и простым для понимания,
а также упрощает отладку и тестирование. Если все примеры переходов основываются на воспроизведении человеческого опыта, то обучение DQN становится ближе к его имитации.
Листинг 7.2. Алгоритм Deep-Q-Learning
1 function DQN_Learning(Эпизоды)
2 инициализируйте Q(s,a) со случайными весовыми значениями
3 инициализируйте глобальную память D
4 for each эпизод в Эпизоды:
5 repeat :
6 выберите action a ∈ A, используя -жадную политику из Q-таблицы
7 выполните действие a и отметьте вознаграждение r и следующее состояние s'
8 сохраните опыт (s, a, r, s') в глобальной памяти D
9 осуществите выборку случайного перехода (ss, aa, rr, ss') из глобальной памяти D
10 вычислите целевое значение для каждого перехода мини-пакета
11 если это конечное состояние
12 tt = rr
13 или
14 tt=rr + γ maxa’Q(s',a') - Q(s,a)
15 обучите глубокую нейронную сеть Q c Потерей = 1/2(tt - Q (ss,aa))2
16 s ← s'
17 until s конечное состояние

Другой метод, используемый для повышения производительности алгоритма Deep-Q Learning, – это баланс исследования (exploration) и эксплуатации (exploitation), который также относится к ε-жадным алгоритмам
выбора действия. Дилемма метода исследования и эксплуатации заключается в том, что хорошая стратегия выбирает действия, которые могут принести более ожидаемые вознаграждения. Однако, чтобы найти определить
эффективные действия, сначала политика должна изучить действия с неизвестным ожидаемым вознаграждением. В частности, исследование предполагает осуществление агентом новых действий, которые еще не были
исследованы и не гарантируют вознаграждения. Эксплуатация, напротив,
предполагает выбор агентом наиболее эффективного действия в текущем
состоянии в соответствии с Q-таблицей. Как правило, исследование происходит в начале процесса Q-обучения, когда исходные пары «состояния–действия» инициализируются случайным образом. После начальных итераций
агент накапливает некоторые знания об ожидаемых вознаграждениях для
пар «состояния–действия». После этого агент выбирает «жадное» действие
с наивысшим Q-значением в данном состоянии, что подразумевает упор
на использование Q-таблицы. В �-жадном исследовании баланс между исследованием и эксплуатацией контролируется параметром ε. Например,
в DeepMind [4] исходное значение параметра ε = 1, что позволяет облегчить
исследование на начальном этапе. Затем значение параметра постепенно
снижается и смещается в сторону эксплуатации и, наконец, стабилизируется
до фиксированного показателя исследования = 0,1.

170



Планирование и управление на основе обучения с подкреплением

7.2.2. Методы «актор–критик»
Одним из наиболее значительных достижений в области алгоритмов обучения с подкреплением является асинхронный алгоритм актор-критика (A3C –
Asynchronous Advantage Actor-Critic), созданный дочерней компанией Google
DeepMind. По критериям скорости, простоты и надежности данный алгоритм
значительно превосходит традиционные алгоритмы Deep-Q-Learning, применяемые для решения стандартных задач обучения с подкреплением.
На рис. 7.3 представлена структура A3C. В отличие от DQN, А3С характеризуется наличием нескольких агентов. Каждый из них представляет собой отдельную нейронную сеть со своими параметрами. Каждая сеть имеет собственную копию среды, в соответствии с которой осуществляется взаимодействие
и происходит обучение. Данные сети называются рабочими агентами (worker
agents). Помимо них, в модели функционирует агент глобальной сети (global
network agent). Данная модель обучения называется асинхронной, поскольку
каждый агент обучается в своей собственной среде. По мере того как каждый
агент получает данные о потерях, он обновляет политику в своей среде, на основе чего в дальнейшем происходит обновление глобальной среды. После обновления глобальной сети, каждый агент возвращается в исходное состояние,
а затем начинается новый раунд обучения. Подобная модель асинхронного обучения представляется более эффективной, нежели модели, предполагающие
наличие одного агента, поскольку каждый агент обучается независимо, ввиду
чего опыт системы становится более разнообразным. Технологический процесс алгоритма A3C выглядит следующим образом.
1. Сначала осуществляется инициализация глобальной сети, в соответствии с чем каждая отдельная рабочая сеть приводится в исходное состояние.
2. Каждый рабочий агент взаимодействует с собственной средой и обучается соответственно.
3. Каждый рабочий агент вычисляет функцию потерь для своей сети.
4. Каждый рабочий агент обновляет данные своего градиента в соответствии с функцией потерь.
5. Глобальная сеть обновляется с участием всех рабочих агентов в соответствии с данными их градиентов.
Как показано на рис. 7.3, нейронные сети как рабочей, так и глобальной сети
имеют две уникальные ветви. Такая структура сетей предназначена для раздельной оценки как функции значения Vπ(s), так и политики π(s). Функции значения Vπ(s) определяет желательность нахождения в каком-либо состоянии,
а политика π(s) оценивает желательность результатов действий. В каждой ветви для двух данных значений предусмотрены собственные связанные уровни.
Кроме того, сети обеих ветвей имеют общие сетевые структуры, состоящие из
сверточных уровней, позволяющих достигать инвариантности местоположения и уровня долгой краткосрочной памяти (LSTM – long short-term memory) для
обработки временных зависимостей поверх сверточных слоев. Ветвь, предназначенная для оценки функции значения Vπ(s), играет роль критика, а ветвь
для оценки политики Vπ(s) является актором. Что еще более важно, агент ис-

7.2. Обучение с подкреплением  171
пользует оценку функции значения, полученную от критика, для обновления
функции политики, которая является актором. Таким образом, данный метод
представляется более эффективным, чем градиентные методы общей политики. Использование специализированной ветви сети, используемой для
раздельной оценки функций значения и политики, называется методом «актор–критик». Еще одной отличительной чертой данного алгоритма является
обновление в соответствии с преимуществом (advantage). В то время как градиентный метод политики опирается на дисконтированную ожидаемую выгоду, алгоритм A3C может «размышлять» над вопросом «насколько я лучше,
чем ожидалось?». Функция преимущества определяет данную характеристику
в форме A = Q(s, a) –V(s), где Q(s, a) может быть аппроксимировано дисконтированной выгодой R. Функция потерь значений для каждого рабочего агента
выглядит как:
Lvalue   (R  V (s ))2 .
Глобальная сеть

Политика π(s)

V(s )

Сеть

Входные
данные

Рабочая сеть 1

Рабочая сеть 2

Рабочая сеть 3

Рабочая сеть n

Окружающая
среда 1

Окружающая
среда 2

Окружающая
среда 3

Окружающая
среда n

Рис. 7.3. Структура алгоритма A3C (на основе материалов [11])

172

 Планирование и управление на основе обучения с подкреплением

Для достижения сбалансированного управления эксплуатацией и исследованием вычисляется энтропия вероятностей выходных действий Hπ. Затем
данный показатель включается в функцию потерь, в соответствии с которой
происходит обновление политики. Высокий показатель энтропии свидетельствует о небольшой вероятности выходных действий, в связи с чем агенту стоит быть менее сосредоточенным на эксплуатации и уделить больше времени
исследованию. Низкий показатель энтропии свидетельствует о выборе уверенной политики, в связи с чем агент уделяет больше времени эксплуатации. Таким образом, функция потерь политики выглядит как:
Lpolicy  A(s )  log( (s ))  H    .

В [11, 12] представлена подробная реализация A3C на основе тензорного потока.

7.3. Планирование и управление БА на основе алгоритмов
с обучением
В предыдущих разделах мы представили популярные алгоритмы обучения
с подкреплением, такие как методы Q-Learning и «актор–критик». В этом разделе мы рассмотрим роль алгоритмов обучения с подкреплением в планировании и управлении БА. Обучение с подкреплением уже применяется на
различных уровнях планирования и управления БА, в частности на уровнях
принятия поведенческих решений, планирования движения и управления на основе обратной связи. Также существуют и другие варианты, как, например [8], где
для беспилотных технологий применялись методы контролируемого обучения
на основе ГНС. В контексте данной работы входными данными служили необработанные данные сенсоров, такие как пиксели изображения, а выходными
данными являлись прямые сигналы управления, такие как сигналы рулевого
управления, дроссельной заслонки и тормоза. Подобные подходы принято называть сквозными решениями (end-to-end solutions). Несмотря на привлекательность таких подходов, обычно их применение сопровождается использованием сложных модельных структур, а их конечные и/или промежуточные
результаты очень трудно (а иногда и невозможно) интерпретировать. В следующих подразделах мы представим подходы, основанные на обучении с подкреплением, применяемые на различных уровнях планирования и управления.
Цель данного раздела состоит не в том, чтобы охватить все подобные подходы,
а в том, чтобы повторить и детально рассмотреть наиболее типичные подходы,
применяемые на разных уровнях. В ходе рассмотрения мы сосредоточимся на
следующих аспектах: масштаб проблемы, создание пространства состояний,
создание пространства действий, создание сетевой структуры, а также ограничения приложений. В большинстве работ выходные действия представляются
как степень, в которой осуществляется обучение с подкреплением. Как правило, такие действия остаются на уровне принятия поведенческих решений или
на уровне прямого управления. К нашему удивлению, существует довольно
мало работ, в которых выходные действия относятся к уровню планирования
движения (т. е. представляют собой пространственно-временные траектории).
Таким образом, мы видим, что многие подходы к обучению с подкреплени-

7.2. Обучение с подкреплением  173
ем применяются преимущественно на нижнем уровне управления – уровне,
определяющем следование БА определенной ранее пространственно-временной траектории.

7.3.1. Применение обучения с подкреплением на уровне
принятия поведенческих решений
Основная цель применения обучения с подкреплением на уровне принятия поведенческих решений состоит в том, что данный подход позволяет справиться
с большим разнообразием сценариев дорожного движения, что не представляется возможным при простом буквальном следовании правилам. Для решения
проблем с «длинным хвостом», возникающих на уровне принятия поведенческих решений, отличным ориентиром для системы, основанной на обучении
с подкреплением, является пример поведения человека-водителя. Благодаря такому подходу, система сможет принимать решения больше похожие на
человеческие. Он мог бы стать прекрасным дополнением к основанному на
правилах подходу к принятию поведенческих решений, который на данный
момент является ведущим в области беспилотных технологий. В [3] подход,
основанный на обучении с подкреплением, применяется на уровне принятия
поведенческих решений, где пространство действий (называемое в упомянутом исследовании желаниями (desires)) определяется как:
D  0, vmax   L   g ,t ,o ,
n

где vmax – желаемая целевая скорость БА, L – дискретный набор поперечных положений, а g, t, o представляют собой действия «уступить дорогу», «обогнать»
и «сохранять дистанцию». Пространство действий (желаний) представляет собой декартово произведение трех данных параметров (действий). Пространство состояний для подхода из [3] предполагает наличие «модели окружающей
среды» вокруг транспортного средства, созданной на основе интерпретации
данных сенсоров, а также любой дополнительной полезной информации, такой как кинематика движущихся объектов в предыдущих фреймах.
Одной из ключевых особенностей стратегии принятия решений, основанной на обучении с подкреплением, заключается в том, что стохастический градиент политики не обязательно требует подчинения свойству Маркова. Следовательно, методы, которые уменьшают дисперсию оценки градиента, также
не требуют марковских предположений. Реализации данных методов являются запатентованными и не могут быть воспроизведены в открытом доступе,
однако авторы все же упомянули, что они инициализировали агент и осуществляли его обновление посредством итеративного метода градиентного спуска
по стратегиям (policy gradient).

7.3.2. Применение обучения с подкреплением на уровнях
планирования и управления
Ключевой проблемой реализации обучения с подкреплением на уровнях планирования и управления является создание пространств состояний. Для вы-

174



Планирование и управление на основе обучения с подкреплением

числения действий на уровнях планирования движения и управления на основе обратной связи требуется информация как о самом транспортном средстве,
так и об окружающей среде. Если не использовать в качестве входных данных
необработанные данные сенсоров, потребуется включить структурированную информацию о транспортном средстве и его окружении непосредственно в пространства состояний. Вследствие этого оно станет большим, многомерным и непрерывным пространством. Данную проблему позволяет решить
подход, при котором методы ячеистой упаковки (cell-mapping) объединяются
с обучением с подкреплением. Описанный подход применяется для решения
задачи управления так называемыми Car-Like-Vehicles (CLV) в [2]. В данном исследовании авторы дискретизируют пространство состояний с помощью методов ячеистой упаковки, а каждая соседняя ячейка выступает в роли ограничения для переходов между состояниями. В табл. 7.2 представлены пространство
состояний (до ячеистой упаковки) и пространство действий.
Таблица 7.2. Пространство состояний до ячеистой упаковки и пространство действий [2]
(использовано с разрешения правообладателя)
Символ состояния

Переменная состояния

Диапазон

X1 = v

Составляющая скорости (velocity)

−1.5 ≤ X1 ≤ 1.5 м/с

X2 = x

Декартова координата X

−0.9 ≤ X2 ≤ 0.9 м

X2 = y

Декартова координата Y

−1.3 ≤ X3 ≤ 1.3 м

X2 = θ

Положение (orientation)

−π ≤ X4 ≤ π рад

Символ действия

Значение действия

Напряжение в ходовом двигателе

−18 V 0 V 18 V

Угол поворота

−23°



23°

Листинг 7.3. Алгоритм ячеистой упаковки (CACM-RL – Control-Adjoining-Cell-Mapping
algorithm) [2] (использовано с разрешения правообладателя)
Алгоритм 1 CACM-RL
1 инициализация Q-Table(s,a) y Model_Table
2 x ← текущее состояние
3 s ← cell(x)
4 IF s ∈ завершить или s ∈ цель или s ∈ safety_area
5 THEN F_reactive(x)
6 ELSE IF D-k-adjoining(x,x’)
7 THEN Q-Table(s,a) ← s’,r
8 Model_Table ← IT(x,x’)
9 a ← policy (s)
10 выполните действие a
11 исследуйте новое состояние x’ и r
12 UNTIL завершение стадии обучения
13 FOR all(s,a), repeat N раз
x′ Model_Table, DT(x,x’)
14
15 s′ cell()
16 Q-Table(s,a) ← ,r

7.2. Обучение с подкреплением  175
В описанном подходе для обучения с подкреплением не используется какая
бы то ни была структура нейронной сети, поскольку использование ячеек в качестве ограничений значительное уменьшает фактические пространства состояний. Вместо этого, как показано в листинге 7.3, данный подход предполагает использование алгоритма обновления таблиц на основе Q-обучения. Одной
из важных характеристик этого подхода является то, что он предполагает наличие двух таблиц пар «состояние–действие»: Q-таблицы и таблицы-модели.
В то время как Q-таблица схожа с традиционным обучением с подкреплением,
задача таблицы-модели состоит в поддержании среднего значения локальных
переходов, удовлетворяющего D-k смежной ячейки (adjoining property), что позволяет приблизиться к аппроксимации оптимальной политики управления.
Кроме того, алгоритм управления с упаковкой смежных ячеек и обучения с подкреплением (CACM-RL – Control Adjoining Cell Mapping and Reinforcement Learning),
представленный на листинге 7.3, выполняет только задачу исследования, поскольку строгое следование ячейкам позволяет отказаться от процесса эксплуатации. Следует отметить, что, как показано в листинге 7.3, информация
о препятствиях учитывается только в функциях суждения (judgement function)
F_reactive() и Safety_area и не учитывается в переменных состояния. Такое
решение значительно упрощает пространство состояний, но делает алгоритм
менее устойчивым к динамическим препятствиям. У нас остается возможность
для дальнейшего развития алгоритмов обучения с подкреплением в сценариях избежания статических/динамических препятствий.

Особые сценарии
В двух типичных примерах, описанных выше, обучение с подкреплением используется для решения общих задач уровня принятия поведенческих решений или управления на основе обратной связи, поскольку пространство
выходных действий данных уровней не настраивается для каких-либо конкретных сценариев. В [1] подходы на основе рекуррентных нейронных сетей
(RNN – recurrent neural network) применяются для решения задач управления
в двух особых сценариях: адаптивного поддержания постоянной скорости
(ACC – adaptive cruise control) и движения по кольцевой развязке. Несмотря
на то что данный подход адаптирован только для двух определенных случаев,
в его основе лежит весьма интересная идея «предсказывать ближайшее будущее и изучать непредсказуемую среду». В обоих сценариях решение задачи
разбивается на две фазы. Первая фаза предполагает процесс контролируемого
обучения, в котором исследуется дифференцируемая функция N̂ (st, at) ≈ st+1, отображающая текущее состояние st и действие at в следующем состоянии st+1. Результат исследования данной функции представляет собой краткосрочный
прогноз ближайшего будущего. Затем отображение функции политики из пространства состояний S в пространство действий A определяется как параметрическая функция πθ: S → A, где πθ – это RNN. Следующее состояние st+1 определяется как: st+1 = N̂(st, at) + vt, где vt ∈ ℝd – непредсказуемая среда. Цель второй
фазы состоит в обучении параметра πθ путем метода обратного распространения. Учитывая, что vt выражает непредсказуемые аспекты среды, предлагаемая
RNN будет обучаться устойчивой модели поведения, инвариантной к неблагоприятной среде (adversarial environment).

176

 Планирование и управление на основе обучения с подкреплением

Несколько слов о нерешенных проблемах и сложностях
После того как мы рассмотрели существующие подходы к планированию
и управлению на основе обучения с подкреплением, мы предлагаем обсудить
несколько ключевых задач, которые необходимо решить для успешного применения обучения с подкреплением на уровнях принятия поведенческих решения или планирования движения.
Первая сложность связана с созданием пространства состояний. Данный
аспект довольно сложен, если в пространство состояний требуется включить
информацию об окружающей среде, такую как окружающие динамические
препятствия, а также структурированную информацию карты. Учитывая, что
количество препятствий не фиксировано, для их включения в векторное пространство состояний потребуются некоторые правила структурирования. Более того, информации только о самом препятствии недостаточно, и поэтому
требуются данные о связи препятствия с дорожной структурой. Для принятия
общего решения или осуществления планирования движения необходимо
рассматривать всю эту информацию совместно. Одним из способов включения данной информации в пространство состояний является разделение дорожной карты на сетки в системе координат SL. Данный способ схож с оптимизацией планирования движения при поиске оптимального пути. Так, мы
можем сделать вывод о том, что способ обработки входных данных уровня
планирования движения может быть использован как эвристический метод
для создания пространств состояний в подходах, основанных на обучении
с подкреплением.
Другая задача заключается в создании функции вознаграждения. Создать
функцию вознаграждения проще, если пространство выходных действий содержит поведенческие решения, которые в основном являются категориальными. Для фактических выходных данных действий, связанных с управлением, и пространства состояний необходимо тщательно проработать способ
измерения вознаграждения при переходе из состояния st в состояние st+1 посредством выполнения действия. Эта система вознаграждения должна учитывать такие факторы, как достижение пункта назначения, избегание препятствий и комфорт поездки. На самом деле создание функций вознаграждения
непосредственно на уровне сигнала управления с обратной связью гораздо
проще, чем на уровне пространственно-временной траектории, определяемой уровнем планирования движения. Данный факт связан с тем, что большинство исследований проводилось именно на уровне сигнала управления.
Однако мы все же считаем, что обучение на уровне траекторий планирования движения является целесообразным подходом, поскольку в представленной нами структуре планирования и управления уровень управления
представлен как замкнутая система с обратной связью, служащая для следования пространственно-временным траекториям, определенным уровнем
планирования движения. Кроме того, проблема следования пространственно-временной траектории с помощью определенной замкнутой системы
управления может быть смоделирована как задача оптимизации с помощью
линейной или нелинейной системы. Применение обучения с подкреплением непосредственно на уровне управления может упростить задачу создания
функции вознаграждения. Но обучение должно решать проблему осущест-

7.5. Справочные материалы  177
вления движения, которую в большинстве случаев следует решать путем оптимизации на уровне управления. Все это означает, что обученной системе
придется осуществлять излишнее моделирование следования по траекториям вместо того, чтобы сосредоточиться на поиске оптимальной траектории.
Мы считаем, что подобные задачи могут быть решены путем более глубокого
исследования применения обучения с подкреплением на уровне планирования движения БА.

7.4. Заключение
Мы считаем, что решение проблем планирования и управления БА посредством обучения с подкреплением является важной тенденцией и важным дополнением к решениям, основанным на оптимизации. Благодаря большому
количеству накопленных данных, планирование и управление на основе обучения с подкреплением помогут разрешить ситуации, которые не могут быть
полностью решены с применением только решений, основанных на оптимизации. Текущие исследования методов, основывающихся на обучении с подкреплением, в разной степени предполагают исследование данного подхода
к решениям задач планирования и управления БА, но большая часть из них все
еще находится на начальной стадии.

7.5. Справочные материалы
[1]
[2]
[3]
[4]
[5]

[6]

[7]
[8]

Shai, S-S., Ben-Zrihem, N., Cohen, A., and Shashua, A. 2016. Long-term Planning by Short-term Prediction. arXiv preprint arXiv:1602.01580.
Gómez, M., González, R. V., Martínez-Marín T., Meziat D., and Sánchez S. 2012.
Optimal motion planning by reinforcement learning in autonomous mobile
vehicles. Robotica, 30(2), pp. 159–70. DOI: 10.1017/S0263574711000452.
Shalev-Shwartz, S., Shammah, S., and Shashua, A. 2016. Safe, Multi-agent, Reinforcement Learning for Autonomous Driving. arXiv preprint arXiv:1610.03295.
Mnih, V., Kavukcuoglu, K., Silver, D., Graves, A., Antonoglou, I., Wierstra, D.,
and Riedmiller M. 2013. Playing Atari with deep reinforcement learning. arXiv
preprint arXiv:1312.5602.
Katrakazas, C., Quddus, M., Chen, W-H., and Deka, L. 2015. Real-time motion
planning methods for autonomous on-road driving: State-of-the-art and future research directions. Elsevier Transporation Research Park C: Emerging
Technologies, 60, pp. 416–442 DOI: 10.1016/j.trc.2015.09.011.
Paden, B., Cap, M., Yong, S. Z., Yershow, D., and FrazzoloE. 2016. A survey
of motion planning and control techniques for self-driving urban vehicles.
IEEE Transactions on Intelligent Vehicles, 1(1), pp. 33–55. DOI: 10.1109/
TIV.2016.2578706.
Sutton, R. S. and Barto, A. G. 1998. Reinforcement Learning: An Introduction.
Cambridge: MIT Press.
Bojarski, M., Del Testa, D., Dworakowski, D., Firner, B., Flepp, B., Goyal, P.,
Jackel, L. D., Monfort, M., Muller, U., Zhang, J., and Zhang, X. 2016. End to End
Learning for Self-driving Cars. arXiv preprint arXiv:1604.07316.

178



[9]

Geng, X., Liang, H., Yu, B., Zhao, P., He, L., and Huang, R. 2017. A scenarioadaptive driving behavior prediction approach to urban autonomous driving.
Applied Sciences, 7(4), p. 426. DOI: 10.3390/app7040426.
SAE Levels of Driving Automation. https://www.sae.org/standards/content/
j3016_202104/.
Mnih, V., Badia, A. P., Mirza, M., Graves, A., Lillicrap, T., Harley, T., Silver,
D., and Kavukcuoglu, K. 2016. Asynchronous methods for deep reinforcement
learning. In International Conference on Machine Learning (pp. 1928–1937).
https://github.com/awjuliani/DeepRL-Agents/blob/master/A3C-Doom.ipynb.

[10]
[11]
[12]

Планирование и управление на основе обучения с подкреплением

Глава

8

Клиентские системы
для беспилотных технологий
Аннотация
В этой главе мы уделим особое внимание созданию клиентских систем для беспилотных технологий, таких как операционные системы и вычислительные платформы. Беспилотные системы включают
в себя сложные программно-аппаратные комплексы. Для координации взаимодействия между различными компонентами требуется
операционная система. В этой главе мы обсудим систему, основанную на операционной системе для роботов (ROS – Robot Operating
System). Далее рассмотрим вычислительную платформу, которая
является мозгом сложной беспилотной системы. Мы проанализируем вычислительные требования к задачам, а также преимущества
и недостатки каждого решения для беспилотных технологий, в числе которых решения на основе центрального процессора (ЦП) (CPU –
Central Processing Unit), графического процессора (ГП) (GPU – Graphics
Processing Unit), программируемой логической матрицы (ПЛМ) (FPGA –
Field Programmable Gate-Array), цифровой обработки сигнала (ЦОС)
(DSP– Digital Signal Processing) и специализированных интегральных
схем (ASIC – Applications Specific Integrated Circuit).

8.1. Сложность системыбеспилотного управления
Система беспилотного управления – это очень сложная система, созданная
для решения множества различных задач. Как представлено на рис. 8.1, для
достижения эффективного функционирования БА в городских условиях с непредсказуемым движением необходимо обеспечить взаимодействие между
несколькими системами, работающими в режиме реального времени, включая обработку данных сенсоров, восприятие, локализацию, планирование
и управление.

180



Клиентские системы для беспилотных технологий

Сенсорное сканирование

Восприятие

Принятие решений

GPS/IMU

Локализация

Прогноз

LiDAR

Распознавание объекта

Планирование пути

Камера

Отслеживание объектов

Обход препятствий

Операционная система
Аппаратная платформа

Рис. 8.1. Взаимодействующие модули беспилотной системы

Беспилотная технология представляет собой интеграцию множества
технологий, которая осуществляется на уровне клиентской системы, состоящей из операционной системы и аппаратной платформы. На рис. 8.2
представлена значительно упрощенная версия аппаратной платформы,
реализующей парадигму сканирования, восприятия и планирования действий, представленную в главе 1. Сначала сенсоры сканируют окружающую
среду и осуществляют сбор данных, которые затем передаются в вычислительную платформу для восприятия и планирования действий. Затем данные о спланированных действиях отправляются на платформу управления
для непосредственного осуществления действий. Однако одного лишь аппаратного обеспечения недостаточно. Системе необходима операционная
система, которая позволит координировать коммуникацию между описанными компонентами, а также координировать распределение ресурсов для
различных задач в реальном времени. Например, камера должна выдавать
60 кадров/с, что означает, что время обработки каждого кадра должно быть
менее 16 мс. При увеличении объема данных распределение системных ресурсов становится проблематичным: например, когда в систему попадает
пакет данных облака точек, полученного посредством лидара, он может серьезно конкурировать за ресурсы ЦП, что приводит к потере кадров. Следовательно, системе необходим механизм ограничения количества ресурсов,
используемых каждым компонентом, что и является одной из основных задач операционной системы.

8.2. Операционная система для беспилотной технологии  181
IMU

GPS

Объединение
данных GPS/IMU

PPS

Ethernet

Карта интерфейса RS232

PPS
СИНХРОБЛОК
ЛИДАРА

П
Е
Р
Е
К
Л
Ю
Ч
А
Т
Е
Л
Ь

Сенсор
Вычисление

PCle S witch

Управление

USBадаптеры

Объединение
ECU

Сервер
управления

Вычислительный
сервер

Ускорители
GPU и FPGA

PCle CA N
Card

Управление

USB 3.0

LIDAR

Запуск

×3

Камера

Радар

Статус
управления БА

CAN-шина

Рис. 8.2. Аппаратная платформа для беспилотной технологии

8.2. Операционная система для беспилотной технологии
Интегрированная беспилотная система включает в себя несколько программных модулей: обнаружение, локализацию, распознавание объектов, отслеживание объектов, прогнозирование движения, планирование пути, обход препятствий, навигацию и т. д. Для успешного функционирования БА каждый из этих
компонентов должен работать в режиме реального времени. Следовательно,
для управления всеми этими компонентами необходима операционная система. Основные функции операционной системы – обеспечение коммуникации
и распределение ресурсов. Реализовать данные функции позволяет операционная система для роботов (ROS – Robot Operating System), которая представляет собой набор программных библиотек и инструментов [1]. Насколько нам
известно, во многих существующих операционных системах для беспилотных
технологий либо ROS применяется напрямую, либо системы создаются с опорой на философию ROS. Итак, перейдем к рассмотрению ROS.

8.2.1. Обзор ROS
Впервые ROS была представлена в проекте Willow Garage PR2. Данная система
состояла из трех компонентов: ROS-мастер (ROS Master), ROS-узел (ROS Node)
и ROS-служба (ROS Service). Основная функция ROS-мастера – предоставление
службы имен. В ней хранятся рабочие параметры, которые требуются при запуске, имя соединения с вышестоящим и нижестоящим узлами, а также имя
существующих служб ROS. ROS-узел обрабатывает полученные сообщения
и отправляет новое сообщение нижестоящим узлам. ROS-служба – это специальный ROS-узел, выполняющий функции узла службы. Его задача – получать
запрос и возвращать его результат. Второе поколение ROS, ROS 2.0, оптимизи-

182



Клиентские системы для беспилотных технологий

ровано для промышленных приложений. Данная система использует промежуточное ПО – службу распределения данных (DDS – Data Distribution Service),
что обеспечивает надежность коммуникации и позволяет создать общую память для повышения эффективности коммуникации (рис. 8.3).
Код пользователя

API клиентской библиотеки ROS
Дополнительный
доступ к API
для DDS

ABstract DDC API

RTI Connext

PrismTech
OpenSplice

PrTwin
ismT
ech
Oaks
ПО CoreDX
OpenS
plice



Рис. 8.3. Коммуникация ROS 2.0 с DDS

В отличие от ROS 1.0, испытания которой проводились в течение многих лет,
ROS 2.0 все еще находится в стадии разработки. Таким образом, большинство
операционных систем для беспилотных технологий по-прежнему использует
ROS 1.0 по ряду причин.
1. Стабильность и безопасность имеют решающее значение в беспилотной
среде. Главным требованием является стабильность и безопасность системы. К сожалению, в настоящий момент ROS 2.0 не отвечает данному
требованию в полной мере.
2. Затраты на DDS. Мы протестировали показатели производительности
при использовании промежуточного ПО DDS и обнаружили, что пропускная способность DDS даже хуже, чем у ROS 1.0. Основная причина
заключается в высоких накладных расходах при использовании DDS.

Основы ROS
Наиболее важными концепциями ROS являются узел, администратор узлов,
сервер параметров, сообщение, тема, служба и задача.
1. Узел: это процесс выполнения задачи. Например, узел управления двигателем используется для считывания информации о двигателе и управления его вращением. Узел планирования пути используется для реализации планирования движения мобильных платформ.
2. Администратор узлов/главный узел: как следует из названия, цель
администратора узлов – управление всеми узлами. Информация о каждом узле должна быть зарегистрирована в администраторе узлов, чтобы
он мог координировать обмен данными между узлами.
3. Сервер параметров: это централизованное хранилище параметров
конфигурации, необходимых для работы узлов в системе.

8.2. Операционная система для беспилотной технологии  183
4. Сообщение: содержимое сеансов связи между узлами называется сообщением. Сообщение – это простая структура данных, состоящая из
типизированных полей. Обратите внимание, что сообщение может инкапсулировать структурированные текстовые данные или неструктурированные мультимедийные данные.
5. Тема: механизм коммуникации «публикация–подписка». Одни узлы
могут публиковать сообщения в теме, а другие могут подписаться на ту
же тему, чтобы получать опубликованные сообщения (рис. 8.4).
6. Служба: механизм индивидуальной коммуникации. Узел может запросить службу, предоставляемую сервисным узлом, и в результате между
этими двумя узлами установится канал связи (рис. 8.4).

Узел
Сообщение

Сервис

Узел

Тема

Узел

Публикация

Узел
Сообщение

Подписка

Публикация
Узел

Узел

Рис. 8.4. Механизм коммуникации ROS

8.2.2. Надежность системы
Как упоминалось в начале данного раздела, надежность системы является наиболее важным требованием для операционной системы беспилотной технологии. Представьте, что во время движения БА по дороге внезапно произойдет
сбой главного узла ROS, что приведет к остановке системы. Вероятнее всего,
что такой сценарий произойдет в первоначальном варианте ROS, где во всей
системе есть только один главный узел. Такой исход неприемлем для приложений БА. Таким образом, первой задачей для решения данной проблемы будет
децентрализация главного узла для достижения устойчивости и надежности.
Как представлено на рис. 8.5, одним из способов решения описанной проблемы является ZooKeeper [2], который позволяет создать в системе несколько
главных узлов, один из которых служит активным главным узлом, а другие являются резервными главными узлами. В случае, когда активный главный узел
выходит из строя, его заменяет один из резервных главных узлов, что позволяет предотвратить сбой системы.

184



Клиентские системы для беспилотных технологий
Локальный кластер Zookeeper
Выбор лидера

Выбор лидера

Главный

Резервный

Публикация
темы

Публикующий узел

Подписка на тему

Установка прямого канала

Подписывающийся
узел

Рис. 8.5. Механизм коммуникации ROS с применением ZooKeeper

Механизм ZooKeeper позволяет справиться со сбоями главного узла, однако
выйти из строя могут и другие узлы, например узел планирования. Для решения этой проблем мы предлагаем внедрить в систему узел мониторинга, задачей которого является отслеживание состояния всех узлов. В такой системе
каждый узел периодически отправляет в ZooKeeper сообщение «Я жив», и если
такое сообщение не поступает в течение определенного периода времени, система предполагает, что узел потерян. Затем ZooKeeper уведомляет узел мониторинга о перезапуске потерянного узла. Иногда при перезапуске узла он
не имеет состояния. Например, узлу, который обрабатывает входящие изображения, не требуется сохранять состояние. В других случаях некоторым узлам
необходимо отслеживать состояние, например узлу локализации необходимо
знать свое текущее положение, а после перезапуска ему нужно вернуться в последнее отмеченное состояние. Поэтому зачастую сообщение «Я жив», отправляемое в ZooKeeper, содержит информацию о состоянии отправляющего узла,
вследствие чего становится доступна последняя известная информация о состоянии для перезапуска потерянного узла.
Локальный кластер Zookeeper

«Я жив» +
статистика +
информация
о состоянии
Выполняющий
узел

Уведомить о потере сеанса
«Я жив» +
статистика +
информация
о состоянии

Выполняющий
узел

Рис. 8.6. Узел мониторинга

Процессы
перезапуска

Узел
мониторинга
Обновить
информацию
для главного
узла

Главный
узел

8.2. Операционная система для беспилотной технологии  185

8.2.3. Повышение производительности
В первоначальной версии ROS частый обмен данными приводит к высоким накладным расходам. Во-первых, в данной версии при обмене данными между
узлами ROS на одной машине применяется механизм обратной связи по всему
сетевому стеку. То есть каждый пакет обрабатывается каждым уровнем программного стека, что вызывает ненужные задержки и чрезмерное потребление памяти. Чтобы решить эту проблему, мы предлагаем применить концепцию общей память и методы дистрибуции памяти. Данный подход позволяет
передавать данные через память и отправлять только адрес ячеек памяти. При
применении данного подхода в локальной связи нам необходимо отправить
только один пакет и, следовательно, ограничить задержку связи в пределах
20 мкс, что позволит значительно снизить использование ЦП.
Во-вторых, в первоначальной версии ROS широковещательная передача осуществляется по нескольким линиям «точка–точка». Например, при необходимости отправить данные на пять узлов создается пять копий этих данных, по
одной для каждого узла, что в свою очередь приводит к значительным затратам вычислительных ресурсов и ресурсов памяти. Кроме того, подобные случаи накладывают серьезные требования к пропускной способности внутренних
коммуникаций. Для решения данной проблемы мы предлагаем реализовать
механизм многоадресной рассылки, который позволит отправляющему узлу
посылать одну копию сообщения сразу нескольким принимающим узлам.
В-третьих, в процессе рассмотрения стека связи ROS мы обнаружили, что основными причинами задержек являются сериализация и десериализация данных. Сериализация – это процесс преобразования информации о состоянии
объекта в форму, которая впоследствии может быть сохранена или передана.
Во время сериализации объект вносит данные о своем текущем состоянии во
временное или постоянное хранилище. После этого путем воспроизведения
данных о состоянии из хранилища мы можем воссоздать этот объект. Для решения описанной проблемы мы предлагаем реализовать облегченный механизм
сериализации/десериализации, который позволит снизить задержку на 50 %.

8.2.4. Управление ресурсами и безопасность
Теперь представим сценарий атаки системы, при котором злоумышленники
захватывают один из узлов ROS, который продолжает захватывать память,
пока система не обнаружит ошибку из-за нехватки памяти (out-of-memory,
OOM) и не начнет завершать процессы, чтобы освободить память. Первоначальная версия ROS подвержена подобным атакам, поскольку в ней отсутствует механизм безопасности, который смог бы их предотвратить. Для решения
этой проблемы мы предлагаем виртуализировать каждый узел ROS с помощью
контейнера Linux (LXC – Linux Containers) [3]. LXC значительно облегчает виртуализацию (создание искусственной среды), что позволяет изолировать процесс и ресурсы. Подобно NameSpace в C ++, LXC эффективно разделяет ресурсы
на изолированные группы, тем самым ограничивая ресурсы, которые могут
использоваться каждым узлом. Такой подход гарантирует, что каждый узел будет иметь достаточно вычислительных ресурсов и ресурсов памяти для работы
в режиме реального времени. Более того, как метод виртуализации, LXC явля-

186



Клиентские системы для беспилотных технологий

ется легковесным, а его накладные расходы составляют около 5 % ЦП. Помимо этого, LXC также поддерживает механизм «песочницы» (sandbox), позволяя
системе ограничивать полномочия процесса узла ROS. Во избежание потенциально опасных процессов в узле ROS, которые могут негативно повлиять на
другие процессы в узле, технология «песочницы» может ограничивать доступ
к дискам, памяти и сетевым ресурсам. Следовательно, LXC не только обеспечивает безопасность узлов ROS, но также позволяет эффективно распределять
системные ресурсы.

8.3. Вычислительная платформа
На серийном БА сенсоры могут генерировать до 2 Гб необработанных данных
каждую секунду. Затем огромное количество собранных данных загружается
в вычислительную платформу для восприятия и расчета плана действий. Таким образом, конструкция вычислительной платформы напрямую влияет на
производительность работы системы в режиме реального времени, а также на
ее надежность. Ключевыми критериями здесь являются стоимость, энергопотребление, тепловыделение и т. д.

8.3.1. Реализация вычислительной платформы
Для начала мы рассмотрим уже существующую вычислительную платформу
для БТС, созданную ведущей компанией-разработчиком в данной области [4].
Первое поколение таких платформ состоит из двух вычислительных блоков,
каждый из которых оснащен процессором Intel Xeon E5, а также имеет от четырех до восьми графических ускорителей Nvidia K80, соединенных шиной
PCI-E. При максимальной производительности ЦП (12 ядер) способен выдавать 400 млрд операций в секунду (GOPS/s), потребляя 400 Вт энергии. Каждый
ГП способен выдавать 8 тензорных операций в секунду (TOPS/s) при потреблении энергии 300 Вт. Следовательно, система может выдавать 64,5 TOPS/с при
потребляемой мощности около 3000 Вт. Вычислительный блок подключен к 12
камерам высокой четкости, расположенным по кругу на всем транспортном
средстве. Задача этих камер состоит в обнаружении и отслеживании объектов. На верхней части транспортного средства устанавливается лидар, задача
которого заключается в определении местоположения, а также в выполнении
некоторых функций, позволяющих избегать столкновений. Второй вычислительный блок выполняет точно такие же задачи и используется для обеспечения надежности: в случае отказа первого блока второй блок может немедленно
заменить его. В худшем случае, когда оба блока работают на пике, энергопотребление системы будет составлять 5000 Вт, что приведет к чрезмерному тепловыделению. Кроме того, каждый блок стоит от 20 000 до 30 000 долл., ввиду чего
данное решение недоступно для среднестатистического потребителя.

8.3.2. Существующие вычислительные решения
В этом подразделе мы рассмотрим существующие вычислительные решения
от разработчиков и производителей микросхем для вычислений в области беспилотных технологий.

8.3. Вычислительная платформа  187

Вычислительные решения на базе ГП (GPU)
В настоящее время, ведущим решением для БТС на базе ГП является платформа Nvidia PX. Каждая PX 2 состоит из двух процессоров Tegra SoC и двух
ГП Pascal. Каждый ГП имеет собственную выделенную память, а также специализированные инструкции для ускорения работы глубокой нейросети.
Для обеспечения высокой пропускной способности каждый процессор Tegra
подключается непосредственно к ГП Pascal с помощью 2×4 шины PCI-E Gen
(общая пропускная способность: 4,0 Гб/с). Кроме того, двойной кластер ГПГП работает на базе гигабитного Ethernet (Gigabit Ethernet) со скоростью
70 Гб/с. Благодаря оптимизированной архитектуре ввода-вывода и ускорению нейросети каждый PX2 может выполнять 24 трлн вычислений глубокого
обучения каждую секунду. Следовательно, при выполнении рабочих нагрузок
модели глубокого обучения AlexNet он способен обрабатывать 2800 изображений в секунду.

Решение на базе ЦОС (DSP)
Компания Texas Instruments (подразделение TDA) предлагает решение для
беспилотных технологий, базирующееся на ЦОС. Система TDA2x SoC состоит
из двух ядер C66x DSP с плавающей запятой и четырех полностью программируемых ускорителей зрительного восприятия (Vision Accelerators), предназначенных для обработки изображений. По сравнению с процессором ARM
Cortex-15, ускорители зрительного восприятия обеспечивают восьмикратное ускорение при выполнении соответствующих задач, при этом потребляя
меньше энергии. Еще одно решение на базе ЦОС – платформа CEVA XM4. Она
предназначена для задач компьютерного зрения при работе с видеопотоками. Основным преимуществом CEVA-XM4 является энергоэффективность, поскольку платформа требует менее 30 мВт для обработки видео в режиме 1080p
с частотой 30 кадров в секунду.

Решение на базе ПЛМ (FPGA)
Altera Cyclone V SoC – это решение для беспилотных технологий на базе
ПЛМ, которое уже успешно применялось в продуктах Audi. ПЛМ Altera оптимизированы особым образом, который позволяет объединять данные
от нескольких сенсоров, что в свою очередь обеспечивает высокую надежность обнаружения объектов. Еще одно подобное решение – платформа Zynq
UltraScale MPSoC. При выполнении задач сверточной нейронной сети она
достигает 14 изображений/с/Вт, что превосходит результаты ГП Tesla K40
(4 изображения/с/Вт). Кроме того, при отслеживании объектов, платформа
выдает результат 60 кадров/с в прямом видеопотоке 1080p.

Решение на базе специализированных интегральных схем (ASIC)
На сегодняшний день ведущим решением на базе ASIC является MobilEye
EyeQ5. Данная платформа содержит гетерогенные, полностью программируемые ускорители зрения, где каждый из четырех типов ускорителей в чипе оптимизирован для своего собственного семейства алгоритмов, включая задачи
компьютерного зрения, обработки сигналов и машинного обучения. Такое
разнообразие архитектур ускорителей позволяет приложениям экономить

188



Клиентские системы для беспилотных технологий

время и энергию при вычислениях за счет использования наиболее подходящего ядра для каждой задачи. Также, EyeQ5 позволяет расширить систему
с помощью нескольких устройств путем реализации двух портов PCI-E для
межпроцессорной связи.

8.3.3. Вопросы архитектуры вычислительной системы
В этом подразделе мы предлагаем прояснить некоторые аспекты, в частности:
(1) какое вычислительное оборудование лучше всего использовать для определенных типов рабочих нагрузок; (2) достаточно ли мобильного процессора для
выполнения задач БА при пиковых нагрузках; (3) как разработать эффективную вычислительную платформу для беспилотной технологии.

Соответствие вычислительной нагрузки аппаратным средствам
Здесь мы рассмотрим, какие вычислительные блоки лучше всего подходят для
рабочих нагрузок свертки и извлечения признаков, которые, к слову, являются
наиболее ресурсоемкими. Мы провели эксперимент, используя стандартную
мобильную SoC ARM, состоящую из четырехъядерного процессора, ГП, а также
ЦОС (подробные спецификации можно найти в [5]). Для исследования производительности и энергопотребления данной гетерогенной платформы мы реализовали и оптимизировали задачи извлечения признаков и свертки на ЦП,
ГП и ЦОС, а также измерили энергопотребление на уровне чипа.
Прежде всего мы реализовали слой свертки. Данный слой присутствует во
многих системах и выполняет наибольший объем вычислений в задачах распознавания и отслеживания объектов. В левой части рис. 8.7 приведены результаты производительности и энергопотребления: при работе на ЦП каждый процесс свертки занимает около 8 мс, потребляя 20 мДж; при работе на
ЦОС каждый процесс свертки занимает 5 мс, потребляя 7,5 мДж; при работе
на ГП каждый процесс свертки всего 2 мс, потребляя всего 4,5 мДж. Полученные результаты подтверждают, что ГП является наиболее эффективным
вычислительным блоком для задач свертки как по производительности, так
и по энергопотреблению.
Быстродействие (мс)

Энергопотребление (мДж)

25

60

20

50
40

15

30
10

20

5
0

10
CPU

DSP
Свертка

GPU

0

CPU

DSP

GPU

Извлечение признаков

Рис. 8.7. Производительность и энергопотребление процессов свертки и извлечения признаков

8.3. Вычислительная платформа  189
Затем мы реализовали слой извлечения признаков, который генерирует
точки признаков для этапа локализации, что является самой затратной вычислительной задачей данного процесса. В правой части рис. 8.7 приведены результаты производительности и энергопотребления: при работе на ЦП каждый
процесс извлечения признаков занимает около 20 мс, потребляя 50 мДж; при
работе на ГП каждый процесс занимает 10 мс, потребляя 22,5 мДж; при работе
с ЦОС каждый процесс занимает всего 4 мс, потребляя всего 6 мДж. Полученные результаты подтверждают, что наиболее эффективным вычислительным
блоком для задач обработки функций как с точки зрения производительности,
так и с точки зрения энергопотребления является ЦОС. Обратите внимание,
что мы не реализовали другие задачи, такие как локализация, планирование,
предотвращение препятствий и т. д., на ГП и ЦОС, поскольку они слишком
сложны и не могут быть эффективно решены с помощью ГП и ЦОС.

Беспилотные технологии на мобильном процессоре
Мы стремимся исследовать границы возможного и понять, насколько хорошо
система беспилотной технологии может работать на вышеупомянутой мобильной SoC ARM (ARM Mobile SoC). На рис. 8.8 представлена система беспилотной
технологии на основе машинного зрения, реализованная на мобильной SoC.
Здесь для задач обработки данных сенсоров, таких как извлечение признаков
и обработка оптического потока, мы использовали ЦОС; для задач глубокого
обучения, таких как распознавание объектов – ГП; для задач локализации БА
в реальном времени – два потока ЦП; для планирования пути в реальном времени – один поток ЦП; а также один поток ЦП для задач избежания препятствий. Имейте в виду, что несколько потоков ЦП могут выполняться на одном
ядре, если ядро ЦП не используется полностью.
ЦОС

Поток 1

Поток 2

Обработка
данных
сенсора

Локализация

Локализация

Распознавание
препятствий

Планирование

Обход
препятствий

Поток 3

Поток 4

GPU

Рис. 8.8. Беспилотная навигационная система на мобильной SoC

При запуске системы на мобильной ARM SoC мы получили приемлемые результаты производительности. В процессе локализации обрабатывалось 25 изображений в секунду, что почти не уступает частоте поступающих изображений (30
изображений в секунду). В процессе глубокого обучения выполнялось от двух до
трех задач распознавания объектов в секунду. На уровне планирования и управления планирование пути осуществлялось в пределах 6 мс. При запуске полной
системы SoC потребляла в среднем 11 Вт. Таким образом, максимальная скорость
БА с сохранением локализации составляла около 5 миль/час, что является выда-

190

 Клиентские системы для беспилотных технологий

ющимся достижением, учитывая, что система работала на мобильной SoC. Имея
больше вычислительных ресурсов, система должна быть способна обрабатывать
больше данных и позволять транспортному средству двигаться с более высокой
скоростью, в конечном итоге удовлетворяя потребностям серийного БА.

Создание вычислительной платформы
Причина, по которой мы смогли обеспечить такую производительность на мобильной SoC ARM, заключается в том, что мы в полной мере использовали гетерогенные вычислительные ресурсы системы и использовали наиболее подходящий вычислительный модуль для каждой задачи, что позволило достичь
наилучшей производительности и энергоэффективности. Однако есть и обратная сторона: мы не смогли вместить в такую систему все задачи, например отслеживание объектов, прогнозирование смены полосы движения, прогнозирование движения по пересеченной местности и т. д. Кроме того, мы стремимся
к тому, чтобы беспилотная система имела возможность выгружать необработанные данные сенсоров и обработанные данные в облако, но объем данных
настолько велик, что занимает всю доступную пропускную способность сети.
Выполнение вышеупомянутых функций (отслеживание объектов, прогнозирование смены полосы движения, прогнозирование движения на перекрестке
дорог, загрузка данных и т. д.) не требуется системе постоянно. Например, задача отслеживания объекта запускается задачей распознавания объекта, а задача
прогнозирования движения запускается задачей отслеживания объекта. Также
системе не требуется постоянная выгрузка данных, так как выгрузка данных
партиями значительно улучшает пропускную способность и уменьшает занимаемую полосу пропускания. Если мы возьмемся разрабатывать для каждой из
этих задач отдельную микросхему ASIC, то площадь чипа будет использоваться
нерационально. Вместо них идеально подошла бы ПЛМ. Одна микросхема ПЛМ
может использоваться разными частями системы в разное время. Мы выяснили,
что с использованием методов частичной реконфигурации (partial reconfiguration)
[6] программное ядро ПЛМ можно менять менее чем за несколько миллисекунд,
что делает описанный выше подход применимым в режиме реального времени.
На рис. 8.9 представлен предлагаемый нами вычислительный стек. Данная
вычислительная платформа включает в себя архитектуру SoC, которая состоит из подсистемы ввода-вывода, взаимодействующей с внешними сенсорами;
архитектуру ЦОС, осуществляющую предварительную обработку потока изображений для извлечения признаков; ГП, служащий для распознавания объектов и некоторых других задач глубокого обучения; многоядерный ЦПУ для
выполнения задач планирования, управления и взаимодействия; микросхему
ПЛМ, которую можно динамически реконфигурировать и в разное время осуществлять задачи сжатия и загрузки данных, отслеживания объектов, прогнозирования движения и т. д. Обмен данных между вышеперечисленными вычислительными компонентами и компонентами ввода-вывода происходит через
общую память. Поверх уровня вычислительной платформы мы разместили
уровень выполнения (run-time layer), служащий для отображения различных
рабочих нагрузок на гетерогенные вычислительные блоки через OpenCL [7].
Также данный уровень осуществляет планирование различных задач непосредственно во время механизма выполнения правил (execution engine). По-

8.4. Справочные материалы  191
верх него мы разместили уровень операционных систем на базе ROS. Данный
уровень представляет собой распределенную систему, состоящую из нескольких узлов ROS, каждый из которых инкапсулирует отдельную задачу БА.
Прикладной уровень

Сенсорное
сканирование

Восприятие

Принятие
решений

Другое

Уровень операционной
системы

Узел ROS

Узел ROS

Узел ROS

Узел ROS

Время выполнения

Уровень выполнения
операций

Вычислительная
платформа

OpenCL
CPU

Подсистема
вводавывода

Общая память
ЦОС

ГП

ПЛМ

Рис. 8.9. Вычислительный стек для беспилотных технологий

8.4. Справочные материалы
[1]

[2]
[3]
[4]
[5]
[6]

[7]

Quigley, M., Gerkey, B., Conley, K., Faust, J., Foote, T., Leibs, J., Berger, E.,
Wheeler, R., and Ng, A. 2009. ROS: An open-source robot operating system,
Proceedings of the OpenSource Software Workshop International Conference
on Robotics and Automation.
Hunt, P., Konar, M., Junqueira, F. P., and Reed, B. 2010. ZooKeeper: Wait-free
coordination for internet-scale systems. In Proceedings of the Usenix Annual
Technical Conference.
Helsley, M. 2009. LXC: Linux container tools. IBM DevloperWorks Technical
Library, p.11.
Liu, S., Tang, J., Zhang, Z., and Gaudiot, J. L. 2017. Computer architectures for autonomous driving. Computer, 50(8), pp.18–25. DOI: 10.1109/MC.2017.3001256.
Qualcomm Snapdragon 820 Processor, https://www.qualcomm.com/products/
snapdragon/processors/820
Liu, S., Pittman, R. N., Forin, A., and Gaudiot, J. L. 2013. Achieving energy efficiency through runtime partial reconfiguration on reconfigurable systems.
ACM Transactions on Embedded Computing Systems (TECS), 12(3), p. 72.
DOI: 10.1145/2442116.2442122.
Stone, J. E., Gohara, D., and Shi, G. 2010. OpenCL: A parallel programming
standard for heterogeneous computing systems. Computing in Science & Engineering, 12(3), pp. 66–73. DOI: 10.1109/MCSE.2010.69.

Глава

9

Облачные платформы
для беспилотных технологий
Аннотация
Облачные технологии являются необходимым условием для эффективного функционирования БА. Сегодня сервисы облачных технологий,
помимо прочего, могут обеспечивать проведение распределенных имитационных тестов для развертывания новых алгоритмов, автономное
обучение модели глубокого обучения, создание HD-карт и многое другое.
Данные сервисы требуют особой инфраструктурной поддержки, включающей распределенные вычисления, распределенное хранилище, а также гетерогенные вычисления. В этой главе мы подробно расскажем
о нашей реализации унифицированной облачной инфраструктуры для
беспилотных технологий, а также представим наше решение касаемо
инфраструктурной поддержки облачных сервисов.

9.1. Введение
Беспилотные автомобили представляют собой мобильные системы, в которых облачные сервисы обеспечивают базовую инфраструктурную поддержку, включая распределенные вычисления, распределенное хранилище
и гетерогенные вычисления [1]. Поверх данной инфраструктуры мы можем
реализовать другие необходимые БА сервисы. Например, при передвижении
БА в городской среде каждую секунду может генерироваться более 2 Гб необработанных данных сенсоров. Таким образом, возникает необходимость
создания эффективной облачной инфраструктуры для хранения, обработки
и анализа огромного количества необработанных данных. Облачная инфраструктура, которую мы представляем в этой главе, позволяет эффективно использовать необработанные данные для выполнения распределенных имитационных тестов для развертывания новых алгоритмов, для выполнения
автономного обучения модели глубокого обучения, а также для непрерывного создания HD-карт.

9.2. Инфраструктура  193

9.2. Инфраструктура
Помимо прочего, ключевыми применениями облачных вычислений являются
приложения, созданные для имитационных тестов для развертывания новых
алгоритмов, создания карт высокой четкости, автономного обучения модели
глубокого обучения и т. д. Все эти приложения требуют инфраструктурной поддержки, в частности распределенных вычислений и хранилища данных. Один
из способов реализации упомянутых аспектов – адаптация инфраструктуры
для каждого приложения. Однако такое решение приводит к возникновению
нескольких проблем.
 Невозможность динамического совместного использования ресурсов: при адаптации каждой инфраструктуры к определенному приложению мы не сможем использовать их взаимозаменяемо даже в случаях,
если одно из них неактивно, а другое полностью загружено.
 Снижение производительности: иногда данные распределяются между приложениями. Например, вновь созданная карта может использоваться в рабочих нагрузках симуляции вождения. Без унифицированной
инфраструктуры потребуется часто копировать данные из одного распределенного элемента хранилища в другой, что приведет к высоким
накладным расходам.
 Накладные расходы на управление: для обслуживания каждой специализированной инфраструктуры может потребоваться целая группа
инженеров. Путем унифицирования инфраструктуры мы значительно
сократим накладные расходы на управление.

HD-карта

Симуляция

Обучение
модели

Распределенный вычислительный уровень Spark
OpenCL
ЦП

ГП

ПЛМ

Распределенный уровень хранения Alluxio

Рис. 9.1. Облачная платформа для беспилотной технологии

Как показано на рис. 9.1, для решения описанных выше проблем мы разработали унифицированную инфраструктуру, обеспечивающую возможности распределенных вычислений и распределенного хранения. Для большего повышения производительности мы внедрили гетерогенный вычислительный уровень
для ускорения различных ядер на ГП или ПЛМ, которые позволяют повысить

194



Облачные платформы для беспилотных технологий

либо производительность, либо энергоэффективность. Для распределенных
вычислений мы предлагаем использовать Spark [2], для гетерогенных вычислений – OpenCL [4], а для хранения – Alluxio [3]. Объединив преимущества трех перечисленных компонентов инфраструктуры, мы можем предоставить надежный
облачный сервис с низкими задержками и высокой пропускной способностью.

9.2.1. Структура распределенных вычислений
При создании структуры распределенных вычислений для беспилотных технологий мы рассматривали два варианта: механизм Hadoop MapReduce [11], имеющий проверенный послужной список, и Apache Spark [2] – инфраструктуру,
предполагающую выполнение распределенных вычислений в памяти, что обеспечивает низкие задержки и высокую пропускную способность.
В частности, Apache Spark предоставляет интерфейс прикладного программирования, основанный на структуре данных, называемой отказоустойчивым
распределенным набор данных (RDD – resilient distributed dataset), которая представляет собой поддерживаемое отказоустойчивым путем мультимножество
элементов данных, предназначенных только для считывания и распределенных по кластеру устройств. Данный проект был разработан в ответ на ограничения в парадигме кластерных вычислений MapReduce, которая навязывает
определенную линейную структуру потока данных в распределенных программах: программы MapReduce считывают входные данные с диска, применяют
функцию к данным, сжимают результаты сопоставления и сохраняют их на диске. RDD Spark, напротив, функционирует как рабочий набор для распределенных программ, которые предлагают ограниченную форму распределенной разделяемой памяти. Используя RDD в памяти, Spark может уменьшить задержку
итерационных вычислений на несколько порядков.
Прежде чем перейти с MapReduce на Spark, мы решили рассмотреть надежность кластера Spark и определить, может ли он обеспечить необходимый прирост производительности. Для рассмотрения данного аспекта мы предприняли
два шага. Во-первых, развернули кластер Spark на 1000 устройств и в течение
трех месяцев проводили соответствующие тесты. Стресс-тесты помогли нам выявить несколько ошибок в системе, касающиеся управления системной памятью, которые приводили к сбою узлов Spark. После решения данных проблем
система работала практически без сбоев в течение нескольких недель, что подтвердило нашу уверенность в том, что Spark может быть эффективным решением для платформы распределенных вычислений для беспилотных технологий.
Во-вторых, для количественной оценки производительности мы выполнили
большое количество производственных SQL-запросов в MapReduce и в кластере
Spark. При одинаковой вычислительной мощности Spark превзошел MapReduce
в среднем в пять раз. На обработку запроса, который мы выполняли ежедневно
в Baidu, у MapReduce ушло более 1000 с, а у Spark всего 150 с.

9.2.2. Распределенное хранение
Далее нам необходимо было определиться с механизмом распределенного
хранения. Опять же, мы столкнулись с двумя вариантами: продолжать работать с распределенной файловой системой Hadoop (HDFS – Hadoop Distributed

9.2. Инфраструктура  195
File System) [11], которая обеспечивает надежное постоянное хранилище, или
использовать Alluxio, распределенную систему хранения, ориентированную
на память и обеспечивающую надежный обмен данными через кластерные
структуры с быстродействием, равным быстродействию памяти [3].
В частности, Alluxio использует память в качестве носителя данных по умолчанию, что обеспечивает соответствующую скорость чтения и записи. Однако
память – это дефицитный ресурс, и поэтому Alluxio не всегда может предоставить достаточно места для хранения всех данных.
Решить данную проблему можно путем создания многоуровневого хранилища Alluxio. Благодаря данному методу, Alluxio может управлять несколькими уровнями хранилища, включая память, твердотельный накопитель (SSD –
solid-state drive) и жесткий диск (HDD – hard disk drive) одновременно. Также
Alluxio позволяет хранить в системе больше данных, что особенно актуально
в условиях ограниченной памяти. Alluxio автоматически управляет распределением блоков между всеми настроенными уровнями, поэтому пользователям
и администраторам не нужно делать это вручную. В некотором смысле уровень
памяти многоуровневого хранилища служит кешем верхнего уровня, SSD –
кешем второго уровня, HDD – кешем третьего уровня, а внешнее хранилище
(persistent storage) является хранилищем последнего уровня.
В предлагаемой нами среде мы совмещаем Alluxio с вычислительными узлами и используем Alluxio в качестве кеша для использования пространственной локальности. В результате вычислительные узлы могут считывать и записывать данные в Alluxio, а Alluxio может асинхронно сохранять данные на
удаленных узлах хранения. Такой подход позволил нам добиться 30-кратного
увеличения скорости по сравнению с использованием только HDFS.

9.2.3. Гетерогенные вычисления
По умолчанию среда распределенных вычислений Spark использует общий ЦП
в качестве нижележащего вычислительного слоя, что является не лучшим решением для определенных типов рабочих нагрузок. Например, ГП обеспечивает
параллелизм на уровне данных, что полезно для вычислений с высокой плотностью, таких как свертка изображений. Мы провели сравнение производительности ГП и ЦП при решении задач распознавания объектов на основе сверточной нейронной сети и обнаружили, что ГП превосходит ЦП в 10–20 раз. С другой
стороны, ПЛМ не обладает необходимой мощностью для вычисления векторов,
которое обычно является ядром задач компьютерного зрения и глубокого обучения. Использование гетерогенных вычислительных слоев обеспечивает значительный прирост производительности, а также энергоэффективности.
При интеграции гетерогенных вычислительных ресурсов в предлагаемую
нами инфраструктуру возникает несколько вопросов: во-первых, вопрос
о том, как достичь динамического распределения вычислительных ресурсов
для разных типов рабочих нагрузок. Во-вторых, вопрос о том, как осуществить
беспрепятственное распределение рабочей нагрузки на вычислительный слой.
Как представлено на рис. 9.2, для решения первой проблемы мы использовали YARN и LXC, осуществляя с их помощью планирование и отправку задач. YARN предоставляет возможности управления ресурсами и планирования
для распределенных вычислительных систем, делая возможным эффективное

196



Облачные платформы для беспилотных технологий

совместное использование кластера для различных задач. LXC представляет
собой метод виртуализации на уровне операционной системы для запуска
нескольких изолированных систем Linux на одном хосте. LXC позволяет изолировать, ограничивать и устанавливать приоритеты ресурсов, включая ЦП,
память, блочный ввод-вывод, сеть и т. д. Используя LXC, можно эффективно
разместить несколько виртуальных устройств на одном хосте при очень низких накладных расходах. По результатам экспериментов мы выяснили, что
при таком подходе накладные расходы ЦП составляют менее 5 % по сравнению
с запуском приложений по умолчанию.
При запуске приложения Spark оно запрашивает гетерогенные вычислительные ресурсы через YARN. Затем YARN выделяет LXC для удовлетворения
запроса. Обратите внимание, что каждое приложение Spark может иметь несколько хранилищ, и каждое из них может содержать вычислительные ресурсы
ЦП, ГП или ПЛМ. В данном случае хранилища обеспечивают изоляцию ресурсов, что позволяет эффективно потреблять ресурсы и управлять задачами.
Для решения второй проблемы мы нуждались в механизме для «бесшовного» подключения инфраструктуры Spark к гетерогенным вычислительным ресурсам. Поскольку Spark по умолчанию использует виртуальную машину Java
(JVM – Java Virtual Machine), первостепенной задачей стало развертывание рабочих нагрузок в нативном пространстве. Как упоминалось ранее, поскольку
программный интерфейс Spark был основан на RDD, мы разработали гетерогенный вычислительный RDD, который позволил отправлять вычислительные
задачи из управляемого пространства в нативное пространство через интерфейс прямого доступа к виртуальной машине Java (JNI – Java Native Interface).
Далее, в нативной среде нам требовался механизм для перенаправления рабочих нагрузок на ГП или ПЛМ. Для данной задачи мы решили использовать
OpenCL ввиду его доступности на различных гетерогенных вычислительных
платформах. Функции, выполняемые на устройстве OpenCL, называются ядрами.
OpenCL определяет API, который позволяет программам, запущенным на хосте,
запускать ядра на гетерогенных устройствах и управлять памятью устройства.
Мастер приложений

3.

Управляемое
приложение

… ….

Управляемое
приложение

Контейнер

… ….

Контейнер

Ядро
OpenCL

… ….

Приложение пользователя

1. Запрос
(ЦП, память,
ГП, ПЛМ)

2. Выделенные
контейнеры
Ядро
OpenCL

Apache Yarn
ЦП

… ….

ПЛМ

Рис. 9.2. Распределенная гетерогенная вычислительная платформа

9.3. Симуляция  197

9.3. Симуляция
Далее нам следует рассмотреть службы, работающие поверх рассмотренной
унифицированной структуры. Перваяслужба, которую мы рассмотрим, – это
тесты распределенного моделирования для развертывания новых алгоритмов.
Всякий раз, когда мы разрабатываем новый алгоритм, перед развертыванием на реальных БА он нуждается в тщательном тестировании. Предварительное
тестирование позволяет избежать огромных затрат на рабочее тестирование
и слишком длительного рабочего цикла развертывания. Поэтому мы предлагаем тестировать систему на симуляторах [5]. Один из подходов к моделированию состоит в воспроизведении данных с помощью ROS [6], где для быстрой
проверки и раннего выявления проблем используются новейшие разработанные алгоритмы. Только после того, как алгоритм пройдет все симуляционные
тесты, его можно будет применить на реальном БА для испытаний на дороге.
Тестирование нового алгоритма на реальном БА либо занимало бы слишком
много времени, либо было бы недостаточно эффективным. Для решения данной
проблемы мы используем инфраструктуру Spark, с помощью которой создаем
распределенную платформу моделирования. Такой подход позволяет развернуть
новый алгоритм на многих вычислительных узлах, снабдить каждый узел разными порциями данных и в конце концов агрегировать результаты тестирования.
При соединении ROS и Spark мы столкнулись с двумя проблемами: во-первых,
Spark по умолчанию использует структурированные текстовые данные. Однако
для моделирования необходимо, чтобы Spark потреблял разнородные двоичные данные, записанные ROS, такие как необработанные или отфильтрованные
данные различных сенсоров или ограничивающие прямоугольные области, вычисленные модулем восприятия. Во-вторых, ROS необходимо запускать в нативной среде, в то время как Spark предполагает наличие управляемой среды.

Драйвер
Spark

Приложение
симуляции

Воркер
Spark

Канал

Узел
ROS

Воркер
Spark

Канал

Узел
ROS

Воркер
Spark

Канал

Узел
ROS

Рис. 9.3. Платформа моделирования для беспилотных технологий

198

 Облачные платформы для беспилотных технологий

9.3.1. BinPipeRDD
Для успешного функционирования данной архитектуры необходимо решить две задачи. Первая – заставить Spark использовать поток двоичных
входных данных (разнородные сырые данные). По умолчанию входные данные Spark имеют текстовый формат. Они могут представлять собой входные
записи, например содержащие ключи и значения, разделенные символами пробела/табуляции (space/tab), а также записи, разделенные символами возврата каретки. Однако в контексте потоков двоичных данных все
устроено иначе. Здесь каждый элемент данных в поле ключа/значения может быть ценным. Чтобы решить эту проблему, мы разработали и внедрили
BinPipeRDD. На рис. 9.4 представлено, как BinPipeRDD работает в программе-исполнителе Spark. Сначала разделы двоичных файлов проходят этапы
кодирования и сериализации, в процессе которых формируется двоичный
поток байтов. На этапе кодирования все поддерживаемые форматы входных данных, включая строки (например, имя файла) и целые числа (например, размер двоичного содержимого), кодируются в предлагаемый нами
унифицированный формат, основанный на массиве байтов. После этого на
этапе сериализации все массивы байтов (каждый из которых может соответствовать одному двоичному входному файлу) объединяются в один двоичный поток. Затем пользовательская программа, получив этот двоичный
поток, десериализует и декодирует его в соответствии с интерпретацией
потока байтов в понятный формат. Далее пользовательская программа выполняет целевое вычисление (User Logic), которое варьируется от простых
задач, таких как поворот файла jpg на 90°, до относительно сложных, таких как обнаружение пешеходов на основе двоичных данных, поступающих с лидара. Затем выходные данные кодируются и сериализуются перед
передачей в виде разделов RDD [Bytes] (байты). На последнем этапе разделы
могут быть возвращены драйверу Spark с помощью операции сбора или сохранены в HDFS в виде двоичных файлов. Описанный процесс позволяет
обрабатывать и преобразовывать двоичные данные в определяемый пользователем формат и преобразовывать выходные данные вычислений Spark
в поток байтов для операций сбора. Также поток байтов может быть преобразован в текстовые или общие двоичные файлы в HDFS в соответствии
с потребностями и логикой приложений.

9.3. Симуляция  199

Сегмент
мультимедийных
файлов

Выходные
двоичные
файлы
в DFS

Кодирование

Сериализация

Десериализация
Двоичный
поток

Декодирование

Декодирование

Целевое
вычисление

Десериализация

Кодирование

Основная
коллекция
байтов

Локальная
коллекция
выходных байтов

Сериализация
Двоичный
поток

Рис. 9.4. Структура BinPipeRDD

9.3.2. Объединение Spark и ROS
Благодаря BinPipeRDD Spark может потреблять данные ROS Bag. Так, нашей
следующей задачей был поиск способов запуска узлов ROS в Spark, а также
связи между узлами Spark и ROS. Один из вариантов заключался в разработке
новой формы RDD для интеграции узлов ROS и Spark, однако это могло потребовать изменения интерфейсов как ROS, так и Spark. Немаловажным аспектом
было обеспечение поддержки разных версий ROS, поэтому мы выбрали другое
решение и запустили ROS и Spark независимо друг от друга, разместив в системе одновременно как узлы ROS, так и исполнители Spark, а также обеспечив
обмен данными между ними через каналы Linux (Linux pipes) – однонаправленные каналы данных, которые можно использовать для межпроцессного
взаимодействия. Данные, записанные стороной канала для записи, буферизуются ядром до тех пор, пока не будут прочитаны стороной канала для чтения.

9.3.3. Производительность
По мере разработки системы мы постоянно оценивали ее производительность. Во-первых, мы осуществили базовое выделение характерных признаков одного миллиона изображений (общий размер набора данных составлял
более 12 ТБ) и протестировали масштабируемость системы. Как представлено
на рис. 9.5, при масштабировании с 2000 ядер ЦП до 10 000 время выполнения
сократилось со 130 до примерно 32 с, демонстрируя многообещающую возможность линейной масштабируемости. Затем мы выполнили набор тестов
для имитации внутреннего воспроизведения. На одном узле обработка всего

200

 Облачные платформы для беспилотных технологий

набора данных занимала около 3 ч. При масштабировании системы до восьми
узлов Spark для завершения моделирования требовалось всего около 25 мин,
что снова продемонстрировало нам отличный потенциал масштабируемости.
140
130
Время (в секундах)

105

70

68
46

35

0

2,000

4,000

6,000

37

8,000

32

10,000

Количество ядер ЦП

Рис. 9.5. Обработка данных платформы системы моделирования

9.4. Обучение модели
Еще одно приложение, которое эта инфраструктура должна поддерживать, –
это автономное обучение модели. Для достижения высокой производительности при обучении модели в автономном режиме предлагаемая нами инфраструктура обеспечивает плавное ускорение ГП, а также поддержку хранения
в памяти серверов параметров.
Поскольку в области беспилотных технологий мы используем различные
модели глубокого обучения, крайне важным аспектом становятся обновления,
которые позволят постоянно повышать эффективность и результативность
этих моделей. Однако в условиях большого объема сгенерированных необработанных данных мы не сможем добиться быстрого обучения модели с использованием отдельных серверов. Чтобы решить эту проблему, мы разработали хорошо масштабируемую распределенную систему глубокого обучения
с использованием Spark и Paddle [10]. В драйвере Spark мы можем управлять
контекстом Spark и контекстом Paddle, и в каждом узле исполнитель Spark размещает экземпляр учителя Paddler. Кроме того, в качестве сервера параметров
для этой системы мы можем использовать Alluxio. Описанный подход позволил нам достичь линейного масштабирования производительности даже при
добавлении дополнительных ресурсов. Следовательно, данный факт доказывает, что система обладает высокой масштабируемостью.

9.4.1. Почему именно Spark?
Первый вопрос, который может возникнуть у читателя: зачем использовать
Spark в качестве среды распределенных вычислений, учитывая, что все существующие среды глубокого обучения уже имеют возможности распределенного обучения. Основная причина заключается в том, что, хотя обучение модели
выглядит как отдельный процесс, оно может зависеть от этапа предваритель-

9.4. Обучение модели  201
ной обработки данных, такого как ETL (Extract, Transform, Load – извлечение,
преобразование, загрузка), простое извлечение признаков и т. д. Как представлено в левой нижней части рис. 9.6, в наших практических тестах рассмотрение
каждого этапа как автономного процесса потребовало бы интенсивного вводавывода в базовое хранилище, например HDFS. Как следствие, мы обнаружили,
что ввод-вывод в базовое хранилище часто становился «узким местом» нашего
процесса обработки.
HDFS Write
Проверка модели
HDFS Read
HDFS Write

HDFS Write

Обучение модели

Проверка модели

HDFS Read

Обучение модели
Извлечение признаков

HDFS Write

ETL

Извлечение признаков

HDFS Read

HDFS Read
HDFS Write
ETL

Журналы
сессий

Изображения

HDFS Read

Журналы сессий

Рис. 9.6. Обучающая платформа для беспилотных технологий

Как представлено в правой части рис. 9.6, используя Spark в качестве унифицированной распределенной вычислительной инфраструктуры, мы смогли
буферизовать промежуточные данные в памяти в форме RDD. Этапы обработки естественным образом формируют процесс, где между этапами отсутствуют
удаленные подключения ввода-вывода к базовому хранилищу. Таким образом,
в начале процесса считываются необработанные данные HDFS в начале конвейера, а затем обработанные данные передаются на следующий этап в форме
RDD. Процесс продолжается до завершения последнего этапа, где данные записываются обратно в HDFS. Такой подход позволил нам увеличить пропускную способность системы в среднем вдвое.

9.4.2. Архитектура обучающей платформы
На рис. 9.7 представлена архитектура предлагаемой нами обучающей платформы. Главное, мы имеем драйвер для управления всеми узлами Spark, при
этом на каждом узле размещены исполнитель Spark и тренер Paddle, что по-

202

 Облачные платформы для беспилотных технологий

зволяет нам использовать платформу Spark для обработки распределенных
вычислений и распределения ресурсов.
С помощью этой архитектуры мы можем использовать параллелизм данных, разбивая все обучающие данные на сегменты, чтобы каждый узел независимо обрабатывал один или несколько сегментов необработанных данных.
Чтобы синхронизировать узлы, в конце каждой итерации обучения нам необходимо суммировать все обновления параметров от каждого узла, выполнить вычисления для получения нового набора параметров, а затем передать
новый набор параметров каждому узлу, чтобы они могли начать следующую
итерацию обучения.
Роль сервера параметров заключается в эффективном хранении и обновлении параметров. Если бы мы сохранили параметры в HDFS, опять же, как
мы упоминали ранее, ввод-вывод стал бы «узким местом» производительности в системе. Чтобы решить эту проблему, мы использовали Alluxio в качестве сервера параметров. Как обсуждалось в разделе 9.2.2, Alluxio – это
распределенное хранилище, ориентированное на память, которое использует хранилище в памяти для оптимизации производительности ввода-вывода. В сравнении с HDFS, мы наблюдали более чем пятикратное увеличение
производительности ввода-вывода за счет использования Alluxio в качестве
сервера параметров.
Alluxio как сервер параметров

Администратор
узлов

Администратор
узлов

Администратор
узлов

Тренер
Paddle

Тренер
Paddle

Тренер
Paddle

Исполнитель
Spark

Исполнитель
Spark

Исполнитель
Spark

Драйвер Spark

Рис. 9.7. Обучающая платформа для беспилотных технологий

9.4.3. Гетерогенные вычисления
Далее мы рассмотрели, как гетерогенные вычисления могут повысить эффективность автономного обучения модели. В качестве первого шага мы сравнили работу ГП с процессором со сверточными нейронными сетями (CNN).
Используя модель внутреннего распознавания объектов с инфраструктурой

9.5. Создание HD-карт  203

Продолжительность прохождения (секунды)

OpenCL, представленной в разделе 9.2.3, мы наблюдали 15-кратное ускорение
с использованием графического процессора. Вторым шагом было исследование масштабируемости данной инфраструктуры. На нашем устройстве каждый узел оснащен одной видеокартой. Полученные результаты представлены
на рис. 9.8. Когда мы масштабировали количество графических процессоров,
задержка обучения за один проход снизилась почти линейно. Полученный
результат подтвердил масштабируемость нашей платформы. Таким образом,
ввиду наличия большого объема данных мы можем сократить время обучения,
предоставив модели больше вычислительных ресурсов.
Задержка обучения при распределенном глубоком обучении
за проход (Conv-10)
3,000
2943
2250

1500

1442
982

750

0

4

8

12

767

16

624
20

555
24

Количество ГП

Рис. 9.8. Проведение обучения распределенной модели

9.5. Создание HD-карт
Третье приложение, необходимое для предлагаемой нами инфраструктуры, –
это создание HD-карт. Данный процесс представляет собой многоступенчатую
конвейерную обработку. Используя Spark и гетерогенные вычисления, нам
удалось уменьшить количество операций ввода-вывода между этапами обработки и ускорить прохождение критических участков процесса.
Как представлено на рис. 9.9, как и автономное обучение, создание HDкарты также представляет собой сложный процесс, который включает в себя
множество этапов, в том числе считывание необработанных данных, фильтрацию и предварительную обработку, восстановление и уточнение положения, выравнивание облака точек, создание двумерной карты отражения,
маркировку HD-карты и т. д., а также вывод готовой карты [7, 8]. Используя
Spark, мы можем объединить все эти этапы в одну задачу. Большим преимуществом является то, что Spark предоставляет вычислительный механизм
в памяти, ввиду чего нет необходимости хранить промежуточные данные на
жестком диске, что обычно значительно снижает производительность процесса создания карты.

204



«Сырые»
данные

Облачные платформы для беспилотных технологий

Облака точек

Выравнивание
облака точек

Двумерная карта
отражения

Разметка
HD-карты

Карта
высокой
точности

Процесс создания HD-карты

Рис. 9.9. Платформа моделирования для беспилотных технологий

9.5.1. HD-карты
Как и в случае с традиционными цифровыми картами, HD-карты содержат
множество слоев информации. Как представлено на рис. 9.10, нижним слоем
является сетчатая карта (grid map), созданная на основе необработанных данных лидара, с детализацией сетки около 5×5 см. Каждая ячейка данного слоя
содержит информацию о высоте и отражении окружающей среды. По мере
движения БА и сбора новых данных посредством лидара полученные в результате сканы в реальном времени сравниваются с сетчатой картой, где отмечены исходные оценки местоположения, предоставленными GPS и/или блоком
инерциальных измерителей, которые впоследствии помогают БА осуществлять локализацию в режиме реального времени.
Поверх сетчатого слоя наложено несколько слоев семантической информации. На данных слоях сетчатая карта дополняется информацией об опорной
линии или другой информацией о полосе, что позволяет БА определять, двигаются ли они по правильной полосе движения, а также решать, выдерживают
ли они безопасное расстояние до транспортных средств на соседних полосах
движения. В дополнение к информации о полосах движения к карте добавляются метки дорожных знаков, что позволяет уведомить БА об ограничении
скорости, наличии светофоров и т. д. Все это обеспечивает дополнительный
уровень защиты в случае, если сенсоры БА пропустят знаки.

9.5. Создание HD-карт  205

Участок полосы
движения Aleft

Участок полосы
движения Bleft
t
s

Участок полосы
движения Aright

Участок полосы
движения Bright

Признаки

Полосы движения

Рис. 9.10. Слои семантической информации HD-карты

9.5.2. Создание карт в облаке
Ранее мы уже упоминали о важности данных лидара для создания HD-карт, однако помимо них используются и другие данные сенсоров. Как представлено
на рис. 9.11, в процессе создания HD-карты необработанные данные нескольких сенсоров фактически объединяются для получения точной информации
о местоположении. Данные одометрии колеса и данные IMU могут использоваться для выполнения, распространения или для получения данных о смещении транспортного средства за фиксированный промежуток времени. Также
данные GPS и данные лидара могут быть использованы для корректировки
результатов распространения с целью минимизации ошибок.
Процесс вычислений, осуществляемых при создании карты, можно разделить
на три этапа. Первый – выполнение одновременной локализации и построение
карты (SLAM – Simultaneous Localization And Mapping). Данный процесс позволяет
определить местоположение каждого скана лидара. На этом этапе Spark загружает все необработанные данные, включая журнал IMU, журнал одометрии колес,
журнал GPS и необработанные данные лидара из HDFS. Затем осуществляется
создание карты и выравнивание облака точек, при котором независимые сканы
лидара сшиваются вместе, формируя непрерывную карту. На завершающем этапе к сетчатой карте добавляются метки и семантическая информация.

206

 Облачные платформы для беспилотных технологий

IMU
Распространение

Прогноз положения

Колесо

GPS

Объединение
данных
с сенсоров

Новое положение

Создание
карты

LiDAR

Карта

Рис. 9.11. Создание карты в облаке

Как и в случае с приложениями для автономного обучения, мы связали
описанные этапы с помощью Spark и буферизовали промежуточные данные
в памяти. Благодаря такому подходу мы достигли пятикратного ускорения, по
сравнению подходом, предполагающим отдельные задания для каждого этапа. Кроме того, самой затратной операцией на этапе создания карты является
итеративный алгоритм выравнивания облака ближайших точек (ICP – iterative
closest point) [12]. Используя гетерогенную инфраструктуру, нам удалось ускорить этот этап в 30 раз путем переноса основных операций ICP на ГП.

9.6. Заключение
Облачные платформы являются неотъемлемой частью стека беспилотных технологий. В этой главе мы подробно представили наш практический опыт создания серийной облачной платформы. Для поддержки различных облачных
приложений необходима инфраструктура, обеспечивающая распределенные
вычисления, распределенное хранилище, а также аппаратное ускорение за
счет возможностей гетерогенных вычислений.
Настройка инфраструктуры для каждого предложения является нецелесообразным подходом, поскольку в таком случае возникает необходимость поддержки нескольких инфраструктур, что потенциально может привести к неоптимальному использованию ресурсов, низкой производительности и высоким
накладным расходам на эксплуатацию. Мы решили данную проблему путем
создания унифицированной инфраструктуры, где для распределенных вычислений используется Spark, для распределенного хранения – Alluxio, а для
использования гетерогенных вычислительных ресурсов с целью повышения
производительности и энергоэффективности – OpenCL.

9.7. Справочные материалы  207
Унифицированная инфраструктура позволяет поддерживать множество
приложений, включая, помимо прочего, распределенные имитационные тесты
для развертывания новых алгоритмов, автономное обучение моделей глубокого обучения и создание HD-карт. В этой главе мы детально рассмотрели каждое
из этих приложений, чтобы объяснить, как предлагаемая нами инфраструктура может использоваться для поддержки определенных функций, а также для
прироста производительности и масштабируемости.
На данный момент разработка облачных инфраструктур для беспилотных
технологий находится на ранних стадиях, поскольку сами беспилотные технологии все еще активно развиваются. Тем не менее мы знаем, что с применением унифицированной инфраструктуры для обеспечения основных возможностей, включая распределенные вычисления, распределенное хранилище
и гетерогенные вычисления, облачные платформы для беспилотных технологий могут получить значительное развитие, тем самым получив возможность
соответствовать вновь появляющимся приложениям.

9.7. Справочные материалы
[1]
[2]
[3]

[4]
[5]

[6]
[7]
[8]
[9]
[10]
[11]
[12]

Liu, S., Peng, J., and Gaudiot, J. L. 2017. Computer, drive my car! Computer,
50(1), pp. 8–8. DOI: 10.1109/MC.2017.2.
Zaharia, M., Chowdhury, M., Franklin, M.J., Shenker, S., and Stoica, I. 2010.
Spark: Cluster computing with working sets. HotCloud, 10(10-10), p. 95.
Li, H., Ghodsi, A., Zaharia, M., Shenker, S., and Stoica, I. 2014. Tachyon: Reliable, memory speed storage for cluster computing frameworks. In Proceedings of the ACM Symposium on Cloud Computing (pp. 1–15). ACM. DOI:
10.1145/2670979.2670985.
Stone, J. E., Gohara, D., and Shi, G. 2010. OpenCL: A parallel programming
standard for heterogeneous computing systems. Computing in Science & Engineering, 12(3), pp. 66–73. DOI: 10.1109/MCSE.2010.69.
Basarke, C., Berger, C., and Rumpe, B. 2007. Software & systems engineering
process and tools for the development of autonomous driving intelligence.
Journal of Aerospace Computing, Information, and Communication, 4(12),
pp. 1158–1174. DOI: 10.2514/1.33453.
Robot Operating System, http://www.ros.org/.
Levinson, J. and Thrun, S. 2010. Robust vehicle localization in urban environments
using probabilistic maps. In 2010 IEEE International Conference on Robotics and
Automation (ICRA), (pp. 4372–4378). IEEE. DOI: 10.1109/ROBOT.2010.5509700.
Schreiber, M., Knöppel, C., and Franke, U. 2013. Laneloc: Lane marking based
localization using highly accurate maps. In Intelligent Vehicles Symposium
(IV), 2013 IEEE (pp. 449–454). IEEE. DOI: 10.1109/IVS.2013.6629509.
Geiger, A., Lenz, P., Stiller, C., and Urtasun, R. 2013. Vision meets robotics:
The KITTI dataset. The International Journal of Robotics Research, 32(11),
pp. 1231–1237. DOI: 10.1177/0278364913491297.
Baidu PaddlePaddle: https://github.com/PaddlePaddle/Paddle.
White, T. 2012. Hadoop: The Definitive Guide. O'Reilly Media, Inc.
Segal, A., Haehnel, D., and Thrun, S. 2009. Generalized-ICP. In Robotics: Science and Systems. DOI: 10.15607/RSS.2009.V.021.

Глава

10
Беспилотная доставка
«до двери» в сложных
дорожных условиях

10.1. Предыстория и предпосылки
В этой главе мы представляем учебный пример коммерческого беспилотного транспортного средства (БТС), предназначенного для доставки «до двери»
в сложных дорожных условиях.
Как правило, совершая покупки в интернете, покупатели ожидают, что приобретенные товары будут доставлены в сохранности и точно в срок. Следовательно, важным фактором, формирующим у потребителя положительное впечатление от онлайн-шоппинга, являются логистические услуги. Под доставкой
«до двери» мы подразумеваем доставку потребителям товаров, заказанных
онлайн в местных центрах дистрибуции. Применение беспилотной доставки
«до двери» на заключительном этапе процесса доставки представляется чрезвычайно сложной задачей, поскольку БТС, служащему для данной цели, необходимо функционировать в сложных дорожных условиях.
Основные предпосылки появления беспилотных служб доставки кроются
в недостатках традиционной системы доставки «до двери». Среди таких недостатков, например, рост затрат на рабочую силу. Для таких поставщиков услуг,
как JD.com (ведущая компания интернет-торговли в Китае), подобные затраты
могут быть крайне высоки. Действительно, по нашим данным, наемный сотрудник службы доставки с годовой зарплатой 20 000 долл. США может доставлять 110 посылок в день, что означает, что затраты на доставку одного заказа
составляют около 0,5 долл. США. Ожидается, что данное значение будет расти
по мере исчерпания демографического дивиденда7. Еще одним недостатком
является то, что сотрудникам службы доставки необходимо тратить время на
общение с клиентами, их ожидание, а также непосредственно на то, чтобы добраться до нужного места. Все это отвлекает людей от другой, более творче7

Превышение доли трудоспособного населения над долей иждивенцев, запас рабочей
силы для роста экономики.

10.2. Технологии беспилотной доставки в сложных дорожных условиях  209
ской работы. К счастью, решить данную проблему могут беспилотные технологии. Преимущества использования БТС в логистических задачах заключаются
в следующих аспектах.
1. Процесс доставки становится независим от погодных условий или времени суток. В идеале БТС должно быть способно мгновенно реагировать на
заказы потребителей в режиме 24/7. Кроме того, доставка в ночное время
или в праздничные дни теперь не потребует дополнительных затрат.
2. Поскольку БТС способны работать в режиме 24/7, их использование
обеспечивает большую временную гибкость, нежели найм работников
службы доставки, рабочий день которых составляет всего 8 ч.
3. Использование БТС избавляет от затрат на подбор персонала, обучение
и управление.
4. Использование БТС обеспечивает большую безопасность как для сотрудников доставки, так и для других людей. При этом БТС также обеспечивает большую эффективность.
Таким образом, использование БТС для доставки «до двери» представляется
нам многообещающим подходом, который позволит преодолеть вышеупомянутые проблемы, возникающие в процессе традиционной доставки.

10.2. Технологии беспилотной доставки в сложных
дорожных условиях
Последние несколько лет наблюдается активное исследование беспилотных
технологий [1]. Однако, движение БТС в нерегулируемой среде представляется чрезвычайно сложной задачей ввиду наличия большого количества разнородных участников движения, таких как пешеходы, велосипедисты и другие
транспортные средства, которые далеко не всегда следуют установленным
правилам. Наличие подобных нерегулируемых сред присуще, например, мегаполисам Китая, где дорожное движение значительно отличается от более развитых стран, таких как страны Северной Америки и Европы.
1. В Китае наблюдается активный рост городского населения, в связи с чем
все больше людей выбирает в качестве жилья квартиры, а не личные
дома. В свою очередь это приводит к повышению плотности населения
жилых комплексов, что существенно отличается от ситуации, наблюдаемой в более развитых странах, где большая часть населения проживает в пригородных зонах. В результате движение в неструктурированной
дорожной среде жилых комплексов, как правило, сопровождается наличием сложных интерактивных препятствий, таких как автоматические
шлагбаумы на парковках, пешеходы, велосипедисты и т. д (рис. 10.1 (а)).
2. На городских дорогах, как правило, встречается несколько типов транспортных средств, среди которых велосипеды, электровелосипеды, мотоциклы и др. Каждый подобный участник движения обладает собственными кинематическими характеристиками движения (рис. 10 (б)).
Также ситуация может значительно усложняться ввиду использования
жителями своих транспортных средств необычными, небезопасными,

210

 Беспилотная доставка «до двери» в сложных дорожных условиях

а иногда даже незаконными способами. Например, на рис. 10.1 (в) изображен человек, перевозящий на велосипеде чрезвычайно длинный
объект. К слову, в районах с высокой плотностью населения подобные
ситуации не являются редкостью.
3. Как мы можем видеть на рис. 10.1 (г), в больших городах зачастую возникают пробки на дорогах, что неудивительно, ведь количество транспортных средств в обиходе продолжает стремительно расти.

Рис. 10.1. Типичные сценарии, отражающие сложность нерегулируемого дорожного движения: (а) неструктурированная парковка с большим количеством различных средств управления движением; (б) городская дорога, по которой одновременно движется несколько типов
двухколесных транспортных средств; (в) человек, перевозящий длинные палки; (г) дорожные
пробки. Данные факторы демонстрируют разницу между условиями дорожного движения
в более и менее развитых странах (к которым мы можем отнести Китай)

Ввиду того что условия движения в нерегулируемой дорожной среде менее
развитых стран (например, в Китае) намного сложнее, чем в более развитых
странах, существующие беспилотные технологий, подходящие для последних, могут быть совершенно неприменимы для первых. Так, БТС нуждаются
в усовершенствовании и адаптации к определенным сценариям применения,
а также ограничениям бюджета. Кроме того, первоочередной задачей при разработке и эксплуатации БТС является обеспечение безопасности. В сравнении
с БА, предназначенными для перевозки пассажиров, БТС, предназначенные
для доставки, должны соответствовать иным определенным требованиям безопасности. Наряду с необходимостью соблюдения БТС правил его движение
по дороге должно быть безопасным и соответствовать норме. При невозможности соответствия норме БТС, предназначенные для доставки, не должны
создавать препятствий или представлять опасность для других участников

10.3. JD.com: решение с использованием беспилотных технологий

 211

движения, в особенности для транспортных средств, перевозящих пассажиров.
В критической ситуации в качестве альтернативного выбора БТС, скорее, придется пожертвовать собой. Все это предполагает наличие особых требований
безопасности для БТС, предназначенных для доставки. В следующих разделах
мы рассмотрим данные требования более подробно с точки зрения процесса
создания БТС.

10.3. JD.com: решение с использованием
беспилотных технологий
Для одного из ведущих представителей интернет-торговли, компании JD.com,
разработка БТС, предназначенных для доставки «до двери», является одним
из вариантов, позволяющих значительно снизить затраты на доставку. Исходя
из предположения, что каждое БТС может доставлять 60 посылок в день, мы
можем сделать вывод о том, что применение беспилотных технологий позволит снизить стоимость доставки каждой посылки на 22,45 %. При условии, что
10 % заказов JD.com будет доставлять БТС, экономия в год составит не менее
110 млн долл. США. В более обобщенном плане при условии, что на всем рынке
JD.com будет доставлять 5 % своих посылок с помощью БТС, годовые затраты
сократятся на колоссальные 7,64 млрд долл. США. Так, основными предпосылками для дальнейших исследований и разработок в области БТС как инструмента доставки «до двери» послужили многообещающие преимущества и возможность увеличения прибыли бизнеса.

10.3.1. Архитектура беспилотных технологий
Как представлено на рис. 10.2, для обеспечения эффективной работы БТС требуется около 20 совместно функционирующих модулей.
Основы технологии автопилота в JD.com
Стыковочный внешний сервис

Платформа
приложений

Платформа
навигационной
службы

Бизнеспланирование

Платформа
создания карт

Платформа
очистки данных

Управление
данными

Платформа
симуляции

Платформа
разметки данных

Пулы визуальной
отладки

Управление
роботом

Платформа
мониторинга

Алгоритмическая
платформа

Локализация

Аппаратная
платформа

Блок
управления
шасси

Платформа
шасси

Восприятие

Планирование

Управление

Модуль
безопасности

Прогнозирование

Самозарядка

Набор
сенсоров

Ячейка
расчета

Архитектура алгоритма автопилота

IMU

Лидар

Камера

Ультразвуковой радар

Шасси Акермана

Рис. 10.2. Архитектура БТС

Дифференциальное
шасси

212

 Беспилотная доставка «до двери» в сложных дорожных условиях

Говоря обобщенно, каждый модуль, представленный на рис. 10.2, работает
либо в онлайн-, либо в офлайн-режиме. Онлайн-модули функционируют непосредственно при движении БТС по дороге [2], а задачами офлайновых модулей,
как правило, являются автономное выделение признаков, обучение, настройка конфигурации, симуляция, а также тестирование и/или оценка [3].
При доставке «до двери» БТС назначается адрес доставки. Затем текущее
местоположение БТС, а также маршрут от данного положения к пункту назначения задаются через платформу навигационного сервиса, после чего БТС
начинает движение. Во время этого процесса на алгоритмической платформе
БТС реализуются функции локализации, локального восприятия, прогнозирования, принятия решений, планирования, управления и др., что обеспечивает
безопасность, плавность, эффективность и предсказуемость движения.
Вспомогательной платформой для выполнения вышеупомянутых функций
является аппаратное обеспечение. Аппаратная платформа состоит из определенных устройств и строится на их связях и организации. С другой стороны,
они являются подспорьем для упомянутых выше онлайн-модулей. Например,
платформа генерации карт отвечает за создание HD-карт, а платформа симуляции и визуальные средства контроля и наладки облегчают разработчикам
процесс отладки системы. Далее в этом разделе мы рассмотрим несколько модулей стека беспилотных технологий.

10.3.2. Локализация и HD-карты
Процесс локализации отвечает за определение текущего местоположения
транспортного средства. В БТС модуль локализации опирается на данные из
пяти источников. Первый – это сигнал GPS. Данный источник используется
только один раз в качестве пускового сигнала для активации запроса на создание HD-карты для ее последующего использования.
Остальные четыре субмодуля локализации включают в себя алгоритмы на
основе данных многоканальных лидаров, камер, одометрии шасси и инерциального измерительного модуля (IMU). Сгенерированные алгоритмами многоканальных лидаров облака точек сопоставляются с предварительно сохраненными точками на запрошенной HD-карте. Сопоставление осуществляется
в режиме онлайн с помощью итеративного алгоритма ближайших точек (ICP –
iterative closest point) [4], где облака точек предварительно разделяются на наземные и неназемные.
Объединяя данные многоканальных лидаров, камер и шасси, получают производный продукт данных движения – одометрию. Путем синтеза независимых источников одометрической информации мы получаем надежный результат, также известный как слияние одометрии (odometry fusion). Данный
результат объединяется с результатами IMU, а затем применяется для калибровки метода ICP в структуре фильтра Калмана [5]. В свою очередь метод ICP
в дальнейшем может быть применен для калибровки результата слияния, что
позволяет приблизить результаты к истине. Описанная сложная архитектура
представлена на рис. 10.3.

10.3. JD.com: решение с использованием беспилотных технологий
GPS
(одинарный)

 213

HD-карта
Первоначальная
локализация

Лидар
(многоканальный)

Сопоставление
данных лидара

Локализация
EKF

Слияние
одометрии

Одометрия IMU

Лидарная
одометрия
Камера

Визуальная
одометрия

Одометрия
(шасси)

Рис. 10.3. Структура локализации

HD-карта содержит подробные характеристики дороги, представленные
в виде 16 слоев статической и динамической информации об окружающей
среде. Данные слои состоят из множества субкарт, в числе которых геометрическая и семантические карты, а также карта режима реального времени. Некоторые элементы карт являются общими как для пассажирских БА,
так и для БТС, предназначенных для доставки. К таким элементам относятся
местоположение, ширина, тип, кривизна и границы полос движения и дороги, перекрестки с соответствующими семантическими характеристиками,
такими как пешеходные переходы, светофоры, лежачие полицейские и т. д.
Кроме того, среди вышеупомянутых элементов содержатся специальные
элементы, предназначенные специально для БТС, доставляющих посылки
в Китае. Особенно важными представляются такие элементы, как подробное
изображение столбов (обычно размещаемых на въезде на велосипедные дорожки, чтобы закрыть доступ крупногабаритным транспортным средствам),
свободные участки (ограниченные зоны, где запрещена остановка транспортных средств; могут носить временный характер), зоны входа/выхода
(проходы для доступа к распределительным пунктам или в жилые районы),
а также острова безопасности (зоны внутри большого перекрестка, где пешеходы/велосипедисты могут находиться во время ожидания зеленого сигнала светофора). Помимо полос движения и дорог, обычно отмечаемых на
HD-карте, мы предлагаем добавить элемент промежуточного уровня под
названием «группа полос движения», объединяющий полосы движения на
больших перекрестках.
БТС, предназначенные для доставки, требуют низкозатратного построения
HD-карт на основе данных тех же сканеров, что используются в пассажирских
БА, включая построение карт даже в районах со слабым GPS-сигналом. HDкарты должны постоянно обновляться, поскольку в городских районах Китая

214



Беспилотная доставка «до двери» в сложных дорожных условиях

дорожные маршруты меняются чаще, чем в других регионах. Все перечисленные выше аспекты требуют создания технической группы, задачей которой
будет создание и обслуживание собственных HD-карт, построенных на основе современных технологий слияния сенсоров и методов одновременной
локализации и построения карты (SLAM), которые не полагаются на нестабильный сигнал GPS или использование дорогостоящих IMU. Для облегчения
обнаружения статичных транспортных средств и светофоров применяются
методы машинного обучения, разработанные группой по восприятию, что
позволяет повысить эффективность построения карт.

10.3.3. Восприятие
Модуль восприятия отвечает за распознавание и отслеживание динамики
препятствий в окружающей среде. Данный модуль играет ключевую роль
в обеспечении способности БТС функционировать в сложных дорожных условиях. На рис. 10.4 представлена конфигурация аппаратного обеспечения,
представляющая собой решение с несколькими источниками данных. Для
обнаружения окружающих объектов данное транспортное средство оснащено однолучевым лидаром, 16-лучевым лидаром и четырьмя монокамерами.
Для обнаружения светофора используется HDR-камера. Для предотвращения
прямых столкновений с другими объектами или элементами дороги используются ультразвуковые приемники.
Монокамера

16-лучевой лидар

Ультразвуковой датчик

HDR камера

Рис. 10.4. Конфигурация аппаратного обеспечения

В соответствии с рис. 10.5 мы можем видеть, что при обнаружении объектов
применяется три независимых метода, а затем результаты, полученные с их
помощью, объединяются. В частности, первые два детектора обрабатывают
данные облака точек посредством методов машинного обучения и геометрии
соответственно. Третий детектор обрабатывает визуальные данные посредством методов машинного обучения.
Исходя из практического опыта, мы можем сделать вывод, что первый метод пригоден для общей классификации объектов, связанных с дорожным
движением, однако он неэффективен при обнаружении пешеходов. Данный

10.3. JD.com: решение с использованием беспилотных технологий

 215

факт является значительным недостатком методов, основанных на обучении, поскольку, в сравнении с дорожными знаками, обнаружение пешеходов
представляется весьма сложной задачей. И напротив, второй метод показывает стабильно эффективный результат при распознавании подобных объектов (например, пешеходов). Третий метод эффективен при распознавании
частично видимых объектов, поскольку идентификационными признаками
здесь служат цвет, тени и текстуры. Таким образом, три детектора дополняют
друг друга, тем самым обеспечивая исчерпывающие и надежные результаты
распознавания объектов.
A. CNN сегментации
участков вождения
Лидар:
1-лучевой
16-лучевой
G.
Калибровка
сенсора
Камера
моно

Камера
HDR
Ультразвуковой
сенсор

B.1. Обнаружение общих
объектов на основе геометрии
B.2. CNN лидарного
обнаружения
CNN обнаружения с помощью
слияния данных лидара и камеры

D. Слияние
и отслеживание
мультимодальных интерактивных сенсоров

E.
Прогнозирование
траектории

Планирование
управления

B.4. CNN зрения + оценка
глубины + отслеживание 2.5D

C.1. Обнаружение светофора
и распознавание состояния

F.1. Обработка сигналов

Состояние светофора /
ассоциация HD-карты
с изображением
F.2. Сегментация
объекта

Рис. 10.5. Архитектура восприятия

Как уже было сказано ранее в разделе 10.1, на дорогах существует множество
типов различных элементов, оказывающих влияние на БТС.
В сценариях, подобным представленному на рис. 10.1 (в), когда БТС впервые сталкивается с использованием транспортного средства не по назначению, система может не справиться с подобными условиями, поскольку
не сможет собрать достаточное количество данных, чтобы понять взаимосвязь между электровелосипедом и длинной палкой. В случае, если осуществляется удаленный мониторинг БТС, человек может взять управление на себя
в качестве меры предосторожности. Затем неопознанный объект помещается в новую категорию, и его характеристики отмечаются вручную для последующего изучения данной категории объектов детекторами 1 и 3. Мы считаем, что сбор сведений об окружающей среде на основе контролируемого
обучения является единственным реальным способом добиться надежности
процесса распознавания. Кроме того, для систематической оценки состояния
ненаблюдаемых объектов, таких как светофоры или транспортное средство,
идущее перед транспортным средством, за которым следует БТС, был разработан дедуктивный метод.

216

 Беспилотная доставка «до двери» в сложных дорожных условиях

10.3.4. Прогнозирование, принятие решений
и планирование движения
Модули прогнозирования, принятия решений и планирования движения имеют решающее значение для обеспечения безопасного движения БТС в сложных дорожных условиях. Прогнозирование предполагает аппроксимацию будущих траекторий отслеживаемых движущихся препятствий. Данная функция
выполняется на двух работающих совместно уровнях. На первом уровне с использованием информации о маршруте и информации о полосах движения
на HD-карте осуществляется прогнозирование поведения хорошо отслеживаемых транспортных средств. Здесь выносятся предположения относительно того, насколько точно хорошо отслеживаемые объекты будут следовать
правилам дорожного движения. Такие предположения выносятся на основе
предыдущих зафиксированных дорожных данных. Первый уровень служит
преимущественно для прогнозирования поведения транспортных средств
в регулируемых условиях. Второй уровень нацелен на прогнозирование нетипичного поведения объектов. Подобные прогнозы осуществляются с помощью
методов на основе машинного обучения, а также дедуктивных методов. Два
описанных выше слоя работают совместно,и результатом их работы является отображение траектории движущихся представляющих интерес объектов
в сетке обзорного поля БТС. Также к прогнозируемой траектории прилагается
показатель вариативности, определяющий достоверность прогноза.
Принятие решений и планирование играют ключевую роль в непосредственном управлении маневрами БТС. В условиях сложных сценариев в хаотической
среде задачей модуля принятия решения является поиск грубой, но надежной
гомотопической траектории. При этом модуль планирования должен работать
очень быстро. В модуле принятия решений применяется метод, основанный
на выборке и поиске. В частности, при осуществлении поиска на графе, состоящем из вершин, полученных в результате выборки, используется алгоритм
динамического программирования, а неопределенности (количественно выраженные степенью достоверности, упомянутой выше) в модулях восприятия
и прогнозирования учитываются функцией стоимости. Такой подход позволяет принимать надежные и безопасные решения относительно траектории.
На основе грубой траектории, представленной модулем принятия решений,
естественным образом принимаются решения относительно препятствий, например уступить или обогнать. Такие траектории позволяют значительно сократить пространство решений до локального уровня, благодаря чему система
не тратит время на глобальное планирование. В частности, схема планирования траектории разбивается на несколько этапов, включая генерацию решения, планирование пути и планирование мгновенного вектора скорости. Такое
разделение значительно облегчает весь процесс. На этапе генерации решения
взаимодействие между БТС и окружающими объектами определяется «траекторией» в системе координат «траектория–время». Фактически здесь допустимые границы образуют своего рода туннель, который определяется грубой
траекторией, предоставленной модулем принятия решений.
Мы предлагаем рассмотреть данную проблему в общем виде в абсолютной
системе координат (x-y). Данная проблема может быть сформулирована как за-

10.3. JD.com: решение с использованием беспилотных технологий

 217

дача оптимизации пути с использованием окна Френе (Frenet frame) в плоскости l-s (рис. 10.6 (а)) или как задача оптимизации скорости с использованием
временного окна пути в плоскости s-t (рис. 10.6 (б)). В частности, предположим,
что горизонт задачи вдоль оси x составляет X. Определим N прямых линий,
которые пересекают ось x в (N+1) равноудаленных точках от 0 до X. Благодаря
этому представлению каждая из схем планирования пути и скорости может
быть преобразована таким образом, чтобы найти положения N сеток вдоль
линий, чтобы последовательное соединение сеток сформировало потенциальный профиль пути s-l или профиль скорости s-t.

Возможный путь

Возможный
профиль скорости

Рис. 10.6. Схематичная формулировка модели квадратичного программирования: (а) планирование пути в системе координат s-l; (б) планирование скорости в системе координат s-t

Определим положение каждой сетки как yi(i = 1,…, N), а производные yi первого, второго и третьего порядка как:
yi 
dy 
yi  i



dx
yi

dyi

dx
(1)

dyi
.
dx

yi 

dyi

dx
Беспилотная доставка «до двери» в сложных дорожных условиях
i
dy
dy
y  i
yi 
dx
dx i
Как представлено ниже, мы ограничиваем величину каждого члена в соот

dy
dy
dy
i yi
i
.
ветствии с определенными пределами. Заметим, что члены yi ,yi и
могут
dx i dx dx
нуждаться в оптимизации. Их ограничение может предотвратить
опасные
поdy 
dyi
yi i .
yi  средства:
вороты или внезапные рывки при движении транспортного
dx
dx
218




yi  ymax

yi  ymax

yi

dyi
.
dx

(2)

 ,
yi  ymax

yi  ymax
yi  ymax

yi  ymax
 ,границы соответствующих профилей.
yiи ymax
 yi , ymax
yгде
i  ymax
граничные условия ограничиваются нескольки
 Кроме того,
yi  yдвухточечные
yi  ymax
max ,
ми граничными равенствами при x = 0 и x = X. Например, при оптимизации
 ,
yi  ymax
скорости y1(0), производная и вторая производная задаются как начальное
положение траектории, начальная скорость и начальное ускорение при t = 0.
При x = X yN(X) и производные принимают равными 0 при оптимизации пути.
При оптимизации скорости производные yN(X) так же принимают равными 0.
Очевидно, что транспортное средство не должно выходить за границы туннеля. Таким образом, пространство конфигураций формируется с учетом основных
ограничений, необходимых для предотвращения столкновений. При оптимизации пути ограничения формируются следующим путем: сначала прямоугольное
транспортное средство представляется в виде пары кругов для упрощения вычислений [8], а затем выносится требование, в соответствии с которым в каждом
круге должны отсутствовать столкновения с границами туннеля. Для оптимизации скорости «свое» транспортное средство не должно столкнуться ни с одной из областей s-t на графике «траектория–время». Помимо вышеупомянутых
ограничений, мы ожидаем, что траектория будет плавной, а оптимизированный
результат будет как можно ближе к так называемой грубой траектории. Также
стоит отметить, что существуют и другие объекты оптимизации и ограничения,
связанные с решениями, которые необходимо учитывать в результатах. Описанные выше ожидания отражены в следующей целевой функции минимизации:
J   k  i  j 0 ,1,2 ,3 wk ,i , j  (yi(j )  ref k ,i ,j )2 .

В уравнении (3) k ∈ {1,…, Nref} представляет собой индексы исходных профилей. Предположим, существуют исходные профили Nref, которые одновременно
влияют на производительность оптимизации, а i ∈ {1,…, N} обозначает индекс
сеток. wk,i,j ≥ 0 (j = 0,…, 3) обозначает весовой коэффициент, стимулирующий
притяжение к исходному профилю k на сетке i относительно друг друга. Порядок j производных yi и refk,i,j (j = 0,…, 3) обозначает соответствующий исходный
профиль. Для пояснения, почему мы имеем несколько refk,i,j для каждой сетки,
в качестве примера мы возьмем планирование мгновенного вектора скорости
на сетке N и обозначим его за n. Показатель s′ в конечный момент (например,
yN′ (N)) не может быть заведомо определен. Поэтому множество вероятностей
объединяют в виде взвешенной суммы.

10.4. Стратегии защиты и обеспечения безопасности  219
Далее с целью оптимизации и учета имеющихся ограничений формулируются задачи квадратичного программирования (QP – Quadratic programming),
где квадратичной является только функция стоимости, а все ограничения являются линейными:
Минимизировать (3)
В соответствии с
Динамическими ограничениями (1), (4)
dy
Ограничениями величины (2),
yi  i
dx
Двухточечными граничными условиями, и
i
dy
Ограничениями для избежания столкновений. yi 
dx
dyi
.
Категориальные переменные решения должны соответствовать yi, а стеdx
пень свободы задачи планирования пути должна быть равна N (примерно).
Тем не менее в уравнении (4) мы принимаем переменные решения как y, y′,
y″ и y‴ для достижения более высокой скорости численной оптимизации (обоснование можно найти в нашем анализе одновременной стратегии в [7]). Далее, задачи квадратичного программирования решаются с помощью локального оптимизатора. 99-й процентиль затрат времени на решение упомянутых
задач квадратичного программирования находится в пределах 10 мс. Таким
образом, процесса онлайн-планирования достаточно, чтобы отреагировать
на внезапные события и/или необычное объединение объектов в сложных дорожных сценариях.

10.4. Стратегии защиты и обеспечения безопасности
Как упоминалось в предыдущих разделах, безопасность имеет первостепенное
значение при разработке БТС для доставки. Гарантии безопасности устанавливаются на нескольких уровнях, включая уровни симуляции, транспортного
средства и удаленного мониторинга. В этом разделе мы представим несколько
основных стратегий безопасности для нашего стека беспилотных технологий.

10.4.1. Проверка в симуляции
Все разработанные коды должны пройти большое количество контрольных
тестов. В каждом контрольном тесте для «оформления» виртуального реалистичного текста загружаются необработанные входные данные, а производительность БТС измеряется виртуальными выходными действиями в симуляторе с рядом определенных критериев. При создании контрольных примеров
мы используем записанные практические данные, что позволяет построить
десятки тысяч виртуальных сценариев. Коды тестируются в таких виртуальных, но реалистичных сценариях для оценки производительности. Коды,
прошедшие подобные тесты, дополнительно тестируются в системе на борту
транспортного средства, где регистрируются вновь возникающие проблемы,
которые впоследствии вручную маркируются как виртуальные сценарии для
будущих тестов. Благодаря такому подходу с обратной связью гарантируется
безопасность разработки.

220

 Беспилотная доставка «до двери» в сложных дорожных условиях

10.4.2. Мониторинг на стороне транспортного средства
Для отслеживания возникновения или приближения аварийной ситуации мы
внедрили низкоуровневый модуль защиты на стороне транспортного средства.
Данный защитный модуль в первую очередь контролирует работоспособность
системы управления, а также обрабатывает внутренние и внешние особые ситуации, возникающие как в системе, так и вне ее. Во избежание внезапных
сбоев аппаратного обеспечения БТС оборудуются резервными блоками и контрольными индикаторами сбоев. В случае, если резервные блоки выйдут из
строя (например, в результате воздействия экстремальных температур, которые могут негативно влиять на визуальные сенсоры), в действие вступает
защитный модуль, действующий в соответствии с предопределенными правилами восстановления после сбоя. Что касается проблем, приходящих извне,
например когда препятствия слишком близки к транспортному средству или
приближаются к транспортному средству на высокой скорости, транспортное
средство будет принимать меры для снижения риска столкновения.

10.4.3. Удаленный мониторинг
С целью гарантии эксплуатационной безопасности наших БТС, предназначенных для доставки, мы разработали платформу удаленного мониторинга.
Удаленный мониторинг предполагает отслеживание поведения БТС в режиме
реального времени. Инженер, который дистанционно контролирует транспортное средство, может взять на себя управление, чтобы помочь транспортному средству выйти из нештатной ситуации. Если инженер, осуществляющий
удаленный мониторинг, отсутствует, платформа самостоятельно генерирует
предупреждающий сигнал и информирует полицию о сложившейся ситуации.

10.5. Развертывание в производственной среде
На пути к масштабному развертыванию в производственной среде мы придерживаемся стратегии постепенного прогресса, согласно которой решение всех
технических трудностей делится на четыре этапа. Первый этап представляет
собой эксплуатацию БТС на низких скоростях под наблюдением. В данном случае наблюдение предполагает обеспечение дополнительного уровня безопасности, где человек контролирует соответствие реального поведения БТС ожидаемому поведению. Всякий раз при возникновении потенциальных рисков
наблюдатель может взять управление на себя. Второй этап представляет собой
эксплуатацию БТС на низких скоростях без наблюдения. На третьем и четвертом этапе эксплуатация БТС происходит на относительно высоких скоростях
с ручным управлением и без него соответственно. Вы можете заметить, что
между описанными этапами нет огромных промежутков. Увеличение скорости движения БТС осуществляется постепенно и адаптивно: если технические
разработки показывают эффективные результаты, то скорость может быть увеличена значительно (относительно), и наоборот.
В дополнение к вышеупомянутой стратегии технического развития была
разработана стратегия эффективности. Во времена, когда технологии были
далеки от проведения испытаний на реальных дорогах, мы разработали низ-

10.6. Полученные уроки  221
коуровневые шасси, которые могут широко применяться во многих роботизированных приложениях. Эффективность данной разработки обусловливается
тремя причинами: (1) технологии беспилотного низкоуровневого перемещения в замкнутом пространстве могут беспрепятственно применяться для техники, используемой на складских помещениях, что позволит перевести всю
логистическую цепочку в беспилотный формат; (2) процесс коммерциализации, а также понимание экономической целесообразности роботизированных
технологий наступит до того, как беспилотные технологии будут готовы к полному развертыванию; и (3) даже при условии того, что развитие беспилотных
технологий находится на ранних этапах, уже сейчас разработчики должны
иметь полное представление о разработке таких продуктов, что позволит им
сосредоточиться на конечной цели, т. е. на развертывании БТС на производственном уровне.
Что касается бизнес-логики, мы также постепенно двигаемся к достижению
наивысшего уровня эффективности беспилотной доставки «до двери». На сегодняшний день мы добились того, чтобы критерии планирования на платформе электронной коммерции, на складе и в распределительных центрах
были больше сосредоточены на своевременности поставок.
Упомянутые выше улучшения реализуются совместно, что позволяет эффективно оказывать услуги доставки. К настоящему моменту мы задействовали более 300 беспилотных автомобилей для пробных операций в нескольких
провинциях Китая. В общей сложности наши БТС преодолели 715 819 миль.

10.6. Полученные уроки
При развертывании предлагаемой нами БТС мы извлекли несколько уроков.
Первый заключался в осознании того, что алгоритмы должны быть объяснимыми, ведь это значительно облегчает оценку их качества, прогнозирование
и, следовательно, приемлемость для других участников движения. Принимая
это во внимание, мы обнаружили, что на данном этапе сквозные решения на
основе глубокого обучения не так практичны, как методы на основе машинного обучения, которые уже сейчас широко используются в каждом подмодуле с четко определенными границами. В качестве второго усвоенного урока
мы приняли к сведению, что маршруты БТС, применяемых для доставки «до
двери», должны быть по большей части фиксированы. Ввиду данного факта
мы в значительной степени полагаемся на HD-карты, которые позволяют записывать мелкие детали маршрутов. Третий урок заключался в том, что во
время реальных дорожных испытаний стремление к более высокому показателю пройденных миль может ввести в заблуждение, поскольку стремление
к высокому результату может побуждать разработчиков скрывать риски или
проблемы, а не искать и преодолевать их. Мы считаем, что метод точного распознавания рисков и последующий запрос на решение проблемы вручную является важной частью всей системы безопасности. Четвертый урок научил нас
четко разделять области задач для человека и автоматизированной машины.
После длительного периода испытаний мы выяснили, что обработка сложных,
но повторяющихся сценариев может быть посильна самим транспортным
средствам, и при необходимости люди, наблюдающие за ними, могут брать

222

 Беспилотная доставка «до двери» в сложных дорожных условиях

управление на себя. Кроме того, беспилотные технологии вовсе не исключают участия людей. Напротив, для них открываются новаторские задачи, тесно
связанные с созданием и обслуживанием БТС, предназначенных для беспилотных систем доставки.

10.7. Справочные материалы
[1]
[2]
[3]
[4]
[5]

[6]

[7]
[8]

Liu, S., Li, L., Tang, J., Wu, S., and Gaudiot, J. L. 2017. Creating autonomous vehicle systems. Synthesis Lectures on Computer Science, 6(1), pp. 1–186. DOI:
10.2200/S00787ED1V01Y201707CSL009.
Liu, S., Tang, J., Zhang, Z., and Gaudiot, J. L. 2017. Computer architectures for autonomous driving. Computer, 50(8), pp. 18–25. DOI: 10.1109/
MC.2017.3001256.
Liu, S., Tang, J., Wang, C., Wang, Q., and Gaudiot, J. L. 2017. A unified cloud
platform for autonomous driving. Computer, 50(12), pp. 42–49. DOI: 10.1109/
MC.2017.4451224.
Segal, A., Haehnel, D., and Thrun, S. 2009. Generalized-icp, in Robotics: Science and Systems (RSS), 2009. DOI: 10.15607/RSS.2009.V.021.
Li, W. and Leung, H. (2003, October). Constrained unscented Kalman filter
based fusion of GPS/INS/digital map for vehicle localization. In Proceedings
of the 2003 IEEE International Conference on Intelligent Transportation Systems, (2) pp. 1362–1367. IEEE.
Ma, W. C., Tartavull, I., Bârsan, I. A., Wang, S., Bai, M., Mattyus, G., Homayounfar, N., Lakshmikanth, S. K., Pokrovsky, A., and Urtasun, R. (2019). Exploiting
sparse semantic HD maps for self-driving vehicle localization. arXiv preprint
arXiv:1908.03274. DOI: 10.1109/IROS40897.2019.8968122.
Li, B. and Shao, Z. (2015). A unified motion planning method for parking an
autonomous vehicle in the presence of irregularly placed obstacles. Knowledge-Based Systems, 86, 11–20. DOI: 10.1016/j.knosys.2015.04.016.
Fan, H., Zhu, F., Liu, C., Zhang, L., Zhuang, L., Li, D., Zhu, W., Hu, J., Li, H.,
and Kong, Q. 2018. Baidu apollo em motion planner, arXiv preprint arXiv:1807.08048.

Глава

11

Беспилотные транспортные
средства от PerceptIn
11.1. Введение
В этой главе мы рассмотрим учебный пример БА, разработанных PerseptIn для
услуг микротранзита. Вместо создания БА, соответствующих уровню L4, стоимость которых может достигать сотен тысяч долларов, PerceptIn решили пойти
по более практичному и доступному пути: они создали БА для услуг микротранзита, которым необходимо проходить расстояние всего 1–5 миль [1,2].
Проблема в том, что сегодняшняя экосистема «мобильность как услуга»
часто не справляется с преодолением промежуточных расстояний, скажем,
нескольких миль. Стоимость услуг Uber и Lyft для подобных целей слишком
высока, а поездка длиной более мили на скутере или велосипеде может быть
слишком утомительна. Поэтому добраться до пункта назначения, находящегося на расстоянии 1–5 миль, может быть непросто. Тем не менее на подобные
дистанции приходится около половины всех пройденных миль.
Зачастую поездки на небольшие дистанции совершаются в средах с ограниченным движением, например в университетских городках и промышленных зонах. К слову, на сегодняшний день развертывание небольших низкоскоростных БА, работающих от электричества, в подобных средах является
крайне эффективным подходом с точки зрения экономики, и, кроме того, это
возможно с технической стороны. Команда PerceptIn разработала БА, которые
уже сейчас успешно функционируют в США, Европе, Японии и Китае. Такие
БА обладают небольшими размерами, а их скорость не превышает 30 км/ч.
Все это позволяет им не участвовать в высокоскоростном движении и, следовательно, избегать многих проблем безопасности, присущих обычным БА.
Создание БА, безусловно, является очень сложной задачей. Однако основная
задача команды PerceptIn заключалась не в создании транспортного средства,
способного самостоятельно функционировать в подобных средах (поскольку подобные технологии уже существуют и успешно применяются), а скорее
в снижении затрат.
Учитывая масштабы, а которых сегодня производятся БА, стоимость экспериментальной модели может составлять около 800 тыс. долл. США. Поэтому
может казаться, что создать более доступный по цене БА невозможно. Однако

224

 Беспилотные транспортные средства от PerceptIn

опыт последних лет доказывает, что создание более экономичных беспилотных легковых автомобилей вполне реально.

11.2. Дорогостоящие технологии
Как мы уже знаем, БТС является сложной системой, объединяющей множество
технологий, в числе которых сканирование окружающей среды, локализация,
восприятие, принятие решений, создание HD-карт и системная интеграция.
В этом разделе мы проведем краткий обзор перечисленных выше технологий
и продемонстрируем, что высокая стоимость сенсоров, вычислительных систем и HD-карт вовсе не является препятствием для масштабного развертывания беспилотных технологий.

11.2.1. Сенсорное сканирование
Основные технологии, применяемые в сенсорном сканировании, – глобальная
навигационная спутниковая система (GNSS), лазерная система обнаружения
и измерения дальности (LiDAR), а также камеры, радар и сонар.
 GNSS-приемники, особенно с функцией кинематики в реальном времени
(RTK), служат для локализации БА, осуществляемой путем обновления глобальных координат с погрешностью не более метра. Стоимость высококачественного GNSS-приемника для БА может достигать 10 тыс. долл. США.
 Технология LiDAR применяется для создания HD-карт, а также для локализации в режиме реального времени и обхода препятствий. Принцип
работы данной технологии состоит в том, что сенсор лидара измеряет
расстояние до объекта путем освещения его импульсным лазерным излучением и дальнейшего измерения времени, через которое отраженный от объекта импульс возвращается к источнику. Сенсоры, используемые в БА, способны охватывать расстояние 150 м и производить выборку
более миллиона пространственных точек (с координатами ) в секунду. Каждая точка связана с атрибутом отражательной способности,
который может использоваться для идентификации точек между разными кадрами. Сравнивая смещения пространственных точек между двумя кадрами, мы получаем данные о смещении транспортного средства.
Однако лидары обладают двумя недостатками: (1) их стоимость чрезвычайно высока (стоимость одного лидара может превышать 80 тыс. долл.
США); (2) они не могут обеспечить точные измерения при неблагоприятных подобных условиях, таких как сильный дождь или туман.
 Камеры применяются преимущественно для распознавания объектов
и некоторых задач отслеживания, таких как обнаружение полос движения, светофоров и пешеходов. В существующих реализациях БА камеры
установлены по кругу корпуса, что позволяет эффективно обнаруживать,
распознавать и отслеживать окружающие объекты. Но у камер также есть
некоторые недостатки. Во-первых, они подвержены воздействию погодных условий, а во-вторых, большое количество камер предполагает
высокие вычислительные затраты. Заметим, что, как правило, камеры
работают с частотой 60 Гц и в совокупности могут генерировать более
1 ГБ необработанных данных в секунду.

11.2. Дорогостоящие технологии  225
 Радар и сонар: подсистемы радаров и сонаров служат «последней линией обороны» в процессе обхода препятствий. Данные, генерируемые
радаром и сонаром, представляют собой расстояние до ближайшего объекта перед БА. Стоит отметить, что основным преимуществом радара
является его независимость от погодных условий. Сонар способен охватывать расстояние от 0 до 10 м, а радар – от 2 до 150 м. В совокупности
стоимость этих сенсоров не превышает 1 тыс. долл. США.

11.2.2. Локализация
Цель локализации заключается в предоставлении точных данных об обновлении
местоположения транспортного средства в режиме реального времени. Для
локализации применяется несколько различных методов.
 Естественным методом локализации является использование GNSS.
Однако ввиду проблем многолучевого распространения, вызывающих
шумы и задержки, локализация не может основываться только на данных GNSS. Кроме того, GNSS-приемникам требуется беспрепятственный
обзор неба, ввиду чего их точность в закрытых средах, таких как туннели,
значительно снижается.
 Также для локализации применяется технология LiDAR. При таком подходе сначала посредством сканирования окружающей среды с помощью
лидара и последующего обнаружения облака точек создается «описание
очертаний». Затем подсистема локализации сравнивает конкретные наблюдаемые очертания объектов с очертаниями в ограниченной области
HD-карты, что позволяет снизить неопределенность и эффективно отслеживать положение движущегося транспортного средства.
 Помимо прочего, для локализации могут применяться камеры. Такая
технология называется визуальной одометрией. Процесс визуальной
одометрии организован следующим образом: сначала посредством
стереозрения осуществляется обнаружение пространственных точек
(с координатами и дескриптором объекта, который однозначно идентифицирует пространственную точку); затем происходит сравнение местоположения обнаруженных пространственных точек между
последовательными кадрами; таким образом, определяется движение.

11.2.3. Восприятие
Восприятие предполагает «понимание» окружающей среды, что включает в себя
распознавание и отслеживание объектов. Данные задачи могут быть решены
с помощью глубокого обучения, методы которого получили значительное развитие за последние несколько лет. Такой подход обеспечивает точное обнаружение и отслеживание объектов с помощью входных данных с камер. В задачах распознавания объектов широко применяется один из типов глубоких
нейронных сетей – сверточные нейронные сети (CNN). Процесс восприятия
с помощью CNN, как правило, объединяет работы нескольких слоев: (1) слоя
свертки, который использует разные фильтры для извлечения признаков из
входного изображения. Каждый фильтр содержит набор «обучаемых» параметров, которые выводятся по завершении каждого этапа обучения; (2) слоя

226

 Беспилотные транспортные средства от PerceptIn

активации, принимающего решение об активации целевого нейрона; (3) объединяющего слоя, который уменьшает пространственный размер представления, чтобы уменьшить количество параметров и, следовательно, вычислений
в сети; и, последнего, (4) полностью подключенного слоя, в котором нейроны
устанавливают полные связи с активированными нейронами предыдущего
слоя. Сразу после идентификации объекта в дело вступает технология отслеживания, которая позволяет отслеживать движущиеся поблизости транспортные средства и пешеходов, переходящих дорогу. Все это гарантирует избежание столкновений с движущимися объектами.

11.2.4. Принятие решений
На этапе принятия решений механизмы прогнозирования действий и планирования пути объединяются в режиме реального времени для создания эффективного плана действий. Действительно, основной задачей модуля планирования в БТС является обеспечение безопасного движения БА в сложных
дорожных условиях. Модуль принятия решений генерирует прогнозы относительно ближайших транспортных средств, а затем на их основе принимает решения. Один из подходов к прогнозированию действий других транспортных
средств является создание стохастической (вероятностной) модели наборов
достижимых положений других участников движения и сопоставление данных
наборов достижимости с распределением вероятности.
Планирование пути БА в динамической среде – сложная задача, особенно
когда от транспортного средства требуется задействовать все возможности маневрирования. Одним из подходов к решению данной задачи является поиск
всех возможных путей и использование функции стоимости для нахождения
наилучшего пути. Однако такой подход требует значительных вычислительных ресурсов и может быть неприменим в режиме реального времени. С целью
обойти описанные сложности были созданы вероятностные планировщики,
обеспечивающие эффективное планирование пути в реальном времени.

11.2.5. Создание и обслуживание HD-карт
Традиционные цифровые карты обычно создаются на основе спутниковых
снимков, а их погрешность достигает 1 м. Такой показатель приемлем для водителей-людей, но не для БА. Беспилотному автомобилю необходимы более
точные карты, предоставляющие информацию на уровне полос движения, такие
как HD-карты. Подобно традиционным картам, HD-карты также имеют иерархические структуры данных. Базовый слой (нижний уровень) представляет собой
сетчатую карту, которая строится из необработанных данных лидара, с размером сетки около 5×5 см. Каждый элемент сетки данного слоя хранит информацию о способности отражать импульсы лидара. По мере движения транспортного средства поступают новые сканы лидара, и выполняется автоматическая
локализация посредством сравнения новых сканов сетчатой карты с исходными
оценками местоположения, предоставленными GNSS-приемниками.
Поверх сетчатого слоя находится несколько слоев синтаксической информации. К такой информации относятся данные о полосе движения, благодаря
которым БА может определить, находится ли он на правильной полосе движе-

11.3. Достижение ценовой доступности и надежности  227
ния. Поверх вышеописанной информации добавляются метки дорожных знаков, которые необходимы для того, чтобы уведомить транспортные средства
о локальных ограничениях скорости, близости светофоров и т. д. Такой подход
обеспечивает дополнительный уровень защиты, который «страхует систему»
на случай неточного обнаружения знаков сенсорами БА.
Цикл обновления традиционных цифровых карт составляет от 6 до 12 мес.
Однако у HD-карт цикл сокращается до одной недели. В результате эксплуатация, создание и обслуживание HD-карт для города среднего размера может
стоить более 1 млн долл. США в год.

11.2.6. Интеграция системы
Все упомянутые выше компоненты, включая алгоритмы планирования
и управления, а также распознавания и отслеживания объектов, имеют очень
разные поведенческие характеристики, которые требуют применения различных типов процессоров [3, 5].
С другой стороны, HD-карты занимают очень много памяти. Следовательно,
важной задачей является разработка системы вычислительного оборудования,
отвечающей соответствующим требованием. Все это должно быть реализовано
в условиях ограниченности вычислительных ресурсов и бюджета мощности.
Например, один из ранних проектов автономной вычислительной системы
БТС был оснащен процессором Intel® Xeon E5 и 4–8 ускорителями ГП Nvidia®
K80, соединенными с шиной PCI-E. На пике мощности вся система, способная выполнять 64,5 тераопераций в секунду (TOPS), потребляла около 3000 Вт,
в результате чего наблюдался сильный перегрев. Кроме того, стоимость
в 30 тыс. долл. США делает данный проект недоступным (и неприемлемым)
для обычных потребителей.
Недавно в попытке решить проблему высоких затрат вычислительной мощности и стоимости Tesla объявила о разработке собственной вычислительной
системы Full Self-Driving (FSD). Данный проект представлял собой кремниевый
чип площадью 260 мм2 с 6 млрд транзисторов. По заявлению Tesla, такая система позволяла превзойти производительность чипов Nvidia, используемых
ранее, в 21 раз.

11.3. Достижение ценовой доступности и надежности
Многие крупные компании, занимающиеся разработкой БТС, включая Waymo,
Baidu, Uber и некоторые другие, соревнуются между собой в разработке универсального экономически выгодного БА, способного эффективно и надежно
функционировать даже в самых экстремальных условиях. Однако мы знаем, что
стоимость сенсоров может превышать 100 тыс. долл. США, а вычислительная
система может стоить около 30 тыс. долл. США, в результате чего значительно
повышается стоимость всего БА, которая может превышать 800 тыс. долл. США.
Кроме того, помимо стоимости реализации модулей, все еще неясно, как будут
покрываться эксплуатационные расходы на создание и обслуживание HD-карт.
Кроме того, даже с самыми передовыми датчиками сосуществование БТС
и автомобилей, управляемых людьми, в сложных дорожных условиях остается рискованным предприятием. Если в ближайшие несколько лет мы не смо-

228



Беспилотные транспортные средства от PerceptIn

жем снизить стоимость сенсоров, вычислительных систем, а также стоимость
обслуживания HD-карт, усовершенствовав при этом алгоритмы локализации,
восприятия и принятия решений, вероятность повсеместного распространения беспилотных технологий будет крайне мала.
С целью решения описанных выше проблем команда PerceptIn разработала надежный автономный низкоскоростной электромобиль (LSEV – Low Speed
Electric Vehicle). Общая стоимость данного решения, включая шасси, составляет
менее 10 тыс. долл. США. Такой электромобиль способен развивать скорость
до 20 миль в час, благодаря чему отлично подходит для эксплуатации в университетских городках, промышленных зонах и других ограниченных территориях. Ввиду того, что данное БТС работает на низких скоростях (в целях безопасности), развертывание системы на данном этапе не требует грандиозных
усилий. Затем, по мере усовершенствования технологий и накопления опыта,
система будет дополняться и в конце концов станет применима к сценариям,
предполагающим движение на высоких скоростях. Таким образом, со временем способности данной системы смогут конкурировать с водителями-людьми в любых сценариях. Доступность и надежность системы обусловливается
использованием метода сбора и обобщения данных сенсоров, модульной конструкции и высокоточных визуальных карт.
Модуль компьютерного зрения DragonFly
Модуль RTK ГНСС

Модуль планирования
и управления

Волновой радар 77 ГГц
Сонар

Шасси

Рис. 11.1. БА от PerceptIn

11.3.1. Сбор и обобщение данных нескольких сенсоров
Применение для локализации или восприятия одной лишь технологии LiDAR –
чрезвычайно дорогой и ненадежный подход. В целях достижения большей доступности и повышенной надежности применяется подход, предполагающий
синергетическое обобщение данных нескольких сенсоров, таких как инерциальные измерительные блоки (IMU), GNSS-приемники, колесные энкодеры,

11.3. Достижение ценовой доступности и надежности  229
радары и сонары. Каждый из этих сенсоров имеет собственные характеристики, недостатки и преимущества. Вместе они дополняют друг друга, и, если один
из них выходит из строя, другой может взять его функции на себя. Благодаря
такому подходу достигается гарантия надежности системы, а общая стоимость
сенсоров снижается до 2 тыс. долл. США.
Подсистема локализации полагается на GNSS-приемники, погрешность
которых может достигать 1 м. Сократить погрешности локализации до дециметров позволяет метод визуальной инерциальной одометрии (VIO – Visual
Inertial Odometry), который основывается на данных IMU и данных с камер.
В случае сбоев в работе GNSS-приемников или VIO для отслеживания движения применяются колесные энкодеры. Отметим, что метод VIO определяет
изменение положения путем объединения данных IMU и визуальных данных.
Однако при резких маневрах, например при поворотах, результаты VIO могут
быть не совсем точны ввиду отсутствия общих областей между соседними визуальными кадрами, а также ввиду накопления погрешностей IMU.
Для достижения надежных результатов команда PerceptIn разработала систему локализации DragonFly. Данная система объединяет несколько камер
в один аппаратный модуль, где одна пара камер находится в передней части
БА, а вторая в задней части [4, 6, 7, 8, 9]. Также система предусматривает наличие подсистемы активного восприятия. Основываясь на перечисленных выше
решениях, благодаря сочетанию системы DragonFly и радаров миллиметрового диапазона, позволяющих обнаруживать и отслеживать статические или
динамические объекты в пределах 100 м, БА может принимать решения, обеспечивающие плавность и безопасность движения. При применении технологий распознавания объектов на основе глубокого обучения система DragonFly
может захватывать пространственную информацию. Таким образом, система
может легко распознавать объекты, включая пешеходов и движущиеся транспортные средства, а также точно определять расстояние до этих объектов. Радары миллиметрового диапазона также могут обнаруживать и отслеживать
движущиеся на высокой скорости объекты и расстояния до них при любых погодных условиях.
Также в системе предусмотрена подсистема пассивного восприятия, которая направлена на обнаружение любых непосредственных опасностей и является «последней линией обороны» БА. Упомянутая подсистема рассчитана
на восприятие в пределах от 0 до 5 м вокруг БА, что обеспечивается за счет
совместного использования радаров миллиметрового диапазона и сонаров.
Радары могут эффективно обнаруживать динамические объекты, а сонары –
статические. В зависимости от текущей скорости транспортного средства, при
обнаружении каких-либо объектов в непосредственной близости применяется
соответствующая политика безопасности.

11.3.2. Модульная конструкция
Еще в недавнем прошлом разработка вычислительных систем для БА была
чрезвычайно дорогой. Однако команда PerceptIn продемонстрировала возможность сделать такие системы более доступными. Их решение состоит в создании модульной конструкции, где определенные вычисления производятся

230

 Беспилотные транспортные средства от PerceptIn

непосредственно в сенсорах, что снижает нагрузку на основные модули. Благодаря такому подходу один модуль DragonFly может генерировать данные изображений со скоростью 400 МБ/c. Если бы все вычисления осуществлялись непосредственно в главном вычислительном блоке, его строение было бы крайне
сложным, а также это привело бы к проблемам по части надежности, мощности, стоимости и т. д.
Подход PerceptIn более практичен: он предполагает разбиение функциональных блоков на модули и выполнение каждым модулем как можно большего количества вычислений. Таким образом, снижается нагрузка на основную
вычислительную систему, упрощается ее конструкция и, как следствие, повышается надежность. В частности, в модуль DragonFly встроен графический процессор, служащий для извлечения признаков необработанных изображений.
Ввиду такого метода вычислительный блок получает набор готовых извлеченных признаков, что значительно облегчает работу системы. Применение упомянутых принципов к подсистемам GNSS-приемника и радара снижает стоимость всей вычислительной системы до менее чем 2 тыс. долл. США.

11.3.3. Высокоточные визуальные карты
Создание и поддержка HD-карт составляют значительную часть затрат на развертывание. В качестве решения данной проблемы было предложено применять при создании карт метод краудсорсинга. Однако, для этого потребовались
бы транспортные средства, оснащенные лидарами. Как мы уже говорили ранее, данная технология является крайне дорогостоящей, ввиду чего предлагаемый подход неприменим для масштабного развертывания. С другой стороны,
краудсорсинг для сбора визуальных данных – очень практичное решение, поскольку сегодня многие автомобили уже оснащены камерами.
Вместо того чтобы создавать HD-карты с нуля, PerceptIn предложили иное
решение, состоящее в усовершенствовании точности (до дециметров) уже существующих цифровых карт с помощью визуальной информации. Такие карты
получили название «высокоточные визуальные карты» (HPVM – High-Precision
Visual Maps). Для обеспечения более эффективной локализации HPVM состоят
из нескольких слоев.
1. В качестве первого (нижнего) слоя может выступать любая существующая цифровая карта, например Open Street Map. Разрешение данного
слоя составляет около 1 м.
2. Второй слой включает в себя информацию о визуальных особенностях
рельефа (дорожных покрытий). Этот слой позволяет улучшить разрешение до дециметров. Он особенно полезен для многолюдных городских
сред, где вокруг БА может находится огромное количество других транспортных средств и пешеходов.
3. Третий слой включает в себя информацию о визуальных признаках пространства окружающей среды. Он охватывает больше признаков, чем
предыдущий. Его разрешение также остается в дециметрах. Особенно
полезен данный слой для менее людных открытых пространств, например для сельской местности.

11.4.Развертываниесетибеспилотныхнизкоскоростныхэлектромобилей(LSEV)дляпредоставленияуслуг  231
4. Четвертый слой – семантический. Он содержит информацию о полосах
движения, светофорах, дорожных знаках и т. д. Данный слой помогает
БА принимать решения относительно планирования, например строить
маршруты.

11.4. Развертывание сети беспилотных низкоскоростных
электромобилей (LSEV) для предоставления услуг
В предыдущем разделе мы рассказали о том, как добиться доступности и надежности беспилотных LSEV. В этом разделе мы рассмотрим, как беспилотные LSEV могут применяться в экосистеме «Мобильность как услуга» (MaaS –
Mobility-as-a-Service).
На современном этапе развития MaaS-экосистемы, сервисы райдшеринга,
такие как Uber и Lyft, предполагают преодоление расстояний длиной не более
5 миль, а микромобильные сервисы, такие как скутеры от Lime и Bird, не более
1 мили. Фактически поездки на расстояние от 1 до 5 миль составляют 60 % от
общих пройденных расстояний. Однако текущее состояние MaaS-экосистемы
не удовлетворяет данным показателям ни в одной из форм, будь то райдшеринг или общественный транспорт.
За последние несколько лет активной коммерциализации беспилотных
LSEV мы обнаружили, что многие поездки на расстояния от 1 до 5 миль проходят в ограниченных средах, таких как университетские городки, пригородные районы, промышленные зоны и т. д. В таких средах услуги райдшеринга
или общественного транспорта, как правило, либо недоступны, либо слишком
дороги в обслуживании ввиду высоких затрат на оплату труда водителей. Следовательно, наиболее экономически целесообразным и к тому же вполне реализуемым в техническом плане подходом является развертывание в MaaSэкосистеме беспилотных LSEV для поездок на расстояния от 1 до 5 миль.

Рис. 11.2. Использование беспилотного транспортного средства от PerceptIn в Японии

232

 Беспилотные транспортные средства от PerceptIn

Ввиду того, что многие поездки на расстояния от 1 до 5 миль совершаются
в ограниченных средах на низких скоростях, не следует смешивать беспилотные LSEV, скорость которых достигает не более 20 миль в час, с основным потоком, участники которого в среднем движутся со скоростью 60 миль в час. Так,
на данном этапе подобные транспортные средства следует развертывать только
в ограниченных средах. Мы надеемся, что в скором времени станем свидетелями масштабного внедрения беспилотных LSEV в MaaS-экосистему для услуг
микротранзита.

11.5. Выводы
Несмотря на значительный прогресс, достигнутый за последнее десятилетие,
вероятнее всего, нам понадобится еще десять или более лет, прежде чем мы
сможем развернуть эксплуатацию БА на большинстве дорог и автомагистралей.
На сегодняшний день наиболее целесообразным подходом является эксплуатация низкоскоростных БА в ограниченных средах. Безусловно, по мере развития
соответствующих технологий мы сможем выйти на следующий уровень и создать
БА, не уступающее опытному водителю-человеку. Команда PerceptIn продемонстрировала, что создание небольшого низкоскоростного беспилотного транспорта гораздо дешевле, чем создание полноценных БА, предназначенных для эксплуатации на дороге. В недалеком будущем подобный беспилотный транспорт,
работающий на экологически чистом источнике энергии, будет применяться для
перевозки пассажиров в центрах крупных городов, например на Манхэттене, где
средняя скорость движения не превышает 7 миль в час. Такой подход позволит
значительно снизить расходы пассажиров, улучшить условия движения, повысить безопасность и решить проблему загрязнения воздуха. Мы верим, что стечением времени подобный транспорт появится на всех автомагистралях мира.

11.6. Справочные материалы
[1]
[2]
[3]
[4]
[5]
[6]

Liu, S. 2020. Engineering Autonomous Vehicles and Robots: The DragonFly
Modular-based Approach. John Wiley and Sons. DOI: 10.1002/9781119570516.
Liu, S. and Gaudiot, J. L. 2020. Autonomous vehicles lite self-driving technologies should start small, go slow. IEEE Spectrum, 57(3), pp. 36–49. DOI:
10.1109/MSPEC.2020.9014458.
Tang, J., Yu, R., Liu, S., and Gaudiot, J. L. 2020. A container based edge offloading framework for autonomous driving. IEEE Access, 8, pp. 33713–33726. DOI:
10.1109/ACCESS.2020.2973457.
Tang, J., Liu, S., Liu, L., Yu, B., and Shi, W. 2020. LoPECS: A low-power edge
computing system for real-time autonomous driving services. IEEE Access, 8,
pp. 30467–30479.DOI: 10.1109/ACCESS.2020.2970728.
Liu, S., Liu, L., Tang, J., Yu, B., Wang, Y., and Shi, W. 2019. Edge computing for
autonomous driving: Opportunities and challenges. Proceedings of the IEEE,
107(8), pp. 1697–1716. DOI: 10.1109/JPROC.2019.2915983.
Liu, Q., Qin, S., Yu, B., Tang, J., and Liu, S. 2020. π-BA: Bundle adjustment
hardware accelerator based on distribution of 3D-point observations. IEEE
Transactions on Computers. DOI: 10.1109/TC.2020.2984611.

11.6. Справочные материалы  233
[7]
[8]

[9]

Fang, W., Zhang, Y., Yu, B., and Liu, S., 2018. DragonFly+: FPGA-based quadcamera visual SLAM system for autonomous vehicles. Proceedings IEEE
HotChips, p. 1.
Fang, W., Zhang, Y., Yu, B., and Liu, S. 2017. December. FPGA-based ORB
feature extraction for real-time visual SLAM. In 2017 International Conference on Field Programmable Technology (ICFPT) (pp. 275–278). IEEE. DOI:
10.1109/FPT.2017.8280159.
Yu, B., Hu, W., Xu, L., Tang, J., Liu, S., and Zhu, Y. 2020. Building the computing
system for autonomous micromobility vehicles: Designconstraints and architectural optimizations. In 2020 53rd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), IEEE.

Применение этой книги
в преподавании и обучении
1. Введение
За последние несколько лет беспилотные технологии стали довольно популярной темой как в исследовательском сообществе, так и в производственной
сфере. Однако самым серьезным препятствием для развития этой области
является недостаток специалистов. В свою очередь это связано с несколькими проблемами: во-первых, БТС подразумевают интеграцию большого числа сложных технологий, вследствие чего становится все сложнее обучать специалистов в данной области; во-вторых, большинство учебных курсов на эту
тему сосредоточено лишь на какой-то одной технологии из всего комплекса,
вследствие чего они не могут обеспечить всесторонний подход к обучению;
в-третьих, отсутствие интеграционных экспериментов усложняет поставленную перед обучающимися задачу понимания взаимодействия различных технологических элементов.
Для решения описанных выше проблем мы разработали модульный комплексный подход к обучению специалистов в области автономных систем.
Студенты, интересующиеся данной тематикой, найдут для себя в этой книге
всесторонний обзор основных технологий БТС. Практикующие специалисты
откроют для себя множество практических примеров и ряд информационных
материалов, которые помогут им углубиться в исследование отдельных модулей. Кроме того, стремясь помочь студентам разобраться в аспектах взаимодействия модулей, мы разработали платформы для практических интеграционных экспериментов. Первым этапом нашей методики обучения является
обзор технологий автономных систем, затем мы рассказываем о различных
технологических модулях, а последним этапом выступает проведение интеграционных экспериментов. Обратите внимание, что порядок изучаемых модулей может быть иным в зависимости от уровня подготовленности и интереса
студентов. Мы выяснили, что наша методика подходит для нескольких вариантов учебных курсов, например: введения в курс изучения автономных систем для студентов бакалавриата с ограниченным техническим опытом; курса
по встроенным системам для магистрантов, в который мы добавили урок по
беспилотным технологиям; а также двухнедельного курса профессиональной
подготовки для опытных инженеров.
Структура этого раздела организована следующим образом: в части 2 представлен обзор существующих учебных курсов по управлению БТС; в части 3 представлены детали предлагаемой модульной и интегрированной методики обучения;
в части 4 описаны три тематических исследования, в которых мы применили
предложенную методологию; часть 5 содержит полученные нами выводы.

Применение этой книги в преподавании и обучении 

235

2. Существующие учебные курсы по управлению БТС
Автономные транспортные системы представляют интерес как для академических кругов, так и для производственной сферы. Однако такие комплексные и сложные системы включают в себя разнообразный набор технологий,
отвечающих за сенсорное сканирование, восприятие, локализацию, принятие
решений, возможность операционных систем функционировать в режиме реального времени (обрабатывать данные с датчиков), гетерогенные вычисления, обработку графики/видео, облачные вычисления и многое другое. Таким
образом, от преподавателя требуется освоение всех аспектов соответствующих
технологий. Еще более сложная задача предстает перед обучающимися – им
предстоит разобраться во взаимодействии между всеми этими технологиями.
Проблемно-ориентированное обучение (PBL – Problem-based learning) представляет собой рекомендуемый к применению и практичный способ представления студентам технологий автономных систем и получения ими соответствующих знаний. [20] Воспользовавшись симулятором Gazebo 3D, В. Коста
(V. Costa) и др. создали симулятор, позволяющий студентам проектировать
беспилотные системы и разбираться в них. [13] Что касается образовательной методологии демонстрационного обучения, особого внимания здесь заслуживает разработка Н. Арнальди (N. Arnaldi) и др. Они создали доступный
механизм установки приложений, обучающих управлению машинными системами, который основывается на программировании встроенных систем
небольших беспилотных автомобилей [14]. Однако стоит отметить, что все
описанные выше подходы фокусируются лишь на одной или двух технологиях
и не позволяют изучить все аспекты разработки автономных систем.
Сегодня несколько крупных университетов уже внедрило учебные курсы по
беспилотным технологиям в свои программы. Например, Массачусетский технологический институт (MIT – Massachusetts Institute of Technology) предлагает два таких курса. Тема первого из них – искусственный интеллект. К слову,
этот курс доступен в том числе и для общественности. Курс включает в себя
несколько лекций, на которых приглашенные докладчики рассказывают о методах глубокого обучения, обучения с подкреплением, а также о робототехнике, психологии и многом другом. [15] Другой курс фокусируется исключительно на применении методов глубокого обучения для БТС, а также обучает
студентов общим принципам глубокого обучения в процессе создания беспилотных автомобилей. [16] Помимо описанных выше курсов, свои учебные программы в этом направлении предлагает Стэнфордский университет (Stanford
University). Их курс сосредоточен на внедрении ключевых технологий искусственного интеллекта, которые могут применяться при разработке БТС. [17]
Однако объектом всех вышеперечисленных курсов по большей части является
машинное обучение, вследствие чего они не в состоянии охватить все разнообразие технологий, применяемых в БТС. Таким образом, студентам сложно
получить полное представление об автономных системах управления.
Что касается экспериментальных платформ и конкурентных разработок,
Л. Полл (L. Paull) и др. создали проект Duckietown – недорогую платформу с открытым исходным кодом, предназначенную для автономного обучения и исследований. [18] БТС оснащены микрокомпьютерами Raspberry Pi 2 и монокулярной

236

 Применение этой книги в преподавании и обучении

камерой для сканирования окружающей среды. Кроме того, существуют соревнования по беспилотным технологиям среди учащихся, что позволяет мотивировать их к изучению технологий, на которых строятся БТС и соответствующие
транспортные системы. [19, 21–23] Однако, прежде чем пользоваться подобными платформами и принимать участие в соревнованиях, учащимся необходимо
освоить базовые аспекты задействованных технологий, а также их взаимодействия; к сожалению, таких курсов на сегодняшний день не существует.
Как опытные исследователи и практики в области БТС, мы считаем, что лучший способ научиться создавать системы БТС – усвоить базовые концепции
каждого технологического модуля, а затем объединить эти модули, чтобы понять, как они взаимодействуют. Существующие на сегодняшний день обучающие курсы либо сосредоточены только на одной или двух технологиях, либо
их целью является создание учащимися функционирующего БТС. В результате
изучения технологий по-отдельности возникает высокий входной барьер для
студентов, заинтересованных в управлении БТС, что очень часто отпугивает
новых потенциальных специалистов в этой захватывающей области. С целью
решить эту проблему мы разработали модульный и интегрированный подход,
который представим далее в этом разделе. Помимо этого, мы поделимся своим
опытом обучения управлению БТС.

3. Модульный и интегрированный подход к обучению
БТС основаны на конвергенции множества технологий, что делает обучение
в этой области чрезвычайно сложной задачей. Для решения этой проблемы
мы предлагаем модульную и интегрированную методику обучения. С целью ее
успешной реализации мы разработали модульные учебные материалы, в том
числе учебник и серию мультимедийных онлайн-лекций, а также экспериментальные платформы интеграции для обеспечения комплексного подхода к обучению беспилотным технологиям.

3.1. Методика преподавания
За последние несколько лет мы преподавали на разных уровнях образования
(бакалавриат и магистратура), а также знакомили с концепциями технологий
БТС новых инженеров. Общей проблемой, которую мы обнаружили, было то,
что на первых занятиях студентов обычно пугает кажущаяся сложность материала. Схожая реакция наблюдалась и у опытных инженеров, которые познакомились с беспилотными технологиями (а также многообразием смежных
областей) лишь недавно, иными словами, это вывело их из зоны комфорта.
Несмотря на возникшие сложности, мы обнаружили, что модульный
и комплексный подход к преподаванию — это эффективный способ обучения беспилотным технологиям. Согласно этому подходу, сложный стек технологий, применяемых в данной области, разбивается на модули. Учащимся
предлагается начать с наиболее знакомого им модуля, а затем они переходят
к изучению других. Такой метод позволяет поддерживать интерес студентов
и добиваться удовлетворительного прогресса. После того как студенты пройдут все модули, им предлагается выполнить несколько интеграционных экспериментов, которые помогут разобраться во взаимодействии всех модулей

Применение этой книги в преподавании и обучении 

237

между собой. Описанный подход к преподаванию является эффективным
методом обучения, и, что особенно важно, позволяет преподавателям адаптировать учебную программу курса в соответствии с потребностями студентов, имеющих в свою очередь разный уровень образования. Так, подобные
курсы подходят как для студентов-бакалавров, не обладающих обширным
техническим опытом, студентов-магистрантов, обладающих базовым опытом в сфере компьютерных технологий, так и для опытных инженеров – экспертов в определенной области.
На рис. П.1 представлен пример учебной программы, соответствующей модульному интегрированному подходу: курс разделен на девять модулей и интеграционные эксперименты. Бакалавры и магистры могут начать с общего
обзора технологий, связанных с БТС. Однако у студентов бакалавриата этот
этап может занять немного больше времени. Затем обучающиеся могут перейти к изучению локализации, а далее к изучению традиционных алгоритмов
восприятия и алгоритмов восприятия с задействованием глубокого обучения.
Следующим модулем может стать исследование технологий принятия решений, включая планирование и контроль, планирование движения и сквозное
планирование. Затем студенты могут углубиться в изучение клиентских систем и облачных платформ. Финальным этапом выступят интеграционные
эксперименты, которые помогут лучше понять взаимодействие между изученными технологиями.

Обзор

Локализация

Традиционные
алгоритмы
восприятия

Алгоритмы
восприятия на
основе глубокого
обучения

Планирование
и управление

Планирование
движения

Сквозное
планирование

Студенты, обучающиеся по программам бакалавриата
и магистратуры

Практикующие
опытные специалисты
Клиентские
системы
Интеграционные
эксперименты
Облачные
платформы

Рис. П.1. Пример модульного и интегрированного подхода к учебной программе

3.2. Учебные материалы к модулям
Второе издание данной книги призвано охватить основные модули стека беспилотных технологий. Она представляет собой один из первых технических
обзоров БТС, в котором мы также делимся собственным практическим опытом.
Эта книга состоит из девяти глав, в которых представлен обзор беспилотных
транспортных систем. Здесь содержится описание технологии локализации,
традиционных алгоритмов восприятия (основанных на глубоком обучении),

238



Применение этой книги в преподавании и обучении

подсистемы планирования и контроля (в частности, технологий прогнозирования и маршрутизации), технологий планирования движения и контроля обратной связи, технологий планирования и контроля, основанных на обучении
с подкреплением, деталей проектирования клиентских систем и особенностей
облачных платформ.
Эта книга предназначена как для студентов, так для исследователей и практиков. Бакалаврам и магистрантам, интересующимся БТС, она предоставляет
исчерпывающий обзор всего стека технологий данной области. Для практиков
здесь представлены практические методы внедрения таких систем. Исследователи в свою очередь смогут открыть для себя множество ссылок на информационные ресурсы, что позволит им углубиться в изучение технологий, применяемых в области автономных транспортных систем.
Наряду с этой книгой вместе с EEE Computer Society и O’Reilly мы разработали курс онлайн-лекций. [5,6] Мы считаем, что мультимедийные презентации
позволят студентам эффективнее изучать конкретные технологии.

3.3. Интеграционные экспериментальные платформы
Отсутствие платформ для экспериментов является одной из самых распространенных проблем при изучении беспилотных технологий. Большинство обучающих курсов предполагает использование симуляторов для проверки производительности разработанных алгоритмов. [11] Тем не менее для обеспечения
полного усвоения студентами знаний о взаимодействии модулей одного лишь
имитационного подхода недостаточно. С другой стороны, использование в качестве экспериментальной платформы самих БТС нецелесообразно ввиду их
высокой стоимости. Стоимость одного демонстрационного беспилотного автомобиля может достигать 800 000 долл.
Наиболее доступный вариант площадок для проведения экспериментов –
мобильные платформы, например смартфоны. Сегодня практически в каждой
модели есть множество сенсоров (GPS, акселерометры, гироскопы, камеры
и др.), а также мощные разнородные вычислительные платформы (с обычными центральными, графическими и цифровыми сигнальными процессорами).
Таким образом, смартфоны можно успешно применять в качестве обучающих платформ для задач локализации и восприятия. Например, в видеоролике «Perception Robot System Running on a Cell Phone» («Система восприятия
робота на базе сотового телефона») [8] мы успешно реализовали технологии
локализации в режиме реального времени, обнаружения препятствий, а также функции планирования и контроля на смартфоне Samsung Galaxy 7. Так,
с помощью смартфона мы смогли управлять мобильным роботом и достичь
скорости пять миль в час.

4. Пилотные тематические курсы
Несколько институтов и университетов уже приняло (или находится в процессе
принятия) предложенную нами методологию обучения, а также экспериментальные платформы, описанные в этой главе. В этом разделе мы представим
три примера применения вышеупомянутой методики обучения и материалов:

Применение этой книги в преподавании и обучении 

239

первый – введение в курс БТС для студентов бакалавриата с ограниченным
техническим опытом; второй – курс о встроенных системах для магистрантов,
в который мы добавили урок, посвященный технологиям БТС; третий – двухнедельный курс профессиональной подготовки для опытных инженеров. Каждый из этих примеров способен продемонстрировать всю гибкость использования предложенного подхода.

4.1. Введение в курс БТС
Разработанный нами вводный курс для бакалавров и магистрантов состоит из
15–20 лекций (в зависимости от продолжительности четверти или семестра).
Также 20 ч отводится на проведение интеграционных экспериментов. Общая
цель курса – представить обзор технических аспектов БТС для студентов, имеющих базовый опыт в программировании и работе с алгоритмами и операционными системами.
Ввиду того, что курс ориентирован на обучающихся, обладающих не столь
обширным техническом опытом, мы не утверждаем, что после его прохождения они смогут полностью овладеть всеми модулями. Однако мы стремимся поддержать интерес студентов и вооружить их базовыми знаниями,
которые помогут им углубиться в интересующие модули. Именно поэтому
наш курс делится на девять модулей (см. рис. 1). Для того чтобы заинтересовать студентов, в начале каждого занятия мы демонстрируем им короткий
видеоролик, например «Creating Autonomous Vehicle Systems» («Создание
беспилотных транспортных средств») [5], в котором кратко излагается сущность изучаемой в модуле технологии. Также на протяжении всего курса мы
просим учащихся использовать смартфоны для проведения интеграционных
экспериментов. В частности, в экспериментах по локализации учащиеся пробуют извлекать данные GPS-локализации в режиме реального времени, после
чего они объединяют полученные данные GPS и данные блока инерциальных
измерителей (IMU – Inertial measurement unit). При изучении алгоритмов восприятия наши студенты пользуются средой глубокого обучения MXNET [12].
Они устанавливают платформу на свой смартфон и запускают простые сети
обнаружения объектов.
Также разработанные нами интеграционные эксперименты позволяют углубиться в исследование взаимодействия технологий БТС. Поскольку
данный курс является вводным для расширенных интеграционных экспериментов, таких как объединение данных GPS, инерциальных измерителей
и камер с целью достижения возможности точного определения местоположения устройства в режиме реального времени, мы сознательно не включили в лекции большое количество технической информации. Таким образом,
чтобы получить отсутствующую в лекциях информацию, студентам необходимо проводить собственные исследования и уделять экспериментам достаточно времени и усилий. Мы не ждали от студентов выполнения сложных
заданий. Однако, к нашему удивлению, с ними справились 8 % обучающихся.
Таким образом, мы можем сделать вывод о том, что модульный и интегрированный подход к обучению позволяет студентам получить исчерпывающий обзор технологий, а также при желании углубиться в изучение интересующих их модулей.

240

 Применение этой книги в преподавании и обучении

4.2. Изучение БТС как дополнение курса
о встроенных системах
Мы добавили урок по БТС в уже существующий курс о встроенных системах
для магистрантов. Этот курс длится 20 недель и включает в себя 60 ч лекций
и 20 ч экспериментальной части. Так, мы выделили 6 ч лекционных занятий
и 10 ч экспериментальной части для уроков по технологиям БТС. В самом начале курса мы поинтересовались у студентов, видят ли они себя в качестве инженеров в области БТС. Большинство из них было крайне заинтересовано в этом,
однако опасалось потенциальных сложностей.
С целью избавить студентов от опасений мы решили поместить урок по БТС
в конец курса, после того как студенты освоят базовые навыки проектирования
и внедрения встраиваемых систем с различными методами оптимизации программного и аппаратного обеспечения, например гетерогенными вычислениями. Перед тем как приступить к завершающей части курса, представление
студентов о беспилотных технологиях ограничивалось лишь концептуальным
уровнем. Из 56 студентов только 10 смогли перечислить некоторые технологии, связанные с БТС, такие как локализация и восприятие. Но никто из них
не понимал деталей этих технологий.
Ввиду ограниченного количества учебных часов сначала мы представили студентам общий обзор беспилотных технологий, а затем сосредоточились на двух
из них: локализации и восприятии. Мы рассмотрели две простые реализации:
ORB-SLAM [9] для локализации и SqueezeNet [10] для обнаружения объектов. Затем мы разделили учащихся на группы по четыре человека для проведения экспериментов по интеграции с этими алгоритмами на своих Android-смартфонах
и попросили их сравнить производительность при использовании только ЦП
с производительностью при использовании гетерогенных вычислительных компонентов, таких как графический и цифровой сигнальный процессоры. После
завершения проекта учеников попросили обобщить полученные данные и представить свои результаты. Благодаря такому формату обучающиеся смогли узнать
о методах, используемых другими группами, и почерпнуть из этого что-то новое.
Результаты были обнадеживающими. Во-первых, было очень интересно посмотреть на разные стратегии оптимизации от разных групп. Некоторые группы отдали приоритет вычислительным ресурсам, направленным на частое обновление данных местоположения, тогда как другие группы отдали приоритет
вычислительным ресурсам для восприятия, чтобы гарантировать избежание
препятствий в реальном времени. Во-вторых, во время этого курса опасения
по поводу технологий БТС исчезли, опрос после занятий показал, что 85 % студентов хотели бы продолжить обучение.

4.3. Курс профессиональной подготовки
Зачастую компаниям, занимающимся разработкой БТС, бывает сложно найти
инженеров соответствующей области. Это связано с ограниченностью кадрового резерва, имеющего опыт в данной сфере. Таким образом, мы считаем, что
разработка курсов профессиональной подготовки позволит быстро вооружить
опытных инженеров новыми техническим знаниями, которые дадут им возможность углубиться в один из модулей.

Применение этой книги в преподавании и обучении 

241

Мы тесно сотрудничали с одной из компаний, занимающейся БТС, и взяли на себя ответственность обучить их инженеров, большинство из которых
уже работали со встроенными системами и имеют некоторый опыт разработки программного обеспечения. Перед нами стояло три основные сложности:
во-первых, на курс было отведено всего две недели, ввиду чего время на углубление в технологии было ограничено; во-вторых, в соответствии с установленным промежутком времени нам предстояло распределить инженеров на
разные должности, хотя они и имели схожий технологический опыт; в-третьих,
серьезную проблему для самих инженеров представляла их неуверенность, поскольку они сомневались, что смогут справиться со всем массивом технологий
за столь короткий отрезок времени.
Для решения всех этих проблем, следуя методологии, представленной на
рис. П.1, мы попросили всех инженеров начать курс с обзора технологий, а затем в течение первой недели они изучали технологии клиентских систем и облачных платформ. Поскольку инженеры уже работали со встроенными системами и имели общий опыт разработки программного обеспечения, начинать курс
с этих модулей было для них оптимальным решением. На протяжении первой
недели они изучали характеристики различных рабочих нагрузок, а также их
интеграцию во встроенные и облачные системы. На второй неделе, основываясь на результатах работы инженеров за первую неделю, а также на уровне их
интереса к различным технологиям, мы поручили им углубиться в конкретный
модуль, например восприятие, локализацию или принятие решений.
В части курса посвященной интеграционным экспериментам, в отличие
от бакалавров и магистрантов, инженерам дали возможность поработать с реальным продуктом. На этом тренинге была создана команда из семи инженеров; один был определен в группу сенсорного сканирования, двое в группу восприятия, двое в группу локализации и еще двое в группу принятия решений.
Демонстрация процесса разработки представлена в видеоролике «Perception
Autonomous Vehicle Development» [7].

5. Заключение
Нас часто спрашивают, какая технология является наиболее важной в области
БТС. Наш ответ – интеграция. Как уже не раз упоминалось, БТС – это не одна
отдельная технология, а скорее сложная система, объединяющая множество
технологий. Однако перед их интеграцией необходимо детально изучить каждый задействованный в этой системе модуль. Существующие курсы очень часто сосредоточены лишь на одной или двух технологиях, а их итогом является
создание обучающимися функционирующего БА. Так, возникают серьезные
барьеры для привлечения в область новых специалистов. Тем не менее большинство студентов действительно заинтересовано в управлении БТС, но очень
часто их отпугивает страх, что они не смогут справиться с сопутствующими
сложностями. Для решения этой проблемы мы разработали модульный и интегрированный подход к обучению. Этот подход разбивает сложную технологию
БТС на различные технологические модули, которые обучающимся предстоит
исследовать один за другим. После того как они усвоят основные концепции
каждого технологического модуля, они приступают к интеграционным экспе-

242

 Применение этой книги в преподавании и обучении

риментам, что помогает им наглядно разобраться во взаимодействии между
изученными модулями.
Мы успешно применили эту методологию к трем пилотным тематическим
курсам: курсу БТС для студентов бакалавриата, курсу о встроенных системах
для магистрантов, в который мы добавили урок, посвященный БТС, а также
двухнедельному курсу профессиональной подготовки для опытных инженеров. Несмотря на то что участники этих курсов обладали разным техническим
опытом, модульный подход позволил нам установить порядок изучения технологий в соответствии с потребностями обучающихся, а интеграционные
эксперименты помогли им разобраться во взаимодействии между этими технологиями. Так, мы обеспечили обучающимся всестороннее понимание модулей, а также их взаимодействия. Кроме того, наш опыт показал, что предлагаемый подход позволяет студентам начать с удобных модулей, а затем перейти
к другим модулям, что позволяет студентам поддерживать высокий уровень
интереса и хорошую успеваемость.

Справочные материалы.
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10
[11]
[12]
[13]
[14]

Liu, S., Peng, J., and Gaudiot, J-L. Computer, drive my car! Computer, 2017.
50(1), p. 8–8.
Liu, S., Tang, J., Zhang, Z., and Gaudiot, J-L. Computer architectures for autonomous driving. Computer, 2017. 50(8), p. 18–25.
Liu, S., Tang, J., Wang, C., Wang, Q., and Gaudiot, J-L. A unified cloud platform
for autonomous driving. Computer, 2017. (12), p. 42–49.
Liu, S., Li, L., Tang, J., Wu, S., and Gaudiot, J-L. Creating autonomous vehicle
systems. Synthesis Lectures on Computer Science, 2017. 6(1), p. i–186.
IEEE Computer Society, Creating Autonomous Vehicle Systems, accessed 1 Feb
2018. URL: https://www.youtube.com/watch?v=B8A6BiRkNUw&t=93s.
OReilly, Enabling Computer-Vision-Based Autonomous Vehicles, accessed 1
Feb 2018. URL: https://www.youtube.com/watch?v=89giovpaTUE&t=434s.
PerceptIn Autonomous Vehicle Development, accessed 1 Feb 2018. URL:
https://www.youtube.com/watch?v=rzRC57IXtRY.
PerceptIn, PerceptIn Robot System Running on a Cell Phone, accessed 1 Feb
2018. URL: https://www.youtube.com/watch?v=Mib8SXacKEE.
ORB-SLAM, accessed 1 Feb 2018. URL: http://webdiis.unizar.es/~raulmur/
orbslam/.i
SqueezeNet, accessed 1 Feb 2018.
URL: https://github.com/DeepScale/SqueezeNet.
Tang, J., Liu, S., Wang, C., and Liu, C. Distributed simulation platform for autonomous driving. International Conference on Internet of Vehicles (IOV)
2017. p. 190–200.
Apache MXNET, accessed 1 Feb 2018. URL: https://mxnet.apache.org/. xxii
Costa, V., Rossetti, R., and Sousa, A. Simulator for teaching robotics, ROS and
autonomous driving in a competitive mindset. International Journal of Technology and Human Interaction, 2017. 13(4), p. 14.
Arnaldi, N., Barone, C., Fusco, F., Leofante, F., and Tacchella, A. Autonomous
driving and undergraduates: An affordable setup for teaching robotics, Pro-

Применение этой книги в преподавании и обучении 

[15]
[16]
[17]
[18]

[19]

[20]
[21]
[22]
[23]

243

ceedings of the 3rd Italian Workshop on Artificial Intelligence and Robotics,
p.5–9. Genova, Italy. November 28, 2016.
Artificial General Intelligence, accessed 1 Feb 2018. URL: https://agi.mit.edu/.
Deep Learning for Self-Driving Cars, accessed 1 Feb 2018.
URL: https://selfdrivingcars.mit.edu/.
Artificial Intelligence: Principles and Techniques, accessed 1 Feb 2018. URL:
http://web.stanford.edu/class/cs221/.
Paull, L., Tani, J., Zuber, M.T., Rus, D., How, J., Leonard, J., and Censi, A. 2016.
Duckietown: An open, inexpensive and flexible platform for autonomy education and research, IEEE International Conference on Robotics and Automation. Singapore. May, 2017, p. 1–8. DOI: 10.1007/978-3-319-55553-9_8.
Karaman, S., Anders, A., Boulet, M., Connor, M.T., Abbott, J., Gregson, K.L., Guerra, W. J., Guldner, O.R., Mohamoud, M.M., Plancher, B.K., Robert, T-I., and Vivilecchia, J.R. Project-based, collaborative, algorithmic robotics for high school
students: Programming self-driving race cars at MIT. IEEE Integrated STEM
Education Conference, p. 195–203, 2017.
Tan, S. and Shen, Z. Hybrid problem-based learning in digital image processing: A case study, IEEE Transactions on Education, 2017. (99): p. 1–9.
Robotica 2017, accessed 1 Feb 2018.
URL: http://robotica2017.isr.uc.pt/index.php/en/competitions/major/autonomous-driving.
Autonomous Driving Challenge, accessed 1 Feb 2018.
URL: http://www.autodrivechallenge.org/.
NXP CUP Intelligent Car Racing, accessed 1 Feb 2018.
URL: https://community.nxp.com/ groups/tfc-emea.

Предметный указатель
Alluxio 31
BDS 35
CAN, локальная сеть контроллеров 107
DARPA Urban Challenge 60
EGNOS 35
GPS 32
Hadoop, файловая система 194
HD-карта 30, 41
LiDAR, технология 40
MSAS 35
Paddle, платформа 31
PID-контроллер 154
ROS, операционная система
роботов 26, 181
SBAS 35
SL, система координат 142
Spark 30
ST-график 148
WAAS 35

А

Алгоритм
A* 122
актор-критика 170
ближайших точек 212
Дейкстры 120
итерации значений Беллмана 130
моноглубины 98
поиска в глубину 122
поиска в ширину 122

Б

Байесовская фильтрация 79
Блочное уравнивание 51

В

Восприятие 225
Воспроизведение опыта 168

Г

Гетерогенные вычисления 195
Гисторамма направленных
градиентов 73

Д

Датасет 70

Динамическое
программирование 129

З

Задержка распространения
ионосферная 34
тропосферная 34

И

Инерциальный измерительный
модуль 39

К

Калибровка лидара
выбор целевой функции 43
параметризация 43
сегментация данных 43
Карта
диспаратности 22
сопоставление 46
Кинематика в реальном времени 35
Код «грубого» захвата 36
Колесный энкодер
Аккермана 56
доплеровский 56
навесной 56
оптический 56
Конечный автомат 127
Крен 49

Л

Локализация 225

М

Марковский процесс 128
Маршрутизация
сильная 123
слабая 124
Международное начало координат 33
Метод
опорных векторов 73
частичной реконфигурации 190
Многолучевость 34
Модель
LSTM 112
RNN 112

Предметный указатель 

Модуль
маршрутизации 104
планирования движения 106
поведенческих решений 105, 127
прогнозирования движения 104
Мультимасштабная нейросеть 88

Политика
поведенческих решений 129
Поток сцен 78
Продолжающаяся задача 164
Пространственно-временная
траектория 140

Н

Р

Навигационная система
глобальная спутниковая 17, 32
инерциальная 17, 39
Нейронная сеть
автокодировщик 24
глубокая 24
сверточная 24, 85

О

Обнаружение объектов 72, 86
сверточное одноэтапное 90
Обучение с подкреплением 163
агент 164
выгода 164
конечные состояния 164
Объект оптимизации 140
Одометрия
визуальная 51
инерциальная 54
колесная 56
монокулярная 53
стереовизуальная 52
Окружающая среда 163
Опорные (центральные) линии 142
Оптический поток 77, 95
Отслеживание объектов 79
Ошибки эфемерид 34

П

Пирамидный парсинг сцены 91
Планирование
пути 141
скорости 141, 148
Плотное сопоставление
изображений 98
Позиционирование высокой
точности 37
Показатель прогнозирования
отзывчивость 113
точность 113

Решение
индивидуальное 105, 133
синтетическое 105, 132
Рулевой механизм Аккермана 56
Рыскание 49

С

Сегмент
маршрутизации 116
Семантическая
сегментация 74, 90
Сенсорное сканирование 224
Сиамские архитектуры 93
Слой активации 24
объединяющий 24
полностью подключенный 24
сверточный 24
Стереозрение 93
Сценарий 135
Счисление координат 55

Т

Тангаж 49

У

Уравнение Аккермана 56
Условное случайное поле 75

Ф

Фильтр
Калмана 21, 38
сигма-точечный 48
частиц 22
Фрейм (тактовый цикл) 103
Функция
вознаграждения 130
значения 165

Я

Якорные рамки 89

245

Книги издательства «ДМК Пресс» можно заказать
в торгово-издательском холдинге «Планета Альянс» наложенным платежом,
выслав открытку или письмо по почтовому адресу:
115487, г. Москва, 2-й Нагатинский пр-д, д. 6А.
При оформлении заказа следует указать адрес (полностью),
по которому должны быть высланы книги;
фамилию, имя и отчество получателя.
Желательно также указать свой телефон и электронный адрес.
Эти книги вы можете заказать и в интернет-магазине:
www.galaktika-dmk.com
Оптовые закупки: тел. (499) 782-38-89.
Электронный адрес: books@alians-kniga.ru.

Шаошань Лю, Лиюнь Ли, Цзе Тан, Шуаш Ву, Жан-Люк Годье

Разработка беспилотных транспортных средств
Главный редактор

Мовчан Д. А.

dmkpress@gmail.com

Зам. главного редактора
Научный редактор
Перевод
Корректор
Верстка
Дизайн обложки

Сенченкова Е. А.
Яценков В. С.
Бомбакова П. М.
Абросимова Л. А.
Луценко С. В.
Мовчан А. Г.

Формат 70×100 1/16.
Гарнитура «PT Serif». Печать цифровая.
Усл. печ. л. 19,66. Тираж 200 экз.
Веб-сайт издательства: www.dmkpress.com