MultiWii

romushock
SovGVD:

там же где сама прога рядом лежит эта библиотека, я её из openjdk выковырял (тупо копирнул), когда ругалось

Извини, Глеб, но по ссылке открывается кнопка download и рядом ничего там не предлагается. Дай, плз, линк ещё разок.

omegapraim
tda2030:

противник всяких экстримальных для миросхемы режимов по питанию и входным уровням, поэтому, чтобы не было танцев с бубнами, конвертер уровней 5->3.3 для SСL SDA и все наверняка будет работать как положено. Конвертер несложный - два транзистора и четыре резистора.

я тоже противник)))) и поэтому заменил стаб на самой ардуине на 3,3 все работает как часы)))))

SovGVD
romushock:

по ссылке открывается кнопка download

надо нажать на неё, скачается архив, в нем папки вида application.win32 application.win64 и т.д. - соответственно зависит от версии вашей операционной системы (чаще всего win32)
если не работает на какой то специфичной операционной системе (не видит порты), то надо в этой системе найти файл librxtxSerial (обычно где то в той же папке что и java) и копирнуть в папку где прога лежит

romushock

Дык вот, не работает ни так

ни так

Порты видятся правильно, только ВТ (СОМ40) работает, а шнурок (СОМ7) - нет.

SovGVD

на скрине дата создания 2011 год, а я это недавно собирал… чето не то у вас… и даже хз чего за serial.jar там

  • версию которую я выложил - это стандартный конфигуратор без 3d коптера, для тех у кого косяки с графикой, поэтому врядли это как то повлияет на то какой порт и как видится
  • замена библиотеки ТОЛЬКО если у вас специфичная архитектура, например нетбук с arm процессором - в остальных случаях всё работает нормально
  • тут где то пробегало что откуда то еще надо librxtx* слить, чтобы bluetooth порты показывались в windows
    а вообще хз чем помочь, я в linux сижу - ни со шнурком, ни с bluetooth проблем ни разу не было
romushock
SovGVD:

на скрине дата создания 2011 год, а я это недавно собирал…

Это оно так распаковывается, не я отец ребёнка!!!
Похоже, придётся пользовать два гуя - для зуба и для шнурка. Веселуха…

mahowik
alexmos:

Первые результаты стабилизации по высоте (пока только теоретические)

ya vchera utrom uzhe uspel spiratit’ tvoi izmeneniya s code.google.com/p/multiwii-alexmos/…/MultiWii/ i vmerzhit’/vstavit’ ih v a3 ))
v celom neploho derzhit +/-1…2m, esli ne letat’, t.e. zavisnut’ i ne trogat’ … no pri peremeschenii skachki do 3…5m
alt PID primerno takie: p=2.5, I=0.010, D=30…45

p.s. est’ podozreniya chto s tochnost’yu baro v +/-1m luchshego resulata chem +/-1m ne dobit’sya dazhe s ochen’ horoshey matematikoy…

alexmos

О, круто, первый бета-тестер 😃 Вообще-то весь смысл доработки был как раз в том, чтобы при полетах высота держалась точно так же, как и при висениях, и не выходить за ±0.5м. И по графикам GUI - так и должно быть. Попробуй сначала получить те же результаты в GUI, что и я (без сонара), с коптером “в руках”. Т.е. скорость должны быть в районе 0 всегда и при рывках вверх четко реагировать, а при наклонах - нет. Если в GUI все так же, как у меня - попробуй включить движки, выставить газ на висение, включить BARO MODE (не отпуская из рук) и отследить, как реагирует газ на плавные или быстрые перемещения. По поводу PID рекомендации сложно давать, но думаю что P надо поднимать до 10-20, I нормально 0.010, а D можно уменьшать

mahowik:

p.s. est’ podozreniya chto s tochnost’yu baro v +/-1m luchshego resulata chem +/-1m ne dobit’sya dazhe s ochen’ horoshey matematikoy…

Это верно, точность удержания зависит целиком от барометра, но эти ±1 коптер должен отслеживать четко (и у меня в тестах было даже ±0.5 м). Если плавает больше метра, то что-то не так.

mahowik
  • posmotrel kod… est’ voprosi, potom sformuliruyu otpishus’…
    a poka est’ ideya dobavit’ nizkochastotniy filtr na sirie dannie s baro ~0.2-0.5hz (dumayu pomozhet ubrat’ osnovnoy shum) + podnyat’ ves ACC (t.e. ACC_BARO_CMPF) chtobi ne teryat’ bistrodeystvie izmereniy iz-za “medlennih” baro dannih …
