Commit Graph

2906 Commits

Author SHA1 Message Date
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
Phil-Engljaehringer dc0af1ab9d health: Fix displayed value in power check (#25751)
* Changed the healthFailure call in the PowerChecks to ensure that no value above the low_error_threshold or below the high_error_threshold is reported in AMC

* fix format

* made _latest_low_failure and _latest_low_failure member variables. Only update them when hystersis state changes from false to true.
2025-10-17 14:54:16 +02:00
Matthias Grob babe094d06 FailureDetector: use robust timeout checks for motor failure detection (#25757) 2025-10-14 10:46:29 -08:00
Matthias Grob 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
Marco Hauswirth 2f06f03728 calibration: mag: only allow mag calibration when at least one mag is available and enabled (i.e. not prio=0) (#25714) 2025-10-13 20:51:25 -08:00
Mahima Yoga 96904636f3 commander: prevent setting nav_state to takeoff after disarming (#25735)
* commander: prevent setting nav_state after disarming to takeoff

* wrap in function
2025-10-10 09:59:26 -08: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
Tobias Büchli 2c062a45ba feat: expand to 4 modes with more priority options 2025-10-01 18:31:12 +02:00
Tobias Büchli 25c66a7ee5 feat: extend COM_RC_IN_MODE 5 and 6 to source ID ascending and descending priority modes 2025-10-01 18:31:12 +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 7f2a67a588 Commander: split out failure injection class into its own file 2025-09-30 11:23:09 +02:00
Jacob Dahl 35f882cd3c commander: accel cal rotate offsets and scales from body frame back into sensor frame before saving (#25626)
- fixes https://github.com/PX4/PX4-Autopilot/issues/25606
2025-09-25 14:12:15 -04:00
Hamish Willee cbf39f5ceb msg: AirspeedValidated - uorb topic to standard (#25579)
* AirspeedValidated - uorb topic to standard

* Apply suggestions from code review

* Update msg/versioned/AirspeedValidated.msg

* Fix up links to renamed uORB constants

---------

Co-authored-by: PX4BuildBot <bot@pixhawk.org>
2025-09-25 11:02:02 +02:00
Parkhb1106 3925562ce6 commander: fix tune_control timestamp on initial publication 2025-09-24 10:55:32 -08:00
Louis-max-H e71faf38a0 Septentrio GNSS resilience reporting (#25012)
Co-authored-by: Tory9 <vvpost05@gmail.com>
2025-09-24 11:08:10 -04:00
Beat Küng 9670eb69b3 commander: use double literals to avoid implicit conversion
Fixes a CI failure for fuzzing and macos:
https://github.com/PX4/PX4-Autopilot/actions/runs/17906277709/job/50907922642

/__w/PX4-Autopilot/PX4-Autopilot/src/modules/commander/Commander.cpp:471:37: fatal error: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
  470 |                         bool ret = send_vehicle_command(vehicle_command_s::VEHICLE_CMD_EXTERNAL_ATTITUDE_ESTIMATE,
      |                                    ~~~~~~~~~~~~~~~~~~~~
  471 |                                                         0.f, 0.f, heading, 0.f, 0.f, 0.f, heading_accuracy);
      |                                                                                      ^~~
1 error generated.
2025-09-22 09:31:26 -07:00
bresch 82308da18d ekf2: support heading external update from MAV_CMD_EXTERNAL_ATTITUDE_ESTIMATE 2025-09-18 17:00:16 +02:00
Silvan Fuhrer d2e4d85bce Add Altitude Cruise mode
-add new NAVIGATION_STATE_ALTITUDE_VOYAGER
-this mode does require manual control to enter
-but you can disable the manual control loss failsafe to continue
flying in case of manual control loss
-for MC: in throttle and yaw are controlled like in Altitude mode,
the tilt is controlled via integrated rate input (similar to Acro,
but with tilt limit)

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-09-18 15:50:10 +02:00
Silvan db8a1f11a7 EstimatorCheck: fix reporting of low position accuracy failsafe
Signed-off-by: Silvan <silvan@auterion.com>
2025-09-12 14:16:16 +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
Beat Küng 6ec8dec63a commander: add valid_registrations_mask to ArmingCheckRequest.msg
This allows external modes to individually check if they are flagged as
invalid/unresponsive.
Previously this was done only based on whether or not ArmingCheckRequest
was received, which does not work when multiple modes are running.
2025-08-26 14:38:05 +02:00
Beat Küng edfcdaa008 commander: check for stale arming_check_reply messages
based on the message timestamp.

Previously it was possible to run into the following case:
- 2 external modes are registered (running inside the same ROS node)
- they time out due to the micro xrce agent being blocked for some reason
- PX4 removes them
- the latest arming check replies still arrive to PX4
- the application restarts
- the first mode gets registered
- PX4 handles the previous arming check reply, and clears
  waiting_for_first_response, which reduces the timeout
- the second mode registers and as part of that checks for message
  compatibility. This takes ~1s, triggering a timeout of the first mode
2025-08-26 14:38:05 +02:00
mahima-yoga dd09cdf986 Commander: remove HIL_STATE_ON from arming lockdown
Removing this from the boolean allows users to send pwm values in SIH.
2025-08-25 09:28:43 +02:00
Beat Küng df11aa1d69 fix commander: handle mode executor correctly on disarm
There were a number of cases where the state was not correct or not as
desired after disarming, when running an external mode 'MyMission' with
executor:
- run MyMission, which triggers Hold, then Land
  - before: Mode: Hold, executor_in_charge: 1
  - after:  Mode: MyMission, executor_in_charge: 1
- run MyMission, then user switches to RTL
  - before: Mode: MyMission, executor_in_charge: 0
  - after:  Mode: MyMission, executor_in_charge: 1
- run MyMission, then while in Hold mode, low battery failsafe (RTL)
  - before: Mode: Hold, executor_in_charge: 1
  - after:  Mode: MyMission, executor_in_charge: 1
- run MyMission, then stop external mode (terminate the process)
  - before: Mode: (mode not available), executor_in_charge: 0
  - after:  Mode: Hold, executor_in_charge: 0

This case is unchanged:
- run MyMission, then low battery failsafe (RTL)
  - before: Mode: MyMission, executor_in_charge: 1
  - after:  Mode: MyMission, executor_in_charge: 1
2025-08-21 10:06:30 +02:00
dawr68 6934bc908e airspeed calibration: save offset only when full procedure succeed (#25412)
* feat: save offset only when full procedure succeed

* feat: zero dpres off on all failures

* feat: remove unnecessary param_save_default calls
2025-08-19 14:28:13 +02:00
Silvan Fuhrer 16f97635ce Separate RC and manual control terms
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-08-18 18:11:03 +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 79b46e08a8 Rename manual_lockdown to kill for clarity 2025-07-28 17:07:08 +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
mahima-yoga f66192326c commander: only clear hold delay when failsafes are being deferred 2025-07-28 09:48:34 +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 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
Pedro Roque e14eea5615 feat: BlueROV2 Heavy updated control (attitude and position) and model (#25052)
* rft: clean merge to PX4

* fix: formatting

* fix: extra line

* fix: moved submarine out of "is_ground_vehicle", added proper check for center-throttle

* feat: updated gazebo models to include bluerov update

* fix: use 'is_uuv_vehicle', remove FW_MM/LLC from uuv build

* fix: added saturation to thrust and torque messages via param

* doc: updated parameters documentation for uuv

* fix: formatting

* feat: matching hardware reference

* fix: thrusters kg

* rft: removed commented lines

* fix: update gz reference given hw setup

* fix: hardware references

* fix: recommendations

* fix: updated settings to match hardware

* rft: check only for fixed and rotary wing for high throttle

Co-authored-by: Daniel Agar <daniel@agar.ca>

* fix: commit oupsie

* fix: format

* rft: remove is_uuv

* fix: hw parameters, uuv build target for v6x

* feat: added support for D-pad attitude changes in stabilized position control

* fix: position setpoint update and parametrized trajectory age and att change

* fix: format

* fix: removed duplicated call to check_validity_setpoint

* fix: setpoint update on arming logic

* fix: setpoint initialization for stabilized mode

---------

Co-authored-by: Daniel Agar <daniel@agar.ca>
2025-07-23 10:29:22 -07: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
Sebastian Domoszlai 4e3d090d1a Shorten messages to prevent clipping in QGroundControl (#24080)
* Shorten messages to prevent clipping in QGroundControl

* Update src/modules/commander/HealthAndArmingChecks/checks/failureDetectorCheck.cpp

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-07-22 23:07:18 -08:00
mtzm 5144bd5b9f shorten power redundancy check message to less then 50 chars (mavlink limit) (#24738) 2025-07-22 22:30:56 -08:00
Julian Oes 2c97a875bf commander/mavlink: use home attitude, not only yaw
According to the mavlink spec we should be publishing the home attitude
as a quaternion rather than just the yaw/heading.

Additionally, this allows setting the landing roll and pitch angle using
DO_SET_HOME (this yet needs to go into the MAVLink spec though).

This time including the message versioning and translation.
2025-07-20 07:51:14 +12:00
Hamish Willee 78a2a3d0dd COM_FAIL_ACT_T - fix description of zero value 2025-07-17 07:55:49 +02:00
Beat Küng f0ecd9e757 fix commander: set failsafe action state immediately after failsafe update
There was a race condition: for example when an external mode disabled
failsafe deferring, that then triggered a failsafe, while the mode executor
immediately sends a command (to e.g. switch modes).
In that case the failsafe got triggered but the mode switch was still
allowed.
This was because of the processing ordering:
- mode updates (and propagating the failsafe_action_active state)
- failsafe updates
- command handling

This patch makes sure failsafe_action_active is set immediately after
updating the failsafes.
2025-07-15 17:18:54 +02:00
Beat Küng 168d99cd18 commander: do not trigger obsolete failsafe when deactivating failsafe deferring
Previously, when deferring was active and e.g. RC loss was triggered, and
RC regained, the action was not cleared, as the RC loss action only clears
on mode switch/disarm (when set to RTL for example).
When deferring was then disabled, the RC loss failsafe would still trigger.

This changes the behavior to immediately remove those actions when
deferring is active.

It also ensures to reset the Hold delay when deferring is disabled and no
failsafe is being deferred.
2025-07-15 17:18:54 +02:00
Matthias Grob f9b811b0c5 Commander: add option to ignore manual control loss in external modes 2025-07-15 13:08:18 +02:00