{"id":83,"date":"2024-04-04T08:01:29","date_gmt":"2024-04-04T05:01:29","guid":{"rendered":"https:\/\/sisu.ut.ee\/rosak\/ratasroboti-simuleeritud-juhtimine\/"},"modified":"2024-04-05T11:56:23","modified_gmt":"2024-04-05T08:56:23","slug":"ratasroboti-simuleeritud-juhtimine","status":"publish","type":"page","link":"https:\/\/sisu.ut.ee\/rosak\/ratasroboti-simuleeritud-juhtimine\/","title":{"rendered":"Kodut\u00f6\u00f6. Ratasroboti simuleeritud juhtimine"},"content":{"rendered":"<blockquote>\r\n\t<p>\r\n\t\t<strong><span id=\"docs-internal-guid-78230e3d-7fff-9637-3e5c-2633df2f63f4\">Selles harjutuses paneme kokku eelnevalt \u00f5pitu: loome k\u00e4ivitusfaili, mis kuvab eelnevalt loodud parametriseeritud neljarattalist robotit ja lubab sellega ka simulatsioonis ringi s\u00f5ita.<\/span><\/strong>\r\n\t<\/p>\r\n\r\n\t<p>\r\n\t\t<em>Samm-sammulise juhendi vaatamiseks klikka harjutuse vahepealkirjadele.<\/em>\r\n\t<\/p>\r\n<\/blockquote>\r\n\r\n<p>\r\n\t<span><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d4a4d1e7a15-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d4a4d1e7a15-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d4a4d1e7a15-collapse\"><strong>Kirjelduse t\u00e4iendamine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d4a4d1e7a15-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d4a4d1e7a15-heading\">\n            <div class=\"accordion-body\"><span id=\"docs-internal-guid-228d8501-7fff-614d-4575-9fb7ad9fedbc\">Ava RVizis eelnevalt loodud t\u00e4ielikult parametriseeritud neljarattaline robot. Hetkel on see suhteliselt paigalseisev robot. V\u00e4ikeste h\u00e4kkidega saame aga sellegi roboti panna RVizi aknas ringi s\u00f5itma. Selleks kasutame s\u00f5lme nimega <\/span><span style=\"font-family:Courier New,Courier,monospace\">fake_driver_node<\/span><span>, mille abil oleme tegelikult juba varem robotondi robotiga RVizi aknas ringi s\u00f5itnud.<\/span>\r\n\r\n\r\n<p>\r\n\t<span style=\"font-family:Courier New,Courier,monospace\"><span id=\"docs-internal-guid-7eb83910-7fff-6e98-e727-13978c41c2fe\">fake_driver_node<\/span><\/span><span> otsib l\u00fcli nimega <span style=\"font-family:Courier New,Courier,monospace\">base_footprint<\/span> ning juhib seda. Seega on meil vaja roboti s\u00f5idutamiseks luua sellise nimega l\u00fcli ja \u00fchendada see sobiva liigendi abil robotiga.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-e5905a06-7fff-f611-4af0-69ad5d7a8a2e\">Ava <span style=\"font-family:Courier New,Courier,monospace\">fourwheeler.urdf.xacro<\/span> fail ja t\u00e4ienda seda, luues ilma v\u00e4lise ilmeta (st ilma <span style=\"font-family:Courier New,Courier,monospace\">visual<\/span> m\u00e4rgendita) l\u00fcli nimega <span style=\"font-family:Courier New,Courier,monospace\">base_footprint<\/span>. \u00dchenda see liikumatu liigendi abil roboti kere l\u00fcliga <span style=\"font-family:Courier New,Courier,monospace\">base_link<\/span> nii, et liigendi \u00fcleml\u00fcli oleks <span style=\"font-family:Courier New,Courier,monospace\">base_footprint<\/span>, alaml\u00fcli <span style=\"font-family:Courier New,Courier,monospace\">base_link<\/span> ning et <span style=\"font-family:Courier New,Courier,monospace\">base_footprint<\/span> asetseks roboti all, rataste alumise servaga samal k\u00f5rgusel \u201cmaas\u201d.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-465464e3-7fff-3d7f-b6d7-a160bdfda7c2\">Testi uut kirjeldust, kuvades neljarattalist s\u00f5idukit uuesti RVizi abiga.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span><\/span><\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div><\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d4a4d1e7a1f-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d4a4d1e7a1f-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d4a4d1e7a1f-collapse\"><strong>Roboti juhtimine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d4a4d1e7a1f-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d4a4d1e7a1f-heading\">\n            <div class=\"accordion-body\">\r\n\r\n\r\n<p>\r\n\tKuva RVizis uuesti oma neljarattalist robotit (v\u00f5i kui seda pole vahepeal seisma pandud, siis \u00e4ra seda ka praegu seiska).\r\n<\/p>\r\n\r\n<p>\r\n\t<span>Selleks, et robotit p\u00e4riselt klaviatuurilt juhtida, peab lisaks roboti kuvamisele k\u00e4ivitama ka s\u00f5lme, mis suudab simuleerida roboti liikumist. Selle nimi on <span style=\"font-family:Courier New,Courier,monospace\">fake_driver_node<\/span> ja ta asub kimbus <span style=\"font-family:Courier New,Courier,monospace\">robotont_driver<\/span>. K\u00e4ivita see s\u00f5lm uues terminaliaknas.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-0c23c3ce-7fff-5a72-bb45-49940038eecb\">N\u00fc\u00fcd peaksid saama seada RViz akna vasakus servas \u201cDisplays\u201d paneelis \u201cFixed Frame\u201d v\u00e4\u00e4rtuseks \u201codom\u201d, nagu n\u00e4idatud pildil:<\/span><br><img loading=\"lazy\" decoding=\"async\" width=\"344\" height=\"190\" class=\"alignnone wp-image-189\" src=\"https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/kuvatommis_2022-10-10_22-58-58.png\" title=\"kuvatommis_2022-10-10_22-58-58.png\" alt=\".\" srcset=\"https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/kuvatommis_2022-10-10_22-58-58.png 344w, https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/kuvatommis_2022-10-10_22-58-58-300x166.png 300w\" sizes=\"auto, (max-width: 344px) 100vw, 344px\">\r\n<\/p>\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-abb96986-7fff-a546-1c7f-216040154701\">Viimase asjana k\u00e4ivita veel \u00fches terminaliaknas juba tuttav s\u00f5lm <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> ja s\u00f5ida robotiga ringi.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span><\/span><\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div><\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d4a4d1e7a25-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d4a4d1e7a25-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d4a4d1e7a25-collapse\"><strong>K\u00e4ivitusfaili tegemine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d4a4d1e7a25-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d4a4d1e7a25-heading\">\n            <div class=\"accordion-body\">K\u00f5igi nende s\u00f5lmede eraldi k\u00e4imapanemine eri terminaliakendes on natuke tobe. N\u00fc\u00fcd on meil aga ka tegelikult piisavalt oskusi, et luua \u00fcks k\u00e4ivitusfail, mis seda k\u00f5ike korraga teeb \u2013 siis saame k\u00e4ivitada ainult selle.\r\n\r\n\r\n<p>\r\n\t<span>Viimase asjana loogi k\u00f5igi nende s\u00f5lmede samaaegselt k\u00e4imapanemiseks uus k\u00e4ivitusfail. See k\u00e4ivitusfail peaks:<\/span>\r\n<\/p>\r\n\r\n<ul id=\"docs-internal-guid-c1a343a9-7fff-8a94-548f-164da5e2bdea\" style=\"margin-top:0;margin-bottom:0;padding-inline-start:48px\">\r\n\t<li dir=\"ltr\">\r\n\t\t<p dir=\"ltr\" role=\"presentation\" style=\"line-height:1.38;margin-top:0pt;margin-bottom:0pt\">\r\n\t\t\t<span>Laadima parameetriserverisse roboti kirjelduse<\/span>\r\n\t\t<\/p>\r\n\t<\/li>\r\n\t<li dir=\"ltr\">\r\n\t\t<p dir=\"ltr\" role=\"presentation\" style=\"line-height:1.38;margin-top:0pt;margin-bottom:0pt\">\r\n\t\t\t<span>K\u00e4ivitama RVizi konfiguratsioonifailiga, mis kuvab t\u00e4ielikult parametriseeritud robotit<\/span>\r\n\t\t<\/p>\r\n\t<\/li>\r\n\t<li dir=\"ltr\">\r\n\t\t<p dir=\"ltr\" role=\"presentation\" style=\"line-height:1.38;margin-top:0pt;margin-bottom:0pt\">\r\n\t\t\t<span>K\u00e4ivitama s\u00f5lme <span style=\"font-family:Courier New,Courier,monospace\">robot_state_publisher<\/span> kimbust <span style=\"font-family:Courier New,Courier,monospace\">robot_state_publisher<\/span><\/span>\r\n\t\t<\/p>\r\n\t<\/li>\r\n\t<li dir=\"ltr\">\r\n\t\t<p dir=\"ltr\" role=\"presentation\" style=\"line-height:1.38;margin-top:0pt;margin-bottom:0pt\">\r\n\t\t\t<span>K\u00e4ivitama s\u00f5lme <span style=\"font-family:Courier New,Courier,monospace\">joint_state_publisher_gui<\/span> kimbust <span style=\"font-family:Courier New,Courier,monospace\">joint_state_publisher_gui<\/span><\/span>\r\n\t\t<\/p>\r\n\t<\/li>\r\n\t<li dir=\"ltr\">\r\n\t\t<p dir=\"ltr\" role=\"presentation\" style=\"line-height:1.38;margin-top:0pt;margin-bottom:0pt\">\r\n\t\t\t<span>K\u00e4ivitama s\u00f5lme <span style=\"font-family:Courier New,Courier,monospace\">fake_driver_node<\/span> kimbust <span style=\"font-family:Courier New,Courier,monospace\">robotont_driver<\/span><\/span>\r\n\t\t<\/p>\r\n\t<\/li>\r\n\t<li dir=\"ltr\">\r\n\t\t<p dir=\"ltr\" role=\"presentation\" style=\"line-height:1.38;margin-top:0pt;margin-bottom:0pt\">\r\n\t\t\t<span>K\u00e4ivitama 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><\/span>\r\n\t\t<\/p>\r\n\t<\/li>\r\n<\/ul>\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-5e152dcc-7fff-7af6-daa5-6062700ee9a9\">Loo vastav k\u00e4ivitusfail ning testi seda, sulgedes k\u00f5ik ROSi s\u00f5lmed ning k\u00e4ivitades siis k\u00f5ik vajalikud \u00fchekorraga k\u00e4ivitusfaili abil.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<strong>Tee ka robot v\u00e4hemalt \u00fche meetri jagu laiemaks ja muuda peale selle XACRO failis veel \u00fcht vabalt valitud parameetrit!<\/strong>\r\n<\/p>\r\n\r\n<p>\r\n\t<strong>L\u00f5pptulemus peaks v\u00e4lja n\u00e4gema umbes j\u00e4rgmine <\/strong>(siin ei ole robotit laiemaks tehtud)<strong>:<\/strong>\r\n<\/p>\r\n\r\n<div class=\"h5p-iframe-wrapper\"><div class=\"video-placeholder-wrapper video-placeholder-wrapper--fixed\" style=\"height: 366px;\">\n\t\t\t    <div class=\"video-placeholder d-flex justify-content-center align-items-center\">\n\t\t\t        <div class=\"overlay text-white p-2 w-100 text-center d-block justify-content-center align-items-center\">\n\t\t\t            <div>Kolmandate osapoolte sisu n\u00e4gemiseks palun n\u00f5ustu k\u00fcpsistega.<\/div>\n\t\t\t            <button class=\"btn btn-secondary btn-sm mt-1 consent-change\">Muuda n\u00f5usolekut<\/button>\n\t\t\t        <\/div>\n\t\t\t    <\/div>\n\t\t\t<\/div>\n<\/div>\r\n\r\n<p>\r\n\t<span><\/span><\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div><\/span>\r\n<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Selles harjutuses paneme kokku eelnevalt \u00f5pitu: loome k\u00e4ivitusfaili, mis kuvab eelnevalt loodud parametriseeritud neljarattalist robotit ja lubab sellega ka simulatsioonis ringi s\u00f5ita. Samm-sammulise juhendi vaatamiseks klikka harjutuse vahepealkirjadele. Kirjelduse t\u00e4iendamine Ava RVizis eelnevalt loodud t\u00e4ielikult parametriseeritud neljarattaline robot. Hetkel on &#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-83","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/83","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=83"}],"version-history":[{"count":3,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/83\/revisions"}],"predecessor-version":[{"id":422,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/83\/revisions\/422"}],"wp:attachment":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/media?parent=83"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}