PKG - navigation
2D navigation stack
input = odometry, sensor(avoid obstacles), and a goal pose
output = safe velocity commands

tf = determine the robot's location in the world and relate sensor data to a static map. (no velocity data)
odometry = publish both a transform and a nav_msgs/Odometry message that contains velocity information.
HW Requirements
for both differential drive and holonomic wheeled robots only. command = Vel_x, Vel_y, Vel_theta.
planar laser mounted, for map building and localization.
costmaps
This uses 2 costmaps to store information about obstacles in the world, and in total 3 maps
global = long-term plans
local = local planning and obstacle avoidance
common = global & local
http://wiki.ros.org/costmap_2d
costmap_common_params.yaml
obstacle_range: 2.5
The robot will only update its map with info about obstacles that are within 2.5 meters of the base.
raytrace_range: 3.0
The robot will attempt to clear out space in front of it up to 3.0 meters away given a sensor reading.
footprint: [[x0, y0], [x1, y1], ... [xn, yn]]
center of the robot is assumed to be at (0.0, 0.0)
inflation_radius: 0.55
the robot will treat all paths that stay 0.55 meters or more away from obstacles as having equal obstacle cost.
global_costmap_params.yaml
global_frame
defines what coordinate frame the costmap should run in
robot_base_frame
defines the coordinate frame the costmap should reference for the base of the robot.
static_map
If you aren't using an existing map or map server, set the static_map parameter to false.
local_costmap_params.yaml
rolling_window
true means that the costmap will remain centered around the robot as the robot moves through the world.
width (meters), height (meters), and resolution (meters/cell)
dimension of the costmap
base_local_planner
given a high-level plan, compute velocity commands and send to the robot.
Last updated
Was this helpful?