mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-02-06 13:45:23 +08:00
parameters: remove parameters_injected.xml and support for it in the build system (#25549)
This was apparently added 10 years ago to store metadata of UAVCAN components within the PX4 binary. The parameters in the xml are mostly early UAVCAN ESC parameters that are presumably out of date and not used. Also it does not scale to maintain metadata for all the possible UAVCAN components and it causes confusion when users read the metadata documentation because these parameters are not available in PX4. That's why I suggest to remove it.
This commit is contained in:
@@ -71,18 +71,15 @@ add_custom_target(metadata_parameters
|
||||
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/src/lib/parameters/px_process_params.py
|
||||
--src-path `find ${PX4_SOURCE_DIR}/src -maxdepth 4 -type d` ${generated_params_dir}
|
||||
--inject-xml ${PX4_SOURCE_DIR}/src/lib/parameters/parameters_injected.xml
|
||||
--markdown ${PX4_BINARY_DIR}/docs/parameters.md
|
||||
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/src/lib/parameters/px_process_params.py
|
||||
--src-path `find ${PX4_SOURCE_DIR}/src -maxdepth 4 -type d` ${generated_params_dir}
|
||||
--inject-xml ${PX4_SOURCE_DIR}/src/lib/parameters/parameters_injected.xml
|
||||
--json ${PX4_BINARY_DIR}/docs/parameters.json
|
||||
--compress
|
||||
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/src/lib/parameters/px_process_params.py
|
||||
--src-path `find ${PX4_SOURCE_DIR}/src -maxdepth 4 -type d` ${generated_params_dir}
|
||||
--inject-xml ${PX4_SOURCE_DIR}/src/lib/parameters/parameters_injected.xml
|
||||
--xml ${PX4_BINARY_DIR}/docs/parameters.xml
|
||||
|
||||
COMMENT "Generating full parameter metadata (markdown, xml, and json)"
|
||||
|
||||
@@ -123,7 +123,6 @@ add_custom_command(OUTPUT ${parameters_xml} ${parameters_json} ${parameters_json
|
||||
--xml ${parameters_xml}
|
||||
--json ${parameters_json}
|
||||
--compress
|
||||
--inject-xml ${CMAKE_CURRENT_SOURCE_DIR}/parameters_injected.xml
|
||||
--overrides ${PARAM_DEFAULT_OVERRIDES}
|
||||
--board ${PX4_BOARD}
|
||||
#--verbose
|
||||
@@ -136,13 +135,11 @@ add_custom_command(OUTPUT ${parameters_xml} ${parameters_json} ${parameters_json
|
||||
${param_src_files}
|
||||
${generated_serial_params_file}
|
||||
${generated_module_params_file}
|
||||
parameters_injected.xml
|
||||
px4params/srcparser.py
|
||||
px4params/srcscanner.py
|
||||
px4params/jsonout.py
|
||||
px4params/xmlout.py
|
||||
px_process_params.py
|
||||
parameters_injected.xml
|
||||
COMMENT "Generating parameters.xml"
|
||||
)
|
||||
add_custom_target(parameters_xml DEPENDS ${parameters_xml})
|
||||
@@ -161,7 +158,7 @@ add_custom_target(parameters_header DEPENDS px4_parameters.hpp)
|
||||
set(SRCS)
|
||||
|
||||
list(APPEND SRCS
|
||||
parameters.cpp
|
||||
parameters.cpp
|
||||
atomic_transaction.cpp
|
||||
autosave.cpp
|
||||
)
|
||||
|
||||
@@ -1,198 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<parameters>
|
||||
<version>3</version>
|
||||
<group name="UAVCAN Motor Parameters" no_code_generation="true">
|
||||
<parameter default="75" name="ctl_bw" type="INT32">
|
||||
<short_desc>Speed controller bandwidth</short_desc>
|
||||
<long_desc>Speed controller bandwidth, in Hz. Higher values result in faster speed and current rise times, but may result in overshoot and higher current consumption. For fixed-wing aircraft, this value should be less than 50 Hz; for multirotors, values up to 100 Hz may provide improvements in responsiveness.</long_desc>
|
||||
<unit>Hz</unit>
|
||||
<min>10</min>
|
||||
<max>250</max>
|
||||
</parameter>
|
||||
<parameter default="1" name="ctl_dir" type="INT32">
|
||||
<short_desc>Reverse direction</short_desc>
|
||||
<long_desc>Motor spin direction as detected during initial enumeration. Use 0 or 1 to reverse direction.</long_desc>
|
||||
<min>0</min>
|
||||
<max>1</max>
|
||||
</parameter>
|
||||
<parameter default="1" name="ctl_gain" type="FLOAT">
|
||||
<short_desc>Speed (RPM) controller gain</short_desc>
|
||||
<long_desc>Speed (RPM) controller gain. Determines controller
|
||||
aggressiveness; units are amp-seconds per radian. Systems with
|
||||
higher rotational inertia (large props) will need gain increased;
|
||||
systems with low rotational inertia (small props) may need gain
|
||||
decreased. Higher values result in faster response, but may result
|
||||
in oscillation and excessive overshoot. Lower values result in a
|
||||
slower, smoother response.</long_desc>
|
||||
<unit>C/rad</unit>
|
||||
<decimal>3</decimal>
|
||||
<min>0.00</min>
|
||||
<max>1.00</max>
|
||||
</parameter>
|
||||
<parameter default="3.5" name="ctl_hz_idle" type="FLOAT">
|
||||
<short_desc>Idle speed (e Hz)</short_desc>
|
||||
<long_desc>Idle speed (e Hz)</long_desc>
|
||||
<unit>Hz</unit>
|
||||
<decimal>3</decimal>
|
||||
<min>0.0</min>
|
||||
<max>100.0</max>
|
||||
</parameter>
|
||||
<parameter default="25" name="ctl_start_rate" type="INT32">
|
||||
<short_desc>Spin-up rate (e Hz/s)</short_desc>
|
||||
<long_desc>Spin-up rate (e Hz/s)</long_desc>
|
||||
<unit>1/s^2</unit>
|
||||
<min>5</min>
|
||||
<max>1000</max>
|
||||
</parameter>
|
||||
<parameter default="0" name="esc_index" type="INT32">
|
||||
<short_desc>Index of this ESC in throttle command messages.</short_desc>
|
||||
<long_desc>Index of this ESC in throttle command messages.</long_desc>
|
||||
<min>0</min>
|
||||
<max>15</max>
|
||||
</parameter>
|
||||
<parameter default="20034" name="id_ext_status" type="INT32">
|
||||
<short_desc>Extended status ID</short_desc>
|
||||
<long_desc>Extended status ID</long_desc>
|
||||
<min>1</min>
|
||||
<max>1000000</max>
|
||||
</parameter>
|
||||
<parameter default="50000" name="int_ext_status" type="INT32">
|
||||
<short_desc>Extended status interval (µs)</short_desc>
|
||||
<long_desc>Extended status interval (µs)</long_desc>
|
||||
<unit>us</unit>
|
||||
<min>0</min>
|
||||
<max>1000000</max>
|
||||
</parameter>
|
||||
<parameter default="50000" name="int_status" type="INT32">
|
||||
<short_desc>ESC status interval (µs)</short_desc>
|
||||
<long_desc>ESC status interval (µs)</long_desc>
|
||||
<unit>us</unit>
|
||||
<max>1000000</max>
|
||||
</parameter>
|
||||
<parameter default="12" name="mot_i_max" type="FLOAT">
|
||||
<short_desc>Motor current limit in amps</short_desc>
|
||||
<long_desc>Motor current limit in amps. This determines the maximum
|
||||
current controller setpoint, as well as the maximum allowable
|
||||
current setpoint slew rate. This value should generally be set to
|
||||
the continuous current rating listed in the motor’s specification
|
||||
sheet, or set equal to the motor’s specified continuous power
|
||||
divided by the motor voltage limit.</long_desc>
|
||||
<unit>A</unit>
|
||||
<decimal>3</decimal>
|
||||
<min>1</min>
|
||||
<max>80</max>
|
||||
</parameter>
|
||||
<parameter default="2300" name="mot_kv" type="INT32">
|
||||
<short_desc>Motor Kv in RPM per volt</short_desc>
|
||||
<long_desc>Motor Kv in RPM per volt. This can be taken from the motor’s
|
||||
specification sheet; accuracy will help control performance but
|
||||
some deviation from the specified value is acceptable.</long_desc>
|
||||
<unit>rpm/V</unit>
|
||||
<min>0</min>
|
||||
<max>4000</max>
|
||||
</parameter>
|
||||
<parameter default="0.0" name="mot_ls" type="FLOAT">
|
||||
<short_desc>READ ONLY: Motor inductance in henries.</short_desc>
|
||||
<long_desc>READ ONLY: Motor inductance in henries. This is measured on start-up.</long_desc>
|
||||
<unit>H</unit>
|
||||
<decimal>3</decimal>
|
||||
</parameter>
|
||||
<parameter default="14" name="mot_num_poles" type="INT32">
|
||||
<short_desc>Number of motor poles.</short_desc>
|
||||
<long_desc>Number of motor poles. Used to convert mechanical speeds to
|
||||
electrical speeds. This number should be taken from the motor’s
|
||||
specification sheet.</long_desc>
|
||||
<min>2</min>
|
||||
<max>40</max>
|
||||
</parameter>
|
||||
<parameter default="0.0" name="mot_rs" type="FLOAT">
|
||||
<short_desc>READ ONLY: Motor resistance in ohms</short_desc>
|
||||
<long_desc>READ ONLY: Motor resistance in ohms. This is measured on start-up. When
|
||||
tuning a new motor, check that this value is approximately equal
|
||||
to the value shown in the motor’s specification sheet.</long_desc>
|
||||
<unit>Ohm</unit>
|
||||
<decimal>3</decimal>
|
||||
</parameter>
|
||||
<parameter default="0.5" name="mot_v_accel" type="FLOAT">
|
||||
<short_desc>Acceleration limit (V)</short_desc>
|
||||
<long_desc>Acceleration limit (V)</long_desc>
|
||||
<unit>V</unit>
|
||||
<decimal>3</decimal>
|
||||
<min>0.01</min>
|
||||
<max>1.00</max>
|
||||
</parameter>
|
||||
<parameter default="14.8" name="mot_v_max" type="FLOAT">
|
||||
<short_desc>Motor voltage limit in volts</short_desc>
|
||||
<long_desc>Motor voltage limit in volts. The current controller’s
|
||||
commanded voltage will never exceed this value. Note that this may
|
||||
safely be above the nominal voltage of the motor; to determine the
|
||||
actual motor voltage limit, divide the motor’s rated power by the
|
||||
motor current limit.</long_desc>
|
||||
<unit>V</unit>
|
||||
<decimal>3</decimal>
|
||||
<min>0</min>
|
||||
</parameter>
|
||||
</group>
|
||||
<group name="UAVCAN GNSS" no_code_generation="true">
|
||||
<parameter name="gnss.warn_dimens" default="0" type="INT32">
|
||||
<short_desc>device health warning</short_desc>
|
||||
<long_desc>Set the device health to Warning if the dimensionality of
|
||||
the GNSS solution is less than this value. 3 for the full (3D)
|
||||
solution, 2 for planar (2D) solution, 1 for time-only solution,
|
||||
0 disables the feature.
|
||||
</long_desc>
|
||||
<min>0</min>
|
||||
<max>3</max>
|
||||
<values>
|
||||
<value code="0">disables the feature</value>
|
||||
<value code="1">time-only solution</value>
|
||||
<value code="2">planar (2D) solution</value>
|
||||
<value code="3">full (3D) solution</value>
|
||||
</values>
|
||||
</parameter>
|
||||
<parameter name="gnss.warn_sats" default="0" type="INT32">
|
||||
<short_desc></short_desc>
|
||||
<long_desc>Set the device health to Warning if the number of satellites
|
||||
used in the GNSS solution is below this threshold. Zero
|
||||
disables the feature
|
||||
</long_desc>
|
||||
</parameter>
|
||||
<parameter name="gnss.dyn_model" default="2" type="INT32">
|
||||
<short_desc>GNSS dynamic model</short_desc>
|
||||
<long_desc>Dynamic model used in the GNSS positioning engine. 0 –
|
||||
Automotive, 1 – Sea, 2 – Airborne.
|
||||
</long_desc>
|
||||
<min>0</min>
|
||||
<max>2</max>
|
||||
<values>
|
||||
<value code="0">Automotive</value>
|
||||
<value code="1">Sea</value>
|
||||
<value code="2">Airborne</value>
|
||||
</values>
|
||||
</parameter>
|
||||
<parameter name="gnss.old_fix_msg" default="1" type="INT32">
|
||||
<short_desc>Broadcast old GNSS fix message</short_desc>
|
||||
<long_desc>Broadcast the old (deprecated) GNSS fix message
|
||||
uavcan.equipment.gnss.Fix alongside the new alternative
|
||||
uavcan.equipment.gnss.Fix2. It is recommended to
|
||||
disable this feature to reduce the CAN bus traffic.
|
||||
</long_desc>
|
||||
<min>0</min>
|
||||
<max>1</max>
|
||||
<values>
|
||||
<value code="0">Fix2</value>
|
||||
<value code="1">Fix and Fix2</value>
|
||||
</values>
|
||||
</parameter>
|
||||
<parameter name="uavcan.pubp-pres" default="0" type="INT32">
|
||||
<short_desc></short_desc>
|
||||
<long_desc>Set the device health to Warning if the number of satellites
|
||||
used in the GNSS solution is below this threshold. Zero
|
||||
disables the feature
|
||||
</long_desc>
|
||||
<unit>us</unit>
|
||||
<min>0</min>
|
||||
<max>1000000</max>
|
||||
</parameter>
|
||||
</group>
|
||||
</parameters>
|
||||
@@ -5,7 +5,7 @@ import sys
|
||||
|
||||
|
||||
class JsonOutput():
|
||||
def __init__(self, groups, board, inject_xml_file_name):
|
||||
def __init__(self, groups, board):
|
||||
all_json=dict()
|
||||
all_json['version']=1
|
||||
all_params=[]
|
||||
|
||||
@@ -75,12 +75,6 @@ def main():
|
||||
metavar="FILENAME",
|
||||
help="Create XML file"
|
||||
" (default FILENAME: parameters.xml)")
|
||||
parser.add_argument("-i", "--inject-xml",
|
||||
nargs='?',
|
||||
const="parameters_injected.xml",
|
||||
metavar="FILENAME",
|
||||
help="Inject additional param XML file"
|
||||
" (default FILENAME: parameters_injected.xml)")
|
||||
parser.add_argument("-b", "--board",
|
||||
nargs='?',
|
||||
const="",
|
||||
@@ -138,8 +132,6 @@ def main():
|
||||
|
||||
#inject parameters at front of set
|
||||
cur_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
groups_to_inject = injectxmlparams.XMLInject(os.path.join(cur_dir, args.inject_xml)).injected()
|
||||
param_groups=groups_to_inject+param_groups
|
||||
|
||||
override_dict = json.loads(args.overrides)
|
||||
if len(override_dict.keys()) > 0:
|
||||
@@ -174,8 +166,7 @@ def main():
|
||||
if args.verbose:
|
||||
print("Creating Json file " + args.json)
|
||||
cur_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
out = jsonout.JsonOutput(param_groups, args.board,
|
||||
os.path.join(cur_dir, args.inject_xml))
|
||||
out = jsonout.JsonOutput(param_groups, args.board)
|
||||
out.Save(args.json)
|
||||
output_files.append(args.json)
|
||||
|
||||
@@ -184,7 +175,7 @@ def main():
|
||||
if args.verbose:
|
||||
print("Compressing file " + f)
|
||||
save_compressed(f)
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user