This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:projects:wheeled_robot [2010/02/15 01:18] – raivo.sell | et:projects:wheeled_robot [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Mobiilne robotplatvorm ====== | ||
| + | Liikurrobot (mobiilne robot) on üks tüüpilisemaid roboteid, mida soovitakse ehitada. Väga populaarsed on sumorobotid, | ||
| + | |||
| + | Alljärgnevalt vaatame ühte tüüpilist mobiilse robot platvormi projekti dokumentatsiooni ja selle projekteerimise erinevaid etappe. | ||
| + | |||
| + | ===== Lähteülesanne ===== | ||
| + | |||
| + | Projekteerida ja valmistada Robootika Kodulabori komponentide baasil multifunktsionaalne mobiilse roboti platvorm koos baasnavigatsiooni funktsionaalsusega. Robotplatvorm peab võimaldama lihtsalt muuta tema operatiivfunktsionaalsust, | ||
| + | * Manipulaator | ||
| + | * Radar | ||
| + | * Kaamera | ||
| + | Robot peab olema võimeline liikuma tasasel pinnal sisetingimustes. Kulutuste optimeerimiseks võib kasutada olemasolevid veermikke. | ||
| + | |||
| + | ==== Nõuded ==== | ||
| + | |||
| + | * Maksimaalsed gabariidid: 20 cm x 20 cm x 20 cm | ||
| + | * Maksimaalne kaal 2 kg | ||
| + | * Liikumiskiirus min. 0,1 m/s | ||
| + | * Lihtne lisaseadme lisamise võimalus | ||
| + | * Täisautonoomne | ||
| + | |||
| + | ==== Piirangud projekteerimisele ==== | ||
| + | |||
| + | * Peab olema koostatud valdavalt Kodulabori komponentidest | ||
| + | * Komponentide maksumus ei tohi ületada 600 € | ||
| + | |||
| + | < | ||
| + | |||
| + | ===== Süsteemi üldine mudel ===== | ||
| + | |||
| + | Süsteemi üldine mudel on esitatud plokkdiagrammidena. Süsteemi mudel kirjeldab süsteemi struktuuri, käitumist jt. olulisi aspekte. Alljärgnevalt on näiteks toodud süsteemi struktuuri üldine hierarhiline mudel. | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | ===== Ideelahendused ===== | ||
| + | |||
| + | Antud ülesande lahenduseks kasutas meeskond ajurünnaku metoodikat ja genereeris 3 põhimõtteliselt erinevat lahendust. Koostati hindamismaatriks, | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | < | ||
| + | |||
| + | Lihtsustatud hindamismaatriks oli järgmine: | ||
| + | |||
| + | ^ Funktsioon/ | ||
| + | |Maksumus | 3 | 4 | 6 | 0,8 | | ||
| + | |Valmistamise keerukus | 2 | 4 | 7 | 0,7 | | ||
| + | |Manööverdamisvõime | 4 | 8 | 8 | 0,5 | | ||
| + | |Läbivus | 5 | 8 | 2 | 0,3 | | ||
| + | |Kodulabori rakendatavus | 5 | 4 | 5 | 0,9 | | ||
| + | |Kaal | 5 | 6 | 7 | 0,8 | | ||
| + | ^Kokku (koos kaaluteguriga) ^ 15,8^20,8^ 24,4^ ^ | ||
| + | |||
| + | Hindamisskaala oli 1-10 punkti ja kaalutegur 0-1. Kaalutegurid olid valitud lähtuvalt süsteemile esitatud nõuetest ja piirangutest. Kuigi näiteks lahendus II oli oluliselt võimekam raskel maastikul liikumisel, ei olnud seda lähteülesandes nõutud ja vastava funktsionaalsuse kaalutegur oli sellest tulenevalt madal. | ||
| + | |||
| + | Hindamise tulemusena osutus antud ülesande optimaalseimaks lahenduseks variant I - ratastel liikuv kahe eraldi mootoriga platvorm. Kuna lähteülesandes oli lubatud kasutada ka olemasolevaid veermikke teostati kiire uuring ja valiti kolm olemasolevat platvormi, mida võrreldi ideelahenduse võitnud kontseptsiooniga. Võrdlus viidi läbi samadel tingimustel, | ||
| + | |||
| + | ^ Funktsioon/ | ||
| + | |Maksumus | 3 | 8 | 6 | 0,8 | | ||
| + | |Valmistamise keerukus | 2 | 8 | 9 | 0,7 | | ||
| + | |Manööverdamisvõime | 4 | 6 | 8 | 0,5 | | ||
| + | |Läbivus | 5 | 3 | 10 | 0,3 | | ||
| + | |Kodulabori rakendatavus | 5 | 6 | 8 | 0,9 | | ||
| + | |Kaal | 5 | 7 | 6 | 0,8 | | ||
| + | |Lisaseadme paigalduse ruum | 10 | 2 | 7 | 0,8 | | ||
| + | ^Kokku (koos kaaluteguriga) ^ 23,8^23,5^ 35,7^ ^ | ||
| + | |||
| + | Kuna üheks olulisemaks prioriteediks oli peale kodulabori komponentide kasutamise hind, siis otsustati valmislahenduse " | ||
| + | |||
| + | Edasine töö jätkus valitud lahenduse edasiarendusega reaalseks süsteemiks. | ||
| + | |||
| + | < | ||
| + | |||
| + | ===== Mehaanika ===== | ||
| + | |||
| + | Mehaanika püüti valmistada võimalikult lihtne, järgides samal ajal modulaarsuse põhimõtet. Esimene ja tagumine põrkeraud on identsed moodulid. Elektroonika osas on kasutatud kolme moodulit, mis on paigutatud üksteise peale, võimaldades nii lihtsaid ribakaabelühendusi ja tagades samal ajal moodulite suhteliselt lihtsa vahetatavuse. Mootoriteks on valitud Kodulabori komplektis olevad integreeritud reduktori ja koodriga mootorid, mis on ühendatud otse mootorite ajurplaadiga. Ratasteks on kasutatud mudellennuki rattaid, mis on väga kerged ja piisavalt tugevad antud roboti jaoks. Valmistamise lihtsuse huvides on roboti alusplaat ja pealmine plaat identsed. Plaadid on varustatud avadega, võimaldades nii pealmisele plaadile kinnitada erinevaid seadmeid. Kahe plaadi vahele mahub lisaks elektroonikamoodulitele ka aku. | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | Eraldi on projekteeritud roboti põrkeraud, mis on integreeritud puute- ja joonejälgimise anduritega. Põrkerauad on valmistatud trükiplaatidest, | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | ===== Elektroonika ===== | ||
| + | |||
| + | Süsteemi elektroonika on kirjeldatud põhimõttelahendusena ja klassikalise elektriskeemina koos trükiplaadi montaažiskeemina. | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | < | ||
| + | |||
| + | Näitena on toodud roboti põrkeraua joonejälgimise andurite elektriskeem ja vastava trükiplaadi (PCB) montaažiskeemiga. | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | < | ||
| + | |||
| + | ===== 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, | ||
| + | Algoritmis on kasutatud põhiliselt kahte erinevat objekti: ümardatud nurkadega ristkülik, mis tähistab mingit tegevust ja väike romb mingi tingimuse kontrollimiseks, | ||
| + | |||
| + | Algoritmis kasutatud tähiste tähendused: | ||
| + | |||
| + | ^Tähis^Tähendus^0^1^-1^ | ||
| + | |M1|vasak mootor|seisab|pöörleb päripäeva|pöörleb vastupäeva| | ||
| + | |M2|parem mootor|seisab|pöörleb päripäeva|pöörleb vastupäeva| | ||
| + | |F|esimene keskmine puuteandur|signaal puudub|signaal olemas| | | ||
| + | |FR|esimene parem puuteandur|signaal puudub|signaal olemas | | | ||
| + | |FL|esimene vasak puuteandur|signaal puudub|signaal olemas | | | ||
| + | |d|viide| | | | | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | ==== Lähtekood ==== | ||
| + | |||
| + | Lihtne navigeerimine | ||
| + | <code c> | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | // Põrkeandurite viikude defineerimine | ||
| + | pin front = PIN(C, 0); | ||
| + | pin frontleft | ||
| + | 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, | ||
| + | dcmotor_drive(1, | ||
| + | | ||
| + | // Keskmise anduri signaali kontroll | ||
| + | if (pin_get_value(front)) | ||
| + | { | ||
| + | // Mootorite reverseerimine | ||
| + | dcmotor_drive(0, | ||
| + | dcmotor_drive(1, | ||
| + | |||
| + | // Paus 1 sekund | ||
| + | sw_delay_ms(1000); | ||
| + | |||
| + | // Vasaku mootori päripäeva käivitamine | ||
| + | dcmotor_drive(0, | ||
| + | |||
| + | // Paus 2 sekundit | ||
| + | sw_delay_ms(2000); | ||
| + | } | ||
| + | |||
| + | // Vasaku anduri signaali kontroll | ||
| + | else if (pin_get_value(frontleft)) | ||
| + | { | ||
| + | // Parema mootori reverseerimine | ||
| + | dcmotor_drive(1, | ||
| + | |||
| + | // Paus 2 sekundit | ||
| + | sw_delay_ms(2000); | ||
| + | } | ||
| + | |||
| + | // Parema anduri signaali kontroll | ||
| + | else if (pin_get_value(frontright)) | ||
| + | { | ||
| + | // Vasaku mootori reverseerimine | ||
| + | dcmotor_drive(0, | ||
| + | |||
| + | // 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, | ||
| + | |||
| + | [{{ : | ||
| + | [{{ : | ||
| + | |||
| + | < | ||
| + | |||
| + | ===== Majanduskalkulatsioon ===== | ||
| + | |||
| + | Majanduslik kalkulatsioon hõlmab endas komponentide maksumust ja roboti detailide valmistamise ning koostamise kulusid. | ||
| + | |||
| + | Komponentide maksumuse tabel | ||
| + | |||
| + | ^Komponent^Mark^Kogus^Hind^Maksumus^ | ||
| + | |Mootor|M LE149.6.43|2|500.-|1000.-| | ||
| + | |Mikrokontroller|uC ATmega128|1|900.-|900.-| | ||
| + | |Mootorite juhtplaat|Actuator Board v1.2|1|700.-|700.-| | ||
| + | |Toiteplaat|TP|1|500.-|500.-| | ||
| + | |Joonejälgimise andurid|LFS QRD1114|8|30.-|240.-| | ||
| + | |Puuteandurid|TS Microswitch|8|25.-|200.-| | ||
| + | |Kere plaat|ABS |4|50.-|200.-| | ||
| + | |Trükiplaadi toorik| |2|50.-|100.-| | ||
| + | |Mootorikinnituse profiil|Al-L |2|10.-|20.-| | ||
| + | |Ratas|60/ | ||
| + | |Aku|NI-MH 9,6 V|1|350.-|350.-| | ||
| + | |Erinevad kaablid| |10|20.-|200.-| | ||
| + | |Mutrid-poldid| |1|50.-|50.-| | ||
| + | |Muud tarvikud| |1|100.-|100.-| | ||
| + | ^ Kokku ^ ^ ^ ^ 4620.- ^ | ||
| + | |||
| + | Hinnanguline tööjõu- ja tootmiskulu üksikeksemplari korral. | ||
| + | |||
| + | ^Töö^Aeg (h)^Hind^Maksumus^ | ||
| + | |Konstruktsioonidetailide freesimine|1|300.-|300.-| | ||
| + | |Trükiplaatide (põrkerauad) freesimine|0, | ||
| + | |Roboti konstruktsiooni koostamine|0, | ||
| + | |Põrkeraudade koostamine (komponentide jootmine)|1|300.-|300.-| | ||
| + | |Programmeerimine|5|300.-|1500.-| | ||
| + | |Dokumentatsiooni koostamine|3|250.-|750.-| | ||
| + | ^Kokku^ 11 ^ ^ 3225.- ^ | ||
| + | |||
| + | Roboti hinnanguline maksumus kokku **7845.-** | ||
| + | |||
| + | Arvutatud roboti maksumus on siiski hinnanguline, | ||
| + | |||
| + | ===== 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, | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | ===== Kokkuvõte ja järeldused ===== | ||
| + | |||
| + | Majanduslik kalkulatsioon näitas meile, et roboti tootmishind on üsna kõrge, eriti kui tegemist on ainueksemplariga, | ||
| + | |||
| + | Töö lõpus selgus tõsiasi, et roboti korralikuks töötamiseks on vaja oluliselt rohkem aega planeerida testimisele, | ||
| + | |||
| + | Kokkuvõteks arvame, et projekt oli väga huvitav ja hariv ning andis aimu integreeritud süsteemide projekteerimisest ja valmistamisest. | ||
| + | |||
| + | ===== Viited ja kasutatud materjalid ===== | ||
| + | |||
| + | - Kodulabori juhendmaterjal http:// | ||
| + | - ATmega128 andmeleht | ||
| + | - Dudziak, R., Köhn, C., Sell, R., Integrated Systems & Design, TUT Press, 2008 | ||
| + | - Friendenthal, | ||
| + | - Perens, A. Projektijuhtimine, | ||
| + | - Bräunl, T. Embedded Robotics, Springer-Verlag, | ||