Commit Graph

14064 Commits

Author SHA1 Message Date
RomanBapst
a5cc449e69 tecs: propagate altitude setpoint based on target climb/sink rate
- avoids tecs always climbing and sinking and max rates and allows to fine tune these rates
- avoid numerical calculation of feedforward velocity using derivative, this
 was prone to jitter in dt

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2021-06-04 14:51:27 +02:00
RomanBapst
4b7416c05b FixedWingPosControlL1: added target climb and sink rate parameters
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2021-06-04 14:51:27 +02:00
Daniel Agar
db1657fa84 sensors/vehicle_magnetometer: apply current compensation regardless of arming state
- simplify update on mag compensation type change
2021-06-03 10:08:19 -04:00
Julian Oes
60235f8474 mavlink: properly initialize vehicle_command queue
This makes sure that the vehicle_command topic is properly
initialized from the beginning.

orb_exists returns -1 or 0 and not a bool as one would expect.
2021-06-03 08:53:39 -04:00
Julian Oes
1b67187770 navigator: protect against 0 acceptance radius
This seems to slip in e.g. as part of the VTOL_LAND command.
2021-06-02 07:28:19 +02:00
Julian Oes
ab23a44b99 navigator: fix acceptance radius for multicopter
This fixes a regression introduced in
https://github.com/PX4/PX4-Autopilot/pull/16646
which meant that the acceptance radius was no longer used at all for
multicopter, and instead only the NAV_ACC_RAD param was used.

With this change we use the acceptance radius of the mission item again
if it is actually set (and not NAN) which we did not do before, and we
only do that for multicopter.
2021-06-02 07:28:19 +02:00
Daniel Agar
d430e13401 sensors: wait for real sample rate to initialize LowPassFilter2p 2021-06-01 08:58:10 -04:00
RomanBapst
b06b46b224 log raw airspeed derivative, pitch setpoint and airspeed innovation for TECS
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2021-05-31 23:56:23 +02:00
Daniel Agar
5493d96d17 mathlib: merge LowPassFilter2p, LowPassFilter2pArray, and LowPassFilter2pVector3f
- fix reset for direct form 2
 - push NAN checks out to filter users
2021-05-31 10:26:45 -04:00
Daniel Agar
2a792ca201 gyro_fft: add simple SNR requirement and reduce number of peaks 2021-05-31 10:26:45 -04:00
Daniel Agar
3269ee8df1 sensors/vehicle_angular_velocity: accumualted notch filtering and reset improvements
- apply sensor scaling immediately to keep things simple (FIFO vs regular)
 - inline filter helpers (minor performance improvement)
 - dynamic notch filtering
    - reorder by axis (applied per axis)
    - don't remove notch filters immediately if ESC or FFT data times out
    - constrain notch filter frequency and bandwidth to safe range (minimum bandwidth for flaot precision, Nyquist, etc)
 - add safe constraint on dt
2021-05-31 10:26:45 -04:00
Daniel Agar
f25a70a674 mathlib: Notchfilter updates
- merge NotchFilterArray into regular NotchFilter (apply vs applyArray)
 - only use direct form 1 to prevent reset confusion
 - safe default field initialization
 - update VehicleAngularVelocity usage
2021-05-31 10:26:45 -04:00
Daniel Agar
055b5404c3 sensors/vehicle_imu: switch to WelfordMean library and other improvements
- use WelfordMean library to determine sensor sample rate average
 - if gyro samples exceeds queue depth, instead round to nearest even integer to ease scheduling
 - force update if publication latency is falling behind
 - remove redundant sample interval perf counters
 - status print accel & gyro interval standard deviation
