(Статья Forbes 2019 года )
Брэд Тэмплтон с ранней версией Стэнфордского робокара.
Об авторе: Брэд Тэмплтон — инженер-программист, евангелист робоавтомобилей с 2007 года, работал над Гуглокаром в его ранние годы. Основатель ClariNet, почетный председатель Electronic Frontier Foundation и директор Foresight Institute, основатель факультета в Singularity University.
Трудно руководствоваться правилами открытой разработки или любительских изобретений, когда вы создаете робота весом 1,3 тонны и отправляете его ездить по улицам среди пешеходов. Тем не менее, инноваторы-любители очень важны для любой развивающейся технологии. Как же разрешить противоречие?
В последнее время было несколько интересных объявлений в области открытых разработок.
- Cruise открыли исходный код Worldview, визуализатора машин-роботов. Это набор инструментов, который позволяет легко создавать графические представления датчиков, областей восприятия и других данных, чтобы понимать что ваша машина видит и делает.
- Uber также выпустили свой набор инструментов AVS для подобной визуализации.
- Baidu некоторое время назад выпустили проект Apollo, включающий в себя полный набор инструментов и симулятор.
Также выпущены пакеты с открытым исходным кодом от UDacity, EB Robinos, Autoware, Nvidia и comma.ai. И хотя пока мы не находимся на том уровне, когда вы можете скачать набор инструментов и создать любительский автомобиль, это время настанет.
У меня большая история работы с инструментами с открытым исходным кодом, и я выпустил несколько пакетов открытого программного обеспечения под свободными лицензиями. Как председатель Фонда Электронных Рубежей я часто занимался защитой прав такого программного обеспечения.
Эти инструменты помогут разработчикам работать быстрее и объединяться для создания лучших автономных автомобилей. Это особенно правдиво в отношении инструментов, используемых для создания программного обеспечения для машин-роботов, так как в этой области существует сильный стимул к сотрудничеству. Команды будут интегрировать полезные компоненты с открытым исходным кодом в свои машины, если лицензии будут это позволять. Некоторые команды смогут даже полностью создавать транспортные средства используя с открытым исходным кодом. Существуют примеры открытых проектов, которые намного превосходят гораздо более затратные коммерческие инициативы. Сверх этого, существуют веские аргументы в пользу того, что инструменты с открытым исходным кодом могут быть более безопасны, так как каждая их часть находится под пристальным взглядом всего мира. Конечно, злоумышленники видят исходники и это может помочь им в поисках уязвимостей, но гораздо больше хороших парней, которые тоже видят этот код и работают над его защитой.
Все это ожидаемо, но есть и проблема для человека, который является звездой методов открытой разработки – мастера-одиночки. Люди, которые улучшают системы, занимаются этим просто потому, что они сами ими пользуются и хотят сделать их еще лучше и поделиться своими успехами. Такие люди несут основную ответственность за большинство открытых инструментов, которыми мы пользуемся, хотя некоторые важные и крупные проекты, конечно, созданы большими командами с профессиональными финансированием.
Сможете ли вы взять набор открытого программного обеспечения, загрузить его в свою машину и заставить ее ехать самостоятельно, пока вы смотрите телевизор? Сможете ли вы заставить ее работать без водителя, чтобы она могла приехать и забрать вас? Сможете ли вы внести изменения по своему вкусу или скачать другие модификации и выехать с ними на дороги? Это гораздо более сложный вопрос.
Люди занимаются такими вещами постоянно в других областях программирования. Однако телефон сильно отличается от автомобиля. Дыра в безопасности вашего телефона может дать злоумышленникам доступ к вашим персональным данным, даже платежной информации, и это серьезно. Но уязвимость в машине может стоить жизни вам или другим людям на дороге.
Самосертификация
В наше время регулирующие органы придерживаются политики невмешательства. И хотя они опережают время и создают правила для технологий, которые еще не существуют, в основном они ориентируются на условия самосертификации для машин, которые выпускаются основными игроками на рынке.
Самосертификация означает, что компания тестирует машину и заявляет, что она действительно отвечает целям и требованиями безопасности, изложенным в правилах, и третьи стороны или государство не проверяют ничего из этого. Вместо этого, если выяснится, что компания совершила ошибку, или, что еще хуже, солгала о соответствии предписаниям, то их ждут мучения в суде. В идеале это должны быть такие мучения, которые будут мотивировать компании проводить тесты еще лучше, чем любая третья сторона или государство.
Это не так сложно. Правда в том, что никто не знает, как создать независимый центр тестирования, так как непонятно, что он будет проверять или как он будет работать. Понятия не имеет даже само правительство. Для обычных автомобилей существуют тесты, которые хорошо понятны, например, краш-тесты. Также количество аспектов, которые проверяются внешними организациями, сильно отличается от страны к стране. Но в большинстве случаев люди, которые создают автомобили или компоненты для них, знают о проверках и подтверждении безопасности гораздо больше, чем кто-либо еще, и мотивировать производителей к тому, чтобы быть честными – это эффективная методика.
В случае с машинами-роботами, такие тесты могут быть проведены только через глубокое изучение программного обеспечения и его работы. Вы должны полностью разбираться в этом, чтобы это сделать. Существует несколько универсальных тестов, которые могут быть проведены независимыми лабораториями, и которые будут действительно полезны. Со временем будет появляться все больше тестов и все больше лабораторий для их проведения, но и разработчики будут создавать новые подходы, которые не будут укладываться в старые тесты. Стандарты и правила могут определять общепринятые и краткосрочно актуальные методики.Они не очень полезны в быстро меняющейся области, в которой регулярно изобретаются новые подходы.
Величина
В то время как самосертификация кажется единственной системой, которая работает для мастера-одиночки, к сожалению, принципы в основе этой системы требуют, чтобы сертификатор имел достаточно веса для подтверждения своих заявлений. У одного человека, как правило, нет средств, чтобы избежать мучений от отсутствия надлежащей сертификации. Группы людей могут избегать подобных ситуаций, но это сложно даже для них. Тесты также будут недешевы в случае сертификации третьей стороной. Все это означает, что это – нечастая практика, которая может быть проведена рационально только для программного обеспечения, на котором работают тысячи автомобилей.
Даже если существует программный пакет, который сертифицирован как безопасный, что если вы внесете в него свои изменения, которые имеют отношение к важным частям кода, влияющим на безопасность работы? Можете ли вы выезжать на такой машине на дорогу со множеством препятствий вокруг? Это все еще сложный вопрос.
Решения
Возможным решением может быть приобретение страховки. К сожалению, в этом также есть свои сложности. Скорее всего, риск будет выше, чем тот, который покрывается типичной современной страховкой. Также у страховых компаний нет методик определения того, насколько вы хороший программист и насколько безопасны ваши модификации.
Вы должны иметь возможность внести свои модификации и выехать на дорогу в режиме безопасного вождения с хотя бы одним человеком, и, вероятно, двумя проверяющими, следящими за новым программным обеспечением и готовыми взять на себя управления в случае любых проблем. Это способ, которым проверяются автомобили сегодня; так было с автопилотом Tesla. Это работает, но только для серьезных разработчиков, которые готовы вложить множество времени и ресурсов, и не работает для любителей, которые просто хотят внести изменения в программное обеспечение своих автомобилей.
Возможна ситуация, в которой программист после небольшой проверки безопасного вождения сможет отправить свои правки более крупной организации, которая сможет интегрировать эти правки в свои тесты. Они могут тестировать сотню (непересекающихся) модификаций от разных разработчиков одновременно. Эти программисты смогут вместе разделить стоимость этого и не только тестирования, чтобы довести свой код до уровня, на котором возможна сертификация. Однако, это все еще дорого.
«Наставник»
Также возможно создания своего рода программного “наставника”. Это может быть простая сертифицированная программа, которая представляет собой безопасного автоматизированного водителя. По сути, эта программа может быть взята из ядра признанной, высоконадежной системы, у которой есть все сертификаты безопасности. Ваша машина будет работать на собственной измененной системе, но в то же время “наставник” будет постоянно наблюдать за ее работой. Если ваша система сделает что-либо, что не понравится наставнику, то он заберет управление на себя и отгонит машину в безопасное место, или домой.
Наставник будет вести машину осторожно. Это значит, что по этой методике вы не сможете создать что-либо агрессивнее него. Если наставник говорит, что нужно остановиться, а ваша программа говорит, что надо ехать, то ваша программа выключается. Человеческое управление может иметь больший приоритет, чем наставник. Функции, которые требуют больше разрешений, чем может дать наставник, неосуществимы для разработки и тестирования на дорогах мастерами-одиночками, хотя они все еще могут работать над ними в симуляторах.
По сути, симуляторы – это спасение инженеров-любителей, особенно учитывая, что симуляторы становятся лучше и лучше. Они существуют для быстрого нахождения проблем и неудачных решений в новых патчах, а также для того, чтобы перед выездом на дороги, машина тренировалась на виртуальном пробеге во множество миль.
Скорее всего наставник должен быть основан на сертифицированной версии того же набора открытого программного обеспечения, который модифицирует инженер-любитель. И по сути, если программист выяснит, что действие, которое отказался выполнять наставник, на самом деле безопасно, то он сможет отправить сообщение об ошибке (и даже исправление), и в конечном итоге (хотя далеко не сразу), наставник может быть улучшен обучен большему количеству вариантов поведения в тестируемых программах.
Безопасность представляет особую проблему. Модифицированное программное обеспечение может иметь дыры в безопасности, которые позволят злоумышленнику взять контроль над наставником. Нам нужно, чтобы наставник работал качественно, но другой уровень качества – способность наставника распознать вредоносную программу, которая пытается его обмануть. Любая уязвимость наставника, которая может привести к тому, что он допустит какое-либо небезопасное действие, может быть проблемой.
Нужда в кустарных мастерах
Нам нужны те, кого в автомобильном мире называют кустарными мастерами, или, как мы называем их в компьютерном мире, хакеры (использование слова “хакер” в смысле компьютерного преступника используется в основном за пределами сообщества разработчиков программного обеспечения. В рамках сообщества это слово имеет такое же значение как и “кустарный мастер”, а эксперт по компьютерным преступлениям или взломам это еще одна разновидность хакеров). Все большие автомобильные компании начинали свой путь как кустарные производства. Во многих штатах даже существуют законы, которые делают особые исключения из обычных правил безопасности транспортных средств для уникальных средств передвижения, созданных кустарными мастерами, при условии, что они соответствуют основным транспортным правилам безопасности. И это работает, особенно потому, что у этих транспортных средств всегда есть водитель, и как правило, это их создатель. В мире программного обеспечения огромную долю инноваций внесли хакеры (в не-криминальном смысле).
Мы даже хотим поддержать идею небольшой автомобильной компании, которая сможет распространять или продавать заинтересованным клиентам модифицированные системы для машин-роботов со встроенным наставником. В отличие от клиентов других областей, эти будут подвергать риску и других людей, а не только себя, но для инноваций нужен и малый бизнес.
Наставника вроде того, который был описан, пока не существует. Но он должен быть в наших планах, поскольку мир беспилотных автомобилей без инноваций кустарных мастеров и хакеров будет менее развитым и безопасным, чем мир, в котором только большие компании могут вносить свой вклад.
Мы, пожалуй, самый сильный в России центр компетенций по разработке автомобильной электроники. Сейчас активно растем и открыли много вакансий (порядка 30, в том числе в регионах), таких как инженер-программист, инженер-конструктор, ведущий инженер-разработчик (DSP-программист) и др.
У нас много интересных задач от автопроизводителей и концернов, двигающих индустрию. Если хотите расти, как специалист, и учиться у лучших, будем рады видеть вас в нашей команде. Также мы готовы делиться экспертизой, самым важным что происходит в automotive. Задавайте нам любые вопросы, ответим, пообсуждаем.
Читать еще полезные статьи:
- McKinsey: переосмысляем софт и архитектуру электроники в automotive
- Очередная война операционок уже идет под капотом автомобилей
- Программный код в автомобиле
- В современном автомобиле строк кода больше чем…
Автор: Itelma