[Разработка робототехники, Робототехника, DIY или Сделай сам] Собираем свой маленький беспилотник

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
11-Фев-2021 22:32

Будем делать вот такой, маленький, как на картинке, беспилотный автомобиль.
Вот так выглядят маленькие беспилотникиКак я дошёл до этогоМне всегда были интересны темы беспилотников и роботов, но руки до такого не доходили - боялся слишком большого объёма навыков, которые потребуются для этого.В марте-апреле 2020го года, когда сидение дома уже порядком поднадоело, понял, что я созрел для беспилотников. И, вдохновлённый статьёй Беслана, принялся изучать вопрос и заказывать необходимые комплектующие на Али и в других магазинах.Приезжали заказы в разное время, поэтому, из всего, что попадало под руку, собирал первые версии беспилотника (тогда ещё ни разу не беспилотного).
Первые шагиНачиналось всё с черепахоподобного поделия из картона, котому требовался сетевой провод. Провода от двух веб камер были перетянуты кабельными стяжками. А машинка не была соединена с компьютером, и я управлял ей с радиопульта от RC машинки.В качестве мозга для беспилотника я выбрал Nvidia Jetson Nano Developer kit, а в качестве тачки - Remo Hobby S-Max - это то немногое, что осталось в беспилотнике по сей день.
Рабочий прототип из картона и макетных платЗатем машинка стала обрастать новыми компонентами: появились беспроводная сеть, лидар, IMU и остальные.В процессе добавления я осваивал кучу нового:
  • ROS
  • Вспоминал/изучал C++
  • Учился работать с разными устройствами
  • Осваивал нейронные сети и машинное обучение
  • Узнавал про алгоритмы, специфичные для роботов и беспилотников
  • Паял, резал, клеил и всячески работал руками и головой
Когда картон и макетные платы стали слишком замедлять процесс - приобрёл недорогой, но большой 3D принтер, а провода спаял с нужными разъёмами.Сперва спроектировал всё из картона и соплей (но с котиком)
Почти рабочий прототипА потом уже сделал корпус из пластика. В процессе пришлось освоить проектирование в CAD (использовал FreeCAD) и разобраться с настройкой принтера.
Потом писал алгоритмы, исправлял баги и добавлял датчики.Что получилосьПлатформа, для которой вы можете писать различные алгоритмы по исследованию, картографированию, распознаванию и другие - датчиков для этого хватает, а код можно писать на питоне прямо в браузере.Тут есть:
  • камера (ночного видения), что бы смотреть и распознавать объекты
  • однолучевой лидар и лазерные датчики расстояния, что бы строить карту стен и других препятствий
  • управление машинкой, что бы ехать, куда хочется
  • колёсная одометрия и IMU, что бы понимать куда вы заехали
Уже есть несколько готовых скриптов (Jupyter notebook'ов):
  • что бы просто поуправлять машинкой с джойстика, глядя при этом на картинку с камеры и на вид сверху, построенный по лидару
  • беспилотный режим: машинка сама исследует помещение, строит его карту и ищет жертву живность (людей, кошек и собак), а, найдя такой объект, - следует за ним
Я потратил много времени и оттоптал много разных граблей и велосипедов, и теперь хочется поделиться своим опытом и наработками с сообществом.Что требуется (список компонентов)
  • RC машинка Remo Hobby Smax 1:16 RH1635
  • Контроллер мотора, у меня такой: SURPASS HOBBY KK 35A ESC Waterproof Electric Speed Controller for 1/16 RC Car Brushless Motor Power system
  • Одноплатный компьютер Nvidia Jetson Nano Developer Kit
  • Микро SD карта на 64 GB (возможно, влезет и на 32)
  • wi-fi карточка типа такой и пара антен с IPEX разъёмом (USB свистки с wi-fi показали себя очень плохо)
  • Два датчика Холла типа KY-003 для Arduino
  • магнит примерно такого размера: 20x3x2 мм
  • камера, работающая с Jetson Nano; у меня IMX219 8MP Infrared Night Vision 160 Degree FOV + 2 Infrared LED Lights
  • система питания для jetson'а типа T208 или T200 на 18650 акумуляторах и сами аккумуляторы или повербанк (но тут нужно брать с хорошим током и нужно будет stl модельку для корпуса под него исправить)
  • однолучевой лидар типа YDLIDAR X2L
  • IMU типа Bosh BNO055
  • ШИМ плата PCA9685 для соединения контроллера двигателя и Jetson'а
  • Конвертер логических уровней для преобразования из 5V в 3.3V и обратно
  • короткий USB - USB-C дата кабель (что бы заменить слишком длинный кабель от лидара)
  • (опционально) два датчика расстояния; у меня VL53L0X (6 pin)
  • доступ к 3D принтеру
  • провода, коннекторы, стяжки, инструменты и т.д.
  • руки, которые смогут всё это соединить
Более подробно и со ссылками есть на github проекта.Как собратьСделал туториал по сборке в виде нескольких видео.Там же видео проездов и обсуждение задач и проблем.Часть 1. Рассказываю, что и зачем делаю, соединяю основные компоненты.Извините, данный ресурс не поддреживается. :( Часть 2. Паяю, соединяю компоненты проводами.Извините, данный ресурс не поддреживается. :( Часть 3. Гоняю, рассказываю про софт и алгоритмы.Извините, данный ресурс не поддреживается. :( Часть 4. Запускаю два беспилотника вместе; добавляю лазерные сенсоры, что бы они друг друга виделиИзвините, данный ресурс не поддреживается. :( СсылкиКод, STL модели для печати, описание и ссылки есть на github проекта.Видео есть на моём канале, там же будут выходить новые серии.Обсуждение этого и других интересных проектов роботов и беспилотников в telegram канале.Что дальшеБуду дорабатывать алгоритмы:
  • дотюню/улучшу текущие
  • добавлю лидарную одометрию (ранее не успел допилить NDT, а теперь можно будет доделать)
  • добавлю салки/прятки с кошкой
  • другие алгоритмы исследования и детекции
Добавлю манипулятор, что бы можно было собирать с пола игрушки в ящик.Попробую другие датчики для колёсной одметрии: магнитный датчик угла.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_razrabotka_robototehniki (Разработка робототехники), #_robototehnika (Робототехника), #_diy_ili_sdelaj_sam (DIY или Сделай сам), #_bespilotnye_avtomobili (беспилотные автомобили), #_roboty (роботы), #_robototehnika (робототехника), #_robotostroenie (роботостроение), #_selfdriving_car, #_robotics, #_nvidia, #_razrabotka_robototehniki (
Разработка робототехники
)
, #_robototehnika (
Робототехника
)
, #_diy_ili_sdelaj_sam (
DIY или Сделай сам
)
Профиль  ЛС 
Показать сообщения:     

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

Текущее время: 16-Май 16:15
Часовой пояс: UTC + 5