2784 Commits

Author SHA1 Message Date
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
Beat Küng
1a743e1117 collision_prevention: switch to events 2021-09-11 14:08:41 -04:00
Beat Küng
5ac43e7236 commander: switch to events 2021-09-11 14:08:41 -04:00
Matthias Grob
58ea97a699 MulticopterPositionControl: add horizontal margin for saturation cases 2021-09-08 19:55:27 +02:00
Daniel Agar
29a91306b5 lib/led: error if dropping ORB_ID(led_control) messages 2021-09-08 10:21:09 -04:00
Beat Küng
291ca246d2 matrix: update submodule (improves matrix inversion) 2021-09-05 23:18:28 -04:00
Daniel Agar
99d7cf4255 parameters: only warn on invalid parameter import 2021-09-01 15:16:00 -04:00
Daniel Agar
bd8937642f lib/sensor_calibration: only warn if external rotation resetting
- this also happens with the actual default parameter value (-1)
2021-09-01 15:16:00 -04:00
Beat Küng
d8214f5e00 component_information: merge extra component_information_header target
With Makefile build, generate_component_general.py was called twice during
build, which did not happen with the ninja build.

This created a race condition with the following error in rare cases:
Traceback (most recent call last):
  File "/__w/PX4-Autopilot/PX4-Autopilot/src/lib/component_information/generate_component_general.py", line 79, in <module>
    save_compressed(filename)
  File "/__w/PX4-Autopilot/PX4-Autopilot/src/lib/component_information/generate_component_general.py", line 33, in save_compressed
    with open(filename, 'r') as content_file:
FileNotFoundError: [Errno 2] No such file or directory: '/__w/PX4-Autopilot/PX4-Autopilot/build/px4_sitl_default/component_general.json'
make[3]: *** [src/lib/component_information/CMakeFiles/component_information_header.dir/build.make:68: component_general.json] Error 1

Merging the targets avoids the duplicate execution.
2021-08-25 10:04:39 -04:00
Beat Küng
af53b60713 Revert "component_information: add debug instrumentation for FileNotFoundError exception"
This reverts commit ca454c93d163a551f7f24baac41a3b29538860ae.
2021-08-25 10:04:39 -04:00
Daniel Agar
61702d0d97 sensors: always start baro/GPS/mag aggregators if SYS_HAS_* set
- add new SYS_HAS_GPS parameter
2021-08-23 10:59:58 -04:00
Daniel Agar
2b1c97eb37
Update world_magnetic_model to latest Sun Aug 22 11:14:24 UTC 2021 2021-08-22 16:28:00 -04:00
Beat Küng
c4b91c8558
calibration params: avoid using NaN as default
- NaN is not supported by JSON, and leads to parsing failure in QGC.
 - fixes https://github.com/PX4/PX4-Autopilot/issues/18095
2021-08-19 11:29:26 -04:00