Kako se izrađuje ROS robot?
Da bi sustav dobro radio i da biste mogli pratiti što će uređaj raditi u određenim situacijama, potrebne su vam standardne definicije za svaki dio. U ROS-u su ove komponente čvorovi, usluge i teme. Ukratko, stvorite po jedan čvor za svaku veću potrebu. Na primjer, kretanje je jedan čvor, vid je drugi čvor, a planiranje je treći čvor. Čvorovi sadrže usluge koje mogu slati informacije drugim čvorovima, a usluge također mogu obrađivati zahtjeve i odgovore. Tema može emitirati vrijednosti na mnoge druge čvorove. Upoznavanje s ovim pojmovima i načinom na koji ih trebate koristiti prvi je ključ za savladavanje razvoja ROS2.
Oponašajte navigaciju kornjačama
Kada započnete s ROS-om, vjerojatno ćete kupiti robota koji se šeće ili se mota po vašoj kući. Da bi to učinio, robot mora imati pogled na područje u kojem se kreće. Da biste to učinili, možete upotrijebiti aplikaciju sličnu mapi kako biste testirali ponašanje svog robota. Dizajneri iza Turtlebota osmislili su aplikaciju koja se naziva turtlesim i koja to može učiniti za vas. Kao i kod svih ostalih dijelova ROS2, i ove alate možete pokrenuti podnaredbom iz naredbenog retka. Tada imate aktivnosti za različite funkcije. Prvi dio je pokretanje prozora u kojem možete vidjeti simulaciju, a to se naziva čvor.
$ ros2 pokreni kornjačicu kornjačicučvorPojavit će se prozor s Kornjačom u središtu. Da biste kornjačom upravljali pomoću tipkovnice, morate pokrenuti drugu naredbu koja ostaje otvorena i neprestano pritiskajte određene tipke. Ovo je drugi čvor koji komunicira s prvim.
$ ros2 pokreni kornjaču, kornjaču, ključSada možete pomicati kornjaču i vidjeti kako se kreće. Možete dobiti i pogreške, poput udaranja u zid. Te se pogreške prikazuju u terminalu na kojem radi kornjačinski čvor. Ovo je najjednostavnija uporaba simulacijskog modula. Također možete trčati dane oblike, osiguran je kvadrat i dodati još kornjača. Da biste dodali još kornjača, možete upotrijebiti naredbu rqt.
Definirajte usluge s rqt
Program rqt pruža usluge simulacije. Q znači Qt, koji služi za rukovanje sučeljem. U ovom primjeru izričete novu kornjaču.
$ rqtSučelje rqt dugački je popis usluga za simulaciju koju pokrećete. Da biste stvorili novu kornjaču, odaberite padajući izbornik 'mrijest', dajte kornjači novo ime i kliknite 'poziv.»Odmah ćete vidjeti novu kornjaču pored prve. Ako kliknete padajući izbornik 'mrijest', vidjet ćete i novu hrpu unosa povezanih s netom mriještenom kornjačom.
Također možete remapirati naredbe za pokretanje nove kornjače. Naredba za to je sljedeća:
$ ros2 pokreni kornjačuim kornjačaleopkey -ros-args -remap kornjača1 / cmdvel: = kornjača2 / cmdvelPostavite naziv "kornjača2", prema vašem ranijem izboru.
Napredno gledanje s Rvizom
Za naprednije i 3D gledanje upotrijebite rviz. Ovaj paket simulira sve čvorove u vašem dizajnu.
$ ros2 pokreni rviz2 rviz2U grafičkom sučelju imate tri ploče s pogledom u sredini. Možete graditi okruženja pomoću ploče "Zasloni". Možete dodati zidove, sile vjetra i druga fizička svojstva. Ovdje također dodajete svoje robote.
Imajte na umu da ćete prije nego što dođete do ove točke morati razumjeti kako se koristi URDF format. URDF format definira robota, omogućavajući vam postavljanje tijela, ruku, nogu i, prije svega, zona sudara. Zone sudara su tamo, tako da simulacija može odlučiti je li se robot sudario.
Učenje o stvaranju robota u URDF formatu velik je projekt, pa upotrijebite postojeći kod otvorenog koda za eksperimentiranje s emulatorima.
Simulirajte fiziku s sjenicom
U Gazebu možete simulirati fiziku okoline koja okružuje vašeg robota. Sjenica je komplementarni program koji dobro funkcionira zajedno s rvizom. S Gazebom možete vidjeti što se zapravo događa; s rvizom pratite što robot otkriva. Kada vaš softver otkrije zid koji nije tu, Gazebo će pokazati prazno, a rviz će pokazati gdje je u vašem kodu zid stvoren.
Zaključak
Simulacija vašeg robota i njegovog okruženja neophodna je za pronalaženje grešaka i pružanje potrebnih poboljšanja u radu vašeg robota prije nego što ga izbacite u divljinu. Ovo je naporan proces koji se nastavlja dugo nakon što započnete testiranje bota, kako u kontroliranim okruženjima, tako i u stvarnom životu. Uz odgovarajuće znanje o infrastrukturi internih sustava vašeg robota, možete shvatiti što ste učinili ispravno i pogrešno. Naučite brzo uvažavati sve greške koje otkrijete, jer dugoročno mogu učiniti vaš sustav robusnijim.