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

  1. for both differential drive and holonomic wheeled robots only. command = Vel_x, Vel_y, Vel_theta.

  2. 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.

http://wiki.ros.org/base_local_planner

Last updated

Was this helpful?