230 likes | 375 Views
Robotul autonom BX1. Oana Alin Aron Student Anul V Calculatoare Conf. Dr. Ing. Remus Brad Indrumător. Obiectivele Proiectului. Realizarea robotului Dezvoltarea softului necesar controlului sistemului Rezolvarea unui labirint. RobotulBX1. 2 părţi : Hardware Software. Partea Hardware.
E N D
Robotul autonom BX1 Oana Alin Aron Student Anul V Calculatoare Conf. Dr. Ing. Remus Brad Indrumător
Obiectivele Proiectului • Realizarea robotului • Dezvoltarea softului necesar controlului sistemului • Rezolvarea unui labirint
RobotulBX1 • 2 părţi : • Hardware • Software
Partea Hardware • Modul Alimentare CC • Modul Senzorial • Modul Locomoţie • PC
Modul Senzorial • Convertor A/D MCP3208, comunicaţie serială, 12 biţi • 4 Senzori Sharp GP2Y0A21YK pentru măsurarea distanţei în infraroşu, raza 80cm, • Busola electronică, cu senzori pentru detecţia câmpurilor magnetice Philips KMZ51
Senzorii Infrarosu • Precizie mare • Nu sunt afectaţi de lumina ambientală
Modul Locomoţie • 4 Submodule identice • Controler motor pas cu pas uni-polar SLA7029M • Motor pas cu pas uni-polarKH24JM2-005, cu 1.8o/pas
Motoarele Uni-Polare vstepF: TStep = ((5), (175), (250), (80)); 00 / 00 / 01 / 01 10 / 10 / 11 / 11 11 / 11 / 10 / 10 01 / 01 / 00 / 00
Parte Software • Determinarea harţii • Controlul robotului • Managementul autonomiei sistemului
Structura Programului Control hardware: CtrMotoare -engTread + SenzorMeneger -CtrSenzori -CtrBusola + InOutUtils Control autonomie: AIControl + AICore + AIMap + InOutUtils
Controlul Hardware-ului • Controlul motoarelor • clasa TengControl • clasa Tengines • Controlul senzorilor • clasa TBusola • clasa TSensor • clasa TSensorMeneger
Controlul Motoarelor • Clasa TengControl • conţine firul de execuţie ce se ocupa cu controlul motoarelor pas cu pas • Clasa Tengines • gestionează firul de execuţie ce comandă motoarele
Controlul Senzorilor • Clasa Tbusola • se ocupa doar de partea hardware, mai exact controlul busolei, prin emularea unei magistrale I2C pe portul paralel. • Clasa Tsensor • se ocupa cu gestionarea senzorilor de distantă, prin itermediul convertorului analogic-digital, comunicând prin intermediul unei magistarle seriale SPI emulate pe portul paralel • Clasa TSensorMeneger • Se ocupa de toţi senzorii de pe robot (busola si senzori de distanta ). Acest unit este necesar deoarece pentru ambele magistarle emulate pe portul paralel firul de CLOCK este comun.
Controlul Autonomiei • Clasa AICore • face legătura intre controlul fizic al robotului şi controlul logic al robotului (harta interna), este practic sufletul robotului • Clasa TAIControl • se ocupa de toate miscarile pe care AI-ul trebuie să le facă, precum şi de gestionarea resurselor fizice necesare acestuia (senzori, busolă) • Clasa AIMap • se ocupa cu gestionarea elementelor logice ale AI-ului (harta).
Harta Virtulala • Sub forma unui arbore • iniţial este gol • maxim 8 copii • memorare unghiuri
Mod Scanare Hartă • Realizeaza o hartă panoramică • Negru = Faţa • Albastru = Stânga • Roşu = Spate • Verde = Dreapta
Structura Nodului Harţii TMapNode = record visited: Boolean; exitCount: Integer; exits: array of TExits; back: PMapNode; enterDeg: Integer; end; TExits = record crExitDeg: Integer; crExitAdr: PMapNode; end;
Logica Comportamentală a Sistemului START INITIALIZARE Da Nu AIKill getNextDir Da Nu nextDir=-1 Da Nu AIKill Rotire(nextDir) Da Nu AIKill Deplasare(inainte,1620) Da Nu Not back getCurrentExits vecSz<8 && not AIKill && vecSz>0 Da Nu Adauga direstiile in harta(exits) Nu AIKill || nextDir=-1 Da Exit
Interfaţa Grafică • Setări hardware • Control manual&AI • Citiri senzori
Rezultate Obţinute si Dezvoltări Ulterioare • Robotul rezolvă labirintul • Adăugarea unor module de inteligenţă artificiala • Mărirea rezoluţiei hărţii virtuale şi desenarea acesteia