Вопросы по iNav

jShadow
Talentfrei:

Опустошил два акку, сильной разницы при режиме Хадингхолд не заметил. Раз 5 стартовал RTH все нормално. Зато нашел другой глюк. При большой скорости в режиме GPS (больше 20кмч) нельзя резко отпускать жойстик . Он пытается с неимоверной скоростью вернуться в то место где вы отпустили жойстик, пролетает его, потом пытается с ещё большей скоростью вернуться обратно и тд, пока не улетает в китай. Еле поймал! Скорость в GPS модусе надо ограничивать.

Тут дело не в скорости, а в агрессивности ПИДов POS и POSR. Можно убавить P и того и другого и посмотреть что получится - должен получиться менее агрессивный ПосХолд, зато меньше прыганий будет. Сейчас идут эксперименты над более четкой остановкой в ПосХолде, думаю станет лучше.

Cat004

Привет всем! Уже неделю, как поставил ПК RMRC DoDo, залил INAV 1.1-RC1. Но летать не получается так как горизонт плывет по пичу и роллу со скоростью примерно -1.5 градуса в минуту. Есть ли какие-нибуть настройки для компенсации этого дрейфа? Пробовал все значения acc_hardware (от 0 до 9), при изменении скорость дрейфа каждый раз меняется, но дрейф не пропадает…

Talentfrei
jShadow:

Тут дело не в скорости, а в агрессивности ПИДов POS и POSR. Можно убавить P и того и другого и посмотреть что получится - должен получиться менее агрессивный ПосХолд, зато меньше прыганий будет. Сейчас идут эксперименты над более четкой остановкой в ПосХолде, думаю станет лучше.

Убовлял в половину Р , теперь унитазит здорово. Я бы ограничил скорость . APM и Pix намного медленнее летают в GPS моде.

jShadow
Cat004:

Привет всем! Уже неделю, как поставил ПК RMRC DoDo, залил INAV 1.1-RC1. Но летать не получается так как горизонт плывет по пичу и роллу со скоростью примерно -1.5 градуса в минуту. Есть ли какие-нибуть настройки для компенсации этого дрейфа? Пробовал все значения acc_hardware (от 0 до 9), при изменении скорость дрейфа каждый раз меняется, но дрейф не пропадает…

acc_hardware - это тип акселерометра. Самое лучшее - оставить acc_hardware=0 для автоопределения.

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

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

mahowik
Talentfrei:

Зато нашел другой глюк. При большой скорости в режиме GPS (больше 20кмч) нельзя резко отпускать жойстик . Он пытается с неимоверной скоростью вернуться в то место где вы отпустили жойстик, пролетает его, потом пытается с ещё большей скоростью вернуться обратно и тд, пока не улетает в китай.

jShadow:

Тут дело не в скорости, а в агрессивности ПИДов POS и POSR. Можно убавить P и того и другого и посмотреть что получится - должен получиться менее агрессивный ПосХолд, зато меньше прыганий будет. Сейчас идут эксперименты над более четкой остановкой в ПосХолде, думаю станет лучше.

Столкнулись с подобной проблемой. _Вот что писал у себя ветке:
Я еще раз игрался с пидами на удержание и почти уверен что надо повысить PosR-P = 8…10 и PosR-D = 0.06…0.08, а Pos-P уменьшить пропоционально. PosR-P и PosR-D управляют скоростью и реакцией торможения, а Pos-P задает силу тяги к точке и приводит к перекомпенсации упр-го воздействия, откуда возможно и возникает болтанка вокруг точки. По наблюдениям с высокими PosR-P и PosR-D почти не возникает колебаний около точки… попробуй оттакиваться от высоких PosR-P и PosR-D при настройке и крутить Pos-P и PosR-I.
Напомню как настраивать. Оч. внимательно прочитай.

  1. поднимаем PosR-P до появленения реакции на боковые пинки (диапазон 3.0 - 10.0)
    PosR-P задает две вещи:
  • силу сопротивления на агрессивное внешнее воздействие обратно-пропоционально скорости воздействия, т.е. сила равна = скорость_пинка * PosR-P
  • силу притяжения к точке пропоционально “заданной” скорости (где скорость берется из растояния до точки удержания помноженной на коэф. Pos-P), т.е. сила равна = растояние_до_точки * Pos-P * PosR-P (отсюда видно, что если повышаем PosR-P, то Pos-P надо понизить, что бы на выходе иметь туже силу)
  1. поднимаем PosR-D для повышения скорости реакции на боковые пинки (диапазон 0.005 - 0.09)
  2. поднимаем Pos-P для “притягивания” к точке удержания (диапазон 0.5 - 2.0)… Как писал выше это коэф. для получения скорости из ошибки/отклонения от заданной точки удержания.
  3. поднимаем PosR-I для долгосрочной поправки на ветер, а так же для “дотягивания к точке” (диапазон 0.02 - 0.4), т.е. т.е. сила равна = растояние_до_точки * Pos-P * PosR-I_

Артем уже пробовал повысить PosR-P, а Pos-P уменьшить. Отписался, что проблема ушла: “Пиды тоже перестроил Pos_R=8, Pos_p=1,5. В таком варианте понравилось. Очень прикольно находит точку за два движения, первое “вытормаживание”, второе не быстрый подлет к точке и фиксация. Улетов не было…”
Это конечно применимо, если у тебя пид регуль на удержание тот же… Судя по вики на гитхабе тот же 😃 Т.е. растояние до точки в скорость, а далее полный П-И-Д по скорости…

Еще кстати может быть момент болтанки в самой ИНС. Я даже видел это в СИМе (писал простой браузерный сим для инс с годик назад). Сценарий примерно такой. Двигаем дрон на определенной скорости, инс считает свои предсказания и корректится по гпс, и пока скорость примерно постоянна, то все ок. Выполняем резкое торможение и вот тут начинается болтанка, которая на реальной платформе усилится пид регулятором. Где болтанка возникает в основном из разности фаз входных данных корректора, а точнее все из за той же неверно выбранной/измеренний задержки гпс координат…

jShadow
mahowik:

Столкнулись с подобной проблемой. Вот что писал у себя ветке:

Благодарю за хинт, да, этот метод настройки применим и для моего регулятора - он в общем-то тот же: ошибка в скорость -> ПИД от скорости в ускорение -> ускорение в крены.

Да, при очень агрессивных коэффициентах регулятора по скорости болтанку может вызвать сама ИНС…

urfin33

Подскажите пожалуйста,какой лучше ГПС модуль прикрутить к SP Racing F3 Deluxe ?Буду рад любой ссылке на любой ресурс.И что делать со встроенным компасом?Физически убрать?

Dimj81

Добрый день? есть вот такой СС3D, миниOSD, хочу докупить GPS , и поставить все это дело на самолет (летающее крыло) , подскажите какую прошивку залить и не будет ли танцев с бубном, необходима стабилизация и возврат домой.

jShadow
Dimj81:

Добрый день? есть вот такой СС3D, миниOSD, хочу докупить GPS , и поставить все это дело на самолет (летающее крыло) , подскажите какую прошивку залить и не будет ли танцев с бубном, необходима стабилизация и возврат домой.

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

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

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

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

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