alexmos:

Т.е. скорость должны быть в районе 0 всегда и при рывках вверх четко реагировать

eto proveryal pervim delom… tut ok vse

alexmos:

а при наклонах - нет

ne proveryal

alexmos:

попробуй включить движки, выставить газ на висение, включить BARO MODE (не отпуская из рук) и отследить, как реагирует газ на плавные или быстрые перемещения

soprotivlyatsya pri rivkah vniz… sbavlyaet gaz pri rivkah vverh…
ya eto tozhe delal nedelu nazad kogda proekciyu ACC vektora na Z veshal na D v pid regul’…

alexmos:

По поводу PID рекомендации сложно давать, но думаю что P надо поднимать до 10-20, I нормально 0.010, а D можно уменьшать

poprobuyu… no pri P > 4.0 nachnaet raskachku po vertikali +/-3…5m… umenshil P do 2…3 i podnyal D do 40 stalo luchshe…

alexmos:

Вообще-то весь смысл доработки был как раз в том, чтобы при полетах высота держалась точно так же, как и при висениях, и не выходить за ±0.5м.

eto pomnyu (ti vrode pisal v drugoy teme)… no poka ne vishlo…

soliada
alexmos:

Первые результаты стабилизации по высоте (пока только теоретические)

Извиняюсь,а можете написать типа инструкции куда надо вставить этот код?

native18

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

При подключении сервы в стандартный режим управления курсом, жужжания нет - стандартная работа.
Пробовал ставить аналоговые и цифровые сервы - результат одинаков.
Что надо изменить в коде, чтобы каналы движков стали работать в режиме серв?
Если непонятно, попробую объяснить иначе, очень надо.

alexmos
soliada:

Извиняюсь,а можете написать типа инструкции куда надо вставить этот код?

Тоже извиняюсь - инструкции пока нет, т.к. код ещё толком не отлажен, не буду рисковать и рекомендовать его для полетов. Так как для отладки пришлось довольно много мест модифицировать, просто так вставкой куска кода не обойдешься (да и смысла пока нет, если не будет тех результатов, для чего это затевалось). Как только облетаю, выложу и готовые исходники и инструкцию по настройке. То, что Александр с ним летает - так это на свой страх и риск 😃 У нас тут -12 до конца недели, так что пока настоящие тесты затягиваются 😦

Но все таки не удержался и попробовал в режиме висения на кухне, придерживая рукой за провод (с неотлаженным коптером 60см между винтами это довольно экстремально) - да, все как и рассчитано по теории - с барометром медленно плавает в диапазоне 1метр, с сонаром держит четко ±5см. Теперь надо добиться этих результатов при скоростном маневрировани и проверить, как сонар работает совметсно с барометром на пределе измерений сонара или в сложных для него условиях. Немного покрутил PID, лучшие результаты - P=10…20, I=0…0.010, D - 20…40.

native18:

При подключении сервы к каналу любого из двигателей серва нормально отрабатывает режимы. Но при этом постоянно жужжит и греется, даже если визуально находится в покое. При подключении сервы в стандартный режим управления курсом, жужжания нет - стандартная работа

Да, так и должно быть - посморите в GUI выходной сигнал на моторы - он скачет как бешенный (на коптере по карйней мере, не знаю что у вас). Для моторов это нормально, а для серв не очень - они туда-сюда дергаются. Для трикоптера видимо применен фильтр, котрый сгглаживает выходной сигнал. Нужно взять его и применить для остальных выходов. Второй варант - уменьшить P, увеличить I и попробвоать поиграть с D, чтобы “замедлить” реакции - сервы все равно так быстро не отрабоают как регулирует PID с дефолтными настройками.

www.youtube.com/watch?v=tAeQ6cnYgVo&feature=youtu.…

mahowik
alexmos:

У нас тут -12 до конца недели

tozhe mne pomeha! 😃 ya esli bolshe chem -20 togda uzhe ne idu 😉

mahowik:

est’ ideya dobavit’ nizkochastotniy filtr na sirie dannie s baro ~0.2-0.5hz (dumayu pomozhet ubrat’ osnovnoy shum) + podnyat’ ves ACC (t.e. ACC_BARO_CMPF) chtobi ne teryat’ bistrodeystvie izmereniy iz-za “medlennih” baro dannih …

