9. Manipulaatorroboti URDF kirjeldus

Praeguseks oleme juba teinud URDFis neljarattalise roboti mudeli. Samuti oleme tutvunud kinemaatika põhitõdedega ja erinevate liigenditüüpidega. Nüüd on aeg panna kokku neis peatükkides omandatud oskused ja teadmised ning teha ise valmis nn manipulaatorroboti URDF mudel.

Samm-sammulise juhendi nägemiseks klikka harjutuse vahepealkirjadele.

Järgnevalt loome URDFi kasutades sellise roboti kirjelduse:

.

Alustuseks paigaldadame ROSi kimbu aironbot_description, mis sisaldab 3D-mudeleid roboti lülidest. Mudeli failid asuvad kaustas aironbot_description/meshes

Kimbu paigaldamiseks liigu terminalis kausta ~/catkin_ws/src ja klooni sinna kimbu lähtekood:

git clone https://github.com/unitartu-edu/aironbot_description.git

Seejärel kompileeri ja laadi uuesti catkini tööruum.

2_setup.gif

Kimbus aironbot_description on juba olemas ühe väga lihtsa manipulaatori URDF kirjeldus. Visualiseerime selle roboti mudeli:

a. Liigu terminalis kausta catkin_ws/src/aironbot_description/urdf/

b. Käivita RViz järgneva käsuga:

roslaunch urdf_tutorial display.launch model:=aironbot.urdf

Pane tähele, et see on sama käsk, millega olema ka varem mudeleid visualiseerinud. Ainus erinevus seisneb käivitatava mudeli failinimes.

c. Avaneb kaks akent. Suuremas aknas näeme roboti kolmemõõtmelist visualiseeringut. Väiksemas aknas näeme liugurit, mis liigutab roboti ühte liigendit.

d. Proovi erinevaid liuguri väärtusi ja jälgi, mis mõju see roboti mudelile avaldab.

.

Nähtud manipulaatori mudel on kirjeldatud URDF failis, mis asub aironbot_description/urdf kataloogis. Ava see fail ja vaata, kuidas on see robot kinemaatiliselt kirjeldatud.

Suurem osa failist kirjeldab roboti põhja (base_link), esimest lüli (link_1) ja liigendit nende kahe lüli vahel.

Järgnevalt on toodud roboti põhja ja esimest lüli kirjeldavad joonised. Kõik mõõtmed joonistel on meetrites.

Roboti põhja geomeetria ja mõõtmed:
.

Roboti esimese lüli geomeetria ja mõõtmed:
.

Muuda nüüd URDF faili selliselt, et robotil oleks veel üks lüli (paneme sellele nimeks link_2). See lüli on täpselt sama geomeetriaga nagu link_1.

Loo liigend, mis seob 2. lüli pöördliigendiga 1. lüli tipu külge.

Peale muudatuste tegemist visualiseeri robot, et veenduda, et kõik sai õigesti. Hetkel võiks tulemus olla selline:
.

Kui läks valesti

Tagasi algseisu saamiseks otsi lähtekoodi aironboti GitHubi repositooriumist: https://github.com/unitartu-edu/aironbot_description

Meie manipulaator ei ulatu veel eriti kaugele. Lisa sellele veel kaks lüli: link_3 ja link_4, mis on sama geomeetriaga nagu juba olemasolevad lülid.

Tulemus peaks olema sarnane järgneva pildiga.

.

Meie manipulaator ulatub juba üsna kaugele, aga praegu ei saa see veel asjadest kinni võtta. Enamasti paikneb manipulaatorrobotite otsas mõni tööriist, nt haarats.

Lisame oma mudelile haaratsi. See on samuti füüsiline lüli nagu kõik eelnevad, aga see on teistsuguse geomeetriaga. Haaratsi geomeetria on kirjeldatud gripper.stl failis, mis asub aironbot_description/meshes kataloogis.

Haaratsi lisamisel pane tähele, et seda lüli on vaja pöörata, et see sobituks 4. lüli tipuga. Kasuta haaratsi pööramiseks rpy (roll, pitch, yaw) väärtusi.

Haarats näeb välja selline:
.

Peale haaratsi lisamist peaks tulemus sarnanema järgnevaga:

.

.

Mudeli lõpetuseks lisame URDF faili veel ühe lüli. Erinevalt eelmistest lülidest on see lüli virtuaalne, mitte füüsiline. See lüli on vajalik, kui tahame näidata manipulaatori tiputööriista asukohta, näiteks mõnes rakenduses. Sel juhul annab virtuaalne lüli meile referentspunkti.

Virtuaalse lüli loomine käib samamoodi nagu füüsilise lüli loomine. Erinevus seisneb selles, et URDF failis tuleks selle lüli jaoks jätta ära märgendiga visual ümbritsetud sisu.

Olgu kogu lüli kirjeldus selline:

<link name="tool_0"/>

Seo virtuaalne tööriist fikseeritud liigendi (fixed) abil haaratsi haarade vahele.

Tulemus peaks välja nägema selline:

.

Valmis robot näeb välja ja liigub nii, nagu allolevas animatsioonis. Sellel peaks olema base_link, link_1, link_2, link_3, link_4, haarats füüsilise lülina ja tool_0 virtuaalse lülina.

.