ROS learning (1) - Navigation Stack

This is my first ROS learning note . I decide to study ROS because of my work where a cleaning robot is required to complete a room cleaning task.  The key point is to navigate a path to cover the room considering the obstacle avoidance. So I plan to start from Navigation Stack and gradually deep learning each package of Navigation Stack including Move_base, costmap_2d and global_planner  or local_planner , each of these is significant  for executing an effective navigation path calculation.


  • Navigation Stack

   ROS wiki : http://wiki.ros.org/navigation?distro=electric

navigation:amcl |base_local_planner | carrot_planner | clear_costmap_recovery | costmap_2d | dwa_local_planner | fake_localization | map_server | move_base | move_base_msgs | move_slow_and_clear | nav_core | navfn | robot_pose_ekf | rotate_recovery | voxel_grid

    A 2D navigation stack that takes in information from odometry, sensor streams, and a goal pose and outputs safe velocity commands that are sent to a mobile base.

    According to wiki tutorial,  we get in touch with important concepts, such as Transforms(tf) , Odometry , Costmap , Global_planner, Local_planner , Move_base , AMCL,Teb_localPlanner.

attachment:overview_tf.png

The move_base node provides a ROS interface for configuring, running, and interacting with thenavigation stack on a robot. A high-level view of the move_base node and its interaction with other components is shown above. The blue vary based on the robot platform, the gray are optional but are provided for all systems, and the white nodes are required but also provided for all systems. For more information on configuration of themove_base node, and the navigation stack as a whole, please see thenavigation setup and configuration tutorial.

 This package provides an implementation of a 2D costmap that takes in sensor data from the world, builds a 2D or 3D occupancy grid of the data (depending on whether a voxel based implementation is used), and inflates costs in a 2D costmap based on the occupancy grid and a user specified inflation radius. This package also provides support for map_server based initialization of a costmap, rolling window based costmaps, and parameter based subscription to and configuration of sensor topics.

tf is a package that lets the user keep track of multiple coordinateframes over time. tf maintains the relationship between coordinateframes in a tree structure buffered in time, and lets the usertransform points, vectors, etc between any two coordinate frames atany desired point in time.

The navigation stack uses tf to determine the robot's location in the world and relate sensor data to a static map. However, tf does not provide any information about the velocity of the robot. Because of this, the navigation stack requires that any odometry source publish both a transform and a nav_msgs/Odometry message over ROS that contains velocity information. This tutorial explains the nav_msgs/Odometry message and provides example code for publishing both the message and transform over ROS and tf respectively.

The teb_local_planner package implements a plugin to the base_local_planner of the 2D navigation stack. The underlying method called Timed Elastic Band locally optimizes the robot's trajectory with respect to trajectory execution time, separation from obstacles and compliance with kinodynamic constraints at runtime.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值