chto dumaesh’?

alexmos
mahowik:

est’ ideya dobavit’ nizkochastotniy filtr na sirie dannie s baro ~0.2-0.5hz (dumayu pomozhet ubrat’ osnovnoy shum) + podnyat’ ves ACC (t.e. ACC_BARO_CMPF) chtobi ne teryat’ bistrodeystvie izmereniy iz-za “medlennih” baro dannih …

Так сейчас комплементарный фильтр и работает как НЧ-фильтр для барометра. Попробуй поднять ACC_BARO_CMPF (я тоже попробую с ним поиграть, когда будет реальная возможность для тестов, а не “с рук”). Возможно, придется перетасовать коэффициенты, чтобы ACC_BARO_CMPF не влиял на внутренний PID. Можно добавить и реальный НЧ-фильтр. Можно ещё больше ослабить PID в IMU, чтобы ACC меньше “слушался” барометра. Но все равно барометр будет плавать, только чуть медленнее.

Для меня на самом деле это не так важно - ведь на малых высотах точную привязку обеспечит сонар, а на высотах >5м колебания ±1м не так страшны.

Главное, что уже виден результат стабилизации по барометру 😃 На официальной версии коптер просто куда то уносило при включении режима 😃

mahowik

параметры покручу… отпишусь…

alexmos:

На официальной версии коптер просто куда то уносило при включении режима

тут какой то косяк с офф. версией. либо пишут что оч. хорошо держит (куча примеров на офф. форуме с рабочими пидами + я тож добивался хороших результатов порой), либо пишут вообще про разгон в +/-5м…
мой опыт таков: удавалось висеть в районе минуты +/-1м… а раз вообще как по сонару висел (+/-15…30см)… подвесил на 2м и гонял его рукой по полю и хоть бы хны висит себе… но иногда при тех же пидах начинает колбасить…

mahowik

update: Ток с поля (парковка супермаркета 12 ночи однако 😃) привалил. Отлетал три пака. Для беты оч. даже держит высоту!
ПИДы крутил П=5…25, И=0…0.01, Д=0…50
Лучшее чего удалось добиться это +/-1.5…2м в тупике без ветра и сквозняка при п=12 и=0.04 д=50. С легким ветром и в динамике (вперед на скорости 15-20км/ч потом резко назад…) подбрасывает вверх до 5м…

некоторые выводы: при изменении П, поведение контроллера высоты заметно меняется, а вот влияние Д почти не видно, загонял его в ноль и получал почти теже результаты. Думаю его можно смело увеличивать в 4…6 раз в пид регуле…

Covax

Саш, а не хочешь попробывать повесить настройку пидов на крутилку в мультивие?
Вообще конечно идеально выбирать какой именно параметр будет обновляться через ГУИ, но хотя бы через прошу.

#RC_TRIMMING_ROLLPITCH_P
//#RC_TRIMMING_ROLLPITCH_I
//#RC_TRIMMING_ROLLPITCH_D
и т.д.

mahowik
alexmos:

как сонар работает совметсно с барометром на пределе измерений сонара или в сложных для него условиях

вот кстать неплохой алгоритм перехода баро-сонар из пирата чутка модифицированный под себя:

#define MAX_SONAR_RANGE 400
#define BARO_TO_SONAR MAX_SONAR_RANGE+150 // Due to low baro accuracy
#define SONAR_TO_BARO_FADE (MAX_SONAR_RANGE/3) // 33% of Max sonar range
#define SONAR_TO_BARO_FADE_FROM (MAX_SONAR_RANGE - SONAR_TO_BARO_FADE) //4m-33% = 2.67m start value to fading from sonar to baro

int32_t  currAlt;
  if(SONAR){
    //sonarTempDistance = (sonarTempDistance - (sonarTempDistance >> 3)) + sonarDistance;
    //sonarDistance = sonarTempDistance >> 3;

    if((BaroAlt - BaroAltOffset) < BARO_TO_SONAR){
      float scale = (sonarDistance - SONAR_TO_BARO_FADE_FROM) / SONAR_TO_BARO_FADE;
      scale = constrain(scale, 0, 1);
      currAlt = ((float)sonarDistance * (1.0 - scale)) + ((float)(BaroAlt - BaroAltOffset) * scale);
    }
    else{
      currAlt = (BaroAlt - BaroAltOffset);
    }
  }
  else{
    // no sonar altitude
    currAlt = (BaroAlt - BaroAltOffset);
  }