2021-05-31 10:05:10 -04:00
Daniel Agar
3340fca332 sensors/vehicle_imu: move accel & gyro updates to separate methods 2021-05-31 10:05:10 -04:00
Daniel Agar
a5979e16be sensors/vehicle_imu: move publish to separate method 2021-05-31 10:05:10 -04:00
Daniel Agar
0b9e4a5902 sensors/vehicle_imu: Integrator simplify and make header only 2021-05-31 10:05:10 -04:00
Silvan Fuhrer
cf5e6e4133 Sensors: subscribe to differential_pressure in vehicle_air_data to calculate air density
-constrain range to -20..35°C
-do not use temperature readings if exactly 0 (as likley not filled by driver at all in this case)

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-05-31 09:53:47 +02:00
Julian Oes
1da4e2f441 vmount: fix param limit 2021-05-28 14:46:40 +02:00
Silvan Fuhrer
4b42a1639b TECS: in airspeed-less mode, set airspeed estimate to cruise airspeed
In airspeed-less mode, instead of the average of min/max airspeed, take the cruise
airspeed (from param) for current airspeed estimate. A diff of the airspeed setpoint
from this value results in increased enegery demand (incerase of throttle) even
in airspeed-less mode.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-05-28 14:25:53 +02:00
Daniel Agar
ad534561d3 commander: only play safety change tunes if initialized 2021-05-27 10:13:49 +02:00
Daniel Agar
af71b2e3ab commander: fix COM_DISARM_PRFLT parameter description typos 2021-05-26 21:48:41 -04:00
Daniel Agar
b264577daa sensors/vehicle_acceleration: require valid sample rate before running
- this fixes a minor edge case when you only have a single accelerometer and haven't made any parameter changes, the sensor sample rate (used for filtering) might not have been updated from default
2021-05-24 21:39:42 -04:00
Daniel Agar
22838f491a ekf2: replace mag missed error message with perf count
- this error is primarily useful when significant gaps in magnetometer are present, otherwise the occasional gaps at startup, etc are distracting in regular usage
2021-05-24 20:52:07 -04:00
Daniel Agar
0fc98b2793 move IMU_GYRO_FFT_EN parameter to developer category
- these need more work and testing before we should encourage wider usage
2021-05-24 18:59:32 -04:00
Daniel Agar
6549017993 navigator: GeofenceBreachAvoidance remove duplicate type alias 2021-05-23 17:51:08 -04:00
Julian Oes
518222bae4 navigator: fix home altitude feasibility check
This includes the following:
- Remove warning/throw_error flag as it is always !home_alt_valid.
- Remove impossible code path when home_alt_valid = false and
  throw_error = false.
- Add home_alt_valid check in second check before using home_alt.
- Only use warning for the second check to allow waypoints below home.
- Don't return early when only warning.
2021-05-20 10:50:54 -04:00
Julian Oes
90a33d59e4 commander: blink red on invalid mission
It doesn't make sense to blink green when something is not good.
2021-05-20 10:50:54 -04:00
Julian Oes
4ccc60e2b0 commander: neutral beep on mission with warning
When a mission is uploaded we should beep consistenly:
- valid -> positive
- warn -> neutral
- invalid -> negative

Before this, it was:
- valid -> positive
- warn -> negative
- invalid -> negative
2021-05-20 10:50:54 -04:00
Julian Oes
b7890529b2 navigator: reset mission feasibility warning flag
Without reseting the warning flag commander would complain about a
warning but still allow arming and flying the mission which was weird.
2021-05-20 10:50:54 -04:00
Daniel Agar
9969edfabc mavlink: STATUSTEXT stream use perf count for missed messages
- don't send stale messages
 - process all queued messages until tx buffer is full
2021-05-20 10:39:11 -04:00
Julian Oes
1f40a65210 mavlink: improve command param5/6, x/y handling
This adds support to handle INT32_MAX for COMMAND_INT.x/y by converting
it to NAN internally.

