Создание собственной системы стабилизации
- Разработчики изначально позиционировали проект как коммерческий продукт (включая бета-версии) - проект просто не стартовал
- Разработчики прятали код - проект сдувался как только у разработчиков пропадал энтузиазм. Эта причина часто идет вместе с предыдущей
- Разработчики не слушали пользователей - по сути пользователи были толпой бесплатных бета-тестеров для хотелок разработчиков
- Переоценили свои силы / недооценили сложность и ресурсоемкость проекта / неправильно оценили рынок / не нашли денег на выход на рынок / вовремя поняли, что идея так себе / ушли пить пиво и т.д.
- Т.е. если бы никому не нужный проект по причине недоработанности / изначальных ошибок планирования / не отличающийся от конкурентов в лучшую сторону / не имеющий перспектив был бы выложен на гитхабе, то он лишился бы всех недостатков, из-за которых помер?
Энтузиазм не сдувается, когда идут продажи. Он называется работой. - Есть неплохая книга про стартапы. Rework называется. Там весьма хорошо сказано про то кого надо слушать и в каких ситуациях.
Слушать покупателей платы за 30баксов, напихивать ее функциями до посинения, чтобы проект со временем стал клоном какого-то другого успешного проекта, но только хуже. Терять время и ресурсы на копирование чужих функций, вместо разработки своих особенных - идея сомнительная. Это явно не имеет отношения ни к бизнесу, ни к успешным проектам.
. Переоценили свои силы / недооценили сложность и ресурсоемкость проекта / неправильно оценили рынок / не нашли денег на выход на рынок / вовремя поняли, что идея так себе / ушли пить пиво и т.д.
2. Т.е. если бы никому не нужный проект по причине недоработанности / изначальных ошибок планирования / не отличающийся от конкурентов в лучшую сторону / не имеющий перспектив был бы выложен на гитхабе, то он лишился бы всех недостатков, из-за которых помер?
Карим, я написал буквально следующее:
Я видел много хороших проектов с действительно хорошей идеей, которые не взлетели по одной из следующих причин:
А вы вдруг прочитали что мои три причины относятся к любым проектам, даже изначально провальных.
Энтузиазм не сдувается, когда идут продажи. Он называется работой.
Не согласен. Если бы все было так, не было бы анекдотов про “задолбала работа”. Когда идут продажи - это приятно, но когда проходит энтузиазм проект превращается в болото, и продажи в свою очередь сходят на нет.
Есть неплохая книга про стартапы. Rework называется. Там весьма хорошо сказано про то кого надо слушать и в каких ситуациях.
“Не слушать” пользователей - плохая идея, что бы там не писали умные книжки. Заметьте, я не написал “не делали что хотят пользователи”, я написал “не слушали пользователей”. Пользователи не чувствовали себя вовлеченными в процесс, не чувствовали что их мнение важно. Результат - пользователи ушли туда, где их слушают.
Слушать покупателей платы за 30баксов, напихивать ее функциями до посинения
В приложении к разработчикам оборудования - возможно. С софтом все не так просто - сделать продающийся софт сложнее, чем продающуюся железку. А что касается плат за $30 - их производители обычно софт не пишут и “фишками” свои железки не фаршируют.
99% того, что умеет железка - заслуга только софта и умные разработчики железа это понимают и слушают пользователей касательно багов железа, иначе, как вы верно заметили, появится клон, который предложит тот же функционал (софт-то тот же самый) но за меньшие деньги.
Терять время и ресурсы на копирование чужих функций, вместо разработки своих особенных - идея сомнительная.
Расскажите это Илону Маску с его Теслой, которая суть клон электрических гольф-каров 😁
Если бы все было так, не было бы анекдотов про “задолбала работа”.
…
Расскажите это Илону Маску с его Теслой, которая суть клон электрических гольф-каров 😁
Не думаю, что Джобс с Маском нашли бы эти эти анекдоты смешными.
Это к вопросу, а почему если такие умные, вы такие бедные?
Но это философия.
Книжку все равно рекомендую к прочтению.
Не думаю, что Джобс с Маском нашли бы эти эти анекдоты смешными.
Это к вопросу, а почему если такие умные, вы такие бедные?
Думаю что Маск, что Джобс работают(ли) по 48 часов в сутки не потому что это называется “работа”, а потому что у них есть энтузиазм делать то, что они делают. А вообще, русский термин “работа” принято понимать только в одном смысле - “деятельность, за которую платятся деньги”, хотя у “работы” на самом деле куда больше смыслов.
А насчет “а почему если такие умные, вы такие бедные” - во первых, чтобы разбираться в сортах сыра не обязательно быть сыроделом, а во вторых - с чего вы взяли что эта поговорка ко мне вообще применима? Но вы правы, это все философия. А книжку я читал, и даже применял кое что на практике, спасибо. Впрочем, не скажу, что я со всем в ней изложенным согласен.
Взять папарацци - среднестатистическому юзверю там нечего делать
Да перестаньте вы, единственное отличие папарации в том, что гуй у него только под убунту. Во всем остальном он ничем не сложнее, а если сравнить с ардой - намного проще, если где-то что-то нужно подправить под себя. Единственное что на папарацци мало портов на распространенные полетники. Да и то это дело желания сесть и сделать - портируется там все на раз.
PS. Не перестаю удивляться, как в этом мирке пяти-десяти пользователей народ без устали борется с мнимыми конкурентами 😃
Илья, в 405-м, 407-м проце есть проблемы с sdio
А ребята-то из STmicro и не знают…
Есть у меня одна идея, которая может избавить от внешнего гуя да и много от чего
Дык ведь это просто… вместо “штатной” аппаратуры RC поставить по радиомодулю с двух сторон с полноценным цифровым каналом. (я уж давно на такой вариант перешел, и ПИДы и прочее у меня в реалтайме на ЖК мониторчике прям в поле меняются, и вообще что хош).
Один недостаток (?) - на это ушло масса времени, денег, (весь софт и железо своё…)
Папарации кстати яркий тому пример, что без толкового мультиплатформенного гуя проект так и не стал оссобо популярным к сожалению…
Я бы скорее сказал, у основных разработчиков папарацци не было такой цели в принципе, стать мега популярными. Мультиплатформеный гуй конечно полезен, но нужен он средрестатистическому юзеру то в принципе весьма ограниченно, скорее для изначальной настройки аппарата, как на назе например. Другое дело, что чтобы стать популярным, проекту нужен не качественный полет, а качественное продвижение с жесткой работой на форумах (вроде того, как это DJI делает), плюс всякие громкие свистелки и перделки в названиях. А в этом далеко не каждый разработчик силен. Думаю ребята из папарацци это осознавали, плюс они все работают на весьма хороших местах и им просто не нужно рвать глотку на форумах, пытаясь заглушить “конкурентов”.
если ставить цель - всех порвать, то исход “надорвали пупок” неизбежен.
пытаться порвать или перплюнуть 3dr, DJI труд совершенно напрасный, эта дорога только вымотает.
как ни крути - деньги рулят.
но это не значит что для проектов собственной системы стабилизации нет места под небом.
есть еще место команд строящих свои отношения не на финансах а на общих интересах и энтузиазме
к примеру наш проект (f4by) это возможность для программистов и специалистам по железу реализовать свои идеи,
прокачать свои возможности, возможность делиться опытом и помогать друг другу.
для обычного пользователя, мало интересующегося программированием - это могла бы быть возможность использовать один контроллер с прошивками под разные программные решения. Русскоязычное общение и техподдержка, возможность ремонта в РФ
Для тех кто строит свои аппараты в рамках небольших коммерческих проектов - f4by это возможность использовать бюджетный контроллер отечественной разработки, возможность заказать доработку для поддержки нестандартного функционала.
Если говорить про “сверхуспешные истории” Била и Стива то там концепт - увидел - украл идею, реализовал напоказ. нашел финансирование и построил империю.
Безусловно за концептом следует и гений и знания и адов труд и хождение по трупам.
по сабжу темы сейчас проект ардупилот очень даже неплох с точки зрения математики, вполне возможно что немного переписав драйвера сенсоров на работу через EXTI, догнав количество параллельно работающих сенсоров до размеров небольшого кластера или используя другие, более точные датчики можно будет получить качественно новый продукт
На мой взгляд, люди бы просто не переходили на инав, если бы всем хватало арду. Как мне кажется, всетаки доступный арду-полетник уже в прямом смысле весьма устарел технически а актуальные не так уж и дешевы да и размеры с весом у современных альтернативных полетников уже явно выигрывают. Плюс простота назы в полетниках в том числе стала залогом ее упеха, а гора настроек явно не способствует широкой популярности. Да и время сейчас такое стало - для большинства новичков зачастую проще купить что-то летающее из коробки - выбор сейчас огромен на любой кошелек. А копаться в платах и прошивках для аппарата “полетать вокруг, поснимать”, исключительно на мой взгляд, как подход постепенно отмирает. Гоночные аппараты здесь не беру в расчет, но на них нужно уметь летать.
у основных разработчиков папарацци не было такой цели в принципе, стать мега популярными
ну не надо лукавить! 😃 Хотим мы этого осознанно или нет, человеческая сущность такова, что признания хотят все…
но нужен он средрестатистическому юзеру то в принципе весьма ограниченно, скорее для изначальной настройки аппарата
до тех пор, пока в проекте пару пид настроек и пины переферии захардкожены
Думаю ребята из папарацци это осознавали, плюс они все работают на весьма хороших местах и им просто не нужно рвать глотку на форумах, пытаясь заглушить “конкурентов”.
Признвайтесь, вы один из них? 😃
Кстати, если не трудно, раскажите тут больше про папарации. Про его фишки, модульность, связывание модулей (xml files?), комуникация между модулями, конфигурирование параметров которых нет в ГУИ (cli, hardcode, conf files). Т.е. про архитектуру проекта, фичи, плюсы и минусы. Думаю многие тут (и я) не сильно в курсе про папарации. Будет интересно! Спасибо зарание!
Хотим мы этого осознанно или нет, человеческая сущность такова, что признания хотят все…
Хотеть одно, а достичь - другое. Не всем хватает времени и сил на разработку и продвижение одновременно. Все-таки речь об достаточно малоизвестном для широкого круга пользователей проекте безо всяких свистелок и перделок 😃 Хотя в университетских кругах проект достаточно известен, но круги эти весьма узкие.
Признвайтесь, вы один из них? 😃
Нет, я просто более менее продвинутый пользователь проекта.
А в самом проекте прошивка собирается из одного основного и четырех вспомогательных xml файлов. В основном файле по определенному синтаксису указывается под какую плату собирать, какая прошивка (коптер или самолет) и практически все дефолтные полетные настройки. Во вспомогательных описываются полетные задания, какие парамеры полета появятся для конфигурации в гуи, настройки радио и что будет передаваться по телеметрии. Эти файлы выбираются в гуи для компиляции конкретной прошивки, наборы этих файлов также сохраняются под определенными именами, между этими наборами ними можно быстро переключаться в выпадающем меню для компиляции разных прошивок. На мой взгляд со стороны более менее продвинутого пользователя все мега удобно.
А в самом проекте прошивка собирается из одного основного и четырех вспомогательных xml файлов. В основном файле по определенному синтаксису указывается под какую плату собирать, какая прошивка (коптер или самолет) и практически все дефолтные полетные настройки. Во вспомогательных описываются полетные задания, какие парамеры полета появятся для конфигурации в гуи, настройки радио и что будет передаваться по телеметрии. Эти файлы выбираются в гуи для компиляции конкретной прошивки, наборы этих файлов также сохраняются под определенными именами, между этими наборами ними можно быстро переключаться в выпадающем меню для компиляции разных прошивок.
Мне как разработчику, описанный подход вполне симпотичен. Можно сконфигурить нужные тебе фичи и ничего лишнего не будет перед глазами в ГУИ. Однако описание полетного задания (имелось ввиду задание нвигационных полетных точек?) в xml это уже хардкор! 😃 Но да, все зависит от задачи и если это университетский иследовательский проект, то наверняка удобно иметь все исходные данные в файлах, а не заморачиваться их экспортом из ГУИ тула и последующей конвертацией в какой нибудь матлаб формат…
На мой взгляд со стороны более менее продвинутого пользователя все мега удобно.
Если пользователь ИТ-ник или хотя бы самоучка хоббист имеющий понятие компилляции, то да, а иначе жжопа… Ж)
Хотя в университетских кругах проект достаточно известен, но круги эти весьма узкие.
Вот еще одно подверждение, что проект для ИТ-в гиков…
Кстати, какого типа ИНС в папарации? EKF, UKF, комплиментарники или другое что?
Плюс простота назы в полетниках в том числе стала залогом ее упеха, а гора настроек явно не способствует широкой популярности. Да и время сейчас такое стало - для большинства новичков зачастую проще купить что-то летающее из коробки - выбор сейчас огромен на любой кошелек.
Вот, нужно сделать функционал назы за малые деньги, + управление подвесом. Чтоб исчерпывающая инструкция для выполнения первого полета с базовым функционалом (удержание, возврат домой) занимала менее половины листа А4.
На мой взгляд со стороны более менее продвинутого пользователя все мега удобно.
Для любителя рукоделия ))) Для пользователя нужно просто выбрать тип носителя и 3-4 цифири настроек, не более!
Папарации кстати яркий тому пример, что без толкового мультиплатформенного гуя проект так и не стал оссобо популярным к сожалению…
У опенпилотов гуй прекрасен, у арду весьма гемороен. кого из них больше? 😉
Для чего реально нужен ГУЙ, так это для полета по точкам, и/или настройки автопосадки для самоля.
Кстати, какого типа ИНС в папарации? EKF, UKF, комплиментарники или другое что?
Есть там и калмановкие решения, но я летаю на комплиментарниках. Руки пока не дошли потестировать другие алгоритмы.
Вот, нужно сделать функционал назы за малые деньги, + управление подвесом. Чтоб исчерпывающая инструкция для выполнения первого полета с базовым функционалом (удержание, возврат домой) занимала менее половины листа А4.
Так это уже целый комплекс - полетник+прошивка. Но именно это был путь назы, и она весьма преуспела. Но в принципе я здесь абсолютно согласен, собственно к чему то похожему я пришел и сам:
Так я себе представляю удобный полетник - все в одном, микроконтроллер, сенсоры, осд на верхней плате; регули, импульсные беки на 5В и 10В, лц-фильтр - на нижней. С одной стороны входы/выходы осд с переключателем на 2 канала, шим на подвес; с другой входы для приемника и телеметрии РУ. Плюс естественно вход GPS и компаса, дополнительный уарт и набортный стандартный ардушный модуль телеметрии для настройки с гуи. Сейчас облетываю на своем новом кваде, минимум проводов, очень удобно. Под это толковую прошивку аля наза с джентльменским набором настроек - так я вижу себе оптимальный полетник для “собери сам” на сегодня.
Так это уже целый комплекс - полетник+прошивка.
дык я именно об этом, все готовое, чтоб моделист без опыта мог прикрутить и не изучая ТАУ полететь используя весь базовый функционал. И еще минимум предполетной подготовки, автодиагностика и автокалибровка. Если по каким то причинам не готов - просигналил лампочками и в лог на флешку
Под это толковую прошивку аля наза с джентльменским набором настроек - так я вижу себе оптимальный полетник для “собери сам” на сегодня.
А для совсем “конченных” пользователей за их деньги джедаи уже всё изобрели.
Так я себе представляю удобный полетник - все в одном,
Это самоделка на фото ?
Это самоделка на фото ?
Нет, распаяны платы не в китае, если вы об этом 😃
Нет, распаяны платы не в китае, если вы об этом
Я имел ввиду - это Ваша собственная разработка ?
Так я себе представляю удобный полетник
Просто, в процессе длительных проб и ошибок, я тоже пришел приблизительно к такому же функционалу и компоновке )))
Да и то это дело желания сесть и сделать - портируется там все на раз.
я сделал, но так и не попробовал…
Я имел ввиду - это Ваша собственная разработка ?
Понял. Разработка моя.
я сделал, но так и не попробовал…
А чего не хватило?
ума - шучу, новый год наступил, а сейчас другие задачи…
оставалось 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;
}
Кто может просветить по поводу ПИДов.
Не совсем понял, у тебя на схемах где вход от ДУС?