High end Low cost Quatrocopter
Игорь, извините, я до конца не понял, ваш код совместим с железом ардукоптера APM 1.x или он заточен на вашу платку ArduIMU+ V3 ? (форум.моделька лежит, база у них рухнула)
Я взял DCM матрицу из программы ArducopterNG и обработку приемника из МультиВии и получился код под эту платку. Плюс к этому дописана линеаризация характеристики регулятора, введен минимальный газ, чтобы винты не останавливались и увеличена усредненная точность выдачи сигнала на моторы. Идея в том чтобы проверить влияние хорошего гироскопа на поведение коптера. Код под эту платку.
Поставил ArduImuV3 на коптер ну и конечно не заработало. На 5,6 выходе 1 кГц . Дописал программный PWM. Моторы заработали. Исправил рудер Завтра проверю на коптере.
ArduIMU_V3_6.rar.
Ну не хуже NAZA dji wookong должно получится …
Ну учитывая что мои коптеры с электроникой Ardu и программкой Arducopter NG летают не хуже hi-end полетный контролер dji wookong wk-m autopilot wkm (а ссылочки выше)
Имхо на Вашем последнем видео ничего не видно, мотает его из стороны в сторону, так любой Кук летать может.
Для сравнения ролик с сайта Naza:
Покупные платы с датчиками для arduino больше года продаются, в чем собственно новизна разработки? Какие-то особые алгоритмы или еще что-то?
Или код полностью самописный? Ну тогда большой респект за проделанную работу.
Имхо на Вашем последнем видео ничего не видно, мотает его из стороны в сторону, так любой Кук летать может.
Для сравнения ролик с сайта Naza:
Покупные платы с датчиками для arduino больше года продаются, в чем собственно новизна разработки? Какие-то особые алгоритмы или еще что-то?
Или код полностью самописный? Ну тогда большой респект за проделанную работу.
ArduIMU+ V3 я увидел недавно. Код не самописный, а собран из кусков других проектов.
За видео спасибо. Интересно. На моем первом видео мой коптер летает приблизительно так же. Если толкать сверху или снизу будет вести себя так же из-за сонара. Швырять и запускать не пробовал. Не уверен что получится. На вторм видео коптер настроен по другому и ведет себя по другому. Летает под управлением автопилота.
И я не уверен, что Кук так может. Кука с автопилотом не видел.
Если толкать сверху или снизу будет вести себя так же из-за сонара. Швырять и запускать не пробовал.
Прикол в том, что у lite-версии Naza нет сонара 😃 Так что работа с датчиками у них-таки неплохо сделана.
Вот для сравнения стабильность “полноценного” dji, смотреть с середины ролика:
[QUOTE=DVE;3091629]Прикол в том, что у lite-версии Naza нет сонара 😃 Так что работа с датчиками у них-таки неплохо сделана.
Вот для сравнения стабильность “полноценного” dji, смотреть с середины ролика:
То что этот проект интересен спорить не приходится. Я давно обратил на него внимание. Но речь не о том. Так же говорили о немце и утверждали что без I2C регуляторов хороший коптер не сделаешь. Когда обсуждается Оупенпилот речь идет о том, что без мощного процессора летать хорошо не будет. И так далее. Но все это не совсем так. В данный момент dji впереди и стоит при этом на порядок больше Ardu. $250 полный автопилот Ardu с сонаром и $2300 полноценный dji с ПО автопилота. Поэтому отличия должны быть иначе продаваться не будет. Относительно этого ролика - он рекламный . Неоднократно обсуждался вопрос полета шестерки без одного мотора - летает, сам пробовал когда у меня один регуль не раскручивал мотор, а если пилот хороший то и не заметишь.
То что они умеют обрабатывать датчики - таки да. Учится надо.
Цель же моего проекта - оценить влияние качества гироскопа на конечный результат. Учитывая, что я занимаюсь этим в свободное время, то заинтересован в привлечении единомышленников, что б проект двигался веселее.
А вот тут колега у нас в Киеве вчера полетал на Куке
www.youtube.com/watch?v=1dki1cSUmEI&feature=player…
И по видео не скажешь, что Кук хуже dji
Игорь, у нас на форуме до хрена мегапиратов (код ардукоптера портированный для датчиков itg3200, bma180, 5884L, bmp085) и ардукоптероводов (версии 1, и уже версии 2) 😃 Вот если бы ваш код бы совместим с нашим хозяйством, мы бы с удовольствием встали под ваши знамена.
Исправил ошибки, поставил на коптер рядом с АРМ 1 и в коридоре поднялся. Летает лучше МультиВии и не хуже Arducopter. Далее нужно тестировать. Реализован Stable режим. Для Акро все есть и только проверять надо. Есть еще один свободный вывод, на который можно попробовать повесить переключатель или индикацию.
Не нравится мне как работает магнетометр, но с этим буду разбираться.
Игорь, у нас на форуме до хрена мегапиратов (код ардукоптера портированный для датчиков itg3200, bma180, 5884L, bmp085) и ардукоптероводов (версии 1, и уже версии 2) 😃 Вот если бы ваш код бы совместим с нашим хозяйством, мы бы с удовольствием встали под ваши знамена.
Код написан под конкретное железо и прямо на другом работать не будет, но вполне можете использовать соответствующие куски для других проектах. Для примера линеаризация характеристики регулятора, повышение средней точности выдачи команд на моторы - это легко вставляется в проекты на Атмеге 328 и так далее. После этого и МультиВии и Кук летать лучше будут. Измеренное время цикла - 3,3 милисекунды - 300 герц, что тоже результат неплохой. Если выбросить телеметрию то половина памяти свободна . Можно подключить ЖПС, сонар, и барометр, если есть и валяются без дела. Соответствующие куски кода легко находятся и вставляются.
Меня же сейчас в этом проекте интересует работа магнетометра. Калибровка нуля пока выполнена в ручном режиме, но 5883L имеет встроенную функцию калибровки эффекта “жесткого и мягкого железа”-то есть смещение нуля и размаха, но я пока не понимаю алгоритм. Если кто то может объяснить буду благодарен. И соответствующий код дорисую
APM 1 с ArducopterNG с дописанным автопилотом летает с весны прошлого года и потихоньку правится. Собственно надо усовершенствовать автоматическую посадку-пока просто блокирую моторы на высоте 20 см. Но это нужно просто желание. С моим умением летать коптер сам садится лучше. И исправить ошибку в алгоритме возврата домой. При полете по точкам введена скорость горизонтального полета и изменения высоты, а в при переключении режимов и возврате домой не дописал из-за лени и поэтому зачастую дергается.
АРМ 2 и вторая версия прошивки пока никак. То есть программа грузится , железка работает, но доводить ее нужно. Мне не нравится в коде алгоритм посадки, алгоритм перехода с сонара на баро, куча режимов, которые мне вряд ли пригодятся. Поэтому сейчас допишу вывод на последовательный порт датчиков и буду потихоньку разбираться. В гироскоп и акселерометр может вписать температурную компенсацию. Посмотреть как работает новый баро выбрать алгоритм переключения на сонар, переписать алгоритм захвата точки старта-сейчас я использую горизонтальную скорость в качестве критерия качества сигнала и если нуль в течении 10 сек то очень хорошо, если меньше то тоже ничего, если нуля нет то запоминаем те координаты, что есть. Это влияет на точность возврата домой. Ввести режим сдвига координат-это когда стиками меняете параметры точки висения и т. д. Поэтому если интересы совпадают можно налаживать потихоньку сотрудничество. И будет Ardu летать лучше китайцев.
Прикол в том, что у lite-версии Naza нет сонара 😃 Так что работа с датчиками у них-таки неплохо сделана.
Вот для сравнения стабильность “полноценного” dji, смотреть с середины ролика:
Есть там барометр и работает похоже очень хорошо, так что сонар им не нужен.
Есть там барометр и работает похоже очень хорошо, так что сонар им не нужен.
Практически идеально работает
Практически идеально работает
Как по мне NAZA и АРМ 2 с сонаром стоят одинаково. Все что показывают на NAZA не хуже работает и на Арду пока правда с сонаром (клип в 5 сообщении) и на клипе видно когда я подруливаю, а около NAZA пилота не видно и подруливает он мягко так что сразу не заметишь. А функциональность последнего существенно лучше. А с барометром разберемся. После прочтения PDF на компас оказалось, что 5883 сам калибруется и шаманить не надо, так что сижу правлю код, думаю что то подобное и с барометром.
А вообще нет пророка в своем отечестве. Когда полгода назад я писал на Моделке, что Арду летает не хуже немца во многих режимах, народ утверждал что это не так, поскольку у немца стоят быстрые регули и на стандартных так не получится. Теперь китайцы летают на стандартных и о преимуществах немца как то забыли.😦
Игорь, я понимаю вас как разработчика каких то новых мозгов для коптера - хочется продвинуться.
НО, не понимаю вас как человека = не этично говорить что другие проекты хуже и мол, бросайте все - идите под мои знамена.
Каждый человек находит в каком-то проекте то что ему нравится и занимается им. Вы похожи больше на коммивояжера.
Игорь, я понимаю вас как разработчика каких то новых мозгов для коптера - хочется продвинуться.
НО, не понимаю вас как человека = не этично говорить что другие проекты хуже и мол, бросайте все - идите под мои знамена.
Каждый человек находит в каком-то проекте то что ему нравится и занимается им. Вы похожи больше на коммивояжера.
Не хотел никого обидеть каким бы то ни было образом. Этот проект просто развлечение и выложен для того что может кому то подойдет. Хотя честно говоря в единомышленниках заинтересован.
Но в первую очередь хочу показать , что не обязательно тратить много денег для того, чтобы хорошо летало. Но , конечно для этого надо повозится. А дальше каждый выбирает то что ему больше подходит.
И я думаю, что тем у кого средства не позволяют или цели нет купить сразу готовое и летать и возятся, чтобы довести какой то оупен проект до уровня коммерческих по качеству, неприятно слушать, что это не получится и ерундой вы тут занимаетесь.
Поэтому прошу уважаемое сообщество извинить за может не слишком корректные высказывания. Все мы любим похвастаться и я не исключение.
Здравствуйте Игорь!
Учитывая ваш опыт может поможете разобраться с сонаром для мультиви, т.к. уже месяц мучаюсь…
Возможно у вас есть наработки для “правильного” ПИД регулятора сонара. Пробовал уже много чего, полный классик ПИД регуль, PI регуль + D составляющая от оси Z акселерометра, также существующий мультивишный аль-холд ПИД регуль с переключателем баро-сонар… не летит короче и все тут, то перерегулирование то недорегулирование и т.д.
з.ы. кстать сегодня профайлил “сырые” данные с сонара и обнаружил что на высоте более метра при включенных двиках (на газе висения) сонар начинает врать… газ в ноль - все ок… сперва подумал что электромагнитные наводки, но потом удерживая на 50-70см на полном газу показания высоты были более чем стабильны… значит получается вибрации от моторов и акустический шум сбивают его с толку и амплитуда эхо-импульса достаточна лишь на малых высотах до метра… с сонаром все ок, т.к. есть два и пробовал на обоих…
С ПИД регулем вопрос все еще актуален т.к. на высотах менее метра высоту не держит все равно…
наработки по сонару тут rcopen.com/blogs/83206/13482
Здравствуйте Игорь!
Учитывая ваш опыт может поможете разобраться с сонаром для мультиви, т.к. уже месяц мучаюсь…
Возможно у вас есть наработки для “правильного” ПИД регулятора сонара. Пробовал уже много чего, полный классик ПИД регуль, PI регуль + D составляющая от оси Z акселерометра, также существующий мультивишный аль-холд ПИД регуль с переключателем баро-сонар… не летит короче и все тут, то перерегулирование то недорегулирование и т.д.з.ы. кстать сегодня профайлил “сырые” данные с сонара и обнаружил что на высоте более метра при включенных двиках (на газе висения) сонар начинает врать… газ в ноль - все ок… сперва подумал что электромагнитные наводки, но потом удерживая на 50-70см на полном газу показания высоты были более чем стабильны… значит получается вибрации от моторов и акустический шум сбивают его с толку и амплитуда эхо-импульса достаточна лишь на малых высотах до метра… с сонаром все ок, т.к. есть два и пробовал на обоих…
С ПИД регулем вопрос все еще актуален т.к. на высотах менее метра высоту не держит все равно…
наработки по сонару тут rcopen.com/blogs/83206/13482
Работе сонара по моему впечатлению может мешать писк моторов. Проблема у меня была с Турниги 2830. Заменил на новые, потом перешел на DT750 и на них проблемы не видел. МВ1260 у меня работает лучше существенно МВ1200. Поэтому может и сонары такие. Далее любая фильтрация будет вносить задержку, поэтому от нее следует отказаться по меньшей мере на первом этапе. Мой сонар если не меряет на выходе выдает максимальную высоту. Такие данные не используются, а далее если три раза не макс то считаем что хорошо.
Алгоритм
int Altitude_control_Sonar(int altitude, int target_altitude)
{
SONAR_OUTPUT_MAX = constrain(100 / (DCM_Matrix[2][2]),80,150);
static int err_altitude = 0;
int command_altitude;
int err_altitude_old;
err_altitude_old = err_altitude;
err_altitude = target_altitude - altitude;
sonar_altitude_I += (float)err_altitude*GdT_SONAR_ALTITUDE;
sonar_altitude_I = constrain(sonar_altitude_I,-100,100); //Ограничение по интегральной составляющей
sonar_altitude_D = (float)(err_altitude-err_altitude_old)/GdT_SONAR_ALTITUDE;
//изменения по ограничению диф часть ограничена отдельно
//sonar_altitude_D =constrain(sonar_altitude_D,-100,100); // New
//command_altitude = KP_SONAR_ALTITUDE*err_altitude + KI_SONAR_ALTITUDE*sonar_altitude_I ; // New
//command_altitude = constrain(command_altitude,-ALTITUDE_CONTROL_SONAR_OUTPUT_MIN,ALTITUDE_CONTROL_SONAR_OUTPUT_MAX); // New
//command_altitude = initial_throttle + command_altitude + KD_SONAR_ALTITUDE*sonar_altitude_D ; // New
//Интегральная часть добавлена с ограничением только выше
command_altitude = KP_SONAR_ALTITUDE*err_altitude + KD_SONAR_ALTITUDE*sonar_altitude_D ;
command_altitude = initial_throttle + KI_SONAR_ALTITUDE*sonar_altitude_I + constrain(command_altitude,SONAR_OUTPUT_MIN,SONAR_OUTPUT_MAX);
// Исходный код
//command_altitude = KP_SONAR_ALTITUDE*err_altitude + KI_SONAR_ALTITUDE*sonar_altitude_I + KD_SONAR_ALTITUDE*sonar_altitude_D ;
//command_altitude = initial_throttle + constrain(command_altitude,-ALTITUDE_CONTROL_SONAR_OUTPUT_MIN,ALTITUDE_CONTROL_SONAR_OUTPUT_MAX);
//Log_Write_PID(4,KP_SONAR_ALTITUDE*err_altitude,KI_SONAR_ALTITUDE*sonar_altitude_I,KD_SONAR_ALTITUDE*sonar_altitude_D,command_altitude);
return command_altitude;
Далее мои Пиды КР =0,8 КI =0,1 KD =0,7 При выдаче команды на моторы с частотой 400 (вместо 200 как у меня было вначале) КР и KD уменьшил в полтора раза. Ограничение нессиметричное в минус 40 в плюс 80 (-ALTITUDE_CONTROL_SONAR_OUTPUT_MIN,ALTITUDE_CONTROL_SONAR_OUTPUT_MAX). Принципиален исходный газ (initial_throttle)-газ висения. У меня он хранится в памяти, и корректируется в зависимости от напряжения на батарее. Точность задания ±10 мкс. Этот алгоритм из ArducopterNG.
Работе сонара по моему впечатлению может мешать писк моторов. Проблема у меня была с Турниги 2830. Заменил на новые, потом перешел на DT750 и на них проблемы не видел.
у меня как раз турниги 2209… вот жеж! а был полностью дволен их неубиваемостью… везде есть ложка дегтя ((
у меня как раз турниги 2209… вот жеж! а был полностью дволен их неубиваемостью… везде есть ложка дегтя ((
Вопрос не в марке,а скорее наверно в размерах. У маленьких моторов частота писка выше.
Игорь, а сколько стоит ArduIMU+ V3 и где купить можно?
То есть , сейчас можно взять плату, залить вашу прошивку и спокойно летать?
Хотел брать кролика, но вот теперь думаю.
Прочитал PDF на магнетометр 5883, дотошно прочитал. Изобразил тестовую программку для чтения в нормальном режиме и с включением положительного и отрицательного тестового поля. Ткнули осциллографом на выводы 8, 12.
Результаты таковы:
На выводах 8 , 12 с частотой приблизительно 50 Гц шлепают импульсы, которые якобы размагничивают датчик. Но при вращении ассиметрия выхода остается. Это может быть разбаланс моста, но его компенсировать как то надо. Поэтому шаманство с вращением во всех плоскостях и определение минимума и максимума остается и других идей нет пока.
Вот это тестовое поле положительное и отрицательное весьма странное, так как в этом режиме внешнее поле Земли на выход магнетометра не влияет. Выдает по всем выходам + или минус 1200-1300.
И результат.
В горизонтальной плоскости как то меряет, но при наклонах крутится на ± 50 легко. Это при том, что из DCM - матрицы углы по крену и тангажу правильные идут.
С 5843 как то летал и не задумывался, хотя траекторию полета ровной не назовешь, хотя как то не приходило в голову наклонять коптер при проверке магнетометра. И проблем особых не было, а что с этим делать? Еще проверю правильно ли знак магнетометра по вертикальной оси задан при расчетах и идеи кончились.
Игорь, а сколько стоит ArduIMU+ V3 и где купить можно?
То есть , сейчас можно взять плату, залить вашу прошивку и спокойно летать?
Хотел брать кролика, но вот теперь думаю.
Плата 78 ам.руб плюс доставка без трека 4. store.diydrones.com/…/kt-arduimu-30.htm
Думать надо. Потому что кроликом масса народа занимается и программка отрабатывается, а здесь первый тестовый вариант. Но если в программировании чуть понимаете, то с этой платой повозится интересно. Датчики хорошие.
Недостаток этой платы в том, что свободных выводов мало. Мало того выходы на два мотора берутся с резисторов. Для подключения датчиков есть еще пара входов чисто АЦП и один цифровой вывод. Остальное по I2C.
Себе я эту плату купил, чтобы с новыми датчиками разобраться пока АРМ 2.0 ехала.
Понятно. Буду думать.
Я правильно понял, у вас свой отдельный форк MultiWii , скрещенный с ArduCopter? Мне кажется вы пошли не очень правильным путем, по двум причинам: одному человеку трудно будет портировать все новые фишки, которые добавляет сообщество разработчиков, и все ваши разработки также останутся недоступны сообществу, если сильно уйдете в сторону.
Я также любитель поковыряться с программой и добавить что то новое, но к вашему проекту не присоединюсь именно по этой причине - не стоит плодить столько клонов. Но ничто не мешает, конечно, советоваться и брать рабочиее решения друг у друга.