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

Робот для супер-крутой навигации внутри помещений

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

Комплект шасси для автомобильного аккумуляторного блока Smart Motor Robot DIY Speed ​​Encoder для Arduino
× 1
oblu - IMU с открытым исходным кодом для внутренней пешеходной навигации
× 1
половинный размер макетной платы без пайки
× 1
Провода перемычки "папа / мама"
× 1
Конденсатор 1000 мкФ
× 2
Драйверы двигателей Texas Instruments Dual H-Bridge L293D
× 1
Arduino Mega 2560
× 1
Ni-MH аккумулятор AA 2800
× 1

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

Паяльник (общий)

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

IDE Arduino
Xoblu

Об этом проекте

Наша история:

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

Предыстория:

Мы искали надежное решение для внутренней навигации нашего робота на базе Arduino. При выборе правильного решения для определения движения для этого приложения мы также рассмотрели Oblu (IMU с открытым исходным кодом). Его низкая стоимость и открытый исходный код сделали его вероятным кандидатом. Сложность здесь заключалась в том, что программа oblu с открытым исходным кодом подходит для устанавливаемого на лапах внутреннего Pedestrian Dead Reckoning (PDR) или пешеходной навигации, простыми словами. Производительность PDR Oblu в помещении в качестве IMU на лапах впечатляет. Большим плюсом было бесплатное приложение для Android (Xoblu) для отслеживания местоположения в реальном времени. Однако мы не знали, как использовать существующий алгоритм пешеходной навигации, основанный на модели ходьбы человека.

Внутренние вычисления Oblu основаны на ходьбе человека. Oblu выдает смещение между двумя последовательными шагами и изменение курса. Когда ступня касается земли, скорость подошвы равна нулю, т. Е. Подошва стоит в неподвижном состоянии. <См. Видео выше.> Таким образом, Oblu обнаруживает «ступеньки» и исправляет некоторые внутренние ошибки. И это частое исправление ошибок приводит к отличным характеристикам отслеживания. Так что здесь кроется загвоздка. Что, если наш робот тоже ходит таким же образом - двигаться, останавливаться, двигаться, останавливаться…

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

Как это работает:

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

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

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

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

Длина следующего шага зависит от оставшегося расстояния, которое нужно преодолеть на этом конкретном отрезке прямой. Робот делает большие шаги, когда расстояние, которое нужно преодолеть, больше, и делает меньшие шаги ближе к месту назначения (т. Е. К концу каждого отрезка прямой линии).

IMU Oblu передает данные на Arduino и телефон (через bluetooth) одновременно. Xoblu (приложение для Android) выполняет некоторые простые вычисления для построения пути на основе информации о движении, полученной от робота, которая используется для отслеживания в реальном времени на телефоне. (Построение пути с использованием Xoblu показано ниже.)

Таким образом, Oblu определяет движение и передает информацию о движении на Arduino и телефон через регулярные промежутки времени. Основываясь на запрограммированном пути и информации о движении (отправляемой oblu), Arduino контролирует движения колес. Движение робота НЕ управляется дистанционно, за исключением команд запуска / остановки.

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

Лучше всего управлять роботом, если он ходит только по прямым отрезкам. Следовательно, сначала необходимо смоделировать путь как набор отрезков прямых линий. На рисунках ниже приведены несколько примеров путей и их представления с точки зрения смещения и ориентации. Вот как программируется путь в Arduino.

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

Схема сборки:

Обратитесь к разделу H / W для получения информации об электрических соединениях между Arduino, oblu, драйвером двигателя и аккумулятором.

  • Протокол связи:

Шаг 1 :Xoblu отправляет команду START на oblu

Шаг 2 :oblu подтверждает получение команды, отправляя соответствующий ACK в Xoblu

Шаг 3 :oblu отправляет пакет DATA, содержащий информацию о смещении и ориентации для каждого шага, на каждом шаге в Xoblu. (шаг =всякий раз, когда обнаруживается нулевое движение или обнаруживается остановка).

Шаг 4 :Xoblu подтверждает получение последнего пакета DATA, отправляя соответствующий ACK в oblu. (Цикл шагов 3 и 4 повторяется до тех пор, пока Xoblu не отправит STOP. Получив команду STOP, oblu выполняет шаг 5)

Шаг 5 :STOP - (i) Остановить обработку в oblu (ii) Остановить все выходы в oblu

Пожалуйста, обратитесь к инструкции по применению oblu для получения подробной информации о START, ACK, DATA и STOP

Как работает Oblu IMU (необязательно):

Представляем некоторые ссылки на обзор Oblu и основные принципы работы датчиков PDR на лапах:

-> Доступный исходный код oblu ориентирован на пешую навигацию. И он лучше всего оптимизирован для этой цели. В видео ниже описывается его основной принцип работы:

-> Вот пара простых статей о датчиках PDR на лапах:

1. Отслеживайте мои шаги

2. Продолжать отслеживать мои шаги

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

-> Следующее видео для обзора Oblu:

----------------

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

С наилучшими пожеланиями!

----------------

Код

Робот на базе Arduino
Робот движется по заранее запрограммированному пути и передает свои текущие координаты на телефон для отслеживания в реальном времени. Https://github.com/vijkumsha/oblu_Robot

Схема


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

  1. Робот Raspberry Pi, управляемый через Bluetooth
  2. Простой робот Pi
  3. Робот с сервомотором избегает препятствий
  4. Радостный робот (Робо да Алегрия)
  5. Робот-последователь линии
  6. Робот, управляемый речью
  7. Робот-пианино, управляемый Arduino:PiBot
  8. Учебная платформа Arduino
  9. Автономный домашний робот-помощник
  10. Мониторинг температуры SMART для школ