iNavFlight / inav

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

ALThold mode not working on my 180 quad #40

Closed skaman82 closed 8 years ago

skaman82 commented 9 years ago

Tested your latest naze hex form your dropbox today. Tried the ALThold mode on my 180 quad. Board: naze32 Full. When I put the quad in ALTHOLD it stays for a while but then starts slowly sinking to the ground. Could be the PIDs. The strange thing though is that the quad don't respond to throttle input while in althold mode. I could't raise the quad by increasing the throttle.

digitalentity commented 9 years ago

Please provide some details about your setup. Blackbox log and full config dump would be perfect.

skaman82 commented 9 years ago

I don't have a blackbox log of this. I'll try to make one next time. Never used blackbox before. So I have to figure out how this works first. My setup: Diatone ET180 Frame, Naze32 full, DYS 1306 3100kv motors, 4054 props, multistar 6A v2 ESCs with Blheli 14, OSD and FPV Gear, 950mah battery = AUW 200g. The symmetry of the frame is not an clear X - thats why I run a custom mixer.

dump

version

Cleanflight/NAZE 1.10.0 Sep 9 2015 / 13:45:41 (9c10376)

pflags

Persistent config flags: 0x00000000

dump master

mixer

mixer CUSTOM mmix reset mmix 0 1.000 -0.717 0.736 -1.000 mmix 1 1.000 -1.000 -0.736 1.000 mmix 2 1.000 0.717 0.736 1.000 mmix 3 1.000 1.000 -0.736 -1.000 smix reset

feature

feature -RX_PPM feature -VBAT feature -INFLIGHT_ACC_CAL feature -RX_SERIAL feature -MOTOR_STOP feature -SERVO_TILT feature -SOFTSERIAL feature -GPS feature -FAILSAFE feature -SONAR feature -TELEMETRY feature -CURRENT_METER feature -3D feature -RX_PARALLEL_PWM feature -RX_MSP feature -RSSI_ADC feature -LED_STRIP feature -DISPLAY feature -ONESHOT125 feature -BLACKBOX feature -CHANNEL_FORWARDING feature RX_PPM feature VBAT feature MOTOR_STOP feature FAILSAFE feature LED_STRIP

map

map AETR1234

serial

serial 0 1 115200 57600 0 115200 serial 1 1 115200 57600 0 115200

led

led 0 7,12::WC:13 led 1 8,12::WC:13 led 2 0,0:::0 led 3 0,0:::0 led 4 0,0:::0 led 5 0,0:::0 led 6 0,0:::0 led 7 0,0:::0 led 8 0,0:::0 led 9 0,0:::0 led 10 0,0:::0 led 11 0,0:::0 led 12 0,0:::0 led 13 0,0:::0 led 14 0,0:::0 led 15 0,0:::0 led 16 0,0:::0 led 17 0,0:::0 led 18 0,0:::0 led 19 0,0:::0 led 20 0,0:::0 led 21 0,0:::0 led 22 0,0:::0 led 23 0,0:::0 led 24 0,0:::0 led 25 0,0:::0 led 26 0,0:::0 led 27 0,0:::0 led 28 0,0:::0 led 29 0,0:::0 led 30 0,0:::0 led 31 0,0:::0

color

color 0 0,0,0 color 1 0,255,255 color 2 0,0,255 color 3 30,0,255 color 4 60,0,255 color 5 90,0,255 color 6 120,0,255 color 7 150,0,255 color 8 180,0,255 color 9 210,0,255 color 10 240,0,255 color 11 270,0,255 color 12 300,0,255 color 13 330,0,255 color 14 0,0,0 color 15 0,0,0

