Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

SmartMapperGridMap Component

SmartMapperGridMap-ComponentImage

Component Short Description: The SmartMapperGridMap provides mapping services based on occupancy grid maps.

Component Documentation

The SmartMapperGridMap provides mapping services based on occupancy grid maps. Laser scans are taken for building a current and a longterm map.

The current map represents the latest environment of the robot. It can be preoccupied with grids of the longterm map and can be used for path planning e.g. with SmartPlannerBreadthFirstSearch. It contains either occupied cells or free cells (binary). An optional obstacle growing can be applied to the current map.

The longterm map holds cell values from 0 to 255. Values from 0 to 127 denote the traversability where 0 is completely free. Values from 128 to 255 are special values: Obstacles are marked with 128, cells occupied by obstacle growing with 129 and undeletable grids are marked with 130. The cell values can be accumulated over time to represent the environment over a longer period.

Both grid maps can be saved to XPM and XML and loaded from XML files.

Component-Datasheet Properties

Table: Component-Datasheet Properties
Property Name Property Value Property Description
SpdxLicense LGPL-2.0-or-later https://spdx.org/licenses/LGPL-2.0-or-later.html
TechnologyReadinessLevel TRL5
Homepage http://servicerobotik-ulm.de/components
Supplier Servicerobotics Ulm
Purpose Mapping
MarketName Grid-Map Provider Component

Component Ports

LaserServiceIn

Documentation:

CurrQueryServer

Documentation:

LtmQueryServer

Documentation:

CurrMapOut

Documentation:

Component Parameters: SmartMapperGridMapParams

Internal Parameter: CurrentMap

Documentation:

Table: Internal Parameter CurrentMap
Attribute Name Attribute Type Attribute Value Attribute Description
interval UInt32 10

Specify the interval for considering laser scans to build the current map. The component will process every nth laser scan. The actual interval for building the current map thus depends on the value of this setting and on the rate of the laser scan for pushing new scans. This can be used to slow down the building of the current map.

growing String "star16"

Obstacle growing mode. Obstacle can be grown in circles with 8 (circle8) or 16 (circle16) (circle40) (circle32) occupied cells around the obstacle or as a star of 8 (star8) or 16 (star16) occupied cells around the obstacle. Obstacle growing can also be deactivated with value no.

xsize UInt32 20000

Initial value for x size of current map. [mm].

ysize UInt32 20000

Initial value for y size of current map. [mm].

xpos Int32 -10000

Initial value for x offset of current map relative to world. [mm].

ypos Int32 -10000

Initial value for y offset of current map relative to world. [mm].

id UInt32 0

Initial id of the current map. Can later be set with parameter CURPARAMETER. The id ?id will be assigned to the current map to synchronize components, for example with SmartPlannerBreadthFirstSearch and SmartCdlServer.

Internal Parameter: LtmMap

Documentation:

Table: Internal Parameter LtmMap
Attribute Name Attribute Type Attribute Value Attribute Description
kalman Int32 100

Adaption rate for kalman filter weighting. [0-255].

xsize UInt32 20000

Initial value for x size of longterm map. [mm].

ysize UInt32 20000

Initial value for y size of longterm map. [mm]

xpos Int32 -10000

Initial value for x offset of longterm map relative to world. [mm]

ypos Int32 -10000

Initial value for y offset of longterm map relative to world. [mm]

id UInt32 0

Initial id of the map. Can later be set with LTMPARAMETER. The id ?id will be assigned to the longterm map for identification.

Internal Parameter: General

Documentation:

Table: Internal Parameter General
Attribute Name Attribute Type Attribute Value Attribute Description
cellsize UInt32 50

Specify the size of the cells in the grid maps. [mm].

connectLaser Boolean true

To use mapper as map server only set to false

verbose Boolean false

Print debug messages?

mapDataDir String "data/maps/"

ParameterSetInstance: MapperParams

Trigger Instance: CURPARAMETER

Property: active = false

Documentation:

Drop the current map and create a new map with free cells of dimensions [mm] ?xsize and ?ysize. The map is initialized with an offset [mm] ?xoff and ?yoff relative to world coordinates. The cellsize used for this map as well as the obstacle growing type are specified in the ini-configuration. The id ?id will be assigned to the map to synchronize components, for example with SmartPlannerBreadthFirstSearch and SmartCdlServer. Using this parameter is only allowed in neutral state.

Trigger Instance: LTMPARAMETER

Property: active = false

Documentation:

Drop the longterm map and create a new map with free cells of dimensions [mm] ?xsize and ?ysize. The map is initialized at offset [mm] ?xoff and ?yoff. The cellsize used for this map is specified in the ini-configuration. The id ?id will be assigned to the map to identify it. Using this parameter is only allowed in neutral state.

Trigger Instance: LTMINITIALIZE

Property: active = false

Documentation:

Clear the longterm map and initialize the cells with value ?value.

Trigger Instance: CURSAVE

Property: active = false

Documentation:

Save the current map to XML file test-cur-?number.xml.

Trigger Instance: CURLOAD

Property: active = false

Documentation:

Load the current map from XML file test-cur-?number.xml. Using this parameter is only allowed in neutral state.

Trigger Instance: CURLOADLTM

Property: active = false

Documentation:

Load the current map from longterm map. The long term map is thresholded to meet the binary representation of the current map. See parameter CURLTM for information on the threshold. Using this parameter is only allowed in neutral state.

Trigger Instance: CURSAVEXPM

Property: active = false

Documentation:

Save the current map to XPM file test-cur-?number.xpm.

Trigger Instance: LTMSAVE

Property: active = false

Documentation:

Save the longterm map to XML file test-ltm-.xml.

Trigger Instance: LTMLOAD

Property: active = false

Documentation:

Load the longterm map from XML file test-ltm-.xml. Using this parameter is only allowed in neutral state.

Trigger Instance: LTMSAVEXPM

Property: active = false

Documentation:

Save the longterm map to XPM file test-ltm-.xpm.

Trigger Instance: LTMSAVEYAMLPGM

Property: active = false

Documentation:

Trigger Instance: LTMSAVEYAMLPPM

Property: active = false

Documentation:

Trigger Instance: LTMLOADYAML

Property: active = false

Documentation:

Trigger Instance: LTMSAVEIEEESTD

Property: active = false

Documentation:

Trigger Instance: LTMLOADIEEESTD

Property: active = false

Documentation:

Parameter Instance: CURLTM

Documentation:

Configures whether the current map is preoccupied from the longterm map. Possible values for ?preoccupy: ENABLE will cause the component to load values from the longterm map in each cycle to the current map by applying the threshold ?thresh to decide on the occupancy of the cell. If DISABLE, the current map is not preoccupied. A threshold is applied to preoccupy the binary current map: The cells of the new current map will be marked free if the value from the long term map is smaller than the threshold ?thresh. The cells will be marked as occupied if the long term map value is above the threshold.

Table: Parameter-Instance CURLTM
Attribute Name Attribute Type Attribute Value Attribute Description
preoccupation InlineEnumeration DISABLE
threshold Int32 20

Parameter Instance: CUREMPTY

Documentation:

Change the mode ?mode of building the current map: ACCUMULATE will add new occupied cells from the laser scan while EMPTY will clear the map in each cycle before adding occupied cells from the laser scan.

Table: Parameter-Instance CUREMPTY
Attribute Name Attribute Type Attribute Value Attribute Description
mapmode InlineEnumeration ACCUMULATE