Silvan Fuhrer
da4d6dc657
L1: increase the max allowed tangential velocity in the opposite direction to 2m/s
...
There is logic in L1 that prevents the vehicle from trying to achieve
an impossible loiter entry (e.g. due to wind). That check makes the
vehicle track the loiter center if the tangential velocity is in the wrong
direction while loitering. After the vehicle flies through the center, it can
then turn the other way around to join the loiter.
This check is though too sensitive if it purely checks for the wrong direction,
and it can end in delayed loiter entry for no reason.
This commit increases the threshold to 2m/s of tangential velocity
in the wrong direction to trigger the check.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com >
2021-10-27 12:32:58 +03:00
Daniel Agar
6d0c6bb6ce
lib/world_magnetic_model: cmake remove helper target BYPRODUCTS
...
- otherwise ninja will try to rebuild these
2021-10-26 18:52:12 -04:00
Daniel Agar
88a979cf1d
lib/world_magnetic_model: add cmake helpers for updating tables
...
- `world_magnetic_model_update` to fetch latest geo_magnetic_tables.hpp
- `world_magnetic_model_tests_update` to fetch latest test_geo_lookup.cpp
2021-10-26 14:39:58 -04:00
Silvan Fuhrer
73fe300c00
WindEstimator: remove option to disable scale estimation
...
The situation where this would be desired is unclear, plus it's basically
the same as setting ASPD_SC_P_NOISE to a very small value.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com >
2021-10-22 17:00:35 +02:00
Silvan Fuhrer
b38bf23d6e
WindEstimator: avoid division by 0
...
Signed-off-by: Silvan Fuhrer <silvan@auterion.com >
2021-10-22 17:00:35 +02:00
Silvan Fuhrer
a2faac148f
AirspeedValidator: check_airspeed_innovation() check absolute innovations
...
Do no longer use tas_innovation from wind estimator and test ratio, but calculate
the innovation based on wind estimate, TAS measurement (including currently applied scale)
and ground velocity. Use innovations directly to trigger failure.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com >
2021-10-22 17:00:35 +02:00
Silvan Fuhrer
259b851ba7
WindEstimator: remove filter reset due to airspeed measurement rejection
...
As the purpose of this wind estimator is to (mainly) catch airspeed failures,
we don't value estimator stability as much as the reliability to catch
actual sensor issues, and thus do not reset the filter (as this may hide
a real issue with the sensor)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com >
2021-10-22 17:00:35 +02:00
Silvan Fuhrer
3ad901e51d
Wind Estimator: use time_literals
...
Signed-off-by: Silvan Fuhrer <silvan@auterion.com >
2021-10-22 17:00:35 +02:00
Silvan Fuhrer
625f556b0e
AirspeedSelector: airspeed scale estimation improvements and robustification
...
- run airspeed scale estimation always, not in dedicated mode
- add option to apply scale automatically, with extra feasibility check
- add airspeed scale for all 3 possible airspeed instances
- clean up parameters
- add check for data stuck (non-changing airspeed data)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com >
2021-10-22 17:00:35 +02:00
bresch
78fe6e2152
VelocitySmoothing: fix issue when delta vel is the same on all axes
...
When the change in velocity is exactly the same on several axes, the T1
of the recumputed trajectories after time sync was set to 0 because it
was skipping both if and else if.
2021-10-22 10:54:36 +02:00
Daniel Agar
6fb1c79ef0
mixer_module: reject mixer load and reset when dynamic mixing is enabled
2021-10-21 11:27:33 -07:00
mcsauder
21163d859e
Whitespace cleanup.
2021-10-19 13:29:26 -04:00
Daniel Agar
33954a904f
lib/tunes: never play tunes if circuit breaker is set
2021-10-18 21:37:09 -04:00
Beat Küng
f1686b1abf
px4io: add dynamic mixing support
2021-10-18 18:45:19 -04:00
Beat Küng
ab1d76ae7d
params: use PWM_MAIN_* instead of PWM_FMU_*
2021-10-18 18:45:19 -04:00
Beat Küng
44bbe87165
pwm_out_sim: use PWM_FMU for sitl and HIL_ACT for hitl
...
We might want to change this later, but for now it allows to use the same
airframe configs for sitl/real, and independent hitl configuration.
2021-10-18 18:45:19 -04:00
Beat Küng
5f0781b6e9
output modules: add param prefix argument to MixingOutput
2021-10-18 18:45:19 -04:00
Beat Küng
916447e804
params: add script to parse timer_config.cpp for timer group info
...
This allows to generate pwm params in the form of:
module_name: PWM Output
actuator_output:
output_groups:
- generator: pwm
param_prefix: PWM_FMU
channel_labels: ['PWM Main', 'PWM Capture']
standard_params:
disarmed: { min: 800, max: 2200, default: 900 }
min: { min: 800, max: 1400, default: 1000 }
max: { min: 1600, max: 2200, default: 2000 }
failsafe: { min: 800, max: 2200 }
extra_function_groups: [ pwm_fmu ]
pwm_timer_param:
description:
short: Output Protocol Configuration for ${label}
long: |
Select which Output Protocol to use for outputs ${label}.
Custom PWM rates can be used by directly setting any value >0.
type: enum
default: 400
values:
-5: DShot150
-4: DShot300
-3: DShot600
-2: DShot1200
-1: OneShot
50: PWM50
100: PWM100
200: PWM200
400: PWM400
reboot_required: true
2021-10-18 18:45:19 -04:00
Beat Küng
6f01b69f49
mixer_module: add param generation for disarmed, min, max, failsafe
2021-10-18 18:45:19 -04:00
Beat Küng
15daded6b0
refactor output_limit: split output_limit_calc_single into separate function
2021-10-18 18:45:19 -04:00
Beat Küng
c55626d2d6
refactor Tools/serial: move non-serial param generation into separate script
2021-10-18 18:45:19 -04:00
Beat Küng
a65533b469
mixer_module: add output functions for servos, landing gear, parachute, RC passthrough & gimbal
2021-10-18 18:45:19 -04:00
Beat Küng
4b37a3d017
mixer_module: generate output_functions header from yaml file
2021-10-18 18:45:19 -04:00
Beat Küng
fd76e5488e
mixer_module: add output functions
2021-10-18 18:45:19 -04:00
Beat Küng
38fa65a47e
control_allocator: remove direct mixer, add actuator_{motors,servos} instead
2021-10-18 18:45:19 -04:00
Beat Küng
a51c465b54
control allocation: introduce parameter SYS_CTRL_ALLOC & unify build targets
2021-10-18 18:45:19 -04:00
Beat Küng
0c5a79d84d
fix mixer_module: use PRIx32 for debug printf
2021-10-18 18:45:19 -04:00
Thomas Debrunner
f08f2a340d
motion_planning: In VelovitySmoothing, mark const functions const
2021-10-13 21:25:43 -04:00
Thomas Debrunner
fed234de81
flight_mode_manager: Extracted position trajectory motion planning into a library
...
Extract the functionality to plan smooth position motion trajectories into a
motion planning library, such that it can be used in other parts of the code as well.
2021-10-13 21:25:43 -04:00
Matthias Grob
8b37db7825
Functions: fix corner case x_low == x_high == value resulting in NAN
...
and added unit test to cover it
2021-10-13 17:24:16 -04:00
Jukka Laitinen
351f679c2f
parameters: Use px4::atomic_bool instead of px4::atomic<bool>
...
This enables us to define the actual atomic bool type in px4_platform
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae >
2021-10-13 15:01:26 -04:00
RomanBapst
ae5d3103f4
fw l1 controller: added a flag to indicate if navigation has updated
...
- can be used to check if l1 controller ran during a cycle
Signed-off-by: RomanBapst <bapstroman@gmail.com >
2021-10-11 16:41:42 +02:00
Daniel Agar
089f96f800
lib/drivers/{accelerometer,gyroscope} skip obselete Vector3f construction
...
- FIFO clip count only check if value is INT16_MIN/MAX rather than abs() call
2021-10-08 17:33:27 -04:00
bresch
984a698760
matrix: update to include min/max of slices
2021-10-08 09:35:40 +02:00
Beat Küng
393f59ae71
param jsonout: handle @boolean flag
...
This got lost when switching from xml to json metadata
2021-10-07 09:20:50 -04:00
Silvan Fuhrer
4e3fa7cf35
VTOL: rework forward actuation assist
...
-allow positive pitch offsets in hover
-add param for min pitch during LAND
Signed-off-by: Silvan Fuhrer <silvan@auterion.com >
2021-10-06 11:27:19 -04:00
bresch
1b58202b0d
AlphaFilter: add function to set param from cutoff frequency
2021-10-06 16:26:03 +02:00
Daniel Agar
e31dd34388
lib/led: replace subscription missed error with perf count
2021-10-06 09:31:44 -04:00
Beat Küng
540c024cbb
parameters: avoid printing errors for erased flash devices
...
Errors:
ERROR [parameters] param import failed (-1) attempt 1, retrying
ERROR [parameters] param import failed (-1) attempt 2, retrying
ERROR [parameters] param import failed (-1) attempt 3, retrying
ERROR [parameters] param import failed (-1) attempt 4, retrying
ERROR [param] importing from '/fs/mtd_caldata' failed (-1)
2021-10-04 10:25:32 -04:00
bresch
07e307b074
FieldSensorBiasEst: fix bias learning equation
...
Also compensate the tuned learning gains for the new equation to keep
the same tuning
2021-10-02 21:25:21 -04:00
bresch
ec178c8745
create new mag_bias_estimator module
...
Co-authored-by: Daniel Agar <daniel@agar.ca >
2021-10-02 21:25:21 -04:00
bresch
d858835fd0
mbe: initialize estimator with current measurement
2021-10-02 21:25:21 -04:00
bresch
9067d9cae9
mbe: improve algorithm and fix unit test
2021-10-02 21:25:21 -04:00
Matthias Grob
24dc627e8a
Add MagnetometerBiasEstimator for online magnetometer calibration
2021-10-02 21:25:21 -04:00
bresch
5874b1f87c
mc atune: add module to all targets
...
- adjust flash constrianed targets to fit
2021-10-02 18:12:05 -04:00
bresch
d3cb806627
pid_design: add model-based PID tuning law based on GMVC
2021-10-02 18:12:05 -04:00
bresch
404145c655
sysID: add system identification library
2021-10-02 18:12:05 -04:00
Daniel Agar
03bd5e0f48
lib/led: move drivers/lights/rgbled LED_RGB_MAXBRT -> SYS_RGB_MAXBRT
2021-09-28 10:09:55 -04:00
Jukka Laitinen
40063bd54b
Add libtomcrypt and libtommath submodules
...
These provide e.g. rsa_oaep, which can be used for sw crypto
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae >
2021-09-27 17:45:07 +02:00
Daniel Agar
089c962d92
px4io: moving mixing to FMU side
...
Using mixers on the IO side had a remote benefit of being able to
override all control surfaces with a radio remote on a fixed wing.
This ended up not being used that much and since the original design
10 years ago (2011) we have been able to convince ourselves that the
overall system stability is at a level where this marginal benefit,
which is not present on multicopters, is not worth the hazzle.
Co-authored-by: Beat Küng <beat-kueng@gmx.net >
Co-authored-by: Daniel Agar <daniel@agar.ca >
2021-09-25 19:15:05 -04:00