High end Low cost Quatrocopter

igor_v_t

Занимаюсь коптерами последних полтора года. Результаты можно посмотреть forum.modelka.com.ua/index.php?showtopic=30258&st=…
forum.modelka.com.ua/index.php?showtopic=33001&st=…
Приверженец платформы Arduino (Arducopter, MultiWii)
Анализируя ситуацию с управляющей электроникой пришел к выводу, что успех обеспечивают хорошие датчики с отработанным ПО.
Имеем плату ArduIMU+ V3 с хорошими гироскопами, обычным акселем и магнетометром.
Используя исходники Ardu и MultiWii образовалась программка для данной железки. ArduIMU_V3_5.rar (16.0 Кб)
Выходы приемника на А0-А3 (елерон, елеватор, газ, рудер) Выходы 5,6 (с резисторов светодиодов)9,10 (PWM0,PWM1)
analogWrite(5, r_mot); 1 мотор
analogWrite(6, l_mot); 3 мотор
analogWrite(9, f_mot); 4 мотор
analogWrite(10,b_mot); 2 мотор
Частота на моторы 495 Гц
Конфигурация Х нос между 4 и 1 мотором, нумерация по часовой стрелке. Платка устанавливается вдоль 1-3 мотора последовательным портом к 3.
Пиды в файле Ardu.h
float KP_QUAD_ROLL =3.2;
float KI_QUAD_ROLL =0.1;
float STABLE_MODE_KP_RATE_ROLL =0.8;
float KP_QUAD_PITCH =3.2;
float KI_QUAD_PITCH =0.1;
float STABLE_MODE_KP_RATE_PITCH =0.8;
float KP_QUAD_YAW =3.0;
float KI_QUAD_YAW =0.15;
float STABLE_MODE_KP_RATE_YAW =2.4;
Разблокировка моторов стик газа вниз вправо - 5 сек
блокировка вниз влево 3 сек
Второй канал передатчика инвертирован
Калибровка гиро - При заблокированных моторах правый стик вниз влево 10 сек аксель вниз вправо .
Для первой загрузки кода закоментировать строку readParams(); в void setup и провести калибровку для записи первой в EEPROM,после того раскоментировать.
На коптере НЕ ПРОВЕРЯЛОСЬ - проверять буду попозже, если удастся на этой неделе.
И еще пару принципиальных моментов-регуляторы Турниги плюш - 25-30А. Из-за вставленной в программу линеаризации характеристики. Или убирать линеаризацию. Калибровать при минимуме газа 1180 мкс. Минимум устанавливается на передатчике длительность смотрим командой “U”. Остальные параметры тоже легко выводятся (файл CGS). Моторы не очень важно (у меня ДТ750).
Усредненная точность вывода на моторы - 1 мкс.
Соответственно оттримировать передатчик или вписать в программу значения крена тангажа и руля в нуле.
Ну и естественно НИКАКИХ ГАРАНТИЙ. (фирма гарантий не дает поскольку брака не делает )
В результате должен получиться дешевый хай енд и летать будет хорошо и стоить дешевою
Ну не хуже NAZA dji wookong должно получится

ArduIMU_V3_5.rar

delfin000
igor_v_t:

Ну и естественно НИКАКИХ ГАРАНТИЙ. (фирма гарантий не дает поскольку брака не делает )

Брак и ошибки разные только Боги не делают

igor_v_t
delfin000:

Брак и ошибки разные только Боги не делают

Ну учитывая что мои коптеры с электроникой Ardu и программкой Arducopter NG летают не хуже hi-end полетный контролер dji wookong wk-m autopilot wkm (а ссылочки выше), амое видео не рекламное и не редактировалось и с функциональностью неплохо то ошибок не так уж много.

delfin000

Очень много “Я” , через “Моё”

igor_v_t:

…летают не хуже hi-end полетный контролер dji wookong wk-m autopilot wkm (а ссылочки выше),…

