MultiWii

alexmos

Может конечно, ALLINONE разные бывают, но у меня помогли вот такие строки для 1.8:
Sensors.pde:
#if !defined(BMA180_ADDRESS)
//#define BMA180_ADDRESS 0x80
#define BMA180_ADDRESS 0x82
#endif

config.h:
#define YAW_DIRECTION 1 // if you want to reverse the yaw correction direction

#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = X; accADC[PITCH] = Y; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = X; gyroADC[PITCH] = Y; gyroADC[YAW] = Z;}
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = -Y; magADC[PITCH] = X; magADC[YAW] = Z;}

Адрес гиры не менял. Чтобы компас не показывал погоду, важно точно согласовать его ориентацию с гирой и акселерометром. Ну и калибровать компас в ГУИ.

Morfan

Поменял ориентацию гиры по 2м осям - насчет Z не уверен, что она в реверсе поэтому оставил как есть. Коптер полетел гораздо уверенней. Хотя конечно чуток потряхивает один фиг.
Надо еще с пидами поковыряться и с механической частью в плане вибраций итд. А еще у меня один регулятор 30а и 3 по 18а может изза этого тоже колбасит.

skyrider

Залил 1.8, все настройки и пиды выставил точ точ как были в 1.7, попробовал, снес нафиг и вернул 1.7
Во первых стал оч резкий, ну это не главное и поправимо через RC RATE и RC EXPO, во вторых после активных движений стиками во время полета в режиме стаб левел сильно уходит горизонт, т.е. если после этого его завесить и отпустить стики - сильно тянет влево и в перед, достаточно сесть , включить - выключить движки и горизонт выравнивается. Компаса и баро нет, стоят только ITG3200 и BMA020.
В 1.7 с этими же настройками летает мегастабильно 😃

Covax

Там перелопатили код стабилизации, врятли ПИДЫ от 1.7 подойдут 1.8, я лично P (в 1.5 раза) и D чуточку убавлял, летает лучше на 1.8 в итоге, так как там фильтр на вибрацию ввели.

skyrider

Летает лучше на ALLINONE, или на “гира + аксель”, ну в смысле мне интересно почему у меня тады горизонт плывет?
Может 1.8 заточен под платы типа ALLINONE, где на борту еще есть компас , баро и тд.

Covax

Врятли заточен, компас и баро работает там как и работало, не аккуратно, с ними хуже летает помоему.
Горизонт ли уходит? Или у регулей плывет кривая? У меня ничего не уходит, ну или я уже не замечаю этого.

skyrider

Не, точно не регули, т.к. после 1.8 через 5 мин. залил 1.7 и все стало ОК.
Не заметить трудно, уводит сильно.

Covax

И у меня BMA020 лучше BMA180 работал всегда, надо разбираться что там и где не так.

skyrider

Единственное что приходит в голову - накапливается ошибка т.к. полет в режиме стаб левел на 1.8 более агрессивный и резкий ( если не менять пиды в сравнении с 1.7 ) в следствии чего возможно ведет горизонт.
Если сесть и вырубить движки а потом сразу включить - с горизонтом становится все ОК, т.е. надо смотреть прошивку, видимо в этот момент ( Motor Disarm/Motor Arm ) обнуляется гира либо аксель.

Covax

обнуляется гира при включении батареи, аксель обнуляется только при калибровке

skyrider
Covax:

обнуляется гира при включении батареи, аксель обнуляется только при калибровке

То что обнуляется именно так для 1.7 я в курсе, для 1.8 хз, ну да хрен с ним, хотел то фильтры глянуть как работают да LEVEL_PDF посмотреть.
LEVEL_PDF на 1.7 кто нить прикручивал, здесь код www.multiwii.com/forum/viewtopic.php?f=8&t=503#p25…
Интересует куда именно его вставлять в скетч, и какие предпочтительные P и I выставлять для него в GUI ?

skyrider
skyrider:

LEVEL_PDF на 1.7 кто нить прикручивал, здесь код www.multiwii.com/forum/viewtopic.php?f=8&t=503#p25…

