Repository navigation
Releases: Abtektas/actuator-lint
Release list
v0.4.2
The first release as actuator-lint. Prebuilt engines contain the control
allocation code of PX4 v1.17.0 (engine_schema 1), as in 0.4.1. The checks,
the rules and the reports are those of 0.4.1, apart from the name of the tool
in the reports and the links to its rules.
Changed
- The project is now called actuator-lint; releases 0.1.0 to 0.4.1 were px4-ca-lint.
The name no longer contains PX4, which is a trademark of Dronecode Project,
Inc. What it does is unchanged. For you this means:- the command is
actuator-lintand the Python packageactuator-lint
(moduleactuator_lint); uninstallpx4-ca-lintand install the new
package, - the engine is
actuator_lint_engine, and installed engines are looked for
in~/.local/share/actuator-lint/engines/; move an engine from
~/.local/share/px4-ca-lint/engines/there and rename it, or install the
engine of this release, - the environment variables start with
ACTUATOR_LINT_instead of
PX4_CA_, for example$ACTUATOR_LINT_ENGINEand$ACTUATOR_LINT_PX4, - the repository is
Abtektas/actuator-lint, and the GitHub Action is
uses: Abtektas/actuator-lint@...; GitHub does not redirect the old name
for actions, - reports name the tool
actuator-lintand link the rules in the new
repository. The JSON fields are unchanged.
- the command is
- The license output, the engine, the engine packages, the README and the
release notes say that PX4 is a trademark of Dronecode Project, Inc., used
here only to name the software the tool works with. - Release notes link files of the repository with absolute links, which work
on the release page.
Install
See the README.
SHA256SUMS lists the checksum of every file of this release.
Safety and liability
This software is a review aid, not an airworthiness approval. It is provided
"as is", without warranty of any kind, and its authors accept no liability and
no responsibility for any use of it or of its results. A report without
findings does not mean that a configuration is safe. Whether and how you use
it is entirely your own decision, at your own risk.
This project is not affiliated with or endorsed by the PX4 project or the
Dronecode Foundation. PX4 is a trademark of Dronecode Project, Inc. It is used
here only to name the software this tool works with.
v0.4.1
Prebuilt engines contain the control allocation code of PX4 v1.17.0
(engine_schema 1), as in 0.4.0. The checks, the rules and the reports are
the same as in 0.4.0; this release adds the license to the program, the GitHub
Action, the package metadata for the Python Package Index and documentation.
An engine of 0.4.0 works with it.
Added
- Documentation for new users: Getting started,
Reading a report with a figure of the body axes
and motor numbers, and the report of every file inexamples/in
docs/example-reports. The example reports
are written bytools/example_reports.py, and a test fails when one of them
is out of date.
Reading a report says how far mix values can
differ between CPU types. - A picture of the tool in a terminal at the top of the README. It is written
bytools/terminal_image.pyfrom what the tool prints, and a test fails
when it is out of date. px4-ca-lint licenseprints the license and the notices, which are now
part of the Python package. The engine prints its notice with its usage,
and every source file names its license.- A GitHub Action:
uses: Abtektas/px4-ca-lint@...
installs a release on the runner, checks the files you name and adds the
reports to the job summary. - Package metadata for the Python Package Index and a workflow that uploads
a published release there. It does nothing until the repository variable
PYPI_PUBLISHis set; see docs/versioning.md.
Changed
px4-ca-lint --versionprints the copyright, the license and the terms in
short after the version line. The first line is unchanged.- The copyright line of the license names "the px4-ca-lint contributors", as
do the package metadata and the action. The license (BSD 3-Clause) and its
terms are unchanged.
Install
See the README.
SHA256SUMS lists the checksum of every file of this release.
Safety and liability
This software is a review aid, not an airworthiness approval. It is provided
"as is", without warranty of any kind, and its authors accept no liability and
no responsibility for any use of it or of its results. A report without
findings does not mean that a configuration is safe. Whether and how you use
it is entirely your own decision, at your own risk.
v0.4.0
Prebuilt engines contain the control allocation code of PX4 v1.17.0
(engine_schema 1), as in 0.3.0. They are new builds: the flight phases and
the check of integer parameters need the engine of this release, so replace
the engine when you update the tool.
Added
- Engines for several PX4 versions can be installed side by side, in
~/.local/share/px4-ca-lint/engines/<PX4 version>/px4_ca_engine. The new
option--px4 VERSION(or$PX4_CA_PX4) chooses one. When only one is
installed it is used without the option; when several are installed and none
is chosen, the tool stops with an error. - When
--px4names a PX4 release, an engine built against anything else is
refused, wherever it was found, also one given with--engineor
$PX4_CA_ENGINE. px4-ca-lint engineslists the engines the tool finds, the PX4 version each
was built against and the one a run without--engineand--px4uses.- For VTOLs the report lists the motors PX4 stops in a flight phase whatever
the setpoint, and the mix of the motors that are left: for a standard VTOL
the lift motors in forward flight, for a tiltrotor the motors that do not
tilt. Motors that PX4 stops only while there is no thrust demand for them,
such as a pusher in hover, are not listed. The JSON report has the new entry
flight_phases. An engine built from this version is needed; with an older
engine the report says that the flight phases are missing. - The golden reports of the seven standard VTOL and three tiltrotor scripts of
PX4 v1.17.0 that have such motors now store them. - Rule CA005 (error): an axis the vehicle cannot be flown without is not
controlled by any matrix, for example roll and pitch of a multirotor whose
rotor positions are missing, or forward thrust of a standard VTOL. Such
configurations gave no finding before. New example
examples/quad_no_positions.params. Of PX4's own airframe scripts only
1002_standard_vtol.hilis affected, whose forward rotor is not counted. - Rule CA006 (error, or warning for an axis the vehicle type does not need):
an axis cannot be controlled independently of the others, for example yaw
of a quadrotor whose rotors all turn the same way. It is the test
PX4mainapplies when it drops an axis (CA002), applied by the tool for PX4
versions that do not have it, which are v1.17.0 and release/1.18. Such
configurations gave no finding there. The result was compared with PX4
mainfor 4400 random configurations. New example
examples/quad_same_spin.params;examples/hexa_rotor_count_4.paramsgets
the finding for yaw as well. None of the airframe scripts of PX4 v1.17.0 is
affected; of release/1.18 only5021_xplane_qtailsitter, with two warnings. - Rule CA012 (error): the thrust of a rotor points down or backwards, for
example a lift rotor withCA_ROTORn_AZ 1, a forward rotor with
CA_ROTORn_AX -1, or a negativeCA_ROTORn_CT. Such configurations gave no
finding before. Multirotors with rotors along other axes than the vertical,
such as PX4's omnicopter airframes, are left alone. New examples
examples/quad_rotor_down.paramsand
examples/standard_vtol_pusher_backwards.params. None of PX4's own airframe
scripts is affected. - Rule CA030 (error): a line of the parameter file could not be used, for
example a value with a decimal comma. Rule CA031 (warning): aCA_*
parameter does not exist in the PX4 version of the engine, for example a
misspelled name. Both were notes before, with exit code 0. New example
examples/standard_vtol_typing_mistakes.params.
Changed
- Every report, the help text, the README and the release notes now say in so
many words that there is no warranty, that the authors accept no liability
and no responsibility, and that using the tool is the user's own decision. - CA002 is a warning, no longer an error, for an axis the vehicle type does not
need. PX4maindrops thrust_x and thrust_y of its own airframe
5021_xplane_qtailsitter, which gave two errors and exit code 1 for a
working airframe. For an axis the vehicle type needs, and for vehicle types
the tool knows nothing about, it stays an error. - The single engine location of earlier versions,
~/.local/share/px4-ca-lint/px4_ca_engine, keeps working and is tried before
the new directories. The message for a missing engine names the new location.
Fixed
- A parameter file that starts with a byte order mark lost its first line, so
that for exampleCA_AIRFRAMEkept its default and the report was for a
multirotor. - A value written with digits that are not ASCII ended in a Python traceback.
- Values that Python reads as a number but the engine does not, such as
1_0,
were passed on and read as another number. Only plain decimal numbers are
accepted now. - An integer parameter with a fractional value was rounded, for example
CA_AIRFRAME 2.5to a tiltrotor. The engine now leaves such a parameter at
its default and CA030 reports it. This needs an engine built from this
version.
Install
See the README.
SHA256SUMS lists the checksum of every file of this release.
Safety and liability
This software is a review aid, not an airworthiness approval. It is provided
"as is", without warranty of any kind, and its authors accept no liability and
no responsibility for any use of it or of its results. A report without
findings does not mean that a configuration is safe. Whether and how you use
it is entirely your own decision, at your own risk.
v0.3.0
Prebuilt engines contain the control allocation code of PX4 v1.17.0
(engine_schema 1), as in 0.2.0.
Added
- Tiltrotor VTOLs (
CA_AIRFRAME3), tailsitter VTOLs (CA_AIRFRAME4) and
multirotors with tilt (CA_AIRFRAME8). The golden tests now cover 11 more
airframe scripts of PX4 v1.17.0, 91 in total, and the SITL cross-check
includes the three types. New examplesexamples/tailsitter.params,
examples/tiltrotor.paramsandexamples/tricopter_tilt.params. An engine
built from this version is needed; the prebuilt engines of 0.2.0 report these
airframes as not supported. - For a tiltrotor the report shows the matrices PX4 computes after a parameter
change, with the tilt servos in the hover position, and says so in a note.
The matrices PX4 uses during the transition and in forward flight are not
covered. - Rule CA022: a rotor is assigned to a tilt servo that does not exist
(CA_ROTORn_TILTaboveCA_SV_TL_COUNT), so PX4 treats it as not tilting.
New exampleexamples/tiltrotor_tilt_servo_missing.params.
Changed
- The text report says in which order servos are numbered: control surfaces
first, then tilt servos. - The SITL cross-check also compares the name of the effectiveness class PX4
reports with the one the engine used.
Install
See the README.
SHA256SUMS lists the checksum of every file of this release.
Safety and liability
This software is a review aid, not an airworthiness approval. It is provided
"as is", without warranty of any kind. A report without findings does not mean
that a configuration is safe. Use at your own risk.
v0.2.0
Prebuilt engines contain the control allocation code of PX4 v1.17.0
(engine_schema 1), as in 0.1.0.
Added
- Fixed-wing vehicles (
CA_AIRFRAME1). The golden tests now cover the 23
plane airframe scripts of PX4 v1.17.0 and the SITL cross-check includes
PX4's SIH plane. New examplesexamples/fixed_wing.paramsand
examples/fixed_wing_thrust_offset.params. An engine built from this
version is needed; the prebuilt engines of 0.1.0 report the airframe as not
supported. - Rule CA021: a rotor has geometry parameters but its index is
CA_ROTOR_COUNTor higher, so PX4 ignores it. New example
examples/hexa_rotor_count_4.params. install checkworkflow: follows the install steps, with uv and with a
virtual environment, with the files of a published release on clean
machines.
Changed
- The install instructions recommend
uv tool install, with pipx and a
virtual environment as alternatives.
Install
See the README.
SHA256SUMS lists the checksum of every file of this release.
Safety and liability
This software is a review aid, not an airworthiness approval. It is provided
"as is", without warranty of any kind. A report without findings does not mean
that a configuration is safe. Use at your own risk.
v0.1.0
First release. Prebuilt engines contain the control allocation code of PX4
v1.17.0 (engine_schema 1).
Added
- Engine built against PX4 v1.17.0 that writes the effectiveness and mix
matrices as JSON (engine_schema1). SupportedCA_AIRFRAMEvalues: 0
(multirotor) and 2 (standard VTOL). - Command line tool with text and JSON reports. Input formats: plain, PX4
airframe script, QGroundControl export. - Rules CA001, CA002, CA003, CA004, CA010, CA011 and CA020.
- Golden tests over the airframe scripts shipped with PX4 v1.17.0 and a
cross-check against PX4 SITL. --format markdownfor reports that are pasted into issues and pull
requests.px4-ca-lint diff BEFORE AFTERcompares two parameter files: parameters,
matrix values and findings.- Prebuilt engines for Linux x86_64, Linux arm64 and macOS arm64, with
checksums and build provenance. - A downloaded engine is found in
~/.local/share/px4-ca-lint/. - Findings link to the document of their rule.
Install
See the README. Install the Python package with uv tool install, pipx or in a virtual environment; a plain pip install outside a virtual environment is refused on most Linux distributions.
SHA256SUMS lists the checksum of every file of this release.
Safety and liability
This software is a review aid, not an airworthiness approval. It is provided
"as is", without warranty of any kind. A report without findings does not mean
that a configuration is safe. Use at your own risk.