Таёжные Ёжики
ROB-77519Стратегия выполнения задания роботом:
Наш робот ищет в лабиринте “жертв” по правилу "чередующийся руки". В момент запуска случайно выбирается ведущая рука для прохождения лабиринта, по которой в дальнейшем двигается робот. Во время движения робот анализирует стену: если он находит черный цвет, проверяет какую букву нашел, если нашел цвет, считает, что нашел цветную жертву. Кроме того, во время движения робот анализирует цвет тайла на котором находится для определения ямы и болота.
Использование датчиков:
В нашем роботе используется 5 инфракрасных дальномера sharp 2y0a21 f 36, HiTechnic NXT Color Sensor V2 и камера, считываемая Raspberry Pi Zero, которая передает данные на meAURIGA, кроме того у нас есть встроенные датчики считывания угловой скорости (энкодоры) с помощью которых управляем моторами из набора MakeBlock. Данные с Raspberry на meAURIGA мы передаем по UART для этого мы самостоятельно спаяли переходную плату, так называемый UART hub с Raspberry на порт MakeBlock RJ12, для подключения моторчика выгрузки комплектов мы также спаяли переходную плату с портов MakeBlock RJ12 на разъемы с шагом 2.45 мм. Кроме того, на роботе стоит стабилизатор питания с 5 В на 3.3 В. Для более удобного старта на роботе вынесена кнопка запускающая самого робота. Распиновку meAURIGA и Raspberry Pi Zero, мы брали с официальной тех. документации.
Конструкция робота:
Конструкция робота предполагает несколько этажей с разным функционалом: на нулевом располагаются моторы и Color Sensor, на первом — аккумулятор для meAURIGA и пауэрбанк для Raspbberry, на втором — сама meAURIGA и Raspbberry, USBhub, самодельный UART hub, переходная плата с портов MakeBlock RJ12 на разъемы с шагом 2.45 мм, стабилизатор питания с 5 В до 3.3 В и инфракрасные дальномеры, на третьем — два экрана для вывода информации, кнопка для быстрого запуска и сама камера. В пространстве между 2-м и 3-м этажом робота располагается коробочка для проводов и meAURIGA.
Сначала мы начертили все необходимые детали в векторном формате (в программе inkscape), после чего вырезали на фрезерном станке, изначально вырезали из картона, но позже для прочности перешли на фанеру, однако из-за не до конца спланированных отверстий, еще раз перечертили и перевырезали основную платформу. Используя вырезанные детали, детали из набора MakeBlock и спаянные нами вышеперечисленные платы собрали самого робота
Модернизации конструкции:
Первая версия шасси робота была собрана полностью из конструктора MakeBlock и имел всего 1 этаж. Во 2-й версии робота (можно увидеть на 1-х чертежах конструкции) робот состоял из 2-х этажей, где на 2-ом этаже располагались ультразвуковые датчики расстояния и meAURIGA, при размещении камеры команда решила сделать 3-й этаж, на котором и будет располагаться камера, еще позже на этом этаже появились экранчики для вывода информации, а на 2-ом этаже ультразвуковые датчики заменились лазерными. В 4-й версии полностью поменяли шасси для робота: они стали полностью плоскими (т.е. не имеют наклона гусениц, который был в предыдущий версиях) и стал иметь форму треугольника, для возможности регулировки натяжения гусениц. Позже мы разработали более удобный механизм регулировки при помощи осей с резьбой и гаек. Благодаря этим изменениям у нас появилась возможность ездить как на гусеницах, так и без них, а также увеличилось пространство 1-го этажа, за счет чего нам удалось опустить 2-й и сместить центр тяжести ниже, что увеличило его проходимость.
Алгоритм работы с камерой:
Мы взяли веб-камеру с частотой 30 кадров в секунду. Благодаря этой веб-камере, мы захватываем с нее кадры и бинаризируем изображение, ища цвета цветных жертв и черного для букв.
Освещение на поле не предсказуемо, в прошлом нам требовалась проводить бинаризацию для черного цвета перед каждым заездом, что задействовало очень много времени. Поэтому мы решили разработать алгоритм автобинаризации. Алгоритм, который мы придумали ищет на изображении самый светлый, самый темный и среднестатистическое значение пикселя и формулой рассчитывает данные для бинаризации на черный (чем темнее освящение на поле, тем больше делителей). Таким образом, робот может находить линию даже в сумраке.
Примерная формула, которую мы используем на псевдокоде:
насыщенность_чёрного < (min+ср_знач)/2+ min
Жертвы мы обнаруживаем с помощью камеры и библиотеки OpenCV 4. Для начала настраивается бинаризация для 1 из 3 цветов: красного, жёлтого и чёрного. После бинаризации определяем контуры и проверяем самые большие контуры, подходят ли они. Если обнаружены чёрные контуры, подходящего размера, то вычисляем 3 точки прямоугольника этого контура: верхнюю срединную и нижнюю срединную, с помощью них мы и определяем какая буква и ищем в них контур на чёрной бинаризации: если верхний и нижний - чёрные, то это S, если нижний и верхний - не чёрные - то это H, а если нижний – чёрный - то это U.
Уникальность робота.
Уникальность нашего робота заключается в совокупности из следующих критериев:
1. УНИКАЛЬНАЯ, революционная конструкция натяжения гусениц с использованием конструктора mebot. Посредством её можно получить необходимое натяжение гусениц, не зависимо от их состояния.
2. УНИКАЛЬНЫЙ алгоритм распознавания жертв, отличный от других своей простотой работы. Именно благодаря ей, он может выполнять поставленную перед ним задачу с большей точностью и скоростью работы.
3. Совершенно особенный в своём роде алгоритм передвижения робота, основанный на принципах рандомизации. Первичное, главное и самое что ни-на есть прямое предназначение нашего робота - это выполнения заданий регламента roboCup Rescue Maze. А именно: прохождения лабиринта, определения жертв и раздача спасательных комплектов нуждающимся.
Файлы
Добавлен 20.11.2024
Добавлен 20.11.2024
Добавлен 20.11.2024
Добавлен 20.11.2024