А давайте обсудим Arducopter - APM

Sir_Alex
Covax:

Алексей, вот обьясни, почему в 1.0.49 прошивке у баро bmp085 показания (не raw, а в планере) скачут плюс минус пол метра в помещении, а в 2.1 там же в помещении плюс минус 3 метра?

Понятия не имею, 2.1 я не смотрел, портирование начал сразу с 2.1.1 Альфа, а сейчас 2.2, особой разницы в код 085 не заметил. Зато заметил, что MS5611 не имеет никакого фильтра, так что, пока его не добавят - будет высота плавать хорошенько.
Как я уже говорил, сейчас проблемы вылазят из за переделок прошивки под новую APM2 и подготовкой под ARM. Просто надо перетерпеть этот период.

alexeykozin

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

кстати чтобы избежать “задержки” при высокой вертикальной скорости можно изменять число сэмплов в меньшую сторону

igor_v_t
alexeykozin:

так тест был уже на новой плате фиолетовой, там вместо бошевского барометра MS5611-01BA03
потоки создаваемые винтами безусловно должны влиять на баро даже когда одно отверстие в герметичном корпусе снизу, но в режиме зависания на высоте 5м и 7м винты должны одинаково влиять на барометр и сооветственно ухода быть недолжно, либо в коде бага либо пид какой надо настраивать, телеметрия нужна чтоб понять в самом деле ли он считает будучи на 7 метрах что он на 5 или ему пофиг на альтеррор в 2 метра
в первом (маленьком пилоте) например барометрическую высоту в пропорции смешивали с высотой по жпс, что имхо бред жпска может врать по высоте метров на 200 и показывать при этом чудесные DOP и CNR
вот пример, на высоте 5 этажа жпс показывает -80 метров под уровнем моря

Про то что плата новая я понимаю. Дырочка не годится. Нужен именно кусок ваты, чтобы дуло со всех сторон, но поток основательно тормозился и оставалось одно давление. Алгоритмы действительно кривоваты. Я летаю с сонаром и баро МВ1260. До 8 метров сонар работает хорошо. Алгоритм достоверности показаний сонара из ArducopterNG. При недостоверном сонаре или после 8 метров переход на баро. При этом Пиды на баро в два раза ниже, чтобы не дергалось сильно. Но из-за больших шумов ВМР085 все равно сильно гоняет по высоте. Действительно без телеметрии и лога с нужными параметрами настроить невозможно. На ArducopterNG могу вписать что угодно, а с новой программой пока не разобрался, поэтому вникнуть надо. Пока что вожусь с магнетометром. Он тоже плохо работает при наклонах коптера и поэтому в автопилоте прямая превращается в дугу. Работы по доводке очень много и не всегда есть время и настроение.

Alex27111972
Sir_Alex:

Просто надо перетерпеть этот период.

“Золотые слова, Юрий Венедиктович!” (Наша Раша)

igor_v_t
alexeykozin:

а что за баро такой ? МВ1260
может опечатка?

Сонар это. Диапазон 0,2-10 метров. Разрешение 1 см Хорошо работает на земле, асфальте, низкой траве. Плохо на высокой

alexeykozin

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

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

Sir_Alex

В общем, судя по всему, есть проблема с MS5611 - пока идет изменение температуры датчика - прилично плывет высота (несколько метров). Возможно есть ошибка в компенсации температуры или еще что нить, как только темпа устаканивается, показания нормальные идут…
Почитал по этому поводу на блоге Varesano.net (автор FreeIMU), там у людей такая же беда.

Sir_Alex

Добавил медианный фильтр (только на raw pressure), показания улучшились, но все равно, какая то синусоида в результатах просматривается. Может как то влияет питание? У меня в тестах, ардуина подключена и питается через USB.
График: clip2net.com/s/1vgEz

alexeykozin

а сколько сэмплов берешь?
по идее стабилизация чаще чем раз в 1/10 секунды не нужна, логично собирать сэмплы в течение последней 1/10 секунды, из них обрезать медианным фильтром ошибки, из серединной части взять несколько значений, взять предыдущее значение барометра (N раз) и из этого ряда сформировать среднее значение

по даташиту на барометр влияет питание и свет, можно предположить что еще и звук - поэтому так хороша вата

я тут ставлю опыты с жпс модулями вот что им хорошо помогает бороться с помехой:

  • пропустить шлейф идущий к девайсу через феритовое кольцо раза три
  • от земли после кольца, с платы девайса соединить с экранирующей пластиной
  • сигнальные линии в разрыв вставить 330 ом
    может по аналогии и тут сработает
Timmy

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

про мой апм дидроны молчат…

igor_v_t
alexeykozin:

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

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

На аналоговом выходе напряжение пропорционально расстоянию до земли. Что будет при нескольких объектах на разных расстояниях не исследовал , поскольку начинал на МВ1200, а он хуже меряет и поначалу надо было хоть какую то устойчивую работу получить, а после того как заработало исследования прекратились.

Alex-13

У меня рама вот такого вида, разместил плату АП вперед 8-10 см от пересечения лучей На сколько это критично?

igor_v_t
Alex-13:

У меня рама вот такого вида, разместил плату АП вперед 8-10 см от пересечения лучей На сколько это критично?

Скорее всего не очень, так как по акселю реакция медленная и должно усреднится., но просто пробовать надо. Так сложно сразу посчитать. И влияет вращение, а там скорости небольшие и больших ускорений по оси Z не ожидается.

Alex-13

Побовал летать при таком расположении но полет не очень устойчивый болтает по тангажу

igor_v_t
Alex-13:

Побовал летать при таком расположении но полет не очень устойчивый болтает по тангажу

Может быть. Пид подкрутить можно(уменьшить который STAB, если экстремальная реакция не нужна. А так по теории лучше по центру. Правда может и дифф. составляющая помочь. Если да то больше ничего делать не надо.

Alex-13

Форма рамы нравится не хочется крест делать Попробую подкрутить PID если не получится то поставлю на центр

igor_v_t
Alex-13:

Побовал летать при таком расположении но полет не очень устойчивый болтает по тангажу

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

Alex-13

К сожалению я в програмировании полный “дуб”

igor_v_t
Alex-13:

К сожалению я в програмировании полный “дуб”

Вы же используете исходник для программирования микросхемы. Написан он простым языком. Далее Ваша проблема связана с изменением составляющей ускорения по оси Z, измеренная акселерометром. От вращения с угловым ускорением (величина пропорциональная производной от угловой скорости) изменяется составляющая ускорения по оси Z на величину углового ускорения умноженную на радиус. Если это понятно то ищите соответствующие переменные в программе и вычитаете Вашу добавку. И никакого програмирования.