Covax:

настройку пидов на крутилку в мультивие

по идее не сложно… тут даже это было в теме месяцев так 6-8 назад… некий неизвестный Сайбериан писал неизвестному Сергею Коваксу с кусками кода в комменте… ))
про неизвестных шучу конечно! 😉 но кажется точно было в теме это… посмотрю отпишусь… а пока пора спать… чрез 6ч на работу ((

alexmos
mahowik:

вот кстать неплохой алгоритм перехода баро-сонар из пирата чутка модифицированный под себя

Да, плавное микширование на пределе измерений я планировал добавить, а тут похоже именно в этом суть. Сейчас у меня микшируется по уровню ошибок (на пределе измерений ошибки вылезут и автоматически перейдем на барометр), но будет существенная задержка с “замершей высотой”. Добавляю этот алгоритм, когда отладим существующие.

mahowik:

С легким ветром и в динамике (вперед на скорости 15-20км/ч потом резко назад…) подбрасывает вверх до 5м…

Мне кажется тут поможет только дебаггинг алгоритма - подключать bluetoth, брать ноут и гонять. Один гоняет, другой сморит в GUI как ведет себя определитель высоты. За ту часть, что в PID контроллере, я практически уверен - там сложно ошибиться.

D-составляюшая у меня проявляется хорошо - если она в 0, то резкие рывки вниз отрабатываются с задержкой, если она 50 - то мгновенно. Ты точно Alt PID крутишь? Velocity PID не используется у меня.

mahowik:

тут какой то косяк с офф. версией. либо пишут что оч. хорошо держит (куча примеров на офф. форуме с рабочими пидами + я тож добивался хороших результатов порой), либо пишут вообще про разгон в +/-5м…

В официальной версии алгоритм очень похож на мой (я это понял после того как закончил свой), но из-за оптимизаций и перехода на целочисленные вычисления понять его “физические прнципы” очень сложно. Возможно, там есть или логическая ошибка, и он уходит в “раскачку” вместо стабилизации, или переполнение какой-то переменной. (именно поэтому я пока не спешу оптимизировать свои вычисления)

SovGVD

мне послышалось или 20-80кг, 150км и 20к$ о_0
национальная разработка как всегда =)))

mahowik
alexmos:

Мне кажется тут поможет только дебаггинг алгоритма - подключать bluetoth, брать ноут и гонять. Один гоняет, другой сморит в GUI как ведет себя определитель высоты.

это дааа, напарника порой очень не хватает…

alexmos:

За ту часть, что в PID контроллере, я практически уверен - там сложно ошибиться. D-составляюшая у меня проявляется хорошо - если она в 0, то резкие рывки вниз отрабатываются с задержкой, если она 50 - то мгновенно.

а вот тут может быть косяк… в оф. версии там ПИ-ПД регуль, где ПИ на медленных данных высоты, а ПД на быстрых данных скорости и это должно работать. хороший пример - стаб. мод с ПИ-ПД регулем, где ПИ тоже на относительно медленных данных углов из ИМУ, а ПД на быстрых данных угловых скоростей с гиро… это я к тому что рано наверное ты отказался от ПИ-ПД… и я писал также об этом АлексуВПариже приводя данную аналогию в защиту ПИ-ПД, который тоже выкосил ПД регуль и теперь альт холд вообще не пашет (проверял на последней дев.), хотя он сейчас тоже его мучает… прям как в истории открытий! новое знание приходит примерно в одно и тоже время группе людей, а открытие уходит в свет от самого быстрого 😃

alexmos:

Ты точно Alt PID крутишь? Velocity PID не используется у меня.

обижжжжаете профессор! 😉

з.ы. забыл написать. вчера на тестах использовал ACC_BARO_CMPF=500.0f… меньше шума в гуи и вроде без ущерба быстродействию…
и кстать после прочтения статьи на хабре многие моменты в алгоритме прояснились, но не совсем ясно как bias можно складывать с ускорением если это не соразмерные величины… вот тут у меня в голове не хватает уровня абстракции, чтобы это понять… и если не трудно поясни плз.

omegapraim
Dimm168pin:

простите за оффтоп, не мог не поделиться)

Единственный аппарат в Украине, и в России такого нет)))))) Во дед загоняется та, а))) а нас тут вообще не существует))))))