Платформа мобильного робота

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

Далее рассмотрим документацию одной типичной мобильной платформы проекта робота и его различных этапов.

Исходное задание

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

  • Манипулятор
  • Радар
  • Камера

Робот должен иметь возможность двигаться на плоской поверхности в помещении.

Требования

  • Максимальные габариты: 20 cm x 20 cm x 20 cm
  • Максимальный вес 2 kg
  • Скорость движения min. 0,1 m/s
  • Возможность легкого добавления дополнительного оборудования
  • Полная автономия

Ограничения

  • Должна быть построена в основном из компонентов Домашней Лаборатории
  • Стоимость компонентов не должна превышать 600 €

~~PB~~

Общая модель системы

Общая модель системы представлена в виде блок-схемы. Она описывает структуру, поведение и другие важные аспекты системы. В качестве примера ниже приведена иерархическая модель системы.

Модель структуры системы

Проектные решения

Для решения этой задачи команда использовала метод мозгового штурма и сгенерировала 3 концептуально разных решения. Была составлена оценочная матрица, с помощью которой найдена самая оптимальная конструкция. Основные отличия решений заключались в схемах движения.

Проектное решение

~~PB~~

Упрощённая оценочная матрица выглядит следующим образом:

Функция/Решение 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,820,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,823,5 35,7

Так как один из наиважнейших приоритетов была цена, то было выбрано готовое решение «Платформа на лентах». Из анализа стало понятно, что используя готовое решение, следует выбрать платформу на лентах, а изготавливая самостоятельно, целесообразнее было бы выбрать платформу на колёсах.

Дальнейшая работа продолжала развивать выбранное решение в реальной системе.

~~PB~~

Механика

Механику постарались сделать как можно более простой, но в то же время в соответствии с принципом модульности. Передний и задний бампер - это идентичные модули. Электроника – это три модуля, которые размещены друг над другом, позволяя простые соединения ленточного кабеля, обеспечивая относительно простую смену модулей. Двигатели были отобраны из комплекта Домашней Лаборатории: двигатели со встроенным редуктором и кодером, которые подключаются непосредственно к приводу двигателей. В качестве колес были использованы колёса модели самолета, так как они очень легкие и достаточно сильные для робота. Чтобы упростить конструкцию, нижняя и верхняя платы идентичны. Платы имеют отверстия, позволяющие различным устройствам прикрепляться к верхней пластине. Кроме электронных модулей между пластинами может поместиться и аккумулятор.

Первоначальная 3D модель робота и местоположения его компонентов

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

Рабочий рисунок платы бампера

Электроника

Электроника системы описана принципиальным решением и классической электронной схемой со схемой монтажа печатной платы.

Блок-схема компонентов электроники

~~PB~~

В качестве примера приведена схема электроники датчиков отслеживания линий и монтажная схема печатной платы (PCB).

Схема электроники датчиков бампера
Схема монтажа бампера

~~PB~~

Система управления

Система управления роботом происходит из поведенческой модели и определяется функциональностью, требованиями и ограничениями, исходящими из начальной задачи. Из поведенческой модели системы создаётся алгоритм программы управления, который, в свою очередь, является основой программного кода. Все три уровня (поведенческая модель - алгоритм - код) должны быть согласованы друг с другом.

Алгоритм

Алгоритм описывает логику управления системой и изображен в виде блок-схемы. Нескольких элементов и описания их соотношений достаточно, чтобы создать простой алгоритм. Если алгоритм робота составлен правильно, то относительно легко составить программу управления для этого робота. В алгоритме обычно используется два различных объекта: прямоугольник с закругленными углами, который обозначает какую-либо деятельность, и маленький ромб для проверки какого-либо условия, после чего следует затем запуск дальнейшей деятельности в соответствии с результатами проверки.

Значения символов, используемых в алгоритме:

СимволЗначение01-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);
		}
	}
}

~~PB~~

Готовое решение

