Skip to content

Instantly share code, notes, and snippets.

@Hyperadministrator
Last active November 3, 2023 19:47
Show Gist options
  • Save Hyperadministrator/4d4a2cd3a2eafa1ba582605973b53b34 to your computer and use it in GitHub Desktop.
Save Hyperadministrator/4d4a2cd3a2eafa1ba582605973b53b34 to your computer and use it in GitHub Desktop.
ROSi algkursuse terminoloogia, põhilised vajalikud käsud jms

ROSi algkursuse cheatsheet

Terminoloogia

2. moodul

  1. Sõlm (node) - konkreetsele ülesandele pühendatud programm. Need on protsessid, mis teevad ROSi süsteemis arvutusi. Tavaliselt toimetavad sõlmed paralleelselt ja saadavad üksteisele info vahetamiseks sõnumeid.
  2. Sõnum (message) - edastatav struktureeritud info
  3. Rubriik (topic) - nimeline suhtluskanal, mille kaudu saavad sõlmed omavahel sõnumeid vahetada.
  4. Kuulutaja (publisher) - sõlme osa, mis kuulutab sõnumeid kindlas rubriigis
  5. Tellija (subscriber) - sõlme osa, mis jälgib ja reageerib sõnumitele kindlas rubriigis
  6. Kimp (package) - funktsionaalne kogum sõlmi
  7. Tuum (roscore) - alati taustal viib sõlmi omavahel kokku

3. moodul

  1. Liigendi vabadusaste - Erinevate viiside hulk, kuidas liigend võib liikuda (pöördliigendil on näiteks vaid üks vabadusaste- pöörleb ümber oma telje, hõljuval liigendil aga 6)
  2. Kinemaatiline ahel - Süsteem, mis tekib järjestikku üksteisega ühendatud lülidest ja liigenditest
  3. Jadamanipulaator (serial manipulator) - lülid, mis on omavahel ühendatud pöördliigenditega, üks kinemaatilise ahela vormidest.
  4. Lüli positsioon - lüli asukoht ruumis
  5. Lüli orientatsioon - lüli pööratuse suund ja kaugus
  6. Lüli asend - positsioon + orientatsioon
  7. Liigendi olek (joint state) - Liigendite nurkade kogum, mille abil saab kirjeldada üheselt roboti iga osa asendit ja seeläbi taasluua kogu roboti asendi.
  8. Liigendiruum (joint space) - kõigi võimalike liigendiolekute kogum
  9. Pärikinemaatika (forward kinematics) - Info viimine liigendiruumist koordinaatruumi. Protsess, millega tuvastada liigendite nurkade ja nurkade muutumise andmete põhjal mõjuri asend ja liikumine. Vastab küsimusele "kuhu jõuab robotkäe haarats ruumis, kui sean liigendid etteantud nurkade alla?".
  10. Pöördkinemaatika (inverse kinematics) - Info viimine koordinaatruumist liigendiruumi. Protsess, mis aitab lahendada pärikinemaatikale vastupidist ülesannet: "kuidas viia robotkäe mõjur ruumis kirjeldatud koordinaadile". Teisisõnu vastab pöördkinemaatika küsimusele "milliste nurkade alla kõik liigendid seada, et robotkäsi jõuaks laual oleva õunani?".
  11. URDF (Unified Robot Description Format) - Andmestruktuur, mille abil kirjeldada, millistest lülidest robot koosneb ning kuidas need lülid teineteise suhtes liiguvad. URDF on ülesehitatud XML-i formaadile.
  12. XACRO (XML macros) - XML-põhine makrokeel, millega saab ROSi robotitele luua parametriseeritud mudeleid. Pm võtab aluseks URDF-failis defineeritud low-level klotsid ja žongleerib nendega kõrgemal tasemel.

Lisakäsud

  1. Kõigi kimpude kuvamine, mis süsteemi on installitud: rospack list-names

Käsud

Alamkäskude kohta saab kuvada terminalist otse ka infolehte. Näiteks rosnode -h, rostopic -h või rosmsg -h.

  1. Tuuma käivitamine: roscore
  2. Sõlmede kuvamine: rosnode list
  3. Sõlme info kuvamine (näiteks /fake_driver_node): rosnode info <sõlme nimi>
  4. Rubriikide kuvamine: rostopic list
  5. Rubriigi info kuvamine (näiteks /cmd_vel): rostopic info <rubriigi nimi>
  6. Sõnumi tüübi info kuvamine (näiteks geometry_msgs/Twist): rosmsg info <sõnumi tüübi nimi>
  7. Rõnumite jälgimine kindlast rubriigist reaalajas (näiteks rubriigist /cmd_vel): rostopic echo /cmd_vel
  8. Sõlmede käivitamine (eeldab, et kusagil on roscore käivitatud): rosrun <kimbu nimi> <sõlme faili nimi>
  9. Käivitusfailiga kimbu käivitamine (käivitab automaatselt ka roscore): roslaunch <kimbu nimi> <käivitusfaili nimi
  10. Kimpude kompileerimine: catkin build või catkin_make
  11. Kompileeritud catkin tööruumi laadimine aktiivsesse terminalisessiooni (käivita, olles ise catkini kaustas): source devel/setup.bash
  12. Robotondi digikaksiku käivitamine füüsikasimulaatoris: roslaunch robotont_gazebo gazebo.launch
  13. Füüsikasimulaatoris robotiga sõitmine (robot liigub vaid siis, kui selle käsu terminaliaken on aktiivne): roslaunch robotont_demos teleop_keyboard.launch
  14. Robotondi käivitamine visualiseerimistööriistas: roslaunch robotont_driver fake_driver.launch
  15. Rubriigi nime muutmine, kui näiteks Kuulutaja kuulutab rubriigis, mille nimi ei klapi sellega, millest Tellija peaks kuulama: rosrun <tellija kimbu nimi> <tellija sõlme nimi> <tellija kuulatava rubriigi nimi>:=<kuulutaja rubriigi nimi>. Näiteks rosrun turtlesim turtlesim_node turtle1/cmd_vel:=cmd_vel. NB! Täpselt sama saab teha ka vastupidiselt kuulutaja rubriigi ümbernimetamiseks- peaasi, et kuulutamine ja tellimine toimuks samanimelises rubriigis.
  16. ROSi kimbu loomine: catkin create pkg
  17. URDF-mudeli visualiseerimine (urdf-faili kaustast käivitatuna): roslaunch urdf_tutorial display.launch model:=fourwheeler.urdf

Töövood

Äsja paigaldatud kimbu installimine

cd ~/catkin_wd # Liigu catkini kausta
catkin build # Kompileeri
source devel/setup.bash # Lae kompileeritud muudatus terminali sessiooni (kui kasutad mitut terminali korraga, pead seda kõigis neis käivitama)

Rvizi seadistamine robotondiga sõitmiseks

  1. RVizi aknas on vasakul paneelil seaded, mille hulgas "Fixed Frame". Määra selle väärtuseks odom (kui väärtuseks on juba odom, siis on kõik hästi).
  2. Määra "Frame Rate" väärtuseks 10- nii on süsteem kiirem.

Isiklikud märkmed

roscore->kimp->sõlm alias roscore->package->node

cmd_vel = rubriik e. topic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment