ArduCopter Mega: порт на обычную Arduino (тестим)
оба сонара показывают до 2м (причем имхо могут больше
Я сонар DYP цеплял к Ардуинке и заливал простой скетч с таймером. Сонар работал от стен до 4 метров. Если поверхность мягкая, неровная (диван + шкаф с промежутком), то таймер зависал.
синий - барометр, красный - сонар
Глеб, на графике видно смещение баро относительно сонара. Значит, фильтр баро дает запаздывание (нарастание идет медленнее).
Фильтр скользящего среднего удаляет постоянную составляющую: Z[i]:=(Y[i]+Y[i-1]+Y[i-2])/3, Z - выход, Y - измеренные значения. Возможно, это вызывает проблему. Можно попробовать рекурсивный фильтр первого порядка: выход Z[i] = a*Y[i] + b*Z[i-1], где a = 0.85 (например), а b = (1-a) (в примере будет b= 1-0,85 = 0,15 ). Чем больше “а”, тем быстрее идет нарастание, но сглаживание слабее.
Как вариант, рекурсивный фильтр 4 порядка. Вечером пришлю код.
на графике без фильтров вроде бы вообще, для баро тоже фильтр убрали в новой прошивке, а для сонара у меня фигня получается что с усреднением, что с просто проверкой (не ноль ли), возможно просто не надо в 3 ночи кодить и сегодня я пойму где же накосячил
еще в реальном полете быстрее набираюся значения, а при тестировании (test-altitude в версии из svn) они с задержкой выводятся
фильтр на сонар на самом деле нафиг не нужен, надо просто фильтровать провалы
вот еще пару графиков от вчерашних тестов (один раз барометр показывал меньше чем есть, хз почему):




при попытке выводить вместо нулевых значений прошлое значение получаю что ноль просто становится минимальным значением, пробовал фильтровать минимальное - та же фигня
надо найти фильтр, который бы фильтровал нули и сглаживал (в идеале игнорировал) пороги
dl.dropbox.com/u/1638929/tmp/barosonartest.zip - csv файлики со значениями (test - без фильтра)
SovGVD,
Можешь выложить чистые данные от сенсора при при движении от стены и обратно. Можно в екселе или просто построчно.
Есть парочка идей, хочу проверить.
dl.dropbox.com/u/1638929/tmp/barosonartest.zip - это чистые данные, первая цифра барометр, вторая сонар, двигал от пола вверх, насколько провод позволил
Полетел !
Я по незнанию менял в define.h значения CH_1 … CH_4 т.к. распиновка каналов аппы у меня не стандартная ( перепрошить аппу без провода не могу).
В итоге взлетел, но довольно сильно раскачивается. Что нужно менять в настройках ?
один раз барометр показывал меньше чем есть, хз почему
У меня такое ощущение, что фильтр барометра удалил постоянную составляющую. По сонару видно, что высота была постоянной величиной. Могу сильно ошибаться. Благодарю за лог, после работы попробую дома с ним.
Глеб, пришли еще лог, когда коптер спокойно стоит на месте. Интересно, какой шум идет по каналам.
Глеб, скажи, на графике, в длину время, это микросекунды ?
Алгоритм сглаживания показаний барометра набросал. буду как-то склеивать с показаниями сонара.

используются 6 последних показаний для сглаживания.
Чем большее число предыдущих показаний используется - тем больше усредняется и задерживается изменение показаний, получается некая задержка по графику срених значений относительно исходных данных .
Я просто подумал, что снижаться аппарат на высоте в 2 метра и сонаром вниз, врятли будет быстрей чем ускорение свободного падения.
Нужно просто смотреть разницу во времени между считываниями и падениями высоты по сонару, если больше 9.8 метра в сек, то значение с сонара не верное, тупо его пропускаем, а оставшиеся значения усреднять.
Единственно хватит ли разрешения аппаратуры.
И еще одно предложение, а не открыть ли нам новый топик, чтобы ссылки на проект были в первом сообщении?
Имхо можно специально сделать страницу на вики и на нее ссылку дать, а там на странице уже, и где скачать последний, и на остальную документацию.
Господа, уже неделю не могу победить компас. У кого 5883L скиньте свою настроенную библиотечку.
в длину время, это микросекунды ?
нет, это просто порядковый номер значения… они идут с задержкой 20мкс (или сколько delay(20) выдает?)
Алгоритм сглаживания показаний барометра набросал. буду как-то склеивать с показаниями сонара.
барометр нет смысла сглаживать, разница минимальная, а задержка будет… надо победить сонар, чтобы фильтровались явно не корректные (провалы) значения… думаю как вариант можно задать некий порог, при котором берется прошлое значение, если текущее (обычно близкое к нулевой высоте, если не корректно считает) превышает порог разности
можно специально сделать страницу на вики и на нее ссылку дать
code.google.com/p/megapirateng/w/list и там же скачать обновления
У кого 5883L скиньте свою настроенную библиотечку.
большая просьба указывать какая прошивка используется и перепроверять не вышло ли нового? например сейчас есть как минимум 3 прошивки, Олега r741, от буржуев 2.0.38 и то что мы тут пилим 2.0.40 (в которой вроде как компас работает как надо)
…большая просьба указывать какая прошивка используется и перепроверять не вышло ли нового? например сейчас есть как минимум 3 прошивки, Олега r741, от буржуев 2.0.38 и то что мы тут пилим 2.0.40 (в которой вроде как компас работает как надо)
Да собственно все равно какая, главное чтоб компас работал как надо 😃
Люди подскажите, а кто нить настроил Турнигу на переключение режимов через миксы? я свой авионих чет никак заставить не могу. Может прошивка разная… Делаю все по мануалу, а в CLI значения не меняются…
Люди подскажите, а кто нить настроил Турнигу на переключение режимов через миксы?
Я настроил… тока все равно не пользуюсь 😃
Вы когда делаете radio setup, вы то же все режимы переключаете (что бы min/max отразился)? У вас 6й канал должен 3 или 6 положений отщелкать. После этого, можно на следующей страничке в планере, назначить режимы на соответствующие позиции 6го канала. По умолчанию, все режимы - STABILIZE.
code.google.com/p/megapirateng/w/list и там же скачать обновления
Да это я к тому что если делать новый топик, можно и это только не каждый поймет.
вы то же все режимы переключаете
до этого даже еще не дошел, делаю например первый микс, там нужно подобрать значение, ставлю на бум, в CLI делаю тест радио или пвм, реакции на переключение абсолютно никакой… если не трудно, Алексей выложи пжлста все поля первого микса хотябы, и напиши пжлста, если делал еще какие то настройка помимо миксов.
нет особого желания разносить инфу, лучше там сделать несколько версий (под разные языки), чем будет форум и 2 вики и всем лень инфу править (а на форуме вообще не поправить)
если бы форум позвалял править первое сообщение, то проблем никаких - а так будет еще одна тема про тоже самое с теми же самыми косяками
до этого даже еще не дошел, делаю например первый микс
А без этого и не будет работать. Вот статья, с описанием, как настраивать Только обратите внимание, там описан процесс, когда аппа работает в самолетном режиме! В вертолетном, так же можно настроить, но названия каналов будут другие и значения надо по другому настраивать (я методом тыка делал, пока не переключил в самолетный режим).
Контролировать правильность микширования, можно прямо на аппе (пункт Display - в меню аппы). Переключая левый нижний переключатель на аппе (5й канал), мы выбираем одину из двух групп режимов, по 3 режима в каждой. А конкретный режим уже выбирается трехпозиционным переключателем. В итоге, у вас на 6м канале, должны отразится все 6 режимов (щелкая тумблерами).
После этого, надо сделать калибровку радио в планере (radio setup) и переключить все шесть режимов, ну и потом, можно назначить на каждое положение переключателей, свой режим (как я уже говорил, на всех позициях, по умолчанию, стоит один режим - Stabilize).
при попытке выводить вместо нулевых значений прошлое значение получаю что ноль просто становится минимальным значением, пробовал фильтровать минимальное - та же фигня
Это только мне показалось, что на графике, у тебя не нулевые показания сонара? Есть в csv показания сонара и баро, что бы построить такие же графики?
Это только мне показалось, что на графике, у тебя не нулевые показания сонара? Есть в csv показания сонара и баро, что бы построить такие же графики?
на первом графике нулевые (в посте с одним графиком), это test.csv из архива dl.dropbox.com/u/1638929/tmp/barosonartest.zip
дальше всякие вариации на тему “не выводить нулевые значения”, как итоге ноль просто сметился к некоторому другому значению (помойму 13 или 12)
значения в файлах в сантиметрах, первое значение баро, второе сонар
все победил я свой 5883. оказалось, что взял аксель на платке от аиркама, а он там мультиплексор перемычкой включил по оси Х.
а я неделю софт ковырял, не мог понять почему погрешность 20 градусов на 45. Зато теперь погрешность 1 град. на 45.
Отлетал сегодня два пака. Попробовал лойтер и ртл. Лойтер работает точно. Коптер летает в круге метра 4. Но по высоте прыгает как мячик с амплитудой метра полтора. Ртл проверил случайно. Квадрик летал метрах в 10 от меня, я что-то делал вслепую с пультом, гляжу, а квадр что дурной прет на меня, в метре от земли и на стики не реагирует. Пока думал в какую сторону отпрыгивать, вспомнил что крутил и выключил ртл. Так, что ртл - работает.