We started cleaning up the existing navigation routines and converted them to modules.
The idea behind this is to make it easier to add new special navigation routines as modules, make the current ones more consistent in naming and clean them up.
When this is finished you can add additional navigation routines by loading the appropriate module, e.g.
instead of using the <subsystem name="navigation" type="extra"> which basically added most of these at once. (<subsystem name="navigation"/> is still required though)
Using modules for this makes it easier to only add specific navigation routines (and add your own).
A nice effect is also that you don't have to explicitly include the headers for the navigation routines in the flightplan anymore, solving issue 47
So far the naming has been harmonized and all have a nav_ prefix, this includes module names and and the functions that need to be called from the flight plan (API).
For routines requiring a "initialization/preparation/setup/start" call this should now be e.g.
nav_survey_foo_start(parameter1, parameter2) and nav_survey_foo_run() for the actually execution called each time.
We are still not sure what the best name for the start function is, feedback would be appreciated.
- init might be misleading, since it is not called at autopilot startup like the other init functions (and is e.g. called each time you want to start a new survey in the same flight)
- start somehow suggests that the routine would immediately start, which is also not necessarily the case
- preparation is a bit longer, but maybe less loaded than the two other terms...? or just prep?
There are two existing polygon surveys, the first one is the old Polygon_Survey from OSAM
and the other one is the "advanced" version. Maybe we could clean them up and merge the two?
Feedback on the two different versions and their use would help, ultimately someone with experience using them needs to help out here...
Finally the nav routines (like all modules) should have an appropriate description in the doc section of the module xml file. Help here would be very much appreciated!
your friendly neighborhood Paparazzi team