ArduCopter Mega: порт на обычную Arduino (тестим)
В старом насколько помню была поддержка всех твоих сенсоров
не было таких сенсоров, в старом itg320x поддержилвася с каким то старым барометром и акселем бошевым
чтобы запустить именно этим сенсоры, надо перековыривать HAL мегапиратный (или APMмный? чето не нашел бегло там про датчики)
самый простой вариант - купить платку с такими же датчиками (GY-86 кажется), чтобы не мучится, благо не миллионы долларов она стоит
еще лучше, но дороже, купить AIOP
если хочется новые прошивки, то APM/APMmini (хотя и на это чую забъют скоро, из-за тогоч то мощности AVR-ки не хватает на все хотелки)
если хочется продвинутой версии, то F4BY
если хочется продвинутой версии с новыми прошивками, то PixHawk
ну и так далее, до вуконга и прочих =)
Доброго времени суток!
Собран квадрокоптер на базе CRIUS AIOP V2, залит последний MegaPirate 3.1.5, свежестянутый с GIT и собран свежим GCC 4.8.2 (говорили, что это уберёт проблемы с логами, но нет).
На стоковых пидах летает отлично, STAB как STAB, AltHold просто мёртво держит, если сильно не задувает.
Но счастье моё было не долгим… Точнее, довольно долгим, потому что первый ГПС просто не пришел, а второй шел полтора месяца, этого времени хватило что бы поднять общую грамотность в этой сфере, разобраться с аппой, калибровками, переставить по человечески каналы, ну и приобрести навыки управления что бы спасать коптер от RTL в Китай.
Пришел Модуль LEA-6H c компассом. Сначала был расположен на верхней полке над контроллером. Уход при 75% газа был около 15 градусов. Ну, подумал, не беда. Вон, на сайте ардукоптера пишут до 30% вообще не страшно…
Вышел на стадион тестить loiter и какие заметил последовательности:
- Реже. Коптер сразу резво улетает в любом направлении сразу же после включения лойтера.
- Коптер секунды 4 по чуть чуть, невнятно пробует скорректировать позицию, потом сразу резво разгоняясь начинает улетать прочь не останавливаясь.
- Коптер описывает чтото не подобии дуги или куска спирали постепенно ускоряясь (как будто выходит на орбиту) и на выходе из дуги уже на приличной скорости улетает прочь. Чем то похоже на toiletbowl, не совсем.
Когда коптер улетал метров на 20 с большой скоростью приходилось переключаться в altHold и руками его возвращать что бы не потерять управление.
После перечитывния тонны иностранных форумов модуль был вынесен на палку высотой в 16 см. Проверка дома показала нулевой увод в градусах при высоком газу. Результата никакого, поведение не изменилось, вообще.
Сегодня выходил ещё в добавок тестил RTL, Коптер летит в сторону дома, на приличной скорости, промахивается на несколько метров и не замедляясь летит себе дальше (метров 5-10 пока не вмешаешься), больше воли дать ему не мог, так как на моём месте тестов ездит трактор и пришлось переместиться на школьный стадион, на котором нету школьников только когда уже темно и легко потерять коптер.
Факты:
-
Внутренний компас был отключен в коде. Проверено, без внешнего показывает нули. I2C ошибок нет.
-
Ориентация компаса была выставлена в поворот Pitch 180град (довольно нестандартная). Сверено с бортовым компасом и компасом мобильного телефона. Куда нос коптера направлен то и показывает.
-
Калибруется компас через АПМ Пленнер хорошо (С помощью танца, который рекомендуют на ардукоптере). Оффсеты -54 -22 15, стабильны ± 3 от калибровке к калибровке. Калибрую в квартире, но результам доверяю, разбросов нету и показывает стабильно, не прыгает. Очень хотел бы калибровать на улице, но есть только Bluetooth, и я не знаю проги на Андроид, которая бы умела калибровать компасс. Droid planner так и не научили… Если кто знает как, подскажите, пожалуйста.
-
Compass declination и авто и руками вводил, разницы нет.
-
На GPS не грешу. С ним хоть и были проблемы (UCenter просто выдаёт таймауты на половину параметров при слитии конфига или попытке заливки конфига от 3DR, хотя они есть и сохраняются хорошо по отдельности через меню. Потеряли на почте мой FTDI, пришлось прошивать скетчем контроллер для настройки ГПС, на это и грешу пока что). Но в итоге он работает, при тесте в CLI координатами сыпет нормально, да и судя по логам никаких скачков нет, и информацию о локации доставляет оперативно без пауз даже в моменты улётов. Спутников 8-10, HDOP обычно 1.4-1.6.
Я уже не знаю куда копать, может это вибрации??..
Приложу пару графиков:
-
Первый сверху - вибрации при висении в альтхолде. Высота почти ровная линия, стики не трогаю, там видно на графике. Говорят, допустимые по Х У от -3 до 3 .
-
Второй - показания компаса Х и У во время висения (во время 36,7 я немного тронул стик, потому такая гора на графике).
-
Третий график - еще вибрации. Видно когда я включаю возврат, вибрации чуть усиливаются к концу, когда коптер разгоняется при улёте. Потом включаю ручное и торможу стиком.
-
Четвёртый график ожидаемых скоростей по осям с реальными. На нём меня немного пугают моменты, обведённые в белые рамки, где они в разные стороны идут, было как раз пару случаев, когда коптер в РТЛ летел НЕ в сторону дома. Может это они. А так, вообще, линии, вроде доганяют друг друга как здесь, тоесть коптер улетает осознанно…
Ну и приложу ещё файл логов. Это не полный лог всего полёта, потому что у меня часто зависает скачивание некоторых логов через терминал (на одних и тех же местах если пробовать ещё). А через Мишн или АПМ пленнер я никогда ничего не смог ещё скачать. Уже всё перепробовал, ничего не помогло, так что только первые пять минут без лойтера.
Погомогите, плиз, советом, а то это уже тупик
Аналогичную ситуацию я не смог победить на своей плате. Лойтер так и не смог заставить работать, дальнейшие эксперименты с лойтером прекратил. Далее не вижу смысла тратить своё время и Вам не советую. По причине появления дешёвых плат APM и GPS на любой вкус и кошелёк.
Ради спортивного интереса эксперименты можно продолжить. Начал бы с разводки раздельного стабильного питания и влияния помех, вибраций.
Все там просто 😃
Если алт холд висит как вкопанный значит вибрация в норме.
GPS запускаем и смотрим через минуты 3-5 если координаты скачут, в мусорку его или пробовать настройки перезалить. Хотя у меня был один случай дохлого усилка в антенне.
Украинским пользователям советую не забывать про АТО.
Если после этого унитазит, лечим компас от наводок.
И не надо всех этих графиков и прочего 😃
Loiter это режим, использующий GPS. Судя по симптомам, ваш коптер думает, что он находится совсем не там, где он на самом деле… ИМХО, питание и вибрации тут не причем, т.к. в режимах без GPS все в порядке, как я понял, и коптер адекватен. Подключить к МР и на земле наблюдать, что происходит на карте с его местоположением. Можно поменять местами пропеллеры, чтобы коптер не взлетал, когда газуешь… в общем, тщательно покопать в области GPS…
Визуально разница заметна.
Если компас тот он начинает закручиваться как какашка в унитазе.
А если гпс, то четко летит в одну точку потом в другую 😃
Но при условии, что не срабатывает FS по GPS.
Борюсь с такими же проблемами - уверенный улет в произвольную сторону в лоитер, но вроде худо-бедно стал висеть(жду внешний компас- у меня компасмот 100-350…). Что сделал - гпс на 5гц, порт на 57600, оставил только nmea протокол - ublox данных модуль вообще не отдавал(все через ublox u-center на neo-6m). И многократные калибровки аксель-гиро с упором коптера в перпендикулярные поверхности. Проверить ориентацию платы относительно коптера и в МР проверить, не стоит ли угол поворота для компаса(для встроенного быть не должно, внешний нужно точно ориентировать)
Пс. И еще что у меня было - видимо плохой контакт гпс. Поменял несколько шлейфов как в порту аиоп, так и в порту приемника. Симптомы - на столе, без питания движков коптер в МР резко “улетал” по карте в произвольную сторону - стоило тронуть провода или приемник. Иногда вылезала ошибка bad gps health. При этом обычно даже 3д фикс не терялся.
Может стоило сразу такой модуль в ведро ?
С чего бы ему на родной блохе не разговаривать.
Есть модули без епрома на плате, те просто не запоминают настройки.
Есть еще смешнее, в место ионистора стоит батарейка. Пока не села все работает.
Может и стоило, но другого пока нет, а этот вроде заработал. Я цеплялся к нему напрямую терминалом, бинарных данных с него не увидел - только чистый nmea. Хотя пирата шил через флештул и при прошивке выбирал скорость 115200 и протокол блохи - МР показывал 3д фикс и координаты, но думается мне что в коде там все ж есть какой-то автовыбор (не проверял!) и реально координаты получал по nmea. Если я ему говорил на выход только ublox - на порту была полная тишина. Хз что - может китайцы мудрят с этими модулями… и еще - вроде все пишут что он максимум 5гц может быть, но у меня легко устанавливался на 10гц, и без ошибок получал данные. На дублирование их не проверял - может просто сыпет 2 раза подряд одними координатами, но то что поток шел 10гц nmea и без ошибок- факт.
Модуль у меня с еепромом - настройки сохраняются, правда не с 1го раза. Ионистора хватает минут на 30-60, сужу по “холодному старту” модуля, елси полежит больше этого времени
И снова здравствуйте! Спасибо Вам, за изложеные мнения!
За эти пару дней ещё кое-что потыкал посмотрел. На улицу коптер не выносил из за погоды…
damian, я, всё же, не вижу вины платы… Вина её только в том, что она нереференсный клон, и что прошивки на неё только портированые, что вносит свою головную боль из за совместимостей с Планнерами разных версий, багами портов и т д… Про ГПС - может быть, дальше расскажу.
RTemka, EvgenV, Спасибо, Вы меня немного отрезвили, а то я что-то реально начитался буржуйских форумов и зациклился на компасе… Ведь, и вправду, с компасом его бы крутило… А тут прямой Flyaway. И при этом всём, все эти режимы должны худо бедно пахать при компасмоте до 60%, а это уже ощутимые такие наводки, а хорошо пахать до 30%.
Кстати, сделал сегодня компассмот на скорую руку, прижимал коптер двумя пальцами. Результат 0-1%, что ожидаемо, так как когда компас был над платой было 10-15град ухода, что уже немного, а тут ещё + ~12 см расстояния высота палки.
Кстати, на заметку, тестил с батареей пристегнутой к раме - имел наводки, как то забыл привязать батарею и просто положил её рядом на пол - 2-3 градуса увод… Так что, основные наводки у меня от батареи, а не от всего остального.
Re-Loader, повытягивал контакты из молексового штекера ГПС, посгибал их, а то разонулись от засовываний иголок, когда подключал к компу. Но до этого пробовал трясти провод - ноль эффекта, на выдачу не влияет никак, ошибок нет.
По поводу ГПС:
Вчера забрал с почты адаптер FTDI, наконец то. После пары часов танцев с драйверами подрубил таки Блоху к ПК так же, как раньше подрубал через прошитый скетчем сериал ретранслятора АИОП. Поведение его не изменилось. Такое же, как и через АИОП. Графики спутников в Юцентре идут с небольшими подлагиваниями и пропусками, как будто тормоза. (пробовал скорость шить 115200, работает порезвее, пропуски у графиков очень редкие, но остаются, Мегапират на 115200 видеть ГПС отказывается, может позже попробую 57к или чтото подобное). Но самое интересное - это залив конфига от 3DR. Раньше, через АИОП, я ставил по 10 попыток на каждый параметр и все равно не шилось нормально (10 Retry и таймаут). Сейчас же, через нормальный FTDI льются почти все параметры (1 он там отвергает), максимум попытки с 4й… Тобишь, имеем что то типа:
Параметр X:
Retry
Retry
Retry
Success!
В итоге после заливки удалось слить с него конфиг почти точную копию 3DRовского…
Напрягает меня это тугодумие, но я так понял, что тут у многих оно не с первого раза настройки сохраняет вообще. И такое тугодумие “норма”.
Кстати, ИМХО, в этом 3DRконфиге не вижу ничего особенного. Скорость порта, 5гц, протокол на выдачу через UART1 UBX можно и ручками втоптать, если надобно… Ну, посмотрим, как он “полетит” с настройками из файлика 3DR.
Ха, на счёт 5гц… В официальном даташите написано что есть две версии модулей LEA-6H - ROM и FLASH и 5гц умеет только FLASH версия. А все те,что у нас - ROM и они максимум 1гц умеют, то то я заметил, что в консоли там далеко не 5гц выдача координат, а в лучшем случае 1 и то как то нелинейно, то 2 секунды нету выдачи, то за секунду три раза (если мегапирату этого мало, могут быть проблемы).
Ну, и, пожалуй, самое главное наблюдение:
В ответ Вам, хотел кинуть скриншот с треками позиции коптера на карте по логам. На самом деле, позиции довольно точные, никаких скачков если смотреть визуально. Но заметил одну неприятную закономерность: судя по сопоставлению геопозиций на карте и режимов по времени на графике, коптер начинает свой улёт уже тогда, когда я переключаюсь в AltHold и стиками его торможу!!! Выглядит это примерно так:
Я включаю РТЛ - коптер тупит на месте или дрифтует по ветру,(обычно я ему давал устаканится секунд 5-10 для чистоты эксперимента, перед тем как врубать РТЛ).
Я врубаю Альтхолд и выжимаю стик для торможения - на карте коптер в этот момент графика только начинает стремительный улёт в сторону дома)
после того как прошло уже куча вмешательств по РУ - коптер летит себе прямо по прямой в сторону дома, и реакция наступает аж потом.
Вывод - задержка геопозиции на карте с графиками не менее 4-5 секунд!!! При чём это на протяжении всего того куска полёта, что удалось слить по логам, тобишь, линейно…
Вопрос к Вам, бывалым, это норма? Или у вас в МишнПленнере всё точно сопоставлено на карте с локацией по времени и можно считать “это” кандидатом на причину такого поведения моего зверя?
Вообще, это даже немного логично, он видит, что газ даёт, а геолокация на месте, может думает что ветер, и даёт газу прочь против ветра)
Битмаску для логов ставил то ли ALL, то ли ALMOST ALL, может оно не справляется с записью? Хотя не должно.
Всем спасибо!
Еще раз по порядку, как я победил проблему 1в1 - уже думал выкинуть это связку (aiop+neo) и купить новую на pixhawk. И если б не курс доллара - так бы и поступил, как неоднократно тут советовали… Но, коптер стал вполне стабильно висеть, правда погода и время позволили это проверить всего пару раз. RTL пока не проверял - негде…
Итак…
Предварительные моменты
- компас к этому отношения не имеет, а если имеет, то далеко не первостепенное - у меня compassmot 300+ - спокойно висит по несколько минут, дольше не проверял
- исключаем проблемы механического характера - плохой контакт, чтоб не было ошибок на порту
- проверяем ориентацию платы/компаса. Для AIOP поворот 0 градусов. Для внешнего нужно проверять внимательно.
- калибруем аксели/гиро с упором в вертикальные/горизонтальные поверхности
Основное, что думаю, мне помогло. Через ucenter - в конфе (ctrl+f9) ставим RATE - Period 200ms (5Hz), NavRate 1. У меня ставится и 10Гц, но летать на них еще не пробовал.
- PRT (Ports) - Uart1 - In 0+1+2 (все протоколы), out - 1-NMEA. Baudrate 57600.
Вот это, имхо, основное. Когда стоял вход и выход на все протоколы - в консоли (Packet F6, Binary F7, Text F8) да и просто в любом терминале, слушающем этот Com порт я не увидел ни одного пакета бинарных данных - все чистый NMEA, ровно и без пропусков. Переводил модуль на выход только ублокса - полная тишина в порту, ни байтика данных. Скорость 57600 - дефолтных 9600 может нехватить для 5гц обновления. У меня стабильно работал и на 115200, но где-то читал что кол-во ошибок, возникающих на порту на такой скорости на порядок выше, чем на скорости 56700, если еще ниже - разница уже не столь велика. - сохраняем параметры несколько раз подряд - нередки таймауты выполнения операций через юцентр. Я просто потом проверял переподключением модуля к FTDI (сброс питания) и перезапуском юцентра. В итоге в ucenter данные от спутников должны идти быстро (5гц) ровно и без внезапных пропусков.
- и последние - шьем флештулом тип GPS NMEA и скорость 57600, прошивка 3.1.5. Вручную не компилил - лень, какие дефайны выставлять не скажу.
Cooler044, попробуйте таким образом настроить - если полетит - многим это в будущем позволит съэкономить много времени и нервов, а кто-то не выкинет свои aiop =)
Лирика.
Почему блоха не знает своего языка? - не знаю, не копал, -работает, и фик с ним - есть куча других, не менее занимательных вещей на пути к идеальным полетам =) Возможно что-то перемудрили китайцы, возможно что-то недомудрил я. Почему MP получал NMEA координаты, с прошитого на на бинарный ublox AIOP? - тоже хз, возможно в коде он жестко не привязывается к одному типу данных, и пытается распознать протокол, который ему дают. Кто сморел в исходники - пусть подскажут. Но, имхо, где-то в этом и заключается глюк. Впереди обучение телеметрии тараниса полетным данным от пирата (как минимум ток, вольтаж и гпс), и подключение minimOSD. После этого мне будет уже не так стремно летать по фпв.
Re-Loader Спасибо за совет!
Первым делом я попробую полететь после сброса настроек и заливки конфига 3DR. В другом месте подсказали, что удалось вылечить такие же улёты, при чём обязательно сброс настроек.
Думаю такая последовательность будет целесообразной, при том, что UBX протокол у меня всё же живой.
Если нет, попробую Ваш вариант, увеличу пропускную на модуле и в прошивке, буду пробовать NMEA.
В конфиге 3ДР большая часть настроек отвечает за типы сообщений, которые будет слать модуль (всё, что с префиксом MSG). Вполне возможно, что по дефолту включены какие то сообщения, которые либо вводят в заблуждение парсер в прошивке, либо просто флудят, нагружая контроллер. На буржуйских формах пишут, что начиная с версии 3.0 важность заливки конфига возросла.
Я бы уже давно проверил и не морочил голову, но пока не было возможности. Отпишусь!
Кстати, с MinimOSD там возня минимальная.
-
Запаять питание аналоговой части на 5 вольт с цифровой части (5v power mod, у меня уже было запаяно продавцом)
-
Соединения (контроллер - осд) vcc-vcc gnd-gnd tx-rx. При соединении с ПК через FTDI ущё добавить проводок rx-tx.
-
Если камера PAL, а OSD настроена на NTSC, вы не увидите наложеного изображения. Будет или только ОСД на черном фоне если камера выкл, или, если включаешь камеру - только камера. Выход - через конфиг тул выставить в ОСД меню PAL, и залить настройку (у меня не с первого раза залилось почему то).
-
У меня при залитии конфига в ОСД писало что нет связи с бутлоадером. Выход - по старинке, жмём send config на ПК и сразу же кнопку reset, на платке OSD, оно подхватит. И не надо перешивать бутлоадер, как советуют на половине форумов.
-
Если данные с пирата не будут обновляться - в АПМ планнере найти в Optional Hardware ОСД и нажать единственную там кнопку. У меня без той кнопки не завелось.
Надеюсь поможет. Инфу про ПАЛ и НТСК найти, на самом деле, не так просто, у меня ушел вечер, думал сжег плату, пока припаивал пины.
Сейчас припоминаю что тоже пытался залить конфиг от 3DR, но полностью он у меня ни разу не залился - постоянные таймауты. На самом деле что-то полезное из него могло и прошиться в блоху. Этот момент тоже не нужно снимать со счетов
у меня были таймауты когда я использовал плату контроллера вместо FTDI. На нормальном FTDI, у меня все параметры залились , некоторые с 3-4 попытки… Сбросить настройки тоже немаловажно, так как конфиг при заливке только замещает те настройки, что в нём есть. Может там что то левое было выставлено, что не покрыто конфигом от 3ДР.
И ещё только что прочитал информацию, что Мегапират при запуске устанавливает какие то свои временные настройки для модуля сам. Что бы полностью исключить такое можно отсоединить проводок от TX на контроллере. Что бы он ничего не мог “сказать” модулю.
Я там выше ещё добавил свой опыт с MinimOSD, может пригодится!
Я лил и через перешитую плату и через пришедший впоследствии ftdi - особой разницы не увидел, на 100% нормально он у меня не шился. Поэтому в основном грешил на модуль - неспешно мучал его пару месясяцев, пока он все же не полетел. За инфу по осд спасибо - буду иметь ввиду, как доберусь до него
Как то вы сильно заморачиваетесь.
Прямо колдовство какое. Два хвоста пенолета, три лопасти и шепотку карбона. Варить три часа.
Берем модуль (условие нормальный с епромом), коннектимся.
Смотрим настройки UART.
Там четко написано в каком формате идет вывод данных и в каком прием команд.
По умолчанию вывод блоха+нмеа, прием по всем возможным вариантам.
Управление можно не трогать, а вывод меняем на блоху.
Погомогите, плиз, советом, а то это уже тупик
тоже долго мучился, пока не плюнул и поставил ардукоптер. но если есть желание добить - попробуйте заменить GPS - у меня один летал с Crius gps v3 na neo-6m (пока не улетел в лес).
Всё решилось! Сегодня протестировал, точку держит, домой возвращается, по прямой! Всё просто супер!
Помог сброс до заводских настроек модуля перед заливкой конфига от 3ДР. Я не знаю, как я сам не додумался… Это же первое правило - вайпнуть до заводских если ведёт себя странно.
Алгоритм: Сброс настроек -> подсоединение на 9600 -> сброс настроек ещё раз -> установка руками скорости 38400 (что бы не рвало при заливке) -> заливка конфига.
Разница заметна сразу, ещё дома!!! После сброса настроек никаких ошибок, весь конфиг заливается меньше чем за 2 сек и окно заливки пропадает, что свидетельствует о том, что ошибок и повторных попыток не было никаких!
Раньше же оно мучало заливку конфига секунд 30 с повторными попытками!
В консоли Мегапирата test->Gps, раньше оно плевалось координатами раз в 1-2-3 секунды, неравномерно, теперь ровненько с частотой около 5 герц (на глаз), без задержек.
Всем спасибо за внимание!
Пользуясь случаем ещё вопросик.
Эта проблемка была и раньше, но думал что это компас и решится уходом от наводок. Теперь, после того, как просветился, что повороты по Yaw плата видит не компасом а акселерометром и после выноса компаса на палку, нужно что то решать.
Коптер со временем немного меняет свою ориентацию по Yaw при обычном спокойном полёте. Особенно, когда его на быстром спуске колбасит, может провернуться на 45 градусов и так и остаётся, пока стиком не выровняешь.
Кто виноват и что делать? Вибрации? Не критично, но бесит, что подымал я его задом к себе, а после спуска он уже почти лицом на меня смотрит. Или отлетел далеко, стик на себя, а он летит уже не совсем ко мне…
При этом сам он не теряется, по ГПС летит куда надо, в симпл моде летит как надо, то есть он осмысленно повернулся и согласился с этим поворотом, это не какая то временная наводка.
Было у меня 1 раз такое. запустил вверх поснимать в авторежиме, 2 круга задал ему, а он 2.5 сделал, и приземлился он повернутый точнехонько на 180 градусов. Тоже не понял, как получилось. Логи не догадался посмотреть, ибо не придал особого значения событию… видимо зря…
проверяйте выкос моторов. попробуйте в планере выставить I в ПИДах по YAW в ноль, потом поднимите коптер. смотрите, куда его крутит. после выкосом моторов попробуйте убрать это кручение или что бы оно было по минимому, затем верните I в исходное значение
проверяйте выкос моторов. попробуйте в планере выставить I в ПИДах по YAW в ноль, потом поднимите коптер. смотрите, куда его крутит. после выкосом моторов попробуйте убрать это кручение или что бы оно было по минимому, затем верните I в исходное значение
у меня не крутит его по яв, и все четко работает, с раскачкой при спуске со скоростью 2 м/с вот только разобраться надо, просто один раз был такой глюк, что он вместо запрограммированных 2-х оборотов на нужной высоте сделал почему-то 2.5 оборота… больше такого не повторялось пока…
у меня не крутит его по яв, и все четко работает
ну так за кручение не только вы спрашивали, а еще и Дмитрий
Cooler044
Подскажите где в коде отключить встроенный компас? Сам что-то сразу не нашел… Пришел внешний, не хочется разбирать коптер и резать дорожку. А с 2мя компасами при калибровке мусор какой-то получается…
Сдуй его феном.
Если я правильно понял, то 3.1.5 не поддерживает сонар? А какая последняя поддерживает?