diff options
author | NosDE <marco@wtns.de> | 2015-04-11 16:05:23 +0200 |
---|---|---|
committer | NosDE <marco@wtns.de> | 2015-04-11 16:05:23 +0200 |
commit | cefb88bd393df99b47fddcb079dbe6a30aab3b51 (patch) | |
tree | 3fe4677baabb8ed230b33292ed7198c9266ff6c2 /src/modules | |
parent | 0dedd52ef9d05b68e6ae206d0617aa1f128088b6 (diff) | |
download | px4-firmware-cefb88bd393df99b47fddcb079dbe6a30aab3b51.tar.gz px4-firmware-cefb88bd393df99b47fddcb079dbe6a30aab3b51.tar.bz2 px4-firmware-cefb88bd393df99b47fddcb079dbe6a30aab3b51.zip |
adjusted idle speed
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/systemlib/mixer/mixer_multirotor.cpp | 2 | ||||
-rw-r--r-- | src/modules/uavcan/actuators/esc.cpp | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/modules/systemlib/mixer/mixer_multirotor.cpp b/src/modules/systemlib/mixer/mixer_multirotor.cpp index b753da5ce..f188d8876 100644 --- a/src/modules/systemlib/mixer/mixer_multirotor.cpp +++ b/src/modules/systemlib/mixer/mixer_multirotor.cpp @@ -89,7 +89,7 @@ MultirotorMixer::MultirotorMixer(ControlCallback control_cb, _roll_scale(roll_scale), _pitch_scale(pitch_scale), _yaw_scale(yaw_scale), - _idle_speed(-1.0f + idle_speed * 2.0f), /* shift to output range here to avoid runtime calculation */ + _idle_speed(-1.0f + (idle_speed + 0.01F) * 2.0f), /* shift to output range here to avoid runtime calculation */ _limits_pub(), _rotor_count(_config_rotor_count[(MultirotorGeometryUnderlyingType)geometry]), _rotors(_config_index[(MultirotorGeometryUnderlyingType)geometry]) diff --git a/src/modules/uavcan/actuators/esc.cpp b/src/modules/uavcan/actuators/esc.cpp index 51589e43e..17250f541 100644 --- a/src/modules/uavcan/actuators/esc.cpp +++ b/src/modules/uavcan/actuators/esc.cpp @@ -108,6 +108,7 @@ void UavcanEscController::update_outputs(float *outputs, unsigned num_outputs) static const int cmd_max = uavcan::equipment::esc::RawCommand::FieldTypes::cmd::RawValueType::max(); for (unsigned i = 0; i < num_outputs; i++) { + if (_armed_mask & MOTOR_BIT(i)) { float scaled = (outputs[i] + 1.0F) * 0.5F * cmd_max; // trim negative values back to 0. Previously @@ -116,13 +117,15 @@ void UavcanEscController::update_outputs(float *outputs, unsigned num_outputs) // policy decision for a specific vehicle // type, as it is not appropriate for all // types of vehicles (eg. fixed wing). - if (scaled < 0.0F) { + if (scaled <= 0.0F) { scaled = 0.0F; } if (scaled > cmd_max) { scaled = cmd_max; perf_count(_perfcnt_scaling_error); } + + //fprintf(stderr, "[can] motor:%i\t\tval:%.8f\t\tscaled:%.8f\n", i, (double)outputs[i], (double)scaled); msg.cmd.push_back(static_cast<int>(scaled)); |