Public Attributes | List of all members
sm_params Struct Reference

#include <algos.h>

Public Attributes

double clustering_threshold
 
int debug_verify_tricks
 
int do_alpha_test
 
double do_alpha_test_thresholdDeg
 
int do_compute_covariance
 
int do_visibility_test
 
double epsilon_theta
 
double epsilon_xy
 
double first_guess [3]
 
double gpm_extend_range_deg
 
int gpm_interval
 
double gpm_theta_bin_size_deg
 
struct hsm_params hsm
 
double laser [3]
 
LDP laser_ref
 
LDP laser_sens
 
double max_angular_correction_deg
 
double max_correspondence_dist
 
int max_iterations
 
double max_linear_correction
 
double max_reading
 
double min_reading
 
int orientation_neighbourhood
 
double outliers_adaptive_mult
 
double outliers_adaptive_order
 
double outliers_maxPerc
 
int outliers_remove_doubles
 
int restart
 
double restart_dt
 
double restart_dtheta
 
double restart_threshold_mean_error
 
double sigma
 
int use_corr_tricks
 
int use_ml_weights
 
int use_point_to_line_distance
 
int use_sigma_weights
 

Detailed Description

Definition at line 12 of file algos.h.

Member Data Documentation

double sm_params::clustering_threshold

For now, a very simple max-distance clustering algorithm is used

Definition at line 75 of file algos.h.

int sm_params::debug_verify_tricks

Checks that find_correspondences_tricks give the right answer

Definition at line 117 of file algos.h.

int sm_params::do_alpha_test

Discard correspondences based on the angles

Definition at line 79 of file algos.h.

double sm_params::do_alpha_test_thresholdDeg

Definition at line 80 of file algos.h.

int sm_params::do_compute_covariance

Use the method in http://purl.org/censi/2006/icpcov to compute the matching covariance.

Definition at line 114 of file algos.h.

int sm_params::do_visibility_test

I believe this trick is documented in one of the papers by Guttman (but I can't find the reference). Or perhaps I was told by him directly.

If you already have a guess of the solution, you can compute the polar angle
of the points of one scan in the new position. If the polar angle is not a monotone
function of the readings index, it means that the surface is not visible in the 
next position. If it is not visible, then we don't use it for matching.

This is confusing without a picture! To understand what's going on, make a drawing
in which a surface is not visible in one of the poses.

Implemented in the function visibilityTest().

Definition at line 96 of file algos.h.

double sm_params::epsilon_theta

A threshold for stopping.

Definition at line 31 of file algos.h.

double sm_params::epsilon_xy

A threshold for stopping.

Definition at line 29 of file algos.h.

double sm_params::first_guess[3]

Where to start

Definition at line 19 of file algos.h.

double sm_params::gpm_extend_range_deg

Definition at line 131 of file algos.h.

int sm_params::gpm_interval

Definition at line 132 of file algos.h.

double sm_params::gpm_theta_bin_size_deg

Definition at line 130 of file algos.h.

struct hsm_params sm_params::hsm

Definition at line 134 of file algos.h.

double sm_params::laser[3]

Pose of sensor with respect to robot: used for computing the first estimate given the odometry.

Definition at line 121 of file algos.h.

LDP sm_params::laser_ref

First scan ("ref"erence scan)

Definition at line 14 of file algos.h.

LDP sm_params::laser_sens

Second scan ("sens"or scan)

Definition at line 16 of file algos.h.

double sm_params::max_angular_correction_deg

Maximum angular displacement between scans (deg)

Definition at line 22 of file algos.h.

double sm_params::max_correspondence_dist

Maximum distance for a correspondence to be valid

Definition at line 34 of file algos.h.

int sm_params::max_iterations

When to stop

Definition at line 27 of file algos.h.

double sm_params::max_linear_correction

Maximum translation between scans (m)

Definition at line 24 of file algos.h.

double sm_params::max_reading

Definition at line 127 of file algos.h.

double sm_params::min_reading

mark as invalid ( = don't use ) rays outside of this interval

Definition at line 127 of file algos.h.

int sm_params::orientation_neighbourhood

Number of neighbour rays used to estimate the orientation.

Definition at line 77 of file algos.h.

double sm_params::outliers_adaptive_mult

Definition at line 66 of file algos.h.

double sm_params::outliers_adaptive_order

Parameters describing a simple adaptive algorithm for discarding. 1) Order the errors. 2) Choose the percentile according to outliers_adaptive_order. (if it is 0.7, get the 70% percentile) 3) Define an adaptive threshold multiplying outliers_adaptive_mult with the value of the error at the chosen percentile. 4) Discard correspondences over the threshold.

This is useful to be conservative; yet remove the biggest errors.

Definition at line 65 of file algos.h.

double sm_params::outliers_maxPerc

Percentage of correspondences to consider: if 0.9, always discard the top 10% of correspondences with more error

Definition at line 53 of file algos.h.

int sm_params::outliers_remove_doubles

Do not allow two different correspondences to share a point

Definition at line 69 of file algos.h.

int sm_params::restart

Restart if error under threshold (0 or 1)

Definition at line 39 of file algos.h.

double sm_params::restart_dt

Displacement for restarting

Definition at line 43 of file algos.h.

double sm_params::restart_dtheta

Displacement for restarting

Definition at line 45 of file algos.h.

double sm_params::restart_threshold_mean_error

Threshold for restarting

Definition at line 41 of file algos.h.

double sm_params::sigma

Noise in the scan

Definition at line 124 of file algos.h.

int sm_params::use_corr_tricks

Use smart tricks for finding correspondences. Only influences speed; not convergence.

Definition at line 36 of file algos.h.

int sm_params::use_ml_weights

If 1, the field "true_alpha" is used to compute the incidence beta, and the factor (1/cos^2(beta)) used to weight the impact of each correspondence. This works fabolously if doing localization, that is the first scan has no noise. If "true_alpha" is not available, it uses "alpha".

Definition at line 107 of file algos.h.

int sm_params::use_point_to_line_distance

If 1, use PlICP; if 0, use vanilla ICP.

Definition at line 99 of file algos.h.

int sm_params::use_sigma_weights

Definition at line 110 of file algos.h.


The documentation for this struct was generated from the following file:


csm
Author(s): Andrea Censi
autogenerated on Tue May 11 2021 02:18:23