set looptime = 3000 set emf_avoidance = 0 set mid_rc = 1500 set min_check = 1100 set max_check = 1900 set rssi_channel = 0 set rssi_scale = 30 set rssi_ppm_invert = 0 set input_filtering_mode = 0 set min_throttle = 1075 set max_throttle = 1850 set min_command = 1000 set servo_center_pulse = 1500 set 3d_deadband_low = 1406 set 3d_deadband_high = 1514 set 3d_neutral = 1460 set 3d_deadband_throttle = 50 set motor_pwm_rate = 400 set servo_pwm_rate = 50 set retarded_arm = 0 set disarm_kill_switch = 1 set auto_disarm_delay = 5 set small_angle = 25 set fixedwing_althold_dir = 1 set reboot_character = 82 set gps_provider = 0 set gps_sbas_mode = 0 set gps_auto_config = 1 set gps_auto_baud = 0 set serialrx_provider = 0 set spektrum_sat_bind = 0 set telemetry_switch = 0 set telemetry_inversion = 0 set frsky_default_lattitude = 0.000 set frsky_default_longitude = 0.000 set frsky_coordinates_format = 0 set frsky_unit = 0 set frsky_vfas_precision = 0 set hott_alarm_sound_interval = 5 set battery_capacity = 0 set vbat_scale = 112 set vbat_max_cell_voltage = 44 set vbat_min_cell_voltage = 33 set vbat_warning_cell_voltage = 35 set current_meter_scale = 400 set current_meter_offset = 0 set multiwii_current_meter_output = 0 set current_meter_type = 1 set align_gyro = 0 set align_acc = 0 set align_mag = 0 set align_board_roll = 0 set align_board_pitch = 0 set align_board_yaw = 0 set max_angle_inclination = 500 set gyro_lpf = 42 set moron_threshold = 32 set gyro_cmpf_factor = 600 set gyro_cmpfm_factor = 250 set yaw_control_direction = 1 set pid_at_min_throttle = 1 set yaw_motor_direction = 1 set yaw_jump_prevention_limit = 200 set tri_unarmed_servo = 1 set servo_lowpass_freq = 400 set servo_lowpass_enable = 0 set failsafe_delay = 10 set failsafe_off_delay = 200 set failsafe_throttle = 1000 set failsafe_kill_switch = 0 set failsafe_throttle_low_delay = 100 set rx_min_usec = 985 set rx_max_usec = 2115 set acc_hardware = 0 set mag_hardware = 0 set blackbox_rate_num = 1 set blackbox_rate_denom = 1 set blackbox_device = 0 set magzero_x = 0 set magzero_y = 0 set magzero_z = 0

rxfail

rxfail 0 a rxfail 1 a rxfail 2 a rxfail 3 a rxfail 4 h rxfail 5 h rxfail 6 h rxfail 7 h rxfail 8 h rxfail 9 h rxfail 10 h rxfail 11 h rxfail 12 h rxfail 13 h rxfail 14 h rxfail 15 h rxfail 16 h rxfail 17 h

dump profile

profile

profile 0

aux

aux 0 1 0 900 1300 aux 1 2 0 1300 1700 aux 2 23 1 1300 1700 aux 3 9 1 1925 2100 aux 4 0 0 900 900 aux 5 0 0 900 900 aux 6 0 0 900 900 aux 7 0 0 900 900 aux 8 0 0 900 900 aux 9 0 0 900 900 aux 10 0 0 900 900 aux 11 0 0 900 900 aux 12 0 0 900 900 aux 13 0 0 900 900 aux 14 0 0 900 900 aux 15 0 0 900 900 aux 16 0 0 900 900 aux 17 0 0 900 900 aux 18 0 0 900 900 aux 19 0 0 900 900

adjrange

adjrange 0 0 0 900 900 0 0 adjrange 1 0 0 900 900 0 0 adjrange 2 0 0 900 900 0 0 adjrange 3 0 0 900 900 0 0 adjrange 4 0 0 900 900 0 0 adjrange 5 0 0 900 900 0 0 adjrange 6 0 0 900 900 0 0 adjrange 7 0 0 900 900 0 0 adjrange 8 0 0 900 900 0 0 adjrange 9 0 0 900 900 0 0 adjrange 10 0 0 900 900 0 0 adjrange 11 0 0 900 900 0 0

rxrange

