А давайте обсудим Arducopter - APM
самый правильный алгоритм - крутить магнетометр по всем осям, засекать минимальные и максимальные показания по каждой оси и выравнивать их: Moff=(Mmax+Mmin)/2; M=Mraw-Moff
Это алгоритм я понимаю он был еще в ArducopterNG. Но очень неудобно. Без этой калибровки совсем плохо. Но и после такой калибровки не идеал, то есть когда коптер горизонтальный еще более менее. При наклонах курс болтается сильно и при полете по автопилоту полет от точки к точке по прямой не получается.
При всем уважении к разработчикам ардукоптеров, к сожалению, у них любительский подход к коду… летает как бы и ладно, переписывывают код два раза на дню, именно переписывают, ну где это видано вообще… ну доведи ты сначала стаб режим до конфетки (мультивий и то лучше летает), потом баро доведи, потом лоитер и прочие штуки. Жаль ардупираты разбежались…
Летали на второй версии - ардушка находилась в герметичном (почти - отверстие для ввода проводов было) контейнере.
Рекомендуют вату положить на баро. BMP085 шумит на пару метров и показания уходят на 2 метра в течении короткого времени, когда стоит на столе. Поэтому о точности лучше 2 метров говорить не приходилось. А с новым надо пробовать и если реально в 4-5 раз лучше то это будет очень хорошо.
Преимущество Арду: в открытом исходном коде и цене. Даже если не брать в расчет возможность дописать свой код, конкурентов по соотношению возможностей и цены даже близко нет.
Причем купленная плата, собранная и залитая по инструкции релизная прошивка после 15-30 минут настроек летает абсолютно нормально. И по точкам летает и высоту держит и домой возвращается и камеру стабилизирует и много еще чего делает.
Проблемы начинаются, когда начинаются эксперименты. Перепаивание компасов, восстановление плат после жестких падений, копание в коде, кручение всех подряд настроек без понимания происходящего.
Меня платформа арду совершенно устраивает, как любителя доделывать все вещи “под себя” и только потом использовать для чего-либо полезного 😃
Меня платформа арду совершенно устраивает, как любителя доделывать все вещи “под себя” и только потом использовать для чего-либо полезного
+1, у меня она полигон для экспериментов, если че на самолет уйдет 😃
При всем уважении к разработчикам ардукоптеров, к сожалению, у них любительский подход к коду… летает как бы и ладно, переписывывают код два раза на дню, именно переписывают, ну где это видано вообще…
Ничего они не переписывают. Точнее переписывают, но не потому что плохо работает, а потому что готовят код под новую платформу (APM2 и ARM). Сколько я занимаюсь проектом, никаких кардинальных переделок там не было, ну правят баги ну и что?
По поводу баро… только на одном баро нельзя сделать точное удержание высоты, когда сам баро метра под 2 точностью + воздушные потоки от пропеллеров. В Назе могли совместить баро с акселем, что то же есть в Арде, но пока в режиме отладки/тестирования. Кстати, лично у меня, точность MS5611 - метр и причем показания плывут со временем (а значит высота базы то же плывет, т.к. инициализируется при старте), по ссылке высота по MS5611, платы лежащей на столе (по времени, минут 5)
Лично мне нравится, как написан код АрдуКоптера, по большей части все понятно и логично, а сейчас еще и комментариев добавили ко всем глобальным переменным. 😃 Хотя с другой стороны, иногда кажется что они затыкают дыры изначально непродуманные.
Преимущество Арду: в открытом исходном коде и цене.
😃
Я сам большой поклонник Арду, но если не править код и не доводить под себя то не все так хорошо как хотелось бы всем. Достоинство то , что программа простая и вносить изменения легко. После того как изрядно поковырялся летает очень даже ничего. Режимов много и все их отработать не так то просто. Сейчас после перехода на более качественные датчики есть надежда, что будет еще лучше, но после отработки.
Алексей, вот обьясни, почему в 1.0.49 прошивке у баро bmp085 показания (не raw, а в планере) скачут плюс минус пол метра в помещении, а в 2.1 там же в помещении плюс минус 3 метра?
Рекомендуют вату положить на баро. BMP085 шумит на пару метров и показания уходят на 2 метра в течении короткого времени, когда стоит на столе. Поэтому о точности лучше 2 метров говорить не приходилось. А с новым надо пробовать и если реально в 4-5 раз лучше то это будет очень хорошо.
так тест был уже на новой плате фиолетовой, там вместо бошевского барометра MS5611-01BA03
потоки создаваемые винтами безусловно должны влиять на баро даже когда одно отверстие в герметичном корпусе снизу, но в режиме зависания на высоте 5м и 7м винты должны одинаково влиять на барометр и сооветственно ухода быть недолжно, либо в коде бага либо пид какой надо настраивать, телеметрия нужна чтоб понять в самом деле ли он считает будучи на 7 метрах что он на 5 или ему пофиг на альтеррор в 2 метра
в первом (маленьком пилоте) например барометрическую высоту в пропорции смешивали с высотой по жпс, что имхо бред жпска может врать по высоте метров на 200 и показывать при этом чудесные DOP и CNR
вот пример, на высоте 5 этажа жпс показывает -80 метров под уровнем моря
Алексей, вот обьясни, почему в 1.0.49 прошивке у баро bmp085 показания (не raw, а в планере) скачут плюс минус пол метра в помещении, а в 2.1 там же в помещении плюс минус 3 метра?
Понятия не имею, 2.1 я не смотрел, портирование начал сразу с 2.1.1 Альфа, а сейчас 2.2, особой разницы в код 085 не заметил. Зато заметил, что MS5611 не имеет никакого фильтра, так что, пока его не добавят - будет высота плавать хорошенько.
Как я уже говорил, сейчас проблемы вылазят из за переделок прошивки под новую APM2 и подготовкой под ARM. Просто надо перетерпеть этот период.
о кстати насчет фильтра, разработчики медианного фильтра рекомендуют использовать нечетное число семплов, а в ардупилоте четное, да и мало их к томуже высота так быстро не меняется, было бы логично в разы увеличить число сэмплов может десятка два-три откидывать крайние медианным фильтром (как ошибки в статистических методах) а для значений из середины брать среднее
кстати чтобы избежать “задержки” при высокой вертикальной скорости можно изменять число сэмплов в меньшую сторону
так тест был уже на новой плате фиолетовой, там вместо бошевского барометра MS5611-01BA03
потоки создаваемые винтами безусловно должны влиять на баро даже когда одно отверстие в герметичном корпусе снизу, но в режиме зависания на высоте 5м и 7м винты должны одинаково влиять на барометр и сооветственно ухода быть недолжно, либо в коде бага либо пид какой надо настраивать, телеметрия нужна чтоб понять в самом деле ли он считает будучи на 7 метрах что он на 5 или ему пофиг на альтеррор в 2 метра
в первом (маленьком пилоте) например барометрическую высоту в пропорции смешивали с высотой по жпс, что имхо бред жпска может врать по высоте метров на 200 и показывать при этом чудесные DOP и CNR
вот пример, на высоте 5 этажа жпс показывает -80 метров под уровнем моря
Про то что плата новая я понимаю. Дырочка не годится. Нужен именно кусок ваты, чтобы дуло со всех сторон, но поток основательно тормозился и оставалось одно давление. Алгоритмы действительно кривоваты. Я летаю с сонаром и баро МВ1260. До 8 метров сонар работает хорошо. Алгоритм достоверности показаний сонара из ArducopterNG. При недостоверном сонаре или после 8 метров переход на баро. При этом Пиды на баро в два раза ниже, чтобы не дергалось сильно. Но из-за больших шумов ВМР085 все равно сильно гоняет по высоте. Действительно без телеметрии и лога с нужными параметрами настроить невозможно. На ArducopterNG могу вписать что угодно, а с новой программой пока не разобрался, поэтому вникнуть надо. Пока что вожусь с магнетометром. Он тоже плохо работает при наклонах коптера и поэтому в автопилоте прямая превращается в дугу. Работы по доводке очень много и не всегда есть время и настроение.
Просто надо перетерпеть этот период.
“Золотые слова, Юрий Венедиктович!” (Наша Раша)
а что за баро такой ? МВ1260
может опечатка?
Это сонар
а что за баро такой ? МВ1260
может опечатка?
Сонар это. Диапазон 0,2-10 метров. Разрешение 1 см Хорошо работает на земле, асфальте, низкой траве. Плохо на высокой
чтото меня взяли сомнения касательно правильно ли в ардукоптере оценивается аналоговый сигнал сонара
вот из даташита картинка иллюстрирующая расстояние до “целей” в условиях нескольких, и осцилограмма аналогового сигнала,
тут важный момент не столько напряжение сколько время от излучаемого импульса до ближайшей цели
В общем, судя по всему, есть проблема с MS5611 - пока идет изменение температуры датчика - прилично плывет высота (несколько метров). Возможно есть ошибка в компенсации температуры или еще что нить, как только темпа устаканивается, показания нормальные идут…
Почитал по этому поводу на блоге Varesano.net (автор FreeIMU), там у людей такая же беда.
Добавил медианный фильтр (только на raw pressure), показания улучшились, но все равно, какая то синусоида в результатах просматривается. Может как то влияет питание? У меня в тестах, ардуина подключена и питается через USB.
График: clip2net.com/s/1vgEz
а сколько сэмплов берешь?
по идее стабилизация чаще чем раз в 1/10 секунды не нужна, логично собирать сэмплы в течение последней 1/10 секунды, из них обрезать медианным фильтром ошибки, из серединной части взять несколько значений, взять предыдущее значение барометра (N раз) и из этого ряда сформировать среднее значение
по даташиту на барометр влияет питание и свет, можно предположить что еще и звук - поэтому так хороша вата
я тут ставлю опыты с жпс модулями вот что им хорошо помогает бороться с помехой:
- пропустить шлейф идущий к девайсу через феритовое кольцо раза три
- от земли после кольца, с платы девайса соединить с экранирующей пластиной
- сигнальные линии в разрыв вставить 330 ом
может по аналогии и тут сработает
пока не имею, но я попробывал бы бокс с резиновой мембраной(от резин перчатки или возд шарика), те изоляция от потоков воздуха и звуковой фильтр и в свою очередь передача давления мембраной. обеспечит светоизоляцию, фильтр звука и фильтр температуры, в свою очередь время отклика может уменьшиться
не притендую на истину, просто поделился своей мыслью
про мой апм дидроны молчат…