Автор: Эрик Гундерсен

На прошлой неделе я встретил Криса Андерсона, генерального директора DIY Robotics, и часами рассказывал о его последнем проекте: самоуправляемые роботизированные автомобили . TL; DR Крис создает новую площадку для разработчиков, чтобы начать работу над технологиями самоуправляемых автомобилей, снова объединяя проекты с открытым исходным кодом и общественные мероприятия в основу новой отрасли. Я не мог перестать думать о том, насколько глубоко это движение, и попросил Криса рассказать, почему он так взволнован беспилотными автомобилями, робототехникой, работой в Китае и его видением будущего.

Хорошо, что это за «Оселка»?

Осел - одна из двух стандартных платформ автономных автомобилей, которые мы используем в гонках DIY Robocars. Обе модели стоят менее 200 долларов и могут быть собраны за день. Они используют стандартные компоненты, такие как автомобильные шасси RC и процессоры RaspberryPi, и спроектированы так, чтобы быть максимально простыми, потому что дело не в машине!. Вместо этого все дело в программном обеспечении. Две платформы представляют собой два основных технических пути к автономным автомобилям: машинное обучение и компьютерное зрение.

Осел - это компьютер с машинным обучением, и он использует сверточные нейронные сети (CNN), чтобы научиться водить, наблюдая за тем, как человек-водитель завершает курс, а затем «клонирует поведение», коррелируя то, что видит камера, с управляющими сигналами человек. Он делает это с помощью программного обеспечения Google TensorFlow CNN (с интерфейсом Keras) с обучением в облаке (AWS) для создания модели нейронной сети, которая затем запускается в реальном времени на автомобиле на RaspberryPi 3.

Наша другая стандартная платформа использует то же шасси, но вместо RaspberryPi и машинного обучения она использует доску компьютерного зрения OpenMV и ориентирована исключительно на видимую часть. Это основано на программном обеспечении OpenCV, которое ищет линии на дороге, определенные цвета и другие формы, чтобы определить, где находится трек.

Прямо сейчас два подхода - шея и шея, и оба, вероятно, победят самого быстрого человека в течение нескольких месяцев:

Фронтальные камеры + сонар + лидар + радар + GPS встречает TensorFlow и ROS - как выглядит набор инструментов для DIY Robocars?

Мы стараемся сделать это простым, поэтому платформы - это просто камера и процессор на борту (либо камера RaspberryPi и Rasperry Pi 3, либо комбинированная плата OpenMV камера / процессоры).

Для версии RPi (ML) программный инструментарий выглядит следующим образом:

  • В машине: стандартный RaspberryPi Linux с OpenMV и TensorFlow и некоторыми библиотеками Python для Donkeycar.
  • На вашем ноутбуке: Похожие: TensorFlow, Keras, приложение Donkeycar
  • В облаке: TensorFlow и Keras

Поток следующий:

  1. Управляйте автомобилем вручную, управляя им с помощью контроллера Playstation или мобильного веб-приложения, в то время как программное обеспечение записывает изображения и ваш ввод.
  2. Перенесите эти парные наборы данных изображения / контрольного изображения в облако AWS.
  3. Обучите TensorFlow на этом наборе данных, который создаст модель CNN.
  4. Загрузите эту модель в RaspberryPi.
  5. Сделайте так, чтобы автомобиль работал автономно, при этом CNN принимает данные с камеры и генерирует команды рулевого управления и газа.

Для версии OpenMV (CV) программное обеспечение намного проще: просто скрипт Python, работающий на плате OpenMV.

Если кто-то хочет построить собственный осел, где им начать читать и покупать запчасти?

Для версии с машинным обучением вы можете начать здесь. Если вы хотите, чтобы версия CV была здесь (или выберите супер-простой Minimal Viable Racer, который стоит около 80 долларов, здесь).

Каково техническое пересечение вашей работы над беспилотными автомобилями и вашей повседневной работы по созданию программного обеспечения для дронов?

Ответ - «не так много, как я ожидал». На первый взгляд летающие роботы и катящиеся роботы кажутся похожими: оба используют датчики, процессоры и код, чтобы ощущать мир и перемещаться в нем. Но дроны, которые обычно работают в широко открытом трехмерном пространстве (воздухе) на открытом воздухе, в первую очередь основаны на классической робототехнике: инерционное зондирование для измерения ориентации со стандартной теорией управления для поддержания заданного положения и GPS для навигации.

С другой стороны, автомобили работают в многолюдной 2D-среде (на дорогах) и не могут рассчитывать только на GPS, чтобы знать, как ориентироваться. Поэтому им необходимо использовать камеры, лидары, радары и другие способы для исследования окружающей среды вокруг них, как это делают наши глаза. Для этого нужна совершенно другая отрасль робототехники, которая сейчас только созревает: компьютерное зрение и AI / ML.

Десять лет назад, когда компоненты внутри iPhone (датчики MEMS, процессоры ARM, GPS, беспроводная связь) сделали классическую робототехнику дешевой и простой, мы смогли достоверно поставить буквы DIY перед словом дроны и создать сообщество. », Который заново изобрел эту отрасль снизу вверх. Это были не самолеты без пилотов, а смартфоны с пропеллерами. Сегодня в воздухе витают миллионы продвинутых потребительских и коммерческих дронов, которые прибыли из Кремниевой долины / Шензена, переосмысливая будущее авиакосмической промышленности.

Сегодня новое поколение технологий (RaspberryPi 3, TensorFlow, AWS) позволяет нам делать то же самое: ставить буквы DIY перед беспилотными автомобилями. Таким образом DIYRobocars. К сожалению, мы не можем повторно использовать большую часть нашего программного обеспечения для дронов (которое сейчас процветает в Dronecode, отраслевом консорциуме с открытым исходным кодом, который я основал и теперь работает как часть Linux Foundation) по вышеуказанным причинам. Итак, мы начинаем с этих более современных подходов, основанных на AI / CV.

Хотя техническая основа иная, мы надеемся, что эффект будет таким же. Добавляя слово «сделай сам» к автономным автомобилям, эти буквы приносят с собой некоторые ключевые отличия от остальной отрасли:

  • Дешево (200 $)
  • Легко (без особых навыков)
  • Безопасно (в масштабе 1/10 никто не пострадает и на борту нет людей)
  • Легально (внутри, а не на улице)
  • Веселье (гонки!)

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

На протяжении столетия автомобильная промышленность вводила новшества посредством гонок; большая часть современной автомобильной техники зародилась на трассах Формулы-1 или Монте-Карло. Но с автономными автомобилями все было наоборот: ехали медленно и осторожно. Вот почему сегодня на улицах полуавтономные автомобили ездят, как маленькие старушки. Мы надеемся, что наш маломасштабный подход к автономности, не требующий пассажиров, может открыть другой путь к производительности и безопасности, еще один путь к проворности и агрессивному избеганию опасностей.

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

Как вы думаете, автомобильная промышленность начнет больше использовать технологии с открытым исходным кодом по мере перехода к полуавтономному вождению?

Уже есть:

И еще десятки ...

Участвуйте в гонке на собственной ослике в Locate. На прошлой неделе мы только начали регистрацию, и теперь вы можете претендовать на место для себя и своей команды. На этой неделе мы запустим наш Donkeycar Maps SDK, дающий каждой команде 6 недель на добавление векторных карт HD, закодированных с геометрией трека и библиотек для декодирования координат трассы гонки. Более подробная техническая информация + критерии оценки в блоге.