{"id":80,"date":"2024-04-04T08:01:28","date_gmt":"2024-04-04T05:01:28","guid":{"rendered":"https:\/\/sisu.ut.ee\/rosak\/ratasroboti-urdf-kirjeldus\/"},"modified":"2024-04-05T11:56:23","modified_gmt":"2024-04-05T08:56:23","slug":"ratasroboti-urdf-kirjeldus","status":"publish","type":"page","link":"https:\/\/sisu.ut.ee\/rosak\/ratasroboti-urdf-kirjeldus\/","title":{"rendered":"5. Ratasroboti URDF kirjeldus"},"content":{"rendered":"<blockquote>\r\n\t<p>\r\n\t\tSelles harjutuses kasutame <strong>URDFi<\/strong> (ingl k. <em>Unified Robot Description Format<\/em>), et luua <strong>liikuva roboti kirjeldus<\/strong>.\r\n\t<\/p>\r\n\r\n\t<p>\r\n\t\tSelleks, et n\u00e4ite j\u00e4rgi kaasa teha, on vaja ROSi ja catkini t\u00f6\u00f6ruumi.\r\n\t<\/p>\r\n\r\n\t<p>\r\n\t\tLisaks on vaja ROSi kimpe <span style=\"font-family:Courier New,Courier,monospace\">urdf_tutorial<\/span> ning <span style=\"font-family:Courier New,Courier,monospace\"><span id=\"docs-internal-guid-8959c1f4-7fff-e5c9-0de6-abfc7c4b6a98\">joint_state_publisher_gui<\/span><\/span>. Kui kasutad kursuse korraldajate poolt pakutavat keskkonda, siis on need kimbud juba paigaldatud.\r\n\t<\/p>\r\n\r\n\t<p>\r\n\t\t<em><span>Samm-sammulise juhendi vaatamiseks klikka harjutuse vahepealkirjadele.<\/span><\/em>\r\n\t<\/p>\r\n<\/blockquote>\r\n\r\n<p>\r\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1dab04f8fe-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1dab04f8fe-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1dab04f8fe-collapse\"><strong>1. Mis on URDF?<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d1dab04f8fe-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1dab04f8fe-heading\">\n            <div class=\"accordion-body\">\r\n\r\n\r\n<p>\r\n\tURDF on <em><strong>Unified Robot Description Format<\/strong><\/em> ehk formaat robotite kirjeldamiseks. See on XML kujul tekstifail, mis kirjeldab roboti mudelit.\r\n<\/p>\r\n\r\n<p>\r\n\tT\u00fc\u00fcpiline URDF mudel sisaldab l\u00fclisid ja liigendeid. L\u00fclid on roboti komponendid ja liigendid on nendevahelised \u00fchendused.\r\n<\/p>\r\n\r\n<p>\r\n\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"994\" class=\"alignnone wp-image-174\" style=\"width: 400px;height: 497px\" src=\"https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/link.png\" title=\"link.png\" alt=\".\" srcset=\"https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/link.png 800w, https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/link-241x300.png 241w, https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/link-768x954.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\">\r\n<\/p>\r\n\r\n<p>\r\n\t\u00a0\r\n<\/p>\r\n\r\n<p>\r\n\t<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\r\n\r\n\r\n<p>\r\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1dab04f907-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1dab04f907-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1dab04f907-collapse\"><strong>2. URDF mudeli loomine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d1dab04f907-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1dab04f907-heading\">\n            <div class=\"accordion-body\"><strong>a. <\/strong><span id=\"docs-internal-guid-484e9c65-7fff-2528-a5a5-1f4d8ef6b548\">Avame terminali ja liigume catkini t\u00f6\u00f6ruumi <span style=\"font-family:Courier New,Courier,monospace\">src<\/span> kaustas olevasse kausta <span style=\"font-family:Courier New,Courier,monospace\">fourwheeler_description<\/span>, mille l\u00f5ime eelnevalt.<\/span>\r\n\r\n\r\n<pre><span id=\"docs-internal-guid-8e6d88f8-7fff-ab55-e4b4-d12cd977c0a9\">cd ~\/catkin_ws\/src\/fourwheeler_description<\/span><\/pre>\r\n\r\n<p>\r\n\t<span><strong>b. <\/strong><\/span><span id=\"docs-internal-guid-fa0fc9d3-7fff-8bc2-9963-661c6dd5eef2\">Loome seal uue kausta nimega <span style=\"font-family:Courier New,Courier,monospace\">urdf<\/span>. Sinna paigutame roboti URDF mudeli.<\/span>\r\n<\/p>\r\n\r\n<pre><span id=\"docs-internal-guid-781ac41c-7fff-c187-d5ad-741ca88ec9ed\">mkdir urdf<\/span><\/pre>\r\n\r\n<p>\r\n\t<span><strong>c.\u00a0<\/strong><\/span><span id=\"docs-internal-guid-c2893a5a-7fff-1587-9df1-2f6d15bf333b\">Liigume <span style=\"font-family:Courier New,Courier,monospace\">urdf<\/span> kausta.<\/span>\r\n<\/p>\r\n\r\n<pre><span id=\"docs-internal-guid-3487ae33-7fff-4f66-6e3e-52823f7d872b\">cd urdf<\/span><\/pre>\r\n\r\n<p>\r\n\t<span><strong>d. <\/strong><\/span><span id=\"docs-internal-guid-e9f6371f-7fff-8cef-a624-8bcd908d2457\">Loome URDF mudeli jaoks dokumendi nimega <span style=\"font-family:Courier New,Courier,monospace\">fourwheeler.urdf<\/span>.<\/span>\r\n<\/p>\r\n\r\n<pre><span id=\"docs-internal-guid-fcb09414-7fff-0038-fdcf-f4ea534b4c64\">gedit fourwheeler.urdf<\/span><\/pre>\r\n\r\n<p>\r\n\t<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\r\n\r\n\r\n<p>\r\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1dab04f90e-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1dab04f90e-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1dab04f90e-collapse\"><strong>3. URDF mudeli dokumenti sisu lisamine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d1dab04f90e-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1dab04f90e-heading\">\n            <div class=\"accordion-body\"><span id=\"docs-internal-guid-a1eb7ec0-7fff-63a0-96eb-d76470c0772a\">Vaata alltoodud animatsioonist, kuidas kirjeldatud samme rakendada. Koodi leiad kopeeritaval kujul ka animatsiooni alt.<\/span>\r\n\r\n\r\n<p>\r\n\t<strong>a. <\/strong><span id=\"docs-internal-guid-29a77038-7fff-a1d2-bb4a-ec1f30e2f9c6\">Lisame p\u00e4ise, et defineerida dokument kui XML.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span><strong>b.<\/strong> <\/span><span id=\"docs-internal-guid-193f4e9b-7fff-d6a8-6244-b6ee6b50bb07\">Lisame roboti nime, kasutades XML m\u00e4rgendit <\/span><span><span style=\"font-family:Courier New,Courier,monospace\">&lt;robot&gt;<\/span>. Antud n\u00e4ites on selleks nimeks <span style=\"font-family:Courier New,Courier,monospace\">fourwheeler<\/span>. <\/span><span style=\"Slack-Lato,Slack-Fractions,appleLogo,sans-serif;15px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;float:none\">Lisame ka kohe avatud faili k\u00f5ige viimasele reale roboti kirjeldust sulgeva m\u00e4rgendi <span style=\"font-family:Courier New,Courier,monospace\">&lt;\/robot&gt;<\/span>.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span><strong>c.<\/strong> <\/span><span style=\"Slack-Lato,Slack-Fractions,appleLogo,sans-serif;15px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;float:none\">Lisame esimese komponendi, milleks v\u00f5iks olla meie roboti keskne kere.<\/span><span> Selleks loome l\u00fcli nimega <\/span><span style=\"font-family:Courier New,Courier,monospace\">base_link<\/span><span>, kasutades XML m\u00e4rgendit <\/span><span><span style=\"font-family:Courier New,Courier,monospace\">link<\/span>.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span><strong>d. <\/strong><\/span><span style=\"Slack-Lato,Slack-Fractions,appleLogo,sans-serif;15px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;float:none\">Olgu meie roboti keskse kere kujuks risttahukas. Et seda n\u00fc\u00fcd URDF-i abil kirjeldada, lisame <span style=\"font-family:Courier New,Courier,monospace\">base_link<\/span> l\u00fclile parameetrid, et m\u00e4\u00e4ratleda kere t\u00e4pne kuju ja suurus. Selleks kasutame XML m\u00e4rgendit <span style=\"font-family:Courier New,Courier,monospace\">&lt;visual&gt;<\/span> ning selle alam\u00e4rgendit <span style=\"font-family:Courier New,Courier,monospace\">&lt;geometry&gt;<\/span>, mis v\u00f5imaldab meil antud l\u00fclile anda lihtsa geomeetrilise kuju, antud juhul siis <span style=\"font-family:Courier New,Courier,monospace\">&lt;box&gt;<\/span> ehk risttahukas.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span><strong>e. <\/strong><\/span><span id=\"docs-internal-guid-d9ad58da-7fff-9a2c-0f71-a904694cd43e\">Salvestame ja sulgeme dokumendi.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<strong>Kood selle saavutamiseks:<\/strong>\r\n<\/p>\r\n\r\n<pre>&lt;?xml version=\"1.0\"?&gt;\r\n&lt;robot name=\"fourwheeler\"&gt;\r\n\r\n  &lt;link name=\"base_link\"&gt;\r\n    &lt;visual&gt;\r\n      &lt;geometry&gt;\r\n        &lt;box size=\"0.430 0.320 0.140\" \/&gt;\r\n      &lt;\/geometry&gt;\r\n    &lt;\/visual&gt;\r\n  &lt;\/link&gt;\r\n\r\n&lt;\/robot&gt;<\/pre>\r\n\r\n<p>\r\n\t<strong>Siit n\u00e4ed, kuhu kood paigutada:<\/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<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\r\n\r\n\r\n<p>\r\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1dab04f913-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1dab04f913-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1dab04f913-collapse\"><strong>4. URDF mudeli visualiseerimine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d1dab04f913-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1dab04f913-heading\">\n            <div class=\"accordion-body\"><span id=\"docs-internal-guid-3d1143a9-7fff-65ac-83d5-18741fd716ae\">Olles kaustas <span style=\"font-family:Courier New,Courier,monospace\">catkin_ws\/src\/fourwheeler_description\/urdf\/<\/span>, saame <\/span><span><span style=\"font-family:Courier New,Courier,monospace\">urdf_tutorial<\/span> <\/span><span>kimbus sisalduva <\/span><span>k\u00e4ivitus<\/span><span>faili abil oma roboti h\u00f5lpsasti visualiseerida.<\/span>\r\n\r\n\r\n<pre><span id=\"docs-internal-guid-8aa8c47e-7fff-cdbf-6d18-fe29292d7886\">roslaunch urdf_tutorial display.launch model:=fourwheeler.urdf<\/span><\/pre>\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-1d89b847-7fff-0374-e4cc-eaa6430e1f08\">Seej\u00e4rel avaneb j\u00e4rgnev RViz-i aken.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<img loading=\"lazy\" decoding=\"async\" width=\"858\" height=\"642\" class=\"alignnone wp-image-177\" src=\"https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/3_rviz_initial.png\" title=\"3_rviz_initial.png\" alt=\".\" srcset=\"https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/3_rviz_initial.png 858w, https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/3_rviz_initial-300x224.png 300w, https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/3_rviz_initial-768x575.png 768w\" sizes=\"auto, (max-width: 858px) 100vw, 858px\">\r\n<\/p>\r\n\r\n<p>\r\n\t<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\r\n\r\n\r\n<p>\r\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1dab04f919-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1dab04f919-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1dab04f919-collapse\"><strong>5. URDF mudeli v\u00e4rvi muutmine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d1dab04f919-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1dab04f919-heading\">\n            <div class=\"accordion-body\"><span id=\"docs-internal-guid-8c71333c-7fff-6348-15ea-2071418eb552\">Algselt on terve robot punane. Muudame roboti v\u00e4rvi siniseks.<\/span>\r\n\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-3ff4dc14-7fff-8250-c0a8-77163bc80fcb\">Sulge RViz ja ava URDF fail (<span style=\"font-family:Courier New,Courier,monospace\">fourwheeler.urdf<\/span>). RVizi sulgemiseks vajuta Terminali aknas klahvikombinatsiooni <span style=\"font-family:Courier New,Courier,monospace\">CTRL+C<\/span>.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-f75ad8e6-7fff-df5d-cd65-5ad6289aa00e\">V\u00e4rvi lisamiseks kasutame XML m\u00e4rgendit <\/span><span><span style=\"font-family:Courier New,Courier,monospace\">material<\/span>.<\/span><span> Alltoodud animatsioonis on n\u00e4ha, kuidas lisada robotile v\u00e4rv. V\u00e4rv on toodud RGBA v\u00e4rviruumis, kus on neli kanalit: punane (R \u2013 <\/span><span>red<\/span><span>), roheline (G \u2013 <\/span><span>green<\/span><span>), sinine (B \u2013 <\/span><span>blue<\/span><span>), alfa ehk l\u00e4bipaistvus (A \u2013 <\/span><span>alpha<\/span><span>). Neid v\u00e4\u00e4rtusi saab seada vahemikus 0\u20131, et m\u00e4\u00e4rata iga komponendi intensiivsus.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-e81455f0-7fff-317d-b91b-c9399abd4c7c\">N\u00e4ites toodud RGBA v\u00e4\u00e4rtused <span style=\"font-family:Courier New,Courier,monospace\">0\u00a0 0\u00a0 0.8\u00a0 1<\/span> annavad tumedama sinise, millel puudub l\u00e4bipaistvus.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-594c7893-7fff-76cf-4908-f858f3ee915a\">Proovi julgelt erinevaid v\u00e4rvikombinatsioone.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<strong>Uus koodil\u00f5ik:<\/strong>\r\n<\/p>\r\n\r\n<pre>      &lt;material name=\"blue\"&gt;\r\n        &lt;color rgba=\"0 0 0.8 1\" \/&gt;\r\n      &lt;\/material&gt;<\/pre>\r\n\r\n<p>\r\n\t<strong>Kuhu kood paigutada:<\/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<span id=\"docs-internal-guid-7516246d-7fff-ecab-a3f6-78990f38e0f7\">Uue v\u00e4rviga mudeli n\u00e4gemiseks salvestame ja sulgeme <\/span><span style=\"font-family:Courier New,Courier,monospace\">fourwheeler.urdf<\/span><span> faili ning k\u00e4ivitame uuesti <\/span><span style=\"font-family:Courier New,Courier,monospace\">display.launch<\/span><span> faili.<\/span>\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-8f8208aa-7fff-3d16-c2a2-8aa75cb0cfe0\">Tulemus peaks sarnanema alltooduga.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<img loading=\"lazy\" decoding=\"async\" width=\"856\" height=\"643\" class=\"alignnone wp-image-181\" src=\"https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/5_urdf_new_colour.png\" title=\"5_urdf_new_colour.png\" alt=\".\" srcset=\"https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/5_urdf_new_colour.png 856w, https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/5_urdf_new_colour-300x225.png 300w, https:\/\/sisu.ut.ee\/wp-content\/uploads\/sites\/560\/5_urdf_new_colour-768x577.png 768w\" sizes=\"auto, (max-width: 856px) 100vw, 856px\">\r\n<\/p>\r\n\r\n<p>\r\n\t<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\r\n\r\n\r\n<p>\r\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1dab04f91d-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1dab04f91d-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1dab04f91d-collapse\"><strong>6. \u00dche ratta lisamine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d1dab04f91d-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1dab04f91d-heading\">\n            <div class=\"accordion-body\"><span id=\"docs-internal-guid-60127369-7fff-e3a0-a334-f97215d39140\">Nagu meie loodud kimbu nimigi viitab, tahame l\u00f5puks valmis saada nelja rattaga roboti mudeli. Alustame \u00fche ratta lisamisest.<\/span>\r\n\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-0d3ad36a-7fff-0326-79b0-c4304955f85a\">Lisame l\u00fcli nimega <\/span><span><span style=\"font-family:Courier New,Courier,monospace\">front_right_wheel<\/span>.<\/span><span> Ratta mudeli kujuks valime silindri (<\/span><span style=\"font-family:Courier New,Courier,monospace\">cylinder<\/span><span>), mille k\u00f5rgus (<span style=\"font-family:Courier New,Courier,monospace\">length<\/span>) on 0,05 m ja raadius (<span style=\"font-family:Courier New,Courier,monospace\">radius<\/span>) 0,1 m. Rattad on tihti musta v\u00e4rvi; RGB v\u00e4rviruumis saavutame musta, kui m\u00e4\u00e4rame iga kanali v\u00e4\u00e4rtuseks 0. M\u00e4\u00e4rame alfa-kanali v\u00e4\u00e4rtuseks 1, et ratas ei oleks l\u00e4bipaistev.<\/span>\r\n<\/p>\r\n\r\n<blockquote class=\"os-kollane\">\r\n\t<h4>\r\n\t\tN\u00e4pun\u00e4ide\r\n\t<\/h4>\r\n\r\n\t<p>\r\n\t\tUue l\u00fcli saamiseks tee koopia eelnevalt loodud l\u00fcli koodil\u00f5igust ja muuda \u00e4ra vajalikud v\u00e4\u00e4rtused!\r\n\t<\/p>\r\n<\/blockquote>\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<\/div>\n        <\/div>\n        <\/div>\n    <\/div>\r\n\r\n<p>\r\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1dab04f92b-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1dab04f92b-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1dab04f92b-collapse\"><strong>7. Liigendi lisamine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d1dab04f92b-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1dab04f92b-heading\">\n            <div class=\"accordion-body\">Selleks, et kinnitada ratas roboti kere k\u00fclge, on meil vaja omavahel siduda <span style=\"font-family:Courier New,Courier,monospace\">base_link<\/span> ja <span style=\"font-family:Courier New,Courier,monospace\">front_right_wheel<\/span> ning defineerida, kas \u00fcks saab teise suhtes ka liikuda. Seda k\u00f5ik teeme liigendiga (<em>joint<\/em>). Lisame uue koodil\u00f5igu (kopeeritaval kujul saadaval ka allpool.)\r\n\r\n\r\n<p>\r\n\t<strong>a.<\/strong> <span id=\"docs-internal-guid-cf88779a-7fff-1235-f936-703e80e851b1\">Lisame liigendi nimega <\/span><span><span style=\"font-family:Courier New,Courier,monospace\">front_right_wheel_to_base<\/span>.<\/span><span> Liigendite nimed v\u00f5iksid alati n\u00e4idata, milliste l\u00fclide \u00fchendamiseks on liigend loodud. See teeb mahukates mudelites orienteerumise m\u00e4rgatavalt kergemaks.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span><strong>b.<\/strong> <\/span><span id=\"docs-internal-guid-a694eac1-7fff-8469-f97b-b2bd56b63701\">Valime liigendi t\u00fc\u00fcbiks <\/span><span style=\"font-family:Courier New,Courier,monospace\">continuous<\/span><span>, sest ratas saab kere suhtes <\/span><span>pidevalt <\/span><span>(ingl <\/span><em><span>continuously<\/span><\/em><span>) p\u00f6\u00f6relda.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<strong>c.<\/strong> <span id=\"docs-internal-guid-18d8dddd-7fff-d82a-da55-94d184e9c961\">\u00dcleml\u00fcliks (<\/span><em><span>parent link<\/span><\/em><span>) m\u00e4\u00e4rame esimese l\u00fcli <\/span><span style=\"font-family:Courier New,Courier,monospace\">base_link<\/span><span>, kuhu peaaegu k\u00f5ik roboti komponendid l\u00f5puks kinnituvad. Alaml\u00fcliks (<\/span><em><span>child link<\/span><\/em><span>) m\u00e4\u00e4rame ratta l\u00fcli <\/span><span><span style=\"font-family:Courier New,Courier,monospace\">front_right_wheel<\/span>,<\/span><span> sest see peab olema seotud roboti kerega.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span><strong>d.<\/strong> <\/span><span id=\"docs-internal-guid-42ff91b8-7fff-56e2-6010-4b37de23ce07\">M\u00e4\u00e4rame liigendi algkoordinaadid xyz s\u00fcsteemis. M\u00e4rgendiga <\/span><span style=\"font-family:Courier New,Courier,monospace\">origin<\/span><span> n\u00e4idatud koordinaadid m\u00e4\u00e4ravad, kui kaugel ja mis pidi asub ratas \u00fcleml\u00fcli (antud juhul roboti kere) algkoordinaatide suhtes.<\/span>\r\n<\/p>\r\n\r\n<ol>\r\n\t<li>\r\n\t\t<span id=\"docs-internal-guid-987a6be6-7fff-c3dd-9816-fb3d1790a040\">Roboti kere koordinaatide alguspunkt (<em>origin<\/em>)<\/span><span> asub kere keskel. Ratta koordinaatide alguspunkt asub ratta keskel.<\/span>\r\n\t<\/li>\r\n\t<li>\r\n\t\t<span id=\"docs-internal-guid-4b209975-7fff-fd11-8b0e-9e02352edf6f\">Koordinaadid xyz ehk positsioon on meetrites ja rpy (<\/span><em><span>roll, pitch, yaw<\/span><\/em><span>) ehk orientatsioon on toodud radiaanides.<\/span>\r\n\t<\/li>\r\n\t<li>\r\n\t\t<span id=\"docs-internal-guid-6e8ae4b1-7fff-7061-5697-ccad835ce63e\">P\u00f6\u00f6rame ratast 90 kraadi \u00fcmber x-telje, et silindrikujuline ratas paikneks silindri k\u00fclje, mitte p\u00f5hja peal. Selleks m\u00e4\u00e4rame <\/span><span style=\"font-family:Courier New,Courier,monospace\">roll<\/span><span> v\u00e4\u00e4rtuseks <span style=\"font-family:Courier New,Courier,monospace\">\u03c0\/2<\/span> ehk <span style=\"font-family:Courier New,Courier,monospace\">1.57<\/span> radiaani.<\/span>\r\n\t<\/li>\r\n<\/ol>\r\n\r\n<p>\r\n\t<span><strong>e.<\/strong> <\/span><span id=\"docs-internal-guid-3a7946e2-7fff-cf23-bb22-10eba9cce37f\">M\u00e4\u00e4rame ratta p\u00f6\u00f6rlemistelje. Kuna kasutame liigendit\u00fc\u00fcpi <\/span><span style=\"font-family:Courier New,Courier,monospace\">continuous<\/span><span>, peab p\u00f6\u00f6rlemistelg olema m\u00e4\u00e4ratletud. Selleks kasutame XML m\u00e4rgendit <\/span><span style=\"font-family:Courier New,Courier,monospace\">axis<\/span><span>. M\u00e4\u00e4rame, et ratas saab p\u00f6\u00f6relda \u00fcmber oma z-telje.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span><strong>f.<\/strong> <\/span><span id=\"docs-internal-guid-bb263c9f-7fff-50d5-74a3-8b43367f8b3a\">Salvestame ja sulgeme URDF mudeli faili.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<strong>Uus koodil\u00f5ik:<\/strong>\r\n<\/p>\r\n\r\n<pre>  &lt;joint name=\"front_right_wheel_to_base\" type=\"continuous\"&gt;\r\n    &lt;parent link=\"base_link\" \/&gt;\r\n    &lt;child link=\"front_right_wheel\" \/&gt;\r\n    &lt;origin xyz=\"0.1075 -0.1851 -0.05\" rpy=\"1.57 0 0\" \/&gt;\r\n    &lt;axis xyz=\"0 0 1\" \/&gt;\r\n  &lt;\/joint&gt;\r\n<\/pre>\r\n\r\n<p>\r\n\t<strong>Kuhu kood paigutada:<\/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<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\r\n\r\n\r\n<p>\r\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1dab04f939-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1dab04f939-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1dab04f939-collapse\"><strong>8. <span id=\"docs-internal-guid-a4a06cd0-7fff-e7b3-4d2b-cf8b91e4c38e\">\u00dche rattaga robot<\/span><\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d1dab04f939-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1dab04f939-heading\">\n            <div class=\"accordion-body\"><span id=\"docs-internal-guid-3e26ec16-7fff-3420-e6db-b08c28f16eb1\">K\u00e4ivitame n\u00fc\u00fcd uuesti <\/span><span><span style=\"font-family:Courier New,Courier,monospace\">display.launch<\/span> <\/span><span>faili meie <\/span><span style=\"font-family:Courier New,Courier,monospace\">fourwheeler.urdf<\/span><span> mudeliga ja uurime, milline n\u00e4eb robot v\u00e4lja peale ratta lisamist.<\/span>\r\n\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-bf32db29-7fff-8296-1973-96f70f4fdbed\">N\u00e4eme \u00fche rattaga robotit, mis on aga l\u00e4bipaistev, kuigi m\u00e4\u00e4rasime alfa-kanali v\u00e4\u00e4rtuseks 1. See tuleneb RVizi enda seadetest. Saame muuta roboti l\u00e4bipaistmatuks, muutes RVizi vasakpoolses men\u00fc\u00fcs <\/span><span>Alpha<\/span><span> v\u00e4\u00e4rtust, mis algselt on 0.5. M\u00e4\u00e4rame selle v\u00e4\u00e4rtuseks 1. Robot peaks muutuma l\u00e4bipaistmatuks.<\/span>\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<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\r\n\r\n\r\n<p>\r\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1dab04f93e-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1dab04f93e-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1dab04f93e-collapse\"><strong>9. \u00dclej\u00e4\u00e4nud rataste lisamine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d1dab04f93e-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1dab04f93e-heading\">\n            <div class=\"accordion-body\">Avame uuesti URDF mudeli XML faili ja lisame veel kolm ratast ja nende liigendid. Kopeerime ja kleebime juba loodud ratta ja liigendi, muutes nimed ja asukohad.\r\n\r\n\r\n<p>\r\n\tMeil on olemas ratas <span style=\"font-family:Courier New,Courier,monospace\">front_right_wheel<\/span>. Liigend selle ja roboti kere vahel paigutab selle roboti kere suhtes koordinaatidele\u00a0<span style=\"font-family:Courier New,Courier,monospace\">0.1075 -0.1851 -0.05<\/span>.\r\n<\/p>\r\n\r\n<p>\r\n\tKasutame sisuliselt sama koodi, et lisada veel kolm ratast, ning paigutame need sobivate liigenditega j\u00e4rgmistele asukohtadele.\r\n<\/p>\r\n\r\n<pre>front_left_wheel 0.1075 0.1851 -0.05\r\nrear_right_wheel: -0.1075 -0.1851 -0.05\r\nrear_left_wheel: -0.1075 0.1851 -0.05<\/pre>\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-02c80079-7fff-0cf4-f99f-bdb6bc44fb9a\">Salvestame faili ja k\u00e4ivitame uuesti RVizi. Peaksime n\u00e4gema nelja rattaga roboti mudelit.<\/span>\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<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\r\n\r\n\r\n<p>\r\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1dab04f942-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1dab04f942-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1dab04f942-collapse\"><strong>10. T\u00e4iendavate komponentide lisamine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d1dab04f942-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1dab04f942-heading\">\n            <div class=\"accordion-body\"><span id=\"docs-internal-guid-3ba078eb-7fff-c188-051f-419f0af23151\">Lisame roboti kere peale plaadi (<\/span><em><span>hood<\/span><\/em><span>), et robot n\u00e4eks kenam v\u00e4lja.<\/span>\r\n\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-2c625949-7fff-ef63-2565-7ca0130cb328\">Loome \u00f5hukese kollase plaadi, mis on veidi laiem ja pikem kui roboti kere. Kollase v\u00e4rvi saavutame RGB v\u00e4rviruumis punase ja rohelise kanali seguna. Plaadi pikkus v\u00f5iks olla <\/span><span style=\"font-family:Courier New,Courier,monospace\">0.530<\/span>, laius <span style=\"font-family:Courier New,Courier,monospace\">0.420<\/span> ja k\u00f5rgus <span style=\"font-family:Courier New,Courier,monospace\">0.005<\/span>.\r\n<\/p>\r\n\r\n<p>\r\n\t<span id=\"docs-internal-guid-b75c6d34-7fff-0c15-18af-f563f892f767\">Katuseplaadi kinnitame roboti kere k\u00fclge analoogselt ratastega, kasutades liigendit. Ent kuna katus kere suhtes ei liigu, siis on liigendi t\u00fc\u00fcp liikumatu (ingl <\/span><em><span>fixed<\/span><\/em><span>) ning \u00fchtlasi pole vaja defineerida p\u00f6\u00f6rlemistelge (<\/span><em><span>axis<\/span><\/em><span>). Liigendi asukoht kere suhtes on <\/span><span style=\"font-family:Courier New,Courier,monospace\">0.0725<\/span> meetrit z-telje suunas (ehk \u00fclespoole).\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<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\r\n\r\n\r\n<p>\r\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1dab04f94a-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1dab04f94a-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1dab04f94a-collapse\"><strong>11. Anduri lisamine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d1dab04f94a-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1dab04f94a-heading\">\n            <div class=\"accordion-body\"><span id=\"docs-internal-guid-9ab1ae4e-7fff-1928-0128-3081abfcf0ed\">Roboti mudeli viimistlemiseks lisame sellele viimase komponendina ka \u00fche anduri. \u00dcks tuntumaid andureid isejuhtivate robotite peal on LiDAR ehk laserkaugusm\u00f5\u00f5tja.<\/span>\r\n\r\n\r\n<p>\r\n\t<span><strong>a.<\/strong> <\/span><span id=\"docs-internal-guid-51d05cb8-7fff-5fd7-082c-5933f10d2ae0\">Loome anduri jaoks l\u00fcli nimega <\/span><span style=\"font-family:Courier New,Courier,monospace\">lidar<\/span><span>. M\u00e4\u00e4rame selle suuruse ja v\u00e4rvi. Olgu tema k\u00f5rgus (<span style=\"font-family:Courier New,Courier,monospace\">length<\/span>) <span style=\"font-family:Courier New,Courier,monospace\">0.08<\/span> m ja raadius (<span style=\"font-family:Courier New,Courier,monospace\">radius<\/span>) <span style=\"font-family:Courier New,Courier,monospace\">0.05<\/span> m.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<span><strong>b.<\/strong> <\/span><span id=\"docs-internal-guid-a3d97ce2-7fff-9c11-e0c8-cc87b22c018f\">Loome liigendi. <\/span><span id=\"docs-internal-guid-242f5a89-7fff-bb66-a8b8-4026c1e63161\">Peamine erinevus selle ja eelnevate liigendite vahel on see, et sensor peaks kinnituma roboti pealmise plaadi, mitte kere k\u00fclge. See t\u00e4hendab, et sensori l\u00fcli algkoordinaadid (<\/span><span style=\"font-family:Courier New,Courier,monospace\">origin<\/span><span>) tuleb arvutada plaadi (<\/span><span style=\"font-family:Courier New,Courier,monospace\">hood<\/span><span>) algkoordinaadist, mitte kere (<\/span><span style=\"font-family:Courier New,Courier,monospace\">base_link<\/span><span>) algkoordinaadist! Asetame ta plaadi suhtes <\/span><span style=\"font-family:Courier New,Courier,monospace\">0.150<\/span> meetri v\u00f5rra x-telje suunas ja <span style=\"font-family:Courier New,Courier,monospace\">0.04<\/span> meetri v\u00f5rra z-telje suunas.\r\n<\/p>\r\n\r\n<p>\r\n\t<span><strong>c.<\/strong> <\/span><span id=\"docs-internal-guid-dfb09358-7fff-372c-f30c-40fd798798d6\">M\u00e4\u00e4rame <span style=\"font-family:Courier New,Courier,monospace\">rpy<\/span> v\u00e4\u00e4rtuseks <span style=\"font-family:Courier New,Courier,monospace\">0 0 0<\/span>, sest me ei taha loodud silindrit plaadi suhtes p\u00f6\u00f6rata.<\/span>\r\n<\/p>\r\n\r\n<p>\r\n\t<strong>d.<\/strong> <span id=\"docs-internal-guid-7c86befb-7fff-8d4a-9335-95dd0cf95a00\">Et lisada paindlikkust, loome liigendi selliselt, et meie sensor saab z-telje \u00fcmber p\u00f6\u00f6relda. Selleks m\u00e4\u00e4rame p\u00f6\u00f6rlemistelje <span style=\"font-family:Courier New,Courier,monospace\">axis<\/span> v\u00e4\u00e4rtuse z-komponendiks <span style=\"font-family:Courier New,Courier,monospace\">1<\/span> (ja teised komponendid nullid, kuna nende \u00fcmber me p\u00f6\u00f6relda ei taha).<\/span>\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<\/div>\n        <\/div>\n        <\/div>\n    <\/div>\r\n\r\n<p>\r\n\t<\/p><div class=\"accordion mb-3\">\n        <div class=\"accordion-item accordion-item--white\">\n        <h2 class=\"accordion-header\" id=\"accordion-69d1dab04f94f-heading\">\n            <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#accordion-69d1dab04f94f-collapse\" aria-expanded=\"true\" aria-controls=\"accordion-69d1dab04f94f-collapse\"><strong>12. Liigendite k\u00e4sitsi liigutamine<\/strong><\/button>\n        <\/h2>\n        <div id=\"accordion-69d1dab04f94f-collapse\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordion-69d1dab04f94f-heading\">\n            <div class=\"accordion-body\"><span id=\"docs-internal-guid-fe3ca6cf-7fff-9a14-1c0a-871a57dcc298\">Selleks, et veenduda, et k\u00f5ik liigendid liiguvad soovitud viisil, saab kasutada <\/span><span style=\"font-family:Courier New,Courier,monospace\">joint_state_publisher_gui<\/span><span> t\u00f6\u00f6riista.<\/span>\r\n\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<\/p><\/div>\n        <\/div>\n        <\/div>\n    <\/div>\r\n\r\n","protected":false},"excerpt":{"rendered":"<p>Selles harjutuses kasutame URDFi (ingl k. Unified Robot Description Format), et luua liikuva roboti kirjeldus. Selleks, et n\u00e4ite j\u00e4rgi kaasa teha, on vaja ROSi ja catkini t\u00f6\u00f6ruumi. Lisaks on vaja ROSi kimpe urdf_tutorial ning joint_state_publisher_gui. Kui kasutad kursuse korraldajate poolt &#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-80","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/80","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=80"}],"version-history":[{"count":11,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/80\/revisions"}],"predecessor-version":[{"id":432,"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/pages\/80\/revisions\/432"}],"wp:attachment":[{"href":"https:\/\/sisu.ut.ee\/rosak\/wp-json\/wp\/v2\/media?parent=80"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}