{"id":37,"date":"2016-10-24T20:38:24","date_gmt":"2016-10-24T20:38:24","guid":{"rendered":"https:\/\/commons.mtholyoke.edu\/icrl\/?page_id=37"},"modified":"2016-10-24T20:41:11","modified_gmt":"2016-10-24T20:41:11","slug":"basic-turtlebot-navigation-guideline","status":"publish","type":"page","link":"https:\/\/commons.mtholyoke.edu\/icrl\/helpful-tools\/basic-turtlebot-navigation-guideline\/","title":{"rendered":"Basic Turtlebot Navigation Guideline"},"content":{"rendered":"<h3 id=\"sites-page-title-header\" align=\"left\"><\/h3>\n<div id=\"sites-canvas-main\" class=\"sites-canvas-main\">\n<div id=\"sites-canvas-main-content\">\n<table class=\"sites-layout-name-one-column sites-layout-hbox\" cellspacing=\"0\">\n<tbody>\n<tr>\n<td class=\"sites-layout-tile sites-tile-name-content-1\">\n<div dir=\"ltr\">\n<div>\n<p><span style=\"font-size: medium\">To download the turtlebot simulator<\/span><\/p>\n<div dir=\"ltr\">\n<table>\n<colgroup>\n<col width=\"*\" \/><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><span style=\"font-family: 'courier new', monospace;font-size: medium\">sudo apt-get install ros-indigo-turtlebot-simulator<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><span style=\"font-family: arial, sans-serif;font-size: medium\"><br \/>\n<\/span><\/p>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">To load the turtlebot simulation<\/span><\/p>\n<div dir=\"ltr\">\n<table>\n<colgroup>\n<col width=\"*\" \/><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><span style=\"font-family: 'courier new', monospace;font-size: medium\">source \/opt\/ros\/indigo\/setup.bash<br \/>\nroslaunch turtlebot_gazebo turtlebot_world.launch<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><span style=\"font-family: arial, sans-serif;font-size: medium\"><br \/>\n<\/span><\/p>\n<\/div>\n<p><span style=\"font-family: arial, sans-serif;font-size: medium\"><span style=\"font-family: arial, sans-serif;font-size: medium\">To launch the turtlebot<br \/>\n<\/span><\/span><\/p>\n<table border=\"1\" cellspacing=\"0\">\n<tbody>\n<tr>\n<td>\u00a0<span style=\"font-size: medium\">roslaunch turtlebot_bringup minimal.launch<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">To move the turtlebot<\/span><\/p>\n<div dir=\"ltr\">\n<table>\n<colgroup>\n<col width=\"*\" \/><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><span style=\"font-family: 'courier new', monospace;font-size: medium\">roslaunch kobuki_keyop keyop.launch<\/span><\/p>\n<p dir=\"ltr\"><span style=\"font-family: 'courier new', monospace;font-size: medium\">***OR***<br \/>\n<\/span><\/p>\n<p dir=\"ltr\"><span style=\"font-family: 'courier new', monospace;font-size: medium\">roslaunch turtlebot_teleop keyboard_teleop.launch<br \/>\n<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div><span style=\"font-family: arial, sans-serif;font-size: medium\">\u00a0<\/span><\/div>\n<div>To download the turtlebot navigation<\/div>\n<div dir=\"ltr\">\n<table>\n<colgroup>\n<col width=\"*\" \/><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><span style=\"font-family: 'courier new', monospace;font-size: medium\">sudo apt-get install ros-indigo-turtlebot-navigation<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>This installs gmapping and amcl required for the navigation<\/p>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">To start map building<\/span><\/p>\n<div dir=\"ltr\">\n<table>\n<colgroup>\n<col width=\"*\" \/><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><span style=\"font-family: 'courier new', monospace;font-size: medium\">roslaunch turtlebot_gazebo gmapping_demo.launch<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><span style=\"font-family: arial, sans-serif;font-size: medium\"><br \/>\n<\/span><\/p>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">Use RViz to visualize the map building process<\/span><\/p>\n<div dir=\"ltr\">\n<table>\n<colgroup>\n<col width=\"*\" \/><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><span style=\"font-size: medium\">roslaunch turtlebot_rviz_launchers view_navigation.launch &#8211;screen<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><span style=\"font-family: arial, sans-serif;font-size: medium\"><br \/>\n<\/span><\/p>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">Finally, save the map to disk<\/span><\/p>\n<div dir=\"ltr\">\n<table>\n<colgroup>\n<col width=\"*\" \/><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><span style=\"font-family: 'courier new', monospace;font-size: medium\">rosrun map_server map_saver -f &lt;your map name&gt;<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><span style=\"font-family: arial, sans-serif;font-size: medium\"><br \/>\n<\/span><\/p>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">Navigating the Background<\/span><\/p>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">To be sure that all will run as expected, kill all you launched in the previous section and repeat all steps except the map building. Instead, type:<\/span><\/p>\n<div dir=\"ltr\">\n<table>\n<colgroup>\n<col width=\"*\" \/><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><span style=\"font-family: 'courier new', monospace;font-size: medium\">roslaunch turtlebot_gazebo amcl_demo.launch map_file:=&lt;full path to your map YAML file&gt;<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">Or if you prefer to use an already created map, just omit the map_file argument.<\/span><\/p>\n<h3><a name=\"TOC-To-use-the-map-that-you-saved---first-close-everything.-Then-\"><\/a><span style=\"font-family: arial, sans-serif;font-size: medium\">To use the map that you saved &#8211; first close everything. Then,<\/span><\/h3>\n<div>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">Load the turtlebot simulator again:<\/span><\/p>\n<div dir=\"ltr\">\n<table>\n<colgroup>\n<col width=\"*\" \/><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><span style=\"font-family: 'courier new', monospace;font-size: medium\">source \/opt\/ros\/indigo\/setup.bash<br \/>\nroslaunch turtlebot_gazebo turtlebot_world.launch<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div>\n<div dir=\"ltr\">**Need to make sure that you\u00a0ALWAYS source the bashrc file before launching the turtlebot gazebo simulator<\/div>\n<div dir=\"ltr\"><\/div>\n<div dir=\"ltr\"><u>Run the navigation demo app passing in your generated map file.<\/u><\/div>\n<\/div>\n<div dir=\"ltr\">\n<table>\n<colgroup>\n<col width=\"*\" \/><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><span style=\"font-family: 'courier new', monospace;font-size: medium\">roslaunch turtlebot_navigation amcl_demo.launch map_file:=\/tmp\/my_map.yaml<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p dir=\"ltr\">**When launching the map, make sure you put the full path, i.e. \/home\/turtlebot\/map1.yaml (this path should be after \u2018=\u2019)<\/p>\n<p dir=\"ltr\">Launch RViz to visualize the map building process<\/p>\n<div dir=\"ltr\">\n<table>\n<colgroup>\n<col width=\"*\" \/><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><span style=\"font-family: 'courier new', monospace;font-size: medium\">roslaunch turtlebot_rviz_launchers view_navigation.launch<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div dir=\"ltr\"><\/div>\n<\/div>\n<h4><a name=\"TOC-Localize-the-TurtlebotWhen-starting-up-the-TurtleBot-does-not-know-where-it-is.-To-provide-it-its-approximate-location-on-the-map:\"><\/a><\/h4>\n<div>\n<p dir=\"ltr\"><span style=\"font-size: medium\">Localize the Turtlebot<\/span><\/p>\n<\/div>\n<p dir=\"ltr\"><span style=\"font-size: medium\">When starting up, the TurtleBot does not know where it is. To provide it its approximate location on the map:<\/span><\/p>\n<div>\n<ol>\n<li>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif\">Click the\u00a0<\/span>&#8220;2D Pose Estimate&#8221; button<\/p>\n<\/li>\n<li>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif\">Click\u00a0<\/span>on the map where the TurtleBot approximately is and drag in the direction the TurtleBot is pointing.<\/p>\n<\/li>\n<\/ol>\n<p dir=\"ltr\">You will see a collection of arrows which are hypotheses of the position of the TurtleBot. The laser scan should line up approximately with the walls in the map. If things don&#8217;t line up well you can repeat the procedure.<\/p>\n<\/div>\n<h4><a name=\"TOC-Send-a-navigation-goal\"><\/a><span style=\"font-family: arial, sans-serif;font-size: medium\">Send a navigation goal<\/span><\/h4>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">With the TurtleBot localized, it can then autonomously plan through the environment.<\/span><\/p>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">To send a goal:<\/span><\/p>\n<ol>\n<li>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">Click the &#8220;2D Nav Goal&#8221; button<\/span><\/p>\n<\/li>\n<li>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">Click on the map where you want the TurtleBot to drive and drag in the direction the TurtleBot should be pointing at the end.<\/span><\/p>\n<\/li>\n<\/ol>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">This can fail if the path or goal is blocked.<\/span><\/p>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">If you want to stop the robot before it reaches it&#8217;s goal, send it a goal at it&#8217;s current location.<\/span><\/p>\n<h3><a name=\"TOC-1\"><\/a><span style=\"font-family: arial, sans-serif;font-size: medium\"><br \/>\n<\/span><\/h3>\n<h3><a name=\"TOC-On-your-Workstation\"><\/a><span style=\"font-family: arial, sans-serif;font-size: medium\">On your Workstation<\/span><\/h3>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">This assumes you have ROS on your workstation and ROS_MASTER_URI has been set to point to your turtlebot.<\/span><\/p>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\">Launch rviz:<\/span><\/p>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\"># Pre-Groovy<\/span><\/p>\n<div dir=\"ltr\">\n<table>\n<colgroup>\n<col width=\"*\" \/><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><span style=\"font-family: 'courier new', monospace;font-size: medium\">rosrun rviz rviz -d `rospack find turtlebot_navigation`\/nav_rviz.vcg<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p dir=\"ltr\"><span style=\"font-family: arial, sans-serif;font-size: medium\"># Groovy or later<\/span><\/p>\n<div dir=\"ltr\">\n<table>\n<colgroup>\n<col width=\"*\" \/><\/colgroup>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><span style=\"font-family: 'courier new', monospace;font-size: medium\">roslaunch turtlebot_rviz_launchers view_navigation.launch &#8211;screen<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>To download the turtlebot simulator sudo apt-get install ros-indigo-turtlebot-simulator To load the turtlebot simulation source \/opt\/ros\/indigo\/setup.bash roslaunch turtlebot_gazebo turtlebot_world.launch To launch the turtlebot \u00a0roslaunch turtlebot_bringup minimal.launch To move the turtlebot roslaunch kobuki_keyop keyop.launch ***OR*** roslaunch turtlebot_teleop keyboard_teleop.launch \u00a0 To download the turtlebot navigation sudo apt-get install ros-indigo-turtlebot-navigation This installs gmapping and amcl required for the &hellip; <a href=\"https:\/\/commons.mtholyoke.edu\/icrl\/helpful-tools\/basic-turtlebot-navigation-guideline\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Basic Turtlebot Navigation Guideline<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":177,"featured_media":0,"parent":33,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-37","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/commons.mtholyoke.edu\/icrl\/wp-json\/wp\/v2\/pages\/37","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/commons.mtholyoke.edu\/icrl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/commons.mtholyoke.edu\/icrl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/commons.mtholyoke.edu\/icrl\/wp-json\/wp\/v2\/users\/177"}],"replies":[{"embeddable":true,"href":"https:\/\/commons.mtholyoke.edu\/icrl\/wp-json\/wp\/v2\/comments?post=37"}],"version-history":[{"count":3,"href":"https:\/\/commons.mtholyoke.edu\/icrl\/wp-json\/wp\/v2\/pages\/37\/revisions"}],"predecessor-version":[{"id":41,"href":"https:\/\/commons.mtholyoke.edu\/icrl\/wp-json\/wp\/v2\/pages\/37\/revisions\/41"}],"up":[{"embeddable":true,"href":"https:\/\/commons.mtholyoke.edu\/icrl\/wp-json\/wp\/v2\/pages\/33"}],"wp:attachment":[{"href":"https:\/\/commons.mtholyoke.edu\/icrl\/wp-json\/wp\/v2\/media?parent=37"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}