Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
et:ros:subscribepublish [2019/05/24 05:11] ingmar05et:ros:subscribepublish [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== ROS kontseptsioon ====== ====== ROS kontseptsioon ======
  
-====== ROSi teegid ======+===== ROSi teegid =====
  
-ROSis on tarkvara organiseeritud teekidesse. Teek võib sisalsada ROSi sõlmi, andmetekogu, konfiguratsiooni faili, kolmanda osapoole tarkvara või ükskõik mida vajalikku programmi töötamiseks. teekide eesmärk on pakkuda kasulikke fuktsioone nii, et neid saaks lihtsalt erinevate eesmärkide täitmiseks ära kasutada.+ROSis on tarkvara organiseeritud teekidesse. Teek võib sisalsada ROSi sõlmi, andmetekogu, konfiguratsiooni faili, kolmanda osapoole tarkvara või ükskõik mida vajalikku programmi töötamiseks. Teekide eesmärk on pakkuda kasulikke fuktsioone nii, et neid saaks lihtsalt erinevate eesmärkide täitmiseks ära kasutada.
  
-Teeke saab installida kasutades linuxi paketi haldajat või paigutades need oma tööruumi src kataloogi. Pakett nimega ros-tutorials sisaldab teeke, mille abil on võimalik demonstreerida ROSi võimalusi ja mis on vajalikud selle õpetuse järgimiseks.+Teeke saab paigaldada kasutades Linuxi paketihaldajat //apt-get// või paigutades need oma tööruumi //src// kataloogi. Pakett nimega //ros-tutorials// sisaldab teeke, mille abil on võimalik demonstreerida ROSi võimalusi ja mis on vajalikud selle õpetuse järgimiseks.
  
-Installi pakett nimega ros-tutorials:+Paigalda pakett nimega //ros-tutorials//:
  
    $ sudo apt-get install ros-kinetic-ros-tutorials    $ sudo apt-get install ros-kinetic-ros-tutorials
-asenda ‘kinetic’ endale installitud ROSi jaotuse nimega (näiteks: indigo, jade, kinetic) 
  
-Kui pakett on edukalt installitud tuleb ka töökeskkond uuesti kompileerida:+Kui pakett on edukalt paigaldatud tuleb töökeskkond uuesti kompileerida:
  
    $ catkin_make #kompileeri töökeskkond    $ catkin_make #kompileeri töökeskkond
  
-====== Roscore ======+===== Roscore =====
  
-Roscore on kogumik sõlmedest ja programmidest, mis on ROS-põhise süsteemi eeltingimused. Selleks et ROSi sõlmed saaksid oma vahel suheda peab käima ros master sõlm. Selle sõlme saab käivitada käsuga roscore.+//Roscore// on kogumik sõlmedest ja programmidest, mis on ROS-põhise süsteemi eeltingimused. Sellekset ROSi sõlmed saaksid omavahel suheda peab töötama //ros master// sõlm. Selle sõlme saab käivitada käsuga //roscore//.
  
-Ava uus terminali aken(Ctrl+Alt+T) ja käivita roscore:+Ava uus terminali aken(Ctrl+Alt+T) ja käivita //roscore//:
  
    $ roscore    $ roscore
-Kui kõik on õigesti konfigureeritud peaks terminali ilmuma midagi sellist:+Kui kõik on õigesti seadistatud peaks terminali ilmuma midagi sellist:
  
    ... logging to ~/.ros/log/9cf88ce4-b14d-11df-8a75-00251148e8cf/roslaunch-machine_name-13039.log    ... logging to ~/.ros/log/9cf88ce4-b14d-11df-8a75-00251148e8cf/roslaunch-machine_name-13039.log
Line 50: Line 49:
    started core service [/rosout]    started core service [/rosout]
  
-Korraga peab käima ainult üks roscore. Nüüd saavad ROSi sõlmed oma vahel suhelda.+Korraga tohib käia ainult üks //roscore//. Nüüd saavad ROSi sõlmed oma vahel suhelda.
  
-====== Avaldaja ja Tellija ======+===== Avaldaja ja Tellija =====
  
-Kogu ROSi süsteem on üles ehitatud sõlmedele ja teemadele. Sõlm on konkreetsele ülesandele pühendatud programm. Sõlmed saavad omavahel suhelda läbi erinevate teemade. Sõlmed saavad teemadesse sõnumeid avaldada ja teemasid tellida, et nendest sõnumeid lugeda. Eespool installisid sa paketi nimega ros-tutorials. See pakett sisaldab kahte sõlme. Esimese sõlme nimi on talker, mis avaldab teksti “hello world” teemasse /chatter.+Kogu ROSi süsteem on üles ehitatud sõlmedele ja teemadele. Sõlm on konkreetsele ülesandele pühendatud programm. Sõlmed saavad omavahel suhelda läbi erinevate teemade. Sõlmed saavad teemadesse sõnumeid avaldada ja teemasid tellida, et nendest sõnumeid lugeda. Eespool paigaldasid sa paketi nimega //ros-tutorials//. See pakett sisaldab kahte sõlme. Esimese sõlme nimi on //talker//, mis avaldab teksti “hello world” teemasse ///chatter//.
  
-Kasutame käsku rosrun, et käitada sõlm.+Kasutame käsku //rosrun//, et käivitada sõlm.
  
-Ava uus terminali aken(Ctrl+Alt+T) ja käivita seal sõlm nimega talker:+Ava uus terminali aken(Ctrl+Alt+T) ja käivita seal sõlm nimega //talker//:
  
    $ rosrun rospy_tutorials talker    $ rosrun rospy_tutorials talker
-Veendu, et roscore käib, ilme selleta ei saa sõlme käivitada. Kui sõlme jooksutamine õnnestub terminali peaks ilmuma:+Veendu, et //roscore// käib, ilme selleta ei saa sõlme käivitada. Kui sõlme käivitamine õnnestub peaks terminali ilmuma:
  
    [INFO] [WallTime: 1314931831.774057] hello world 1314931831.77    [INFO] [WallTime: 1314931831.774057] hello world 1314931831.77
Line 69: Line 68:
    [INFO] [WallTime: 1314931835.784853] hello world 1314931835.78    [INFO] [WallTime: 1314931835.784853] hello world 1314931835.78
    [INFO] [WallTime: 1314931836.788106] hello world 1314931836.79    [INFO] [WallTime: 1314931836.788106] hello world 1314931836.79
-Avaldaja käib ja avaldab sõnumeid teemasse /chatter, nüüd on vaja tellijat, mis antud sõnumeid loeb.+Avaldaja käib ja avaldab sõnumeid teemasse ///chatter//, nüüd on vaja tellijat, mis antud sõnumeid loeb.
  
-Teise sõlme nimi on listener” ja see tellib teema /chatter ning hakkab sellesse teemasse saadetud sõnumeid ekraanile kuvama.+Teise sõlme nimi on //listener// ja see tellib teema ///chatter// ning hakkab sellesse teemasse saadetud sõnumeid ekraanile kuvama.
  
-Ava uus terminali aken(Ctrl+Alt+T) ja käivita tellija nimega listener:+Ava uus terminali aken(Ctrl+Alt+T) ja käivita tellija nimega //listener//:
  
    $ rosrun rospy_tutorials listener    $ rosrun rospy_tutorials listener
-Kui terminali ilmuvad talkeri poolt saadetud sõnumid, siis käivitas sõlm ennast edukalt, tellis teema /chatter ja sõlmed suhtlevad nüüd edukalt läbi ROSi:+Kui terminali ilmuvad //talker// poolt saadetud sõnumid, siis käivitas sõlm ennast edukalt, tellis teema ///chatter// ja sõlmed suhtlevad nüüd edukalt läbi ROSi:
  
    [INFO] [WallTime: 1314931969.258941] /listener_17657_1314931968795I heard hello world 1314931969.26    [INFO] [WallTime: 1314931969.258941] /listener_17657_1314931968795I heard hello world 1314931969.26
Line 85: Line 84:
    [INFO] [WallTime: 1314931974.277694] /listener_17657_1314931968795I heard hello world 1314931974.28    [INFO] [WallTime: 1314931974.277694] /listener_17657_1314931968795I heard hello world 1314931974.28
    [INFO] [WallTime: 1314931975.283708] /listener_17657_1314931968795I heard hello world 1314931975.28    [INFO] [WallTime: 1314931975.283708] /listener_17657_1314931968795I heard hello world 1314931975.28
-ROSi baasil töötaval robotil on tavaliselt väga palju sõlmi, millest igal on oma eraldi ülesanne. Sõlmed võivad ka paikneda erinevates arvutites ja suhelda läbi erinevate protokollide. Nüüd tutvume aga ROSiga kaasnevate tööriistatega, mis võimaldavad meil sõlmi ja teemasid jälgida ja haldada.+ROSi baasil töötaval robotil on tavaliselt väga palju sõlmi, millest igal on oma eraldi ülesanne. Sõlmed võivad paikneda erinevates arvutites ja suhelda läbi erinevate protokollide. Nüüd tutvume aga ROSiga kaasnevate tööriistatega, mis võimaldavad meil sõlmi ja teemasid jälgida ja haldada.
  
-{{:et:ros:talklist.png?600|}}+{{:et:ros:ros_pubsub_2_.png?700|}}
  
-====== Rostopic ======+===== Rostopic =====
  
-Esimene tööriist, mida vaatame on rostopic. Rostopic on tööriist, mille abil on võimalik ROSi teemasid jälgida ja haldada.+Esimene tööriist, mida vaatame on //rostopic////Rostopic// on tööriist, mille abil on võimalik ROSi teemasid jälgida ja hallata.
  
-rostopic käsu saatmisel kuvatakse kõik viisid, kuidas seda kasutada saab:+//rostopic// käsu sisestamisel kuvatakse kõik viisid, kuidas seda kasutada saab:
  
    $ rostopic    $ rostopic
Line 110: Line 109:
    /rosout    /rosout
    /rosout_agg    /rosout_agg
-/chatter on teema, mille kaudu suhtlevad talker ja listener+///chatter// on teema, mille kaudu suhtlevad //talker// ja //listener//
  
-kasutame käsku rostopic info, et kuvada teema kohta vajalikku informatsiooni:+kasutame käsku //rostopic info//, et kuvada teema kohta vajalikku informatsiooni:
  
    $ rostopic info /chatter    $ rostopic info /chatter
Line 122: Line 121:
    Subscribers:     Subscribers: 
     * /listener_12836_1542817212996 (http://raivo-HP-EliteBook:34711/)     * /listener_12836_1542817212996 (http://raivo-HP-EliteBook:34711/)
-Kuvatakse, millised sõlmed on teemat tellinud ja millised teemasse avaldavad, lisaks näeme ka sõnumi tüüp, milleks on std_msgs/String.+Kuvatakse, millised sõlmed on teemat tellinud ja millised teemasse avaldavad, lisaks näeme ka sõnumi tüüp, milleks on //std_msgs/String//.
  
-kasutame rostopic hz, et näha sõnumite sagedust:+kasutame //rostopic hz//, et näha sõnumite sagedust:
  
    $ rostopic hz /chatter     $ rostopic hz /chatter 
Line 130: Line 129:
    average rate: 10.005    average rate: 10.005
     min: 0.100s max: 0.100s std dev: 0.00017s window: 10     min: 0.100s max: 0.100s std dev: 0.00017s window: 10
-Näeme, et sõnumite keskmine sagedus on umbes 10 Hz. (Ctrl+C et sõnumeid katkestada)+Näeme, et sõnumite keskmine sagedus on umbes 10 Hz. (Ctrl+C katkestab protsessi)
  
-Kasutame käsku echo, et kuvada teemasse saadetud sõnumid ekraanile:+Kasutame käsku //echo//, et kuvada teemasse saadetud sõnumid ekraanile:
  
    $ rostopic echo /chatter     $ rostopic echo /chatter 
Line 145: Line 144:
    data: "hello world 1542817744.31"    data: "hello world 1542817744.31"
    ---    ---
-Kasutame käsku pub, et avaldada sõnum teemasse:+Kasutame käsku //pub//, et avaldada sõnum teemasse:
  
    $ rostopic pub /chatter std_msgs/String "data: 'tere maailm'"     $ rostopic pub /chatter std_msgs/String "data: 'tere maailm'" 
Line 167: Line 166:
 ====== Rqt_graph ====== ====== Rqt_graph ======
        
-ROSiga kaasnevad ka mõningad graafilised tööriistad. Rqt_graph kujutab graafiliselt, kuidas millised sõlmed omavahel suhtlevad. Võimalik on ka sõlmi ja teemasid erinevalt filtreerida. rqt_graph võimaldab ka graafiku pdf formaadis salvestada.+ROSiga kaasnevad ka mõningad graafilised tööriistad. //Rqt_graph// kujutab graafiliselt, kuidas millised sõlmed omavahel suhtlevad. Võimalik on ka sõlmi ja teemasid erinevalt filtreerida. //rqt_graph// võimaldab graafiku //pdf// formaadis salvestada.
  
-käivita rqt_graph:+käivita //rqt_graph//:
  
    $ rqt_graph    $ rqt_graph
 {{:et:ros:rqt_graph.png|}} {{:et:ros:rqt_graph.png|}}
  
-Käsu käivitamisel avaneb graafiline kasutajaliides. Näeme, et talker avaldab sõnumeid teemasse /chatter ja listener kuulab neid.+Käsu käivitamisel avaneb graafiline kasutajaliides. Näeme, et //talker// avaldab sõnumeid teemasse ///chatter// ja //listener// kuulab neid.
  
-Keerukamate ülesannetega robotite peal töötab tavaliselt palju erinevaid sõlmi, mis suhtlevad mitmete teemade kaudu. Käsurea pealt on raske üldist pilti näha ja selleks kasutataksegi rqt_graphi.+Keerukamate ülesannetega robotite peal töötab tavaliselt palju erinevaid sõlmi, mis suhtlevad mitmete teemade kaudu. Käsurea pealt on raske üldist pilti näha ja selleks kasutataksegi //rqt_graph// programmi.
  
 Näide graafikust keerukama roboti peal: Näide graafikust keerukama roboti peal:
Line 184: Line 183:
 ====== Rosnode ====== ====== Rosnode ======
  
-Kasutame käsku rosnode list, et kuvada kõik hetkel töötavad sõlmed.+Kasutame käsku //rosnode list//, et kuvada kõik hetkel töötavad sõlmed.
  
    $ rosnode list    $ rosnode list
Line 190: Line 189:
    /rosout    /rosout
    /talker_12621_1542817185271    /talker_12621_1542817185271
-Kasutame käsku rosnode info, et kuvada sõlme kohta vajalikku informatsiooni:+Kasutame käsku //rosnode info//, et kuvada sõlme kohta vajalikku informatsiooni:
  
    $ rosnode info /talker_12621_1542817185271     $ rosnode info /talker_12621_1542817185271 
et/ros/subscribepublish.1558674669.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0