iNavFlight / inav

INAV: Navigation-enabled flight control software
https://inavflight.github.io
GNU General Public License v3.0
3.17k stars 1.48k forks source link

iNav 2.6 RTH Loiter Around Home failure, three planes #6513

Closed NGFPV closed 2 years ago

NGFPV commented 3 years ago

Please double-check that nobody reported the issue before by using search in this bug tracker.

PLEASE DELETE THE TEXT ABOVE AFTER READING AND UNDERSTANDING IT


Current Behavior

I recently started switching planes from iNav 2.5 to iNav 2.6, and it seems my 2.6 planes want to lawn dart rather than loiter around home after RTH. I have another switch set for NavAltHold + NavPosHold, and when I trip that, my Zohd Drift circles happily in place. But when I trip RTH, if navigates home with the throttle at about 1.7 amps, switches to Loitering Around Home, cuts the throttle to 1 amp (not enough to maintain altitude when I'm flying in Acro mode), and the plane spirals rapidly toward the ground. I have confirmed this behavior in two copies of the Zohd Drift and also with my Zohd Dart 250. In Advanced Tuning, I have set Land After RTH to Only on Failsafe.

Is this a bug in iNav 2.6, or is there are setting I'm missing somewhere?

Here is a video to demonstrate the behavior. Loitering At Home at 00:21, position and altitude Hold at 00:52, Loitering Around Home again at 1:40. As you can see, it would have driven straight into the ground if I hadn't canceled RTH and rescued it. https://youtu.be/mFzaP-zWWyI

Steps to Reproduce

Trip RTH Mode, allow plane to loiter around Home

Expected behavior

Plane should maintain altitude and circle around the Home point. Instead, it circles but cuts the throttle too low to maintain altitude, then spirals rapidly towards the ground.

Suggested solution(s)

Loitering Around Home, iNav should adjust throttle and controls to maintain altitude, as it does with AltHold Mode. This used to work in iNav 2.5.

Additional context

Here is my DIFF file:

diff

version

INAV/MATEKF411SE 2.6.0 Dec 4 2020 / 12:09:36 (cada68e4)

GCC-9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599]

start the command batch

batch start

resources

mixer

mmix reset

mmix 0 1.000 0.000 0.000 0.000

servo mix

smix reset

smix 0 0 1 100 0 -1 smix 1 1 0 100 0 -1 smix 2 2 0 100 0 -1 smix 3 1 16 -60 0 -1 smix 4 2 16 60 0 -1

servo

servo 0 1000 2100 1500 55 servo 1 1000 2000 1500 -70 servo 2 1000 2000 1500 -70

safehome

logic

gvar

feature

feature MOTOR_STOP feature GPS feature PWM_OUTPUT_ENABLE

beeper

map

serial

serial 0 2 115200 115200 0 115200 serial 30 2048 115200 115200 0 115200

led

color

mode_color

aux

aux 0 0 0 1900 2100 aux 1 1 1 1875 2100 aux 2 2 1 1625 1775 aux 3 3 3 1300 1700 aux 4 11 3 1300 1700 aux 5 10 3 1900 2075 aux 6 12 1 1225 1375 aux 7 36 2 1900 2100 aux 8 37 4 1875 2100 aux 9 42 6 1400 1600 aux 10 43 6 1925 2100

adjrange

rxrange

temp_sensor

wp

wp 0 invalid

osd_layout

osd_layout 0 0 25 3 V osd_layout 0 1 1 10 V osd_layout 0 6 22 2 V osd_layout 0 7 13 1 V osd_layout 0 8 9 11 V osd_layout 0 9 13 2 H osd_layout 0 10 19 1 V osd_layout 0 11 2 11 V osd_layout 0 12 1 12 V osd_layout 0 13 2 7 V osd_layout 0 14 1 3 V osd_layout 0 15 16 12 V osd_layout 0 20 1 2 V osd_layout 0 21 1 1 V osd_layout 0 22 15 8 V osd_layout 0 23 23 12 V osd_layout 0 25 23 5 V osd_layout 0 26 25 7 V osd_layout 0 28 23 11 H osd_layout 0 30 1 4 V osd_layout 0 34 21 6 H osd_layout 0 35 8 12 H osd_layout 0 36 8 12 H osd_layout 0 38 2 11 H osd_layout 0 40 23 11 V osd_layout 0 41 13 11 H osd_layout 0 42 12 11 H osd_layout 0 46 1 7 H osd_layout 0 47 23 4 H osd_layout 0 63 14 12 H osd_layout 0 86 8 12 V osd_layout 0 87 8 2 H osd_layout 0 105 27 1 V osd_layout 1 1 2 12 V osd_layout 1 15 14 12 V osd_layout 1 20 19 1 V osd_layout 1 21 1 1 V osd_layout 1 22 14 1 V osd_layout 1 23 22 12 V osd_layout 1 30 2 2 V osd_layout 2 1 1 12 H osd_layout 2 15 16 12 H osd_layout 2 20 19 0 H osd_layout 2 21 1 10 H osd_layout 2 22 10 12 H osd_layout 2 23 24 12 H

master

set acc_hardware = MPU6000 set acczero_x = 76 set acczero_y = -22 set acczero_z = -139 set accgain_x = 4118 set accgain_y = 4059 set accgain_z = 4025 set mag_hardware = NONE set baro_hardware = BMP280 set pitot_hardware = NONE set serialrx_provider = CRSF set motor_pwm_protocol = STANDARD set failsafe_procedure = RTH set failsafe_mission = OFF set align_board_pitch = 50 set platform_type = AIRPLANE set model_preview_type = 14 set small_angle = 180 set applied_defaults = 3 set gps_sbas_mode = WAAS set nav_wp_radius = 3000 set nav_rth_climb_first = OFF set nav_rth_allow_landing = FS_ONLY set nav_rth_altitude = 5000 set nav_rth_home_altitude = 5000 set nav_fw_control_smoothness = 2 set nav_fw_launch_timeout = 20000 set osd_video_system = NTSC set osd_units = IMPERIAL set osd_alt_alarm = 122 set i2c_speed = 800KHZ set name = Drift set vtx_band = 3 set vtx_channel = 3 set vtx_power = 4 set vtx_low_power_disarm = ON

profile

profile 1

set nav_fw_pos_xy_p = 55 set rc_expo = 30 set rc_yaw_expo = 70 set roll_rate = 30 set pitch_rate = 15 set yaw_rate = 10

battery_profile

battery_profile 1

set battery_capacity = 3500 set battery_capacity_warning = 1050 set battery_capacity_critical = 700

end the command batch

batch end

Write your command here

breadoven commented 3 years ago

The altitude displayed is relative to TO and you have RTH set to AT LEAST (default) which means the plane is returning at the altitude when RTH is selected, which is >50m RTH altitude that's been set so it maintains this altitude until home. When it reaches home and starts to loiter it descends to the RTH home altitude, set at 50m. It will do this at 5m/s (nav_auto_climb_rate) which is pretty high for a plane making it appear to fall out of the sky. However, if you'd left it and the arming altitude was zero then it would have levelled off at 50m rather than hitting the ground. It's the RTH home altitude that's probably causing this, been changed from the default of 0 (disabled) to 50m.

stale[bot] commented 2 years ago

This issue / pull request has been automatically marked as stale because it has not had any activity in 60 days. The resources of the INAV team are limited, and so we are asking for your help. This issue / pull request will be closed if no further activity occurs within two weeks.