Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

SmartAmcl Component

SmartAmcl-ComponentImage

Component Short Description: The SmartAmcl implements the Adaptive Monte-Carlo Localization (AMCL) algorithm.

Component Documentation

SmartAmcl implements the Adaptive Monte-Carlo Localization (AMCL) algorithm. Localization is based on a particle filter and a pre-captured grid map of the environment. AMCL maintains a set of possible robot poses and updates this distribution by comparing laser scans against the pre-captured map. AMCL is adaptive because the amount of particles depends on the pose certainty: large number of particles if uncertainty increases and vice versa.

Based on its localization, SmartAmcl sends position updates to the base server (e.g. SmartPioneerBaseServer).

GPL-License: includes Code from the Player Project.

See also: http://playerstage.sourceforge.net/doc/Player-2.0.0/player/group__driver__amcl.html

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 Localization
MarketName Adaptive Monte-Carlo Localization (AMCL) Component

Component Ports

LaserServiceIn

Documentation:

LocalizationUpdateServiceOut

Documentation:

LocalizationEventServiceOut

Documentation:

AmclVisualizationInfoOut

Documentation:

Component Parameters: SmartAmclParams

Internal Parameter: Filter

Documentation:

Table: Internal Parameter Filter
Attribute Name Attribute Type Attribute Value Attribute Description
min_particles Int32 500

Lower bound for amount of particles.

max_particles Int32 5000

Upper bound for amount of particles.

recovery_alpha_slow Double 0.001

Decay rates for running averages. Used in deciding when to recover by adding random poses.

recovery_alpha_fast Double 0.1

Decay rates for running averages. Used in deciding when to recover by adding random poses.

kld_err Double 0.05

Population size error.

kld_z Double 0.99

Population size.

update_min_d Double 0.2

Update filter if x or y pos delta greater than update_min_d or delta of alpha > update_min_alpha.

update_min_alpha Double 0.5236

Update filter if x or y pos delta greater than update_min_d or delta of alpha > update_min_alpha.

resample_interval Double 1.0

The distributions will be resampled every x'th time.

Internal Parameter: Laser

Documentation:

Table: Internal Parameter Laser
Attribute Name Attribute Type Attribute Value Attribute Description
max_beams UInt32 30

Consider at most max_beams beams from laser for localization.

z_hit Double 0.95
z_short Double 0.1
z_max Double 0.05
z_rand Double 0.05
sigma_hit Double 0.2
lambda_short Double 0.1
laser_likelihood_max_dist Double 2.0
laser_model_type String "likelihood_field"

Values: beam | likelihood_field.

Internal Parameter: Odometry

Documentation:

Table: Internal Parameter Odometry
Attribute Name Attribute Type Attribute Value Attribute Description
alpha1 Double 0.2

Drift parameter/odometry error.

alpha2 Double 0.2

Drift parameter/odometry error.

alpha3 Double 0.8

Drift parameter/odometry error.

alpha4 Double 0.2

Drift parameter/odometry error.

alpha5 Double 0.2

Drift parameter/odometry error.

odom_model_type String "diff"

Specifies type of odometry. Values: diff | omni.

Internal Parameter: General

Documentation:

Table: Internal Parameter General
Attribute Name Attribute Type Attribute Value Attribute Description
initalizationType InlineEnumeration INI_POSE

INI_POSE: use initial_x/y/a. FILE_POSE: use initPoseFileName. GLOBAL: robot could start anywhere in map. AUTOMATIC: init from webots worldfile

initPoseFileName String "/tmp/lastRobotPose.txt"
verbose Boolean false

Print debug messages.

connect_services Boolean true

UNUSED.

yaml_file String "data/maps/amcl-c26.yaml"

Load map and parameters from this file.

initial_x Double 0.0

x value [m] of initial pose for Amcl. See also parameters.

initial_y Double 0.0

y value [m] of initial pose for Amcl. See also parameters.

initial_a Double 0.0

alpha/rotation [rad] of initial pose for Amcl. See also parameters.

initial_cov_xx Double 0.03

Initial pose covariance x. See also parameters.

initial_cov_yy Double 0.03

Initial pose covariance y. See also parameters.

initial_cov_aa Double 0.068539

Initial pose covariance alpha. See also parameters.

enable_visualization Boolean false

Show visualization window. Displays particles in map. WARNING: visualization might fail with X windows forwarding

lostEventMaxHypothese UInt32 3
lostEventMaxEigValueSum Double 0.2

ParameterSetInstance: LocalizationParameter

Trigger Instance: INITIALPOSE

Property: active = false

Documentation:

Set the initial pose in normal distribution. ?x = x coordinate [m], ?y = y coordinate [m], ?a = rotation in [rad].

Trigger Instance: GLOBALLOCALIZATION

Property: active = false

Documentation:

Initializes the Amcl, particles equally distributed.

Trigger Instance: LOADMAP

Property: active = false

Documentation: