Вопросы по iNav

Cat004
jShadow:

Похоже аксель не откалиброван и меряет не гравитацию, а погоду в Зимбабве на прошлой неделе. 6-точечная калибровка акселя делалась?

CLI dump после калибровки в студию.

Калибровку сделал по инструкции. По скорости дрейфа изменений не произошло. 😢

# version
# INAV/RMDO 1.1.0 Apr  7 2016 / 10:08:44 (7015521)
# pflags
# Persistent config flags: 0x00000000
# dump master

# mixer
mixer QUADX
mmix reset
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 GPS
feature FAILSAFE


# beeper
beeper  GYRO_CALIBRATED
beeper  RX_LOST
beeper  RX_LOST_LANDING
beeper  DISARMING
beeper  ARMING
beeper  ARMING_GPS_FIX
beeper  BAT_CRIT_LOW
beeper  BAT_LOW
beeper  GPS_STATUS
beeper  RX_SET
beeper  ACC_CALIBRATION
beeper  ACC_CALIBRATION_FAIL
beeper  READY_BEEP
beeper  MULTI_BEEPS
beeper  DISARM_REPEAT
beeper  ARMED
beeper  SYSTEM_INIT
beeper  ON_USB


# map
map AETR1234


# serial
serial 0 1 115200 38400 0 115200
serial 1 2 115200 57600 0 115200
serial 2 1 115200 38400 0 115200


# led
led 0 15,15:ES:IA:0
led 1 15,8:E:WF:0
led 2 15,7:E:WF:0
led 3 15,0:NE:IA:0
led 4 8,0:N:F:0
led 5 7,0:N:F:0
led 6 0,0:NW:IA:0
led 7 0,7:W:WF:0
led 8 0,8:W:WF:0
led 9 0,15:SW:IA:0
led 10 7,15:S:WF:0
led 11 8,15:S:WF:0
led 12 7,7:U:WF:0
led 13 8,7:U:WF:0
led 14 7,8:D:WF:0
led 15 8,8:D:WF:0
led 16 8,9::R:3
led 17 9,10::R:3
led 18 10,11::R:3
led 19 10,12::R:3
led 20 9,13::R:3
led 21 8,14::R:3
led 22 7,14::R:3
led 23 6,13::R:3
led 24 5,12::R:3
led 25 5,11::R:3
led 26 6,10::R:3
led 27 7,9::R:3
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 = 2000
set emf_avoidance = OFF
set i2c_overclock = OFF
set gyro_sync = OFF
set gyro_sync_denom = 2
set mid_rc = 1500
set min_check = 1100
set max_check = 1900
set rssi_channel = 0
set rssi_scale = 30
set rssi_ppm_invert = OFF
set rc_smoothing = ON
set input_filtering_mode = OFF
set min_throttle = 1150
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 disarm_kill_switch = ON
set auto_disarm_delay = 5
set small_angle = 25
set reboot_character = 82
set gps_provider = UBLOX
set gps_sbas_mode = EGNOS
set gps_nav_model = LOW_G
set gps_auto_config = ON
set gps_auto_baud = ON
set inav_accz_unarmedcal = ON
set inav_use_gps_velned = OFF
set inav_gps_delay = 200
set inav_gps_min_sats = 6
set inav_w_z_baro_p =  0.350
set inav_w_z_gps_p =  0.200
set inav_w_z_gps_v =  0.200
set inav_w_xy_gps_p =  1.000
set inav_w_xy_gps_v =  2.000
set inav_w_z_res_v =  0.500
set inav_w_xy_res_v =  0.500
set inav_w_acc_bias =  0.010
set inav_max_eph_epv =  1000.000
set inav_baro_epv =  100.000
set nav_use_midthr_for_althold = ON
set nav_extra_arming_safety = ON
set nav_user_control_mode = ATTI
set nav_position_timeout = 5
set nav_wp_radius = 300
set nav_max_speed = 300
set nav_manual_speed = 500
set nav_manual_climb_rate = 200
set nav_landing_speed = 200
set nav_emerg_landing_speed = 500
set nav_min_rth_distance = 500
set nav_rth_tail_first = OFF
set nav_rth_alt_mode = AT_LEAST
set nav_rth_altitude = 1000
set nav_mc_bank_angle = 30
set nav_mc_hover_thr = 1500
set nav_mc_min_fly_thr = 1200
set nav_fw_cruise_thr = 1500
set nav_fw_min_thr = 1300
set nav_fw_max_thr = 1900
set nav_fw_bank_angle = 30
set nav_fw_climb_angle = 20
set nav_fw_dive_angle = 15
set nav_fw_pitch2thr = 20
set nav_fw_loiter_radius = 3000
set serialrx_provider = SPEK1024
set spektrum_sat_bind = 0
set telemetry_switch = OFF
set telemetry_inversion = ON
set frsky_default_lattitude =  0.000
set frsky_default_longitude =  0.000
set frsky_coordinates_format = 0
set frsky_unit = IMPERIAL
set frsky_vfas_precision = 0
set hott_alarm_sound_interval = 5
set battery_capacity = 0
set vbat_scale = 110
set vbat_max_cell_voltage = 43
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 = OFF
set current_meter_type = ADC
set align_gyro = DEFAULT
set align_acc = DEFAULT
set align_mag = CW90
set align_board_roll = 1800
set align_board_pitch = 0
set align_board_yaw = 0
set gyro_lpf = 98HZ
set moron_threshold = 32
set imu_dcm_kp = 2500
set imu_dcm_ki = 50
set imu_dcm_kp_mag = 10000
set imu_dcm_ki_mag = 0
set pos_hold_deadband = 20
set alt_hold_deadband = 50
set yaw_control_direction = 1
set yaw_motor_direction = 1
set yaw_jump_prevention_limit = 200
set tri_unarmed_servo = ON
set servo_lowpass_freq = 400
set servo_lowpass_enable = OFF
set failsafe_delay = 10
set failsafe_off_delay = 200
set failsafe_throttle = 1000
set failsafe_kill_switch = OFF
set failsafe_throttle_low_delay = 100
set failsafe_procedure = SET-THR
set rx_min_usec = 885
set rx_max_usec = 2115
set acc_hardware = 0
set baro_use_median_filter = ON
set baro_hardware = 0
set mag_hardware = 1
set blackbox_rate_num = 1
set blackbox_rate_denom = 1
set blackbox_device = SERIAL
set magzero_x = 0
set magzero_y = 0
set magzero_z = 0
set acczero_x = 0
set acczero_y = 0
set acczero_z = 0
set accgain_x = 4096
set accgain_y = 4096
set accgain_z = 4096

