Автор: Дж. М. Фишер, технический директор, встраиваемые системы, и Чарли Муни, старший инженер-программист, встраиваемые системы

В круизных беспилотных транспортных средствах датчики используются в качестве глаз и ушей транспортного средства. Когда мы представили Cruise Origin в начале этого года, мы продемонстрировали шарнирный датчик, который может поворачиваться на 360 градусов и видеть в свете или в кромешной тьме со сверхчеловеческой скоростью. Наши сенсоры смогут видеть за пределами возможностей человека и быстрее и безопаснее реагировать на то, что люди могут видеть.

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

Два радара с шарнирно-сочлененной рамой расположены перед передней стойкой с обеих сторон наших машин Track 3. У каждого из них есть радар, который наше программное обеспечение для автономного вождения использует, чтобы разумно смотреть вперед (и назад, и в сторону) во время различных маневров. Мы используем радары с шарнирно-сочлененной рамой для безопасного выполнения определенных маневров, таких как незащищенные левые повороты.

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

Почему артикулирующий радар?

Прежде чем мы перейдем к техническим деталям того, как заставить ARA работать, давайте поразмышляем о том, что такое радары дальнего действия (LRR), как наши AV их используют, и почему мы решили использовать шарнирный радар и добавить дополнительную сложность. движущихся частей.

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

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

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

Есть два основных подхода к решению такой проблемы:

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

У этого подхода есть очевидное преимущество: вы никогда не упустите свой шанс, а также его очень просто использовать и поддерживать. Вы фактически создаете один мегасенсор.

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

  • В качестве альтернативы вы можете установить один датчик, но быстро перемещать его, чтобы указывать в нужном вам направлении в любой момент. В данном случае это проявляется в виде подвижного радара.

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

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

Вступая в действие

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

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

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

Имея конкретное представление о том, где искать, Embedded Systems отправляет команды, чтобы указать ARA в указанном направлении. Мы поддерживаем программное обеспечение в самоуправляемом мозгу, который действует как мост от концептуального мира чистой логики к физическому миру металла, проводов, резины и пластика - «мост ARA».

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

Чтобы команда достигла электродвигателя, она должна пройти путь через электрическую систему транспортного средства, чтобы добраться до узла двигателя. Этот путь пересекает несколько протоколов (механизмы CANOpen, Ethernet и IPC) и проходит через несколько электронных блоков управления до того, как двигатель действительно вращается. Этот путь принадлежит Embedded Systems, и наша задача - убедиться, что каждая команда точно и надежно попадает на другой конец. Информация о позиционном кодировщике, состояния ошибок, отладочная информация и диагностические данные должны быть переданы обратно по тому же пути в AV-мозг.

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

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

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

Поскольку безопасность является главным приоритетом для всех команд в Cruise, команда Embedded Systems разрабатывает и поддерживает программное обеспечение, которое оценивает, находятся ли ARA в хорошем состоянии с момента запуска автомобиля.

При запуске

Каждый раз, когда наш самоуправляемый мозг загружается, программное обеспечение Embedded Systems проходит через батарею проверок, прежде чем мы активируем ARA, в том числе:

  • Подключен ли и доступен ли весь канал связи от главного компьютера к контроллеру мотора и все промежуточные ступени?
  • Двигатель правильно откалиброван?
  • Может ли ARA двигаться во всем диапазоне движений?
  • Какое сопротивление возникает при перемещении ARA? Возможно, он сломан, заклинивает или изнашивается?
  • … И многие другие тесты и диагностика, чтобы убедиться, что система безопасна в эксплуатации.

Во время выполнения

После завершения первоначальных проверок наше программное обеспечение запускает систему мониторинга, которая постоянно проверяет наличие любых фактических или потенциальных неисправностей. Они могут включать:

  • Потеря связи с промежуточными шлюзами по каналам связи или с самим контроллером мотора
  • Повышенное или пониженное напряжение
  • Температуры различных компонентов вне допустимого диапазона
  • Слишком высокие рабочие токи двигателя.
  • …и многие другие

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

Заглядывая вперед на чистый путь

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

Присоединяйтесь к нам

Хотите, чтобы вам заплатили за то, чтобы подумать о том, как беспилотный автомобиль может отреагировать на отказ датчика? Как максимально эффективно распределить данные датчиков между несколькими ЭБУ? Как настроить наше встроенное ядро ​​ОС так, чтобы оно было максимально эффективным? Как автомобиль может обнаружить и отреагировать, чтобы все наши датчики и ЭБУ работали во время движения под дождем, песком или снегом?

Команда Embedded Systems живет на C, C ++ и HDL в мире: ECU, FPGA, ASIC, «голого железа», ядра Linux, HAL, драйверов устройств и всевозможных встроенных приложений. Мы часто обсуждаем физический, канальный, сетевой и транспортный уровни, используя глубоко встроенные интерфейсы, такие как CAN, I2C, 100BASET1, UART, LIN, а также высокоскоростные интерфейсы, такие как FPD-Link, PCIe и 10GBASE. -Т.

Мы нанимаем"! Присоединяйтесь к нам в решении новых задач каждый день.