Matthias Grob
90998837ec
Commander: ensure diconnected battery is cleared from bit field
2022-05-06 10:46:40 -04:00
Matthias Grob
97b2947416
FlightTaskAuto: refactor _commanded_speed_ts -> _time_last_cruise_speed_override
2022-04-13 12:23:27 +03:00
Matthias Grob
68cf686892
FlightTask: rename and move setCruisingSpeed() -> overrideCruiseSpeed()
2022-04-13 12:23:27 +03:00
Matthias Grob
f892a624b7
FlightModeManager/FixedwingPositionControl: robustify vehicle command parameter casting
2022-04-13 12:23:27 +03:00
Matthias Grob
6ce3e88f9d
vehicle_command: specify what SPEED_TYPEs are for
2022-04-13 12:23:27 +03:00
Matthias Grob
10f927ae2b
MulticopterPositionControl: remove unused return value parameters_update()
2022-04-12 10:13:11 -04:00
Matthias Grob
fe26ee244d
modeCheck: allow arming in land mode for MAVSDK compatibility
...
ideally we can remove it again when the workflow is changed to
first changing mode then arming.
2022-04-08 09:56:47 +02:00
Matthias Grob
92adc71424
ArmStateMachine: port over unit tests to functional gtests
2022-04-06 10:02:14 +02:00
Matthias Grob
f968a5947d
ArmStateMachine: port arming_state_names into the class
2022-04-06 10:02:14 +02:00
Matthias Grob
074080c816
Commander: separate out arm state machine to class
...
Pure refactoring and just the first step to avoid conflicts on the way.
2022-04-06 10:02:14 +02:00
Matthias Grob
dd28c3e019
battery: update average current also when no capacity is configured
2022-04-04 10:02:55 +02:00
Matthias Grob
13c3eae6d0
battery: use mechanism to keep an up to date armed state
2022-04-04 10:02:55 +02:00
Matthias Grob
3aee2497bb
commander_params: add precision land option for mode switch
2022-03-30 18:11:44 +02:00
Matthias Grob
7cd57b4415
FlightTaskOrbit: alert user about exceeded radius (mavlink_log)
2022-03-29 18:46:37 +02:00
Matthias Grob
3e8d2fea94
FlightTaskOrbit: alert user about exceeded radius (events)
2022-03-29 18:46:37 +02:00
Matthias Grob
8ad44ee128
FlightModeManager: remove needless space at the end of invalid task error string
2022-03-29 18:46:37 +02:00
Matthias Grob
9bdde98a68
FlightModeManager: refactor flight task switch result condition for vehicle commands
2022-03-29 18:46:37 +02:00
Matthias Grob
ffaef906c4
FlightModeManager: don't ack with result failed when parameters are invalid
...
Command denied is defined as "supported but has invalid parameters"
which matches the case.
2022-03-29 18:46:37 +02:00
Matthias Grob
fc0be6c4fc
FlightModeManager: switch to failsafe task if orbit is rejected
2022-03-29 18:46:37 +02:00
Matthias Grob
c7f114a26a
FlightTaskOrbit: increase radius limit
2022-03-28 17:57:56 +02:00
Matthias Grob
d0794c1189
FlightTaskOrbit: don't start Orbit if radius is not in range
2022-03-28 17:57:56 +02:00
Matthias Grob
e6ed595651
Commander: make last_fail_time_us parameter a reference instead of pointer
2022-03-23 15:04:48 -04:00
Matthias Grob
eee4aaee4f
Commander: remove dynamic position velocity probation period
2022-03-23 15:04:48 -04:00
Matthias Grob
897506267d
Sticks: name getThrottle() explicitly about range
2022-03-23 11:54:05 +01:00
Matthias Grob
db7430aa65
matrix helper: remove needless comment line
2022-03-23 10:51:45 +01:00
Matthias Grob
18629bb535
FlightTaskOrbit: fix tangential yaw stick input for rotation direction changes
2022-03-23 10:51:45 +01:00
Matthias Grob
74c0ae6e55
Functions: add sign from boolean function with unit tests
2022-03-23 10:51:45 +01:00
Matthias Grob
e03585ca06
FlightTaskOrbit: remap stick input when vehicle faces tangential
2022-03-23 10:51:45 +01:00
Matthias Grob
db1fb6acf7
Commander: no battery time based RTL when already landed
2022-03-23 10:49:38 +01:00
Matthias Grob
69f6092031
mavlink_receiver: remove unused land detection publication
2022-03-23 10:49:38 +01:00
Matthias Grob
c1b9b8a1c0
MulticopterLandDetector: correct comment with outdated time constant reference
2022-03-23 10:49:38 +01:00
Matthias Grob
b85c4ec475
Commander: rename land detection subscription for consistency
2022-03-23 10:49:38 +01:00
Matthias Grob
4a5a8d59fe
matrix helper: add documentation for sign function
2022-03-23 08:47:52 +01:00
Matthias Grob
d0abcc1ca3
MatrixHelperTest: add unit tests for the signum function
2022-03-23 08:47:52 +01:00
Matthias Grob
03f836f79d
matrix helper: fix sign function zero case
2022-03-23 08:47:52 +01:00
Matthias Grob
9ab99a7689
MatrixHelperTest: don't rely on FLOAT_EQ accepting FLT_EPSILON inaccuracy
2022-03-18 13:35:18 +01:00
Matthias Grob
cde7b1bc41
Matrix: remove deprecated minimal test framework
2022-03-17 13:02:22 +01:00
Matthias Grob
91493307b9
Matrix: convert vector test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
4b63f6b29a
Matrix: convert vector assignment test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
f4b53d2762
Matrix: convert vector3 test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
ddfd62dfc2
Matrix: convert vector2 test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
be28aeb3ee
Matrix: convert upper right triangle test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
4d43aad847
Matrix: convert transpose test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
b3cc18c6de
Matrix: convert square test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
555ed9b9d8
Matrix: convert slice test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
46df8ab60c
Matrix: convert set identity test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
831f0e9aac
Matrix: convert scalar multiplication test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
38d742f1b5
Matrix: convert pseudo inverse test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
57e443c4a4
Matrix: convert multiplication test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
719898f1e3
Matrix: convert least squares test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
fddcf342e9
Matrix: convert inverse test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
f5ec4b2339
Matrix: convert integral test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
7c9e28c168
Matrix: convert helper test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
0c4c3a917c
Matrix: convert hat vee test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
8f695a5613
Matrix: convert filter test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
79e8152f05
Matrix: convert dual test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
62571b6984
Matrix: convert copy to test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
35b035e880
Matrix: convert attitude test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
c33bf5b705
Matrix: convert assignment test to gtest
2022-03-17 13:02:22 +01:00
Matthias Grob
fa35635486
Matrix: change naming of sparse vector test
2022-03-17 13:02:22 +01:00
Matthias Grob
f1e44c6e2a
PreFlightCheck: only allow modes suitable for takeoff
2022-03-14 09:03:39 +01:00
Matthias Grob
c4bc062714
helper_functions: generalize unwrapping function
2022-03-08 10:56:32 +01:00
Matthias Grob
c86c2db07f
helper_functions: simplify unwrap function
2022-03-08 10:56:32 +01:00
Matthias Grob
68a0414622
Quaternion: rename function to rotate vectors
2022-03-07 20:03:54 -05:00
Matthias Grob
666cf2326d
mission_block: handle SET_ROI_LOCATION with absolute altitude correctly ( #19258 )
2022-03-03 13:25:00 +01:00
Matthias Grob
4ef8cead3d
mc_pos_control_params: correct crawl speed reference
2022-02-04 21:56:20 -05:00
Matthias Grob
1df9d6fca6
MulticopterLandDetector: fix crawl speed parameter fetching
2022-02-04 21:56:20 -05:00
Matthias Grob
ae0bb8371d
Commander: message planned battery action with warning together
2022-01-31 20:27:06 -05:00
Matthias Grob
973116c7a4
commander_params: clarify failsafe delay procedure description
2022-01-31 20:27:06 -05:00
Matthias Grob
cd560da57c
Commander: correct battery failsafe message severity level
2022-01-31 20:27:06 -05:00
Matthias Grob
405852b5c8
Commander: only disallow RC override during battery failsafe delay
2022-01-31 20:27:06 -05:00
Matthias Grob
5ec21835a4
Commander: ensure low battery failsafe flying unatended without GPS
2022-01-31 20:27:06 -05:00
Matthias Grob
1911ec0085
Commander: fix user messageing for low battery failsafe delay
2022-01-31 20:27:06 -05:00
Matthias Grob
52a9040c62
BatterySimulator: recharge battery upon disarming
2022-01-31 20:27:06 -05:00
Matthias Grob
955aad0dfb
Commander: consistent hysteresis initialization
2022-01-31 20:27:06 -05:00
Matthias Grob
d10f9030ad
Commander: add delay before executing low battery failsafe action
2022-01-31 20:27:06 -05:00
Matthias Grob
3af315f2c3
Commander: change battery failsafe to return action instead of executing
2022-01-31 20:27:06 -05:00
Matthias Grob
8eed43b515
Commander: put battery warning and failsafe action in separate functions
2022-01-31 20:27:06 -05:00
Matthias Grob
367b6123e1
state_machine_helper: change main state directly also for low battery RTL
2022-01-31 20:27:06 -05:00
Matthias Grob
f49bd9956b
state_machine_helper: reuse battery action conditions
2022-01-31 20:27:06 -05:00
Matthias Grob
95b5bc0d84
state_machine_helper: separate low battery warning from action
2022-01-31 20:27:06 -05:00
Matthias Grob
42404ade77
FlightTaskOrbit: Use cruise speed and manual acceleration for radius and velocity changes
...
instead of arbitrary fractions of the maximum radius and velocity.
2022-01-25 11:45:31 +01:00
Matthias Grob
7c55229db7
FlightTaskOrbit: Fix altitude adjustment by stick
...
This is done by inheriting from FlightTaskManualAltitudeSmoothVel again.
The altitude change by command is taken care of by switching
to the apporach when the altitude difference is big enough and
switching back once the altitude is close enough.
The altitude of the command is not perfectly reached but this can
only be done smoothly when the Orbit has full control over the
altitude smoothing. The independent altitude smoothing is not kept
because it was lacking stick handling like altitude lock and smooth
transitions when opening and closing the vertical position loop.
2022-01-25 11:45:31 +01:00
Matthias Grob
d73d8f390b
FlightTaskOrbit: Fix vertical speed limit
2022-01-25 11:45:31 +01:00
Matthias Grob
38de07186d
FlightTaskOrbit: include acceleration and jerk in approach setpoint publishing
...
I think they were forgotten and it leads to side effects:
- The acceleration feed-forward does not get executed
- The acceleration setpoint is NAN when initializing the altitude
smoothing when arriving at the circle
2022-01-25 11:45:31 +01:00
Matthias Grob
b9fb8490ba
FlightTaskOrbit: initialize position smoothing with previous setpoints instead of current state
2022-01-25 11:45:31 +01:00
Matthias Grob
e0337a484b
FlightTaskOrbit: remove unnecessary _sanitizeParams() in activation
...
the parameters are anyways sanitized on every update so even if activate()
sets unfeasible one's they get adjusted on the first update.
2022-01-25 11:45:31 +01:00
Matthias Grob
661496ab24
FlightTaskOrbit: improved naming in applyCommandParameters()
2022-01-25 11:45:31 +01:00
Matthias Grob
8525a8e520
FlightTaskAuto: fix typo pos(i)tion
2022-01-25 11:45:31 +01:00
Matthias Grob
c9f7c20d46
MulticoperPositionController: time failsafe messages together
...
The following output instead of printing the
action "stop and wait" just once:
WARN [mc_pos_control] invalid setpoints
WARN [mc_pos_control] invalid setpoints
WARN [mc_pos_control] Failsafe: stop and wait
WARN [mc_pos_control] invalid setpoints
WARN [mc_pos_control] Failsafe: stop and wait
WARN [mc_pos_control] invalid setpoints
WARN [mc_pos_control] Failsafe: stop and wait
2022-01-19 14:31:19 +01:00
Matthias Grob
d4e356a1ac
PosititionControl: fix integrator windup with invalid setpoint
2022-01-19 14:31:19 +01:00
Matthias Grob
8811482f1d
PositionControlTest: add integrator windup with invalid setpoint combination unit test
...
This bug was by chance found during simulation testing and debugging.
The unit test is to easily reproduce and cover this case.
2022-01-19 14:31:19 +01:00
Matthias Grob
443406ea2b
FlightTaskAuto: use longerThan() when possible in vector calculations
2022-01-12 15:12:24 +01:00
Matthias Grob
bbad4a5397
FlightTaskAuto: Respect altitude with offtrack state
...
To avoid weird cases where the altitude is different enough and
the offtrack state flies to the target altitude instead of the closest
point on the track between the waypoints.
2022-01-07 10:30:39 -05:00
Matthias Grob
bbb04ab4b8
Remove relaying of maximum altitude through land detector
2022-01-05 14:54:59 +01:00
Matthias Grob
f68ae39840
Commander: avoid RC actions during calibration
2021-12-22 09:08:23 -05:00
Matthias Grob
897775f38d
ManualControlSelector: Allow disabling stick input
2021-12-10 09:11:08 -05:00
Matthias Grob
300e439144
ManualControlSelector: Enable original PX4 default behavior until QGC catches up
2021-12-10 09:11:08 -05:00
Matthias Grob
495f1c9165
battery: don't initialize _source without constructor
2021-12-07 21:06:51 +01:00
Matthias Grob
68e2940f58
math: support max of three values additional to min and use it everywhere
2021-12-07 21:06:51 +01:00