Skip to content

Commit 9a1ca00

Browse files
committed
fw_pos_control_l1: replace sensor_baro with vehicle_air_data
- controllers shouldn't be accessing raw sensor data directly
1 parent 1394b5d commit 9a1ca00

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

src/modules/fw_pos_control_l1/FixedwingPositionControl.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -1754,13 +1754,13 @@ FixedwingPositionControl::tecs_update_pitch_throttle(float alt_sp, float airspee
17541754

17551755
/* scale throttle cruise by baro pressure */
17561756
if (_param_fw_thr_alt_scl.get() > FLT_EPSILON) {
1757-
sensor_baro_s baro{};
1757+
vehicle_air_data_s air_data;
17581758

1759-
if (_sensor_baro_sub.update(&baro)) {
1760-
if (PX4_ISFINITE(baro.pressure) && PX4_ISFINITE(_param_fw_thr_alt_scl.get())) {
1759+
if (_vehicle_air_data_sub.update(&air_data)) {
1760+
if (PX4_ISFINITE(air_data.baro_pressure_pa) && PX4_ISFINITE(_param_fw_thr_alt_scl.get())) {
17611761
// scale throttle as a function of sqrt(p0/p) (~ EAS -> TAS at low speeds and altitudes ignoring temperature)
1762-
const float eas2tas = sqrtf(CONSTANTS_STD_PRESSURE_MBAR / baro.pressure);
1763-
const float scale = constrain((eas2tas - 1.0f) * _param_fw_thr_alt_scl.get() + 1.0f, 1.0f, 2.0f);
1762+
const float eas2tas = sqrtf(CONSTANTS_STD_PRESSURE_PA / air_data.baro_pressure_pa);
1763+
const float scale = constrain((eas2tas - 1.0f) * _param_fw_thr_alt_scl.get() + 1.f, 1.f, 2.f);
17641764

17651765
throttle_max = constrain(throttle_max * scale, throttle_min, 1.0f);
17661766
throttle_cruise = constrain(throttle_cruise * scale, throttle_min + 0.01f, throttle_max - 0.01f);

src/modules/fw_pos_control_l1/FixedwingPositionControl.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,9 @@
7575
#include <uORB/topics/position_controller_landing_status.h>
7676
#include <uORB/topics/position_controller_status.h>
7777
#include <uORB/topics/position_setpoint_triplet.h>
78-
#include <uORB/topics/sensor_baro.h>
7978
#include <uORB/topics/tecs_status.h>
8079
#include <uORB/topics/vehicle_acceleration.h>
80+
#include <uORB/topics/vehicle_air_data.h>
8181
#include <uORB/topics/vehicle_angular_velocity.h>
8282
#include <uORB/topics/vehicle_attitude.h>
8383
#include <uORB/topics/vehicle_attitude_setpoint.h>
@@ -155,7 +155,7 @@ class FixedwingPositionControl final : public ModuleBase<FixedwingPositionContro
155155
uORB::Subscription _manual_control_setpoint_sub{ORB_ID(manual_control_setpoint)}; ///< notification of manual control updates
156156
uORB::Subscription _parameter_update_sub{ORB_ID(parameter_update)}; ///< notification of parameter updates
157157
uORB::Subscription _pos_sp_triplet_sub{ORB_ID(position_setpoint_triplet)};
158-
uORB::Subscription _sensor_baro_sub{ORB_ID(sensor_baro)};
158+
uORB::Subscription _vehicle_air_data_sub{ORB_ID(vehicle_air_data)};
159159
uORB::Subscription _vehicle_attitude_sub{ORB_ID(vehicle_attitude)}; ///< vehicle attitude subscription
160160
uORB::Subscription _vehicle_command_sub{ORB_ID(vehicle_command)}; ///< vehicle command subscription
161161
uORB::Subscription _vehicle_land_detected_sub{ORB_ID(vehicle_land_detected)}; ///< vehicle land detected subscription

0 commit comments

Comments
 (0)