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
Matthias Grob
64b92e46f8
rc_update: follow parameter member naming convention for payload power switch mapping
2025-06-30 16:50:28 +02:00
Matthias Grob
fc3fd43fc7
rc_update: specify 2 decimal places for all float threshold parameter metadata
2025-06-30 16:50:28 +02:00
Matthias Grob
2bc04f91f8
docs: fix all end of file newlines
...
Note: Some files are autogenerated and I did not yet
go through each source of generation to fix it there.
Instead I adjusted the filter to only exclude those
such that we can fix things in steps.
2025-06-26 11:03:23 -07:00
Matthias Grob
e9bac962ab
docs index: fix special character encoding to be UTF-8
2025-06-26 11:03:23 -07:00
Matthias Grob
bb6d43d5e3
uavcan battery: add support for cuav::equipment::power::CBAT message
...
emitted by e.g. uavcan Tattu batteries.
2025-06-25 21:11:23 +02:00
Matthias Grob
30d4ff3c6c
uavcan battery: fix battery_status.scale, time_remaining and timestamp
...
- timestamp was 0 if uavcan::BatteryInfo was received before uavcan::BatteryInfoAux
- scale was not set as unknown (-1) even though it is since it's never updated
- time_remaining was not initialized correctly and could sometimes be 0
unexpectedly which causes the drone to failsafe because there's reportedly no flight time left
2025-06-25 21:11:23 +02:00
Matthias Grob
eccfb18b51
battery_status message: remove serial_number which is now in battery_info message
2025-06-17 09:05:22 +02:00
Matthias Grob
1d86ede6c6
msg translations: sort headers alphabetically
2025-06-17 09:05:22 +02:00
Matthias Grob
84ce7d2fc6
cyphal: switch to battery_info.serial_number
2025-06-17 09:05:22 +02:00
Matthias Grob
a18453d632
uavcan battery: switch to battery_info.serial_number
2025-06-17 09:05:22 +02:00
Matthias Grob
3ec684153a
batmon: switch to battery_info.serial_number
2025-06-17 09:05:22 +02:00
Matthias Grob
2237bfa9a9
smbus_sbs: switch to battery_info.serial_number
2025-06-17 09:05:22 +02:00
Matthias Grob
7895976a17
batt_smbus: switch to battery_info.serial_number
2025-06-17 09:05:22 +02:00
Matthias Grob
d7ab21b8d6
Add battery_info message with serial number compatible with UAVCAN, MAVLink and drivers
...
I'm starting the separate battery info message because no char[32] should be published and logged
at high rate and we need a separate battery info message for static information as discussed.
2025-06-17 09:05:22 +02:00
Matthias Grob
6b2b20bd6e
imu_gyro_parameters: lower default angular acceleration filter from 30Hz to 20Hz
...
to avoid noise getting into the derivative term of the PID rate control loop on integration flights.
2025-06-12 17:15:12 +02:00
Matthias Grob
c7ef12545c
mc_att_control_params: lower default roll and pitch attitude gains from 6.5 to 4
...
6.5 is a relatively high value that was used mostly on smaller, low inertia vehicles ~250-500mm diagonal. There it works great but on larger, higher intertia vehicles this leads to problems.
2025-06-05 19:28:53 +02:00
Matthias Grob
fdc4766da6
Make sure vehicle_thrust_setpoint is always published before vehicle_torque_setpoint
...
After f0b05ea7cf
the control allocator only has a callback on the torque setpoint and even though this should work
I'm paranoid and would like to avoid surprises by always publishing the thrust before torque
then the samples that were published together are also allocated together.
2025-06-05 08:46:30 +02:00
Matthias Grob
84cb748080
esc_calibration: simplify the logic and consider battery only connected if there's no message timeout and the connected flag is set
2025-06-04 17:11:33 +02:00
Matthias Grob
7e055656b0
uavcan esc: translate temperature field from Kelvin to Celsius
2025-06-04 16:44:16 +02:00
Matthias Grob
ce9bb0dc6b
multicopter defaults: use PX4 default <2g ublox GNSS dynamic model also for multirotors
...
It currently defaults to 1g for multirotors, which works in most cases. However, during extended high-acceleration flight (e.g. in Stabilized mode), the limited dynamic model can upset the EKF, causing repeated resets due to data inconsistencies. Recovery is sometimes quick but can also be too slow to maintain position after high acceleration flight. This issue was observed on an 850mm vehicle, not a racer.
2025-05-27 15:27:32 +02:00
Matthias Grob
a9f7f00844
batteryCheck: refine low battery reporting sevirity
...
To make sure QGC also shows a box and reads out for "low battery"
and make events and mavlink_log reports consistent.
Low - Critical
Critical - Critical
Emergency - Emergency
2025-05-21 16:08:27 +02:00
Matthias Grob
30df381f0e
multicopter_autonomous_params: adjust yaw acceleration and maximum rate for exclusive use with HeadingSmoothing
2025-05-21 13:25:46 +02:00
Matthias Grob
a8f5b6dc1b
FlightTaskOrbit: also use HeadingSmoothing to avoid steps during the approach
2025-05-21 13:25:46 +02:00
Matthias Grob
70ad2e6fe5
FlightTaskAuto: Smooth yaw follow-up, bring back necessary previous yaw setpoint and reset smoothing when yaw is not locked
2025-05-21 13:25:46 +02:00
Matthias Grob
0b3fc0a62d
SIH: add Hexacopter X
...
to enable easy simulation of a motor failure.
2025-05-20 13:23:08 +02:00
Matthias Grob
df65e5bced
docs events_interface: fix entire paragraph being declared code by accident ( #24860 )
2025-05-16 08:40:21 +10:00
Matthias Grob and Hamish Willee
406f0bb470
Fix cellular_status message definition ( #24662 )
...
* msg: fix cellular_status definition
12 * Update msg/CellularStatus.msg
* cellular_status: remove confusing reference to roaming
Co-authored-by: Hamish Willee <hamishwillee@gmail.com >
2025-05-08 15:07:11 +02:00
Matthias Grob
87db286a88
pps_capture_params: clarify description ( #24641 )
2025-05-07 11:15:20 +10:00
Matthias Grob
8e89906b9a
docs: update link to navigator's publish_vehicle_command function
2025-04-25 15:32:47 +02:00
Matthias Grob
dfed3970d4
navigator: use reference instead of pointer to pass the vehicle command to publish
2025-04-25 15:32:47 +02:00
Matthias Grob
672d228d79
navigator: fill vehicle_command with float literals and comment what they stand for
2025-04-25 15:32:47 +02:00
Matthias Grob
da870c4dce
navigator: refactor vcmd -> vehicle_command
2025-04-25 15:32:47 +02:00
Matthias Grob
176783dbcb
navigator: clarify publish_vehicle_command() comment
2025-04-25 15:32:47 +02:00
Matthias Grob
f07ddda344
navigator: refactor publish_vehicle_cmd() -> publish_vehicle_command()
2025-04-25 15:32:47 +02:00
Matthias Grob
5f34474ecb
FlightTaskAuto: clean up parameter description and internal variable naming
2025-04-25 15:32:47 +02:00
Matthias Grob
9eaec534ab
mc_att_control_main: fix check for hover thrust estimate update ( #24750 )
2025-04-22 15:53:51 -08:00
Matthias Grob
9404783c99
EKF2: more accurate unaided yaw calculation
...
to fix the yaw unlocking in StickYaw
when giving a lot of roll and pitch input
2025-04-22 15:55:38 +02:00
Matthias Grob
d514cb4903
mc_att_control: use StickYaw class for Stabilized
...
to make yawing including reset and drift handling consistent with
Altitude and Position mode.
2025-04-22 15:35:26 +02:00
Matthias Grob
174147208e
Move StickYaw class into a globally available library
2025-04-22 15:35:26 +02:00
Matthias Grob
fa3f255301
SIH: write out vehicle types for clarity ( #24731 )
2025-04-16 14:03:34 +02:00
Matthias Grob
45d7f707d7
mc_att_control: remove useless subscription
...
added in 28fa044386
#19633
2025-04-04 13:23:49 +02:00
Matthias Grob
ddb9a5d0b9
gz_plugins: do not look for gz-transport12 (Gazebo garden) ( #24633 )
...
this tries to build the plugins and breaks the SITL build if you have
Gazebo garden isntalled even if you're not trying to simulate with
Gazebo.
2025-03-28 10:11:56 -08:00
Matthias Grob
a048a8e8a0
mavlink_receiver: refactor manual_control.throttle extraction to exactly match MAVLink output
2025-03-21 11:44:51 +01:00
Matthias Grob
faf4114a09
gz_bridge: add a localhost GZ_IP to avoid multicasting all messages to all networks
2025-03-18 10:52:34 +01:00
Matthias Grob
40c26e7880
17002_flightgear_tf-g2: translate FW_THR_CRUISE to FW_THR_TRIM ( #24523 )
...
See 461d0561b8
2025-03-17 17:18:46 +01:00
Matthias Grob
f69361f742
vtol_type: remove unused variable and function for deceleration pitch integral ( #24419 )
...
This functionality was moved to FlightTaskTransition and the variable was forgotten in 079b756f1b
2025-02-26 13:37:21 +01:00
Matthias Grob
ed9111ec49
Remove obstacle avoidance test with Gazebo classic and ROS 1
2025-02-18 14:33:16 +01:00
Matthias Grob
0b370ab5d3
Remove obstacle avoidance MAVLink Heartbeat check
2025-02-18 14:33:16 +01:00
Matthias Grob
4c2e69b2e6
estimatorCheck: only warn about GPS in modes that require a position but fail all modes if GPS required by configuration
2025-01-30 18:45:10 +01:00
Matthias Grob
f142363575
HealthAndArmingChecks: allow to warn in certain modes and fail arming checks in other modes
...
Previously it was only possible to warn in all modes and fail none or fail and warn in certain modes.
2025-01-30 18:45:10 +01:00
Matthias Grob
7e47605871
batteryCheck: separate event messages for low, critical and emergency battery states
2025-01-29 15:32:47 +01:00
Matthias Grob and Hamish Willee
165f644580
control_allocator: fix typo and use [0,1] instead of [0%, 100%] in slew rate description
...
Co-authored-by: Hamish Willee <hamishwillee@gmail.com >
2025-01-27 08:43:11 +01:00
Matthias Grob
c1cab2d4e0
control_allocator: add unit for slew rate and reword description
2025-01-27 08:43:11 +01:00
Matthias Grob
af062c85eb
Revert "FLightTaskAuto: limit nudging speed based on distance sensor"
...
This reverts commit 97cb933cff .
2025-01-21 09:59:47 +01:00
Matthias Grob
f693fab7c8
rc_update params: remove comment about default static mixing
...
Was added back in 2014:
7441efde47
2025-01-17 08:18:42 +01:00
Matthias Grob
e01fef755a
Control allocation: make heli rpm control an optional build flag disabled by default
...
to save flash.
The rpm capture dirver is also disabled on default releases
2025-01-15 14:35:35 +01:00
Matthias Grob
bc92008885
RpmControl: Better consider the case where there's no rpm measurement (anymore)
2025-01-14 14:55:34 +01:00
Matthias Grob
b584f8381c
Helicopter defaults: don't auto disarm so quickly after spoolup
2025-01-14 14:55:34 +01:00
Matthias Grob
5e2848312d
Commander: start timer for auto disarm after spoolup
2025-01-14 14:55:34 +01:00
Matthias Grob
2506bd3b5d
RpmControl: simplify the entire control logic
2025-01-14 14:55:34 +01:00
Matthias Grob
1c4325db6d
RpmControl: split into cpp source file fixing includes
2025-01-14 14:55:34 +01:00
Matthias Grob
2772ae7e0e
RpmControl: maximum rpm outliers are now caught by RpmCapture
2025-01-14 14:55:34 +01:00
Matthias Grob
ddd410e9d8
RpmControl: remove status message because it by now only contains redundant information
2025-01-14 14:55:34 +01:00