Беспилотные автомобили на Arduino, Raspberry Pi

Самоуправляемые автомобили на Arduino, Raspberry Pi

Беспилотные автомобили на Arduino, Jetson Nano и Raspberry Pi появились! Откройте для себя проекты, которые помогают ускорить этот путь в будущее.

Микрокомпьютер Raspberry Pi 5 На борту Raspberry Pi 5 уже есть четыре порта USB, беспроводные интерфейсы Wi-Fi/Bluetooth и полноценный гигабитный Ethernet, чтобы сразу приступить к работе.

На пороге новой автомобильной эры дорога в будущее теперь вымощена не только асфальтом, но и обещаниями искусственного интеллекта (ИИ) и новаторских творческих решений.

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

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

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

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

На старт! Внимание! Марш!

Техническая информация

Некоторые автомобили более автономны, чем другие
Некоторые автомобили более автономны, чем другие (Источник: Henry3DPrinting на Printables)

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

  • Уровень 0 — без автоматизации: Автомобиль не имеет никакой автоматизации. Водитель отвечает за все функции управления, включая рулевое управление, ускорение, торможение и принятие решений.
  • Уровень 1 — помощь водителю: Автомобиль может быть оснащен системой помощи водителю, например адаптивным круиз-контролем или системой контроля полосы движения. Однако водитель всегда должен быть начеку и готов взять управление на себя.
  • Уровень 2 — частичная автоматизация: Автомобиль может одновременно контролировать рулевое управление, ускорение и торможение, как в продвинутой системе поддержки водителя. Однако водитель должен держать руки на рулевом колесе и быть готовым в любой момент взять управление на себя.
  • Уровень 3 — условная автоматизация: Автомобиль может работать автономно в определенных условиях или среде (например, на шоссе). Водитель должен быть готов взять управление на себя по запросу системы, но может быть отвлечен от управления автомобилем на время работы системы.
  • Уровень 4 — высокая степень автоматизации: Автомобиль может работать автономно в различных условиях и сценариях, например, в пределах географически определенной зоны (например, в городах или зонах совместного использования автомобилей). Водителю не нужно постоянно находиться рядом, а система может управлять автомобилем в сложных сценариях без вмешательства человека.
  • Уровень 5 — полная автоматизация: Автомобиль полностью автономен и не требует вмешательства водителя. Нет необходимости в рулевом колесе, педалях или ручном управлении, и автомобиль может работать в любых условиях без участия водителя-человека.

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

Рекомендации

Остановитесь и прочитайте с самого начала!
Остановитесь и прочитайте с самого начала! (Источник: Three_Body_Problem на сайте Printables)

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

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

  • Четко определите свои цели: Прежде чем начать, необходимо определить, чего вы хотите добиться от своего проекта. Хотите ли вы изучить основы автономной навигации? Хотите ли вы разработать более сложную систему с расширенными возможностями, такими как распознавание объектов и планирование маршрутов? Четкое видение поможет сориентироваться в выборе аппаратного и программного обеспечения.
  • Выбор подходящего набора или машинки: Выбор подходящего набора для робототехники или игрушечного автомобиля — важный шаг. Убедитесь, что выбранная вами модель совместима с инструментами и компонентами, которые вы собираетесь использовать. Наборы для робототехники с хорошей документацией и поддержкой сообщества могут быть чрезвычайно полезны для новичков, в то время как модифицированные игрушечные автомобили предлагают более индивидуальный и экспериментальный подход.
  • Выбирайте качественные компоненты: Чтобы добиться удовлетворительных результатов, выбирайте качественные компоненты, обеспечивающие надежную работу. Периферийные устройства, такие как камеры, лидарные и ультразвуковые датчики, а также исполнительные механизмы и контроллеры, играют важнейшую роль в создании эффективной автономной системы. Точность датчиков и надежность исполнительных механизмов влияют на способность автомобиля точно ориентироваться.