Ну!!!.. пол мира “мучается” с Ardu, правя код и выискивая пути улучшения системы, а у вас уже шоколад полный… Странно как то это.
Пришлите одну нашим форумчанам. Попробуем и поймем , насколько верно это.

igor_v_t:

и с функциональностью неплохо то ошибок не так уж много.

А вот это сомнительно. И Винда до сих пор глючит , да и спутники падают, где вообще все передовое.

igor_v_t
delfin000:

Очень много “Я” , через “Моё”

Ну!!!.. пол мира “мучается” с Ardu, правя код и выискивая пути улучшения системы, а у вас уже шоколад полный… Странно как то это.
Пришлите одну нашим форумчанам. Попробуем и поймем , насколько верно это.

А вот это сомнительно. И Винда до сих пор глючит , да и спутники падают, где вообще все передовое.

Полет под управлением автопилота с автоматической посадкой. Прошлый год где-то май месяц

Ну естественно с глюками, но все плавненько и спокойно без ветра.

delfin000
igor_v_t:

Полет под управлением автопилота с автоматической посадкой.

По этому видео сомнения возникают насчет автопосадки, судя по поведению аппарата. И насчет стабильности… но может это и пилот так рулит
Висит он нормально,приемлемо. Летает как все другие системы. Но что то вы его далеко не отпускаете. Когда хорошо фурычит автоматика, то тогда не страшно подадьше залетать…😉
И DJI не изучен досканально, но много есть по нему информации из разных источников.
Разверните тему шире. Больше примеров, проб, показов. Может и действительно летабельно. А так… не понять. 😉

igor_v_t

Одна из последних съемок с 35 сек по 1 мин 50 сек пролетаем два раза по квадрату 12х12 м потом сели в автомате. Ветерок был да и коптер на агресивные реакции настроен. Посадка не такая красивая-просто на высоте 20 см двигатели отрубаю, но исправить можно. Летать я не умею, поэтому коптер сам в основном летает.

delfin000:

По этому видео сомнения возникают насчет автопосадки, судя по поведению аппарата. И насчет стабильности… но может это и пилот так рулит
Висит он нормально,приемлемо. Летает как все другие системы. Но что то вы его далеко не отпускаете. Когда хорошо фурычит автоматика, то тогда не страшно…😉
И DJI не изучен досканально, но много есть по нему информации из разных источников.
Разверните тему шире. Больше примеров, проб, показов. Может и действительно летабельно. А так… не понять. 😉

Далеко не отпускаю по причине неумения летать. Далее заходите на ЮТУБ и смотрите другие видео. По поводу автопосадки сажусь как правило в автомате по той же причине неумения летать. ArducopterNG мною досконально изучен и летает. Новая версия и новые датчики начинаем изучать и летать будет лучше т.к. датчики лучше. Подробно и максимально широко forum.modelka.com.ua/index.php?showtopic=30258 и продолжение forum.modelka.com.ua/index.php?showtopic=33001

igor_v_t

Я чесно говоря не понимаю восторгов по поводу выпущенных продуктов. Мне кажется на открытых проектах этот уровень уже достигнут и dji wookong я рассматриваю так, что и китайцы достигли уровня открытых проектов.

Covax

Игорь, извините, я до конца не понял, ваш код совместим с железом ардукоптера APM 1.x или он заточен на вашу платку ArduIMU+ V3 ? (форум.моделька лежит, база у них рухнула)

igor_v_t
Covax:

Игорь, извините, я до конца не понял, ваш код совместим с железом ардукоптера APM 1.x или он заточен на вашу платку ArduIMU+ V3 ? (форум.моделька лежит, база у них рухнула)

Я взял DCM матрицу из программы ArducopterNG и обработку приемника из МультиВии и получился код под эту платку. Плюс к этому дописана линеаризация характеристики регулятора, введен минимальный газ, чтобы винты не останавливались и увеличена усредненная точность выдачи сигнала на моторы. Идея в том чтобы проверить влияние хорошего гироскопа на поведение коптера. Код под эту платку.

igor_v_t