rxrange 0 1000 2000 rxrange 1 1000 2000 rxrange 2 1000 2000 rxrange 3 1000 2000

servo

servo 0 1000 2000 1500 90 90 100 -1 servo 1 1000 2000 1500 90 90 100 -1 servo 2 1000 2000 1500 90 90 100 -1 servo 3 1000 2000 1500 90 90 100 -1 servo 4 1000 2000 1500 90 90 100 -1 servo 5 1000 2000 1500 90 90 100 -1 servo 6 1000 2000 1500 90 90 100 -1 servo 7 1000 2000 1500 90 90 100 -1

set gps_pos_p = 15 set gps_pos_i = 0 set gps_pos_d = 0 set gps_posr_p = 34 set gps_posr_i = 14 set gps_posr_d = 53 set gps_nav_p = 25 set gps_nav_i = 33 set gps_nav_d = 83 set nav_wp_radius = 300 set nav_speed_max = 300 set nav_gps_cf = 0.300 set nav_pterm_cut_hz = 20 set nav_dterm_cut_hz = 15 set nav_rc_deadband = 20 set nav_min_rth_distance = 500 set nav_use_midrc_for_althold = 1 set nav_throttle_tilt_comp = 1 set nav_lock_until_takeoff = 0 set nav_user_control_mode = 0 set nav_rth_alt_mode = 4 set nav_rth_altitude = 1000 set alt_hold_deadband = 40 set deadband = 7 set yaw_deadband = 3 set throttle_correction_value = 0 set throttle_correction_angle = 800 set default_rate_profile = 0 set gimbal_mode = 0 set acc_lpf_factor = 4 set acc_unarmedcal = 1 set acc_trim_pitch = 0 set acc_trim_roll = 0 set baro_tab_size = 21 set baro_noise_lpf = 0.600 set baro_cf_vel = 0.985 set mag_declination = 0 set pid_controller = 3 set p_pitch = 40 set i_pitch = 45 set d_pitch = 35 set p_roll = 40 set i_roll = 45 set d_roll = 35 set p_yaw = 85 set i_yaw = 45 set d_yaw = 0 set p_pitchf = 2.500 set i_pitchf = 0.600 set d_pitchf = 0.060 set p_rollf = 2.500 set i_rollf = 0.600 set d_rollf = 0.060 set p_yawf = 8.000 set i_yawf = 0.500 set d_yawf = 0.050 set level_horizon = 3.000 set level_angle = 5.000 set sensitivity_horizon = 75 set p_alt = 50 set i_alt = 0 set d_alt = 0 set p_level = 110 set i_level = 27 set d_level = 100 set p_vel = 120 set i_vel = 45 set d_vel = 1 set yaw_p_limit = 500 set dterm_cut_hz = 0 set pterm_cut_hz = 0 set gyro_cut_hz = 0

dump rates

rateprofile

rateprofile 0

set rc_rate = 113 set rc_expo = 75 set rc_yaw_expo = 0 set thr_mid = 50 set thr_expo = 0 set roll_rate = 35 set pitch_rate = 40 set yaw_rate = 35 set tpa_rate = 0 set tpa_breakpoint = 1500

digitalentity commented 9 years ago

You don't have your althold PIDs at new defaults. Specifically you have i_alt set to 0 - that's preventing ALTHOLD from working. Please see the RCG thread from here http://www.rcgroups.com/forums/showpost.php?p=32643255&postcount=80 for explanation. And execute the following from CLI: set baro_tab_size = 7 set baro_noise_lpf = 0.350 set baro_cf_vel = 0.965 set p_alt = 30 set i_alt = 150 set d_alt = 0 set p_vel = 80 set i_vel = 50 set d_vel = 50 This will set your althold PIDs right and you should be good to do. Good luck!

чт, 10 сент. 2015 г. в 7:26, skaman82 notifications@github.com:

