Commit Graph

1699 Commits

Author SHA1 Message Date
Beat Küng cfad556a16 mixer_multirotor: use reduce_only instead of -1000 for yaw thrust reduction
This is more accurate, because if we use -1000 as lower bound, a very large
yaw command can reduce thrust more than needed.

The difference can be seen in the following example
(with roll/pitch airmode):
p_dot_sp = -1.0 # roll acceleration
q_dot_sp = 0.9 # pitch acceleration
r_dot_sp = -0.9 # yaw acceleration
2018-12-13 09:50:07 +01:00
Beat Küng 418df2516d mixer multirotor: add to CI 2018-12-13 09:50:07 +01:00
Beat Küng e8e3b00a10 refactor mixer: rename delta_outputs to desaturation_vector 2018-12-13 09:50:07 +01:00
Beat Küng 3eefc93e5d mixer_multirotor.py: avoid scientific notation for vector printf
makes it easier to compare.
2018-12-13 09:50:07 +01:00
Beat Küng cf66656258 mixer multirotor: add unit-tests
To run:
cd src/lib/mixer
make tests

This will validate the C++ implementation by taking the python
implementation as ground-truth. It runs through various actuator control
command values for all airmode variations and several mixer types.

The python script also allows to prototype new mixer algorithms.

It is not integrated into the existing build system, because it's easier
to use that way, with less dependencies, and faster testing workflow.
It could however be a bit more integrated.

Reference: https://github.com/Auterion/Flight_Control_Prototyping_Scripts/tree/master/control_allocation
2018-12-13 09:50:07 +01:00
Beat Küng c659d2bcc2 mixer: minor refactoring to reduce header include dependencies
- avoid including <px4_defines.h> from the math headers
- avoid driver include <drivers/drv_mixer.h> from the mixer
2018-12-13 09:50:07 +01:00
Beat Küng 8bcf54688a mixer: complete refactoring & add airmode for yaw
Provides a more generic desaturation algorithm, making it easier to
handle the different mixer strategies.

python reference implementation:
https://github.com/Auterion/Flight_Control_Prototyping_Scripts/tree/master/control_allocation

The behavior for non-airmode and roll/pitch airmode should be the
same as before.

