Автономные автомобили на open source

Original author: Brad Templeton
  • Translation
(Статья Forbes 2019 года )

image
Брэд Тэмплтон с ранней версией Стэнфордского робокара.

Об авторе: Брэд Тэмплтон — инженер-программист, евангелист робоавтомобилей с 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. Это работает, но только для серьезных разработчиков, которые готовы вложить множество времени и ресурсов, и не работает для любителей, которые просто хотят внести изменения в программное обеспечение своих автомобилей.

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

«Наставник»


Также возможно создания своего рода программного “наставника”. Это может быть простая сертифицированная программа, которая представляет собой безопасного автоматизированного водителя. По сути, эта программа может быть взята из ядра признанной, высоконадежной системы, у которой есть все сертификаты безопасности. Ваша машина будет работать на собственной измененной системе, но в то же время “наставник” будет постоянно наблюдать за ее работой. Если ваша система сделает что-либо, что не понравится наставнику, то он заберет управление на себя и отгонит машину в безопасное место, или домой.

Наставник будет вести машину осторожно. Это значит, что по этой методике вы не сможете создать что-либо агрессивнее него. Если наставник говорит, что нужно остановиться, а ваша программа говорит, что надо ехать, то ваша программа выключается. Человеческое управление может иметь больший приоритет, чем наставник. Функции, которые требуют больше разрешений, чем может дать наставник, неосуществимы для разработки и тестирования на дорогах мастерами-одиночками, хотя они все еще могут работать над ними в симуляторах.

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

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

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

Нужда в кустарных мастерах


Нам нужны те, кого в автомобильном мире называют кустарными мастерами, или, как мы называем их в компьютерном мире, хакеры (использование слова “хакер” в смысле компьютерного преступника используется в основном за пределами сообщества разработчиков программного обеспечения. В рамках сообщества это слово имеет такое же значение как и “кустарный мастер”, а эксперт по компьютерным преступлениям или взломам это еще одна разновидность хакеров). Все большие автомобильные компании начинали свой путь как кустарные производства. Во многих штатах даже существуют законы, которые делают особые исключения из обычных правил безопасности транспортных средств для уникальных средств передвижения, созданных кустарными мастерами, при условии, что они соответствуют основным транспортным правилам безопасности. И это работает, особенно потому, что у этих транспортных средств всегда есть водитель, и как правило, это их создатель. В мире программного обеспечения огромную долю инноваций внесли хакеры (в не-криминальном смысле).

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

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



image

О компании ИТЭЛМА
Мы большая компания-разработчик automotive компонентов. В компании трудится около 2500 сотрудников, в том числе 650 инженеров.

Мы, пожалуй, самый сильный в России центр компетенций по разработке автомобильной электроники. Сейчас активно растем и открыли много вакансий (порядка 30, в том числе в регионах), таких как инженер-программист, инженер-конструктор, ведущий инженер-разработчик (DSP-программист) и др.

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

Читать еще полезные статьи:

НПП ИТЭЛМА
Компоненты для роботизированного транспорта

