publish default control limits once

Signed-off-by: RomanBapst <bapstroman@gmail.com>
This commit is contained in:
RomanBapst
2025-02-06 17:10:08 +03:00
parent 2d67e8cf81
commit 08e909ac72
2 changed files with 15 additions and 0 deletions
@@ -2183,6 +2183,19 @@ FixedwingPositionControl::Run()
/* only run controller if position changed */
if (!_control_limits_published_once) {
longitudinal_control_limits_s longitudinal_control_limits{.timestamp = hrt_absolute_time()};
setDefaultLongControlLimits(longitudinal_control_limits);
_longitudinal_ctrl_limits_pub.publish(longitudinal_control_limits);
lateral_control_limits_s lateral_limits{.timestamp = hrt_absolute_time()};
lateral_limits.lateral_accel_max = rollAngleToLateralAccel(radians(_param_fw_r_lim.get()));
_lateral_ctrl_limits_pub.publish(lateral_limits);
_control_limits_published_once = true;
}
if (_local_pos_sub.update(&_local_pos)) {
const float control_interval = math::constrain((_local_pos.timestamp - _last_time_position_control_called) * 1e-6f,
@@ -228,6 +228,8 @@ private:
vehicle_local_position_s _local_pos{};
vehicle_status_s _vehicle_status{};
bool _control_limits_published_once{false};
Vector2f _lpos_where_backtrans_started;
bool _position_setpoint_previous_valid{false};