меняемна код из 1.7 с 2004 по 2029 строчку на кусок кода по ссылке , LEVEL_PDF - ерунда, работает как если RC RATE и RC EXPO выкрутить чтоб коптер еле реагировал на стики.

Covax

Давно не новый, за эти деньги лучше взять оригинальный ардукоптер.

Morfan

Ура! Серёж спасибо! Благодаря твоим пидам и 1.8 полетел гад!!! Висит в целом неплохо но стоит его погонять и подергать по осям - ощущение, что его укачивает 😁 , начинается расколбас и если вовремя не посадить - неизбежно падает.

Covax

Ну наконецто, снизь еще P попробуй 😃

mahowik
skyrider:

Во первых стал оч резкий, ну это не главное и поправимо через RC RATE и RC EXPO, во вторых после активных движений стиками во время полета в режиме стаб левел сильно уходит горизонт, т.е. если после этого его завесить и отпустить стики - сильно тянет влево и в перед, достаточно сесть , включить - выключить движки и горизонт выравнивается. Компаса и баро нет, стоят только ITG3200 и BMA020.

таже фигня с 1.8 в стаб моде… уходит горизонт после разовых дерганий стиками… устал бороться уже… тоже ITG3205 и BMA020

в 1.7 и 1.8 совершенно разные IMU в этом дело скорее всего… и вот делема акромод в 1.8 мега суппер, но чет. не то со стаб модом,

хотя скгодня кой чего добился:

  1. выставил пиды для акро высокие 7-0.035-40, где высокий D делает коптер очень мягким-плавным. Но высокий D уменьшает P потому его надо поднять до 7-9. Тут надо помнить что акро пиды влияют на стаб мод. P и D для ролл+питч, а по яв также I параметр, т.е. все. Потому надо сперва отстроить акро мод.
    В стаб моде оставил дефолтные параметры.
  2. увеличил фильтр на аксель до 40
/* Set the Low Pass Filter factor for ACC */
/* Increasing this value would reduce ACC noise (visible in GUI), but would increase ACC lag time*/
/* Comment this if  you do not want filter at all.*/
/* Default WMC value: 8*/
#define ACC_LPF_FACTOR 40
  1. уменьшил влияние акселя в IMU
/* Set the Gyro Weight for Gyro/Acc complementary filter */
/* Increasing this value would reduce and delay Acc influence on the output of the filter*/
/* Default WMC value: 300*/
//#define GYR_CMPF_FACTOR 310.0f
#define GYR_CMPF_FACTOR 3000.0f
skyrider:

Если сесть и вырубить движки а потом сразу включить - с горизонтом становится все ОК, т.е. надо смотреть прошивку, видимо в этот момент ( Motor Disarm/Motor Arm ) обнуляется гира либо аксель

Обнуляются только накопленные ошибки…

alexmos:
  1. Добавил Expo для Throttle в коде, т.к. мой дешевый пульт не позволял точно удержать высоту, постоянно вверх-вниз колбасило. Теперь высота держится элементарно.
  • спасибо огромное Алексею за реализацию экспо-тротл (для дешевых пультов). Разобрался с кодом + проверил в полете. Реально проще стало держать высоту! 😃
skyrider
mahowik:

акромод в 1.8 мега суппер

можно по подробней, чем он мега супер?

mahowik:

увеличил фильтр на аксель до 40

mahowik:

уменьшил влияние акселя в IMU

на сколько стало стабильней, или горизонт перестал плыть полностью?

mahowik:

Обнуляются только накопленные ошибки…

да, видимо так и есть, это я выше не правильно выразился

Для себя сделал вывод , 1.8 пока что нафиг, по крайней мере для ITG3205 и BMA020, поставил обратно 1.7 - все полетело плавно, размеренно и предсказуемо 😎

mahowik
skyrider:

можно по подробней, чем он мега супер?

ne kolbasit, ne pluschit, ne tryaset v bolshom diappazone PIDov letabilniy + esli postavit visokiy P,D (7-0.035-40) to daje pri ochen rezkom snijenii ne uhodit v raskachku

skyrider:

