This is an old revision of the document!


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

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

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

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

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

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

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

Требования

  • Максимальные габариты: 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,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

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

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

 

Механика

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

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

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

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

Электроника

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

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

 

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

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

 

Juhtimine

Roboti juhtimine tuleneb süsteemi käitumismudelist ja on määratud lähteülesande funktsionaalsusega ning nõuete ja piirangutega. Süsteemi käitumismudelist luuakse täpsustatud juhtprogrammi algoritm, millest omakorda lähtutakse tarkvara programmikoodi koostamisel. Kõik kolm taset (käitumismudel-algoritm-lähtekood) peavad olema omavahel kooskõlas.

Algoritm

Algoritm kirjeldab süsteemi juhtloogikat ja on esitatud plokkdiagrammina. Lihtsama algoritmi koostamiseks piisab paarist elemendist ja nendevaheliste seoste kirjeldamisest. Kui roboti algoritm on koostatud korrektselt, siis on sellest roboti juhtprogrammi juba suhteliselt lihtne koostada. Algoritmis on kasutatud põhiliselt kahte erinevat objekti: ümardatud nurkadega ristkülik, mis tähistab mingit tegevust ja väike romb mingi tingimuse kontrollimiseks, millele järgneb vastavalt kontrolli tulemusena edasiste tegevuste käivitamine.

Algoritmis kasutatud tähiste tähendused:

TähisTähendus01-1
M1vasak mootorseisabpöörleb päripäevapöörleb vastupäeva
M2parem mootorseisabpöörleb päripäevapöörleb vastupäeva
Fesimene keskmine puuteandursignaal puudubsignaal olemas
FResimene parem puuteandursignaal puudubsignaal olemas
FLesimene vasak puuteandursignaal puudubsignaal olemas
dviide
Algoritmi olekudiagramm

Lähtekood

Lihtne navigeerimine

#include <homelab/module/motors.h>
#include <homelab/pin.h>
#include <homelab/delay.h>
 
// Põrkeandurite viikude defineerimine
pin front      = PIN(C, 0);
pin frontleft  = PIN(C, 1);
pin frontright = PIN(C, 2);
 
//
// Põhiprogramm
//
int main(void)
{
	// Mootorite 0 ja 1 algseadistamine
	dcmotor_init(0);
	dcmotor_init(1);
 
	// Andurite viigud sisendiks
	pin_setup_input_with_pullup(front);
	pin_setup_input_with_pullup(frontleft);
	pin_setup_input_with_pullup(frontright);
 
	// Lõputu tsükkel
	while (true)
	{
		// Mootorite päripäeva käivitamine
		dcmotor_drive(0, 1);
		dcmotor_drive(1, 1);
 
		// Keskmise anduri signaali kontroll
		if (pin_get_value(front))
		{
			// Mootorite reverseerimine
			dcmotor_drive(0, -1);
			dcmotor_drive(1, -1);
 
			// Paus 1 sekund
			sw_delay_ms(1000);
 
			// Vasaku mootori päripäeva käivitamine 
			dcmotor_drive(0, 1);
 
			// Paus 2 sekundit
			sw_delay_ms(2000);
		}
 
		// Vasaku anduri signaali kontroll
		else if (pin_get_value(frontleft))
		{
			// Parema mootori reverseerimine
			dcmotor_drive(1, -1);
 
			// Paus 2 sekundit
			sw_delay_ms(2000);
		}
 
		// Parema anduri signaali kontroll
		else if (pin_get_value(frontright))
		{
			// Vasaku mootori reverseerimine
			dcmotor_drive(0, -1);
 
			// Paus 2 sekundit
			sw_delay_ms(2000);
		}
	}
}

 

Valmislahendus

Projekti raames valminud robotplatvorm on valmistatud üldjoontes plastikust, välja arvatud mootori kinnitused, mis on valmistatud alumiiniumprofiilist. Elektroonikamoodulid on paigutatud üksteise peale, aku on lahtiselt kahe plaadi vahel. Põrkerauad on valmistatud trükkplaadist ja värvitud mustaks. Roboti pealmine plaat on täiesti sile, võimaldades sinna kinnitada erinevaid soovitud seadmeid. Projekti raames paigaldati robotplatvormile lihtne radar, mis koosnes väikesest RC servomootorist ja infrapunaandurist. Teise lahendusena paigaldati platvormile intelligentne kaameramoodul masinnägemise ülesannete lahendamiseks. Mõlemad variandid on näidatud allolevatel piltidel. Kolmandaks seadmeks katsetati standardmanipulaatorit, mille lülisid juhitakse samuti standardsete RC servomootoritega, kasutades nende ajuri juhtimiseks jadaliidest.

