Auto-landing with reverse throttle
Auto-landings are able to utilize reverse throttle capabilities in order to shorten the distance of landing approaches. Doing this requires that you have an ESC capable of spinning the motor in reverse. The reverse throttle capabilities will only be used during an automatic landing. It is best to go over the landing setup above for normal landings before configuring your plane for reverse throttle landings.
In general, when you are performing an automatic landing it will behave in the following way:
- First you will set up an approach pattern for your plane similar to how you would for normal automatic landings. However, rather than having a shallow gradient such as 15% from your last approach point to your NAV_LAND point, you can have something much steeper, such as 45%.
- When the plane reaches its last approach point, it will dive steeply and turn on reverse throttle to reduce speed and maintain its glide slope. Adding more reverse throttle if it is above its glide slope and using less reverse throttle if it is below its glide slope.
- There is a configurable pre-flare altitude at which the plane will set the throttle to a configurable value (usually a small amount of reverse) in preparation for flaring.
- When the plane reaches its flare altitude it will lock its heading, limit its pitch and roll, and set the throttle to a specific value (usually off) while it gets ready to touch down.
- If the plane is still in the air during the flare and flies past its NAV_LAND point it will slowly turn on reverse throttle to lose speed, but only if it is allowed to in the parameters.
The key parameters that control the reverse throttle behavior are:
LAND_FLARE_ALT: Land flare altitude. Reaching this altitude will trigger the flare stage of the landing.
LAND_FLARE_SEC: Land flare seconds. Based on your vertical speed and distance from the ground the autopilot will determine how long until you hit the ground. If the time until you hit the ground is less than or equal to this value then it will trigger the flare.
LAND_FLARE_THR: Land flare throttle. This is the percent of throttle to have during the flare. Usually set to 0%. However if you would like forward throttle use a percentage from 1 to 100% and if you would like reverse throttle to slow down during the flare then use a percentage of -1 to -100%.
LAND_PFLARE_ALT: Land pre-flare altitude. This is the altitude that the “pre-flare” stage is triggered. This stage isn’t absolutely necessary but it helps to have a more consistent behavior before the flare stage for more consistent landings. This is usually a few meters above the flare altitude. The pre flare stage will use the same pitch limits as the approach, not the flare.
LAND_PFLARE_THR: Land pre-flare throttle. Similar to land flare throttle, except this is the throttle amount you want to have during your pre-flare stage. Again a value from -100% to 100% is valid, but usually a value of about -25% is used.
LAND_A_TAR_SPD: Land approach target speed. A rough target groundspeed the autopilot will try to reach during approach. The code will add more or less reverse throttle based on if you are travelling above or below this target groundspeed.
LAND_A_SPD_CONS: Land approach speed constant. This determines how much reverse throttle to add or subtract when you are above or below your target speed. (PWM_Offset = constant * speed_error).
LAND_REV_ON_GND: Land reverse on ground. Enables the motor to spin while on the ground. Useful for slowing planes down during touchdown, but you should absolutely set this to 0 if your prop cannot spin while on the ground.
LAND_REV_PT_DN: Land minimum reverse throttle point. It is at this amount of altitude error from the land slope that we use 0% reverse throttle (this happens when we are below our land slope).
LAND_REV_PT_UP: Land maximum reverse throttle point. It is at this amount of altitude error from the land slope that we use 100% reverse throttle (this happens when we are above our land slope).
LAND_SLOPE: Land glide slope. User defined landing approach glide slope (vertical distance/horizontal distance). This is the target slope that the plane will try to stay on during the landing approach.
TECS_A_PIT_MAX: Maximum approach pitch. The maximum allowable pitch during approach.
TECS_A_PIT_MIN: Minimum approach pitch. The minimum allowable pitch during approach.
LAND_THR_MIN_REV: Minimum reverse throttle PWM. This is the PWM value from the ESC that will give you 100% reverse throttle.
- Landing Approach: This is the “dive” stage of the landing. This will occur just after you hit the point before your NAV_LAND waypoint and will continue until you hit your flare point.
- Landing Flare: This point of the landing will occur based on your LAND_FLARE_ALT and LAND_FLARE_SEC parameters.
Each ESC will be different and you should consult the user manual for exact specifications and instructions. But for an automatic landing using reverse throttle the most important thing to note will be key PWM values of the ESC, as this will get you started on setting up some of the parameters.
- LAND_THR_MIN_REV will start by being equal to the absolute minimum PWM value of your ESC, which should be associated with 100% reverse throttle.
- To start it is also a good idea to take note of the PWM value that will give you 0% forward or reverse throttle. This value is what you should set RC3_MIN to so that reverse throttle values are never sent over the radio except in Manual mode.
Configuring other parameters
Once your ESC settings are determined you can begin tuning the rest of your parameters. Each frame design and each specific plane will require specific tuning in order to ensure smooth and short landings. The following are good steps to follow before the initial flight.
- Set TECS_A_PIT_MIN. This parameter will determine the maximum amount of downward pitch allowed during the landing approach. This should be set to somewhere around -35 degrees, but may be increased or decreased based on your plane’s design and how steep of a gradient you are trying to land in.
- Set TECS_A_PIT_MAX. This parameter will determine the maximum amount of upward pitch allowed during the landing approach. This limit will most likely not even take effect during the landing approach as you should be nosed down the entire time. However if you notice your plane nosing up during your dive then you can decrease this parameter or even make it negative. To start it is safe to set this to around 10 degrees.
- Set LAND_SLOPE. This is the gradient that the plane will target during approach. Note that this is not the overall gradient from your approach point to your landing point, but simply the target gradient for only the “dive” portion of the landing. Set this to about 0.15 higher than your overall target gradient. For example if your NAV_LAND point is a 45% gradient from the previous point then set this value to 0.7.
- Set LAND_REV_PT_DN and LAND_REV_PT_UP. LAND_REV_PT_UP corresponds to how many meters above the target land slope the plane will be before using 100% reverse throttle and LAND_REV_PT_DN corresponds to how many meters below the land slope the plane will be before using 50% forward throttle. Changing these values tends to change how quickly the plane reacts to being above or below its glide slope. To start these can be set to LAND_REV_PT_DN at 5 meters and LAND_REV_PT_UP at 2 meters.
- Set LAND_A_TAR_SPD and LAND_A_SPD_CONST. While not absolutely necessary, these parameters can help keep the plane from stalling or flying too fast by adding more or less reverse throttle based on ground speed. LAND_A_TAR_SPD will obviously change drastically from plane to plane, but a value a few m/s above stall speed at least is recommended. LAND_A_SPD_CONST determines how aggressive the plane will change throttle to match the target ground speed. A higher LAND_A_SPD_CONST will be more aggressive. A value of about 25 is a good starting point.
- Set LAND_PFLARE_ALT and LAND_PFLARE_THR. Again, not absolutely necessary, but setting the pre-flare altitude and throttle values can create a more consistent behavior just before the flare and can lead to more consistent landings. LAND_PFLARE_ALT should first be set for a few meters above LAND_FLARE_ALT. LAND_FLARE_THR will change significantly based on the individual plane, but it is often best to keep this about 100 PWMs lower than the 0% value on your ESC. So if your ESC gives 0% throttle at 1300 PWM, then set this value to around 1200 to apply a small amount of reverse throttle.
- LAND_FLARE_ALT and/or LAND_FLARE_SEC should already be set from the instructions under normal landing setup, however they may need to be altered for reverse throttle landings. In most cases, especially when diving with a steeper approach, your LAND_FLARE_ALT and/or LAND_FLARE_SEC will need to be raised to give the plane adequate time to transition into its flare from its steep dive. It is safe to start with a LAND_FLARE_ALT of 12 meters and LAND_FLARE_SEC of 3.5 seconds and bring these values down as you test the flight behavior.
- Set LAND_REV_ON_GND based on your plane’s frame style. If your frame is a flying wing type, or any type where the propeller is touching the ground while the plane is on the ground then this parameter must be set to 0 to avoid damaging your prop during the flare. If your prop does not touch the ground when your plane is on the ground then this may be set to 1. This will enable the autopilot to gradually add more reverse throttle during the flare to slow down your plane if you are flying past your NAV_LAND point.
- Set LAND_THR_PWM initially based on your ESC’s 0% throttle value. So if your ESC outputs 0% throttle at 1300 PWM then set this parameter to 1300. If you feel you need more reverse throttle during the flare and your prop is able to spin while your plane is on the ground then you can decrease this value to add more reverse throttle as you touch down.
- Finally, you will need to set your flare pitch limits with LAND_PITCH_CD and TECS_LAND_PMAX. These value will be different based on your frame and how you want to land, but it is generally advisable to have a LAND_PITCH_CD higher than -5 degrees and a TECS_LAND_PMAX lower than 5 degrees.
While testing these landings there are a few common problems that people experience while they are trying to set these parameters just right for their plane and their landing needs. Here are the most common problems and fixes.
Plane stalled during approach
- Increase LAND_GND_SPD_CONST and/or LAND_TAR_GND_SPD so that the plane uses less reverse throttle so that it can maintain its speed.
- Increase LAND_THR_MIN_REV to allow less reverse throttle during landing approach. This will prevent you from losing so much speed.
- Decrease TECS_A_PIT_MIN so that the plane can nose down further to maintain speed.
- Decrease LAND_THR_MIN_REV to allow more reverse throttle do the plane can slow down more.
- Increase LAND_SLOPE so that the plane has a steeper dive.
- Decrease TECS_A_PIT_MIN so that the plane can nose down more.
Sluggish throttle during approach
- Try decreasing LAND_REV_PT_UP and LAND_REV_PT_DN, however this should only be done if the throttle is noticeably slow to respond.