на сколько стало стабильней, или горизонт перестал плыть полностью?

polnost’u ne perestal, no dumayu mogno umenshit’ do predela ili zagnat “I” v zero i vse togda stanet gud voobsche

skyrider:

Для себя сделал вывод , 1.8 пока что нафиг, по крайней мере для ITG3205 и BMA020, поставил обратно 1.7 - все полетело плавно, размеренно и предсказуемо

ne mogu soglasutsya 😃 v 1.8 mnogo fenek novih… nado pomuchat’ esche

kstati kakie u vas parametri(rctate, expo) i PID (acro, level) dlya 1.7 ?!

mahowik

perepiska s ziss_dm komu interesno

ziss_dm

В ответ на ваше сообщение #2841984

  1. Проверь acc_1G
  2. Проверь ACC Z - перевернутый должен быть отрицательный
  3. Закомментируй

  // Apply complimentary filter (Gyro drift correction)
  // If accel magnitude >1.4G or <0.6G => we neutralize the effect of accelerometers in the angle estimation.
  // To do that, we just skip filter, as EstV already rotated by Gyro
//  if (!((36 > AccMag) or (AccMag > 196))) {
    for (axis = 0; axis < 3; axis++)
      EstG.A[axis] = (EstG.A[axis] * GYR_CMPF_FACTOR + ACC_VALUE) * INV_GYR_CMPF_FACTOR;
//  }
  1. ACC_LPF_FACTOR 40 это дофига - переполниться
  2. GYR_CMPF_FACTOR 3000.0f - это считай что нету acc 😉

regards,
ziss_dm

  1. defoltniy dlya bmb020 (acc_1G = 255). Nugno izmenit ego?
  2. eto uje kak otche nash pomnu 😃
  3. v 1.8 proshivke neskolko rashirenniy variant… t.e. vse zakomentit’ ili vtoroy condishn ostavit?

 // Apply complimentary filter (Gyro drift correction)
  // If accel magnitude >1.4G or <0.6G and ACC vector outside of the limit range => we neutralize the effect of accelerometers in the angle estimation.
  // To do that, we just skip filter, as EstV already rotated by Gyro
  accLim = acc_1G*4/10;
  if ( ( 36 < accMag && accMag < 196 ) || (  abs(accSmooth[ROLL])<accLim  && abs(accSmooth[PITCH])<accLim ) ) {
    for (axis = 0; axis < 3; axis++)
      EstG.A[axis] = (EstG.A[axis] * GYR_CMPF_FACTOR + ACC_VALUE) * INV_GYR_CMPF_FACTOR;
  }
  1. skolko max mogno? ili gde podnyat razryadnost?
  2. IMU rabotaet stabilno vpolne i esli pokrutit poboltat silno platu to prosto doplivaniya medlennee stali, t.e. ves acc umenshilsya

Jalko vchera ne poproboval umenshit level “I” ili v zero zagnat’… dumayu problema reshilas’ bi, t.k. pri acro PID 7-0.035-40 systema plavnaya kak sybmarina, t.e. intuitivno dumayu chto level “I” mogno zanulit, t.k. issue dumayu v bistrom nakaplivanii oshibki…

p.s. slomal vchera os’ na odnom iz dvijkov i seychas otvertku (mini shestigrannik) nado budet zakazivat’ i jdat’ 😦

skyrider
mahowik:

kstati kakie u vas parametri(rctate, expo) i PID (acro, level) dlya 1.7 ?!

RC RATE-40, RC EXPO-70, PID пока что оставил 4-0.030-40 - не трясет даже в ветер.

mahowik:

Jalko vchera ne poproboval umenshit level “I” ili v zero zagnat’… dumayu problema reshilas’ bi, t.k. pri acro PID 7-0.035-40 systema plavnaya kak sybmarina, t.e. intuitivno dumayu chto level “I” mogno zanulit, t.k. issue dumayu v bistrom nakaplivanii oshibki…

Интересны окончательные результаты, если проблема решится дайте знать, обязательно попробую на квадрике, строю трикоптер ( ITG3205+ADXL345), на нем тоже можно будет попробовать.