#include <polar_match.h>
Public Member Functions | |
void | pm_find_far_points (PMScan *ls) |
void | pm_init () |
Initialises internar variables. | |
void | pm_median_filter (PMScan *ls) |
PM_TYPE | pm_psm (PMScan *lsr, PMScan *lsa) |
PM_TYPE | pm_psm_c (PMScan *lsr, PMScan *lsa) |
void | pm_segment_scan (PMScan *ls) |
PolarMatcher () | |
stopping condition; the pose change has to be smaller than ... for ICP, MBICP | |
Public Attributes | |
std::vector< PM_TYPE > | pm_co |
PM_TYPE | PM_DFI |
std::vector< PM_TYPE > | pm_fi |
PM_TYPE | PM_FI_MAX |
PM_TYPE | PM_FI_MIN |
double | PM_FOV |
int | PM_L_POINTS |
double | PM_MAX_ERROR |
int | PM_MAX_ITER |
stopping condition; the pose change has to be smaller than ... | |
int | PM_MAX_ITER_ICP |
maximum number of iterations for PSM.PSM_C | |
double | PM_MAX_RANGE |
field of view of the laser range finder in degrees | |
int | PM_MIN_VALID_POINTS |
[cm] max valid laser range (set this to about 400 for the Hokuyo URG) | |
int | PM_SEARCH_WINDOW |
minimum number of valid points for scanmatching | |
std::vector< PM_TYPE > | pm_si |
double | PM_STOP_COND |
int | PM_STOP_COND_ICP |
maximum number of iterations for ICP,MBICP | |
double | PM_TIME_DELAY |
half window size which is searched for correct orientation | |
Private Member Functions | |
PM_TYPE | norm_a (PM_TYPE a) |
void | pm_cov_est (PM_TYPE err, double *c11, double *c12, double *c22, double *c33, bool corridor=false, PM_TYPE corr_angle=0) |
PM_TYPE | pm_error_index (PMScan *lsr, PMScan *lsa) |
PM_TYPE | pm_orientation_search (const PMScan *ref, const PM_TYPE *new_r, const int *new_bad) |
void | pm_scan_project (const PMScan *act, PM_TYPE *new_r, int *new_bad) |
PM_TYPE | pm_translation_estimation (const PMScan *ref, const PM_TYPE *new_r, const int *new_bad, PM_TYPE C, PM_TYPE *dx, PM_TYPE *dy) |
PM_TYPE | point_line_distance (PM_TYPE x1, PM_TYPE y1, PM_TYPE x2, PM_TYPE y2, PM_TYPE x3, PM_TYPE y3, PM_TYPE *x, PM_TYPE *y) |
Definition at line 93 of file polar_match.h.
PolarMatcher::PolarMatcher | ( | ) |
stopping condition; the pose change has to be smaller than ... for ICP, MBICP
Definition at line 65 of file polar_match.cpp.
PM_TYPE PolarMatcher::norm_a | ( | PM_TYPE | a | ) | [inline, private] |
Definition at line 119 of file polar_match.h.
void PolarMatcher::pm_cov_est | ( | PM_TYPE | err, | |
double * | c11, | |||
double * | c12, | |||
double * | c22, | |||
double * | c33, | |||
bool | corridor = false , |
|||
PM_TYPE | corr_angle = 0 | |||
) | [private] |
Definition at line 349 of file polar_match.cpp.
Definition at line 236 of file polar_match.cpp.
void PolarMatcher::pm_find_far_points | ( | PMScan * | ls | ) |
Definition at line 216 of file polar_match.cpp.
void PolarMatcher::pm_init | ( | ) |
Initialises internar variables.
Definition at line 72 of file polar_match.cpp.
void PolarMatcher::pm_median_filter | ( | PMScan * | ls | ) |
Definition at line 96 of file polar_match.cpp.
PM_TYPE PolarMatcher::pm_orientation_search | ( | const PMScan * | ref, | |
const PM_TYPE * | new_r, | |||
const int * | new_bad | |||
) | [private] |
Function estimating the orientation of the current scan represented with range readings new_r and flags new_bad with respect to the reference scan ref. Assuming that the current and ref scan were taken at the same position, to an orientation change of the current scan a left or right shift of the scan ranges corresponds. The functions estimates the orientation by finding that shift which minimizes the difference between the current and ref. scan. The orientation estimate is then refined using interpolation.
Definition at line 718 of file polar_match.cpp.
Definition at line 516 of file polar_match.cpp.
Definition at line 387 of file polar_match.cpp.
void PolarMatcher::pm_scan_project | ( | const PMScan * | act, | |
PM_TYPE * | new_r, | |||
int * | new_bad | |||
) | [private] |
projects the current (active) scan act to the base (ref.) (0,0,0) coordinate frame returns in new_r interpolated r at measurement bearings returns in new_bad bad flags of the interpolated range readings
Definition at line 615 of file polar_match.cpp.
void PolarMatcher::pm_segment_scan | ( | PMScan * | ls | ) |
Definition at line 134 of file polar_match.cpp.
PM_TYPE PolarMatcher::pm_translation_estimation | ( | const PMScan * | ref, | |
const PM_TYPE * | new_r, | |||
const int * | new_bad, | |||
PM_TYPE | C, | |||
PM_TYPE * | dx, | |||
PM_TYPE * | dy | |||
) | [private] |
Definition at line 796 of file polar_match.cpp.
PM_TYPE PolarMatcher::point_line_distance | ( | PM_TYPE | x1, | |
PM_TYPE | y1, | |||
PM_TYPE | x2, | |||
PM_TYPE | y2, | |||
PM_TYPE | x3, | |||
PM_TYPE | y3, | |||
PM_TYPE * | x, | |||
PM_TYPE * | y | |||
) | [private] |
Definition at line 589 of file polar_match.cpp.
std::vector<PM_TYPE> PolarMatcher::pm_co |
Definition at line 141 of file polar_match.h.
PM_TYPE PolarMatcher::PM_DFI |
Definition at line 137 of file polar_match.h.
std::vector<PM_TYPE> PolarMatcher::pm_fi |
Definition at line 139 of file polar_match.h.
PM_TYPE PolarMatcher::PM_FI_MAX |
Definition at line 136 of file polar_match.h.
PM_TYPE PolarMatcher::PM_FI_MIN |
Definition at line 135 of file polar_match.h.
double PolarMatcher::PM_FOV |
Definition at line 143 of file polar_match.h.
Definition at line 133 of file polar_match.h.
double PolarMatcher::PM_MAX_ERROR |
Definition at line 150 of file polar_match.h.
stopping condition; the pose change has to be smaller than ...
Definition at line 152 of file polar_match.h.
maximum number of iterations for PSM.PSM_C
Definition at line 153 of file polar_match.h.
double PolarMatcher::PM_MAX_RANGE |
field of view of the laser range finder in degrees
Definition at line 144 of file polar_match.h.
[cm] max valid laser range (set this to about 400 for the Hokuyo URG)
Definition at line 145 of file polar_match.h.
minimum number of valid points for scanmatching
Definition at line 146 of file polar_match.h.
std::vector<PM_TYPE> PolarMatcher::pm_si |
Definition at line 140 of file polar_match.h.
double PolarMatcher::PM_STOP_COND |
Definition at line 151 of file polar_match.h.
maximum number of iterations for ICP,MBICP
Definition at line 154 of file polar_match.h.
double PolarMatcher::PM_TIME_DELAY |
half window size which is searched for correct orientation
[ms]time delay (time registration error) in the laser measurements
Definition at line 148 of file polar_match.h.