Подвижный робот (мобильный робот) является одним из популярных роботов, которые обычно строят. Очень распространенными являются роботы сумо, спортивные роботы (футбол, волейбол и т.д.), роботы имитации спасательных работ (пожаротушение, поиск человека или предмета и т.д.) и многие другие. Для этих видов роботов существует много различных соревнований в мире и в Эстонии, были разработаны даже стандартные классы (например, роботов сумо). Общим для этих типов роботов является мобильная платформа, которая может иметь различные конструкции и возможности, но её основная функциональность осталась прежней. Этой основной функциональностью является управление двигателями и основной навигацией, которая включает в себя избегания препятствий путешествие в место назначения. Как правило, к основной функциональности добавлена специфическая функциональность, которая проектируется в соответствии с требованиями и возможностями, установленными для проекта.
Далее рассмотрим документацию одной типичной мобильной платформы проекта робота и его различных этапов.
Спроектировать и построить многофункциональную мобильную платформу робота с базовой функциональностью навигация с помощью компонентов Домашней Лаборатории. Платформа должна позволять легко менять его оперативную функциональность, снабжая его различным оборудованием:
Робот должен иметь возможность двигаться на плоской поверхности в помещении.
Общая модель системы представлена в виде блок-схемы. Она описывает структуру, поведение и другие важные аспекты системы. В качестве примера ниже приведена иерархическая модель системы.
Для решения этой задачи команда использовала метод мозгового штурма и сгенерировала 3 концептуально разных решения. Была составлена оценочная матрица, с помощью которой найдена самая оптимальная конструкция. Основные отличия решений заключались в схемах движения.
Упрощённая оценочная матрица выглядит следующим образом:
Функция/Решение | I | II | III | Весовой коэффициент |
---|---|---|---|---|
Стоимость | 3 | 4 | 6 | 0,8 |
Сложность изгатовления | 2 | 4 | 7 | 0,7 |
Манёвренность | 4 | 8 | 8 | 0,5 |
Проходимость | 5 | 8 | 2 | 0,3 |
Применимость Домашней Лаборатории | 5 | 4 | 5 | 0,9 |
Вес | 5 | 6 | 7 | 0,8 |
Итого (вместе с вес.коэффициентом) | 15,8 | 20,8 | 24,4 |
Оценочная шкала была 1-10 очков и весовым коэффициентом 0-1. Вес факторов был выбраны в соответствии с требованиями и ограничениями, установленными для этой системы. Например, хотя решение 2 было значительно более способно двигаться по неровной земле, это не требовалось в предварительных задачах, следовательно, весовой коэффициент был низким.
Судя по оценке, оптимальным решением для данной задачи оказалась спутниковая платформа на двух колесах с двумя отдельными двигателями. Дальнейшая работа продолжала развивать выбранное решение в реальной системе.
Функция/Решение | Проектное решение | Платформа на колёсах | Платформа на лентах | Весовой коэффициент |
---|---|---|---|---|
Стоимость | 3 | 8 | 6 | 0,8 |
Сложность изготовления | 2 | 8 | 9 | 0,7 |
Манёвренность | 4 | 6 | 8 | 0,5 |
Проходимость | 5 | 3 | 10 | 0,3 |
Приминяемость Домашней Лаборатории | 5 | 6 | 8 | 0,9 |
Вес | 5 | 7 | 6 | 0,8 |
Место для установки доп.оборудования | 10 | 2 | 7 | 0,8 |
Итого(вместе с вес.коэффициентом) | 23,8 | 23,5 | 35,7 |
Так как один из наиважнейших приоритетов была цена, то было выбрано готовое решение “Платформа на лентах”. Из анализа стало понятно, что используя готовое решение, следует выбрать платформу на лентах, а изготавливая самостоятельно, целесообразнее было бы выбрать платформу на колёсах.
Дальнейшая работа продолжала развивать выбранное решение в реальной системе.
Механику постарались сделать как можно более простой, но в то же время в соответствии с принципом модульности. Передний и задний бампер - это идентичные модули. Электроника – это три модуля, которые размещены друг над другом, позволяя простые соединения ленточного кабеля, обеспечивая относительно простую смену модулей. Двигатели были отобраны из комплекта Домашней Лаборатории: двигатели со встроенным редуктором и кодером, которые подключаются непосредственно к приводу двигателей. В качестве колес были использованы колёса модели самолета, так как они очень легкие и достаточно сильные для робота. Чтобы упростить конструкцию, нижняя и верхняя платы идентичны. Платы имеют отверстия, позволяющие различным устройствам прикрепляться к верхней пластине. Кроме электронных модулей между пластинами может поместиться и аккумулятор.
Бампер робота проектируется отдельно и интегрирован с сенсорными датчиками и датчиками отслеживания линий. Бампер сделан из ПХБ и имеет электричество в дополнение к конструкции. Датчики отслеживания линий припаяны непосредственно к бамперу нижней пластины. Сенсорные датчики (микропереключатели) помещены между двумя пластинами бампера и покрыты единым куском резины. Резиновая деталь поглощает удар и в то же время даёт возможность определить, откуда пришел удар.
Электроника системы описана принципиальным решением и классической электронной схемой со схемой монтажа печатной платы.
В качестве примера приведена схема электроники датчиков отслеживания линий и монтажная схема печатной платы (PCB).
Система управления роботом происходит из поведенческой модели и определяется функциональностью, требованиями и ограничениями, исходящими из начальной задачи. Из поведенческой модели системы создаётся алгоритм программы управления, который, в свою очередь, является основой программного кода. Все три уровня (поведенческая модель - алгоритм - код) должны быть согласованы друг с другом.
Алгоритм описывает логику управления системой и изображен в виде блок-схемы. Нескольких элементов и описания их соотношений достаточно, чтобы создать простой алгоритм. Если алгоритм робота составлен правильно, то относительно легко составить программу управления для этого робота. В алгоритме обычно используется два различных объекта: прямоугольник с закругленными углами, который обозначает какую-либо деятельность, и маленький ромб для проверки какого-либо условия, после чего следует затем запуск дальнейшей деятельности в соответствии с результатами проверки.
Значения символов, используемых в алгоритме:
Символ | Значение | 0 | 1 | -1 |
---|---|---|---|---|
M1 | левый двигатель | стоит | крутится по часовой стрелке | крутится против часовой стрелки |
M2 | правый двигатель | стоит | крутится по часовой стрелке | крутится против часовой стрелки |
F | первый средний сенсор касания | нет сигнала | есть сигнал | |
FR | первый правый сенсор касания | нет сигнала | есть сигнал | |
FL | первый левый сенсор касания | нет сигнала | есть сигнал | |
d | ссылка |
Простая навигация
#include <homelab/module/motors.h> #include <homelab/pin.h> #include <homelab/delay.h> // Определение выводов бампера pin front = PIN(C, 0); pin frontleft = PIN(C, 1); pin frontright = PIN(C, 2); // // Основная программа // int main(void) { // Инициализация двигателей 0 и 1 dcmotor_init(0); dcmotor_init(1); // Выводы сенсоров входами pin_setup_input_with_pullup(front); pin_setup_input_with_pullup(frontleft); pin_setup_input_with_pullup(frontright); // Бесконечный цикл while (true) { // Запуск двигателей по часовой стрелке dcmotor_drive(0, 1); dcmotor_drive(1, 1); // Контроль сигнала среднего сенсора if (pin_get_value(front)) { // Реверсирование двигателей dcmotor_drive(0, -1); dcmotor_drive(1, -1); // Пауза в 1 секунду sw_delay_ms(1000); // Запуск левого мотора по часовой стрелке dcmotor_drive(0, 1); // Пауза в 2 секунды sw_delay_ms(2000); } // Контроль сигнала левого сенсора else if (pin_get_value(frontleft)) { // Реверсирование правого двигателя dcmotor_drive(1, -1); // Пауза в 2 секунды sw_delay_ms(2000); } // Контроль сигнала правого сенсора else if (pin_get_value(frontright)) { // Реверсирование левого двигателя dcmotor_drive(0, -1); // Пауза в 2 секунды sw_delay_ms(2000); } } }
Созданная в рамках этого проекта платформа робота в значительной степени состоит из пластика, за исключением креплений двигателя, которые сделаны из алюминия. Электронные модули размещены поверх друг друга, и аккумулятор свободно помещается между пластинами. Бамперы сделаны из печатных плат и окрашены в черный цвет. Верхняя плата робота является абсолютно плоской, позволяя прикреплять различные выбранные устройства. На робота был установлен несложный радар, который состоит из небольшого серводвигателя RC и инфракрасного датчика. В качестве второго решения на платформу был установлен модуль интеллектуальной камеры для решения задач машинного зрения. Оба решения показаны на следующих изображениях. Стандартный манипулятор был испытан в качестве третьего устройства, компоненты которого контролируются стандартным серводвигателем, используя последовательный интерфейс для управления их приводом.
Финансовый расчёт включает в себя стоимость компонентов и затраты на изготовление роботов.
Таблица стоймости компонентов
Компонент | Марка | Кол-во | Цена | Стоимость |
---|---|---|---|---|
Двигатель | M LE149.6.43 | 2 | 500.- | 1000.- |
Микроконтроллер | uC ATmega128 | 1 | 900.- | 900.- |
Актуатор двигателя | Actuator Board v1.2 | 1 | 700.- | 700.- |
Плата питания | TP | 1 | 500.- | 500.- |
Датчики линейного отслеживания | LFS QRD1114 | 8 | 30.- | 240.- |
Сенсоры касания | TS Microswitch | 8 | 25.- | 200.- |
Плата корпуса | ABS | 4 | 50.- | 200.- |
Заготовка печатной платы | 2 | 50.- | 100.- | |
Профиль крепления двигателя | Al-L | 2 | 10.- | 20.- |
Колесо | 60/10 mm | 2 | 30.- | 60.- |
Аккумулятор | NI-MH 9,6 V | 1 | 350.- | 350.- |
Различные кабели | 10 | 20.- | 200.- | |
Гайки-болты | 1 | 50.- | 50.- | |
Другие принадлежности | 1 | 100.- | 100.- | |
Итого | 4620.- |
Оценка труда и себестоимости производства в одном экземпляре робота.
Работа | Время (h) | Цена | Стоимость |
---|---|---|---|
Фрезеровка деталей конструкции | 1 | 300.- | 300.- |
Фрезеровка печатных плат (бампер) | 0,5 | 500.- | 250.- |
Составление конструкции робота | 0,5 | 250.- | 125.- |
Составление бампера (пайка компонентов) | 1 | 300.- | 300.- |
Программирование | 5 | 300.- | 1500.- |
Составление документации | 3 | 250.- | 750.- |
Итого | 11 | 3225.- |
Оценочная стоимость робота всего 7845.-
Высчитанная стоимость робота всё же приблизительная, так как это учебный проект, где большинство работ и составлений выполнено в значительно большем объёме, но без прямой денежной оплаты. Таким образом, затраченное время и работа приблизительные и не отражает реальной ситуации.
Мехатронная система (Робот) создана в качестве командной работы с графиком и бюджетом, тем самым, имея большинство особенностей проекта. Основные направления деятельности управления проектом были: планирование времени, планирование работы команды и управление ей, бюджетный мониторинг и получение средств, текущая отчетность перед руководителем, презентации и документирование результатов. К докладу проекта добавляются протоколы собраний рабочих групп, план проекта (желательно диаграммой Ганта), распределение ресурсов (включая человеческие ресурсы), запланированный и фактический бюджет. В качестве примера приведён простой план действий диаграммой Ганта.
Финансовые расчеты показали, что себестоимость производства робота довольно высока, особенно при работе с одним роботом, но всё же остается в пределах первоначальной задачи. Затраты на производство, безусловно, могут быть существенно ниже за счет оптимизации материалов и комплектующих и производства большего количества роботов. В ходе этого проекта мы узнали, как проектировать систему мехатроники, как построить и протестировать её.
В конце работы выяснилось, что для исправной работы робота требуется значительно больше времени затратить на планирование и тестирование, особенно по части программы. Разные модули не всегда работают вместе корректно, хоть и были в порядке при их отдельном тестировании. Это показывает, что интегрирование модулей системы - это настоящий вызов и на него требуется запланировать значительно больше времени и ресурсов.
В заключении считаем, что данный проект был очень интересным и познавательным и дал представление о проектировании и изготовлении интегрированной системы.