Поставил ArduImuV3 на коптер ну и конечно не заработало. На 5,6 выходе 1 кГц . Дописал программный PWM. Моторы заработали. Исправил рудер Завтра проверю на коптере.
ArduIMU_V3_6.rar.

DVE
igor_v_t:

Ну не хуже NAZA dji wookong должно получится …
Ну учитывая что мои коптеры с электроникой Ardu и программкой Arducopter NG летают не хуже hi-end полетный контролер dji wookong wk-m autopilot wkm (а ссылочки выше)

Имхо на Вашем последнем видео ничего не видно, мотает его из стороны в сторону, так любой Кук летать может.

Для сравнения ролик с сайта Naza:

Покупные платы с датчиками для arduino больше года продаются, в чем собственно новизна разработки? Какие-то особые алгоритмы или еще что-то?

Или код полностью самописный? Ну тогда большой респект за проделанную работу.

igor_v_t
DVE:

Имхо на Вашем последнем видео ничего не видно, мотает его из стороны в сторону, так любой Кук летать может.

Для сравнения ролик с сайта Naza:

Покупные платы с датчиками для arduino больше года продаются, в чем собственно новизна разработки? Какие-то особые алгоритмы или еще что-то?

Или код полностью самописный? Ну тогда большой респект за проделанную работу.

ArduIMU+ V3 я увидел недавно. Код не самописный, а собран из кусков других проектов.
За видео спасибо. Интересно. На моем первом видео мой коптер летает приблизительно так же. Если толкать сверху или снизу будет вести себя так же из-за сонара. Швырять и запускать не пробовал. Не уверен что получится. На вторм видео коптер настроен по другому и ведет себя по другому. Летает под управлением автопилота.
И я не уверен, что Кук так может. Кука с автопилотом не видел.

DVE
igor_v_t:

Если толкать сверху или снизу будет вести себя так же из-за сонара. Швырять и запускать не пробовал.

Прикол в том, что у lite-версии Naza нет сонара 😃 Так что работа с датчиками у них-таки неплохо сделана.

Вот для сравнения стабильность “полноценного” dji, смотреть с середины ролика:

igor_v_t

[QUOTE=DVE;3091629]Прикол в том, что у lite-версии Naza нет сонара 😃 Так что работа с датчиками у них-таки неплохо сделана.
Вот для сравнения стабильность “полноценного” dji, смотреть с середины ролика:

То что этот проект интересен спорить не приходится. Я давно обратил на него внимание. Но речь не о том. Так же говорили о немце и утверждали что без I2C регуляторов хороший коптер не сделаешь. Когда обсуждается Оупенпилот речь идет о том, что без мощного процессора летать хорошо не будет. И так далее. Но все это не совсем так. В данный момент dji впереди и стоит при этом на порядок больше Ardu. $250 полный автопилот Ardu с сонаром и $2300 полноценный dji с ПО автопилота. Поэтому отличия должны быть иначе продаваться не будет. Относительно этого ролика - он рекламный . Неоднократно обсуждался вопрос полета шестерки без одного мотора - летает, сам пробовал когда у меня один регуль не раскручивал мотор, а если пилот хороший то и не заметишь.
То что они умеют обрабатывать датчики - таки да. Учится надо.
Цель же моего проекта - оценить влияние качества гироскопа на конечный результат. Учитывая, что я занимаюсь этим в свободное время, то заинтересован в привлечении единомышленников, что б проект двигался веселее.
А вот тут колега у нас в Киеве вчера полетал на Куке

www.youtube.com/watch?v=1dki1cSUmEI&feature=player…

И по видео не скажешь, что Кук хуже dji

Covax

Игорь, у нас на форуме до хрена мегапиратов (код ардукоптера портированный для датчиков itg3200, bma180, 5884L, bmp085) и ардукоптероводов (версии 1, и уже версии 2) 😃 Вот если бы ваш код бы совместим с нашим хозяйством, мы бы с удовольствием встали под ваши знамена.

