Podjetje SICK gosti tekmovanje Robotday oktobra 2018.
Cilj tekmovanja je prensti žogice iz avtonomnega premikajočega se vozila (imenovan transporter) v košaro za odlaganje.
Hkrati tekmujeta dva robota, ki morata biti povsem avtonomna.
Zmaga robot, ki v desetih minutah zbere več žogic.
Moja naloga je bila oblikovati in implementirati robotski krmilnik (tu in naprej imenovan SICKcon), tako da bo omogočal asinhrono razvijanje neodvisnih delov, kot so razvijanje programa za računalniški vid, razvijanje kontrolerja, ki se izogiba trkom, in oblikovanje robotske roke, ki lahko seže po žogice.
Nekateri neodvisni deli, kot so kontroler za izogibanje trkov in velik del računalniškega vida, niso bili razviti med mojim rokom za oddajo diplomske naloge, zato je okolje v veliki meri simulirano z več programi.
Kontroler zato tudi ni bil testiran v realnem oklju.
Kontroler sem razvila do stopnje, kjer lahko robot uspešno izvaja pobiranje žog\-ic s transporterja v kolikor so neodvisni deli implementirani po mojih pričakovanjih.
Za oblikovanje robotskega krmilnika sem nalogo razdelila na več podnalog.
Za dosego podnalog SICKcon izvaja akcije, kjer so akcije implementirane neodvisno od robotskega kontrolerja.
SICKcon služi komunikaciji med neodvisnimi deli in odločanju, katera akcija se izvršij kdaj.
SICKcon je implementiran s hierarhičnim avtomatom in končnimi avtomati.
Stanja končnih avtomatov služijo kot opis zunanjega sveta, oziroma kaj o zunanjem svetu je znano in stopnjo v planu.
Evalucaija je na koncu pokazala, da se manjše izboljšave v planu da implementirati hitro in z malo kode, v kolikor so predpostavke o uporabljenih neodvisnih delih uslišene.
Za neodvisne dele, za katere prepostavk nisem postavljala je SICKcon potrebno spremeniti glede na dejansko implementacijo teh delov.
|