intermediate push

This commit is contained in:
Marvin Harms
2022-08-08 18:10:20 +02:00
parent 33e7ec3882
commit a2262d7ec4
4 changed files with 15 additions and 7 deletions
@@ -872,6 +872,9 @@ FixedwingPositionINDIControl::Run()
_soaring_controller_wind.wind_estimate_filtered[0] = _wind_estimate(0);
_soaring_controller_wind.wind_estimate_filtered[1] = _wind_estimate(1);
_soaring_controller_wind.wind_estimate_filtered[2] = _wind_estimate(2);
_soaring_controller_wind.position[0] = _pos(0);
_soaring_controller_wind.position[1] = _pos(1);
_soaring_controller_wind.position[2] = _pos(2);
_soaring_controller_wind_pub.publish(_soaring_controller_wind);
@@ -53,7 +53,6 @@ FixedwingShearEstimator::FixedwingShearEstimator() :
// limit to 10 Hz
_soaring_controller_wind_sub.set_interval_ms(100.f);
/* fetch initial parameter values */
parameters_update();
}
@@ -101,6 +100,11 @@ FixedwingShearEstimator::init()
// init reset counter
_reset_counter = 0;
//
_X_prior_horizontal(4) = 110.f;
_X_posterior_horizontal(4) = 110.f;
return true;
}
int
@@ -154,7 +158,7 @@ void
FixedwingShearEstimator::perform_prior_update()
{
// get time since last run
float dt = (hrt_absolute_time() - _last_run)/1000000.f;
float dt = (hrt_absolute_time() - _last_run)/1000000;
_last_run = hrt_absolute_time();
// perform prior update assuming trivial dynamics of the wind field (mean field stays the same)
@@ -203,7 +207,7 @@ FixedwingShearEstimator::perform_posterior_update(float height, Vector3f wind)
_K_horizontal = tmp1_horizontal*inv_horizontal;
}
else{
PX4_ERR("singular horizontal matrix, resetting filter");
PX4_WARN("singular horizontal matrix, resetting filter");
error = true;
}
@@ -222,7 +226,7 @@ FixedwingShearEstimator::perform_posterior_update(float height, Vector3f wind)
_K_vertical = tmp1_vertical*inv_vertical;
}
else{
PX4_ERR("singular vertical matrix, resetting filter");
PX4_WARN("singular vertical matrix, resetting filter");
error = true;
}
@@ -22,7 +22,7 @@
* @increment 0.000001
* @group FW DYN SOAR Control
*/
PARAM_DEFINE_FLOAT(DS_SIGMA_Q_V, 0.0001f);
PARAM_DEFINE_FLOAT(DS_SIGMA_Q_V, 0.001f);
/**
* Standard deviation of vertical shear position
@@ -36,7 +36,7 @@ PARAM_DEFINE_FLOAT(DS_SIGMA_Q_V, 0.0001f);
* @increment 0.000001
* @group FW DYN SOAR Control
*/
PARAM_DEFINE_FLOAT(DS_SIGMA_Q_H, 0.001f);
PARAM_DEFINE_FLOAT(DS_SIGMA_Q_H, 0.01f);
/**
* Standard deviation of velicity state in shear model
@@ -50,7 +50,7 @@ PARAM_DEFINE_FLOAT(DS_SIGMA_Q_H, 0.001f);
* @increment 0.000001
* @group FW DYN SOAR Control
*/
PARAM_DEFINE_FLOAT(DS_SIGMA_Q_A, 0.00003f);
PARAM_DEFINE_FLOAT(DS_SIGMA_Q_A, 0.0003f);
/**
* Standard deviation of velicity measurement (wind)
+1
View File
@@ -125,6 +125,7 @@ void LoggedTopics::add_default_topics()
add_topic("soaring_controller_position", 10);
add_topic("soaring_controller_position_setpoint", 10);
add_topic("soaring_controller_wind", 50);
add_topic("soaring_estimator_shear", 50);
add_topic("debug_value", 50);
// multi topics