- main motors are the ones which are meant to be used as propulsion in fw mode
- alternate motors are the ones usually meant to be switched off in fw mode
Signed-off-by: RomanBapst <bapstroman@gmail.com>
Do not use LOITER_TO_ALT for rotary wing mode as it would then always climb to
at least MIS_LTRMIN_ALT, even if current clib altitude is below
(e.g. RTL immediately after take off)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
- especially when there are strong winds it's better to just go straight
to the landing point instead of trying to follow the planned path
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- if vtol and in rotary wing mode then don't execute the mission landing
because it's designed to be flow as a fixed wing
- if vtol and in rotary wing mode and mission land is available then fly directly
to landing point and don't go home!
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- this fixes a race condition which happens when an RTL is triggered
during the final approach of a mission landing. In that case the mission inactive
method is never called.
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- previously the decision of being on a landing pattern was taken by just
looking at the current mission index. However, even if the current mission
index indicates a landing pattern the vehicle could be at an arbitrary location, far
from being established on the pattern.
Signed-off-by: RomanBapst <bapstroman@gmail.com>
NAV_CMD_LOITER_TO_ALT
- this allows vtol to track the loiter circle during the transition instead
of trying to fly to the landing position
Signed-off-by: RomanBapst <bapstroman@gmail.com>
This adds the option to limit the rate of change (slew rate) of an output that's mixed by a simple mixer.
To enable it, a positive number has to be added at the end (6th number) of the output scaler line of the mixer,
specifying the min rise time of this output.
E.g. O: 10000 10000 0 -10000 10000 20000 for a rise time of 2s, resp. a max slew rate of 0.5s^-1.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
- the purpose is to ensure that every WorkItem (and WorkItems scheduled
by WorkItems) is allowed to run to completion every step
- per workqueue register a lockstep component whenever a work item is
added (if not already registered)
- once the work queue is empty unregister component
- this caused the navigator to use the next waypoint (after the vtol takeoff item)
to be used as target during the transition. If the altitude of that waypoint
was much higher than the takeoff altitude then there were FOH effects
after the transition which caused the vehicle to first descend before
climbing again.
Signed-off-by: RomanBapst <bapstroman@gmail.com>
The windowed mode has been added for Windows targets originally. It gets very often incorrectly detected and slows down flashing considerably. This even applies to serial links. We are disabling it now in most circumstances.
- unfortunately we can't depend on the system field due to potential
external binding and non-genuine Spektrum equipment
- reject any DSM frame with duplicate channels
- add 16 channel mask
- tighten valid PWM range 990-2010us (±100% travel is 1102-1898µs)
- update RCTest rejected frame count
This ensures that FMU-side power controls are not interfering with IO-side power controls of DSM receivers if they happen to be OR-ed in the schematics
DSM binding was disabled before if safety was off, which on a lot of multicopters is today the default. The logic is now checking instead for wether the system is armed.
This commit increases the send thread stack size and changes the thread affinity of the lockstep clocking topic. It also improves verbosity in case error states occur.
Depending on loop iterations for timeouts is not accurate, as usleep behavior depends on the system load and asking for a 0 ms sleep can potentially return immediately.