Некоторые проекты очень сложные - справитесь ли вы с задачей?
Некоторые проекты очень сложные — справитесь ли вы с задачей? (Источник: jmoreno555 на Instructables)
  • Изучайте и экспериментируйте с алгоритмами ИИ: Реализация алгоритмов искусственного интеллекта — это сердце любого проекта беспилотного автомобиля. Ознакомьтесь с такими методами, как машинное обучение, обработка изображений и алгоритмы планирования пути. Используйте популярные библиотеки и фреймворки, такие как TensorFlow, OpenCV и Robot Operating System (ROS), чтобы упростить интеграцию и эксперименты.
  • Разрабатывайте и тестируйте по очереди: Начните с базового прототипа и протестируйте его в контролируемых условиях, прежде чем переходить к более сложным сценариям. Сбор данных во время тестирования необходим для точной настройки и улучшения алгоритмов и производительности транспортного средства. При необходимости пересматривайте и изменяйте свои подходы.
  • Общайтесь с сообществом: Участие в онлайн-форумах, посвященных робототехнике и самоуправляемым автомобилям, может дать ценную информацию и поддержку. Обмен опытом поможет вам решить проблемы, получить предложения и быть в курсе последних тенденций и технологий.
  • Учитывайте этические аспекты и вопросы безопасности: Даже для небольших проектов важно продумать этические аспекты и вопросы безопасности. Убедитесь, что ваш проект не только функционирует должным образом, но и работает в безопасной и ответственной манере. Не забывайте о таких вопросах, как конфиденциальность данных, собранных датчиками, и безопасность эксплуатации автомобиля.

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

Миниатюрный беспилотный автомобиль

Изображение: Миниатюрный автономный автомобиль
Осваивайте новые навыки, чтобы научить автомобили быть умнее (Источник: YouTube)

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

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

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

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

Wheelson

Начинаем с простого
Начинаем с простого (Источник: Arduino Store)

Wheelson от CircuitMess — это увлекательный набор для тех, кто хочет познакомиться с миром самоуправляемых автомобилей и программирования в практической и образовательной манере.

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

Интеграция Bluetooth и Wi-Fi позволяет автомобилю подключаться к другим беспроводным устройствам, а его ЖК-дисплей обеспечивает отображение того, что «видит» робот, в режиме реального времени. Этот проект предлагает практический подход к STEM-образованию, позволяя пользователям программировать робота для автономной навигации либо на экране, либо с помощью Python и Circuit Blocks (аналогично Scratch), что обеспечивает визуальный и образовательный подход.

Набор можно приобрести в магазине chipdip и у других реселлеров.

Робот JetAuto ROS

Сразу к делу
Сразу к делу (Источник: Hiwonder на YouTube)

Наглядные и обучающие инструкции делают JetAuto доступным для новичков и в то же время обеспечивают сложную робототехническую платформу на базе Jetson Nano.

Благодаря поддержке Robot Operating System (ROS) пользователи могут предварительно проверить алгоритмы движения, избежать дорогостоящих ошибок и визуализировать весь процесс навигации с помощью rviz — виртуальной среды, которая точно повторяет реальный мир при тестировании программирования и поведения робота.

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

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

Эта платформа, цена которой составляет ~140000 рублей, является отличным выбором в качестве основы для образовательных ИИ-проектов, поскольку ее можно использовать и с другими платами, такими как Jetson Orin Nano или Raspberry Pi 5 — просто не забудьте уточнить, с какой платой вы будете работать, чтобы выбрать подходящий комплект.

  • Сложность: Новичок
  • Разработчик: Hiwonder
  • Страницы проекта: JetAuto ROS Robot, GitHub, Hackster (обзор)
  • Основные компоненты: SBC (Raspberry Pi 5, Jetson Nano, Jetson Orin Nano), интеллектуальные сервоприводы, лидар, 4x колеса, анодированный металлический кронштейн, 3D-камера глубины, 7-дюймовый ЖК- дисплей (опционально)

Deep PiCar

Raspberry Pi, набор и все, что вам понадобится
Raspberry Pi, набор и все необходимое (Источник: 439152626 на Instructables)