It also adds paranoid checks to prevent:
- NAN being used sent by a COMMAND_INT by mistake.
- INT32_MAX being used sent by a COMMAND_LONG by mistake.
2021-05-20 09:26:30 +02:00
Daniel Agar
87b861d0f0 IMU_GYRO_CUTOFF and IMU_DGYRO_CUTOFF increase default slightly 2021-05-17 17:37:52 +02:00
Beat Küng
9fbbcc9c73 mavlink ATTITUDE_TARGET: send also if vehicle_attitude_setpoint is not updated
This is the case in MC acro
2021-05-16 13:01:20 -04:00
Beat Küng
2a84afb6a2 mavlink: avoid 'stream xy not found' warnings on CONSTRAINED_FLASH targets
e.g.:
WARN  [mavlink] stream ADSB_VEHICLE not found
WARN  [mavlink] stream GIMBAL_DEVICE_ATTITUDE_STATUS not found
WARN  [mavlink] stream GIMBAL_MANAGER_STATUS not found
WARN  [mavlink] stream GIMBAL_DEVICE_SET_ATTITUDE not found
WARN  [mavlink] stream GPS2_RAW not found
WARN  [mavlink] stream UTM_GLOBAL_POSITION not found
ERROR [mavlink] configure_streams_to_default() failed
2021-05-16 13:01:20 -04:00
Jonas Vautherin
5f14ee2a97 busy -> invalid item 2021-05-13 12:22:16 +02:00
Beat Küng
e77b4418a5 fix logger: use free() instead of 'delete[]' for _buffer
The allocation got changed to px4_cache_aligned_alloc
2021-05-11 18:12:56 +02:00
Silvan Fuhrer
b7e563bdbe Airspeed selector: fix in_air_fixed_wing condition
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-05-10 13:43:05 +02:00
Silvan Fuhrer
596da5b7d3 Airspeed selector: use module params for FW_AIRSPD_STALL
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-05-10 13:43:05 +02:00
Silvan Fuhrer
bf311ed77d addressed review comments (fixes in error message and comments)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-05-10 13:43:05 +02:00
Silvan Fuhrer
63a53d48e7 FW Position controller: improve parameter sanity checks (provide more feedback)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-05-10 13:43:05 +02:00
Silvan Fuhrer
c8ec6b3d08 Airspeed selector: remove ASPD_STALL and replace by FW_AIRSPD_STALL
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-05-10 13:43:05 +02:00
RomanBapst
3ac8c23dd0 commander: added prearm check for geofence violation
- if geofence action is not none, then don't allow arming outside of geofence

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2021-05-10 10:46:49 +03:00
RomanBapst
6215e6c7ec navigator: do not emit geofence warnings if system is not armed
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2021-05-10 10:46:49 +03:00
Daniel Agar
c49c8932de commander: mag_calibration fail immediately if no mags available 2021-05-08 13:03:42 +02:00
Daniel Agar
f15eefcc95 ekf2: selector increase status rate before potential instance change 2021-05-07 22:38:47 -04:00
Julian Oes
29730e30fa ekf2: don't timeout in HITL mode
Otherwise ekf2 might not start if HITL isn't started within 30 seconds.
2021-05-07 22:38:03 -04:00
Julian Oes
ac97b5520c commander: assume power is fine for HITL
This means that the preflight check indicator in QGC is green for HITL.
2021-05-07 22:38:03 -04:00
Julian Oes
648a21f11d commander: ignore calibration in HITL
The calibration is not found in HITL mode. Therefore, I suggest to
ignore this step and assume the calibration is fine.

This mostly fixes the preflight check indicator in QGC, arming was (for
some reason?) already possible.
2021-05-07 22:38:03 -04:00
Hamish Willee
d3fd03a014 airspeed calibration: instruct to blow into front of pitot
... rather than across it
2021-05-07 21:34:53 -04:00
Silvan Fuhrer
08dab18a8b vtol_type: in FW, set min PWM to PWM_DEFAULT_MIN instead of PWM_MOTOR_OFF
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-05-06 10:20:24 +02:00