I don't have a blackbox log of this. I'll try to make one next time. Never used blackbox before. So I have to figure out how this works first. My setup: Diatone ET180 Frame, Naze32 full, DYS 1306 3100kv motors, 4054 props, multistar 6A v2 ESCs with Blheli 14, OSD and FPV Gear, 950mah battery = AUW 200g. The symmetry of the frame is not an clear X - thats why I run a custom mixer. dump version Cleanflight/NAZE 1.10.0 Sep 9 2015 / 13:45:41 (9c10376 https://github.com/digitalentity/cleanflight/commit/9c10376f3f7d2c43656d0f4c1a5e0de4e6ac550a ) pflags Persistent config flags: 0x00000000 dump master mixer

mixer CUSTOM mmix reset mmix 0 1.000 -0.717 0.736 -1.000 mmix 1 1.000 -1.000 -0.736 1.000 mmix 2 1.000 0.717 0.736 1.000 mmix 3 1.000 1.000 -0.736 -1.000 smix reset feature

feature -RX_PPM feature -VBAT feature -INFLIGHT_ACC_CAL feature -RX_SERIAL feature -MOTOR_STOP feature -SERVO_TILT feature -SOFTSERIAL feature -GPS feature -FAILSAFE feature -SONAR feature -TELEMETRY feature -CURRENT_METER feature -3D feature -RX_PARALLEL_PWM feature -RX_MSP feature -RSSI_ADC feature -LED_STRIP feature -DISPLAY feature -ONESHOT125 feature -BLACKBOX feature -CHANNEL_FORWARDING feature RX_PPM feature VBAT feature MOTOR_STOP feature FAILSAFE feature LED_STRIP map

map AETR1234 serial

serial 0 1 115200 57600 0 115200 serial 1 1 115200 57600 0 115200 led

led 0 7,12::WC:13 led 1 8,12::WC:13 led 2 0,0:::0 led 3 0,0:::0 led 4 0,0:::0 led 5 0,0:::0 led 6 0,0:::0 led 7 0,0:::0 led 8 0,0:::0 led 9 0,0:::0 led 10 0,0:::0 led 11 0,0:::0 led 12 0,0:::0 led 13 0,0:::0 led 14 0,0:::0 led 15 0,0:::0 led 16 0,0:::0 led 17 0,0:::0 led 18 0,0:::0 led 19 0,0:::0 led 20 0,0:::0 led 21 0,0:::0 led 22 0,0:::0 led 23 0,0:::0 led 24 0,0:::0 led 25 0,0:::0 led 26 0,0:::0 led 27 0,0:::0 led 28 0,0:::0 led 29 0,0:::0 led 30 0,0:::0 led 31 0,0:::0 color

color 0 0,0,0 color 1 0,255,255 color 2 0,0,255 color 3 30,0,255 color 4 60,0,255 color 5 90,0,255 color 6 120,0,255 color 7 150,0,255 color 8 180,0,255 color 9 210,0,255 color 10 240,0,255 color 11 270,0,255 color 12 300,0,255 color 13 330,0,255 color 14 0,0,0 color 15 0,0,0

set looptime = 3000 set emf_avoidance = 0 set mid_rc = 1500 set min_check = 1100 set max_check = 1900 set rssi_channel = 0 set rssi_scale = 30 set rssi_ppm_invert = 0 set input_filtering_mode = 0 set min_throttle = 1075 set max_throttle = 1850 set min_command = 1000 set servo_center_pulse = 1500 set 3d_deadband_low = 1406 set 3d_deadband_high = 1514 set 3d_neutral = 1460 set 3d_deadband_throttle = 50 set motor_pwm_rate = 400 set servo_pwm_rate = 50 set retarded_arm = 0 set disarm_kill_switch = 1 set auto_disarm_delay = 5 set small_angle = 25 set fixedwing_althold_dir = 1 set reboot_character = 82 set gps_provider = 0 set gps_sbas_mode = 0 set gps_auto_config = 1 set gps_auto_baud = 0 set serialrx_provider = 0 set spektrum_sat_bind = 0 set telemetry_switch = 0 set telemetry_inversion = 0 set frsky_default_lattitude = 0.000 set frsky_default_longitude = 0.000 set frsky_coordinates_format = 0 set frsky_unit = 0 set frsky_vfas_precision = 0 set hott_alarm_sound_interval = 5 set battery_capacity = 0 set vbat_scale = 112 set vbat_max_cell_voltage = 44 set vbat_min_cell_voltage = 33 set vbat_warning_cell_voltage = 35 set current_meter_scale = 400 set current_meter_offset = 0 set multiwii_current_meter_output = 0 set current_meter_type = 1 set align_gyro = 0 set align_acc = 0 set align_mag = 0 set align_board_roll = 0 set align_board_pitch = 0 set align_board_yaw = 0 set max_angle_inclination = 500 set gyro_lpf = 42 set moron_threshold = 32 set gyro_cmpf_factor = 600 set gyro_cmpfm_factor = 250 set yaw_control_direction = 1 set pid_at_min_throttle = 1 set yaw_motor_direction = 1 set yaw_jump_prevention_limit = 200 set tri_unarmed_servo = 1 set servo_lowpass_freq = 400 set servo_lowpass_enable = 0 set failsafe_delay = 10 set failsafe_off_delay = 200 set failsafe_throttle = 1000 set failsafe_kill_switch = 0 set failsafe_throttle_low_delay = 100 set rx_min_usec = 985 set rx_max_usec = 2115 set acc_hardware = 0 set mag_hardware = 0 set blackbox_rate_num = 1 set blackbox_rate_denom = 1 set blackbox_device = 0 set magzero_x = 0 set magzero_y = 0 set magzero_z = 0 rxfail

rxfail 0 a rxfail 1 a rxfail 2 a rxfail 3 a rxfail 4 h rxfail 5 h rxfail 6 h rxfail 7 h rxfail 8 h rxfail 9 h rxfail 10 h rxfail 11 h rxfail 12 h rxfail 13 h rxfail 14 h rxfail 15 h rxfail 16 h rxfail 17 h dump profile profile

profile 0 aux

aux 0 1 0 900 1300 aux 1 2 0 1300 1700 aux 2 23 1 1300 1700 aux 3 9 1 1925 2100 aux 4 0 0 900 900 aux 5 0 0 900 900 aux 6 0 0 900 900 aux 7 0 0 900 900 aux 8 0 0 900 900 aux 9 0 0 900 900 aux 10 0 0 900 900 aux 11 0 0 900 900 aux 12 0 0 900 900 aux 13 0 0 900 900 aux 14 0 0 900 900 aux 15 0 0 900 900 aux 16 0 0 900 900 aux 17 0 0 900 900 aux 18 0 0 900 900 aux 19 0 0 900 900 adjrange

adjrange 0 0 0 900 900 0 0 adjrange 1 0 0 900 900 0 0 adjrange 2 0 0 900 900 0 0 adjrange 3 0 0 900 900 0 0 adjrange 4 0 0 900 900 0 0 adjrange 5 0 0 900 900 0 0 adjrange 6 0 0 900 900 0 0 adjrange 7 0 0 900 900 0 0 adjrange 8 0 0 900 900 0 0 adjrange 9 0 0 900 900 0 0 adjrange 10 0 0 900 900 0 0 adjrange 11 0 0 900 900 0 0 rxrange

rxrange 0 1000 2000 rxrange 1 1000 2000 rxrange 2 1000 2000 rxrange 3 1000 2000 servo

servo 0 1000 2000 1500 90 90 100 -1 servo 1 1000 2000 1500 90 90 100 -1 servo 2 1000 2000 1500 90 90 100 -1 servo 3 1000 2000 1500 90 90 100 -1 servo 4 1000 2000 1500 90 90 100 -1 servo 5 1000 2000 1500 90 90 100 -1 servo 6 1000 2000 1500 90 90 100 -1 servo 7 1000 2000 1500 90 90 100 -1

set gps_pos_p = 15 set gps_pos_i = 0 set gps_pos_d = 0 set gps_posr_p = 34 set gps_posr_i = 14 set gps_posr_d = 53 set gps_nav_p = 25 set gps_nav_i = 33 set gps_nav_d = 83 set nav_wp_radius = 300 set nav_speed_max = 300 set nav_gps_cf = 0.300 set nav_pterm_cut_hz = 20 set nav_dterm_cut_hz = 15 set nav_rc_deadband = 20 set nav_min_rth_distance = 500 set nav_use_midrc_for_althold = 1 set nav_throttle_tilt_comp = 1 set nav_lock_until_takeoff = 0 set nav_user_control_mode = 0 set nav_rth_alt_mode = 4 set nav_rth_altitude = 1000 set alt_hold_deadband = 40 set deadband = 7 set yaw_deadband = 3 set throttle_correction_value = 0 set throttle_correction_angle = 800 set default_rate_profile = 0 set gimbal_mode = 0 set acc_lpf_factor = 4 set acc_unarmedcal = 1 set acc_trim_pitch = 0 set acc_trim_roll = 0 set baro_tab_size = 21 set baro_noise_lpf = 0.600 set baro_cf_vel = 0.985 set mag_declination = 0 set pid_controller = 3 set p_pitch = 40 set i_pitch = 45 set d_pitch = 35 set p_roll = 40 set i_roll = 45 set d_roll = 35 set p_yaw = 85 set i_yaw = 45 set d_yaw = 0 set p_pitchf = 2.500 set i_pitchf = 0.600 set d_pitchf = 0.060 set p_rollf = 2.500 set i_rollf = 0.600 set d_rollf = 0.060 set p_yawf = 8.000 set i_yawf = 0.500 set d_yawf = 0.050 set level_horizon = 3.000 set level_angle = 5.000 set sensitivity_horizon = 75 set p_alt = 50 set i_alt = 0 set d_alt = 0 set p_level = 110 set i_level = 27 set d_level = 100 set p_vel = 120 set i_vel = 45 set d_vel = 1 set yaw_p_limit = 500 set dterm_cut_hz = 0 set pterm_cut_hz = 0 set gyro_cut_hz = 0 dump rates rateprofile

rateprofile 0

set rc_rate = 113 set rc_expo = 75 set rc_yaw_expo = 0 set thr_mid = 50 set thr_expo = 0 set roll_rate = 35 set pitch_rate = 40 set yaw_rate = 35 set tpa_rate = 0 set tpa_breakpoint = 1500

— Reply to this email directly or view it on GitHub https://github.com/digitalentity/cleanflight/issues/40#issuecomment-139050460 .

skaman82 commented 9 years ago

Thanks! Will try this and report back!

skaman82 commented 9 years ago

Tested the new PID defaults today. It works now as expected when Quad hovers normally at 50% throttle. But when I use a little heavier lipo (quad hovers then at 60%) it cant hold altitude an sinks slowly to the ground an stays 10-20 cm above the ground. What do I have to change to make this work with a heavier lipo? By the way: like your solution! Now it works even when the quad is moving (it does not in the normal CF) and so this flightmode is finally usable as a standalone mode!

digitalentity commented 9 years ago

@skaman82 I'll try with heavier lipo and see if the code works for me. For now you can try increasing your i_vel, try set i_vel = 75 or 100, or even 150 and see if it gets any better. See this post http://www.rcgroups.com/forums/showpost.php?p=32643255&postcount=80 for explanation of altitude hold pids.

digitalentity commented 9 years ago

@skaman82 Tested today with a heavier lipo, no problems so far. My guess whould be insufficient i_vel.

bk79 commented 8 years ago

@digitalentity I finally completed my hexa 320, I had a test with brand new sparky board with latest buidl and alt hold keeps farly well, probably there is a little too much I term since it overshoot too much, I've tested 1500mah battery and 2200mah no problem so far whatever weight I put

digitalentity commented 8 years ago

I figure this issue can be closed as althold is verified to be working.