Commit Graph
99 Commits
Author SHA1 Message Date
Paul Riseborough 82780e33b9 mc_pos_control: Add parameter support for terrain hold function
This new mode of altitude control uses terrain following when holding position and normal altitude control when moving.
2018-07-22 17:42:31 +10:00
Dennis Mannhart 18a3c08659 mc_pos_control: idle to armed state delay controlled by parameter MPC_IDLE_TKF 2018-07-20 09:26:18 +02:00
Dennis Mannhart e51e1bbe74 mc_pos_control: replace legacy refactor
Until now we replaced legacy position controller functionality inside
the flight task architecture to split up the huge position control
module into the different tasks and have a modular setup with a clear
setpoint interface. This commit removes all the legacy code and hard
switches to using the flight task architecture for multicopter.

This is done because maintaining and testing everything in parallel is
not sustainable. The architecture is by now tested to cover all basic
legacy functionality and missing corner cases can be fixed a lot easier
with the new architecture.
2018-07-20 09:26:18 +02:00
MaEtUgR 70802ba15a FlightTaskManual: Yaw lock with deadzone and expo
More than a year ago I started the easy to use math::Functions to handle
the always used mathematical SISO functions to be tested and available.

I switched x, y and z stick input to the freesh programmed deadzone and
exponential functions from the library to unify and clarify their use.
I just realized yaw was left over because it lead to a drift problem in
certain new use cases.

Now I'm just adding the yaw stick to the already well working method.
2018-07-20 09:26:18 +02:00
Martina 5cd0da95cc mc_pos_control_params: add type boolean to MPC_OBS_AVOID parameter 2018-07-12 16:36:11 -04:00
Martina 6cceca6fe5 mc_pos_control_params: add parameter to enable and disable obstacle
avoidance
2018-07-12 16:36:11 -04:00
Mohammed Kabir c1169eb38b mc_pos_control : update to use new navigation limits architechture 2018-06-09 13:38:04 +02:00
Mohammed Kabir b3c5e53333 Unify optical flow height limiting 2018-06-09 13:38:04 +02:00
Paul Riseborough 0113212b34 mc_pos_control: Update parameter descriptions 2018-06-09 13:38:04 +02:00
Paul Riseborough 2c325414f9 mc_pos_control: limit maximum height when reliant on optical flow data 2018-06-09 13:38:04 +02:00
Beat Küng 12e967173d MC: set default MPC_THR_MAX & MPC_MANTHR_MAX to 1
With the updated mixer (#9062) it's safe to set maximum thrust to 1 (in
both cases, if MC_AIRMODE is set, or not set).
So I see no reason to limit the maximum thrust.
2018-04-26 14:37:48 +02:00
Matthias Grob dc60bc8766 mc_pos_control: enable flight tasks
instantiate flight tasks and the refactored position controller class
only use the new functionality if a temporary parameter is set for testing
2018-04-05 07:30:12 +02:00
Daniel Agar 3928507f65 mc_pos_control MPC_CRUISE_90 missing max 2018-02-10 20:37:47 -05:00
Paul Riseborough 642a4a5fc7 mc_pos_control: respect estimator max speed and min height limits 2018-01-29 22:30:34 +01:00
DonLakeFlyer 8693c51cba Fix bad meta data 2017-10-21 20:17:41 +02:00
Beat Küng 29e85edac8 Revert "param MPC_MAN_TILT_MAX: decrease maximum from 90 to 85 degrees"
This reverts commit d6df692b7a.

