Создание собственной системы стабилизации

jShadow
SergDoc:

Илья, в 405-м, 407-м проце есть проблемы с sdio

А ребята-то из STmicro и не знают…

oleg70
SergDoc:

Есть у меня одна идея, которая может избавить от внешнего гуя да и много от чего

Дык ведь это просто… вместо “штатной” аппаратуры RC поставить по радиомодулю с двух сторон с полноценным цифровым каналом. (я уж давно на такой вариант перешел, и ПИДы и прочее у меня в реалтайме на ЖК мониторчике прям в поле меняются, и вообще что хош).
Один недостаток (?) - на это ушло масса времени, денег, (весь софт и железо своё…)

mahowik

Папарации кстати яркий тому пример, что без толкового мультиплатформенного гуя проект так и не стал оссобо популярным к сожалению…

SergejK

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

alexeykozin

если ставить цель - всех порвать, то исход “надорвали пупок” неизбежен.
пытаться порвать или перплюнуть 3dr, DJI труд совершенно напрасный, эта дорога только вымотает.
как ни крути - деньги рулят.
но это не значит что для проектов собственной системы стабилизации нет места под небом.
есть еще место команд строящих свои отношения не на финансах а на общих интересах и энтузиазме

к примеру наш проект (f4by) это возможность для программистов и специалистам по железу реализовать свои идеи,
прокачать свои возможности, возможность делиться опытом и помогать друг другу.

для обычного пользователя, мало интересующегося программированием - это могла бы быть возможность использовать один контроллер с прошивками под разные программные решения. Русскоязычное общение и техподдержка, возможность ремонта в РФ

Для тех кто строит свои аппараты в рамках небольших коммерческих проектов - f4by это возможность использовать бюджетный контроллер отечественной разработки, возможность заказать доработку для поддержки нестандартного функционала.

Если говорить про “сверхуспешные истории” Била и Стива то там концепт - увидел - украл идею, реализовал напоказ. нашел финансирование и построил империю.
Безусловно за концептом следует и гений и знания и адов труд и хождение по трупам.

по сабжу темы сейчас проект ардупилот очень даже неплох с точки зрения математики, вполне возможно что немного переписав драйвера сенсоров на работу через EXTI, догнав количество параллельно работающих сенсоров до размеров небольшого кластера или используя другие, более точные датчики можно будет получить качественно новый продукт

SergejK

На мой взгляд, люди бы просто не переходили на инав, если бы всем хватало арду. Как мне кажется, всетаки доступный арду-полетник уже в прямом смысле весьма устарел технически а актуальные не так уж и дешевы да и размеры с весом у современных альтернативных полетников уже явно выигрывают. Плюс простота назы в полетниках в том числе стала залогом ее упеха, а гора настроек явно не способствует широкой популярности. Да и время сейчас такое стало - для большинства новичков зачастую проще купить что-то летающее из коробки - выбор сейчас огромен на любой кошелек. А копаться в платах и прошивках для аппарата “полетать вокруг, поснимать”, исключительно на мой взгляд, как подход постепенно отмирает. Гоночные аппараты здесь не беру в расчет, но на них нужно уметь летать.

mahowik
SergejK:

у основных разработчиков папарацци не было такой цели в принципе, стать мега популярными

ну не надо лукавить! 😃 Хотим мы этого осознанно или нет, человеческая сущность такова, что признания хотят все…

SergejK:

но нужен он средрестатистическому юзеру то в принципе весьма ограниченно, скорее для изначальной настройки аппарата

до тех пор, пока в проекте пару пид настроек и пины переферии захардкожены

SergejK:

Думаю ребята из папарацци это осознавали, плюс они все работают на весьма хороших местах и им просто не нужно рвать глотку на форумах, пытаясь заглушить “конкурентов”.

Признвайтесь, вы один из них? 😃

Кстати, если не трудно, раскажите тут больше про папарации. Про его фишки, модульность, связывание модулей (xml files?), комуникация между модулями, конфигурирование параметров которых нет в ГУИ (cli, hardcode, conf files). Т.е. про архитектуру проекта, фичи, плюсы и минусы. Думаю многие тут (и я) не сильно в курсе про папарации. Будет интересно! Спасибо зарание!

SergejK
mahowik:

Хотим мы этого осознанно или нет, человеческая сущность такова, что признания хотят все…

