Commit Graph

21328 Commits

Author SHA1 Message Date
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 447ed18ab4 commander: use C API for MC_AIRMODE & RC_MAP_ARM_SW to remove multirotor modules dependency 2018-12-13 09:50:07 +01:00
Beat Küng c665c34d2a MC stabilized: allow yaw control at 0 throttle if yaw-airmode is selected 2018-12-13 09:50:07 +01:00
Beat Küng 24dc316973 commander: enforce yaw-airmode to have an arming switch mapped
Yaw airmode w/o arming switch is most likely not what you want and will
lead to surprising results.
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
Daniel Agar f851978101 commander run preflight immediately (#11018)
- partially addresses #11017
2018-12-12 09:24:50 -05: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
Kārlis Seņko 950ab879ff Make name mangling type consistent. 2018-12-11 09:21:15 -05:00
Hamish Willee 11364c0e01 Improve forcefail/terminatefail docs 2018-12-10 15:30:53 -08: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 2f7c8569cb mc_pos_ctrl: Remove gear intialisation
- Handled in the flight task
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
Simone Guscetti 6938b7fe02 Rename the invered state and make namespace more clear
- Addressing review comments
2018-12-10 16:17:23 +01:00
Simone Guscetti aac9221d95 msg landing_gear: change type to int8 2018-12-10 16:17:23 +01:00
Simone Guscetti ee41e3181f mc_pos_ctrl: Replace landing gear logic
- It takes the input from the constrains from the active flight task
2018-12-10 16:17:23 +01:00
Simone Guscetti 163d201c28 remove the landing gear from the attitude setpoint
- An new message is created just for the landing gear
- The old logic is repalaced by publishing this new topic
2018-12-10 16:17:23 +01:00
Matthias Grob e979d24fff commander: fix orbit failsafes for data link & rc loss 2018-12-08 22:34:57 +01:00
Matthias Grob 5b5d5ac6d5 mc_pos_control: let orbit task do its work 2018-12-08 22:34:57 +01:00
Matthias Grob 34fb52d8bd commander: add orbit state handling 2018-12-08 22:34:57 +01:00
Jake Dahl 21bcc0d2f4 mav_cmd_do_reposition now obeys the ground speed argument 2018-12-07 21:40:16 -05:00
Beat Küng dc49e259b3 logger: add separate profile for vision/avoidance
Keeps things more modular.
2018-12-07 11:51:59 +01:00
Beat Küng fced1ce33b logger: remove some unused logged topics in SITL 2018-12-07 11:51:59 +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
dakejahl 311c0941c9 Teal One airframe improvements for full support (#10860)
* added a parameter for enabled the smart battery
* start tel1 and tel2 at 921600 and max rate
* turned up the max tx rate on mavlink streams for telem1 and telem2
* turned off mavlink stream for tel1 in 4250_teal. This is connected to TX1 FTDI UART and has issues.
* moved check to 4250 board ID to start mpu9250s for Teal airframe into fmuv4 rc.board.
2018-12-05 09:49:58 -05:00
flochir ab9e9793a0 ICM20948 integration into MPU9250 driver (#10116)
* Integrated preliminary ICM20948 support into MPU9250 driver.
Fixed temperature conversion for MPU9250/ICM20948.
* Included missing check for PX4_I2C_OBDEV_MPU9250 in main.cpp.
* Added explicit bus for internal MPU9250 on Pixhawk 2.1 to avoid implicit start
of an externally attached device with wrong orientation.
2018-12-04 22:15:02 -05:00
PX4 Build Bot 5c9aa1ca88 Update submodule micro-CDR to latest Wed Dec 5 00:38:19 UTC 2018
- micro-CDR in PX4/Firmware (3888bb163eac5c0adfc18e865ef3fb70d0532de9): https://github.com/eProsima/micro-CDR/commit/d23eda8772ecf846531ee470a81fb1be37802e7b
    - micro-CDR current upstream: https://github.com/eProsima/micro-CDR/commit/8b3546e8848e4c07c16ec55730d3ad1aa94396ab
    - Changes: https://github.com/eProsima/micro-CDR/compare/d23eda8772ecf846531ee470a81fb1be37802e7b...8b3546e8848e4c07c16ec55730d3ad1aa94396ab
2018-12-04 21:41:09 -05:00
Matthias Grob e69049ec41 mc_pos_control: use time literals everywhere, @bkueng review input 2018-12-04 11:54:11 +01:00
Matthias Grob 096d7da4b9 mc_pos_control: fix doxygen comments, @bkueng review input 2018-12-04 11:54:11 +01:00
Matthias Grob 35a486bf6f mc_pos_control: addressed @dagar's review comments 2018-12-04 11:54:11 +01:00
Matthias Grob 513c973f01 mc_pos_control: assign events field outside of initializer
Necessary because NuttX defines pollfd differend from
the POSIX standard. The difference of field order makes
use of C++ designated initializers to compile for both
platforms impossible.
2018-12-04 11:54:11 +01:00
Matthias Grob 09e563addd mc_pos_control: fix naming of non-member time stamps 2018-12-04 11:54:11 +01:00
Matthias Grob 0ba3896068 mc_pos_control: refactor dt time difference calculation 2018-12-04 11:54:11 +01:00
Matthias Grob a310980ad2 mc_pos_control: refactor loop polling 2018-12-04 11:54:11 +01:00
Matthias Grob 013a2655e2 mc_pos_control: fix comments and spacing inconsistencies 2018-12-04 11:54:11 +01:00
Matthias Grob 8cb446c233 mc_pos_control: remove useless landed state copy
If the landed state was set before the position controller starts it
would get updated with the first poll_subscriptions() anyways. But it's
not on all posix and nuttx platforms I tested and the deleted statement
just copies the zero message into the struct which is already zero.
2018-12-04 11:54:11 +01:00