create temperature_compensation module

- this is a new module for temperature compensation that consolidates the functionality previously handled in the sensors module (calculating runtime thermal corrections) and the events module (online thermal calibration)
 - by collecting this functionality into a single module we can optionally disable it on systems where it's not used and save some flash (if disabled at build time) or memory (disabled at run time)
This commit is contained in:
Daniel Agar
2020-01-20 21:42:42 -05:00
committed by GitHub
parent dedb4e8267
commit dc05ceaad2
87 changed files with 978 additions and 739 deletions
+27 -2
View File
@@ -5,12 +5,37 @@
# NOTE: Script variables are declared/initialized/unset in the rcS script. # NOTE: Script variables are declared/initialized/unset in the rcS script.
# #
set TEMP_CALIB_ARGS "" set TEMP_COMP_START ""
if param compare TC_A_ENABLE 1
then
set TEMP_COMP_START "true"
fi
if param compare TC_B_ENABLE 1
then
set TEMP_COMP_START "true"
fi
if param compare TC_G_ENABLE 1
then
set TEMP_COMP_START "true"
fi
if [ "x$TEMP_COMP_START" != "x" ]
then
temperature_compensation start
fi
unset TEMP_COMP_START
# #
# Determine if a thermal calibration should be started. # Determine if a thermal calibration should be started.
# #
set TEMP_CALIB_ARGS ""
if param compare SYS_CAL_ACCEL 1 if param compare SYS_CAL_ACCEL 1
then then
set TEMP_CALIB_ARGS "${TEMP_CALIB_ARGS} -a" set TEMP_CALIB_ARGS "${TEMP_CALIB_ARGS} -a"
@@ -34,7 +59,7 @@ fi
# #
if [ "x$TEMP_CALIB_ARGS" != "x" ] if [ "x$TEMP_CALIB_ARGS" != "x" ]
then then
send_event temperature_calibration ${TEMP_CALIB_ARGS} temperature_compensation calibrate ${TEMP_CALIB_ARGS}
fi fi
unset TEMP_CALIB_ARGS unset TEMP_CALIB_ARGS
+1
View File
@@ -59,6 +59,7 @@ px4_add_board(
rc_update rc_update
rover_pos_control rover_pos_control
sensors sensors
temperature_compensation
sih sih
#simulator #simulator
vmount vmount
+1
View File
@@ -76,6 +76,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -83,6 +83,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
#sih #sih
temperature_compensation
simulator simulator
vmount vmount
vtol_att_control vtol_att_control
+1
View File
@@ -68,6 +68,7 @@ px4_add_board(
rc_update rc_update
rover_pos_control rover_pos_control
sensors sensors
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -68,6 +68,7 @@ px4_add_board(
rc_update rc_update
rover_pos_control rover_pos_control
sensors sensors
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -76,6 +76,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -76,6 +76,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -53,6 +53,7 @@ px4_add_board(
sensors sensors
sih sih
#simulator #simulator
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -32,6 +32,7 @@ px4_add_board(
navigator navigator
rc_update rc_update
sensors sensors
#temperature_compensation
SYSTEMCMDS SYSTEMCMDS
bl_update bl_update
config config
+1
View File
@@ -55,6 +55,7 @@ px4_add_board(
sensors sensors
sih sih
#simulator #simulator
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -81,6 +81,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
@@ -82,6 +82,7 @@ px4_add_board(
#rover_pos_control #rover_pos_control
sensors sensors
#sih #sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -46,6 +46,7 @@ px4_add_board(
navigator navigator
rc_update rc_update
sensors sensors
#temperature_compensation
SYSTEMCMDS SYSTEMCMDS
bl_update bl_update
config config
+1
View File
@@ -56,6 +56,7 @@ px4_add_board(
#rover_pos_control #rover_pos_control
sensors sensors
#sih #sih
#temperature_compensation
vmount vmount
#vtol_att_control #vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -56,6 +56,7 @@ px4_add_board(
#rover_pos_control #rover_pos_control
sensors sensors
#sih #sih
#temperature_compensation
vmount vmount
#vtol_att_control #vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -74,6 +74,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -80,6 +80,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -78,6 +78,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -64,6 +64,7 @@ px4_add_board(
#rover_pos_control #rover_pos_control
sensors sensors
#sih #sih
#temperature_compensation
#vmount #vmount
#vtol_att_control #vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -87,6 +87,7 @@ px4_add_board(
#rover_pos_control #rover_pos_control
sensors sensors
#sih #sih
#temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -56,6 +56,7 @@ px4_add_board(
navigator navigator
rc_update rc_update
sensors sensors
temperature_compensation
vmount vmount
SYSTEMCMDS SYSTEMCMDS
#bl_update #bl_update
+1
View File
@@ -81,6 +81,7 @@ px4_add_board(
battery_status battery_status
rc_update rc_update
sensors sensors
temperature_compensation
vmount vmount
#vtol_att_control #vtol_att_control
#airspeed_selector #airspeed_selector
+2
View File
@@ -54,6 +54,8 @@ px4_add_board(
navigator navigator
rc_update rc_update
sensors sensors
sih
#temperature_compensation
vmount vmount
SYSTEMCMDS SYSTEMCMDS
#bl_update #bl_update
+1
View File
@@ -50,6 +50,7 @@ px4_add_board(
battery_status battery_status
rc_update rc_update
sensors sensors
temperature_compensation
vmount vmount
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -86,6 +86,7 @@ px4_add_board(
#rover_pos_control #rover_pos_control
sensors sensors
#sih #sih
#temperature_compensation
#vmount #vmount
#vtol_att_control #vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -86,6 +86,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -86,6 +86,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -81,6 +81,7 @@ px4_add_board(
rc_update rc_update
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
airspeed_selector airspeed_selector
+1
View File
@@ -79,6 +79,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -77,6 +77,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -77,6 +77,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -81,6 +81,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -78,6 +78,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+11 -13
View File
@@ -10,13 +10,11 @@ px4_add_board(
IO px4_io-v2_default IO px4_io-v2_default
TESTING TESTING
UAVCAN_INTERFACES 2 UAVCAN_INTERFACES 2
SERIAL_PORTS SERIAL_PORTS
GPS1:/dev/ttyS0 GPS1:/dev/ttyS0
TEL1:/dev/ttyS1 TEL1:/dev/ttyS1
TEL2:/dev/ttyS2 TEL2:/dev/ttyS2
TEL4:/dev/ttyS3 TEL4:/dev/ttyS3
DRIVERS DRIVERS
adc adc
barometer # all available barometer drivers barometer # all available barometer drivers
@@ -25,14 +23,15 @@ px4_add_board(
camera_trigger camera_trigger
differential_pressure # all available differential pressure drivers differential_pressure # all available differential pressure drivers
distance_sensor # all available distance sensor drivers distance_sensor # all available distance sensor drivers
dshot
gps gps
#heater #heater
imu/adis16448
imu/adis16497
#imu # all available imu drivers #imu # all available imu drivers
imu/adis16448
imu/adis16477
imu/adis16497
imu/bmi055 imu/bmi055
imu/mpu6000 imu/mpu6000
imu/mpu9250
irlock irlock
lights/blinkm lights/blinkm
lights/rgbled lights/rgbled
@@ -41,6 +40,7 @@ px4_add_board(
magnetometer # all available magnetometer drivers magnetometer # all available magnetometer drivers
mkblctrl mkblctrl
optical_flow # all available optical flow drivers optical_flow # all available optical flow drivers
#osd
pca9685 pca9685
power_monitor/ina226 power_monitor/ina226
#protocol_splitter #protocol_splitter
@@ -56,9 +56,10 @@ px4_add_board(
test_ppm test_ppm
tone_alarm tone_alarm
uavcan uavcan
MODULES MODULES
airspeed_selector
attitude_estimator_q attitude_estimator_q
battery_status
camera_feedback camera_feedback
commander commander
dataman dataman
@@ -66,7 +67,6 @@ px4_add_board(
events events
fw_att_control fw_att_control
fw_pos_control_l1 fw_pos_control_l1
rover_pos_control
land_detector land_detector
landing_target_estimator landing_target_estimator
load_mon load_mon
@@ -74,17 +74,17 @@ px4_add_board(
logger logger
mavlink mavlink
mc_att_control mc_att_control
mc_rate_control
mc_pos_control mc_pos_control
mc_rate_control
#micrortps_bridge
navigator navigator
battery_status
rc_update rc_update
rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
airspeed_selector
SYSTEMCMDS SYSTEMCMDS
bl_update bl_update
config config
@@ -113,7 +113,6 @@ px4_add_board(
usb_connected usb_connected
ver ver
work_queue work_queue
EXAMPLES EXAMPLES
bottle_drop # OBC challenge bottle_drop # OBC challenge
fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
@@ -124,5 +123,4 @@ px4_add_board(
px4_simple_app # Tutorial code from http://dev.px4.io/en/apps/hello_sky.html px4_simple_app # Tutorial code from http://dev.px4.io/en/apps/hello_sky.html
rover_steering_control # Rover example app rover_steering_control # Rover example app
uuv_example_app uuv_example_app
) )
+1
View File
@@ -82,6 +82,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -59,6 +59,7 @@ px4_add_board(
navigator navigator
rc_update rc_update
sensors sensors
temperature_compensation
vmount vmount
SYSTEMCMDS SYSTEMCMDS
bl_update bl_update
+11 -13
View File
@@ -10,13 +10,11 @@ px4_add_board(
IO px4_io-v2_default IO px4_io-v2_default
TESTING TESTING
UAVCAN_INTERFACES 2 UAVCAN_INTERFACES 2
SERIAL_PORTS SERIAL_PORTS
GPS1:/dev/ttyS0 GPS1:/dev/ttyS0
TEL1:/dev/ttyS1 TEL1:/dev/ttyS1
TEL2:/dev/ttyS2 TEL2:/dev/ttyS2
TEL4:/dev/ttyS3 TEL4:/dev/ttyS3
DRIVERS DRIVERS
adc adc
barometer # all available barometer drivers barometer # all available barometer drivers
@@ -25,14 +23,15 @@ px4_add_board(
camera_trigger camera_trigger
differential_pressure # all available differential pressure drivers differential_pressure # all available differential pressure drivers
distance_sensor # all available distance sensor drivers distance_sensor # all available distance sensor drivers
dshot
gps gps
#heater #heater
imu/adis16448
imu/adis16497
#imu # all available imu drivers #imu # all available imu drivers
imu/adis16448
imu/adis16477
imu/adis16497
imu/bmi055 imu/bmi055
imu/mpu6000 imu/mpu6000
imu/mpu9250
irlock irlock
lights/blinkm lights/blinkm
lights/rgbled lights/rgbled
@@ -41,6 +40,7 @@ px4_add_board(
magnetometer # all available magnetometer drivers magnetometer # all available magnetometer drivers
mkblctrl mkblctrl
optical_flow # all available optical flow drivers optical_flow # all available optical flow drivers
#osd
pca9685 pca9685
power_monitor/ina226 power_monitor/ina226
#protocol_splitter #protocol_splitter
@@ -56,9 +56,10 @@ px4_add_board(
test_ppm test_ppm
tone_alarm tone_alarm
uavcan uavcan
MODULES MODULES
airspeed_selector
attitude_estimator_q attitude_estimator_q
battery_status
camera_feedback camera_feedback
commander commander
dataman dataman
@@ -66,7 +67,6 @@ px4_add_board(
events events
fw_att_control fw_att_control
fw_pos_control_l1 fw_pos_control_l1
rover_pos_control
land_detector land_detector
landing_target_estimator landing_target_estimator
load_mon load_mon
@@ -74,17 +74,17 @@ px4_add_board(
logger logger
mavlink mavlink
mc_att_control mc_att_control
mc_rate_control
mc_pos_control mc_pos_control
mc_rate_control
#micrortps_bridge
navigator navigator
battery_status
rc_update rc_update
rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
airspeed_selector
SYSTEMCMDS SYSTEMCMDS
bl_update bl_update
config config
@@ -113,7 +113,6 @@ px4_add_board(
usb_connected usb_connected
ver ver
work_queue work_queue
EXAMPLES EXAMPLES
bottle_drop # OBC challenge bottle_drop # OBC challenge
fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
@@ -124,5 +123,4 @@ px4_add_board(
px4_simple_app # Tutorial code from http://dev.px4.io/en/apps/hello_sky.html px4_simple_app # Tutorial code from http://dev.px4.io/en/apps/hello_sky.html
rover_steering_control # Rover example app rover_steering_control # Rover example app
uuv_example_app uuv_example_app
) )
+1
View File
@@ -69,6 +69,7 @@ px4_add_board(
rc_update rc_update
sensors sensors
sih sih
temperature_compensation
vmount vmount
SYSTEMCMDS SYSTEMCMDS
bl_update bl_update
+1
View File
@@ -59,6 +59,7 @@ px4_add_board(
rc_update rc_update
rover_pos_control rover_pos_control
sensors sensors
temperature_compensation
vmount vmount
SYSTEMCMDS SYSTEMCMDS
bl_update bl_update
+1
View File
@@ -82,6 +82,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -83,6 +83,7 @@ px4_add_board(
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+2
View File
@@ -76,11 +76,13 @@ px4_add_board(
mc_att_control mc_att_control
mc_pos_control mc_pos_control
mc_rate_control mc_rate_control
#micrortps_bridge
navigator navigator
rc_update rc_update
rover_pos_control rover_pos_control
sensors sensors
sih sih
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -51,6 +51,7 @@ px4_add_board(
rc_update rc_update
rover_pos_control rover_pos_control
sensors sensors
temperature_compensation
sih sih
#simulator #simulator
vmount vmount
+1
View File
@@ -45,6 +45,7 @@ px4_add_board(
sensors sensors
#sih #sih
simulator simulator
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -47,6 +47,7 @@ px4_add_board(
sensors sensors
#sih #sih
simulator simulator
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -45,6 +45,7 @@ px4_add_board(
sensors sensors
#sih #sih
simulator simulator
temperature_compensation
vmount vmount
vtol_att_control vtol_att_control
SYSTEMCMDS SYSTEMCMDS
+1
View File
@@ -57,6 +57,7 @@ px4_add_board(
rc_update rc_update
sensors sensors
sih sih
temperature_compensation
vmount vmount
SYSTEMCMDS SYSTEMCMDS
bl_update bl_update
-2
View File
@@ -3,8 +3,6 @@ uint64 timestamp_sample
uint32 device_id # unique device ID for the sensor that does not change between power cycles uint32 device_id # unique device ID for the sensor that does not change between power cycles
float32 temperature # temperature in degrees celsius
uint64 error_count uint64 error_count
float32[3] delta_velocity # delta velocity in the NED board axis in m/s over the integration time frame (dt) float32[3] delta_velocity # delta velocity in the NED board axis in m/s over the integration time frame (dt)
-4
View File
@@ -46,10 +46,6 @@ float32 baro_scale_1 # barometric pressure scale factors in the sensor frame
float32 baro_offset_2 # barometric pressure offsets in the sensor frame in m/s/s float32 baro_offset_2 # barometric pressure offsets in the sensor frame in m/s/s
float32 baro_scale_2 # barometric pressure scale factors in the sensor frame float32 baro_scale_2 # barometric pressure scale factors in the sensor frame
uint8 selected_gyro_instance # gyro uORB topic instance for the voted sensor
uint8 selected_accel_instance # accelerometer uORB topic instance for the voted sensor
uint8 selected_baro_instance # barometric pressure uORB topic instance for the voted sensor
# Mapping from uORB index to parameter index for each sensor type. For example accel_mapping[1] contains the # Mapping from uORB index to parameter index for each sensor type. For example accel_mapping[1] contains the
# compensation parameter system index for the sensor_accel uORB index 1 data. # compensation parameter system index for the sensor_accel uORB index 1 data.
uint8[3] gyro_mapping uint8[3] gyro_mapping

Some files were not shown because too many files have changed in this diff Show More