Map Server / Saver

Source code on Github.

The Map Server implements the server for handling the map load requests for the stack and host a map topic. It also implements a map saver server which will run in the background and save maps based on service requests. There exists a map saver CLI similar to ROS 1 as well for a single map save.

Map Saver Parameters

save_map_timeout:

Type

Default

int

2.0

Description

Timeout to attempt saving the map (seconds).

free_thresh_default:

Type

Default

double

0.25

Description

Free space maximum probability threshold value for occupancy grid.

occupied_thresh_default:

Type

Default

double

0.65

Description

Occupied space minimum probability threshold value for occupancy grid.

Map Server Parameters

yaml_filename:

Type

Default

string

N/A

Description

Path to map yaml file. Note from Rolling + Iron-Turtle forward: This parameter can set either from the yaml file or using the launch configuration parameter map. If we set it on launch commandline / launch configuration default, we override the yaml default. If you would like the specify your map file in yaml, remove the launch default so it is not overridden in Nav2’s default launch files. Before Iron: yaml_filename must be set in the yaml (even if a bogus value) so that our launch scripts can overwrite it with launch values.

topic_name:

Type

Default

string

“map”

Description

Topic to publish loaded map to.

frame_id:

Type

Default

string

“map”

Description

Frame to publish loaded map in.

Costmap Filter Info Server Parameters

type:

Type

Default

int

0

Description

Type of costmap filter used. This is an enum for the type of filter this should be interpreted as. We provide the following pre-defined types:

  • 0: keepout zones / preferred lanes filter

  • 1: speed filter, speed limit is specified in % of maximum speed

  • 2: speed filter, speed limit is specified in absolute value (m/s)

  • 3: binary filter

filter_info_topic:

Type

Default

string

“costmap_filter_info”

Description

Topic to publish costmap filter information to.

mask_topic:

Type

Default

string

“filter_mask”

Description

Topic to publish filter mask to. The value of this parameter should be in accordance with topic_name parameter of Map Server tuned to filter mask publishing.

base:

Type

Default

double

0.0

Description

Base of OccupancyGrid mask value -> filter space value linear conversion which is being proceeded as: filter_space_value = base + multiplier * mask_value

multiplier:

Type

Default

double

1.0

Description

Multiplier of OccupancyGrid mask value -> filter space value linear conversion which is being proceeded as: filter_space_value = base + multiplier * mask_value

bond_heartbeat_period:

Type

Default

double

0.1

Description

The lifecycle node bond mechanism publishing period (on the /bond topic). Disabled if inferior or equal to 0.0.

Example

map_server:
  ros__parameters:
    yaml_filename: "turtlebot3_world.yaml"
    topic_name: "map"
    frame_id: "map"

map_saver:
  ros__parameters:
    save_map_timeout: 5.0
    free_thresh_default: 0.25
    occupied_thresh_default: 0.65

costmap_filter_info_server:
  ros__parameters:
    type: 1
    filter_info_topic: "costmap_filter_info"
    mask_topic: "filter_mask"
    base: 0.0
    multiplier: 0.25