{"id":46,"date":"2024-04-04T08:01:25","date_gmt":"2024-04-04T05:01:25","guid":{"rendered":"https:\/\/sisu.ut.ee\/rosak\/autonoomne-navigeerimine\/"},"modified":"2024-04-04T08:03:57","modified_gmt":"2024-04-04T05:03:57","slug":"autonoomne-navigeerimine","status":"publish","type":"page","link":"https:\/\/sisu.ut.ee\/rosak\/autonoomne-navigeerimine\/","title":{"rendered":"Kodut\u00f6\u00f6. Autonoomne navigeerimine"},"content":{"rendered":"<blockquote>\n<p>\n\t\t<strong>Siin harjutuses \u00f5pime, kuidas kaardi abil autonoomselt navigeerida.<\/strong>\n\t<\/p>\n<p>\n\t\t<em>Harjutuse l\u00e4bimiseks klikka vahepealkirjadele.<\/em>\n\t<\/p>\n<\/blockquote>\n<blockquote class=\"os-kollane\">\n<h4>\n\t\tLiiga palju terminaliaknaid!<br>\n\t<\/h4>\n<p>\n\t\tSelles harjutuses on vaja k\u00e4ivitada p\u00e4ris palju erinevaid s\u00f5lmi eri terminaliaknates. Kui soovid, v\u00f5id luua endale selle jaoks k\u00e4ivitusfaili, mis vastavad s\u00f5lmed k\u00e4ima paneb.\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-69d13d75ed933-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d13d75ed933-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d13d75ed933-collapse\"><strong>Robot valmis<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d13d75ed933-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d13d75ed933-heading\">\n            <div class=\"accordion-body\">Sea valmis oma robot v\u00f5i simulaator. Roboti puhul on vaja, et ta oleks sisse l\u00fclitatud ja eelnevalt kaardistatud alas. Simulaatori puhul on vaja k\u00e4ivitada Gazebo simulatsioon, mis sisaldab eelnevalt kaardistatud ala ja robotit sobiva sensoriga.\n\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-69d13d75ed939-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d13d75ed939-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d13d75ed939-collapse\"><strong>Kaardi laadimine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d13d75ed939-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d13d75ed939-heading\">\n            <div class=\"accordion-body\">N\u00fc\u00fcd on meil vaja ROSile ette anda eelnevalt loodud kaart. Liigu terminalis kausta, kuhu eelnevalt salvestasid kaardi. Tuleta meelde, mis nimega faili salvestasid sellele keskkonnale vastava kaardi, ja laadi see j\u00e4rgmise k\u00e4suga (kus kaardi nimi on asendatud \u00f5ige nimega, nime l\u00f5pus laiend <span style=\"font-family:Courier New,Courier,monospace\">.yaml<\/span>):\n\n<pre>rosrun map_server map_server minu_kaardi_nimi.yaml<\/pre>\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-69d13d75ed93c-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d13d75ed93c-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d13d75ed93c-collapse\"><strong>Lokaliseerimine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d13d75ed93c-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d13d75ed93c-heading\">\n            <div class=\"accordion-body\">Seekord ei ole meil vaja samaaegselt kaardistada ja lokaliseerida. Selle asemel peame tegelema lihtsalt lokaliseerimisega. Selleks kasutame meetodit nimega \u201cadaptiivne Monte Carlo lokaliseerimine\u201d, mida v\u00f5ime l\u00fchendada kui <span style=\"font-family:Courier New,Courier,monospace\">amcl<\/span> ja mis on keeruline nimi \u00fche t\u00f5en\u00e4osusp\u00f5hise asukohaleidmise meetodi jaoks.\n\n<p>\n\tSelleks kasutame s\u00f5lme <span style=\"font-family:Courier New,Courier,monospace\">amcl<\/span> kimbust <span style=\"font-family:Courier New,Courier,monospace\">amcl<\/span>:\n<\/p>\n<pre>rosrun amcl amcl<\/pre>\n<blockquote class=\"os-kollane\">\n<h4>\n\t\tPilt virvendab?<br>\n\t<\/h4>\n<p>\n\t\tKontrolli, ega kaardistamiss\u00f5lm <span style=\"font-family:Courier New,Courier,monospace\">gmapping<\/span> kimbust pole k\u00e4ima pandud! N\u00fc\u00fcd, kui meil kaart juba olemas, ei ole meil enam aktiivselt kaardistamisega vaja tegeleda.\n\t<\/p>\n<\/blockquote>\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-69d13d75ed93f-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d13d75ed93f-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d13d75ed93f-collapse\"><strong>Planeerimine ja navigeerimine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d13d75ed93f-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d13d75ed93f-heading\">\n            <div class=\"accordion-body\">Rajaplaneerimine ja autonoomne navigeerimine on ROSis samuti olemas. Selleks, et neid kasutada, on meil olemas kimp nimega <span style=\"font-family:Courier New,Courier,monospace\">move_base<\/span>.\n\n<h2>\n\tSimulaatoris:<br>\n<\/h2>\n<p>\n\tSellest kimbust s\u00f5lme k\u00e4ivitamiseks \u00f5igete parameetritega on k\u00e4ivitusfail kimbus <span style=\"font-family:Courier New,Courier,monospace\">robotont_navigation<\/span>. Sobiv k\u00e4sk selle k\u00e4ivitamiseks on meile igati tuttaval kujul:\n<\/p>\n<pre>roslaunch robotont_navigation move_base.launch<\/pre>\n<h2>\n\tP\u00e4ris robotil:<br>\n<\/h2>\n<p>\n\tMeil on vaja k\u00e4ivitada nii <span style=\"font-family:Courier New,Courier,monospace\">move_base<\/span> p\u00f5hine rajaplaneerimine ja autonoomne navigeerimine kui ka <span style=\"font-family:Courier New,Courier,monospace\">depthimage_to_laserscan<\/span> s\u00f5lm, mis teeskleb meie s\u00fcgavuskaamera p\u00f5hjal lidarit. Seda k\u00f5ike teeb j\u00e4rgmine k\u00e4ivitusfail:\n<\/p>\n<pre>roslaunch robotont_demos 2d_slam_navigation.launch<\/pre>\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-69d13d75ed945-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d13d75ed945-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d13d75ed945-collapse\"><strong>RViz ja navigeerimine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d13d75ed945-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d13d75ed945-heading\">\n            <div class=\"accordion-body\">N\u00fc\u00fcd avame RVizi sobiva seadistusega. Saame kasutada sama k\u00e4ivitusfaili, mis ennegi:\n\n<pre>roslaunch robotont_demos 2d_slam_display.launch<\/pre>\n<p>\n\tSaad vaadet seadistada samamoodi, nagu eelmiseski harjutuses: p\u00f6\u00f6rata vasakut hiireklahvi all hoides ja hiirt liigutades, l\u00e4hemale v\u00f5i kaugemale liikuda rulliku abil ja vaadet paremale-vasakule ning \u00fcles-alla liigutada kas vasakut hiireklahvi ja shift-klahvi all hoides ja hiirt liigutades v\u00f5i rullikut all hoides ja hiirt liigutades.\n<\/p>\n<p>\n\tSuure t\u00f5en\u00e4osusega ei asu robot p\u00e4ris seal, kuhu programm ta kaardil paigutanud on. Selleks, et asukohta korrigeerida, kasuta RVizi nuppu <span style=\"font-family:Courier New,Courier,monospace\">2D Pose Estimate<\/span>. Kliki kaardil \u00f5igel kohal (kus asub robotont), hoia hiirt all, lohista suunas, kuhu robot vaatab, ja lase siis hiireklahv lahti. Vajadusel v\u00f5id seda proovida teha mitu korda.\n<\/p>\n<p>\n\t<img loading=\"lazy\" decoding=\"async\" width=\"704\" height=\"115\" class=\"alignnone wp-image-125\" src=\"https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/2d_pose_estimate.png\" title=\"2d_pose_estimate.png\" alt=\".\" srcset=\"https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/2d_pose_estimate.png 704w, https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/2d_pose_estimate-300x49.png 300w\" sizes=\"auto, (max-width: 704px) 100vw, 704px\">\n<\/p>\n<p>\n\tJa n\u00fc\u00fcd oledki valmis robotil laskma autonoomselt navigeerida! Selleks kliki RVizis nupul <span style=\"font-family:Courier New,Courier,monospace\">2D Nav Goal<\/span>. Kasutamiseks kliki kohale, kuhu tahad, et robot s\u00f5idaks, ja vea hiirega suunas, kuhu tahad, et robot vaataks. Seej\u00e4rel lase klahv lahti ja vaata, kuidas robot proovib sinna navigeerida.\n<\/p>\n<p>\n\t<img loading=\"lazy\" decoding=\"async\" width=\"704\" height=\"115\" class=\"alignnone wp-image-126\" src=\"https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/2d_nav_goal.png\" title=\"2d_nav_goal.png\" alt=\".\" srcset=\"https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/2d_nav_goal.png 704w, https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/2d_nav_goal-300x49.png 300w\" sizes=\"auto, (max-width: 704px) 100vw, 704px\">\n<\/p>\n<blockquote class=\"os-punane\">\n<h4>\n\t\tRobot s\u00f5idab halvasti ja j\u00e4\u00e4b kinni<br>\n\t<\/h4>\n<p>\n\t\tMeie s\u00fcsteem ei ole ideaalne. P\u00e4ris roboti puhul on sensor puudulik ja robot kipub mitte teadma, mida teha seinte l\u00e4hedal. Kartuses neile otsa s\u00f5ita v\u00f5ib ta lihtsalt liikumast keelduda. Seega \u00e4ra aseta sihtpunkte seintele v\u00e4ga l\u00e4hedale.\n\t<\/p>\n<p>\n\t\tSimuleeritud roboti puhul on robotil probleeme \u00fcmber nurkade liikumisega. Anna talle ruumi ja vajadusel korrigeeri soovitud asukohta.\n\t<\/p>\n<p>\n\t\tKui robot j\u00e4\u00e4b ikkagi kusagile kinni ja ei suuda edasi liikuda, siis v\u00f5id <strong>uues aknas k\u00e4ivitada roboti klaviatuurilt juhtimise s\u00f5lme<\/strong> ja teda ise sobivamasse asukohta s\u00f5idutada. Kui robotil on \u00fcmber rohkem ruumi, siis suudab ta juba ka ise edasi navigeerida.\n\t<\/p>\n<\/blockquote>\n<p>\n\tL\u00f5puks peaks s\u00fcsteem t\u00f6\u00f6tatama umbes nii:\n<\/p>\n<p>\n\t<\/p><div class=\"ratio ratio-16x9 mb-3\"><div class=\"video-placeholder-wrapper video-placeholder-wrapper--16x9\">\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><div class=\"ratio ratio-16x9 mb-3\"><div class=\"video-placeholder-wrapper video-placeholder-wrapper--16x9\">\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>\n\n<p>\n\t<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Siin harjutuses \u00f5pime, kuidas kaardi abil autonoomselt navigeerida. Harjutuse l\u00e4bimiseks klikka vahepealkirjadele. Liiga palju terminaliaknaid! Selles harjutuses on vaja k\u00e4ivitada p\u00e4ris palju erinevaid s\u00f5lmi eri terminaliaknates. Kui soovid, v\u00f5id luua endale selle jaoks k\u00e4ivitusfaili, mis vastavad s\u00f5lmed k\u00e4ima paneb. Robot &#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-46","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/46","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=46"}],"version-history":[{"count":1,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/46\/revisions"}],"predecessor-version":[{"id":355,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/46\/revisions\/355"}],"wp:attachment":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/media?parent=46"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}