Robot infrapuna radariga
Robot intelligentse kaameramooduliga (CMUcam3)

 

Majanduskalkulatsioon

Majanduslik kalkulatsioon hõlmab endas komponentide maksumust ja roboti detailide valmistamise ning koostamise kulusid.

Komponentide maksumuse tabel

KomponentMarkKogusHindMaksumus
MootorM LE149.6.432500.-1000.-
MikrokontrolleruC ATmega1281900.-900.-
Mootorite juhtplaatActuator Board v1.21700.-700.-
ToiteplaatTP1500.-500.-
Joonejälgimise anduridLFS QRD1114830.-240.-
PuuteanduridTS Microswitch825.-200.-
Kere plaatABS 450.-200.-
Trükiplaadi toorik 250.-100.-
Mootorikinnituse profiilAl-L 210.-20.-
Ratas60/10 mm 230.-60.-
AkuNI-MH 9,6 V1350.-350.-
Erinevad kaablid 1020.-200.-
Mutrid-poldid 150.-50.-
Muud tarvikud 1100.-100.-
Kokku 4620.-

Hinnanguline tööjõu- ja tootmiskulu üksikeksemplari korral.

TööAeg (h)HindMaksumus
Konstruktsioonidetailide freesimine1300.-300.-
Trükiplaatide (põrkerauad) freesimine0,5500.-250.-
Roboti konstruktsiooni koostamine0,5250.-125.-
Põrkeraudade koostamine (komponentide jootmine)1300.-300.-
Programmeerimine5300.-1500.-
Dokumentatsiooni koostamine3250.-750.-
Kokku 11 3225.-

Roboti hinnanguline maksumus kokku 7845.-

Arvutatud roboti maksumus on siiski hinnanguline, kuna tegemist on õppeotstarbelise projektiga, kus enamik tööd ja koostamist on tehtud oluliselt suuremas mahus, kuid otsese rahalise tasuta. Seetõttu on töö- ja ajakulu ligikaudne ja ei kajasta tegelikku olukorda.

Projektijuhtimine

Mehhatroonikasüsteem (Robot) on loodud meeskonnatööna ja kindla ajakava ning eelarvega, omades seega enamuse olulisi projekti tunnuseid. Projektijuhtimise seisukohalt olid olulised tegevused: aja planeerimine, meeskonnatöö planeerimine ja juhtimine, eelarve jälgimine ja vahendite hankimine, jooksev aruandlus juhendajale, lõpptulemuse presentatsioon ja dokumenteerimine. Projekti aruandele lisatakse töögruppide koosolekute protokollid, projekti plaan (soovitavalt Gantti diagrammina), ressursijaotus (k.a. inimressurss) ja planeeritud ning tegelik eelarve. Näiteks on toodud lihtne tegevuste plaan Gantti diagrammina.

Projekti tegevusdiagramm

Kokkuvõte ja järeldused

Majanduslik kalkulatsioon näitas meile, et roboti tootmishind on üsna kõrge, eriti kui tegemist on ainueksemplariga, kuid jäi siiski lähteülesandes etteantud piiridesse. Tootmise hinda saaks kindlasti oluliselt alandada, optimeerides komponentide ja materjalikulu ning tootes korraga suurema koguse roboteid. Projekti käigus tutvusime mehhatroonikasüsteemi projekteerimise, valmistamise ja testimisega, mis andis meile esmakordse sellelaadse kogemuse.

Töö lõpus selgus tõsiasi, et roboti korralikuks töötamiseks on vaja oluliselt rohkem aega planeerida testimisele, seda eriti tarkvara osas. Erinevad moodulid ei pruugi alati koos korrektselt töötada, kuigi eraldi katsetades oli kõik korras. See näitab, et süsteemi moodulite integreerimine on tõsine väljakutse ja selleks tuleb planeerida oluliselt rohkem aega ja ressurssi.

Kokkuvõteks arvame, et projekt oli väga huvitav ja hariv ning andis aimu integreeritud süsteemide projekteerimisest ja valmistamisest.

Viited ja kasutatud materjalid

  1. Kodulabori juhendmaterjal http://home.roboticlab.eu
  2. ATmega128 andmeleht
  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.1376738506.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
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