Logs to a csv file data required to compute control effectiveness
Data can be post-processed using the tool in sw/tools/control_effectiveness Based on ChibiOS SD log
Example for airframe file
Add to your firmware section:
<module name="logger_control_effectiveness"/>
Module configuration options
Airframe file section
- section name:
CONTROL_EFFECTIVENESS
prefix: LOGGER_CONTROL_EFFECTIVENESS_
- name
COMMANDS
value: FALSE|TRUE
Description: log command vector (true by default)
- name
ACTUATORS
value: FALSE|TRUE
Description: log actuator vector
- name
POS
value: FALSE|TRUE
Description: log position (ENU frame, integer representation)
- name
SPEED
value: FALSE|TRUE
Description: log speed (ENU frame, integer representation)
- name
AIRSPEED
value: FALSE|TRUE
Description: log airspeed (float)
Module functions
Periodic Functions
These functions are called periodically at the specified frequency from the module periodic loop.
Files
Header Files
The following headers are automatically included in modules.h
Source Files
Raw logger_control_effectiveness.xml file:
<!DOCTYPE module SYSTEM "module.dtd">
<module name="logger_control_effectiveness" dir="loggers" task="core">
<doc>
<description>
Logs to a csv file data required to compute control effectiveness
Data can be post-processed using the tool in sw/tools/control_effectiveness
Based on ChibiOS SD log
</description>
<section name="CONTROL_EFFECTIVENESS" prefix="LOGGER_CONTROL_EFFECTIVENESS_">
<define name="COMMANDS" value="FALSE|TRUE" description="log command vector (true by default)"/>
<define name="ACTUATORS" value="FALSE|TRUE" description="log actuator vector"/>
<define name="POS" value="FALSE|TRUE" description="log position (ENU frame, integer representation)"/>
<define name="SPEED" value="FALSE|TRUE" description="log speed (ENU frame, integer representation)"/>
<define name="AIRSPEED" value="FALSE|TRUE" description="log airspeed (float)"/>
</section>
</doc>
<header>
<file name="logger_control_effectiveness.h" />
</header>
<periodic fun="logger_control_effectiveness_periodic()" start="logger_control_effectiveness_start()" autorun="FALSE" />
<makefile target="ap">
<file name="logger_control_effectiveness.c"/>
</makefile>
</module>