The functions passed to the attributes 'on_enter' and 'on_exit' will be
called once every time the flight plan state machine enters or leaves a
block, even if the block change is requested by the operator or if it is
caused by an exception.
It allows to properly activate and then disable services related to a
specific block.
Another good side effect is that the block and stage index are now
private and can't be modified by external modules. Old variables
nav_block and nav_stage can still be used as read-only.
Based on the work from:
Baptiste Pollien, Christophe Garion, Gautier Hattenberger, Pierre Roux, Xavier Thirioux.
A Verified UAV Flight Plan Generator. 2023 IEEE/ACM 11th International Conference on Formal Methods in Software Engineering (FormaliSE),
May 2023, Melbourne, Australia. pp.130-140, 10.1109/FormaliSE58978.2023.00021
- update airframe and add competition flight plans
- fix flight plan DTD
- mag params for Bristol
- add a set_expo function (might be weak) for digital cam driver
- fix tag tracking for simulation, add getter functions
- add option to skip initial circle in nav survey
- fix jevois driver parsing
This mode is not really used and not even recommended. It is also not
implemented in all firmwares. If a direct call to stabilization command
is needed, it should be done with a specific function but not from a
builtin instruction from the flight plan.
It was discussed in #3208, but not applyied because of nav_heli_spinup.
A new h_mode 'NONE' allows to disable guidance and stabilization while in
NAV mode, which allows to set directly the commands.
It allows (for rotorcraft) to use all the possibilities of the guided
mode from a single instruction in the flight plan, but without leaving
the NAV mode as it was done before. Thus all capabilities of the FP are
still accessible.
* added rangesensors to gazebo model and NPS
* added module to handle the range sensors
* added sender IDS and added to abi messages
* added abi message to flight plan guided
This feature allows to create an automatic binding to a ABI message
while specifying the list of variable names ('_' are ignored).
A local (static) variable is updated to the latest value each time a new
message is received and it can be read in any flight plan instruction.
Example of usage:
<variables>
<abi_binding name="VELOCITY_ESTIMATE" vars="_, vx, vy, vz, _"/>
</variables>
please not the in this example, the first and the last variable are
ignored but the number of variable must match the number of fields in
ABI messages description (conf/abi.xml).
An extra attribute 'id' allows to set a specific sender ID (by default
ABI_BROADCAST).
* Fixed aircraft IDs for new airframe
* Flight plan safety improvements
* Make DATALINK_LOST_TIME optional
* Fixed in compilation
* Updated safety behavior vol II.
* Added the same behavior for rotorcraft
* Renamed variables
* Unified home mode exceptions in one file
* Fixed code style, changed to static inline
* Added inside_home_sector check for rotorcraft
* Renamed from home_mode_XXX to geofence_XXX to better reflect the functionality
Check for geofence_max_alt > ground_alt + security_height
* Fixed travis to compile with unsigned packages (#1689)
- `<call_once fun="x"/>` is an alias for `<call fun="x" loop="false"/>`
The idea is to make it easier and more clear how to call functions that do not return a bool and should only be called once.
- can be used localy in the flight plan to avoid adding new variables in
the base code when it can be avoided
- with appropriate attributes, will generate a settings accessible from
the GCS
default behavior:
- the function is called until returning FALSE (same as before)
- at the end of the call, go to next stage immediately (new)
this is related to #830
Add an 'exceeding_time' attribute to 'go' and 'path' blocks that tells how
many seconds the plane should fly after the end of the segment before
completing it.
It is equivalent to giving a negative 'approaching_time' (and these two
attributes are of course not compatible with each other).
In addition some math functions in nav are forced to float.