Defines don't work this way...
Was only used in gps_ubx_ucenter, replace it with GPS_UBX_UCENTER_SLOW_NAV_SOL flag
to set a lower NAV_SOL message rate (currently not set anywhere).
So you get full NAV_SOL messages rate for fixedwings as well
(just like before since the test for rotorcraft firmware was non-functional and always true).
This solves the case where a process as only one mode by removing the
corresponding setting (since there is nothing to change) and by removing
the complete telemetry page if no more process.
The case without modes in a process fails at code generation since at
least one mode is required.
fix#553
* master: (125 commits)
[abi] define ABI x_SENDER_IDs in abi_sender_ids.h
[sim] flight gear viz: daytime on all spots on the planet, not only France
[abi] split abi messages from telemetry messages
[fix] fix typo in actuators asctec v2
[baro] fix baro scaling for booz and navgo
[boards] sim pc: only USE_BARO_BOARD for nps
[conf] move some airframes to obsolete
[modules] add baro_sim
[sim] remove unused sim_baro
[apogee] fix baro mpl3115 init on apogee
Update README for recommended gcc-arm-embedded toolchain
[boards] stm32f4_discovery typo in description
[boards] roughly correct BOOZ_BARO_SENS
[modules] baro_ets: BARO_ETS_SCALE
[modules] baro modules for real sensors only for ap target, not sim
[conf] remove baro_board.xml module file
[boards] update stm32f4_discovery
[lib/ocaml] update leap_seconds
[mission] fix segmentation fault and add generic mission FP
[generator] generate arrays of the settings and fp blocks names
...
Conflicts:
sw/airborne/firmwares/fixedwing/ap_downlink.h
sw/airborne/firmwares/fixedwing/main_ap.c
sw/airborne/firmwares/rotorcraft/telemetry.h
sw/airborne/modules/sensors/baro_MS5534A.c
Rotorcraft guidance fixes/improvements
So now horizontal guidance returns commands in north/east earth frame and doesn't already rotate it to body frame.
This allows for better handling of them in different controllers.
New and properly working transformations from earth commands to quaternions added.
No proper fixedpoint implementation so far... no change there compared to current master though.
Should still be done for efficiency.
Tested the int_quat stablizitation with this in simulation and it works perfectly as expected.
IMPORTANT: This does currently not have the feature to "add" roll/pitch setpoints via RC in nav/hover anymore.
Is that really used, instead of switching to manual if needed?
Instead you can give velocity commands in hover mode via RC.
Includes max bank improvements proposed in #546
Split PD and I-gain with separate max bank
no wind: integrator (trim attitude) = 0, PD maxbank = -20 to 20 extra: total: -20 to 20
huge wind: integrator (trim attitude) = 20, PD maxbank = -20 to 20 extra: total: 0 to 40
Put gain before integrator to get better insight in the saturation values
Reduce integration overshoots while increasing integration speed by adding the speed error as well
no speed error: integrate as before
counterproductive speed error, integrate faster
if the position error is already decreasing fast, no integrator is needed or it will overshoot
closes#539
Baro event handling using ABI interface
Main benefits:
less crappy handler functions in main.c files
possibility to use multiple sources of sensors (integrated to the board or not)
the filters don't need to know who is sending the raw values (not completely true with the old alt_float filter yet)
the pressure are now standardized in Pascal and the standard atmosphere model is used
The INS_BARO_SENS is hence not needed anymore.
onboard baros are automatically available in fixedwing firmware as well (use same code as rotorcraft now)
disable onboard baro with <configure name="USE_BARO_BOARD" value="FALSE"/>
Some stuff to do before using: find the default conversion factor to convert ADC values to Pascal
(mostly older boards/baro, recent digital sensors can output pressure in Pascal already)
Also all baro_board implementations use the same BARO_BOARD_SENDER_ID,
since there can only be one baro_board at the same time and this provides a good default for INS_BARO_ID.
So if you want to use an onboard baro the INS_BARO_ID is already ok (also if you have additional baro modules).
To use a baro module for INS: <define name="INS_BARO_ID" value="BARO_x_SENDER_ID"/>
closes#525
ahrs_int_cmpl_quat frequency scaling
Proper scaling of corrections.
Using AHRS_PROPAGATE_FREQUENCY, AHRS_CORRECT_FREQUENCY and AHRS_MAG_CORRECT_FREQUENCY.
Hence this will also give you correct gains for 100Hz fixedwings, see #240.
Allow tuning of the accel and mag correction natural freqency and damping.
Tunable gravity_heuristic_factor (set to zero to turn it off and replaces the boolean AHRS_GRAVITY_UPDATE_NORM_HEURISTIC)
If you have high vibrations, reduce this factor or completely turn it off...
Same BARO_BOARD_SENDER_ID for all baro_board implementations.
Since there can only be one baro_board at the same time and
this provides a good default for INS_BARO_ID.
The abi_sender_ids.h can be considered a temporary solution,
we might come up with a different scheme later...