Deep PiCar — это миниатюрная копия беспилотного автомобиля, использующая Raspberry Pi в качестве основы для тестирования и разработки технологий автономного вождения.

Вдохновленный DAVE-2 от Nvidia, Deep PiCar использует глубокие нейронные сети для выполнения задач восприятия и управления в реальном времени. Автомобиль оснащен широкоугольной USB-камерой и ускорителем Google Edge TPU, который обеспечивает быструю обработку выводов машинного обучения, необходимых для автономной навигации.

Цель данного проекта — изучить возможности Raspberry Pi для поддержки автономного управления транспортным средством с помощью глубокого обучения. Проект включает в себя сборку робототехнического набора, установку программного обеспечения, такого как OpenCV и TensorFlow, а также настройку электронных компонентов и двигателей.

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

Набор был обновлен и последняя его версия PiCar-X, доступна по цене ~17000 рублей. Этот новый набор совместим с Raspberry Pi Zero, 3B, 3B+, 4 и 5, и по нему есть несколько инструкций.

  • Сложность: Средний
  • Разработчик: SunFounder
  • Страницы проекта: Instructables, GitHub
  • Основные компоненты: Raspberry Pi (Zero W, Zero 2 W, 3B, 3B+, 4 или 5), сопроцессор Google Edge TPU, USB-камера, адаптер HDMI

Autonomous Driving Car V2

Самодельная машинка с открытым исходным кодом
Самодельная машинка с открытым исходным кодом (Источник: Infineon Team на Hackster)

Автономный автомобиль V2 от Infineon Team предоставляет возможность практического обучения автономному вождению, искусственному интеллекту и нейронным сетям.

Используя Raspberry Pi для принятия решений и камеру для съемки окружающей среды, автомобиль управляется микроконтроллерной платой XMC, которая управляет рулевым управлением и скоростью. Используя платформу Donkey Car с открытым исходным кодом, пользователи могут обучать и внедрять модели машинного обучения на доступном оборудовании, таком как Raspberry Pi, продвигая развитие беспилотных автомобилей практическим и образовательным способом.

Проект демонстрирует интеграцию между Raspberry Pi и микроконтроллером XMC, используя связь I2C для координации движения автомобиля. Управление двигателями и серводвигателями осуществляется с помощью ШИМ-сигналов, а обученная нейронная сеть обрабатывает изображения, полученные с камеры, чтобы определить дальнейшие действия автомобиля.

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

Самодельная машинка с искусственным интеллектом

Красивый спортивный вид для вашей передовой технологии
Красивый спортивный вид для ваших передовых технологий (Источник: jmoreno555 на Instructables)

Этот проект еще не завершен, но он может быть интересен, если вы ищете более смелый проект — довести автономную машинку до масштабной модели, одновременно разбираясь с алгоритмами.

Автомобиль оснащен двумя камерами: 1,2-мегапиксельная камера с широкоугольным объективом и стереоскопическая камера, которая может определять расстояние до других объектов. Также есть датчики расстояния — инфракрасный датчик Sharp, либо лазерный модуль VL53L0.

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

Автор также содержит множество советов по проектированию и 3D-печати соответствующих деталей. В любом случае, там есть множество STL-файлов для копирования, а также предложение выбрать ABS, PETG или нейлон, если требуется большая прочность, чем может обеспечить PLA.

На данный момент мы поделились только аппаратной частью проекта. В шаге 64 (да, это очень подробное руководство) автор объясняет, что вместо использования лидара, как в других моделях, он решил использовать камеры в сочетании с устройством Google Coral для обнаружения полос движения, дорожных знаков, светофоров и других объектов на высокой скорости, подобно подходу Tesla. Это лишь один из нескольких упомянутых аспектов, которые могут помочь создателям в дальнейшем развитии программной части этого проекта.

Источник
Николай

Я всегда рад вашим комментариям, предложениям или новостям из первых уст.

Оцените автора
Добавить комментарий