Commit Graph
345 Commits
Author SHA1 Message Date
Silvan Fuhrer 92b824e218 VTOL attitude controller: run update_vtol_state only if mc or fw att sp changed, such that pusher support in hover works again
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2019-09-10 13:52:33 +02:00
Daniel Agar 6938955b8d vtol_att_control: limit state updates to input availability and always publish both FW/MC actuator controls 2019-09-02 14:13:33 -04:00
Beat Küng a2ebbe9066 pwm_limit: rename to output_limit
As there is nothing pwm-specific about it.
2019-08-31 10:05:00 -04:00
Daniel Agar 78ef8aab2d STACK_MAIN increase default 1024 -> 2048 2019-08-30 19:11:51 -07:00
Beat Küng f8e0441e7b src/platforms/common: move to platforms/common
Script to update include paths:
for i in $(grep -rl 'include <px4_work_queue' src platforms); do sed -i 's/#include <px4_work_queue/#include <px4_platform_common\/px4_work_queue/' $i; done
2019-08-30 07:59:44 +02:00
Daniel Agar 41dee3875e VTOL: only run on actuator publications corresponding to VTOL mode 2019-08-20 13:50:34 -04:00
Daniel Agar b5a01532ae vtol_att_control move to WQ with uORB callback scheduling (#12229)
* add perf counters for cycle time and interval
2019-08-09 12:44:11 -04:00
Daniel Agar e69398c09f introduce uORB::PublicationQueued and transition most orb_advertise_queue usage 2019-08-04 10:08:09 -04:00
RomanBapst afd95b14cf vtol_att_control: use VT_MOT_ID instead of VT_MOT_COUNT
- VT_MOT_COUNT assumed that motors were always the first outputs. This
does not have to be true always. VT_MOT_ID allows to specify precisely how
many motors we have for hovering and to which channel they are connected.

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2019-06-27 20:14:10 +02:00
Daniel Agar 6d9bf18ca6 Revert "VTOL: add parameter to prevent flight if roll direction was not checked"
This reverts commit 5f06c6a1aa.
2019-06-25 09:26:20 +02:00
Matthias Grob 048cca7bc4 vtol_att_control: apply multicopter takeoff hotfix also for vtol (#12250)
Please see reference:
https://github.com/PX4/Firmware/issues/12171
2019-06-12 13:59:29 -04:00
Daniel Agar c0e735c88a vtol_att_control move to new uORB::Subscription 2019-06-05 20:33:20 -04:00
Daniel Agar a10b1afb54 vtol_att_control vtol_type enum -> enum class 2019-05-30 09:04:08 -04:00
Julian Oes 2ac8841f35 vtol/fw/mc: fix VTOL enum shadowing
This changes the enums used for various VTOL states to enum classes
which makes them type-safe and should avoid shadowing.

This change was motivated by a Clang warning about shadowing of the
enum const TRANSITION_TO_FW which was declared twice, once in
vtol_type.h and once in standard.h.

This change only removes the shadowing but presumably these enums could
be cleaned up and consolidated further.
2019-05-29 23:51:10 -04:00
Roman Bapst 816aa0ffb6 VTOL transitions: use FW attitude loop (#11911)
* VTOL trans: changed that now in transition for both MC and FW the corresponding (correct) attitude controller is running
* attitude setpoint for stabilized mode is generated by tailsitter.cpp
* reset yaw setpoint during transition to avoid big yaw errors after
transition back to hover
* VT_TYPE parameter: added "reboot required" metadata
2019-05-08 10:33:13 -04:00
Roman 463b8a7528 vtol_att_control: respect min pwm values
Signed-off-by: Roman <bapstroman@gmail.com>
2019-04-17 09:13:27 +02:00
CarlOlsson 9a2617ad33 vtol_att_control: remove unused subscription variable
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2019-03-28 09:03:53 +01:00
Julien Lecoeur 5f06c6a1aa VTOL: add parameter to prevent flight if roll direction was not checked
Mark V19_VT_ROLLDIR @category system

Throttle down mavlink critical msg

Send 0 actuator_output for safety

VTOL: unset v1.9 roll direction safety check param for builtin airframes
2019-03-15 00:48:23 -04:00
Julien Lecoeur e1caecc99a VTOL att control: fix roll sign 2019-03-15 00:48:23 -04:00
Julien Lecoeur 34717f7005 Merge pull request #11288 from PX4/pr-tiltrotor_noairspeed_transition_check
tiltrotor: fix transition check when airspeed is invalid
2019-02-05 10:09:48 -05:00
Julien Lecoeur 57f9104420 VTOL tiltrotor: respect VT_ELEV_MC_LOCK 2019-02-03 22:33:42 -05:00
Daniel Agar 60f2a92e3d replace <cfloat> with <float.h>
- <cfloat> isn't available in the NuttX c++ library
2019-01-06 19:20:57 -05:00
Julian Oes 5b9dea5604 Replacing usleep with px4_usleep
This is a step towards isolating time from the system.
2018-12-22 10:32:18 +01:00
Matthias Grob c303e36ed0 vtol_att_control: small comment typo 2018-12-03 16:14:32 +01:00
Daniel Agar f9a3235709 remove unused parameter VT_AIRSPD_RULE (#10897)
- fixes #10896
2018-11-22 17:43:33 -05:00
Roman Bapst 90bfdb6f0a VTOL rate control architecture improvements (#10819)
* attitude and rate setpoint message: use 3D array for thrust demand
* FixedWingAttitudeControl: rework airspeed scaling
  * move airspeed and scaling calculation into separate method
  * if vtol in hover and airspeed disabled use minimum airspeed instead of trim airspeed
2018-11-21 20:32:40 -05:00
Roman deed462e62 tiltrotor back-transition improvements:
- do not set zero throttle during the entire back-transition because otherwise
we need to make the back-transition really short
- added ramping up of throttle setpoint during backtransition to avoid
step inputs
- back-transition ends after back-transition time and not when motors are fully
rotated updwards. previously the vehicle would enter hover mode at high speed
which was not handled well by the mc position controller

Signed-off-by: Roman <bapstroman@gmail.com>
2018-11-06 22:10:38 +01:00
Roman 96f3feb088 weathervane: get rid of passive strategy
Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-19 08:27:07 +02:00
Roman e17f0802cc tecs msg: changed flight_path_angle to height rate as clearly we are
looking at height rates

Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-17 10:27:08 -04:00
TSC21 ca42483794 update msgs fields from camelCase to snake_case so rosidl_generate_interfaces() is able to generate code for ROS IDL files 2018-07-30 21:40:28 +02:00
Daniel Agar b1d3bb0403 stop ignoring Wmissing-field-initializers and fix (#9912) 2018-07-22 12:45:52 -04:00
Daniel Agar 9a4de09325 sensors remove airspeed negative check 2018-07-16 01:09:19 -04:00
Daniel Agar 02d4405a62 c++11 default destructors 2018-06-30 19:55:08 -04:00
Daniel Agar e468a9bbcc move systemlib/pwm_limit to standalone lib 2018-06-12 09:06:30 +02:00
Daniel Agar d0bde9ab2a replace geo _wrap_pi with matrix::wrap_pi 2018-06-12 09:00:52 +02:00
Daniel Agar 222a91c6be mathlib delete Matrix, Quaternion, Vector 2018-05-23 17:27:09 -04:00
Daniel Agar 4e32cb17df clang-tidy modernize-use-equals-default 2018-05-18 22:48:55 +02:00
Beat Küng 13ab5ed0d0 px4_main_t: fix method declaration throughout the code base
px4_main_t is defined as:
typedef int (*px4_main_t)(int argc, char *argv[]);
which matches with the definition in NuttX, given to task_create
2018-05-09 07:59:46 +02:00
Daniel Agar 977ab4e7b8 improve end to end control latency measurement (#9388) 2018-05-02 03:03:32 -04:00
Daniel Agar ea3acb7121 cmake remove circular linking and reorganize
- px4_add_module now requires MAIN
 - px4_add_library doesn't automatically link
2018-04-29 21:48:54 -04:00
Roman e7e791fb1a tailsitter: use forward transition throttle for climb-rate controlled mode
- the mc pos controller will decrease throttle during the transition
and thus the vehicle will not pick up enough airspeed to complete the
transition

Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-18 17:23:38 -04:00
Hamish Willee 1a0c312f28 Fix description of VT_FW_ALT_ERR 2018-04-17 08:28:05 +02:00
Roman c206e0f1ac vtol_type.cpp: close pwm output device file descriptor
Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Roman bd434636e9 vtol_type: avoid code duplication
- created one method which has access to the pwm output device

Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Roman 41a9ac0acb vtol_att_control: initialise VT_FW_MOT_OFFID correcly for standard vtol
Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Roman df53dce6e1 vtol_type.h: initialise flag_idle_mc correctly
Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Roman cd49c4bc17 vtol_type: improve comments
Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Roman 79ff1436b8 vtol_att_control: move handling of motor state and idle speed selection
to VtolType class

Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Roman 744f806214 vtol_att_control: merge methods to disable a selection of motors
- moved methods used to modify channel maximum pwm value to VtolType
class so that the can be shared by the differnt vtol types

Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Daniel Agar 00f98c64db VTOL preserve PWM min and max when enabling/disabling actuators 2018-04-12 09:19:47 +02:00