Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Набор для создания робота с умной внутренней навигацией на базе Arduino

Компоненты и материалы

Название Количество
Набор шасси робота-машинки с мотором, батарейным отсеком и энкодером скорости для Arduino 1
oblu — открытый IMU для внутренней пешеходной навигации 1
Беспаечная макетная плата (половинного размера) 1
Провода перемычки (Male/Female) 1
Конденсатор 1000 мкФ 2
Драйвер двигателей L293D (Texas Instruments) 1
Arduino Mega 2560 1
Аккумуляторы АА 2800 мАч Ni-MH 1

Необходимые инструменты

Приложения и онлайн-сервисы

О проекте

История создания

Проект посвящен созданию робота, способного перемещаться по заданному маршруту с высокой точностью без использования GPS, Wi-Fi, Bluetooth, карт или планов здания. Робот в реальном времени строит свой фактический путь (в масштабе). Bluetooth используется только для передачи телеметрии на телефон.

Набор для создания робота с умной внутренней навигацией на базе Arduino

Предыстория

Мы искали надежное решение для внутренней навигации Arduino-робота. В качестве датчика движения рассматривался oblu — открытый IMU. Его низкая стоимость и открытый код делали его привлекательным кандидатом. Однако стандартная прошивка oblu предназначена для пешеходной навигации (Pedestrian Dead Reckoning — PDR) с креплением на ногу. Алгоритм опирается на модель человеческой ходьбы: при касании ногой пола скорость подошвы становится нулевой, что позволяет обнаруживать «шаги» и корректировать накопленные ошибки. Именно эта частая коррекция обеспечивает высокую точность.

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

Принцип работы

Робот движется по запрограммированному пути и передает данные о фактическом перемещении на телефон через Bluetooth для отслеживания в реальном времени.

Набор для создания робота с умной внутренней навигацией на базе Arduino

Arduino содержит заранее заданный путь. oblu измеряет движение и передает данные Arduino с регулярными интервалами. На основе этой информации Arduino управляет колесами, корректируя траекторию.

Путь задается как набор прямых отрезков. Каждый отрезок определяется длиной и ориентацией относительно предыдущего. Движение дискретно: робот делает «шаги» (strides). В конце каждого шага oblu передает пройденное расстояние и изменение курса. Arduino корректирует ориентацию, если есть отклонение от заданной прямой. Если робот проехал больше нужной длины отрезка, он едет назад.

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

oblu одновременно передает данные в Arduino и на телефон. Приложение Xoblu строит путь на телефоне для визуализации.

Набор для создания робота с умной внутренней навигацией на базе Arduino

Робот не управляется удаленно (кроме команд старт/стоп). Навигация полностью автономна.

Моделирование пути

Для управления роботом путь должен быть представлен набором прямых отрезков. На иллюстрациях показаны примеры путей и их представление в виде смещений и углов поворота. Такой путь программируется в Arduino.

Набор для создания робота с умной внутренней навигацией на базе Arduino
Набор для создания робота с умной внутренней навигацией на базе Arduino

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

Сборка схемы

Электрические соединения между Arduino, oblu, драйвером двигателей и батарейным блоком приведены в разделе «Компоненты».

Протокол обмена данными:

  1. Xoblu отправляет команду START в oblu.
  2. oblu подтверждает получение (ACK).
  3. oblu передает пакеты DATA со смещением и изменением курса на каждом шаге (при обнаружении нулевой скорости).
  4. Xoblu подтверждает каждый пакет DATA (ACK). Цикл шагов 3–4 повторяется до команды STOP.
  5. STOP: (i) остановка обработки в oblu, (ii) остановка всех выходов.

Подробности см. в Application Note oblu.

Как работает IMU oblu (дополнительно)

Исходный код oblu оптимизирован для ногоной навигации. Принцип действия:

Ждем ваших отзывов и предложений!

Код

Arduino-робот

Робот движется по заданному пути и передает текущие координаты на телефон для отслеживания в реальном времени.

Репозиторий на GitHub

Схемы

Набор для создания робота с умной внутренней навигацией на базе Arduino

Производственный процесс

  1. Создание Bluetooth-робота на Raspberry Pi с аудио-обратной связью
  2. Simple Pi Robot — Сборка 2WD автономного ровера на Raspberry Pi
  3. Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
  4. Робот Джой: Умный робот на Arduino и ESP8266 для развлечения детей в больницах
  5. Автономный линий-следующий робот на Arduino UNO
  6. Голосовой робот на Arduino Nano: Управление речью через Bluetooth
  7. PiBot: Робот-пианист на Arduino для точного исполнения музыки
  8. Учебный стенд Arduino Mega 2560: сенсоры, моторы, дисплеи и собственная PCB
  9. Автономный домашний помощник-робот: полный список деталей и руководство по настройке (ROS, Alexa, MoveIt)
  10. Умная система мониторинга температуры для школ: точно, в реальном времени, безопасно