Files
ardupilot/libraries/AP_Scripting/examples/config_profiles.md
T
Peter Barker 1fc015c5da AP_Scripting: add a script that changes vehicle between configurations
... different battery configurations, different payload configurations and different arm configurations
2025-09-30 09:42:32 +10:00

1.8 KiB

Configuration Profiles LUA script

This script allows different configuration profiles to be selected by changing single parameters created by the script.

You may use this script to allow users to rapidly reconfigure the vehicle based on the role the vehicle will be used in.

Terms

Domains

Parameters are divided into domains; a parameter can only exist in a single domain. So you may have a domain for different battery configurations and a domain for different payload configurations.

Each domain specifies what parameters are relevant in an all_param_defaults attribute.

Profiles

Each domain has a number of profiles which can be switched between via setting a parameter. The profiles specify parameter values which override the defaults specified in the domain's all_param_defaults attribute.

Modes

Each domain can be in one of three modes:

  • do nothing
  • use the default parameter values only
  • use parameters from the selected profile, taking the parameter value from the defaults stored in the domain if the profile does not specify a value

Use

Each domain has a corresponding "_SEL" parameter associated. So, for example, a "PAY" domain will have "CFG_PAY_SEL" as its parameter.

If the value of this parameter is "-1" then the script will take no actions for this domain. This is useful if you want to modify the parameters by hand.

If the value of this parameter is "0" then the defaults for the domain will be applied. No default parameter can be marked as "must be set in the profile" (as setting a subset of the domain parameters may be dangerous).

Any other value of the "_SEL" parameter is considered to be a reference to a specific profile - which must exist in the "profiles" section in the domain.

Notes

Any time a parameter is changed by the script a reboot is required.