laser_data.h
Go to the documentation of this file.
1 #ifndef H_LASER_DATA
2 #define H_LASER_DATA
3 
4 #include <sys/time.h>
5 #include <stdio.h>
6 
7 #include "restrict.h"
8 
9 struct correspondence;
10 
11 typedef struct {
12  double p[2];
13  double rho, phi;
14 } point2d;
15 
16 struct laser_data {
17  int nrays;
18  double min_theta;
19  double max_theta;
20 
21  double * restrict theta;
22 
23  int * restrict valid;
24  double * restrict readings;
25 
27 
28  double * restrict alpha;
29  double * restrict cov_alpha;
31 
33 
34  double * restrict true_alpha;
35 
37 
38  double true_pose[3];
39  double odometry[3];
40  double estimate[3];
41 
42 
48 
50  struct timeval tv;
51  char hostname[32];
52 
53 
54  /* Jump tables needed by find_correspondences_tricks(). */
59 };
60 
63  int valid;
65  int j1;
67  int j2;
69  enum { corr_pp = 0, corr_pl = 1} type;
71  double dist2_j1;
72 };
73 
74 typedef struct laser_data* LDP;
75 
78 
80 void ld_free(LDP);
81 
83 void ld_alloc(LDP, int nrays);
84 
86 void ld_dealloc(LDP);
87 
90 
92 void ld_compute_world_coords(LDP, const double *pose);
93 
96 
98 unsigned int ld_corr_hash(LDP);
99 
102 
104 int ld_valid_fields(LDP);
105 
107 void ld_simple_clustering(LDP ld, double threshold);
108 
110 void ld_compute_orientation(LDP ld, int size_neighbourhood, double sigma);
111 
112 
113 
114 
121 LDP ld_read_smart(FILE*);
122 
126 LDP ld_read_smart_string(const char*);
127 
128 
133 int ld_read_next_laser_carmen(FILE*, LDP*ld);
134 
136 LDP ld_from_carmen_string(const char*line);
137 
139 int ld_read_all(FILE*file, LDP **array, int*num);
140 
142 int ld_read_some_scans(FILE*file, LDP **array, int*num, int interval);
143 
145 void ld_write_as_carmen(LDP ld, FILE * stream);
146 
148 void ld_write_format(LDP ld, FILE*stream, const char * out_format);
149 
150 
151 void possible_interval(
152  const double *p_i_w, LDP laser_sens,
153  double max_angular_correction_deg, double max_linear_correction, int*from, int*to, int*start_cell);
154 
155 
156 #include "laser_data_inline.h"
157 
158 #endif
159 
ld_write_format
void ld_write_format(LDP ld, FILE *stream, const char *out_format)
Definition: laser_data_carmen.c:213
laser_data::readings_sigma
double *restrict readings_sigma
Definition: laser_data.h:32
ld_read_smart_string
LDP ld_read_smart_string(const char *)
Definition: laser_data_load.c:173
laser_data::alpha
double *restrict alpha
Definition: laser_data.h:28
p
struct @0 p
ld_compute_cartesian
void ld_compute_cartesian(LDP)
Definition: laser_data.c:118
ld_simple_clustering
void ld_simple_clustering(LDP ld, double threshold)
Definition: clustering.c:11
laser_data::theta
double *restrict theta
Definition: laser_data.h:21
ld_read_all
int ld_read_all(FILE *file, LDP **array, int *num)
Definition: laser_data_load.c:79
laser_data::up_bigger
int *restrict up_bigger
Definition: laser_data.h:55
correspondence::valid
int valid
Definition: laser_data.h:63
laser_data::true_alpha
double *restrict true_alpha
Definition: laser_data.h:34
laser_data::cov_alpha
double *restrict cov_alpha
Definition: laser_data.h:29
ld_read_next_laser_carmen
int ld_read_next_laser_carmen(FILE *, LDP *ld)
Definition: laser_data_carmen.c:170
laser_data::readings
double *restrict readings
Definition: laser_data.h:24
laser_data::odometry
double odometry[3]
Definition: laser_data.h:39
ld_valid_fields
int ld_valid_fields(LDP)
Definition: laser_data.c:179
laser_data::alpha_valid
int *restrict alpha_valid
Definition: laser_data.h:30
laser_data::hostname
char hostname[32]
Definition: laser_data.h:51
laser_data::nrays
int nrays
Definition: laser_data.h:17
correspondence::j1
int j1
Definition: laser_data.h:65
laser_data::cluster
int *restrict cluster
Definition: laser_data.h:26
point2d
Definition: laser_data.h:11
laser_data_inline.h
restrict
#define restrict
Definition: restrict.h:17
ld_from_carmen_string
LDP ld_from_carmen_string(const char *line)
Definition: laser_data_carmen.c:52
laser_data::points_w
point2d *restrict points_w
Definition: laser_data.h:47
laser_data::down_smaller
int *restrict *restrict *restrict *restrict down_smaller
Definition: laser_data.h:58
laser_data::corr
struct correspondence *restrict corr
Definition: laser_data.h:36
correspondence::j2
int j2
Definition: laser_data.h:67
laser_data::up_smaller
int *restrict *restrict up_smaller
Definition: laser_data.h:56
possible_interval
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)
Definition: math_utils.c:10
ld_corr_hash
unsigned int ld_corr_hash(LDP)
Definition: laser_data.c:267
point2d::rho
double rho
Definition: laser_data.h:13
ld_alloc_new
LDP ld_alloc_new(int nrays)
Definition: laser_data.c:12
laser_data::estimate
double estimate[3]
Definition: laser_data.h:40
ld_compute_orientation
void ld_compute_orientation(LDP ld, int size_neighbourhood, double sigma)
Definition: orientation.c:14
correspondence::corr_pp
@ corr_pp
Definition: laser_data.h:69
restrict.h
laser_data::down_bigger
int *restrict *restrict *restrict down_bigger
Definition: laser_data.h:57
correspondence::dist2_j1
double dist2_j1
Definition: laser_data.h:71
laser_data::tv
struct timeval tv
Definition: laser_data.h:50
ld_dealloc
void ld_dealloc(LDP)
correspondence::corr_pl
@ corr_pl
Definition: laser_data.h:69
ld_read_some_scans
int ld_read_some_scans(FILE *file, LDP **array, int *num, int interval)
Definition: laser_data_load.c:71
interval
double interval
Definition: ld_resample.c:12
ld_compute_world_coords
void ld_compute_world_coords(LDP, const double *pose)
Definition: laser_data.c:133
ld_free
void ld_free(LDP)
Definition: laser_data.c:87
laser_data::points
point2d *restrict points
Definition: laser_data.h:44
ld_num_valid_correspondences
int ld_num_valid_correspondences(LDP)
Definition: laser_data.c:168
correspondence
Definition: laser_data.h:61
laser_data
Definition: laser_data.h:16
ld_create_jump_tables
void ld_create_jump_tables(LDP)
laser_data::max_theta
double max_theta
Definition: laser_data.h:19
ld_read_smart
LDP ld_read_smart(FILE *)
Definition: laser_data_load.c:130
ld_alloc
void ld_alloc(LDP, int nrays)
Definition: laser_data.c:34
laser_data::true_pose
double true_pose[3]
Definition: laser_data.h:38
LDP
struct laser_data * LDP
Definition: laser_data.h:74
ld_write_as_carmen
void ld_write_as_carmen(LDP ld, FILE *stream)
Definition: laser_data_carmen.c:193
laser_data::valid
int *restrict valid
Definition: laser_data.h:23
laser_data::min_theta
double min_theta
Definition: laser_data.h:18
correspondence::type
enum correspondence::@5 type


csm
Author(s): Andrea Censi
autogenerated on Wed Aug 17 2022 02:50:33