## For instruction on writing tutorials ## http://www.ros.org/wiki/WritingTutorials #################################### ##FILL ME IN #################################### ## for a custom note with links: ## note = ## for the canned note of "This tutorial assumes that you have completed the previous tutorials:" just add the links ## note.0= ## descriptive title for the tutorial ## title = Setup the Navigation Stack for TurtleBot ## multi-line description to be displayed in search ## description = Provides a first glimpse of navigation configuration for your robot, with references to other much more comprehensive tutorials. ## the next tutorial description (optional) ## next = ## links to next tutorial (optional) ## next.0.link = [[turtlebot_navigation/Tutorials/Build a map with SLAM|Build a map with SLAM]] ## next.1.link= ## what level user is this tutorial for ## level= BeginnerCategory ## keywords = #################################### <> <> This tutorial doesn't pretend to be a comprehensive guide for fine tuning TurtleBot navigation, as the [[navigation/Tutorials|navigation tutorials]] do a great job on this. Here we just provide some useful how-tos and tricks that !TurtleBot users sometimes ask. The idea is to save your time, avoiding you the need of digging in the abundant existing documentation! == Key files == The !TurtleBot navigation is ruled (as in almost any other ROS robot) by a combination of launch and yaml files. Both are contained on [[turtlebot_navigation]] package, on launch and param directories respectively. == Move base == !TurtleBot navigation motion is generated by [[move_base]], who maintains a global and a local cost maps so it can create global and local plans. Its behavior is defined on param/move_base yaml files, three for cost maps and base_local_planner_params.yaml for the planner. [[costmap_2d]] configuration is quite tricky, and in most cases is driven by the need of balance between cpu usage and performance, so we will not mention here. === Planner === * Change speed limits: * max_vel_x: maximum linear velocity; absolute limit for !TurtleBot 1 is 0.5, and 0.7 for !TurtleBot 2 * min_vel_x: minimum linear velocity; maybe you will need to increase when caring heavy loads, in case the robot cannot beat friction at minimum speed * max_rotational_vel: maximum angular velocity; absolute limit for !TurtleBot 2 is 3.14 (not sure for !TurtleBot 1; ''can anyone fill this?'') * min_in_place_rotational_vel: same comment as for minimum linear velocity * Goal tolerance. These two parameters allow you to make !TurtleBot more or less accurate when reaching its goal. '''Be careful: very low values can make the robot move around the goal without reaching it!''' * yaw_goal_tolerance * xy_goal_tolerance * Cost computing biases. These three parameters define the preference of !TurtleBot when following its global plan: * path_distance_bias: increase to make the robot follow the plan more closely * goal_distance_bias: increase to make the robot trajectory smoother and more efficient * occdist_scale: increase to make the robot more afraid to hit obstacles == Amcl (localization) == !TurtleBot localization is provided by [[amcl]]. You can tweak this algorithm by modifying parameters on launch/includes/_amcl.launch file. But this is not basic stuff, and so out of the scope of this tutorial. == Gmapping (map building) == !TurtleBot maps are build with [[gmapping]]. You can tweak this algorithm by modifying parameters on launch/includes/_gmapping.launch file. But again, this is out of the scope of this tutorial. ## AUTOGENERATED DO NOT DELETE ## TutorialCategory ## FILL IN THE STACK TUTORIAL CATEGORY HERE