* mc_pos_control: ignore a NaN/inf position setpoint
This is a hotfix that prevents the position controller from trying to
do velocity control with a position setpoint that isn't valid in the
first place.
This is only a workaround, ideally the controls later should not scale
down throttle to the minimum just because the position setpoint is far
away if they still have valid setpoint in z.
* mc_pos_control: use PX4_ISFINITE and not isfinite
because we need a workaround for the broken auto takeoff logic which can start the vehicle with a loiter setpoint
in this case the very first moment is still a jump but then it gets taken over by the fix gradient ramp
this can basically be reverted after the auto takeoff logic is fixed
currently when the vehicle is landed again (not after bootup) the core position controller does not run anymore
therefore the velocity limit ramp in some cases did not get reset correctly
speed limiting in auto takeoff mode only needs to be limited when the user did not take over
adresses:
there were setpoint twitches at the beginning and end of my smooth takeoff routine
it was to slow and not configurable
it was only available for automatic takeoff
auto takeoff was pretty chaotic and bypassed the velocity controller until some magic condition
the goal of this approach is to make the behaviour and smoothness more predictable and reuse the exact same logic for manual takeoff
because there is no sense to have different angle scalings into different directions
it would lead to unintuitive piloting experience
acceleration is directly coupled to the tilt angle regardless of possible assymetric multicopter vehicles
This patch ramps up the throttle to hover throttle instead of a fixed value and limits the vertical takeoff speed to the value set in the parameter. This should ensure smoother, slower takeoffs, in particular in autonomous flight modes.
* mc_pos_control: use just float for vel and cruise in xy
* mc_pos_control: stick map saturate magnitude to 1
* mc_pos_control: take minimum cruising speed for auto
* mc_pos_control: cruise speed triplet higher than from mc_pos_control
mc_pos_control: fix if for cruise in auto
* mc_pos_control: use PX4_ISFINITE criteria