igor_v_t

Исправил ошибки, поставил на коптер рядом с АРМ 1 и в коридоре поднялся. Летает лучше МультиВии и не хуже Arducopter. Далее нужно тестировать. Реализован Stable режим. Для Акро все есть и только проверять надо. Есть еще один свободный вывод, на который можно попробовать повесить переключатель или индикацию.
Не нравится мне как работает магнетометр, но с этим буду разбираться.

Covax:

Игорь, у нас на форуме до хрена мегапиратов (код ардукоптера портированный для датчиков itg3200, bma180, 5884L, bmp085) и ардукоптероводов (версии 1, и уже версии 2) 😃 Вот если бы ваш код бы совместим с нашим хозяйством, мы бы с удовольствием встали под ваши знамена.

Код написан под конкретное железо и прямо на другом работать не будет, но вполне можете использовать соответствующие куски для других проектах. Для примера линеаризация характеристики регулятора, повышение средней точности выдачи команд на моторы - это легко вставляется в проекты на Атмеге 328 и так далее. После этого и МультиВии и Кук летать лучше будут. Измеренное время цикла - 3,3 милисекунды - 300 герц, что тоже результат неплохой. Если выбросить телеметрию то половина памяти свободна . Можно подключить ЖПС, сонар, и барометр, если есть и валяются без дела. Соответствующие куски кода легко находятся и вставляются.
Меня же сейчас в этом проекте интересует работа магнетометра. Калибровка нуля пока выполнена в ручном режиме, но 5883L имеет встроенную функцию калибровки эффекта “жесткого и мягкого железа”-то есть смещение нуля и размаха, но я пока не понимаю алгоритм. Если кто то может объяснить буду благодарен. И соответствующий код дорисую
APM 1 с ArducopterNG с дописанным автопилотом летает с весны прошлого года и потихоньку правится. Собственно надо усовершенствовать автоматическую посадку-пока просто блокирую моторы на высоте 20 см. Но это нужно просто желание. С моим умением летать коптер сам садится лучше. И исправить ошибку в алгоритме возврата домой. При полете по точкам введена скорость горизонтального полета и изменения высоты, а в при переключении режимов и возврате домой не дописал из-за лени и поэтому зачастую дергается.
АРМ 2 и вторая версия прошивки пока никак. То есть программа грузится , железка работает, но доводить ее нужно. Мне не нравится в коде алгоритм посадки, алгоритм перехода с сонара на баро, куча режимов, которые мне вряд ли пригодятся. Поэтому сейчас допишу вывод на последовательный порт датчиков и буду потихоньку разбираться. В гироскоп и акселерометр может вписать температурную компенсацию. Посмотреть как работает новый баро выбрать алгоритм переключения на сонар, переписать алгоритм захвата точки старта-сейчас я использую горизонтальную скорость в качестве критерия качества сигнала и если нуль в течении 10 сек то очень хорошо, если меньше то тоже ничего, если нуля нет то запоминаем те координаты, что есть. Это влияет на точность возврата домой. Ввести режим сдвига координат-это когда стиками меняете параметры точки висения и т. д. Поэтому если интересы совпадают можно налаживать потихоньку сотрудничество. И будет Ardu летать лучше китайцев.

ArduIMU_V3_7.rar

igor_v_t
DVE:

Прикол в том, что у lite-версии Naza нет сонара 😃 Так что работа с датчиками у них-таки неплохо сделана.

Вот для сравнения стабильность “полноценного” dji, смотреть с середины ролика:

Есть там барометр и работает похоже очень хорошо, так что сонар им не нужен.

delfin000
igor_v_t:

Есть там барометр и работает похоже очень хорошо, так что сонар им не нужен.

Практически идеально работает

igor_v_t
delfin000:

Практически идеально работает

