<> <> == Overview == The cob_navigation stack provides configuration and launch files for running the [[navigation]] stack on a [[care-o-bot|Care-O-bot]] in a number of common configurations. For example, the [[cob_navigation_local]] package holds files that configure the [[move_base]] node to operate in an odometric frame, and the [[cob_mapping_slam]] package holds files that configure the robot for SLAM. These configuration files are intended for use as building blocks for applications that wish to use autonomous navigation as a component. The naming of the packages as well as the documentation is kept close to the one of [[pr2_navigation]] for ease of use for experienced ROS users. However, changes are made to suit our needs. == Documentation == There are three major sections to the documentation of the packages in this stack: * '''Applications''': These are launch files that are meant to run as standalone applications. They start all necessary components that are needed to run autonomous navigation. Applications have the extension {{{*.launch}}}. * '''Building Blocks''': These are launch files that are intended for inclusion in applications. They can be mixed and matched in order to make applications with similar components that perform different functions. Building Blocks launch files have the extension {{{*.xml}}}. * '''Configuration Files''': These are YAML files that hold common configuration options for the [[navigation]] stack on the Care-O-bot. They can be included in launch files for applications. The launch files for end users of the Care-O-bot or the rob@work are in the following packages: * [[cob_mapping_slam]] (map creation) * [[cob_navigation_global]] (navigation with static map) * [[cob_navigation_local]] (navigation without map) * [[cob_navigation_slam]] (navigation with dynamic map) Configuration files (except for the package specific ones) can be found in [[cob_navigation_config]]. The source code of the simple linear navigation is in [[cob_linear_nav]]. The following stacks provide detailed documentation of the parameters and nodes used in the cob_navigation stack: * [[navigation]] * [[slam_gmapping]] == Which launch file for which purpose? == There are a lot of different launch files in the different packages in the [[cob_navigation]] stack. Which package and which launch file should be used for which purpose? The different packages provide different setups depending on the task you would like to do: * If you want to '''create a map''' by driving around with the robot using '''tele-operation''', you should use `2dslam.launch` in [[cob_mapping_slam]]. To save a map, use the `map_saver` command-line utility provided by [[map_server]]. * If you want to '''create a map''' and simultaneously '''use autonomous navigation''' choose one of the launch files in [[cob_navigation_slam]]. To save a map, use the `map_saver` command-line utility provided by [[map_server]]. * If you '''already have a map''' use the launch files in [[cob_navigation_global]]. * If you only want to navigate in the '''local (odometric) frame''' of the robot use [[cob_navigation_local]]. There also exist different navigation algorithms (or modes) in the `cob_navigation_*` packages, from which you can choose. It also depends on the application you are targeting, which of those modes is suited the best. * `2dnav_ros_tr.launch` is best suited for environments that are highly dynamic, meaning there are e.g. a lot of people walking around. It uses a differential drive like mode, meaning that it turns the robot's front in driving direction. This is helpful for avoiding obstacles and providing safety functions as e.g. the emergency stop using the front Sick Laser Scanner. However, for doing fast repositioning to the side this mode is not well suited, because it does not fully utilise the omnidirectional capability of the robot. You send the goals via [[rviz]] on the `move_base_simple/goal` topic. * `2dnav_ros_dwa.launch` is suited for almost all environments (being dynamic or static). It uses a full omnidirectional mode which allows for fast and accurate repositioning. Its drawback is the decrease in safety functionality in highly dynamic environments. You send the goals via [[rviz]] on the `move_base_simple/goal` topic. * `2dnav_linear.launch` is well suited for obstacle free, static environments and quick'n'dirty repositioning. It does not have any obstacle avoidance, so other nodes have to do this (as is done with the [[cob_collision_velocity_filter]], which is started by default for all [[care-o-bot|Care-O-bots]] and [[Robots/Care-O-bot/distribution|rob@works]]). It is not suited for dynamic environments or environments where no straight path to the goal is available. You send the goals via [[rviz]] on the `move_base_linear_simple/goal` topic. * `2dnav_ipa.launch` and `2dnav_ipa_extloc.launch` each provide a differential like and a full omnidirectional navigation mode as well. The respective topics for [[rviz]] are `move_base_diff_simple/goal` and `move_base_simple/goal`. For example, for reaching the red '''X''' either `2dnav_ros_dwa.launch` or `2dnav_linear.launch` will yield good results. Whereas for reaching the green '''X''' `2dnav_ros_dwa.launch` or `2dnav_ros_tr.launch` could be used. If there would be people (or other beings) moving in the navigation area, `2dnav_ros_tr.launch` should be used. (Of course, the same holds for the respective modes of `2dnav_ipa.launch` and `2dnav_ipa_extloc.launch`.) {{attachment:navigation_example.png|Navigation Example|width=750}} == Support == Please consult <> to see if your problem is already known. Please use the [[http://www.care-o-bot-research.org/contributing/mailing-lists|mailing list]] for additional support or feature discussion. == Report a Bug == Use [[http://www.care-o-bot-research.org/trac|trac]] to report bugs or request features. [[http://www.care-o-bot-research.org/trac/report/1|View active tickets]] ## AUTOGENERATED DON'T DELETE ## CategoryStack