Matthias Grob
14cbcee49f
CI: replace all usage of addnab/docker-run-action
...
It's unmaintained and the docker version it uses is not supported anymore.
2026-02-13 13:39:50 +01:00
Matthias Grob
87163c1578
uavcan esc: initializers cosmetics ( #26470 )
2026-02-12 18:22:19 -09:00
Matthias Grob
61a8ae80a6
FailureDetector: implement upper and lower current limit with offset
2026-02-09 18:08:26 +01:00
Matthias Grob
f8329ff80d
FailureDetector: rework motor status check
2026-02-09 18:08:26 +01:00
Matthias Grob
b4b1b44c6a
FailureDetector: consistent timestamp naming
2026-02-09 18:08:26 +01:00
Matthias Grob
f5a56ae42f
escCheck: rework online check to properly report offline ESCs
...
previous to this
09d79b221f
set `esc_online_flags` e.g. for UAVCAN ESCs which specific one is online and that then got compared to a mask where the first `esc_count` bits were set.
So if only ESC 5 is mapped and online you get the message "ESC 156 offline" because `esc_online_flags = 0b1000` gets compared to `online_bitmask = 0b1` based on `esc_count = 1` and the motor index is `esc[0].actuator_function = 0` wrapped using `0 - actuator_motors_s::ACTUATOR_FUNCTION_MOTOR1 + 1 = 156`.
2026-02-09 18:08:26 +01:00
Matthias Grob
f9cdd095b8
gnss_checks: always run strict checks on ground
...
With the goal to never take off if the GNSS solution is not fullfilling the configured requirements still not stopping to use it in case it degrades mid air.
2026-02-09 10:59:58 +01:00
Matthias Grob
61c990c5ee
estimator_interface: remove unused getter
2026-02-09 10:59:58 +01:00
Matthias Grob
9be7585add
SagetechMXS: remove two unused subscriptions ( #26356 )
...
Randomly saw that there's a publication and subscription for the same topic and
it is in this case indeed useless.
2026-01-27 11:48:23 -09:00
Matthias Grob
cac3c3c133
boot script: start uavcan and zenoh before logger
...
because they publish optional topics which need to be advertised before logger starts otherwise they do not get logged!
2026-01-27 10:06:22 +01:00
Matthias Grob
7a6506f2dd
rtl: redability suggestions from review, remove unused subscription
2026-01-23 17:16:42 +01:00
Matthias Grob
2239c10192
rtl: restructure findRtlDestination() to one flow
2026-01-23 17:16:42 +01:00
Matthias Grob
8117fce790
rtl: never set arbitrary yaw, initialize _destination and _last_position_before_link_loss with NAN
2026-01-23 17:16:42 +01:00
Matthias Grob
18c3d889fe
rtl: keep rtl_status struct on stack
2026-01-23 17:16:42 +01:00
Matthias Grob
31c7d70342
rtl refactor: name destination "destination"
2026-01-23 17:16:42 +01:00
Matthias Grob
6386f10ba2
rtl: unify finding closest safe point and move finding the destination into the dedicated function returning the destination
2026-01-23 17:16:42 +01:00
Matthias Grob
deb9a1ad4e
rtl: remove duplication for safe landing only in setRtlTypeAndDestination()
2026-01-23 17:16:42 +01:00
Matthias Grob
f685df32bc
rtl refactor: make dependency of rtl_type in status clear
2026-01-23 17:16:42 +01:00
Matthias Grob
432b0e8c58
rtl: adhere to parameter member naming convention
2026-01-23 17:16:42 +01:00
Matthias Grob
473ef5fd06
uavcan: esc: fix actuator test on uavcan ESCs that consume ArmingStatus ( #26255 )
...
* uavcan esc: remove unused includes
* uavcan arming_status: disarm when terminated
To stay consistent with kill.
* uavcan: publish armed during actuator tests to make it possible spinning motors
2026-01-13 10:57:54 -09:00
Matthias Grob
de49edc428
failsafe web simulation: end user friendly mode names + add Altitude cruise and External 1
2026-01-12 11:30:07 +01:00
Matthias Grob
b5846fd8c2
Commander: unify RC loss and data link exception options
2026-01-12 11:30:07 +01:00
Matthias Grob
0e615816b3
commander/failsafe: fix user takeover not possible in fallback Land action when configured RTL is not possible
2026-01-09 10:10:23 +01:00
Matthias Grob
4cf4f82233
failsafe unit test: add cases for 1 allow taking over from degraded failsafes 2 not cause immediate takeover when failsafe happens because of mode switch
...
The first test makes sure the user can take over when an RTL failsafe was triggered but degraded to a Land.
The second test rules out the easiest fix of removing the condition `_selected_action == selected_action` which causes the problem for test one but is there for a reason.
2026-01-09 10:10:23 +01:00
Matthias Grob
3e425210e0
Hysteresis: enable initializing arrays with default constructor initial state false
2025-12-18 13:29:40 +01:00
Matthias Grob
f25997a15b
RoverLandDetector: move static hysteresis configuration to constructor
2025-12-18 13:29:40 +01:00
Matthias Grob
e132568430
FixedWingLandDetector: remove useless 0 delay away from landed
2025-12-18 13:29:40 +01:00
Matthias Grob
b0008e99ff
generate_board_target_json: allow to specify individual targets or entire boards in filter
2025-12-05 08:47:11 -09:00
Matthias Grob
f6de211a27
boards: skip resetting INA parameters to the same default value
2025-11-27 15:16:50 +01:00
Matthias Grob
c8286d4bba
Remove COM_RC_ARM_HYST
...
I've never anyone seen change that value and break the familiar user experience.
2025-11-26 09:58:19 -09:00
Matthias Grob
7b05a00db1
MS5837: correct unit conversion to Pascal
2025-11-13 15:52:00 -08:00
Matthias Grob
b83f21ec6f
temperature_calibration/baro: fix pressure unit
...
It's Pascal, not Hectopascal since
0c31f63896
2025-11-13 15:52:00 -08:00
Matthias Grob
05c79e23d5
SensorBaroSim: correcct comment, nothing in hPa
...
This comment was forgotten in #20057
2025-11-13 15:52:00 -08:00
Matthias Grob
363242972c
process_sensor_caldata: correct pressure unit to Pascal instead of Hectopascal
...
Barometeric pressure was changed to the SI unit Pascal instead of the non-SI unit Hectopascal/Millibar in
0c31f63896
This script stayed unchanged and suffers from assuming `sensor_baro.pressure` is still in the old unit which would be a 100 times smaller number.
2025-11-13 15:52:00 -08:00
Matthias Grob
ae03630570
uavcan: more efficient calculation of esc.RawCommand.cmd array size
2025-11-03 08:18:55 -09:00
Matthias Grob
540e80eb77
FilaureDetector: publish failure_detector_status in class and call that from commander
2025-10-23 09:23:45 +02:00
Matthias Grob
2adc36b2af
FailureDetector: write out status veriable name for clarity
2025-10-23 09:23:45 +02:00
Matthias Grob
70eecf6070
FailureDetector: adhere to the parameter naming convention
2025-10-23 09:23:45 +02:00
Matthias Grob
65c5bd6906
Fix (dis)arm reason enumeration ( #25766 )
2025-10-20 09:12:36 -04:00
Matthias Grob
3e3bb82331
navigator: increase stack by 30 bytes ( #25769 )
2025-10-15 11:21:26 -08:00
Matthias Grob and Hamish Willee
2cae8ee797
Improve documentation for motor failure injection and detection ( #25756 )
...
* failure_injection: improve previously vague motor faulure
Reading it again I decided adding the sentance in 4d2170c13e is not clear enough.
* docs/safety: add a motor failure detection paragraph
The functionality is in my eyes pretty basic but so far completely undocumented so I went through the code and added a paragraph based on questions I received.
* Subedit
* Apply suggestion from @hamishwillee
---------
Co-authored-by: Hamish Willee <hamishwillee@gmail.com >
2025-10-15 11:05:33 +11:00
Matthias Grob
babe094d06
FailureDetector: use robust timeout checks for motor failure detection ( #25757 )
2025-10-14 10:46:29 -08:00
Matthias Grob
7706aae67d
mavlink_receiver: only switch outgoing MAVLink version to 2 if it was 1 before
...
to avoid the message that comes with it being spammed.
2025-10-14 18:38:02 +02:00
Matthias Grob and Jacob Dahl
4842c542b8
rc_update: remove 1% deadzone for RC channels 1-8 ( #25502 )
...
* rc_update: remove 1% deadzone for all channels
this should be handled higher level.
* Remove all references to the RC{n}_DZ parameters
Regular expression: RC.{0,2}_DZ
---------
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com >
2025-10-13 21:41:11 -08:00
12035682d7
Use MAVLink v1 only as opt-in ( #25583 )
...
* Remove support for MAVLink 1
* Add back support for MAVLink 1 but don't default to it
* Update src/modules/mavlink/mavlink_params.c
Co-authored-by: Hamish Willee <hamishwillee@gmail.com >
---------
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com >
Co-authored-by: Hamish Willee <hamishwillee@gmail.com >
2025-10-13 20:58:34 -08:00
Matthias Grob and Silvan
33301764e4
Handle SYS_AUTOSTART 0 the same as no valid airframe being available ( #25645 )
...
* ROMFS: do not exit airframe loading if SYS_AUTOSTART is 0
Do not treat 0 as a magic value that skips the aiframe loading.
Instead leave it tot he rc.autostart to load an airframe that if finds
appropriate (can be defined in external aiframe).
Signed-off-by: Silvan <silvan@auterion.com >
* ROMFS: adjust airframe load spacing and message/comment wording
---------
Signed-off-by: Silvan <silvan@auterion.com >
Co-authored-by: Silvan <silvan@auterion.com >
2025-10-13 20:56:27 -08:00
Matthias Grob
a0810462fd
ManulControlSelector: initialize disabled such that it's obvious if paramter is not loaded correctly
2025-10-01 18:31:12 +02:00
Matthias Grob
661b0655dc
ManualControlSelector: unify validity conditions into one place
2025-10-01 18:31:12 +02:00
Matthias Grob
365525269e
ManualControlSelector: simplify prioritization logic
2025-10-01 18:31:12 +02:00
Matthias Grob
f1f3c81566
Update COM_RC_IN_MODE enum naming
2025-10-01 18:31:12 +02:00
Matthias Grob
acf5766f9c
commander_params: rewrite COM_RC_IN_MODE documentation
2025-10-01 18:31:12 +02:00
Matthias Grob
4d2170c13e
docs/failure_injection: motor off requires CA_FAILURE_MODE to be set
2025-09-30 11:23:09 +02:00
Matthias Grob
e59afce5db
Enable directly injecting motor failures using e.g. failure motor off -i 1
...
Only if SYS_FAILURE_EN is enabled and CA_FAILURE_MODE is > 0.
2025-09-30 11:23:09 +02:00
Matthias Grob
786e0a12c2
FailureInjector simplification rework
2025-09-30 11:23:09 +02:00
Matthias Grob
cefa41f85c
failure command: fix array bound seg fault with e.g. failure motor -i 1
2025-09-30 11:23:09 +02:00
Matthias Grob
7f2a67a588
Commander: split out failure injection class into its own file
2025-09-30 11:23:09 +02:00
Matthias Grob
053cc9aecc
Fix newlines broken from #25499 66b07d8219
2025-09-26 14:01:55 +02:00
Matthias Grob
5c5bf0b83d
Remove parameters MPC_{XY/Z/YAW}_MAN_EXPO and use default value instead
2025-09-18 15:50:10 +02:00
Matthias Grob
5b94557310
Sticks: change internal order and sign of stick positions
2025-09-18 15:50:10 +02:00
Matthias Grob
234e4688b0
Sticks: calculate expo only upon getter call
2025-09-18 15:50:10 +02:00
Matthias Grob
2e910fe185
FlightTask{Altitude+Orbit}: use getter for specific stick value instead of entire array
2025-09-18 15:50:10 +02:00
Matthias Grob
2bf9fce577
Sticks: globalize MPC_HOLD_DZ to MAN_DEADZONE
2025-09-18 15:50:10 +02:00
Matthias Grob
7b68c5dbfc
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.
2025-09-11 10:47:45 -08:00
Matthias Grob and Hamish Willee
63ec2f0406
docs/safety: clarification for position loss in manual position controlled flight
...
Co-authored-by: Hamish Willee <hamishwillee@gmail.com >
2025-09-08 09:41:52 +02:00
Matthias Grob
e0cdcdb436
Remove COM_POSCTL_NAVL
...
In an effort to reduce configuration space.
I've not seen use for this option.
If a pilot flies manually in position mode he has some visual reference of the vehicle and can do better than an autonomous mode without position reference.
Also by now we have nudging in Descend mode so the pilot can still give input and the only difference is it automatically goes down instead of the pilot having to descend by stick to land.
2025-09-08 09:41:52 +02:00
Matthias Grob
887ca6d497
ManualControlSelector: address invalid prioritized input and don't check if sample is from the future
2025-07-31 11:34:53 +02:00
Matthias Grob
461433d7f6
ManualControlSelector: is InputValid refactor with switch case for code readability
2025-07-31 11:34:53 +02:00
Matthias Grob
a09352c079
ManualControl: add option to prioritize RC or MAVLink but with fallback
2025-07-31 11:34:53 +02:00
Matthias Grob
b876aa5b45
ManualControlSelector: robust timeout check
2025-07-31 11:34:53 +02:00
Matthias Grob and Jacob Dahl
6cf494dde1
Publish RTCM stream telemetry also for UAVCAN GNSS receivers ( #25315 )
...
* uavcan gnss: publish rtcm instance and injection rate
* GPS drivers minor refactor (#25316 )
* GPS drivers: adhere to message name based variable naming convention
* uavcan gnss: use matrix norm calculation
* GPS drivers: rate naming refactor and robust timeout checks
---------
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com >
2025-07-29 09:55:21 -08:00
Matthias Grob
79b46e08a8
Rename manual_lockdown to kill for clarity
2025-07-28 17:07:08 +02:00
Matthias Grob
32531c870e
px4io: terminated -> termination
...
fogotten to allign completely in the last step
2025-07-28 17:07:08 +02:00
Matthias Grob
359cad3636
Add back original quadrotor X unit test cases from old multirotor mixer
2025-07-28 14:10:50 +02:00
Matthias Grob
88460db44a
ControlAllocationSequentialDesaturation: improve unit test fixture in terms of parameter update and defaulting to no airmode
2025-07-28 14:10:50 +02:00
Matthias Grob
40e1e82cb0
ControlAllocationSequentialDesaturationTest: convert existing unit test cases to improved fixture
2025-07-28 14:10:50 +02:00
Matthias Grob
a80e89255c
ControlAllocationSequentialDesaturation: adopt improved unit test fixture
...
This makes it much easier to go through allocation secnarios in one line with comprehensive numbers.
2025-07-28 14:10:50 +02:00
Matthias Grob
cd1bac0a55
ControlAllocationSequentialDesaturation: add unit tests
2025-07-28 14:10:50 +02:00
Matthias Grob
53efcbd2c2
control_allocation: Consistently replace with ActuatorVector alias for readability
2025-07-28 14:10:50 +02:00
Matthias Grob
6a3a0d136b
ActuatorEffectiveness: add comments to EffectivenessUpdateReason
...
from information previously only available in the commit message.
2025-07-28 14:10:50 +02:00
Matthias Grob
37899269a8
control_allocator: fix PID dependency definition
2025-07-28 14:10:50 +02:00
Matthias Grob
ef6866cd08
ControlAllocationSequentialDesaturationTest: fix include instead of duplicating definitions
2025-07-28 14:10:50 +02:00
Matthias Grob
4b4cc2164c
Revert "Remove inclusion of rotors in library to enable test ( #24286 )"
...
This reverts commit f7dadd9b89 .
2025-07-28 14:10:50 +02:00
Matthias Grob
930c0451b5
ActuatorEffectivenessRotorsTest: add Hexarotor X
2025-07-28 14:10:50 +02:00
Matthias Grob
b9f7b8f705
commander failsafe: never override user intended termination + unit test
2025-07-28 11:36:21 +02:00
Matthias Grob
972acf0203
commander params: disable remaining flight time failsafe by default
...
Currently if you configure a battery capacity the battery library calculates a remaining flight time and you by default get an RTL when the flight time - return time is running out.
Since the state of charge threshold based battery failsafes `COM_LOW_BAT_ACT` are disabled by default I was asked to also disable the flight time based failsafe to be consistent.
2025-07-28 10:37:43 +02:00
Matthias Grob
200be07021
action_request: rename ACTION_TERMINATE to ACTION_TERMINATION for clarity
2025-07-25 13:01:25 -06:00
Matthias Grob
9d75bdbe62
IO: rename FORCE_FAILSAFE to TERMINATION for clarity
2025-07-25 13:01:25 -06:00
Matthias Grob
7fe78e184e
Rename force_failsafe to termination for clarity
2025-07-25 13:01:25 -06:00
Matthias Grob
34dacffc4a
Commander: shell command commander termination instead of lockdown on for clarity
2025-07-25 13:01:25 -06:00
Matthias Grob
539ef8b0d1
PositionControlTest: Additional test case velocity setpoint with invalid states ( #25286 )
2025-07-25 09:04:56 +02:00
Matthias Grob
dbc36c9e3d
commander params: Further clarify termination vs kill
2025-07-23 11:13:11 +02:00
Matthias Grob
6c5c88f72e
Commander: only trigger MAVLink parachute on termination
...
This can now be tested using the new termination RC switch.
2025-07-23 11:13:11 +02:00
Matthias Grob
52e8a0a0db
Add RC termination switch
2025-07-23 11:13:11 +02:00
Matthias Grob
f9b811b0c5
Commander: add option to ignore manual control loss in external modes
2025-07-15 13:08:18 +02:00
Matthias Grob and Hamish Willee
7d33df4650
Doc Orbit: update and clarify configurability and behavior around limits ( #25208 )
...
* Doc Orbit: update and clarify configurability and behavior around limits
* run prettier
* Fix up link to table
---------
Co-authored-by: Hamish Willee <hamishwillee@gmail.com >
2025-07-15 12:29:29 +10:00
Matthias Grob
a4115db669
FlightTaskOrbit: replace hardcoded 10m/s maximum speed with multicopter speed configuration ( #25192 )
2025-07-10 11:16:11 -08:00
Matthias Grob
140b426720
stylecheck script: improve bash consition because of error iwth newer terminal versionsstylecheck script: improve bash condition to avoid error with newer terminal versions ( #25193 )
2025-07-10 10:59:19 -08:00
Matthias Grob
daa491dc19
rc_update: make payload power switch an optional 3-way switch
...
to support 3 different power states for the payload.
2025-06-30 16:50:28 +02:00
Matthias Grob
1bccd5557a
rc_update: add unit tests for two way payload power switch
...
with the intention to extend it to an optional 3 way switch.
2025-06-30 16:50:28 +02:00
Matthias Grob
8e7c2ed440
rc_update: allow payload power switch to be used for other boards than ARK FPV
2025-06-30 16:50:28 +02:00