The changes to attitude controller improve this a lot.
2017-10-01 15:36:21 +02:00
Beat Küng d6df692b7a param MPC_MAN_TILT_MAX: decrease maximum from 90 to 85 degrees
At 90 degrees the yaw is extremely unstable (tested with HIL), it
overshoots and only very slowly converges to the correct value.
This behavior is also noticable with lower angles, but not so extreme.
It definitely needs to be looked into further, but for now this makes it
safer.
2017-09-19 11:44:29 +02:00
Dennis Mannhart 82f25453a7 mc_pos_control: smooth position control from stick input 2017-09-18 13:30:16 +02:00
Dennis Mannhart bf5e81a34f mc_pos_control param: acceleration parameters adjustment and addition 2017-09-11 02:08:22 -07:00
Dennis Mannhart 10a9c410e3 mc_pos_control: parameter for maximum horizontal velocity 2017-09-11 02:08:22 -07:00
Dennis Mannhart 947d63fb11 mc_pos_control auto: replace min_cruise_speed with cruise_speed_90; take care of case when cruise_speed_90 is exactly in the middle of max and min 2017-09-11 02:08:22 -07:00
Dennis Mannhart 08d15f5402 mc_pos_control: remove target threshold from auto 2017-09-11 02:08:22 -07:00
Dennis Mannhart 0a37d8dc42 mc_pos_control: clarify speed params 2017-09-11 02:08:22 -07:00
Dennis Mannhart c4c18caed4 mc_pos_control auto: set speed at 90degrees to 1 2017-09-11 02:08:22 -07:00
Dennis Mannhart a7be9854d9 mc_pos_control: remove scaling in auto and remove limit_velocity function; update auto logic 2017-09-11 02:08:22 -07:00
Lorenz Meier 8878be5741 MC land speed: Ensure that the difference between land speed and land detection is high enough 2017-07-29 22:25:09 +02:00
Daniel Agar d641d776f7 mc_pos_control delete unused velocity feed forwards 2017-06-26 11:31:25 -04:00
Matthias Grob 9a162a24bb mc_pos_control: improved smooth takeoff and used it for manual takeoff as well
adresses:
there were setpoint twitches at the beginning and end of my smooth takeoff routine
it was to slow and not configurable
it was only available for automatic takeoff
2017-04-27 14:05:20 +02:00
Matthias Grob 709bd8cb28 mc_pos_control: combine separate pitch and roll maximum tilt angles into one
because there is no sense to have different angle scalings into different directions
it would lead to unintuitive piloting experience
acceleration is directly coupled to the tilt angle regardless of possible assymetric multicopter vehicles
2017-04-20 13:20:01 +02:00
Dennis Mannhart 8687d414bf mc_pos_control: new variable that defines speed in manual controlled mode 2017-04-10 21:34:00 +02:00
Matthias Grob 72fb7a5062 mc_pos_control: added gradual landing speed logic
depending on two altitudes that can get set as parameter
the logic linearly slows down from higher land altitude 1 to slower land altitude 2
2017-03-22 15:21:34 +01:00
Dennis Mannhart 4c4f214ec7 mc_pos_control: target_threshold value change
mc_pos_control: reorder if statement

mc_pos_control:  add get function for cruising speed
2017-03-22 15:21:34 +01:00
Dennis Mannhart 0d6f994145 mc_pos_control: slow down in auto when close to target
mc_pos_control: move limit vel xy after velocity controller
2017-03-22 15:21:34 +01:00
Matthias Grob 5e2f18ebaa mc_pos_control: added separate velocity control setpoint slewrate for deceleration
to improve the smooth user experience while accelerating
but not have any delay when braking
2017-03-22 15:21:34 +01:00
Matthias Grob 713ba45876 mcpos_control: remove duplicate deadzone parameters 2017-03-22 15:21:34 +01:00
Matthias Grob eec757915c mc_pos_control: switch manual vertical/z velocity curve to expo with deadzone 2017-03-22 15:21:34 +01:00
Dennis Mannhart c9643cb075 mc_pos_control: delete leftover from transitional changes for vel_max_z (#6822) 2017-03-20 10:06:29 +01:00
Matthias Grob ca9393eb97 mc_pos_control: fix parameter description of expo for QGC parsing 2017-03-16 11:42:27 +01:00
Dennis Mannhart ca84cc7439 mc_pos_control: delete max altitude, which is not set by landdetector 2017-02-27 22:54:19 +01:00
Dennis Mannhart c8690fd072 mc_pos_control: limit altitude
mc_pos_control: delete spaces

mc_pos_control: cleanup and threshold for velocity control to altitude control when close to max altitude
2017-02-27 22:54:19 +01:00
Dennis Mannhart cbc54c9917 mc_pos_control: only swithc to velocity control from hold_engaged when user moves stick 2017-02-22 20:48:40 +01:00
Dennis Mannhart 20604989bb mc_pos_control: have same acceleration max for xy and z 2017-02-21 21:50:00 +01:00
Matthias Grob c2be4b2b29 mc_pos_control: added exponential curve to manual x,y velocity setpoint
controlled by parameter MPC_XY_MAN_EXPO that is disabled (0) by default
2017-02-02 21:24:05 +01:00
Dennis Mannhart f718b3a97a mc_pos_control: limit slewrate different in up and down direction 2017-02-02 09:04:59 +01:00
Lorenz Meier c76c8fda04 MC pos control: Drop default position controller gain 2016-08-06 11:50:08 +02:00
Lorenz Meier a38263b8e7 Enforce enough braking power when users set higher horizontal speeds 2016-07-31 17:43:15 +02:00
Daniel Agar 331456f831 mc_pos_control_params.c param metadata 2016-05-11 12:29:54 -04:00
Lorenz Meier c31c29097d Rename params, add transitional support 2016-05-10 09:27:00 +02:00
Adyasha Dash 468b0b25de added different parameters for ascent and descent rates 2016-05-10 09:18:40 +02:00
Lorenz Meier 45a5f2aaa4 MC vel control: Better defaults, better min and max gains 2016-05-04 22:49:36 +02:00