Comments 16

    +2

    Я вот тут подумал с чем бы сегодняшним можно было бы сравнить автономные автомобили на open source.


    Ну, допустим, сегодня уже не проблема купить или сделать тот же телевизор, телефон или умную розетку на open-source. То есть либо с софтом open-source, либо даже с железом, сделанным по open-source схемам. И вот это ваше open-source устройство берет и убивает кого-нибудь током, или в случае с телефоном излучает такие помехи, которые блокируют любое другое оборудование в пределах 100м.
    Кто будет нести ответственность? Это первый вопрос?
    И как думаете, как быстро вас посадят за предумышленное нарушение?


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


    В итоге я пока что-то не вижу сертифицированных open-source продуктов — именно таких, где open-source где-то был в области безопасности. И не вижу возможности их использования.

      0
      Я бы ответил так.
      Опенсорс операционная система немного лучше почти всех остальных операционок…
      Возможно, что совсем скоро, 90% всего софта (и рабочих мест программистов) будет не в смартфонах, а в тачках и тогда будет расцвет опенсорса в аутомотив.
        +1

        Linux, например, опенсорсный. Идеальная аналогия. Linux в 100500 надежнее и универсальнее проприетарной винды. Если из-за уязвимостей в линуксе был создан mirai — несет отвественность только создатель mirai. Если грохнулся ответственный сервер — то redhat, потому что все серьезные владельцы серверов покупают дистрибутив у них. Если разобьется самолет или космический корабль — то windriver, потому что достаточно сертифицированый дистр можно купить только у них

          0
          Архитектура ПК и серверов в принципе почти открытая. В ПК и серверах биос является прослойкой в закрытую часть архитектуры. Поэтому вы можете ставить линукс — который всего лишь надстройка над некоторым closed source ПО (в случае с IME вообще с своим линкусом и даже своими ядрами) которое вы никак не контролируете — но попробуйте поставить его на самый последний ноутбук на интеле и почувствуйте боль от дров тачпада какого нибудь…

          Архитектуры GSM чипсетов последних поколений закрыты совсем. GSM стек для 4G представляет собой просто адовое количество говнокода, не поддается реверсу, и поставляется вместе с чипсетом зачастую уже в скомпилированном виде. Если вам нужен телефон чтоб просто звонить — 99.9% кода будет закрытым GSM стеком и 0.1% — вашим UI с кнопочками и экранчиком и примитивным API к этому стеку. Поэтому телефон начинается не с открытых исходников а с открытого чипсета для этих исходников — а его не будет по вполне понятным причинам.

          Так же по вполне понятным причинам линукс в космическом корабле будет лишь «фотографии на флешку скидывать» c фотокамеры из магазина.

            +1

            Windriwer использовался при посадке curiosity непосредственно для управления посадочными двигателями. И, конечно, на борту марсохода не бывает всяких 4g и мутных soc по типу allwinner

              0
              Про «непосредственно управление посадочными двигателями» — откуда взялось? Все источники желтенькие и принадлежат самому windriwer. Конечно никто не спорит, что он там вообще есть… когда «флешка с фотками переполнялась» — это точно был он виноват ;)

              В настоящих то RTOS, нет даже самого понятия «переполнялось» (в составе нет устройств в которых файловая система организована так, что может переполняться, и динамического распределения памяти тоже нет — ибо это не надежно by design) вот они обычно и управляют посадочными двигателями…
            +1
            Если разобьется самолет или космический корабль — то windriver, потому что достаточно сертифицированый дистр можно купить только у них

            В том-то и дело, что за Linux Windriver никакой ответственности брать не хочет:


            This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

            Вы можете спокойно загрузить этот Linux с Гитхаба и использовать в своих проектах, а Windriver просит бабло только за коммерческую поддержку. https://www.windriver.com/products/linux/
            Но ответственность будете нести вы и только вы.


            Ну и еще маленькое такое но — Linux в safety-critical применениях? Что-то есть, но что это?


            И помоему вот это напрямую относится к данной статье, но об этом в ней нет никакого упоминания.

              0

              На windriver сажали curiosity

                0

                WindRiver — это фирма вообще-то.
                Она выпускает vxWorks и Линукс. vxWorks — это настоящая ОСРВ, которая и использовалась в Curiosity и еще куче safety-critical применений, потому что сертифицирована для них.


                А Linux — это совершенно другой продукт от WindRiver и Open Source Community. Это не ОСРВ и естественно никакой сертификации под safety critical у него нету.

          0
          Самосертификация

          В наше время регулирующие органы придерживаются политики невмешательства

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

          внутреннее повреждение глаза лазером
          image
            0

            В результате самовольной модификации табуретки пользователь может упасть с нее и сломать себе шею. Если не сертифицировать на безопастность крепление цветочного горшка на балконе, он может упасть кому-нибудь на голову. И т. д.

              0
              Повреждение сетчатки глаз — опасно тем, что его можно вовремя не заметить, а заметить тогда когда станет слишком поздно.
              А самое худшее, что в случае мак'дака поставившего слишком сильный лазер пострадает не только он, но и все случайные водители и пешеходы, мимо которых этот мак'дак проехал.
            +4
            В России нужно начинать с легализации «кустарных» мастерских классических авто. Сейчас чтоб выехать на дорогу производитель должен отдать в НИИ 2 автомобиля, чтоб разбить их о стену — «Хоп!» и все мастерские кто не осиливает со старта хотя-бы сотню однотипных авто в год (чтоб размазать себестоимость 2х трупов) оказываются неудел. Нет кастомных классических авто — нет и рынка кастомных автои их систем => нет смысла заниматься кастомизацией любых систем авто являющихся «изменениями ТС».
              0
              Ну разбивать вроде не обязательно если экземпляр единичный
              но факт что они категорически против самодельщиков и пробить стену получается лишь очень у немногих и через связи и бабло
              p.s. всё ради автоваза родимого
              +1

              В статье Яндекса было упоминание, что gps сам по себе без дополнительных наземных станций не достаточно точен для роботов, как такой опенсорс позиционируется на дороге?

                0
                Про ответсвенность:
                Если разобьется самолет или космический корабль — то windriver, потому что достаточно сертифицированый дистр можно купить только у них

                А в чем выразиться эта ответственность?

                Only users with full accounts can post comments. Log in, please.