MultiWii
Врятли заточен, компас и баро работает там как и работало, не аккуратно, с ними хуже летает помоему.
Горизонт ли уходит? Или у регулей плывет кривая? У меня ничего не уходит, ну или я уже не замечаю этого.
Не, точно не регули, т.к. после 1.8 через 5 мин. залил 1.7 и все стало ОК.
Не заметить трудно, уводит сильно.
И у меня BMA020 лучше BMA180 работал всегда, надо разбираться что там и где не так.
Единственное что приходит в голову - накапливается ошибка т.к. полет в режиме стаб левел на 1.8 более агрессивный и резкий ( если не менять пиды в сравнении с 1.7 ) в следствии чего возможно ведет горизонт.
Если сесть и вырубить движки а потом сразу включить - с горизонтом становится все ОК, т.е. надо смотреть прошивку, видимо в этот момент ( Motor Disarm/Motor Arm ) обнуляется гира либо аксель.
обнуляется гира при включении батареи, аксель обнуляется только при калибровке
обнуляется гира при включении батареи, аксель обнуляется только при калибровке
То что обнуляется именно так для 1.7 я в курсе, для 1.8 хз, ну да хрен с ним, хотел то фильтры глянуть как работают да LEVEL_PDF посмотреть.
LEVEL_PDF на 1.7 кто нить прикручивал, здесь код www.multiwii.com/forum/viewtopic.php?f=8&t=503#p25…
Интересует куда именно его вставлять в скетч, и какие предпочтительные P и I выставлять для него в GUI ?
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 выкрутить чтоб коптер еле реагировал на стики.
Как вам новый контроллер, может уже кто то испытал?
www.ebay.com/itm/…/260854008499
Давно не новый, за эти деньги лучше взять оригинальный ардукоптер.
Ура! Серёж спасибо! Благодаря твоим пидам и 1.8 полетел гад!!! Висит в целом неплохо но стоит его погонять и подергать по осям - ощущение, что его укачивает 😁 , начинается расколбас и если вовремя не посадить - неизбежно падает.
Ну наконецто, снизь еще P попробуй 😃
Во первых стал оч резкий, ну это не главное и поправимо через RC RATE и RC EXPO, во вторых после активных движений стиками во время полета в режиме стаб левел сильно уходит горизонт, т.е. если после этого его завесить и отпустить стики - сильно тянет влево и в перед, достаточно сесть , включить - выключить движки и горизонт выравнивается. Компаса и баро нет, стоят только ITG3200 и BMA020.
таже фигня с 1.8 в стаб моде… уходит горизонт после разовых дерганий стиками… устал бороться уже… тоже ITG3205 и BMA020
в 1.7 и 1.8 совершенно разные IMU в этом дело скорее всего… и вот делема акромод в 1.8 мега суппер, но чет. не то со стаб модом,
хотя скгодня кой чего добился:
- выставил пиды для акро высокие 7-0.035-40, где высокий D делает коптер очень мягким-плавным. Но высокий D уменьшает P потому его надо поднять до 7-9. Тут надо помнить что акро пиды влияют на стаб мод. P и D для ролл+питч, а по яв также I параметр, т.е. все. Потому надо сперва отстроить акро мод.
В стаб моде оставил дефолтные параметры. - увеличил фильтр на аксель до 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
- уменьшил влияние акселя в 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
Если сесть и вырубить движки а потом сразу включить - с горизонтом становится все ОК, т.е. надо смотреть прошивку, видимо в этот момент ( Motor Disarm/Motor Arm ) обнуляется гира либо аксель
Обнуляются только накопленные ошибки…
- Добавил Expo для Throttle в коде, т.к. мой дешевый пульт не позволял точно удержать высоту, постоянно вверх-вниз колбасило. Теперь высота держится элементарно.
- спасибо огромное Алексею за реализацию экспо-тротл (для дешевых пультов). Разобрался с кодом + проверил в полете. Реально проще стало держать высоту! 😃
акромод в 1.8 мега суппер
можно по подробней, чем он мега супер?
увеличил фильтр на аксель до 40
уменьшил влияние акселя в IMU
на сколько стало стабильней, или горизонт перестал плыть полностью?
Обнуляются только накопленные ошибки…
да, видимо так и есть, это я выше не правильно выразился
Для себя сделал вывод , 1.8 пока что нафиг, по крайней мере для ITG3205 и BMA020, поставил обратно 1.7 - все полетело плавно, размеренно и предсказуемо 😎
можно по подробней, чем он мега супер?
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
на сколько стало стабильней, или горизонт перестал плыть полностью?
polnost’u ne perestal, no dumayu mogno umenshit’ do predela ili zagnat “I” v zero i vse togda stanet gud voobsche
Для себя сделал вывод , 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 ?!
perepiska s ziss_dm komu interesno
В ответ на ваше сообщение #2841984
…
- Проверь acc_1G
- Проверь ACC Z - перевернутый должен быть отрицательный
- Закомментируй
// 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; // }
- ACC_LPF_FACTOR 40 это дофига - переполниться
- GYR_CMPF_FACTOR 3000.0f - это считай что нету acc 😉
regards,
ziss_dm
- defoltniy dlya bmb020 (acc_1G = 255). Nugno izmenit ego?
- eto uje kak otche nash pomnu 😃
- 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;
}
- skolko max mogno? ili gde podnyat razryadnost?
- 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’ 😦
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 - не трясет даже в ветер.
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), на нем тоже можно будет попробовать.
RC RATE-40, RC EXPO-70, PID пока что оставил 4-0.030-40 - не трясет даже в ветер.
a dlya Level moda (stab t.e.) kakie PID na 1.7?
a dlya Level moda (stab t.e.) kakie PID na 1.7?
14-0.000
У меня вопрос к знатокам MultiWii, какими настройками добится более резвого разворота квадрика по yaw , а то он уж больно какойто вялый. У меня была прошивка 1,6 1,7 1,8 1,8p2 везде одинаково медленно разворачивается.
Не очень важная доработка но я думаю что полезно: более точная калибровка нуля гироскопа. Сейчас в коде ноль округляется до целых. Так как данные гироскопа интегррируются, даже небольшая ошибка накапливается. Лучше окрулять до десятых, тем самым слегка повышается точность и уменьшается дрифт.
Sensors.pde, GYRO_Common(): ... if (calibratingG == 1) { gyroZero[axis]=g[axis]/40; ... for (axis = 0; axis < 3; axis++) { gyroADC[axis] = (int32_t)(gyroADC[axis] * 10 - gyroZero[axis])/10; ...
похоже Алексей это бомба в коде 😃 настраивал IMU на предмет LEVEL дрифта и совсем забыл, что ранее добавил ваш энхансмент… пол дня промучался, не понимания почему при резких поворотах появилось доплывание на 30-60гр.
Самое главное что по мат. части все верно по идее и даж начал думать что разрядности gyroZero не хватает. Поменял на 32 бита, но таже проблема похоже. Попробуйте просто резко крутануть плату на 90гр. и обратно на 180гр.
Вернул калибровку на место, доплывания прекратились…
какими настройками добится более резвого разворота квадрика по yaw , а то он уж больно какойто вялый
YAW “P” можно увеличить… если 20-ти не хватит, то можно в коде коэф. добавить 😃
Вот жеж блин сидел смотрел фильм и решение вдруг самое всплыло, а даже вроде и не думал… подсознание варило знацца 😃
преобразование в инт32 должно относиться к gyroADC[axis] а не результату в скобках… тут и было переполнение…
gyroADC[axis] = ((int32_t)gyroADC[axis] * 10 - gyroZero[axis])/10;
проверил… работает!