Хотеть одно, а достичь - другое. Не всем хватает времени и сил на разработку и продвижение одновременно. Все-таки речь об достаточно малоизвестном для широкого круга пользователей проекте безо всяких свистелок и перделок 😃 Хотя в университетских кругах проект достаточно известен, но круги эти весьма узкие.

mahowik:

Признвайтесь, вы один из них? 😃

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

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

mahowik
SergejK:

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

Мне как разработчику, описанный подход вполне симпотичен. Можно сконфигурить нужные тебе фичи и ничего лишнего не будет перед глазами в ГУИ. Однако описание полетного задания (имелось ввиду задание нвигационных полетных точек?) в xml это уже хардкор! 😃 Но да, все зависит от задачи и если это университетский иследовательский проект, то наверняка удобно иметь все исходные данные в файлах, а не заморачиваться их экспортом из ГУИ тула и последующей конвертацией в какой нибудь матлаб формат…

SergejK:

На мой взгляд со стороны более менее продвинутого пользователя все мега удобно.

Если пользователь ИТ-ник или хотя бы самоучка хоббист имеющий понятие компилляции, то да, а иначе жжопа… Ж)

SergejK:

Хотя в университетских кругах проект достаточно известен, но круги эти весьма узкие.

Вот еще одно подверждение, что проект для ИТ-в гиков…

Кстати, какого типа ИНС в папарации? EKF, UKF, комплиментарники или другое что?

rual
SergejK:

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

Вот, нужно сделать функционал назы за малые деньги, + управление подвесом. Чтоб исчерпывающая инструкция для выполнения первого полета с базовым функционалом (удержание, возврат домой) занимала менее половины листа А4.

SergejK:

На мой взгляд со стороны более менее продвинутого пользователя все мега удобно.

Для любителя рукоделия ))) Для пользователя нужно просто выбрать тип носителя и 3-4 цифири настроек, не более!

mahowik:

Папарации кстати яркий тому пример, что без толкового мультиплатформенного гуя проект так и не стал оссобо популярным к сожалению…

У опенпилотов гуй прекрасен, у арду весьма гемороен. кого из них больше? 😉
Для чего реально нужен ГУЙ, так это для полета по точкам, и/или настройки автопосадки для самоля.

SergejK
mahowik:

Кстати, какого типа ИНС в папарации? EKF, UKF, комплиментарники или другое что?

Есть там и калмановкие решения, но я летаю на комплиментарниках. Руки пока не дошли потестировать другие алгоритмы.

rual:

Вот, нужно сделать функционал назы за малые деньги, + управление подвесом. Чтоб исчерпывающая инструкция для выполнения первого полета с базовым функционалом (удержание, возврат домой) занимала менее половины листа А4.

Так это уже целый комплекс - полетник+прошивка. Но именно это был путь назы, и она весьма преуспела. Но в принципе я здесь абсолютно согласен, собственно к чему то похожему я пришел и сам:

Так я себе представляю удобный полетник - все в одном, микроконтроллер, сенсоры, осд на верхней плате; регули, импульсные беки на 5В и 10В, лц-фильтр - на нижней. С одной стороны входы/выходы осд с переключателем на 2 канала, шим на подвес; с другой входы для приемника и телеметрии РУ. Плюс естественно вход GPS и компаса, дополнительный уарт и набортный стандартный ардушный модуль телеметрии для настройки с гуи. Сейчас облетываю на своем новом кваде, минимум проводов, очень удобно. Под это толковую прошивку аля наза с джентльменским набором настроек - так я вижу себе оптимальный полетник для “собери сам” на сегодня.

rual
SergejK:

Так это уже целый комплекс - полетник+прошивка.

дык я именно об этом, все готовое, чтоб моделист без опыта мог прикрутить и не изучая ТАУ полететь используя весь базовый функционал. И еще минимум предполетной подготовки, автодиагностика и автокалибровка. Если по каким то причинам не готов - просигналил лампочками и в лог на флешку

SergejK:

Под это толковую прошивку аля наза с джентльменским набором настроек - так я вижу себе оптимальный полетник для “собери сам” на сегодня.

А для совсем “конченных” пользователей за их деньги джедаи уже всё изобрели.

oleg70
SergejK:

Так я себе представляю удобный полетник - все в одном,

Это самоделка на фото ?

SergejK
oleg70:

Это самоделка на фото ?

Нет, распаяны платы не в китае, если вы об этом 😃

oleg70
SergejK:

Нет, распаяны платы не в китае, если вы об этом

Я имел ввиду - это Ваша собственная разработка ?

SergejK:

Так я себе представляю удобный полетник

