- May 22, 2019
-
-
Matthias Grob authored
This reverts commit 0c81a19decde6ddfe4ce87c34c762ea15fd3ab09.
-
Matthias Grob authored
But fix the two crucial problems: - When to begin the ramp? There's a calculation now for the velocity ramp initial value such that the resulting thrust is zero at the beginning. - When to end the ramp? The ramp is applied to the upwards velocity constraint and it just ramps from the initial value to the velocity constraint which is applied during flight. Slower/going down is always possible.
-
Matthias Grob authored
-
Matthias Grob authored
Without always updating the takeoff state it will not get skipped when the takeoff happened manually and when you switch from manual to position mode the drone goes to idle and falls.
-
Matthias Grob authored
There are two local_position_setpoint in the position controller. One describing the setpoint the task gives to the position controller and a second one with the output of the position controller. I corrected the wrong one during takeoff because the new takeoff thrust ramp runs after the controller and not before.
-
Matthias Grob authored
In a deterministic way with clear states to go through.
-
Matthias Grob authored
The velocity ramp had problems with: - different vehicle tunings resulted in the start value of the resulting thrust ramp staring either higher and lower than zero thrust. lower -> delay of beginning higher -> small jump at beginning - when a task set position and velocity at the same time during takeoff (which AutoSmoothVel does) it resulted in a velocity setpoint jump at the end of the ramp because the additional velocity setpoint correction from the position controller was not considered. The thrust ramp should now be very deterministic: - always start at zero - always end at the curreant thrust setpoint output of the complete position controller
-
Matthias Grob authored
The initial idea of the flight task architecture was that a task can freely set it's setpoints and doesn't have to worry about takeoff and landing. It would just takeoff when it's landed and there's a setpoint to go up and land when it puts a setpoint that pushes into the ground. With the takeoff logic there are some significant interface problems depending on the way a task is implemented: From the setpoint is not high enough to trigger to an unexpected takeoff because of some estimator fluctuation affecting the setpoint. It's easiest to solve this by allowing the task to determine when a takeoff is triggered. If no condition is implemented by default a task is not allowing a takeoff and cannot be used to get the vehicle off the ground.
-
Matthias Grob authored
After boot the user is in manual mode and if he has an RC but doesn't switch out the thrust gets set to the throttle stick position. When he then starts a takeoff from tablet the thrust is still high while arming and the land detector immediately sees a takeoff skiping smooth takeoff from the position controller.
-
Matthias Grob authored
according to @dagar's review comment.
-
Matthias Grob authored
-
Matthias Grob authored
- start from a velocity setpoint pushing into the ground to ramp from idle thrust up. - start with a bit higher velocity setpoint threshold to make sure the vehicle has a chance to really get off the ground. - calculate ramp slope from initialization setpoint to the desired one instead from zero to the desired. this ramps up quicker when you demand a very small upwards velocity like the AutoLineSmoothVel and ManualPositionSmoothVel tasks do at the beginning. - don't stay in the takeoff ramp depending on the land detector, this is unnecessary.
-
Matthias Grob authored
The comments and variable names were partly misleading. I grouped all members, hopefully gave them more understandable names and adjusted the comments.
-
Matthias Grob authored
There were two rather confusing function calls one to check if smooth takeoff needs to be ran and one that updates it. I combined them and documented the interface correctly making the parameters non-reference const floats.
-
- May 17, 2019
-
-
Mathieu Bresciani authored
Co-Authored-By:
Matthias Grob <maetugr@gmail.com>
-
bresch authored
Add jerk parameter for auto mode MPC_JERK_AUTO. Specify when a parameter is only used in a certain manual or auto mode
-
- May 16, 2019
-
-
Julian Oes authored
For now we need to ignore this warning which GCC 9 shows for the MAVLink headers.
-
- May 11, 2019
-
-
Oleg Kalachev authored
-
- May 09, 2019
-
-
Matthias Grob authored
-
Matthias Grob authored
-
Matthias Grob authored
-
Matthias Grob authored
-
- May 08, 2019
-
-
Roman Bapst authored
* 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
-
Matthias Grob authored
To be able to still infer the direction of the thrust vector we limit it to a minimal length even if MPC_THR_MIN is set to zero. Note: This is a hotfix for certain specific applications. The direction of the thrust vector in this corner case is very likely to get into the tilt limit which is generally undesired.
-
- May 07, 2019
-
-
bresch authored
-
bresch authored
A low gyro cutoff is needed for most medium/large size drones as the structural natural and blade-pass frequencies are low. A higher value is still desirable for small platforms surch as racers or well isolated autopilots and should be tuned by the user. Specific values for config files are untouched. The cutoff filter for the D term is disabled here as the required cutoff frequency for the default D term of the rate controller is higher than the gyro cutoff. In that case, enabling the D term cutoff would just add some undesired phase lag to the derivative.
-
- May 06, 2019
-
-
Daniel Agar authored
-
- May 05, 2019
-
-
Oleg Kalachev authored
-
- May 02, 2019
-
-
Beat Küng authored
This fixes a potential dead-lock when 'uorb status' was used via MAVLink shell. The dead-lock chain is: DeviceMaster::lock() -> printf -> output to a pipe, which blocks until a reader reads the data. In that case it's mavlink. If mavlink makes a call that requires DeviceMaster::lock() (such as orb_exists), it dead-locks. This patch moves all printf's out of the locked state.
-
- May 01, 2019
-
-
Matthias Grob authored
-
- Apr 30, 2019
-
-
Matthias Grob authored
-
Roman authored
- when either terrain data was temporarily not valid (flying at high distance to the ground) or the vehicle was not close to the ground (_param_ekf2_gnd_max_hgt) the ekf switched to using the land detector ground effect flag. Signed-off-by:
Roman <bapstroman@gmail.com>
-
Roman authored
- takeoff help is used for fixed wings, it increases the altitude setpoint after a launch. A vtol does not need this as it's already sufficiently high up in the air. Signed-off-by:
Roman <bapstroman@gmail.com>
-
- Apr 29, 2019
-
-
Matthias Grob authored
-
Daniel Agar authored
-
Daniel Agar authored
This reverts commit 4a71984f.
-
Julian Oes authored
The noise for airspeed is now applied on the Gazebo side and we can remove this hack.
-
- Apr 26, 2019
-
-
Matthias Grob authored
the condition to enter the rc mode switch evaluation was neglecting the first connection of an RC when "no RC switch changed". this means depending on the actual initialization values of _last_sp_man and the desired mode preselected on the RC while connecting it would not get evaluated.
-
Matthias Grob authored
pure refactor using De Morgan's law to make the condition more intuitive since you think about when should I enter and not when should I skip
-