# 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 12 0 1700 2100
aux 1 0 0 900 900
aux 2 0 0 900 900
aux 3 0 0 900 900
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 nav_alt_p = 50
set nav_alt_i = 0
set nav_alt_d = 0
set nav_vel_p = 100
set nav_vel_i = 50
set nav_vel_d = 10
set nav_pos_p = 65
set nav_pos_i = 120
set nav_pos_d = 10
set nav_posr_p = 180
set nav_posr_i = 15
set nav_posr_d = 100
set nav_navr_p = 14
set nav_navr_i = 2
set nav_navr_d = 8
set deadband = 5
set yaw_deadband = 5
set throttle_tilt_comp_str = 0
set yaw_p_limit = 300
set default_rate_profile = 0
set gimbal_mode = NORMAL
set mag_declination = 0
set p_pitch = 45
set i_pitch = 50
set d_pitch = 70
set p_roll = 45
set i_roll = 50
set d_roll = 70
set p_yaw = 100
set i_yaw = 40
set d_yaw = 0
set p_level = 160
set i_level = 10
set d_level = 75
set max_angle_inclination = 300
set gyro_soft_lpf_hz = 60
set acc_soft_lpf_hz = 15
set dterm_lpf_hz = 30

# dump rates

# rateprofile
rateprofile 0

set rc_rate = 90
set rc_expo = 70
set rc_yaw_expo = 20
set thr_mid = 50
set thr_expo = 0
set roll_rate = 0
set pitch_rate = 0
set yaw_rate = 0
set tpa_rate = 0
set tpa_breakpoint = 1500

#

