{"id":58,"date":"2024-04-04T08:01:26","date_gmt":"2024-04-04T05:01:26","guid":{"rendered":"https:\/\/sisu.ut.ee\/rosak\/roslaunch-ja-rosrun\/"},"modified":"2024-04-04T08:03:56","modified_gmt":"2024-04-04T05:03:56","slug":"roslaunch-ja-rosrun","status":"publish","type":"page","link":"https:\/\/sisu.ut.ee\/rosak\/roslaunch-ja-rosrun\/","title":{"rendered":"6. Roscore, roslaunch ja rosrun"},"content":{"rendered":"<blockquote>\n<p>\n\t\t<strong>ROSis on vajalike protsesside k\u00e4ivitamiseks kaks sarnast k\u00e4sku: <span style=\"font-family:Courier New,Courier,monospace\">rosrun<\/span> ja <span style=\"font-family:Courier New,Courier,monospace\">roslaunch<\/span>. Mis on nende erinevus ja kuidas neid kasutada? Mida teeb k\u00e4sk <span style=\"font-family:Courier New,Courier,monospace\">roscore<\/span>?<\/strong>\n\t<\/p>\n<p>\n\t\tSelle harjutuse l\u00e4bimiseks on vaja Ubuntu ja ROSiga arvutit ning kimpe <span style=\"font-family:Courier New,Courier,monospace\">teleop_twist_keyboard<\/span>, <span style=\"font-family:Courier New,Courier,monospace\">robotont_demos<\/span>, <span style=\"font-family:Courier New,Courier,monospace\">robotont_driver<\/span>, <span style=\"font-family:Courier New,Courier,monospace\">robotont_description<\/span> ja <span style=\"font-family:Courier New,Courier,monospace\">robotont_msgs<\/span>.\n\t<\/p>\n<p>\n\t\t<strong>See harjutus on m\u00f5eldud l\u00e4bimiseks ilma f\u00fc\u00fcsilise robotita.<\/strong>\n\t<\/p>\n<p>\n\t\t<em><span>Samm-sammulise juhendi vaatamiseks klikka harjutuse vahepealkirjadele.<\/span><\/em>\n\t<\/p>\n<\/blockquote>\n<p>\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1daefdf86f-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1daefdf86f-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1daefdf86f-collapse\">roscore<\/button>\n        <\/h2>\n        <div id=\"accordion-69d1daefdf86f-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1daefdf86f-heading\">\n            <div class=\"accordion-body\">Igas ROSi s\u00fcsteemis peab \u00fches kohas jooksma <strong>tuum<\/strong>.\n\n<p>\n\tKui kasutad <strong>f\u00fc\u00fcsilist robotondi robotit<\/strong>, siis k\u00e4ivitatakse tuum vaikimisi robotondi robotil.\n<\/p>\n<p>\n\tKui sa ei kasuta f\u00fc\u00fcsilist robotondi robotit, siis saad tuuma k\u00e4ivitada soovitud arvutis j\u00e4rgmise k\u00e4suga:\n<\/p>\n<pre>roscore<\/pre>\n<p>\n\tSee k\u00e4sk paneb tuuma t\u00f6\u00f6le.<strong> Kui sisestad selles aknas k\u00e4su Ctrl+C, siis tuuma t\u00f6\u00f6 l\u00f5ppeb. <\/strong>Seega kui soovid, et tuum t\u00f6\u00f6taks, siis j\u00e4ta see antud terminaliaknas t\u00f6\u00f6le ja uute k\u00e4skude sisestamiseks v\u00f5ta lahti uusi terminaliaknaid.\n<\/p>\n<p>\n\t<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\n\n<p>\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1daefdf875-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1daefdf875-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1daefdf875-collapse\">rosrun<\/button>\n        <\/h2>\n        <div id=\"accordion-69d1daefdf875-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1daefdf875-heading\">\n            <div class=\"accordion-body\">ROSi s\u00f5lmede k\u00e4ivitamiseks saab kasutada k\u00e4sku <span style=\"font-family:Courier New,Courier,monospace\">rosrun<\/span>.\n\n<p>\n\tK\u00e4su <span style=\"font-family:Courier New,Courier,monospace\">rosrun<\/span> k\u00e4ivitamiseks on vaja, et kusagil oleks k\u00e4ima pandud tuum.\n<\/p>\n<p>\n\tSelle k\u00e4su s\u00fcntaks on j\u00e4rgmine:\n<\/p>\n<pre>rosrun kimbu_nimi s\u00f5lme_faili_nimi<\/pre>\n<p>\n\tProovi k\u00e4ivitada s\u00f5lme <span style=\"font-family:Courier New,Courier,monospace\">teleop_twist_keyboard.py<\/span> kimbust <span style=\"font-family:Courier New,Courier,monospace\">teleop_twist_keyboard<\/span> n\u00f5nda, et <span style=\"font-family:Courier New,Courier,monospace\">roscore<\/span> on teises terminaliaknas k\u00e4ivitatud, ja ka nii, et see on peatatud. K\u00e4sk s\u00f5lme k\u00e4ivitamiseks on j\u00e4rgmine:\n<\/p>\n<pre>rosrun teleop_twist_keyboard teleop_twist_keyboard.py<\/pre>\n<p>\n\tSaad erinevad veateated: \u00fchel juhul kurdab programm, et keegi ei telli rubriigist <span style=\"font-family:Courier New,Courier,monospace\">cmd_vel<\/span> s\u00f5numeid, teisel juhul aga, et programm ei saa \u00fcldse \u00fchendust tuumaga.\n<\/p>\n<p>\n\t<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\n\n<p>\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1daefdf87c-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1daefdf87c-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1daefdf87c-collapse\">roslaunch<\/button>\n        <\/h2>\n        <div id=\"accordion-69d1daefdf87c-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1daefdf87c-heading\">\n            <div class=\"accordion-body\">ROSi s\u00f5lmi on v\u00f5imalik k\u00e4ivitada ka osana k\u00e4ivitusfailist. K\u00e4ivitusfailiga saab teha ka palju muud ja selle kohta \u00f5pime rohkem tulevatel n\u00e4dalatel.\n\n<p>\n\tK\u00e4su <span style=\"font-family:Courier New,Courier,monospace\">roslaunch<\/span> kasutamise s\u00fcntaks on j\u00e4rgmine:\n<\/p>\n<pre>roslaunch kimbu_nimi k\u00e4ivitusfaili_nimi<\/pre>\n<p>\n\tVaatame k\u00e4ivitusfaili <span style=\"font-family:Courier New,Courier,monospace\">teleop_keyboard.launch<\/span> kimbust <span style=\"font-family:Courier New,Courier,monospace\">robotont_demos<\/span>. Selle sisu on j\u00e4rgmine:\n<\/p>\n<pre>&lt;?xml version=\"1.0\" ?&gt;\r\n&lt;launch&gt;\r\n  &lt;node pkg=\"teleop_twist_keyboard\" name=\"teleop_twist_keyboard\" type=\"teleop_twist_keyboard.py\" output=\"screen\"&gt;\r\n    &lt;param name='~speed' value=\"0.1\" \/&gt;\r\n    &lt;param name='~turn' value=\"0.3\" \/&gt;\r\n  &lt;\/node&gt;\r\n&lt;\/launch&gt;<\/pre>\n<p>\n\tSee k\u00e4ivitusfail k\u00e4ivitab ainult \u00fche s\u00f5lme, mis on <span style=\"font-family:Courier New,Courier,monospace\">teleop_twist_keyboard.py<\/span> kimbust <span style=\"font-family:Courier New,Courier,monospace\">teleop_twist_keyboard<\/span> \u2013 seesama s\u00f5lm, mida k\u00e4ivitasime eelmises sammus. Lisaks m\u00e4\u00e4ratakse selle k\u00e4ivitusfailiga kiiruseparameetrid, mis erinevad <span style=\"font-family:Courier New,Courier,monospace\">teleop_twist_keyboard.py<\/span> vaikev\u00e4\u00e4rtustest.\n<\/p>\n<p>\n\tPane aga t\u00e4hele, et k\u00e4sk <span style=\"font-family:Courier New,Courier,monospace\">roslaunch<\/span> <strong>ei eelda<\/strong>, et kusagil on juba k\u00e4ima pandud ROSi tuum (<span style=\"font-family:Courier New,Courier,monospace\">roscore<\/span>). Kui tuum kusagil ei k\u00e4i, siis <span style=\"font-family:Courier New,Courier,monospace\">roslaunch<\/span> k\u00e4ivitab selle ise. Sellegipoolest v\u00f5ib m\u00f5nikord olla kasulik tuum ise k\u00e4ivitada.\n<\/p>\n<p>\n\tKatseta k\u00e4ivitusfaili k\u00e4ivitamist j\u00e4rgmise k\u00e4suga:\n<\/p>\n<pre>roslaunch robotont_demos teleop_keyboard.launch<\/pre>\n<p>\n\tPane t\u00e4hele, et ei saa kummalgi juhul veateadet, mis \u00fctleks, et tuumaga ei saa \u00fchendust, vaid m\u00f5lemal juhul \u00f6eldakse, et rubriigil <span style=\"font-family:Courier New,Courier,monospace\">cmd_vel<\/span> ei ole tellijaid.\n<\/p>\n<blockquote class=\"os-kollane\">\n<h4>\n\t\tMis vahe on <span style=\"font-family:Courier New,Courier,monospace\">rosrun<\/span> ja <span style=\"font-family:Courier New,Courier,monospace\">roslaunch<\/span> k\u00e4skudel?<br>\n\t<\/h4>\n<p>\n\t\t<span style=\"font-family:Courier New,Courier,monospace\">roslaunch<\/span> k\u00e4sk on m\u00f5eldud k\u00e4ivitusfailide ehk <span style=\"font-family:Courier New,Courier,monospace\">launch<\/span>-faililaiendiga failide jaoks. Sellega saab k\u00e4ivitada korraga nii \u00fche kui ka mitu s\u00f5lme \u2013 see oleneb k\u00e4ivitusfaili sisust.\n\t<\/p>\n<p>\n\t\t<span style=\"font-family:Courier New,Courier,monospace\">rosrun<\/span> k\u00e4sk aga on m\u00f5eldud \u00fche s\u00f5lme k\u00e4ivitamiseks. Kui see s\u00f5lm on kirjutatud Pythonis, siis antakse sellele k\u00e4sule argumentideks kimbu nimi ja Pythoni faili nimi, kui aga C++-is, siis kimbu nimi ja C++ l\u00e4htekoodist kompileeritud binaari nimi.\n\t<\/p>\n<\/blockquote>\n<p>\n\t<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>ROSis on vajalike protsesside k\u00e4ivitamiseks kaks sarnast k\u00e4sku: rosrun ja roslaunch. Mis on nende erinevus ja kuidas neid kasutada? Mida teeb k\u00e4sk roscore? Selle harjutuse l\u00e4bimiseks on vaja Ubuntu ja ROSiga arvutit ning kimpe teleop_twist_keyboard, robotont_demos, robotont_driver, robotont_description ja robotont_msgs. &#8230;<\/p>\n","protected":false},"author":98,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-58","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/users\/98"}],"replies":[{"embeddable":true,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":1,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/58\/revisions"}],"predecessor-version":[{"id":343,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/58\/revisions\/343"}],"wp:attachment":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/media?parent=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}