{"id":44,"date":"2024-04-04T08:01:24","date_gmt":"2024-04-04T05:01:24","guid":{"rendered":"https:\/\/sisu.ut.ee\/rosak\/keskkonna-kaardistamine\/"},"modified":"2024-04-04T08:03:57","modified_gmt":"2024-04-04T05:03:57","slug":"keskkonna-kaardistamine","status":"publish","type":"page","link":"https:\/\/sisu.ut.ee\/rosak\/keskkonna-kaardistamine\/","title":{"rendered":"6. Keskkonna kaardistamine"},"content":{"rendered":"<blockquote>\n<p>\n\t\t<strong>Selles harjutuses proovime robotit \u00fcmbritsevat keskkonda kaardistada.<\/strong>\n\t<\/p>\n<p>\n\t\tHarjutust saab l\u00e4bida nii simulaatoris kui ka p\u00e4ris robotiga. Soovitatav on proovida m\u00f5lemat.\n\t<\/p>\n<p>\n\t\t<em>Harjutuse l\u00e4bimiseks klikka vahepealkirjadele.<\/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-69db8a9fb85cd-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69db8a9fb85cd-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69db8a9fb85cd-collapse\"><strong>Soovituslik: kimbu loomine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69db8a9fb85cd-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69db8a9fb85cd-heading\">\n            <div class=\"accordion-body\">Keskkonna kaardistamise harjutuse l\u00f5puks tekib meile <strong>kaart<\/strong>, mille j\u00e4rgi saame hiljem roboti autonoomselt navigeerima panna. See kaart tuleb hiljem kusagile salvestada. Lisaks sellele v\u00f5ib tekkida soov mooduli l\u00f5pupoole k\u00f5ik vajalikud k\u00e4sud panna eraldi k\u00e4ivitusfaili \u2013 siis ei pea neid \u00fckshaaval t\u00f6\u00f6le panema. Selle k\u00f5ige jaoks on kasulik endale luua \u00fcks uus kimp.\n\n<p>\n\tUuele kimbule ei pea me praegu lisama \u00fchtegi s\u00f5ltuvust teistest kimpudest. Seega k\u00e4ib selle loomine catkini t\u00f6\u00f6laua <span style=\"font-family:Courier New,Courier,monospace\">src<\/span>-kaustas olles tavap\u00e4rasel viisil ja v\u00e4ga lihtsalt (kus kimbule v\u00f5ib anda endale sobiva nime):\n<\/p>\n<pre>catkin create pkg uue_kimbu_nimi<\/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-69db8a9fb85d3-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69db8a9fb85d3-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69db8a9fb85d3-collapse\"><strong>Ainult simulaatoris: Gazebo ja maailm, mida kaardistada<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69db8a9fb85d3-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69db8a9fb85d3-heading\">\n            <div class=\"accordion-body\">P\u00e4ris roboti peal harjutust sooritades j\u00e4ta see alapunkt vahele.\n\n<p>\n\tSimulaatoris alustame sellest, et avame maailma, mida soovime kaardistada.\n<\/p>\n<p>\n\tKuna kasutame simulaatorit, siis on meil luksus kasutada kaardistamiseks just sellist sensorit, nagu ise soovime. Valime selleks<strong> lidari.<\/strong> Selleks kasutame robotondi mudelit nimega <span style=\"font-family:Courier New,Courier,monospace\">robotont_gazebo_lidar<\/span>, kus meie tuttavale robotondile on peale asetatud Hokuyo lidar. Lisaks sellele avame Gazebo maailma, kus on v\u00e4ike lab\u00fcrint, milles robotont ringi liikuda saab. K\u00e4sk selle k\u00f5ige jaoks on j\u00e4rgmine:\n<\/p>\n<pre>roslaunch robotont_gazebo world_minimaze.launch model:=robotont_gazebo_lidar<\/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-69db8a9fb85df-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69db8a9fb85df-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69db8a9fb85df-collapse\"><strong>SLAMi s\u00f5lm<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69db8a9fb85df-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69db8a9fb85df-heading\">\n            <div class=\"accordion-body\">See ja j\u00e4rgmised sammud on samad nii p\u00e4ris roboti kui ka simulaatori jaoks.\n\n<p>\n\tSLAMi algoritmid v\u00f5ivad olla p\u00e4ris keerulised. ROS lubab meil aga kasutada nii m\u00f5ndagi neist nii, et me ei pea neid ise implementeerima.\n<\/p>\n<p>\n\tN\u00e4iteks v\u00f5ime kasutada algoritmi nimega <strong>gmapping<\/strong>. Kui huvitab, mis seal sees toimub, siis v\u00f5id selle kohta <a data-url=\"https:\/\/openslam-org.github.io\/gmapping.html\" href=\"https:\/\/openslam-org.github.io\/gmapping.html\" target=\"_blank\" title=\"\" rel=\"noopener\">inglise keeles rohkem lugeda siit<\/a>.\n<\/p>\n<h2>\n\tSimulaatoris:<br>\n<\/h2>\n<p>\n\tK\u00e4ivita j\u00e4rgmine k\u00e4ivitusfail, mis paneb jooksma <span style=\"font-family:Courier New,Courier,monospace\">gmapping<\/span> algoritmi:\n<\/p>\n<pre>roslaunch robotont_demos gmapping.launch<\/pre>\n<h2>\n\tP\u00e4ris robotil:<br>\n<\/h2>\n<p>\n\tK\u00e4ivita j\u00e4rgmine k\u00e4ivitusfail, mis paneb jooksma nii gmapping algoritmi kui ka loob robotondile v\u00f5lts-lidari:\n<\/p>\n<pre>roslaunch robotont_demos 2d_slam_create_map.launch<\/pre>\n<blockquote class=\"os-kollane\">\n<h4>\n\t\tKas p\u00e4ris robotondil on lidar?<br>\n\t<\/h4>\n<p>\n\t\tV\u00f5isid t\u00e4hele panna, et <span style=\"font-family:Courier New,Courier,monospace\">gmapping<\/span> tugineb lidari andmetele. Meie p\u00e4ris robotondil pole aga lidarit \u2013 selle asemel on tal s\u00fcgavuskaamera. Kuidas s\u00fcsteem sellega toime tuleb?\n\t<\/p>\n<p>\n\t\tRobotont saab kasutada ROSi kimpu nimega <span style=\"font-family:Courier New,Courier,monospace\">depthimage_to_laserscan<\/span>, kus on s\u00f5lm, mis teeskleb s\u00fcgavuskaamera info p\u00f5hjal, et ta robot saab andmeid lidari k\u00e4est. Sisuliselt teeskleb see, et meil on lidari andmed, kuigi tegelikult ei ole.\n\t<\/p>\n<p>\n\t\tSee ei ole p\u00e4ris sama hea, mis lidari enda kasutamine, sest <span style=\"font-family:Courier New,Courier,monospace\">depthimage_to_laserscan<\/span> viskab minema palju lidari poolt saadud andmeid ja allesj\u00e4\u00e4v info ei ole p\u00e4ris sama t\u00e4pne nagu lidari k\u00e4est saadud info. Kuigi nii s\u00fcgavuskaamera kui ka lidar on m\u00f5lemad head sensorid, siis on nad head natuke erinevate asjade jaoks ja ei suuda \u00fcksteist p\u00e4riselt asendada. Meie jaoks on see praegu aga piisav.\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-69db8a9fb85e3-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69db8a9fb85e3-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69db8a9fb85e3-collapse\"><strong>Kaardi kuvamine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69db8a9fb85e3-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69db8a9fb85e3-heading\">\n            <div class=\"accordion-body\">Tore oleks n\u00e4ha, missugust kaarti robotont seni on suutnud joonistada. Seda saame teha RViz abil. \u00dcks viis seda teha on avada RViz ja seal seaded paika tuunida, kuid kuna me ei ole RVizi seadistamist eriti \u00f5ppinud, siis l\u00e4heme lihtsama vastupanu teed ja kasutame k\u00e4ivitusfaili, mis avab RVizi juba valmistehtud konfiguratsioonifailiga ja kuvab just \u00f5iget infot.\n\n<pre>roslaunch robotont_demos 2d_slam_display.launch<\/pre>\n<p>\n\tN\u00e4ed pilti, mis sarnaneb allolevale. Saad liigutada vaatenurka vasaku hiireklahviga pildil lohistades, rullikuga sisse ja v\u00e4lja liikuda ning vasakut hiireklahvi ja shift-klahvi samaaegselt all hoides (v\u00f5i lihtsalt hiire rullikut all hoides) hiirt liigutades viia vaadet paremale-vasakule ning \u00fcles-alla.\n<\/p>\n<p>\n\t<img loading=\"lazy\" decoding=\"async\" width=\"417\" height=\"366\" class=\"alignnone wp-image-124\" src=\"https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/kuvatommis_2022-10-31_12-58-58.png\" title=\"2d_slam_display.png\" alt=\".\" srcset=\"https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/kuvatommis_2022-10-31_12-58-58.png 417w, https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/kuvatommis_2022-10-31_12-58-58-300x263.png 300w\" sizes=\"auto, (max-width: 417px) 100vw, 417px\">\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-69db8a9fb85e6-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69db8a9fb85e6-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69db8a9fb85e6-collapse\"><strong>Ringis\u00f5itmine ja kaardistamine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69db8a9fb85e6-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69db8a9fb85e6-heading\">\n            <div class=\"accordion-body\">N\u00fc\u00fcd, kui meil on k\u00f5ik \u00fcles seatud, on meil vaja p\u00e4riselt ala \u00e4ra kaardistada. Seda on k\u00f5ige lihtsam teha, hoides lahti RVizi akent ja juhtides robotonti klaviatuurilt. V\u00f5id vaadata ka Gazebo akent, kuid RVizi kaardikuvamine annab meile praegu paremini teada, kus robot juba k\u00e4inud on ja missuguse nurga tagant ruum veel uurimata on.\n\n<blockquote class=\"os-punane\">\n<h4>\n\t\tEttevaatust<br>\n\t<\/h4>\n<p>\n\t\tP\u00e4ris roboti peal harjutust sooritades pea meeles, et meie s\u00fcgavuskaamera p\u00f5hjal tehtud liba-lidar ei ole just ideaalne. S\u00f5ida ringi rahulikul kiirusel.\n\t<\/p>\n<\/blockquote>\n<p>\n\tOma eelnevaid teadmisi kasutades k\u00e4ivita roboti klaviatuurilt juhtimine ja s\u00f5ida sellega ringi, kuni oled kaardiga rahul.\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-69db8a9fb85e9-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69db8a9fb85e9-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69db8a9fb85e9-collapse\"><strong>Kaardi salvestamine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69db8a9fb85e9-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69db8a9fb85e9-heading\">\n            <div class=\"accordion-body\">Kui oled loonud kaardi, siis viimane \u00fclesanne on see kusagile salvestada, et saaksime seda hiljem kasutada.\n\n<p>\n\tEsimese asjana navigeeri terminalis kausta, kuhu soovid uue kaardi salvestada. V\u00f5id n\u00e4iteks selle tarvis eelnevalt loodud uue kimbu sees teha kausta nimega <span style=\"font-family:Courier New,Courier,monospace\">maps<\/span> ja terminaliga sinna navigeerida.\n<\/p>\n<p>\n\tN\u00fc\u00fcd salvestame kaardi. Selleks kasutame s\u00f5lme <span style=\"font-family:Courier New,Courier,monospace\">map_saver<\/span> kimbust <span style=\"font-family:Courier New,Courier,monospace\">map_server<\/span> ja anname talle lisaks argumendina ka failinime, kuhu soovime kaarti salvestada. Kaardi nime v\u00f5id ise vabalt valida.\n<\/p>\n<pre>rosrun map_server map_saver -f minu_kaardi_nimi<\/pre>\n<p>\n\tN\u00fc\u00fcd v\u00f5id k\u00e4imasolevad s\u00f5lmed sulgeda.\n<\/p>\n<p>\n\t<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Selles harjutuses proovime robotit \u00fcmbritsevat keskkonda kaardistada. Harjutust saab l\u00e4bida nii simulaatoris kui ka p\u00e4ris robotiga. Soovitatav on proovida m\u00f5lemat. Harjutuse l\u00e4bimiseks klikka vahepealkirjadele. Soovituslik: kimbu loomine Keskkonna kaardistamise harjutuse l\u00f5puks tekib meile kaart, mille j\u00e4rgi saame hiljem roboti autonoomselt &#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-44","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/44","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=44"}],"version-history":[{"count":1,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/44\/revisions"}],"predecessor-version":[{"id":357,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/44\/revisions\/357"}],"wp:attachment":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/media?parent=44"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}