UPD: Калибровал 10 раз и заметил, что никакие значения не изменяются. В очередной раз внес ошибку (поставил под одну сторону кирпич) и ничего не изменилось. После этого стал прописывать save в CLI после каждой калибровки (в инструкции этого нет), значения стали меняться. Получилось примерно так :
acczero_x = 133
acczero_y = -49
acczero_z = -727
accgain_x = 4085
accgain_y = 4079
accgain_z = 4013
Но дрейф как был так и остался. У меня ПК перевёрнут по роллу на 180 градусов. Я решил попробовать откалибровать его не переворачивая программно, получил примерно те же результаты. Но! дрейф пропал. Вообще пропал! При программном перевороте - опять появился… 😃

Talentfrei

Такое случается если компас не правильно выставлен по отношению к контроллеру

Какие стандартные пиды для POS и POSR? Чёт я накрутил черезчур…😃))

Cat004

Согласен, поэтому компас изначально отключил (программно и физически). Это не он… Теперь у меня стоит перевернутый крадрик, дрейфа нет, но программно перевернуть ПК не получается, так как начинается дрейф. И физически перевернуть не могу, конструкция рамы не позволяет…

Talentfrei:

стандартные пиды для POS и POSR

Talentfrei

Странно… Дрейф по горизонту только компас.

Andy_Durin
Talentfrei:

Странно… Дрейф по горизонту только компас.

Ничего странного, у него пич/рол плывут. Компас здесь ни при чем! Дрейф ГОРИЗОНТА а не по горизонту.

jShadow
Cat004:

У меня ПК перевёрнут по роллу на 180 градусов.

Т.е. ПК вверх ногами? Понял, спасибо, попробую поковырять, возможно собака зарыта именно тут.

EDIT:
Нашел проблему, спасибо! Ошибка в коде - расчет калибровочных значений выполнялся до поворота вектора ускорения, а применялся после него 😃

Самое интересное, что проблема касалась всех, у кого ПК повернут хоть как-нибудь. Последствия (кроме возможного дрейфа горизонта) - снижение точности удержания высоты/позиции, т.е. инерциалка свои расчеты основывает на данных акселя.

Поправил, через полчаса на ГитХабе появится пофиксеный 1.1-RC2

Cat004:

Согласен, поэтому компас изначально отключил (программно и физически). Это не он… Теперь у меня стоит перевернутый крадрик, дрейфа нет, но программно перевернуть ПК не получается, так как начинается дрейф. И физически перевернуть не могу, конструкция рамы не позволяет…

Пофиксил в 1.1-RC2. Брать тут.

Talentfrei
Andy_Durin:

Ничего странного, у него пич/рол плывут. Компас здесь ни при чем! Дрейф ГОРИЗОНТА а не по горизонту.

Asche auf mein Haupt!!! Подзаржавел мой русский…))) Sorry

jShadow
Talentfrei:

Asche auf mein Haupt!!! Подзаржавел мой русский…))) Sorry

Главное что разобрались в итоге. Этот глюк похоже живет с пре-1.0, с того самого времени как 6-точечная калибровка появилась. Удивительно, что его раньше никто не заметил!

Dimj81
jShadow:

С этим GPS-ом танцы будут - гарантирую. У меня таких три, из них два работают через пень-колоду. На ЛК (да и на все остальное) я бы советовал NEO-M8N, лучше GPSа я пока не встречал.

Прошивку можно использовать эту. Придется немножко пошаманить чтобы оно заработало и полетело ровно, но и стабилизация и возврат домой будут.

Т.е NEO-M8N купить будет работать? Подшаманить что подразумеваете ?? А если ставить на самолет то тоже шаманить придется ??

Andy_Durin
jShadow:

раньше никто не заметил!

У меня повернута по яву и ничего особого не заметно. Правда без GPS и компаса.

Cat004

По яву и я поворачивал без последствий, а вот пич и ролл “сработали”.

Константин, как правильно - калибровать, потом переворачивать?
Или сначала переворачивать, а потом калибровать уже в новом положении?

Andy_Durin
Cat004:

как правильно - калибровать

Сначала крепят, потом калибруют уже на аппарате.

Talentfrei

