Go to the documentation of this file. 1 #include <gsl/gsl_vector.h>
4 #include "../csm_all.h"
9 if(!
params->do_alpha_test)
return 1;
12 if((
params->laser_sens->alpha_valid[i]==0) ||
13 (
params->laser_ref->alpha_valid[j]==0))
16 double alpha_i =
params->laser_sens->alpha[i];
17 double alpha_j =
params->laser_ref->alpha[j];
18 double tolerance =
deg2rad(
params->do_alpha_test_thresholdDeg);
21 double theta =
angleDiff(alpha_j, alpha_i);
45 double best_dist = 10000;
47 int from;
int to;
int start_cell;
49 params->max_linear_correction, &from, &to, &start_cell);
53 for(j=from;j<=to;j++) {
60 if(dist>
square(
params->max_correspondence_dist))
continue;
62 if( (-1 == j1) || (dist < best_dist) ) {
83 if((j2up==-1)&&(j2down==-1)) {
87 if(j2up ==-1) { j2 = j2down; }
else
88 if(j2down==-1) { j2 = j2up; }
else {
91 j2 = dist_up < dist_down ? j2up : j2down;
97 params->use_point_to_line_distance ? corr_pl : corr_pp;
int compatible(struct sm_params *params, int i, int j)
INLINE void ld_set_correspondence(LDP ld, int i, int j1, int j2)
INLINE int ld_valid_ray(LDP ld, int i)
double angleDiff(double a, double b)
point2d *restrict points_w
struct correspondence *restrict corr
double distance_squared_d(const double a[2], const double b[2])
void possible_interval(const double *p_i_w, LDP laser_sens, double max_angular_correction_deg, double max_linear_correction, int *from, int *to, int *start_cell)
INLINE int ld_next_valid_down(LDP ld, int i)
INLINE void ld_set_null_correspondence(LDP ld, int i)
void find_correspondences(struct sm_params *params)
INLINE int ld_next_valid_up(LDP ld, int i)
enum correspondence::@5 type
csm
Author(s): Andrea Censi
autogenerated on Wed Aug 17 2022 02:50:33