This is an old revision of the document!
Table of Contents
Платформа мобильного робота
Подвижный робот (мобильный робот) является одним из популярных роботов, которые обычно строят. Очень распространенными являются роботы сумо, спортивные роботы (футбол, волейбол и т.д.), роботы имитации спасательных работ (пожаротушение, поиск человека или предмета и т.д.) и многие другие. Для этих видов роботов существует много различных соревнований в мире и в Эстонии, были разработаны даже стандартные классы (например, роботов сумо). Общим для этих типов роботов является мобильная платформа, которая может иметь различные конструкции и возможности, но её основная функциональность осталась прежней. Этой основной функциональностью является управление двигателями и основной навигацией, которая включает в себя избегания препятствий путешествие в место назначения. Как правило, к основной функциональности добавлена специфическая функциональность, которая проектируется в соответствии с требованиями и возможностями, установленными для проекта.
Далее рассмотрим документацию одной типичной мобильной платформы проекта робота и его различных этапов.
Исходное задание
Спроектировать и построить многофункциональную мобильную платформу робота с базовой функциональностью навигация с помощью компонентов Домашней Лаборатории. Платформа должна позволять легко менять его оперативную функциональность, снабжая его различным оборудованием:
- Манипулятор
- Радар
- Камера
Робот должен иметь возможность двигаться на плоской поверхности в помещении.
Требования
- Максимальные габариты: 20 cm x 20 cm x 20 cm
- Максимальный вес 2 kg
- Скорость движения min. 0,1 m/s
- Возможность легкого добавления дополнительного оборудования
- Полная автономия
Ограничения
- Должна быть построена в основном из компонентов Домашней Лаборатории
- Стоимость компонентов не должна превышать 600 €
Общая модель системы
Общая модель системы представлена в виде блок-схемы. Она описывает структуру, поведение и другие важные аспекты системы. В качестве примера ниже приведена иерархическая модель системы.
Проектные решения
Для решения этой задачи команда использовала метод мозгового штурма и сгенерировала 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.-
Высчитанная стоимость робота всё же приблизительная, так как это учебный проект, где большинство работ и составлений выполнено в значительно большем объёме, но без прямой денежной оплаты. Таким образом, затраченное время и работа приблизительные и не отражает реальной ситуации.
Управление проектом
Мехатронная система (Робот) создана в качестве командной работы с графиком и бюджетом, тем самым, имея большинство особенностей проекта. Основные направления деятельности управления проектом были: планирование времени, планирование работы команды и управление ей, бюджетный мониторинг и получение средств, текущая отчетность перед руководителем, презентации и документирование результатов. К докладу проекта добавляются протоколы собраний рабочих групп, план проекта (желательно диаграммой Ганта), распределение ресурсов (включая человеческие ресурсы), запланированный и фактический бюджет. В качестве примера приведён простой план действий диаграммой Ганта.
Резюме и выводы
Финансовые расчеты показали, что себестоимость производства робота довольно высока, особенно при работе с одним роботом, но всё же остается в пределах первоначальной задачи. Затраты на производство, безусловно, могут быть существенно ниже за счет оптимизации материалов и комплектующих и производства большего количества роботов. В ходе этого проекта мы узнали, как проектировать систему мехатроники, как построить и протестировать её.
В конце работы выяснилось, что для исправной работы робота требуется значительно больше времени затратить на планирование и тестирование, особенно по части программы. Разные модули не всегда работают вместе корректно, хоть и были в порядке при их отдельном тестировании. Это показывает, что интегрирование модулей системы - это настоящий вызов и на него требуется запланировать значительно больше времени и ресурсов.
В заключении считаем, что данный проект был очень интересным и познавательным и дал представление о проектировании и изготовлении интегрированной системы.
Ссылки и использованные материалы
- Инструкция Домашней Лаборатории http://home.roboticlab.eu
- Спецификация ATmega128
- Dudziak, R., Köhn, C., Sell, R., Integrated Systems & Design, TUT Press, 2008
- Friendenthal, S., Moore, A., Steiner, A., A Practical Guide to SysML, Elsevier, 2008
- Perens, A. Projektijuhtimine, Külim, 1999
- Bräunl, T. Embedded Robotics, Springer-Verlag, 2003