Созданная в рамках этого проекта платформа робота в значительной степени состоит из пластика, за исключением креплений двигателя, которые сделаны из алюминия. Электронные модули размещены поверх друг друга, и аккумулятор свободно помещается между пластинами. Бамперы сделаны из печатных плат и окрашены в черный цвет. Верхняя плата робота является абсолютно плоской, позволяя прикреплять различные выбранные устройства. На робота был установлен несложный радар, который состоит из небольшого серводвигателя RC и инфракрасного датчика. В качестве второго решения на платформу был установлен модуль интеллектуальной камеры для решения задач машинного зрения. Оба решения показаны на следующих изображениях. Стандартный манипулятор был испытан в качестве третьего устройства, компоненты которого контролируются стандартным серводвигателем, используя последовательный интерфейс для управления их приводом.

Робот с инфракрасным радаром
Робот с модулем интеллектуальной камеры (CMUcam3)

~~PB~~

Финансовый расчёт

Финансовый расчёт включает в себя стоимость компонентов и затраты на изготовление роботов.

Таблица стоймости компонентов

КомпонентМаркаКол-воЦенаСтоимость
ДвигательM LE149.6.432500.-1000.-
МикроконтроллерuC ATmega1281900.-900.-
Актуатор двигателяActuator Board v1.21700.-700.-
Плата питанияTP1500.-500.-
Датчики линейного отслеживанияLFS QRD1114830.-240.-
Сенсоры касанияTS Microswitch825.-200.-
Плата корпусаABS 450.-200.-
Заготовка печатной платы 250.-100.-
Профиль крепления двигателяAl-L 210.-20.-
Колесо60/10 mm 230.-60.-
АккумуляторNI-MH 9,6 V1350.-350.-
Различные кабели 1020.-200.-
Гайки-болты 150.-50.-
Другие принадлежности 1100.-100.-
Итого 4620.-

Оценка труда и себестоимости производства в одном экземпляре робота.

РаботаВремя (h)ЦенаСтоимость
Фрезеровка деталей конструкции1300.-300.-
Фрезеровка печатных плат (бампер)0,5500.-250.-
Составление конструкции робота0,5250.-125.-
Составление бампера (пайка компонентов)1300.-300.-
Программирование5300.-1500.-
Составление документации3250.-750.-
Итого 11 3225.-

Оценочная стоимость робота всего 7845.-

Высчитанная стоимость робота всё же приблизительная, так как это учебный проект, где большинство работ и составлений выполнено в значительно большем объёме, но без прямой денежной оплаты. Таким образом, затраченное время и работа приблизительные и не отражает реальной ситуации.

Управление проектом

Мехатронная система (Робот) создана в качестве командной работы с графиком и бюджетом, тем самым, имея большинство особенностей проекта. Основные направления деятельности управления проектом были: планирование времени, планирование работы команды и управление ей, бюджетный мониторинг и получение средств, текущая отчетность перед руководителем, презентации и документирование результатов. К докладу проекта добавляются протоколы собраний рабочих групп, план проекта (желательно диаграммой Ганта), распределение ресурсов (включая человеческие ресурсы), запланированный и фактический бюджет. В качестве примера приведён простой план действий диаграммой Ганта.

Структурная схема проекта

Резюме и выводы

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

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

В заключении считаем, что данный проект был очень интересным и познавательным и дал представление о проектировании и изготовлении интегрированной системы.

Ссылки и использованные материалы

  1. Инструкция Домашней Лаборатории http://home.roboticlab.eu
  2. Спецификация ATmega128
  3. Dudziak, R., Köhn, C., Sell, R., Integrated Systems & Design, TUT Press, 2008
  4. Friendenthal, S., Moore, A., Steiner, A., A Practical Guide to SysML, Elsevier, 2008
  5. Perens, A. Projektijuhtimine, Külim, 1999
  6. Bräunl, T. Embedded Robotics, Springer-Verlag, 2003
ru/projects/wheeled_robot.txt · Последние изменения: 2013/08/17 16:47 — eduardtlmk
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0