PX4 Firmware
PX4 Autopilot Software http://px4.io
temp_comp_params_gyro.c
Go to the documentation of this file.
1 /****************************************************************************
2  *
3  * Copyright (c) 2017 PX4 Development Team. All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * 1. Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in
13  * the documentation and/or other materials provided with the
14  * distribution.
15  * 3. Neither the name PX4 nor the names of its contributors may be
16  * used to endorse or promote products derived from this software
17  * without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
25  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
26  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30  * POSSIBILITY OF SUCH DAMAGE.
31  *
32  ****************************************************************************/
33 
34 /**
35  * @file temp_comp_params_gyro.c
36  *
37  * Parameters required for temperature compensation of rate gyros.
38  *
39  * @author Paul Riseborough <gncsolns@gmail.com>
40  */
41 
42 /**
43  * Thermal compensation for rate gyro sensors.
44  *
45  * @group Thermal Compensation
46  * @min 0
47  * @max 1
48  * @boolean
49  */
50 PARAM_DEFINE_INT32(TC_G_ENABLE, 0);
51 
52 /* Gyro 0 */
53 
54 /**
55  * ID of Gyro that the calibration is for.
56  *
57  * @group Thermal Compensation
58  * @category system
59  */
60 PARAM_DEFINE_INT32(TC_G0_ID, 0);
61 
62 /**
63  * Gyro rate offset temperature ^3 polynomial coefficient - X axis.
64  *
65  * @group Thermal Compensation
66  * @category system
67  */
68 PARAM_DEFINE_FLOAT(TC_G0_X3_0, 0.0f);
69 
70 /**
71  * Gyro rate offset temperature ^3 polynomial coefficient - Y axis.
72  *
73  * @group Thermal Compensation
74  * @category system
75  */
76 PARAM_DEFINE_FLOAT(TC_G0_X3_1, 0.0f);
77 
78 /**
79  * Gyro rate offset temperature ^3 polynomial coefficient - Z axis.
80  *
81  * @group Thermal Compensation
82  * @category system
83  */
84 PARAM_DEFINE_FLOAT(TC_G0_X3_2, 0.0f);
85 
86 /**
87  * Gyro rate offset temperature ^2 polynomial coefficient - X axis.
88  *
89  * @group Thermal Compensation
90  * @category system
91  */
92 PARAM_DEFINE_FLOAT(TC_G0_X2_0, 0.0f);
93 
94 /**
95  * Gyro rate offset temperature ^2 polynomial coefficient - Y axis.
96  *
97  * @group Thermal Compensation
98  * @category system
99  */
100 PARAM_DEFINE_FLOAT(TC_G0_X2_1, 0.0f);
101 
102 /**
103  * Gyro rate offset temperature ^2 polynomial coefficient - Z axis.
104  *
105  * @group Thermal Compensation
106  * @category system
107  */
108 PARAM_DEFINE_FLOAT(TC_G0_X2_2, 0.0f);
109 
110 /**
111  * Gyro rate offset temperature ^1 polynomial coefficient - X axis.
112  *
113  * @group Thermal Compensation
114  * @category system
115  */
116 PARAM_DEFINE_FLOAT(TC_G0_X1_0, 0.0f);
117 
118 /**
119  * Gyro rate offset temperature ^1 polynomial coefficient - Y axis.
120  *
121  * @group Thermal Compensation
122  * @category system
123  */
124 PARAM_DEFINE_FLOAT(TC_G0_X1_1, 0.0f);
125 
126 /**
127  * Gyro rate offset temperature ^1 polynomial coefficient - Z axis.
128  *
129  * @group Thermal Compensation
130  * @category system
131  */
132 PARAM_DEFINE_FLOAT(TC_G0_X1_2, 0.0f);
133 
134 /**
135  * Gyro rate offset temperature ^0 polynomial coefficient - X axis.
136  *
137  * @group Thermal Compensation
138  * @category system
139  */
140 PARAM_DEFINE_FLOAT(TC_G0_X0_0, 0.0f);
141 
142 /**
143  * Gyro rate offset temperature ^0 polynomial coefficient - Y axis.
144  *
145  * @group Thermal Compensation
146  * @category system
147  */
148 PARAM_DEFINE_FLOAT(TC_G0_X0_1, 0.0f);
149 
150 /**
151  * Gyro rate offset temperature ^0 polynomial coefficient - Z axis.
152  *
153  * @group Thermal Compensation
154  * @category system
155  */
156 PARAM_DEFINE_FLOAT(TC_G0_X0_2, 0.0f);
157 
158 /**
159  * Gyro scale factor - X axis.
160  *
161  * @group Thermal Compensation
162  * @category system
163  */
164 PARAM_DEFINE_FLOAT(TC_G0_SCL_0, 1.0f);
165 
166 /**
167  * Gyro scale factor - Y axis.
168  *
169  * @group Thermal Compensation
170  * @category system
171  */
172 PARAM_DEFINE_FLOAT(TC_G0_SCL_1, 1.0f);
173 
174 /**
175  * Gyro scale factor - Z axis.
176  *
177  * @group Thermal Compensation
178  * @category system
179  */
180 PARAM_DEFINE_FLOAT(TC_G0_SCL_2, 1.0f);
181 
182 /**
183  * Gyro calibration reference temperature.
184  *
185  * @group Thermal Compensation
186  * @category system
187  */
188 PARAM_DEFINE_FLOAT(TC_G0_TREF, 25.0f);
189 
190 /**
191  * Gyro calibration minimum temperature.
192  *
193  * @group Thermal Compensation
194  * @category system
195  */
196 PARAM_DEFINE_FLOAT(TC_G0_TMIN, 0.0f);
197 
198 /**
199  * Gyro calibration maximum temperature.
200  *
201  * @group Thermal Compensation
202  * @category system
203  */
204 PARAM_DEFINE_FLOAT(TC_G0_TMAX, 100.0f);
205 
206 /* Gyro 1 */
207 
208 /**
209  * ID of Gyro that the calibration is for.
210  *
211  * @group Thermal Compensation
212  * @category system
213  */
214 PARAM_DEFINE_INT32(TC_G1_ID, 0);
215 
216 /**
217  * Gyro rate offset temperature ^3 polynomial coefficient - X axis.
218  *
219  * @group Thermal Compensation
220  * @category system
221  */
222 PARAM_DEFINE_FLOAT(TC_G1_X3_0, 0.0f);
223 
224 /**
225  * Gyro rate offset temperature ^3 polynomial coefficient - Y axis.
226  *
227  * @group Thermal Compensation
228  * @category system
229  */
230 PARAM_DEFINE_FLOAT(TC_G1_X3_1, 0.0f);
231 
232 /**
233  * Gyro rate offset temperature ^3 polynomial coefficient - Z axis.
234  *
235  * @group Thermal Compensation
236  * @category system
237  */
238 PARAM_DEFINE_FLOAT(TC_G1_X3_2, 0.0f);
239 
240 /**
241  * Gyro rate offset temperature ^2 polynomial coefficient - X axis.
242  *
243  * @group Thermal Compensation
244  * @category system
245  */
246 PARAM_DEFINE_FLOAT(TC_G1_X2_0, 0.0f);
247 
248 /**
249  * Gyro rate offset temperature ^2 polynomial coefficient - Y axis.
250  *
251  * @group Thermal Compensation
252  * @category system
253  */
254 PARAM_DEFINE_FLOAT(TC_G1_X2_1, 0.0f);
255 
256 /**
257  * Gyro rate offset temperature ^2 polynomial coefficient - Z axis.
258  *
259  * @group Thermal Compensation
260  * @category system
261  */
262 PARAM_DEFINE_FLOAT(TC_G1_X2_2, 0.0f);
263 
264 /**
265  * Gyro rate offset temperature ^1 polynomial coefficient - X axis.
266  *
267  * @group Thermal Compensation
268  * @category system
269  */
270 PARAM_DEFINE_FLOAT(TC_G1_X1_0, 0.0f);
271 
272 /**
273  * Gyro rate offset temperature ^1 polynomial coefficient - Y axis.
274  *
275  * @group Thermal Compensation
276  * @category system
277  */
278 PARAM_DEFINE_FLOAT(TC_G1_X1_1, 0.0f);
279 
280 /**
281  * Gyro rate offset temperature ^1 polynomial coefficient - Z axis.
282  *
283  * @group Thermal Compensation
284  * @category system
285  */
286 PARAM_DEFINE_FLOAT(TC_G1_X1_2, 0.0f);
287 
288 /**
289  * Gyro rate offset temperature ^0 polynomial coefficient - X axis.
290  *
291  * @group Thermal Compensation
292  * @category system
293  */
294 PARAM_DEFINE_FLOAT(TC_G1_X0_0, 0.0f);
295 
296 /**
297  * Gyro rate offset temperature ^0 polynomial coefficient - Y axis.
298  *
299  * @group Thermal Compensation
300  * @category system
301  */
302 PARAM_DEFINE_FLOAT(TC_G1_X0_1, 0.0f);
303 
304 /**
305  * Gyro rate offset temperature ^0 polynomial coefficient - Z axis.
306  *
307  * @group Thermal Compensation
308  * @category system
309  */
310 PARAM_DEFINE_FLOAT(TC_G1_X0_2, 0.0f);
311 
312 /**
313  * Gyro scale factor - X axis.
314  *
315  * @group Thermal Compensation
316  * @category system
317  */
318 PARAM_DEFINE_FLOAT(TC_G1_SCL_0, 1.0f);
319 
320 /**
321  * Gyro scale factor - Y axis.
322  *
323  * @group Thermal Compensation
324  * @category system
325  */
326 PARAM_DEFINE_FLOAT(TC_G1_SCL_1, 1.0f);
327 
328 /**
329  * Gyro scale factor - Z axis.
330  *
331  * @group Thermal Compensation
332  * @category system
333  */
334 PARAM_DEFINE_FLOAT(TC_G1_SCL_2, 1.0f);
335 
336 /**
337  * Gyro calibration reference temperature.
338  *
339  * @group Thermal Compensation
340  * @category system
341  */
342 PARAM_DEFINE_FLOAT(TC_G1_TREF, 25.0f);
343 
344 /**
345  * Gyro calibration minimum temperature.
346  *
347  * @group Thermal Compensation
348  * @category system
349  */
350 PARAM_DEFINE_FLOAT(TC_G1_TMIN, 0.0f);
351 
352 /**
353  * Gyro calibration maximum temperature.
354  *
355  * @group Thermal Compensation
356  * @category system
357  */
358 PARAM_DEFINE_FLOAT(TC_G1_TMAX, 100.0f);
359 
360 /* Gyro 2 */
361 
362 /**
363  * ID of Gyro that the calibration is for.
364  *
365  * @group Thermal Compensation
366  * @category system
367  */
368 PARAM_DEFINE_INT32(TC_G2_ID, 0);
369 
370 /**
371  * Gyro rate offset temperature ^3 polynomial coefficient - X axis.
372  *
373  * @group Thermal Compensation
374  * @category system
375  */
376 PARAM_DEFINE_FLOAT(TC_G2_X3_0, 0.0f);
377 
378 /**
379  * Gyro rate offset temperature ^3 polynomial coefficient - Y axis.
380  *
381  * @group Thermal Compensation
382  * @category system
383  */
384 PARAM_DEFINE_FLOAT(TC_G2_X3_1, 0.0f);
385 
386 /**
387  * Gyro rate offset temperature ^3 polynomial coefficient - Z axis.
388  *
389  * @group Thermal Compensation
390  * @category system
391  */
392 PARAM_DEFINE_FLOAT(TC_G2_X3_2, 0.0f);
393 
394 /**
395  * Gyro rate offset temperature ^2 polynomial coefficient - X axis.
396  *
397  * @group Thermal Compensation
398  * @category system
399  */
400 PARAM_DEFINE_FLOAT(TC_G2_X2_0, 0.0f);
401 
402 /**
403  * Gyro rate offset temperature ^2 polynomial coefficient - Y axis.
404  *
405  * @group Thermal Compensation
406  * @category system
407  */
408 PARAM_DEFINE_FLOAT(TC_G2_X2_1, 0.0f);
409 
410 /**
411  * Gyro rate offset temperature ^2 polynomial coefficient - Z axis.
412  *
413  * @group Thermal Compensation
414  * @category system
415  */
416 PARAM_DEFINE_FLOAT(TC_G2_X2_2, 0.0f);
417 
418 /**
419  * Gyro rate offset temperature ^1 polynomial coefficient - X axis.
420  *
421  * @group Thermal Compensation
422  * @category system
423  */
424 PARAM_DEFINE_FLOAT(TC_G2_X1_0, 0.0f);
425 
426 /**
427  * Gyro rate offset temperature ^1 polynomial coefficient - Y axis.
428  *
429  * @group Thermal Compensation
430  * @category system
431  */
432 PARAM_DEFINE_FLOAT(TC_G2_X1_1, 0.0f);
433 
434 /**
435  * Gyro rate offset temperature ^1 polynomial coefficient - Z axis.
436  *
437  * @group Thermal Compensation
438  * @category system
439  */
440 PARAM_DEFINE_FLOAT(TC_G2_X1_2, 0.0f);
441 
442 /**
443  * Gyro rate offset temperature ^0 polynomial coefficient - X axis.
444  *
445  * @group Thermal Compensation
446  * @category system
447  */
448 PARAM_DEFINE_FLOAT(TC_G2_X0_0, 0.0f);
449 
450 /**
451  * Gyro rate offset temperature ^0 polynomial coefficient - Y axis.
452  *
453  * @group Thermal Compensation
454  * @category system
455  */
456 PARAM_DEFINE_FLOAT(TC_G2_X0_1, 0.0f);
457 
458 /**
459  * Gyro rate offset temperature ^0 polynomial coefficient - Z axis.
460  *
461  * @group Thermal Compensation
462  * @category system
463  */
464 PARAM_DEFINE_FLOAT(TC_G2_X0_2, 0.0f);
465 
466 /**
467  * Gyro scale factor - X axis.
468  *
469  * @group Thermal Compensation
470  * @category system
471  */
472 PARAM_DEFINE_FLOAT(TC_G2_SCL_0, 1.0f);
473 
474 /**
475  * Gyro scale factor - Y axis.
476  *
477  * @group Thermal Compensation
478  * @category system
479  */
480 PARAM_DEFINE_FLOAT(TC_G2_SCL_1, 1.0f);
481 
482 /**
483  * Gyro scale factor - Z axis.
484  *
485  * @group Thermal Compensation
486  * @category system
487  */
488 PARAM_DEFINE_FLOAT(TC_G2_SCL_2, 1.0f);
489 
490 /**
491  * Gyro calibration reference temperature.
492  *
493  * @group Thermal Compensation
494  * @category system
495  */
496 PARAM_DEFINE_FLOAT(TC_G2_TREF, 25.0f);
497 
498 /**
499  * Gyro calibration minimum temperature.
500  *
501  * @group Thermal Compensation
502  * @category system
503  */
504 PARAM_DEFINE_FLOAT(TC_G2_TMIN, 0.0f);
505 
506 /**
507  * Gyro calibration maximum temperature.
508  *
509  * @group Thermal Compensation
510  * @category system
511  */
512 PARAM_DEFINE_FLOAT(TC_G2_TMAX, 100.0f);
PARAM_DEFINE_FLOAT(TC_G0_X3_0, 0.0f)
Vector< float, 6 > f(float t, const Matrix< float, 6, 1 > &, const Matrix< float, 3, 1 > &)
Definition: integration.cpp:8
PARAM_DEFINE_INT32(TC_G_ENABLE, 0)
Thermal compensation for rate gyro sensors.