launchdetection: add minimal throttle, fix parameter update

This commit is contained in:
Thomas Gubler 2014-01-05 12:20:25 +01:00
parent 95c20ba9f9
commit d1e991f1f0
4 changed files with 17 additions and 7 deletions

View File

@ -43,7 +43,8 @@
#include <systemlib/err.h>
LaunchDetector::LaunchDetector() :
launchdetection_on(NULL, "LAUN_ALL_ON", false)
launchdetection_on(NULL, "LAUN_ALL_ON", false),
throttle_min(NULL, "LAUN_THR_MIN", false)
{
/* init all detectors */
launchMethods[0] = new CatapultLaunchMethod();
@ -83,10 +84,11 @@ bool LaunchDetector::getLaunchDetected()
void LaunchDetector::updateParams() {
warnx(" LaunchDetector::updateParams()");
//launchdetection_on.update();
launchdetection_on.update();
throttle_min.update();
for (uint8_t i = 0; i < sizeof(launchMethods)/sizeof(LaunchMethod); i++) {
//launchMethods[i]->updateParams();
launchMethods[i]->updateParams();
warnx("updating component %d", i);
}

View File

@ -59,11 +59,14 @@ public:
void updateParams();
bool launchDetectionEnabled() { return (bool)launchdetection_on.get(); };
float getMinThrottle() {return throttle_min.get(); }
// virtual bool getLaunchDetected();
protected:
private:
LaunchMethod* launchMethods[1];
control::BlockParamInt launchdetection_on;
control::BlockParamFloat throttle_min;
};

View File

@ -33,11 +33,11 @@
****************************************************************************/
/**
* @file fw_pos_control_l1_params.c
* @file launchdetection_params.c
*
* Parameters defined by the L1 position control task
* Parameters for launchdetection
*
* @author Lorenz Meier <lm@inf.ethz.ch>
* @author Thomas Gubler <thomasgubler@gmail.com>
*/
#include <nuttx/config.h>
@ -65,3 +65,8 @@ PARAM_DEFINE_FLOAT(LAUN_CAT_A, 30.0f);
// @Description LAUN_CAT_A * LAUN_CAT_T serves as threshold to trigger launch detection
// @Range > 0, in seconds
PARAM_DEFINE_FLOAT(LAUN_CAT_T, 0.05f);
// @DisplayName Throttle setting while detecting the launch
// @Description The throttle is set to this value while the system is waiting for the takeoff
// @Range 0 to 1
PARAM_DEFINE_FLOAT(LAUN_THR_MIN, 0.0f);

View File

@ -1028,7 +1028,7 @@ FixedwingPositionControl::control_position(const math::Vector2f &current_positio
}
} else {
throttle_max = 0.0f;
throttle_max = launchDetector.getMinThrottle();
}
}