Просто, в процессе длительных проб и ошибок, я тоже пришел приблизительно к такому же функционалу и компоновке )))

SergDoc
SergejK:

Да и то это дело желания сесть и сделать - портируется там все на раз.

я сделал, но так и не попробовал…

SergejK
oleg70:

Я имел ввиду - это Ваша собственная разработка ?

Понял. Разработка моя.

SergDoc:

я сделал, но так и не попробовал…

А чего не хватило?

SergDoc

ума - шучу, новый год наступил, а сейчас другие задачи…
оставалось xml микшер под трёху написать или это уже из гуя можно?
а ещё ld сделать свой - точно…
под ф4бы - там, да, с пол пинка можно, но я не искал лёгких путей)))

ИльяПРо

всем привет. Кто может просветить по поводу ПИДов. Вот две схемы ПИДов танагажа и крена.
Первая - паралелльная, довольно странная, это схема автоквада. Причем автор хотел сделать, не то, что получилось? Ошибка? Обратите на то, что из сигнала задания в звене дифференциальной состяавляющей вычитается СНОВА показание сенсора. Наверное надо вычитать ЗАДАНИЕ? Так как коментарий противоположен, выделил жирным.
Вторая - моя текущая. Она последовательная. Я вычитаю 80 процентов задания, по-моему так правильнее.
В схемах намеренно не показывал лимиты, чтобы не загромождать.
Но к чему это я все. На форуме автоквада написано, что на заре проекта, было несколько схем (последовательная и паралелльная), в итоге Билл выбрал паралелльную, так как она оказалось лучше. forum.autoquad.org/viewtopic.php?f=31&t=4792&p=363…
Но вот смотрю я на нее и с первого взгляда, что-то нифига не лучше, вместо того, чтобы использовать напрямую угловую скорость с гиры в ПИД идет дифференциал угла. У кого какие мысли?
Код:

float pidUpdate(pidStruct_t *pid, float setpoint, float position) {
    float error;
    float p = *pid->pGain;
    float i = *pid->iGain;
    float d = (pid->dGain) ? *pid->dGain : 0.0f;
    float f = (pid->fGain) ? *pid->fGain : 1.0f;

    if (pid->pTrim)
	p += (*pid->pTrim * p * 0.002f);
    if (pid->iTrim)
	i += (*pid->iTrim * i * 0.002f);
    if (pid->dTrim)
	d += (*pid->dTrim * d * 0.002f);
    if (pid->fTrim)
	f += (*pid->fTrim * f * 0.002f);

    error = setpoint - position;

    // calculate the proportional term
    pid->pTerm_1 = p * error;
    if (pid->pTerm_1 > *pid->pMax) {
	pid->pTerm_1 = *pid->pMax;
    }
    else if (pid->pTerm_1 < -*pid->pMax) {
	pid->pTerm_1 = -*pid->pMax;
    }

    // calculate the integral state with appropriate limiting
    pid->iState += error;
    pid->iTerm_1 = i * pid->iState;
    if (pid->iTerm_1 > *pid->iMax) {
	pid->iTerm_1 = *pid->iMax;
	pid->iState = pid->iTerm_1 / i;
    }
    else if (pid->iTerm_1 < -*pid->iMax) {
	pid->iTerm_1 = -*pid->iMax;
	pid->iState = pid->iTerm_1 / i;
    }

    // derivative
    if (pid->dGain) {
	// uncomment this line if you want the D term to ignore set point changes
	error = -position;

	pid->dTerm_1 = (d * f) * (error - pid->dState);
	pid->dState += f * (error - pid->dState);
	if (pid->dTerm_1 > *pid->dMax) {
	    pid->dTerm_1 = *pid->dMax;
	}
	else if (pid->dTerm_1 < -*pid->dMax) {
	    pid->dTerm_1 = -*pid->dMax;
	}
    }
    else {
	pid->dTerm_1 = 0.0f;
    }

    pid->pv_1 = position;
    pid->sp_1 = setpoint;
    pid->co_1 = pid->pTerm_1 + pid->iTerm_1 + pid->dTerm_1;

    if (pid->co_1 > *pid->oMax) {
	pid->co_1 = *pid->oMax;
    }
    else if (pid->co_1 < -*pid->oMax) {
	pid->co_1 = -*pid->oMax;
    }

    return pid->co_1;
}

rual
ИльяПРо:

Кто может просветить по поводу ПИДов.

Не совсем понял, у тебя на схемах где вход от ДУС?