Как по мне NAZA и АРМ 2 с сонаром стоят одинаково. Все что показывают на NAZA не хуже работает и на Арду пока правда с сонаром (клип в 5 сообщении) и на клипе видно когда я подруливаю, а около NAZA пилота не видно и подруливает он мягко так что сразу не заметишь. А функциональность последнего существенно лучше. А с барометром разберемся. После прочтения PDF на компас оказалось, что 5883 сам калибруется и шаманить не надо, так что сижу правлю код, думаю что то подобное и с барометром.
А вообще нет пророка в своем отечестве. Когда полгода назад я писал на Моделке, что Арду летает не хуже немца во многих режимах, народ утверждал что это не так, поскольку у немца стоят быстрые регули и на стандартных так не получится. Теперь китайцы летают на стандартных и о преимуществах немца как то забыли.😦

Bluebird

Игорь, я понимаю вас как разработчика каких то новых мозгов для коптера - хочется продвинуться.
НО, не понимаю вас как человека = не этично говорить что другие проекты хуже и мол, бросайте все - идите под мои знамена.
Каждый человек находит в каком-то проекте то что ему нравится и занимается им. Вы похожи больше на коммивояжера.

igor_v_t
Bluebird:

Игорь, я понимаю вас как разработчика каких то новых мозгов для коптера - хочется продвинуться.
НО, не понимаю вас как человека = не этично говорить что другие проекты хуже и мол, бросайте все - идите под мои знамена.
Каждый человек находит в каком-то проекте то что ему нравится и занимается им. Вы похожи больше на коммивояжера.

Не хотел никого обидеть каким бы то ни было образом. Этот проект просто развлечение и выложен для того что может кому то подойдет. Хотя честно говоря в единомышленниках заинтересован.
Но в первую очередь хочу показать , что не обязательно тратить много денег для того, чтобы хорошо летало. Но , конечно для этого надо повозится. А дальше каждый выбирает то что ему больше подходит.
И я думаю, что тем у кого средства не позволяют или цели нет купить сразу готовое и летать и возятся, чтобы довести какой то оупен проект до уровня коммерческих по качеству, неприятно слушать, что это не получится и ерундой вы тут занимаетесь.
Поэтому прошу уважаемое сообщество извинить за может не слишком корректные высказывания. Все мы любим похвастаться и я не исключение.

mahowik

Здравствуйте Игорь!

Учитывая ваш опыт может поможете разобраться с сонаром для мультиви, т.к. уже месяц мучаюсь…
Возможно у вас есть наработки для “правильного” ПИД регулятора сонара. Пробовал уже много чего, полный классик ПИД регуль, PI регуль + D составляющая от оси Z акселерометра, также существующий мультивишный аль-холд ПИД регуль с переключателем баро-сонар… не летит короче и все тут, то перерегулирование то недорегулирование и т.д.

з.ы. кстать сегодня профайлил “сырые” данные с сонара и обнаружил что на высоте более метра при включенных двиках (на газе висения) сонар начинает врать… газ в ноль - все ок… сперва подумал что электромагнитные наводки, но потом удерживая на 50-70см на полном газу показания высоты были более чем стабильны… значит получается вибрации от моторов и акустический шум сбивают его с толку и амплитуда эхо-импульса достаточна лишь на малых высотах до метра… с сонаром все ок, т.к. есть два и пробовал на обоих…

С ПИД регулем вопрос все еще актуален т.к. на высотах менее метра высоту не держит все равно…

наработки по сонару тут rcopen.com/blogs/83206/13482

igor_v_t
mahowik:

Здравствуйте Игорь!

Учитывая ваш опыт может поможете разобраться с сонаром для мультиви, т.к. уже месяц мучаюсь…
Возможно у вас есть наработки для “правильного” ПИД регулятора сонара. Пробовал уже много чего, полный классик ПИД регуль, 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.

mahowik
igor_v_t:

Работе сонара по моему впечатлению может мешать писк моторов. Проблема у меня была с Турниги 2830. Заменил на новые, потом перешел на DT750 и на них проблемы не видел.

у меня как раз турниги 2209… вот жеж! а был полностью дволен их неубиваемостью… везде есть ложка дегтя ((