А давайте обсудим Arducopter - APM
Это сонар
а что за баро такой ? МВ1260
может опечатка?
Сонар это. Диапазон 0,2-10 метров. Разрешение 1 см Хорошо работает на земле, асфальте, низкой траве. Плохо на высокой
чтото меня взяли сомнения касательно правильно ли в ардукоптере оценивается аналоговый сигнал сонара
вот из даташита картинка иллюстрирующая расстояние до “целей” в условиях нескольких, и осцилограмма аналогового сигнала,
тут важный момент не столько напряжение сколько время от излучаемого импульса до ближайшей цели
В общем, судя по всему, есть проблема с MS5611 - пока идет изменение температуры датчика - прилично плывет высота (несколько метров). Возможно есть ошибка в компенсации температуры или еще что нить, как только темпа устаканивается, показания нормальные идут…
Почитал по этому поводу на блоге Varesano.net (автор FreeIMU), там у людей такая же беда.
Добавил медианный фильтр (только на raw pressure), показания улучшились, но все равно, какая то синусоида в результатах просматривается. Может как то влияет питание? У меня в тестах, ардуина подключена и питается через USB.
График: clip2net.com/s/1vgEz
а сколько сэмплов берешь?
по идее стабилизация чаще чем раз в 1/10 секунды не нужна, логично собирать сэмплы в течение последней 1/10 секунды, из них обрезать медианным фильтром ошибки, из серединной части взять несколько значений, взять предыдущее значение барометра (N раз) и из этого ряда сформировать среднее значение
по даташиту на барометр влияет питание и свет, можно предположить что еще и звук - поэтому так хороша вата
я тут ставлю опыты с жпс модулями вот что им хорошо помогает бороться с помехой:
- пропустить шлейф идущий к девайсу через феритовое кольцо раза три
- от земли после кольца, с платы девайса соединить с экранирующей пластиной
- сигнальные линии в разрыв вставить 330 ом
может по аналогии и тут сработает
пока не имею, но я попробывал бы бокс с резиновой мембраной(от резин перчатки или возд шарика), те изоляция от потоков воздуха и звуковой фильтр и в свою очередь передача давления мембраной. обеспечит светоизоляцию, фильтр звука и фильтр температуры, в свою очередь время отклика может уменьшиться
не притендую на истину, просто поделился своей мыслью
про мой апм дидроны молчат…
чтото меня взяли сомнения касательно правильно ли в ардукоптере оценивается аналоговый сигнал сонара
вот из даташита картинка иллюстрирующая расстояние до “целей” в условиях нескольких, и осцилограмма аналогового сигнала,
тут важный момент не столько напряжение сколько время от излучаемого импульса до ближайшей цели
На аналоговом выходе напряжение пропорционально расстоянию до земли. Что будет при нескольких объектах на разных расстояниях не исследовал , поскольку начинал на МВ1200, а он хуже меряет и поначалу надо было хоть какую то устойчивую работу получить, а после того как заработало исследования прекратились.
Скорее всего не очень, так как по акселю реакция медленная и должно усреднится., но просто пробовать надо. Так сложно сразу посчитать. И влияет вращение, а там скорости небольшие и больших ускорений по оси Z не ожидается.
Побовал летать при таком расположении но полет не очень устойчивый болтает по тангажу
Побовал летать при таком расположении но полет не очень устойчивый болтает по тангажу
Может быть. Пид подкрутить можно(уменьшить который STAB, если экстремальная реакция не нужна. А так по теории лучше по центру. Правда может и дифф. составляющая помочь. Если да то больше ничего делать не надо.
Форма рамы нравится не хочется крест делать Попробую подкрутить PID если не получится то поставлю на центр
Побовал летать при таком расположении но полет не очень устойчивый болтает по тангажу
Вообще эту асиметрию можно учесть в алгоритме, но сначала нужно проверить симметричный ли сам коптер. У меня такая проблема с разными Пидами по осям возникала, когда писал свой микшер на 6-ку. Один регуль барахлил и долго возился с проблемой.
К сожалению я в програмировании полный “дуб”
К сожалению я в програмировании полный “дуб”
Вы же используете исходник для программирования микросхемы. Написан он простым языком. Далее Ваша проблема связана с изменением составляющей ускорения по оси Z, измеренная акселерометром. От вращения с угловым ускорением (величина пропорциональная производной от угловой скорости) изменяется составляющая ускорения по оси Z на величину углового ускорения умноженную на радиус. Если это понятно то ищите соответствующие переменные в программе и вычитаете Вашу добавку. И никакого програмирования.
пока идет изменение температуры датчика - прилично плывет высота
Может, вообще температуру выбросить? Т.е. для навигации применять высоту ЖПС, а для удержания высоты, как более быструю величину - барометр? Тупо его сырые показания, безо всяких вычислений.
Просто замечал такую фишку, когда зимой летаешь, 3.3В стаб греется, и когда треха стоит на земле, температуру показывает +15, винты включил - постепенно до -6 доплывает, в результате баровысота становится -30. После посадки все повторяется.
Еще всякие вукенги используют акселерометр для вертикальной стабилизации - тот самый трюк на видео, когда пихают квад снизу или сверху, а он как мячик назад отскакивает.
Насколько я помню, в 2.0 эта стабилизация вообще отключена.
без термокоррекции баровысоту вообще нельзя будет использовать,
возможно ошибка при портировании функции термокоррекции? у производителя есть даташит по апи, там сишный код
я даже навсякий случай проверил правильно ли запрс давления осуществляется, чтоб с ультравысокой точностью - оказалось верно, непонятно зачем вычисления перед запросом, можно было бы тупо константу посылать
…
наверное я другую версию смотрел, сейчас смотрю библиотеки 2.1 там константы
…
ступил, в пятницу проверял код бошевского бмп085,
тут константы
Может, вообще температуру выбросить? Т.е. для навигации применять высоту ЖПС, а для удержания высоты, как более быструю величину - барометр? Тупо его сырые показания, безо всяких вычислений.
Еще всякие вукенги используют акселерометр для вертикальной стабилизации - тот самый трюк на видео, когда пихают квад снизу или сверху, а он как мячик назад отскакивает.
Насколько я помню, в 2.0 эта стабилизация вообще отключена.
Высота ЖПС имеет большую ошибку. Вообще с 085 барометром точность порядка 2-х метров, а + сонар и летает нормально. Проблема только на переходе на уровне 8 метров. Пытался я использовать акселерометр для вертикальной стабилизации около земли, но не получилось, поэтому при ручном газе на малых высотах добавил в газ вертикальную скорость с коэффициентом из данных сонара с ограничением +40 -20 и перестал проваливаться при маневрах около земли.
Вообще для плавного полета ПИДы снижать нужно и тогда летает плавненько. Я свой настраивал на предельные режимы для полетов при ветре , но при этом немного дерганный становится.
…Пытался я использовать акселерометр для вертикальной стабилизации около земли, но не получилось…
…Вообще для плавного полета ПИДы снижать нужно и тогда летает плавненько. Я свой настраивал на предельные режимы для полетов при ветре , но при этом немного дерганный становится…
я много думал как “наза” так лихо может стабилизировать любую модель не делая ее дерганной и четко стабилизируя,
однозначно при толчках используется акселорометр. Но брать разницу проекции на перпендикуляр к земле текущего ускорения ( сумма вектора ускорения + вектора силы тяжести) не так просто. это не проекция на ось z акселя потомучто вертоль всегда в наклоне, нужно вычислять перпендикуляр земли по гироскопам, и брать на него проекцию векторов ускорения акселя (x^2 + Y^2 + Z^2) = ускорение_силытяжести^2 + ускорение_модели^2.
в результате получаем значение ускорения к перпендикуляру земли, дальше просто иходя из ускорения и времени получаем вертикальную скорость, исходя из скорости и времени вертикальный путь.
что касается второго пункта назы и недерганность и четкость в любой модели - тут наверное еще автокалибровка пидов, видимо отслеживает как модель отреагировала на предыдущее действо и если неадекват прибавляет почутьчуть воздействие
я много думал как “наза” так лихо может стабилизировать любую модель не делая ее дерганной и четко стабилизируя,
однозначно при толчках используется акселорометр. Но брать разницу проекции на перпендикуляр к земле текущего ускорения ( сумма вектора ускорения + вектора силы тяжести) не так просто. это не проекция на ось z акселя потомучто вертоль всегда в наклоне, нужно вычислять перпендикуляр земли по гироскопам, и брать на него проекцию векторов ускорения акселя (x^2 + Y^2 + Z^2) = ускорение_силытяжести^2 + ускорение_модели^2.
в результате получаем значение ускорения к перпендикуляру земли, дальше просто иходя из ускорения и времени получаем вертикальную скорость, исходя из скорости и времени вертикальный путь.
что касается второго пункта назы и недерганность и четкость в любой модели - тут наверное еще автокалибровка пидов, видимо отслеживает как модель отреагировала на предыдущее действо и если неадекват прибавляет почутьчуть воздействие
DCM[2][2] это косинус между вертикалью и вертикальной осью. Когда предельный угол по GPS у меня стоял 10 град летал плавно, а при 45 срывается с места и летит в новую точку как чумной. Поэтому может не ПИДы а ограничения подстраивать надо и тогда будет плавность, а с ограничениями проще получится так как если ПИД сильно снизить (в 2 раза) стабилизироваться плохо будет. По высоте на малых высотах сонар держит ±10 см. Если ПИД уменьшить точность уменьшится плавность повысится и с интегральной составляющей поиграться надо, но до этого руки не дошли.