24059 Commits

Author SHA1 Message Date
Daniel Agar
e7b7ccf68f
auto mission fly home before complete loss of global position estimate
- ekf2: expose dead reckoning as control status flags
 - commander:
    - add GPS validity check
    - in AUTO MISSION if dependent on GPS then a loss of GPS will
trigger RTL so that the plane can return home while dead reckoning
2021-12-28 11:10:24 -05:00
Daniel Agar
990d7c159d pwm_out: cleanup and prep for linux compatibility 2021-12-28 11:04:00 -05:00
FengShun
8f8719d33b cmake: use add_definitions instead of add_compile_definitions
Using make tests in docker will fail, because the current basic image used by px4io/px4-dev-simulation-bionic is ubuntu18.04, the default version of cmake is 3.10, and the add_compile_definitions command is only available in cmake 3.12+(ubuntu 20.04).
2021-12-27 12:19:31 -05:00
honglang
17a99bc827 mavlink: add HYGROMETER_SENSOR stream 2021-12-27 12:13:09 -05:00
honglang
983867f9af uavcan: support uavcan hygrometer 2021-12-27 12:13:09 -05:00
Daniel Agar
236794235a parameters: export empty BSON document even if there are no parameters to save
- otherwise a 'param reset_all' won't be saved until a parameter is changed
2021-12-27 09:17:00 -05:00
Daniel Agar
33d7b42040 parameters: import quietly retry if there's no data (as a precuation) 2021-12-27 09:17:00 -05:00
Daniel Agar
20d3e6f4e1 parameters: add simple BSON verification pass after export 2021-12-27 09:17:00 -05:00
Beat Küng
72065c3d71 fix protocol_splitter: remove timeout, drop buffer if too full instead
The existing implementation had a flaw: when the buffer was getting full,
mavlink started to busy-loop, as the uart has data (poll returns immediately)
but no new data was read from the uart due to the buffer being full.
As rtps is running at lower prio, it never got the chance to read again,
making the problem even worse.
After 1s the timeout triggered and the buffer was cleared, so it recovered.