Только что облетал RC2, просто в восторге!!! Никаких глюков в GPS модусе!!! Стандартные PID для GPS. Только для акселя под себя настроил. Pixhawk отдыхает!!! Константин, GJ!!!

Cat004
Andy_Durin:

Сначала крепят, потом калибруют уже на аппарате.

Это понятно. Но в инструкции по калибровке есть порядок - Сначала “ноги вниз”, потом “ноги вверх” и тд. Соблюдение последовательности положений критично? Если Да, то у меня дилема - если програмно ПК ещё не повёрнут первое положение калибровки “ноги вниз” - это чьи “ноги” ПК или модели? Я могу сначала прикрепить, затем перевернуть ПК програмно, затем калибровать. А могу - сначала прикрепить, затем калибровать (относительно “ног” ПК), а затем перевернуть програмно.

jShadow
Cat004:

Это понятно. Но в инструкции по калибровке есть порядок - Сначала “ноги вниз”, потом “ноги вверх” и тд. Соблюдение последовательности положений критично? Если Да, то у меня дилема - если програмно ПК ещё не повёрнут первое положение калибровки “ноги вниз” - это чьи “ноги” ПК или модели? Я могу сначала прикрепить, затем перевернуть ПК програмно, затем калибровать. А могу - сначала прикрепить, затем калибровать (относительно “ног” ПК), а затем перевернуть програмно.

Сейчас без разницы. Можно сначала калибровать (даже отдельно плату), потом поворачивать, можно наоборот. Поворот применяется после калибровки.
Первое положение - “ноги вниз”, имеются в виду ноги ПК.

Andy_Durin:

У меня повернута по яву и ничего особого не заметно. Правда без GPS и компаса.

По X-Y акселя обычно смещение небольшое, а вот по Z - значительное. Переворот поменял знак этого смещения и 1G превратился, скажем в 1.2G. ПК такое ускорение считает слишком большим, чтобы по нему корректировать горизонт.

Talentfrei:

Только что облетал RC2, просто в восторге!!! Никаких глюков в GPS модусе!!! Стандартные PID для GPS. Только для акселя под себя настроил. Pixhawk отдыхает!!! Константин, GJ!!!

Вполне возможно. С новым (правильным) кодом применения калибровочных параметров акселя теперь ускорения по X-Y должны меряться точнее - следовательно инерциалка должна давать более точные результаты - следовательно более точное удержание высоты/позиции.

Cat004

К слову, Константин, на этом форуме полезные ссылки у вас в дневнике ведут “в никуда”.

jShadow
Cat004:

К слову, Константин, на этом форуме полезные ссылки у вас в дневнике ведут “в никуда”.

Да, я знаю. К сожалению, отредактировать запись в дневнике уже нельзя 😦

Andy_Durin
Talentfrei:

Pixhawk отдыхает!

Прямо так? Это круто!
А можно подробнее, чем лучше?

jShadow
Andy_Durin:

Прямо так? Это круто!
А можно подробнее, чем лучше?

Да, мне тоже интересно 😃

Andy_Durin
jShadow:

Первое положение - “ноги вниз”, имеются в виду ноги ПК.

А может лучше сделать, чтоб ноги были ЛА? Например, в ЛА ПК установлен с поворотом по ролу на 180 и по яву на 90. Пойди сообрази сходу как ставить ЛА чтоб у ПК были “ноги”, “нос” и т.д. А в алгоритме калибровки легко учесть программный поворот ПК. Получается, сначала настраиваем поворот, потом калибруем относительно ног ЛА.
Мне кажется, так будет правильней. ИМХО

jShadow
Andy_Durin:

А может лучше сделать, чтоб ноги были ЛА? Например, в ЛА ПК установлен с поворотом по ролу на 180 и по яву на 90. Пойди сообрази сходу как ставить ЛА чтоб у ПК были “ноги”, “нос” и т.д. А в алгоритме калибровки легко учесть программный поворот ПК. Получается, сначала настраиваем поворот, потом калибруем относительно ног ЛА.
Мне кажется, так будет правильней. ИМХО

Возможно, но тогда придется перекалибровывать каждый раз, когда меняется ориентация платы. А если учесть, что ориентация платы меняется при триммировании - у-у-у…