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

rual
SergDoc:

с движками включеными крутил (пропы естественно сняты)

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

SergDoc

Блин вот я сейчас думаю, может я тупо дал мало времени мозгам остыть - минут 5 как из дома, надо было крышку открыть и минут 15 мосх поморозить, спешил ибо темнело :(вот аксель с ума и сходил…

Razek
SergDoc:

P.S.P.S. как ни странно не один проп не пострадал…

serj:

Тезка, не берите эти пропы!

Для девелопмента самое то, ему же не рекорды ставить, я 12 не юзал, юзал 11 очень хороший вариант тем что крепче АПС, а когда прошивка не облетана перед полетом ставлю гемфаны нелон карбон.

SergDoc:

мосх поморозить, спешил ибо темнело вот аксель с ума и сходил…

А телеметрию не подрубал во время полета не смотрел что там за показания?

SergDoc
Razek:

А телеметрию не подрубал во время полета не смотрел что там за показания?

Я только собираюсь что либо купить для передачи, к сожалению, дабы купить что-нибудь ненужное мне надо месяца полтора два 😦

rual
oleg70:

Ребята, поделитесь мнением: стоит ли связываться с RTOS для данной задачи? У меня есть свои соображения конечно, но хочется услышать более опытных людей…

Если есть желание сделать масштабируемую и усложняемую систему то РТОС однозначно, но для начала придется с ней поразбираться плотно…

Пробовал вчера прикрутить к Ф3 екф от стшного инемо www.st.com/internet/evalboard/product/252510.jsp , библиотека собаралась нормально, но блин при запуске вываливается при попытке взять себе памяти из кучи… Пока не понятно в чём проблема, то ли в том что на Ф3 она не идёт, то ли что то в проекте не так. Хотя вроде ядро у Ф1 и Ф3 одинаковое, все вызовы библиотеки перефириии не касаются. Буду пробовать прикрутить на 103й, т.к. она вроде под него сделана…

SergDoc

посмотри разницу, где начинается EEPROM у F1 и F3 (имею в виду адресацию) может не к тем адресам обращается? а то может пытаешься во флеш записать то что нужно в еепромку?

rual
SergDoc:

посмотри разницу, где начинается EEPROM у F1 и F3 (имею в виду адресацию) может не к тем адресам обращается? а то может пытаешься во флеш записать то что нужно в еепромку?

нее, там в прикомпиленой библиотеке только объектные файлы, линкер их привязывает в проект по месту. Возможно какие то проблемы с ФПУ или ещё какой внутренней математикой, возможно модуль проверяет тип проца… ОЗУ под себя модуль запрошивает через malloc()
вот точная ссылка на СДК www.st.com/internet/evalboard/product/250367.jsp

SergDoc

интересно в V2 аналоговые гиры, о чём так мечтал (не знаю но нравятся они мне, правда АЦП лучше 24бит а не 10) и барометр на борту 😃

rual:

Возможно какие то проблемы с ФПУ

попробуй отключить?

rual
SergDoc:

интересно в V2 аналоговые гиры, о чём так мечтал (не знаю но нравятся они мне, правда АЦП лучше 24бит а не 10) и барометр на борту

СТ снимает его с производства, возможно будут дешёвые неликвиды)))

SergDoc:

попробуй отключить?

не помогает.

зато отладка проскочила на 103мB-), попробую допилить под старый проект:)

SergDoc
rual:

возможно будут дешёвые неликвиды)))

я бы с удовольствием хапнул, но к сожалению не в моей стране 😦

rual:

не помогает.

зато отладка проскочила на 103м, попробую допилить под старый проект

интересно даже там жеш вроде RE проц тоесть флеш и еепромка одинаковые с Ф3 в чём прикол?

ОФФ ТОП: А можно с тобой договорится, чтоб ты следущей осенью прислал пару кедровых шышек, жена, и дети естественно, никогда такого чуда не видели 😃

А да, я сегодня к пепелацу своему не подходил, у боса день рождения отмечали, так что не рискнул…

rual
SergDoc:

интересно даже там жеш вроде RE проц тоесть флеш и еепромка одинаковые с Ф3 в чём прикол?

видимо что то в тумбе (машкоде) не то, будет время покапаю…

SergDoc:

ОФФ ТОП: А можно с тобой договорится, чтоб ты следущей осенью прислал пару кедровых шышек, жена, и дети естественно, никогда такого чуда не видели

можно:) , в личке спишемся

rual

На 103м пошло!!! Качество пока не проверял, надо на леталку прикрутить.

SergDoc

Дмитрий, а томатом не кинуть? читателей то хватает… могут тоже неверно растолковать. И вообще - шишки кедровые, а кедры как известно не растут в Беларуси 😦

rual
rual:

На 103м пошло!!! Качество пока не проверял, надо на леталку прикрутить.

отлетал сегодня стшный калман, сделал два “подъёма с переворотом” запутался в проводох на старой плате, перепутал регули лево-прав вперёд назад. Погнул гефмановские винты, но леталка выжила )
Теперь о калмане: в руках ведёт себя очень прилично, нет реакции ни на какие встряски и перекрутки, но на коптере ведёт себя точно так же как и мой фильтр (((( Даже хуже, увод горизонта вправо в течении 12-15 сек… Правда есть и хорошие качества, практически нет расколбаса по крену и тангажу.
В общем для чего я всё это делал, сделал выводы:
1.Надо убирать вибрации.
2.Нужен хороший аксель.

Razek
rual:

1.Надо убирать вибрации. 2.Нужен хороший аксель.

Если соблюдать эти условия то и калман не нужен =))))))

