aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNosDE <marco@wtns.de>2015-04-11 16:05:23 +0200
committerNosDE <marco@wtns.de>2015-04-11 16:05:23 +0200
commitcefb88bd393df99b47fddcb079dbe6a30aab3b51 (patch)
tree3fe4677baabb8ed230b33292ed7198c9266ff6c2
parent0dedd52ef9d05b68e6ae206d0617aa1f128088b6 (diff)
downloadpx4-firmware-cefb88bd393df99b47fddcb079dbe6a30aab3b51.tar.gz
px4-firmware-cefb88bd393df99b47fddcb079dbe6a30aab3b51.tar.bz2
px4-firmware-cefb88bd393df99b47fddcb079dbe6a30aab3b51.zip
adjusted idle speed
-rw-r--r--src/modules/systemlib/mixer/mixer_multirotor.cpp2
-rw-r--r--src/modules/uavcan/actuators/esc.cpp5
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));