High end Low cost Quatrocopter
АРМ 2 уже весело мигает лампочками с моей программой. DCM матрицу считаем полностью в каждом цикле, гиро и акселерометр считываем с частотой 200 Гц (а хотелось бы быстрее), барометр читаем с частотой 100 Гц, компас 10 Гц, радио в цикле 100 Гц по готовности но с задержкой в 5 миллисекунд если попадает на чтение компаса. И 200 Гц худо бедно получается. Каждый 20-30 раз выскакивает цикл 6,5 миллисекнды, так что процессор загружен почти на 100 %. Кое что добавит чтение GPS , запись лога и вывод телеметрии. При температуре ниже 20 град потребуется еще время на дополнительный обсчет баро.
Но с хорошими и быстрыми датчиками процессор уже нужен побыстрее.
Вчера плату Arduimu V3 покупатель пробовал на коптере и остался доволен.
Написал какую то фигню и лог начал стираться. Почему сам не понимаю. Так еще пара мелочей и программа заработала в полном объеме. Осталось может быть дописать калибровку гироскопов перед полетом, но это после проверки необходимости. А дальше начнем вешать примочки типа пяти коэффициентов для стабилизации и совместная фильтрация баро вместе с акселерометром. Но это все понятные изменения. Цикл идет с частотой 200 Гц с выбросом до 5,9 мкс на каждом 18-том.
Поэтому завтра начну писать прогу под платку мультивии
MWC MultiWii SE Standard Edition 4-axis Flight Control Board QUADX w/ FTDI goodluckbuy.com/mwc-multiwii-se-standard-edition-4… и испытывать пять сонаров. Жена уехала и производительность труда резко возросла.
5 сонаров? Разве это возможно? Если больше одного, то нужна совсем другая внутренняя логика, иначе друг другу мешать будут.
5 сонаров? Разве это возможно? Если больше одного, то нужна совсем другая внутренняя логика, иначе друг другу мешать будут.
Зачем логика . Запускаем все пять синхронно и слушаем ответ. С разных сторон соответственно.
попробуйте но мне кажется что эхо от первого же отражения уловят все сонары (если в помещении). Аналогично в случае сложной конфигурации отражающей поверхности, сонары будут улавливать чужие импульсы. А если все запускать последовательно, то частота опроса будет слишком низкая.
В результате изваял свой вариант кода под платку. Сонары прилеплю завтра. Четыре на аналоговые с 0 по 3 и один на 8 вывод Импульс запуска организуем на 12 и останется 13 для всяких прочих надобностей. и еще два аналога.
После того как полетит выложу для попробовать.
Сегодня переписал 085 баро. Читаем с частотой 40 Гц 4 раза давление 1 температуру. Пробовал фильтровать баро вместе с акселерометром. Результат никакой. Или где то ошибся, но алгоритм фильтрации MS5611 с MPU6000. Данные тоже приведены в соответствие. Или сочетание неудачное. С учетом сонаров еще раз перепроверю и дальше возится не буду.
Итого аксель и гиро - 200 Гц баро- 40 Гц компас - 10 Гц сонары 20 Гц Цикл 200 Гц и не выпадаем.
Итого
По результатам проведенной работы сделал следующие выводы:
- Без хороших датчиков бессмысленно применять быстрый процессор, делать ему нечего. Ну разве что сервис.
- Проверена возможность фильтрация данных шумящего датчика с использованием других датчиков. Так барометр можно фильтровать с акселем, но аксель должен быть быстрым и ВМА180 здесь не помощник.
Соответственно при наличии хороших гироскопов аксель должен быть долговременно стабилен. Шумы акселя при этом легко усреднить. - Магнетометр пока у всех один и не очень хорош, но при наличии хорошего гироскопа усредняется и он.
- Новый барометр MS5611 настолько хорош и быстр, что ему практически не нужна фильтрация с акселем, хотя с MPU6050 получается ну очень красиво.
- GPS такой как сделали американцы и лучше 5-10 метров в абсолютных цифрах получить не удастся. Альтернатива только изображение, но здесь еще конь не валялся. Хотя Диудроны оптический датчик давно продают.
Таким образом из существующих автопилотов АРМ 2.0 имеет очень хорошую перспективу с учетом установленных датчиков.
Для реализации этих возможностей, или хотя бы для того, чтобы увидеть преимущества механика должна быть отлажена.
Введение более сложных алгоритмов стабилизации (пять коэффициентов в Пид регуляторе) требует наличия по меньшей мере хорошего гироскопа в системе) Осталось выяснить насколько хорошего.
Дальнейшая перспектива - переход на более быстрый процессор с одновременным переходом на датчики способные выдавать данные с частотой более 200 Гц. Но это не приведет к повышению качества стабилизации, т.к. и существующая система выдает с частотой 200 Гц положение аппарата с точностью лучше 0,1 град.
Введение более сложных нелинейных алгоритмов стабилизации. И соответственно вопросы опять к регуляторам и двигателям.
Так что в первую очередь в дальнейшем сначала займемся усовершенствованными алгоритмами, а уж потом быстрыми процессорами.
Вторая очень важная проблема-интерфейс пользователя.
И в этом плане нравиться МультиВии своей простотой и функциональностью.
В этом плане Арду проигоывает, так как красивый интерфейс сделан в ущерб быстродействию алгоритма стабилизации, но без него основной массе потребителей не обойтись.
Поэтому Арду перейдет на более быстрый процессор еще до лета. И мы за ними потихоньку.
И наверно обработке изображения альтернативы нет, так как сонары и прочее от препятствий не спасают.
Сейчас играюсь с тремя комплектами электроники:
- АРМ 1
- АРМ 2
- МультиВии с Гудлака
Программы написаны и на столе отлажены. Осталось летать и пробовать. И цель единственная понять, что наиболее важно и как можно наиболее эффективно улучшить стабильность системы. И я думаю алгоритмы на первом месте.
А дальше непаханое поле с новыми алгоритмами, обработкой изображения и прочее.
При ковыряниях с multiwii я тоже пришел к похожим выводам. Быстрый проц там пока не нужен, стабилизация на достаточном для любительских полетах уровне.
Единственное, проявились ограничения процесора atmega 328 - не хватает точных таймеров, да и вообще таймеров 😃 и прерываний. Надеюсь, выпустят на более продвинутом чипе недорогие платки все-в-одном.
При ковыряниях с multiwii я тоже пришел к похожим выводам. Быстрый проц там пока не нужен, стабилизация на достаточном для любительских полетах уровне.
Единственное, проявились ограничения процесора atmega 328 - не хватает точных таймеров, да и вообще таймеров 😃 и прерываний. Надеюсь, выпустят на более продвинутом чипе недорогие платки все-в-одном.
Можно обойтись усреднением по выходу, что и сделано выше. А для приемника одного хватает
В предверии выходных могу выложить программу для платы goodluckbuy.com/mwc-multiwii-se-standard-edition-4…
Конфигурация квадрокоптера Х, приемник подключается по маркировке. Моторы правый-передний - 1 на D3, правый задний -2 на D9, левый задний - 3 на D10 левый передний -4 на D11
Мозг выходом FTDI на 2 мотор. Работает только стаб. мода.Все остальное только вставлено. Сонары входами подключаются на А0-А3 и D8, Сигнал запуска на D12 и D13 . Сонары проверены и работают. Магнетометр калибруется вручную и коэффициенты надо вписать в файле Ardu.h.
Можно при желании подключить ЖПС, цена вопроса 2 диода и резистор. Но не уверен , что с моей программой все влезет в Атмегу 328 и второй вопрос порт надо перевести на 38400. Можно подключить и в МУльтиВии но из-за скорости порта конфигуратор работать не будет.
Исправил ошибки поставил на коптер, попробовал в руках. Полетать не удалось, так как плата нуждается в отдельном питании, от регуля не работает, собственно плата работает, а регули не хотят. Дописал управление от боковых сонаров. Завтра попробую летать.
я заказал на заводе платку под иму v3, и детали в элитане, mpu6000 тоже достал
и хотя у меня уже есть и апм1 и апм2 очень хотел бы попробовать вашу прошивку,
вейпоинты можно было бы записывать утилитой configtoolglobal от маленького ардупилота на 328 проце,
и хотя она с некоторой неудобной багой, (уже непомню откуда) у меня есть исходники ее какогото промежуточного варианта если появится желание ее доработать - скину
Наконец начал потихоньку летать на АРМ 2 на своей программе. Понравилось. Взлетает ровно и без проблем.
Летает, удержание высоты и позиции работает. Плату пришлось отодвинуть и силовой, магнетометру мешало. Перешел на 490 Гц на моторы, в результате ПИДы настроить нужно, а то болтает . При попытке взлета в автомате подпрыгнул на 3 метра и назад к земле. В результате один пропеллер пополам. Так все нормально, сбоит только запись лога.
И с автоматической посадкой еще возится надо, чтобы красиво все выглядело.
у меня на апм2 замечено что периодически отходит флешка - разъем гуано.
а перейти на мегу решение окончательное и бесповоротное?
у меня на апм2 замечено что периодически отходит флешка - разъем гуано.
а перейти на мегу решение окончательное и бесповоротное?
А что значит перейти на мегу. Я с нее не уходил пока. У меня есть АРМ1 в варианте с 1280 и 2560. То что делалось на 328 - это просто эксперименты по изучению датчиков. Там объем программы поменьше и легче писать - к концу еще помнишь что было в начале.
Сейчас отладим АРМ-2 и потом при появлении STM32 c комплектом хороших датчиков спокойненько без спешки мигрируем на него. Особого смысла без хороших и быстрых гиро и акселя такой переход по моему не нужен .
Пока на 328 получаются хорошие простые коптеры. Если нужен ЖПС и прочее дешевле брать АРМ-2.
Плату пришлось отодвинуть и силовой, магнетометру мешало.
А насколько пришлось отодвинуть?