- don't decay integrator during saturation but prevent it from being learned
into the direction which causes more actuator saturation
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- 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>
- 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 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 states can be initialised more accurately using an airspeed measurement
and the wind estimator uses the first measurement to initialise
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- this fixes the case where the navigator publishes a loiter waypoint or any
waypoint which is too close to the vehicle.
Signed-off-by: RomanBapst <bapstroman@gmail.com>
-decrease L1 period for tighter mission tracking in fw mode
- increase backtransition duration, we can now do this is we have active
deceleration control
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- make sure to kill all px4 instances and gazebo client when exiting
- add arguments to specify number of vehicles and vehicle model
- exit for now if vehicle model is not iris, since needs changes in
sitl_gazebo submodule
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- if a channel receives an ack for a command, do not immediately remove the
command item from the send queue but wait until the next ack timeout occurs.
This gives other mavlink channels time to try to put identical commands into
the send queue.
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- if we receive an ack for a command through a specific mavlink channel
then do not drop the corresponding command in the queue if this specific
mavlink channel did not issue the command. If we don't do this we can
end up in a situation where we associate an ack coming through a specific
mavlink channel to a command in the queue which was not requested by this mavlink channel.
Moreover, the actual command for which the ack was meant remains in the
queue and eventually triggers a timeout.
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- vehicle will fly less aggressive
- it does not make sense to set the lower acceleration limit to something
that exceeds gravity if most of the vehicles do not support reverse thrust
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- we have set the maximum yaw-rate MC_YAWRATE_MAX to 200 degrees and it
makes senses to leave a bit of margin between what the user can demand
and what the limits of the vehicle are
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- MPC_MANTHR_MIN is used as minimum throttle in attitude control mode when
the vehicle is in air. This is useful to retain some control around roll and
pitch axis if airmode is not enabled and the user demands zero throttle.
However, when the vehicle is landed there is not need to keep the throttle
at a higher value than zero.
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- user defines a cone half angle which defines the RTL altitude behavior
- if vehicle is outside the cone it will climb until it intersects the cone
and then return at this altitude.
- if vehicle is inside the cone or above the predefined return altitude (RTL_RETURN_ALT)
then it will return at the current altitude
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- airframes that are not well trimmed rely on the integrator to learn
the offset. This change can help improve altitude hold during transitions
Signed-off-by: RomanBapst <bapstroman@gmail.com>
- VT_MOT_COUNT assumed that motors were always the first outputs. This
does not have to be true always. VT_MOT_ID allows to specify precisely how
many motors we have for hovering and to which channel they are connected.
Signed-off-by: RomanBapst <bapstroman@gmail.com>
* VTOL trans: changed that now in transition for both MC and FW the corresponding (correct) attitude controller is running
* attitude setpoint for stabilized mode is generated by tailsitter.cpp
* reset yaw setpoint during transition to avoid big yaw errors after
transition back to hover
* VT_TYPE parameter: added "reboot required" metadata
- when either terrain data was temporarily not valid (flying at high
distance to the ground) or the vehicle was not close to the ground
(_param_ekf2_gnd_max_hgt) the ekf switched to using the land detector
ground effect flag.
Signed-off-by: Roman <bapstroman@gmail.com>
- takeoff help is used for fixed wings, it increases the altitude setpoint
after a launch. A vtol does not need this as it's already sufficiently
high up in the air.
Signed-off-by: Roman <bapstroman@gmail.com>