SergDoc

Интересно, на чистом wii летал нормально, с Кальманом та-же беда, сейчас пытаюсь собрать CC3D совместимую платку - хочу посмотреть как MPU6000 работает…

rual
Razek:

Если соблюдать эти условия то и калман не нужен =))))))

Пока не проверил, верил в сказку )) Конечно ради справедливости надо сказать что екф очень стабилен и нет выбросов, но увод всё таки присутствует, см. после 2 мин на синий самолёт в ровном полёте ( красный самолетик задающий, управляется жостиком), и после посадки быстро восстанавливает горизонт.

Кстати, пробовал ещё МАРГ от господина Магвика, горизонт сильно водит из стороны в сторону примерно на 1 -1.5 градуса в покое с частотой около 1 Гц. На индикаторе не очень заметно, но в полёте нужно всё время это компенсировать, от вибрации его заклинивает и горизонт заваливает так что обратно леталку уже не вернуть.

Razek
rual:

Конечно ради справедливости надо сказать что екф очень стабилен

Может еще с калманом поколдовать? Не бывает же что так сразу и все работет =)))

А до МАРГА что было ДСМ?

SergDoc

Мне тут подумалось, а триммирование акселя не делал, у меня LSM по акселю тянет вперёд и вправо, в Акро - тоесть на ДУСах одних ни куда не ведёт, что означает что и аппарат не кривой и ц.т. правильный (можно почесаться если ветра особого нет), а вот при задействовании акселя после калибровки надо ещё триммировать - есть такая полезная штука в Вие, иначе полетит сам…

        // **** PITCH & ROLL & YAW PID ****
        dT = cycleTime * 1e-6;
        prop = max(abs(rcCommand[PITCH]), abs(rcCommand[ROLL])); // range [0;500]
        for (axis = 0; axis < 3; axis++) {
            if ((f.ANGLE_MODE || f.HORIZON_MODE) && axis < 2) { // MODE relying on ACC
                // 50 degrees max inclination
                errorAngle = constrain(2 * rcCommand[axis] + GPS_angle[axis], -500, +500) - angle[axis] + cfg.angleTrim[axis]; 
rual
Razek:

Может еще с калманом поколдовать? Не бывает же что так сразу и все работет =)))

Там колдовать особо не с чем, весь АПИ

void iNEMO_AHRS_Init(iNEMO_SENSORDATA*    pExtSensorData,
                    iNEMO_EULER_ANGLES*  pExtAngle,
                    iNEMO_QUAT*          pExtQuat);

/**
********************************************************************************
* @brief Update AHRS variables
 @param pSensorData  : Sensor Data
* @param pAngle      : Roll, Pitch and Yaw Angles
* @param pQuat       : Quaternion
* @retval None
* @par Functions called:
* @ref iNEMO_PropagateP
* @ref iNEMO_CalculateK
* @ref iNEMO_UpdateP
* @ref iNEMO_fMatCopy
********************************************************************************
*/

void iNEMO_AHRS_Update(iNEMO_SENSORDATA*    pExtSensorData,
                      iNEMO_EULER_ANGLES*  pExtAngle,
                      iNEMO_QUAT*          pExtQuat);

void iNEMO_AHRS_DeInit(iNEMO_SENSORDATA*    pSensorData,
                      iNEMO_EULER_ANGLES*  pAngle,
                      iNEMO_QUAT*          pQuat);
Razek:

А до МАРГА что было ДСМ?

Нее 😃, с ДЦМ не разбирался и не жалею. Было собственное rcopen.com/forum/f134/topic224458/1048(более близкое к МАРГу как оказалось), но с принципиальными отличиями: марг в каждой итерации корректирует градиент по ДУСу, после чего добавляет его в кватернион бортовой СК, у меня же бортовая СК корретируется акселем и компасом, и тот МАРГ который на оф.сайте не корректируется по компасу в перевернутом состоянии ( это я опытным путем вычислил, т.к. в коде не совсем понятна математика коррекции, лишние члены алгебраически сокращенны для оптимизации).

SergDoc:

Мне тут подумалось, а триммирование акселя не делал, у меня LSM по акселю тянет вперёд и вправо, в Акро - тоесть на ДУСах одних ни куда не ведёт, что означает что и аппарат не кривой и ц.т. правильный (можно почесаться если ветра особого нет), а вот при задействовании акселя после калибровки надо ещё триммировать - есть такая полезная штука в Вие, иначе полетит сам…

Сергей, имхо, тримирование это мертвому припарка, если усреднённый аксель при эволюциях (если исключить влияние центростремительного ускор) не даёт четкий вектор G, значит не какой фильтр уже не поможет. Значит что шум акселя не белый, и фильтр уведёт горизонт за неправильным средним, а положениее среднего будет зависить от многих факторов: оборотов движков, текущего положения Ск и т.п. Т.е. оттримируешь ты аксель только под определённые условия, и если они изменятся это смещение может сделать ещё хуже.