CPU load is slightly higher for the non-airmode case (+0.5%), for airmode
it is the same.
2018-12-13 09:50:07 +01:00
Beat Küng 19ccab28bb mixer: use an enum for airmode 2018-12-13 09:50:07 +01:00
Beat Küng 9406fa5246 refactor mixer.h: use override keyword, fix set_airmode argument type (uint32_t -> int32_t) 2018-12-13 09:50:07 +01:00
bresch 7cc00f41d2 AirModeYaw - Change airmode type from bool to int 2018-12-13 09:50:07 +01:00
Kārlis Seņko c1d50d35d3 Move common shmem parameter declarations to shmem.h. 2018-12-11 09:21:15 -05:00
Kārlis Seņko 859b242cb8 Fix some dynamic linking errors.
_Stof, bsearch, param_find_changed
2018-12-11 09:21:15 -05:00
Simone Guscetti 2c06cb71c8 FlightTask: use convetion for definition of the landing gear default value 2018-12-10 16:17:23 +01:00
Simone Guscetti 9ee3d79a96 FlightTask Manual: Gear react only on switch changes and not states 2018-12-10 16:17:23 +01:00
Simone Guscetti f4fc0cd291 FlightTAsk AutoMapper: Adapt to new message 2018-12-10 16:17:23 +01:00
Simone Guscetti be7416c823 FlightTask Auto: Adapt to new message and rename variable 2018-12-10 16:17:23 +01:00
Simone Guscetti 1412e0494c FlightTask AutoMapper: Use deploy gear information 2018-12-10 16:17:23 +01:00
Simone Guscetti 66f85ff9ae FlightTask Auto: Save deploy gear information 2018-12-10 16:17:23 +01:00
Simone Guscetti aaddb845c4 FlightTask: Add initialisation of the landing gear 2018-12-10 16:17:23 +01:00
Simone Guscetti de185726b3 vehicle constraints: remove landing gear
- landing_gear: refactor state name
- Add the keep state to the landing gear message
- Adapt FlightTaskManual, FlightTaskAutoMapper, mc_pos_control,
to review message definition
2018-12-10 16:17:23 +01:00
Simone Guscetti 6dbed6636d FlightTasks: Add interface for landing gear 2018-12-10 16:17:23 +01:00
Simone Guscetti bf9a18a200 FlightTask: Add interface for landing gear 2018-12-10 16:17:23 +01:00
Daniel Agar d42fe1826a parameters also include all module configs when scoping disabled (#10992)
* fixes parameters on Snapdragon
2018-12-06 14:21:06 -05:00
Daniel Agar 766c33799d move all navio2 drivers to emlid navio2 board directory 2018-12-04 01:06:54 -05:00
Matthias Grob 94d4f0391a FlightTaskAuto: fix newline at end of file 2018-11-30 09:30:00 -05:00
Dennis Mannhart 55947d2782 exponentialFromLimits make small number const 2018-11-30 09:30:00 -05:00
Dennis Mannhart be4900f61d FlightTaskAutoMapper2: remove speed_at_target 2018-11-30 09:30:00 -05:00
Dennis Mannhart b3cde5ac44 FlightTaskAutoLine: replace NAV_ACC_RAD with _target_acceptance_radius 2018-11-30 09:30:00 -05:00
Dennis Mannhart 6110ddc8b1 math Functions constrain X_in of exponentialFromLimits function 2018-11-30 09:30:00 -05:00
Dennis Mannhart c97b2a3071 FlightTaskAuto: move method getVelocityFromAngle to FlightTaskAutoLine 2018-11-30 09:30:00 -05:00
Dennis Mannhart 23afb939f0 math Functions: exponential function with constraints 2018-11-30 09:30:00 -05:00
Dennis Mannhart 80193cd227 math Functions: replace float with T 2018-11-30 09:30:00 -05:00
Dennis Mannhart 370371767f FlightTaskAutoLine: ensure that desired speed along track does not exceed maximum speed at threshold to target 2018-11-29 12:32:56 +01:00
Daniel Agar c3448c19c4 make vcdevtest a generic cdev test 2018-11-26 14:40:14 -08:00
Daniel Agar 3e0a3559a9 cmake use standard mechanisms for settings flags 2018-11-26 14:40:14 -08:00
Daniel Agar ec4c9da253 remove BOARD_NAME from board_config.h and set automatically 2018-11-26 14:40:14 -08:00
Daniel Agar abb3817d31 boards new split VENDOR_MODEL naming convention 2018-11-26 14:40:14 -08:00
Daniel Agar f692ad04d0 boards organization 2018-11-26 14:40:14 -08:00
Daniel Agar 023e267e9b uORB replace ORBMap with linked list 2018-11-23 08:15:48 +01:00
Daniel Agar f1bf7172e7 make vdev file flags and priv consistent with nuttx 2018-11-23 08:15:48 +01:00
PX4 Build Bot 7d54913f80 Update submodule matrix to latest Wed Nov 21 00:38:27 UTC 2018
- matrix in PX4/Firmware (4005de7b9600db8a310d52f9bf7a47a0019868d8): https://github.com/PX4/Matrix/commit/0d3bff5e006cfaa358b51e3a6d11984e3782a90e
    - matrix current upstream: https://github.com/PX4/Matrix/commit/9c0acfba36a928b7b002eea3a9dca54a5a0c1250
    - Changes: https://github.com/PX4/Matrix/compare/0d3bff5e006cfaa358b51e3a6d11984e3782a90e...9c0acfba36a928b7b002eea3a9dca54a5a0c1250

    9c0acfb 2018-11-20 Matthias Grob - Matrix: remove unsafe copyToRaw method
2018-11-20 20:35:15 -05:00
Beat Küng 1e17a86a39 collisionprevention: fix typo in param description & minor code style 2018-11-20 14:14:13 +01:00
baumanta 053494c535 use only one parameter and enable parameter change in flight. clean up code 2018-11-20 14:11:33 +01:00
baumanta efa7e0ba77 clean up 2018-11-20 14:11:33 +01:00
baumanta f5369db245 Put parameters inside library. Get rid of unnecessary activation logic 2018-11-20 14:11:33 +01:00
baumanta dd45fa6541 change feature name from CollisionAvoidance to CollisionPrevention 2018-11-20 14:11:33 +01:00
baumanta f611eddadd unadvertise publishers in the destructor 2018-11-20 14:11:33 +01:00
Matthias Grob 81ec6c5b1e ColisionAvoidance: move instantiation to FlightTask 2018-11-20 14:11:33 +01:00
Matthias Grob 7e276bc163 CollisionAvoidance: move activation logic to library 2018-11-20 14:11:33 +01:00
baumanta 27dc60a419 Improve comments 2018-11-20 14:11:33 +01:00