Instead of allowing for CPU spikes, we now immediately clear the buffer
(only as much as we have to), ensuring that new data is read from the uart.
2021-12-24 20:28:43 -05:00
Rui Miguel Carvalho
542ee86bc9
landing_target_estimator: custom irlock frame params (#18884)
Signed-off-by: ruimscarvalho98 <ruimsc98@gmail.com>
2021-12-24 20:20:35 -05:00
Silvan Fuhrer
28e01c3510 FW Position controller: make loiter switching logic robust against pos_sp with loiter_rad=0
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:17:15 -05:00
Beat Küng
d202bf9631 control_allocator: add scope to reduce stack usage by 256B 2021-12-24 20:06:13 -05:00
Silvan Fuhrer
48be55dec8 Tiltrotor: disable tilt/thrust compensation when dynamic allocation is enabled
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Silvan Fuhrer
31d7328f4d Tailsitter: invert roll (make it NED-correct) for filling vehicle_torque_setpoint
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Silvan Fuhrer
1ad66e606b ControlAllocation: introduce convention for control surface deflection sign
- horizontal control surfaces: up=positive deflection
- vertical control surfaces (rudder): right=positive deflection
- mixed (V-Tail): up=positive deflection

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Beat Küng
5259877b1b control_allocator: update matrix normalization
- only normalize rpy for MC matrices
- for thrust use the 3D vector, so it works for FW and tilt rotors as well

This keeps MC unchanged.
2021-12-24 20:06:13 -05:00
Silvan Fuhrer
460a0df850 tiltrotor: fill out thrust_setpoint[0] also in hover, based on tilt and hover thrust
In the tiltrotor case, beside an F_z thrust setpoint also a F_x setpoint must be passed
to the allocator as the matrix has non-zero thrust-x effectiveness when tilts are applied.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Beat Küng
09200b994d airship_att_control: publish thrust + torque setpoint 2021-12-24 20:06:13 -05:00
Silvan Fuhrer
478724c9fe EffectivenessTiltrotor: fix logic for matrix update
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Beat Küng
8e04934eab commander: consider COM_MOT_TEST_EN for COMMAND_ACTUATOR_TEST as well 2021-12-24 20:06:13 -05:00
Silvan Fuhrer
39d441317a ActuatorEffectivenssTailsitterVTOL: only enable MC yaw control if more than 3 rotors
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Silvan Fuhrer
426aa76a59 CA/VTOL: change description of VT_ELEV_MC_LOCK as it applies to not just elevons
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Silvan Fuhrer
18008b2de7 CA module.yaml: add motor direction function also to UI for Tailsitter an Tiltrotor
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Beat Küng
8c782b7cd9 control_allocator: add Custom + MC with tilts effectiveness
The param group is changed to Geometry, as this reflects the naming in the
QGC UI.
2021-12-24 20:06:13 -05:00
Beat Küng
627ec0df5d control_allocator: increase STACK_MAIN to 3000
It was exceeding 2000
2021-12-24 20:06:13 -05:00
Beat Küng
4d38742371 control_allocator: show VT_ELEV_MC_LOCK for vtol mixers in config ui 2021-12-24 20:06:13 -05:00
Beat Küng
28c4d0b7df mixer_module: add unit tests 2021-12-24 20:06:13 -05:00
Silvan Fuhrer
07306c4be3 control_allocator: add support for Tailsitter VTOL
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Silvan Fuhrer
0568cff299 control_allocator: handle thrust allocation for VTOL's properly
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Silvan Fuhrer
936f2dff52 logger: log both instances of vehicle_thrust/torque_setpoint
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Beat Küng
4f8e6a9548 control_allocator: do not update params while armed
As a precaution
2021-12-24 20:06:13 -05:00
Beat Küng
e04b4a8dbf control_allocator: add 6DOF configuration 2021-12-24 20:06:13 -05:00
Beat Küng
4c80adfaf1 control_allocator: implement trim + slew rate limits configuration 2021-12-24 20:06:13 -05:00
Beat Küng
301100ce0e uuv_att_control: publish vehicle_thrust_setpoint & vehicle_torque_setpoint 2021-12-24 20:06:13 -05:00
Beat Küng
b5c2cdf6c4 vtol_att_control: do not manipulate PWM outputs if SYS_CTRL_ALLOC == 1
Not required anymore
2021-12-24 20:06:13 -05:00
Beat Küng
8d9e2a28c4 control_allocator: add fixed-wing actuator effectiveness 2021-12-24 20:06:13 -05:00
Beat Küng
4d2a403afa control_allocator: add rover actuator effectiveness
This can be generalized later
2021-12-24 20:06:13 -05:00
Beat Küng
ed3a115c8f control_allocator: add status publication rate limitation comment 2021-12-24 20:06:13 -05:00
Beat Küng
70e46a194f control_allocator: major refactoring & additions
- allow effectiveness matrix to select control allocator method
  (desaturation algorithm)
- add actuator_servos publication
- add support for multiple matrices (for vtol)
- add updateSetpoint callback method to actuator effectiveness to allow it
  to manipulate the actuator setpoint after allocation
- handle motor stopping & reversal
- add control surfaces & tilt servos
- handle standard vtol + tiltrotor
- rename MC rotors params & class to be more generically usable
- fixes and enables ActuatorEffectivenessRotorsTest
2021-12-24 20:06:13 -05:00
Beat Küng
a81f11acdd mc_rate_control: don't publish thrust + torque sp if vtol 2021-12-24 20:06:13 -05:00
Beat Küng
28e995ede2 fw_att_control: publish vehicle_thrust_setpoint & vehicle_torque_setpoint 2021-12-24 20:06:13 -05:00
Beat Küng
4becd6e4c7 rover: publish vehicle_thrust_setpoint & vehicle_torque_setpoint 2021-12-24 20:06:13 -05:00
Beat Küng
5da67e2e28 vtol_att_control: publish vehicle_thrust_setpoint & vehicle_torque_setpoint 2021-12-24 20:06:13 -05:00
Beat Küng
d1abdd0f8d output drivers: add option to generate a separate output range reversing param
Makes it a bit easier to configure. Reversing by setting MIN > MAX is still
supported.
2021-12-24 20:06:13 -05:00
Beat Küng
1901edf13c actuator_motors.msg: add reversible flags & implement in mixer_module 2021-12-24 20:06:13 -05:00
Beat Küng
9c767ff1ee control_allocator: make effective source name a class member 2021-12-24 20:06:13 -05:00
Beat Küng
20d96f3bd9 metadata: fix BOARD_WITH_IO detection
Wasn't correctly updated during a rebase.
2021-12-24 20:06:13 -05:00
Daniel Agar
712353ea56 gyro_calibration: increase required samples (to be more conservative)
- make sure variance is checked across all available sensors
2021-12-24 19:53:44 -05:00
Daniel Agar
3f3836afa8 parameters: simplify import mark_unsaved and don't fail bson decode unnecessarily 2021-12-24 14:32:40 -05:00
Daniel Agar
d1cd4904dc parameters: param_value_is_default avoid locking if value unchanged 2021-12-24 14:32:40 -05:00