Как я построил беспилотный автомобиль, который ездит по моему дому

Я очень рад написать этот пост, так как он посвящен тяжелой работе, которую я проделал за последние 4 месяца.

Фон и мотивация

Я провел большую часть своих последних 2 лет, изучая машинное обучение, сверточные нейронные сети и робототехнику. Я сделал это с помощью онлайн-курсов, личных проектов и заданий по наставничеству/обучению. Мое последнее преподавательское задание было инструктором по самоуправляемым автомобилям. Там я провел около 4 месяцев, посещая занятия в классе по подкомпонентам, связанным с разработкой автомобиля с автоматическим управлением.

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

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

При поиске подсказок в Интернете я наткнулся на MIT RACECAR. В нем размещены самые современные датчики и вычислительное оборудование поверх радиоуправляемого автомобиля в масштабе 1/10 (что означает 1/10 размера реального автомобиля).


Гоночная машина Массачусетского технологического института

Эта платформа используется в нескольких курсах в Массачусетский Институт Технологий. Один из таких курсов Робототехника: наука и системы. Этот курс обучает основам робототехники — восприятию, планированию движения и контролю. Ассистенты преподавателя этого курса были достаточно любезны, чтобы поделиться своим опытом работы на этой платформе в серия постов в блоге. Преподаватели курса открыли исходный код некоторых компонентов программного стека и всего аппаратного стека. Вы можете найти их здесь.

Есть и другие проекты, вдохновленные MIT RACECAR, в которых есть некоторая документация, которая поможет вам построить автомобиль, по крайней мере, в том, что касается аппаратной части. Это было идеально для меня. Сообщения в блогах и онлайн-репозитории не есть вся необходимая информация, но достаточная для начала.

Сроки и бюджет

Стоимость MIT RACECAR составляет около 4500$!!!. Это было выходом из моего бюджета. Взяв пример с других подобных проектов, я решил, что могу сделать некоторые замены оборудования, чтобы снизить стоимость до менее 1000 долларов (подробнее об этом в следующем посте).

По времени я рассчитывал, что это займет у меня около 2 месяца для разработки этого автомобиля. Мне потребовалось больше времени, чем предполагалось, чтобы полностью ознакомиться с Операционная система робота или сокращенно ROS, которая составляет основу программного обеспечения. Неожиданные отказы компонентов и задержка с получением датчиков (их пришлось импортировать) еще больше увеличили время разработки. Я также потратил немало времени, выясняя, как планировать траекторию движения и управлять двигателем автомобиля. Любой автономный робот с учетом его текущего местоположения и цели должен планировать путь с учетом своих физических ограничений. Автомобиль имеет конечный радиус поворота и не может свободно двигаться во всех направлениях. Это накладывает ограничения на пути, реализуемые автомобилем. Почти все планировщики пути с открытым исходным кодом предназначены для всенаправленных роботов, т.е. роботов, которые могут свободно двигаться в любом направлении. Это была сложная часть, но я в конце концов понял это (подробнее об этом в следующем посте). Учитывая все эти факторы, на разработку этой машины у меня ушло 4 месяца!! Вдвое больше времени, чем я запланировал!!

Результат

Результат стоил потраченного времени 😃 Посмотрите это видео, где я заставляю машину бродить по моему дому:

Увидеть машину в действии

Вы можете видеть, что автомобиль имеет возможность двигаться назад и корректировать себя, если он промахивается или сбивается с пути. Я особенно горжусь тем, как он выполняет серию поворотов вперед и назад, чтобы развернуться на 180 градусов после достижения одного конца дома.


Следующий

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

  • Другие подобные проекты, форумы, учебные пособия и сообщения в блогах, которые помогли мне в этом процессе. Видеть эта почта.
  • Замена оборудования для снижения стоимости до менее 1000 долларов. Видеть эта почта.
  • Операционная система робота (англ.РОС), средства моделирования и визуализации
  • Пакеты с открытым исходным кодом для локализации, планирования пути и контроля
  • Выяснение части проекта, связанной с планированием пути и управлением двигателем.

Похожие записи

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *