Difference between revisions of "Module/FlightBenchmark"
m (FlightBenchmark moved to Module/FlightBenchmark: moved to Module) |
m |
||
Line 1: | Line 1: | ||
<categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Modules</categorytree> | |||
==Description== | ==Description== | ||
This module allows a quantitative assessment of the flight. It calculates the sum of squared error of the two-dimensional course (x / y), the altitude and true airspeed. The sum of squared error of the course and altitude were separated, because they are regulated separately, and so they dependent on various parameters. The module was written to optimize the control parameters and has already been used successfully. | This module allows a quantitative assessment of the flight. It calculates the sum of squared error of the two-dimensional course (x / y), the altitude and true airspeed. The sum of squared error of the course and altitude were separated, because they are regulated separately, and so they dependent on various parameters. The module was written to optimize the control parameters and has already been used successfully. | ||
Line 20: | Line 21: | ||
*(1) Insert the software module in the airframe: | *(1) Insert the software module in the airframe: | ||
<source lang="xml"> | |||
<modules> | |||
<load name="flight_benchmark.xml"> | |||
<define name="BENCHMARK_AIRSPEED"/> | |||
<define name="BENCHMARK_ALTITUDE"/> | |||
<define name="BENCHMARK_POSITION"/> | |||
<define name="BENCHMARK_TOLERANCE_AIRSPEED" value="0."/> | |||
<define name="BENCHMARK_TOLERANCE_ALTITUDE" value="0."/> | |||
<define name="BENCHMARK_TOLERANCE_POSITION" value="0."/> | |||
</load> | |||
</modules> | |||
</source> | |||
**Legend: | **Legend: | ||
Line 46: | Line 48: | ||
*(1) Add this #include to your flightplan in the header: | *(1) Add this #include to your flightplan in the header: | ||
<source lang="xml"> | |||
<flight_plan alt="............your configurations............."> | |||
<header> | <header> | ||
#include "modules/benchmark/flight_benchmark.h" | #include "modules/benchmark/flight_benchmark.h" | ||
Line 57: | Line 59: | ||
</blocks> | </blocks> | ||
... | ... | ||
</flight_plan> | |||
</source> | |||
*(2) Add this block to the blocks section: | *(2) Add this block to the blocks section: | ||
<source lang="xml"> | |||
<block group="base_pattern" name="Oval Bench" strip_button="Oval Bench(wp 1-2)" strip_icon="oval.png"> | <block group="base_pattern" name="Oval Bench" strip_button="Oval Bench(wp 1-2)" strip_icon="oval.png"> | ||
<oval p1="Ov1" p2="Ov2" radius="nav_radius" until="nav_oval_count > 0"/> | <oval p1="Ov1" p2="Ov2" radius="nav_radius" until="nav_oval_count > 0"/> | ||
Line 67: | Line 69: | ||
<deroute block="Oval Bench"/> | <deroute block="Oval Bench"/> | ||
</block> | </block> | ||
</source> | |||
*(3) Make sure that you've named your points right. | *(3) Make sure that you've named your points right. | ||
Line 73: | Line 75: | ||
*(4) Now you can use this block in the flightplan: | *(4) Now you can use this block in the flightplan: | ||
<source lang="xml"> | |||
<block key="F7" name="Eight Bench" strip_button="Figure 8 (wp 1-2)" strip_icon="eight.png" group="base_pattern"> | <block key="F7" name="Eight Bench" strip_button="Figure 8 (wp 1-2)" strip_icon="eight.png" group="base_pattern"> | ||
<eight center="8C" radius="nav_radius" turn_around="8T" until="nav_oval_count > 0"/> | <eight center="8C" radius="nav_radius" turn_around="8T" until="nav_oval_count > 0"/> | ||
Line 79: | Line 81: | ||
<deroute block="Eight Bench"/> | <deroute block="Eight Bench"/> | ||
</block> | </block> | ||
</source> | |||
[[Category:Modules]] |
Revision as of 16:44, 4 March 2012
Description
This module allows a quantitative assessment of the flight. It calculates the sum of squared error of the two-dimensional course (x / y), the altitude and true airspeed. The sum of squared error of the course and altitude were separated, because they are regulated separately, and so they dependent on various parameters. The module was written to optimize the control parameters and has already been used successfully.
The measurement is not started until about the variable benchm_go is set to 1.
The sum of squared error can by reseted by changing the boolean variable benchm_reset to zero (will turn back to 1 automatically after it has done the reset). This can also be used in a flight plan, which allows a flight plan with auto-reset. So it is possible to fly an oval or a eight figure with a sum of squared error that will be reseted at the very same point of the figure.
Module Infos
ModuleXML
- flight_benchmark.xml
Code- and headerfile
- sw/airborne/modules/benchmark
Settings file
- benchmark.xml
Airframe Adjustments
The code is aviable in the master git branch.
- (1) Insert the software module in the airframe:
<modules>
<load name="flight_benchmark.xml">
<define name="BENCHMARK_AIRSPEED"/>
<define name="BENCHMARK_ALTITUDE"/>
<define name="BENCHMARK_POSITION"/>
<define name="BENCHMARK_TOLERANCE_AIRSPEED" value="0."/>
<define name="BENCHMARK_TOLERANCE_ALTITUDE" value="0."/>
<define name="BENCHMARK_TOLERANCE_POSITION" value="0."/>
</load>
</modules>
- Legend:
- Define BENCHMARK_AIRSPEED to enable airspeed benchmarking (only with airspeed module)
- Define BENCHMARK_ALTITUDE to enable altitude benchmarking.
- Define BENCHMARK_POSITION to enable position (x/y) benchmarking. (shortest error to the path)
- BENCHMARK_TOLERANCE_... define the tolerated value where the sum of squared error won't change. Set to zero to have no tolerance.
- Legend:
- (2) Add the settings XML to the settings list: benchmark.xml
- (3) Now you can turn on the calculations by setting the benchm_go to 1 (in GCS under benchamrk)
Example configurations in flightplan for auto-reset
A example flightplan can be downloaded here but beware: This file contains extras you probably won't need.
- (1) Add this #include to your flightplan in the header:
<flight_plan alt="............your configurations.............">
<header>
#include "modules/benchmark/flight_benchmark.h"
</header>
...
<blocks>
...
...
</blocks>
...
</flight_plan>
- (2) Add this block to the blocks section:
<block group="base_pattern" name="Oval Bench" strip_button="Oval Bench(wp 1-2)" strip_icon="oval.png">
<oval p1="Ov1" p2="Ov2" radius="nav_radius" until="nav_oval_count > 0"/>
<set value="1" var="benchm_reset"/>
<deroute block="Oval Bench"/>
</block>
- (3) Make sure that you've named your points right.
- (4) Now you can use this block in the flightplan:
<block key="F7" name="Eight Bench" strip_button="Figure 8 (wp 1-2)" strip_icon="eight.png" group="base_pattern">
<eight center="8C" radius="nav_radius" turn_around="8T" until="nav_oval_count > 0"/>
<set value="1" var="benchm_reset"/>
<deroute block="Eight Bench"/>
</block>