Специальные цены   новые товары
+ Ответить в теме
Страница 41 из 165 ПерваяПервая ... 31 39 40 41 42 43 51 ... ПоследняяПоследняя
Показано с 1,601 по 1,640 из 6569

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

Тема раздела Квадрокоптеры. Общие вопросы в категории Квадрокоптеры и мультироторы; Сообщение от SergDoc у меня только wirish_math из maple выдрано.... в библиотеках CMSIS точно есть arm_math.h если что тоже есть... ...

  1. #1601

    Регистрация
    26.12.2011
    Адрес
    Киров
    Возраст
    32
    Сообщений
    156
    Цитата Сообщение от SergDoc Посмотреть сообщение
    у меня только wirish_math из maple выдрано....
    в библиотеках CMSIS точно есть arm_math.h если что тоже есть...

    Народ мне тут на ухо нашептали, грамотные программеры меня поправя если что не так, по прерываниям, первое что надо сделать в прерывании - это запретить все прерывания, какие бы там они не были по иерархии - пускай ждут, второе прерывания должны быть только на те действия, которые не требуют отлагательств, ну типа мы падаем- пошли все нафиг со своими командами с радио, а прерывания типа пришли данные с акселя и срочно выполнять - то думаю ненадо - это и в "глобальном" модуле отследить один бит можно, чем тратить кучу тактов на выполнение прерывания, а потом ещё кучу тактов на возвращение?
    ну так по идее для того существует приоритет прерываний, чтобы их разделить на более важные менее.
    Если я падаю, то не хотел бы терять управление стиками.
    А опрос и обработка датчиков все равно идет не в прерываниях, а основном рабочем цикле. в прерывании просто ставим флаг, что новые данные пришли.

  2.  
  3. #1602

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Цитата Сообщение от Geniok Посмотреть сообщение
    в прерывании просто ставим флаг, что новые данные пришли.
    войти в прерывание (потратить такты) изменить бит, выйти из прерывания (потратить такты)?

    Цитата Сообщение от Geniok Посмотреть сообщение
    Если я падаю, то не хотел бы терять управление стиками.
    это я утрировано сказал....

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

  4. #1603

    Регистрация
    26.12.2011
    Адрес
    Киров
    Возраст
    32
    Сообщений
    156
    Цитата Сообщение от SergDoc Посмотреть сообщение
    войти в прерывание (потратить такты) изменить бит, выйти из прерывания (потратить такты)?



    это я утрировано сказал....

    Мне китайцы, что-то выслали на замену утеряных ИК датчиков, сегодня пойду забирать - посмотрю что...
    а по другому как? постоянно проверять, пришли данные или нет? весеть в цикле ожидания, показанные не придут? тогда на весь цикл будет куча проверок.
    что утрированно, я понял, просто пока сложно представить себе такую ситуацию, в которой мне надо было бы от чего-то отказываться.
    Последний раз редактировалось Geniok; 21.03.2013 в 11:11.

  5. #1604

    Регистрация
    22.08.2011
    Адрес
    Калининград
    Возраст
    35
    Сообщений
    947
    Записей в дневнике
    2
    Цитата Сообщение от rual Посмотреть сообщение
    нашел математику нужно проверять.
    А поделитесь ссылкой на математику?

  6.  
  7. #1605

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    вот возмём простейший - ну да КУК - сидим курим в нопах, пока прерывания с радио не пришло, пришло - запустили основной цикл, а там и чтение гир и перерасчёт выходных шимов, вот чем нравятся аналоговые датчики - они всегда готовы....

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

  8. #1606

    Регистрация
    26.12.2011
    Адрес
    Киров
    Возраст
    32
    Сообщений
    156
    Цитата Сообщение от SergDoc Посмотреть сообщение
    вот возмём простейший - ну да КУК - сидим курим в нопах, пока прерывания с радио не пришло, пришло - запустили основной цикл, а там и чтение гир и перерасчёт выходных шимов, вот чем нравятся аналоговые датчики - они всегда готовы....

    если какое-либо прерывание выполняется, то надо обязательно запрещать остальные, придёт прерывание в прерывании, куда вернётся программа после? ей бабушка нашепчет? да билеберда получится, хорошо если в основной цикл, а скорей в прерывании и зациклится - шахид-коптер получится, камикадзе многороторный - только банзай кричать научить надо
    пока видишь в нопах, твой проц никакой полезной работы не делает. это не есть хорошо.
    сидишь в прерывании, пришло другое?! если у пришедшего больший приоритет, ушел в него, вернулся после в старое. если меньший, будет стоять очереди, пока не закончится текущее.

  9. #1607

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Цитата Сообщение от Geniok Посмотреть сообщение
    вернулся после в старое
    а там каша (как это? - срыв стека) и по кругу из прерывания в прерывание, неважно какой приоритет, если мы сидим в прерывании - никаких прерываний - пускай ждут, а вот ежели пришли два одновременно тогда да - пропускаем старшее - младшее подождёт!
    на вас никогда аппарат не бросался? на меня несколько раз уже покушался
    Последний раз редактировалось SergDoc; 21.03.2013 в 12:11.

  10.  
  11. #1608

    Регистрация
    26.12.2011
    Адрес
    Киров
    Возраст
    32
    Сообщений
    156
    Цитата Сообщение от SergDoc Посмотреть сообщение
    а там каша (как это? - срыв стека) и по кругу из прерывания в прерывание, неважно какой приоритет, если мы сидим в прерывании - никаких прерываний - пускай ждут, а вот ежели пришли два одновременно тогда да - пропускаем старшее - младшее подождёт!
    на вас никогда аппарат не бросался? на меня несколько раз уже покушался
    ну начнем с того что срыв стека - это не типичная ситуация. возникнуть может когда угодно и за нее программисту руки отрывать надо. бросался на самописном ПО или на чужом? если на чужом, тут уж ничего не поделаешь, Вы доверяете свое здоровье кому-то в руки, используя чужую прошивку.
    таких нетипичных ситуаций нужно избегать, прерывания тут не при чем, ушли в функцию, а из-за срыва стека вышли из нее в другом месте. так что теперь, все писать одной портянкой, не используя функций вообще?

  12. #1609

    Регистрация
    06.04.2012
    Адрес
    Moscow
    Возраст
    34
    Сообщений
    202
    Цитата Сообщение от mahowik Посмотреть сообщение
    stm32f3discovery или stm32f4discovery?
    CooCox поддерживает f4 из коробки (уже подтвердили выше)... если у вас получилось с stm32f3discovery, то расскажите плз. как... у меня не пашет...
    Стучитесь в личку или в аську 260209301 - подскажу. Там все довольно просто, могу даже пример проекта скинуть на F4 или F103

  13. #1610

    Регистрация
    17.06.2011
    Адрес
    Минск
    Возраст
    39
    Сообщений
    1,941
    Цитата Сообщение от SergDoc Посмотреть сообщение
    а там каша (как это? - срыв стека) и по кругу из прерывания в прерывание, неважно какой приоритет, если мы сидим в прерывании - никаких прерываний - пускай ждут, а вот ежели пришли два одновременно тогда да - пропускаем старшее - младшее подождёт!
    Во первых, не знаю как на STM, а на AVR если вошли в обработчик прерывания, то прерывания автоматом отключаются. Что бы их включить, надо либо завершить обработчик, либо включить руками.
    Теперь, если вы не включили прерывания, то по выходу из обработчика, выполнится следующее прерывание которое стоит в очереди.
    А вот если включили вручную прерывание посреди обработчика, то может выполнится любое другое прерывание, но по его завершению, работа продолжится. Тут кроется одна большая засада - если по каким либо причинам, у вас много раз произойдет наложение обработчиков, получится Stack Overflow.
    Поэтому, прежде чем разрешать прерывания в теле какого либо обработчика, надо 5 раз подумать.

  14. #1611

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    так а я про что, пускай ждут, за пару микросекунд с ними ничего не случится....

  15. #1612

    Регистрация
    26.12.2011
    Адрес
    Киров
    Возраст
    32
    Сообщений
    156
    Цитата Сообщение от Sir Alex Посмотреть сообщение
    Во первых, не знаю как на STM, а на AVR если вошли в обработчик прерывания, то прерывания автоматом отключаются. Что бы их включить, надо либо завершить обработчик, либо включить руками.
    Теперь, если вы не включили прерывания, то по выходу из обработчика, выполнится следующее прерывание которое стоит в очереди.
    А вот если включили вручную прерывание посреди обработчика, то может выполнится любое другое прерывание, но по его завершению, работа продолжится. Тут кроется одна большая засада - если по каким либо причинам, у вас много раз произойдет наложение обработчиков, получится Stack Overflow.
    Поэтому, прежде чем разрешать прерывания в теле какого либо обработчика, надо 5 раз подумать.
    на стм одно прерывание может быть вызвано из другого согласно приоритету. чтобы стек не переполнялся, просто надо это учитывать. в раз 10 штук не придут никак.

  16. #1613

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    извечный вопрос - что делать? вместо ифк датчиков прислали 4 пирометра, поругаться или с пирометрами что-нибудь замутить?

  17. #1614
    Забанен
    Регистрация
    30.11.2011
    Адрес
    Киев
    Возраст
    36
    Сообщений
    373
    Интересное наблюдение. Подключил я к STM32F105 GPS модуль MTK3339. Мудохолся-мудохался, а модуль спутники не находит. И вот однажды в процессе отладки я остановился на точке останова и о чудо, модуль в помещении находи 6 спутником. После запуска программы, GPS буквально за 5сек потерял все спутники.

  18. #1615

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от Alexey_1811 Посмотреть сообщение
    После запуска программы, GPS буквально за 5сек потерял все спутники.
    Ищите источник (паразитный) радиоизлучения на плате.. Проблема актуальная, например некоторые видеокамеры при приближении к модулю GPS аналогично глушат сигнал...

  19. #1616
    Забанен
    Регистрация
    30.11.2011
    Адрес
    Киев
    Возраст
    36
    Сообщений
    373
    Стало лучше после установки дросселя по +. Но все равно после запуска ядра МК теряется часть спутников.

  20. #1617

    Регистрация
    26.12.2011
    Адрес
    Киров
    Возраст
    32
    Сообщений
    156
    Цитата Сообщение от mahowik Посмотреть сообщение
    в этом архивчике с экзамплами http://www.st.com/web/en/catalog/tools/PF257904

    или вот https://code.google.com/p/mwc-ng/sou...ude/arm_math.h
    Цитата Сообщение от SergDoc Посмотреть сообщение
    у меня только wirish_math из maple выдрано....
    в библиотеках CMSIS точно есть arm_math.h если что тоже есть...
    За ссылочки спасибо, но там только заголовочный файл с объявленниями, а вот где бы посмотреть реализацию...

  21. #1618

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от RaJa Посмотреть сообщение
    Там все довольно просто, могу даже пример проекта скинуть на F4 или F103
    я писал про F30х (в Coocox поддержки нет по умолчанию), а вы говорите про F4 и F1...
    на пред-й странице я писал и выкладывал ссылку шаблон демо проекта под F3, но debug не пашет там...

    Цитата Сообщение от Geniok Посмотреть сообщение
    но там только заголовочный файл с объявленниями, а вот где бы посмотреть реализацию...
    поиском воспользуйтесь

    например функция arm_mat_add_f32
    Код:
    arm_status arm_mat_add_f32(
                     const arm_matrix_instance_f32 * pSrcA,
                     const arm_matrix_instance_f32 * pSrcB,
                     arm_matrix_instance_f32 * pDst);
    путь в архиве: \STM32F4-Discovery_FW_V1.1.0\Libraries\CMSIS\DSP_Lib\Source\MatrixFunctions\arm_mat_add_f32.c

  22. #1619

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от Alexey_1811 Посмотреть сообщение
    Стало лучше после установки дросселя по +. Но все равно
    Какая плата? Если неудачная топология разводки, то поможет полное экранирование (как у радиомодулей)..

  23. #1620

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от rual Посмотреть сообщение
    переделал корректор ИНС как у Тома Пикке, http://code.google.com/p/gluonpilot/...e_quaternion.c
    а по чем там X,Y корректится? гпс? optflow?
    Цитата Сообщение от rual Посмотреть сообщение
    вся математика алгебраически оптимизирована, можешь на АВР попробовать
    глянул... не потянет авр-ка похоже...
    Цитата Сообщение от rual Посмотреть сообщение
    Счас горизонт лучше, но из-за наличия интегральной составляющей присутствует медленная раскачка.
    Если ты про конечный пид регуль, то есть парочка рецептов:
    1) убери I в ноль, если станет заметно стабильнее, то подними его на мин., напару единиц, так что бы не влияло на горизонт и не вводило в раскачку...
    2) если у тебя классический пид регуль с углом из ИМУ на входе, то убедись что у тебя правильный знак на Д-часть и она задает противодействие (П+И)-частям. т.е. если на входе угол, то Д-часть это по сути угловая скорость, принимая что требуемое/заданное положение/угол постоянно на коротком промежутке времени... т.е. Д-часть должна вводить заблаговременное торможение системы, а не ускорение... Вообще имеют право на жизнь П+И+Д и П+И-Д регули, но первый вариант для коптеров не катит. Уже (не помню кто) проверял на форуме. Результат П+И+Д: раскачка и перевертыши...
    Если со знаками в Д-части все ок, то попробый увеличить Дк, т.е. силу противодействия/торможения к требуемому/заданному положению...
    Вот коротко и клева написано про пидЫ http://pidcontrol.narod.ru/
    3) Не помогло? Тогда далее
    Удали Д часть из ПИД регуля и введи ПД (со знаком минус!) по скорости с ДУС. Собственно это секрет стабильности вия в акро и стаб/level режимах.
    Т.е. получится:
    УВ(упр. воздействие) = ПИ(угол из ИМУ на входе) - ПД(угловая скорость гиры)

    Для ПД (по скорости с гиры) есть парочка нюансов:
    - данные с гиры надо слегка усреднить ~20 герц
    - Д-часть, т.е. дифференциал угловой скорости - это по сути угловое ускорение, которое может начать шуметь, потому его тож надо усреднить чутка. В вие усредняются три последних дифф-а (median filter вроде). Если брать 4-ре, то выходит по плавности совсем "подводная лодка" и убирает мелкие осцилляции на концах лучей. У меня в прошивах - это KILL_SMALL_OSCILLATIONS. ФПВэшники рады

    Код:
    /* It should help to remove small oscillations produced by D-part of main PID regulator.
         * It's also usefull to improve vibro-protection in general, even stability for video cameras (info from feedback ot real user).
         * Note: theoretically it increases D-part for 20-30% and you will need to increase acro P coef. accordingly. 
         * E.g. P roll/pitch was 5.2 and should be changed to 6-6.5 
         */
        //#define KILL_SMALL_OSCILLATIONS
    Вот код ПД-части по гире:
    Код:
    PTerm -= ((int32_t)gyroData[axis]*dynP8[axis])>>6; // 32 bits is needed for calculation   
    
        delta          = gyroData[axis] - lastGyro[axis];  // 16 bits is ok here, the dif between 2 consecutive gyro reads is limited to 800
        lastGyro[axis] = gyroData[axis];
        deltaSum       = delta1[axis]+delta2[axis]+delta;
        delta2[axis]   = delta1[axis];
        delta1[axis]   = delta;
     
        DTerm = ((int32_t)deltaSum*dynD8[axis])>>5;        // 32 bits is needed for calculation
                          
        axisPID[axis] =  PTerm + ITerm - DTerm;
    По настройке:
    а) обнули ПИ по углу... по сути отруби результат своей ИМУ вращалки
    б) натяни ПД так (вплоть до появления перекомпенсации/осцилляций), чтобы в руках коптер существенно сопротивляся наклонам на газу висения (т.е. 40-60%)... потом уменьшай ПД на 20..30%, что бы не вводить в перекомпенсацию...
    в) подымай П (по углу) на желаемую скорость реакции стиков... + добавь немного И, сосем чутка...

    Должно помочь

    Цитата Сообщение от rual Посмотреть сообщение
    поцарапал стены, поругался с женой
    моя за стены не бьет, а вот за измену ей с коптером ругается!
    Цитата Сообщение от rual Посмотреть сообщение
    Гдето видел OpticFlow за 50 баксов и не могу вспонить где
    вот вариант красивый, но дороговато:
    https://pixhawk.ethz.ch/px4/modules/px4flow
    https://store.diydrones.com/ProductD...tCode=BR-PXFLW

  24. #1621

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от mahowik Посмотреть сообщение
    а по чем там X,Y корректится? гпс?
    Скажите а ЧТО можно скорректировать по ГПС ? если точность при н.у. +/- 10 метров ?

  25. #1622

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от oleg70 Посмотреть сообщение
    Скажите а ЧТО можно скорректировать по ГПС ? если точность при н.у. +/- 10 метров ?
    в теории да: через компл. фильтр, либо калман... в крутых контроллерах типа немец, наза, а также от vis.asta так и сделано... он иногда по капле открывает секреты
    чем точнее (и дороже соот-но) аксель, тем меньше можно брать степень корректировки, чтобы не вывалится из стабилизации интеграторов... он кстати, про mpu6050 (который мы тут так хвалим и радуемся) отзывался как про унылое ггг ... каждой задаче своя цена как грится...

    upd: вчера написал первую версию аксель+гпс
    как распогАдится, пойду тестить!

  26. #1623

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от mahowik Посмотреть сообщение
    версию аксель+гпс
    Ломаю голову, как бы разделить линейные ускорения и крен у акселя... пока глухо.

  27. #1624

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от oleg70 Посмотреть сообщение
    Ломаю голову, как бы разделить линейные ускорения и крен у акселя... пока глухо.
    если абстрагироваться от ИМУ, то вот матрица поворота, только знаки надо подобрать правильно (тот еще ребус!):

    Код:
      #define deg2rad(x) (float)(x*PI/180.0f)
    
        float cr = cos(deg2rad(angle[ROLL]));
        float cp = cos(deg2rad(angle[PITCH]));
        float cy = cos(deg2rad(angle[YAW]));
        float sr = sin(deg2rad(angle[ROLL]));
        float sp = sin(deg2rad(angle[PITCH]));
        float sy = sin(deg2rad(angle[YAW]));
        
        float earth_acc_x = (cp*cy) * acc_x + (sr*sp*cy - cr*sy) * acc_y + (sr*sy + cr*sp*cy) * acc_z;
        float earth_acc_y = (cp*sy) * acc_x + (cr*cy + sr*sp*sy) * acc_y + (-sr*cy + cr*sp*sy) * acc_z;
        float earth_acc_z = (-sp) * acc_x + (sr*cp) * acc_y + (cr*cp) * acc_z;
    на выходе earth_acc_x/y/z - это ускорения не зависимые от наклонов...

    Вы вроде с инерциалкой Александра (rual) играетесь. Там проще по идее, т.к. в кватернионах калькуляции...
    Последний раз редактировалось mahowik; 21.03.2013 в 21:27.

  28. #1625

    Регистрация
    18.02.2013
    Адрес
    Москва
    Возраст
    31
    Сообщений
    61
    Цитата Сообщение от Sir Alex Посмотреть сообщение
    Я уже писал вам, одного ICP(Input Capture Pin) хватит для обработки PPM(CPPM) сигнала. Для этого достаточно ловить только Rising Edge (из 0 в 1). Если вам надо каждый канал по отдельности обрабатывать, то разумеется вам надо столько ICP пинов, сколько у вас каналов и в этом случае надо его переключать из 0 в 1 и 1 в 0.
    в обычном приемнике, от Futaba 7C например, РРМ сигнал ведь разложен по 7 канала, на каждой ножке свой канал....

    в Atmega128 есть только 2 прерывания с режимом захвата, это 1 и 3 NIT, т.е. я могу только 2 канала с приемника аппаратно обработать. а что делать с остальными? на них нужно программный захват организовывать с помощью простых INTов?

    Я так понял все тут делают на STM32, а у него сколько аппаратных ICP прерываний? Или есть кто делает на атмеге?

  29. #1626

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Ну понаписали!!! Вот куда время уходит!!!
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Народ мне тут на ухо нашептали, грамотные программеры меня поправя если что не так, по прерываниям, первое что надо сделать в прерывании - это запретить все прерывания
    Сергей, неверно тебе нашептали, но АВР по умолчанию именно так и делает, SirAlex ниже написал про эту особенность. В СТМ32 всё гораздо лучше, в нем оптимизирована смена контекста работы проца (переход в подпрограммы), есть векторный контроллер прерываний, вы бирай сам что для тебя более важно. Главное не забыть выделить достаточное место под стек! И не надо париться что там что прерывает, у меня по 7 прерываний "одновременно" обрабатываются

  30. #1627

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от rual Посмотреть сообщение
    Ну понаписали!!! Вот куда время уходит!!!
    ну да, ну да
    у нас завтра демо по проекту, а я через translit.ru, расписался тут

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

  31. #1628

    Регистрация
    26.12.2011
    Адрес
    Киров
    Возраст
    32
    Сообщений
    156
    Цитата Сообщение от Alexsis1109 Посмотреть сообщение
    в обычном приемнике, от Futaba 7C например, РРМ сигнал ведь разложен по 7 канала, на каждой ножке свой канал....

    в Atmega128 есть только 2 прерывания с режимом захвата, это 1 и 3 NIT, т.е. я могу только 2 канала с приемника аппаратно обработать. а что делать с остальными? на них нужно программный захват организовывать с помощью простых INTов?

    Я так понял все тут делают на STM32, а у него сколько аппаратных ICP прерываний? Или есть кто делает на атмеге?
    Погоди, так PPM приходит же единым пакетом. Все каналы сразу. Значит тебе для его обработки нужна всего 1 ножка. И с помощью этой 1 ножки ты и обрабатываешь все свои 7 каналов. Тебе нужно ловить только переходы из 0 в 1 и из 1 в 0 и все, как написали выше.
    Миниатюры Миниатюры Нажмите на изображение для увеличения
Название: ppm_signal1.gif‎
Просмотров: 13
Размер:	3.6 Кб
ID:	769196  

  32. #1629

    Регистрация
    18.02.2013
    Адрес
    Москва
    Возраст
    31
    Сообщений
    61
    Цитата Сообщение от Geniok Посмотреть сообщение
    Погоди, так PPM приходит же единым пакетом. Все каналы сразу. Значит тебе для его обработки нужна всего 1 ножка. И с помощью этой 1 ножки ты и обрабатываешь все свои 7 каналов. Тебе нужно ловить только переходы из 0 в 1 и из 1 в 0 и все, как написали выше.
    да, согласен, РРМ это 1 канал. Но откуда его взять в обычном приемнике? я так понимаю, приемник ловит РРМ и разделяет его на все 7 ножек в отдельности...

  33. #1630

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от SergDoc Посмотреть сообщение
    вместо ифк датчиков прислали 4 пирометра, поругаться или с пирометрами что-нибудь замутить?
    Это подстава, "прорекламируй" поставщика.

    Цитата Сообщение от Razek Посмотреть сообщение
    А поделитесь ссылкой на математику?
    ищем по "расстояние между точками на поверхности земли", там мног всего, для начала http://gis-lab.info/qa/great-circles.html см. реализацию для эсель (наиболее близко к Си). Из этого просто нужно сделать 2мерный вектор ХУ.


    Цитата Сообщение от mahowik Посмотреть сообщение
    а по чем там X,Y корректится? гпс? optflow?
    нет, это чистый горизонт, линейные перемещения пока сам планирю считать. Просто более простой и понятной (мне) реализации не встречал. Только у него все лишние члены векторных произведений типа (1,0,0)х(0,0,1) исключены, я же всё делал "академически" ибо изобретал "велосипед" с нуля (т.е. с высоты своих познаний)
    Цитата Сообщение от mahowik Посмотреть сообщение
    глянул... не потянет авр-ка похоже...
    А ты попробуй, ДЦМ помоему шибко хуже.

    Цитата Сообщение от mahowik Посмотреть сообщение
    Вот код ПД-части по гире:
    Я как раз пор это, ПИ-регулятор комплементарного филтра. Тут палка о двух концах, сделаешь большой И - будет перекомпенсация (горизонт будет крыльями махать), при маленьком И будет нескомпенсированый завал в одну из сторон.
    Цитата Сообщение от mahowik Посмотреть сообщение
    в крутых контроллерах типа немец, наза, а также от vis.asta так и сделано...
    Тут по другому никак, более оперативных перемещения датчиков нет
    Цитата Сообщение от mahowik Посмотреть сообщение
    он кстати про mpu6050
    нет, он кстати про МПУ6000 на ПХ4м контроллере.



    Цитата Сообщение от mahowik Посмотреть сообщение
    вот вариант красивый, но дороговато
    Да, это сказка, то что нужно для конкурса (только тссс!), вот только стоил бы он баксов 70. А так я сам такой собиру, нужно только дождаться цифровой камеры от китайцких товарищей. Я видел где-то на датчике от мыши, просто туда был прикручен объектив от камеры.
    Цитата Сообщение от oleg70 Посмотреть сообщение
    Ломаю голову, как бы разделить линейные ускорения и крен у акселя... пока глухо.
    "Академически" делается предельно просто: поворачиваем вектор акселя в мировую СК и вычитаем вектор нормали (0,0,-1) или (0,0,1) зависит от "полярности" акселя. В остатке все остальные ускорения , в т.ч. ошибка горизонта. В моей вылолженной проге вроде есть функции в класcе INS.

  34. #1631

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от rual Посмотреть сообщение
    Я видел где-то на датчике от мыши, просто туда был прикручен объектив от камеры.
    Оно? Optical Flow + MultiWii
    Последний раз редактировалось mahowik; 21.03.2013 в 23:26.

  35. #1632

    Регистрация
    26.12.2011
    Адрес
    Киров
    Возраст
    32
    Сообщений
    156
    Цитата Сообщение от Alexsis1109 Посмотреть сообщение
    да, согласен, РРМ это 1 канал. Но откуда его взять в обычном приемнике? я так понимаю, приемник ловит РРМ и разделяет его на все 7 ножек в отдельности...
    Ааа, так у вас обычный приемник...
    Пришла тут идея, если свести все каналы в один, соединив их между собой после выхода из приемника?
    Так как импулься между собой разделены, то они перекрываться не будут, тогда все 7 каналов можно пустить по 1 проводу и подцепить к одному каналу таймера.

  36. #1633

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от rual Посмотреть сообщение
    ищем по "расстояние между точками на поверхности земли", там мног всего
    вот еще ссылочка http://www.movable-type.co.uk/scripts/latlong.html

  37. #1634

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Цитата Сообщение от rual Посмотреть сообщение
    Это подстава, "прорекламируй" поставщика.
    dx я писал раньше что посылка потерялась, а потом ещё не мог найти их (датчики) чтоб показать, а оказывается их уже нет, вот они и переслали новую с датчиками движения на пирометрах я один сегодня на работе уже сломал ладно фиг с ними, невелика потеря, сейчас уныло смотрю в код AeroQad сколько всего переделать то надо - ууу, никак не насмелюсь пока даже порты переписывать, а надо ещё gps от арду впихнуть (он там есть но надо правильно библиотеки подключать научится), удержание высоты сделано чисто на баро сонара нет, короче пахать и пахать, а хочется сделать cli, дабы не компилить постоянно для изменения аппарата или там подключения модулей (gps, сонар...) ну и всяких там расширеных возможностей по настройке, а без мативатора (платы) как-то ничего не хочется делать....

  38. #1635

    Регистрация
    26.12.2011
    Адрес
    Киров
    Возраст
    32
    Сообщений
    156
    Цитата Сообщение от SergDoc Посмотреть сообщение
    dx
    Один раз связывался с dx, больше я туда ни ногой...

  39. #1636

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Цитата Сообщение от Geniok Посмотреть сообщение
    Пришла тут идея, если свести все каналы в один, соединив их между собой?
    это не панацея, и где гарантии что вы не убъёте приёмник, есть простое решение о котором уже писал, сам с такой штукой летаю, правда просто потому, что куча проводов задолбала.....

  40. #1637

    Регистрация
    18.02.2013
    Адрес
    Москва
    Возраст
    31
    Сообщений
    61
    Цитата Сообщение от SergDoc Посмотреть сообщение
    есть простое решение о котором уже писал
    напишите еще раз, пожалуйста) а то искать замучаюсь....

  41. #1638

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    на синенькое тыкаем и ждём... пост 49

  42. #1639

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от rual Посмотреть сообщение
    Я как раз пор это, ПИ-регулятор комплементарного филтра. Тут палка о двух концах, сделаешь большой И - будет перекомпенсация (горизонт будет крыльями махать), при маленьком И будет нескомпенсированый завал в одну из сторон.
    вот вот! я когда с MARG-ом игрался, потратил кучу времени на настройку пид параметров компл. филтра (КФ), но так и не получил стабильного результата...
    Но решение есть. Я както с Олегом (Syberian) общался по этому поводу и он наткнулся на туже проблему... Если пральна помню, то выкидываешь ПИД регуль из КФ и оставляешь, класический КФ, где дрейф быстрого/высокочастотного вектора гиры компенсируется НЧ вектором акселя:
    Vg = Vg * (1 - 1/k) + Va * 1/k
    где Vg - вектор гиры, Va - вектор акселя, на твой цикл (380 герц вроде) к=400..600

    Цитата Сообщение от rual Посмотреть сообщение
    нет, он кстати про МПУ6000 на ПХ4м контроллере.
    на его контроллере совсем не mpu6050/6000... а вот когда он писал порт на PX4, то сильно его ругал

  43. #1640

    Регистрация
    26.12.2011
    Адрес
    Киров
    Возраст
    32
    Сообщений
    156
    Цитата Сообщение от SergDoc Посмотреть сообщение
    это не панацея, и где гарантии что вы не убъёте приёмник,
    Согласен, тут гарантий нет, есть 1 приемник, надо будет попробовать...

+ Ответить в теме

Похожие темы

  1. Система стабилизации гиро+акселерометр
    от Фантомас в разделе Полеты по камере, телеметрия
    Ответов: 32
    Последнее сообщение: 25.01.2011, 14:47
  2. Продам Продам Клона Trex 450SEV2 + Аппаратура + Запчасти+ система стабилизации RTF
    от omegapraim в разделе Барахолка. Вертолеты
    Ответов: 1
    Последнее сообщение: 12.01.2011, 18:16
  3. Продам Трёхосевую систему стабилизации Turnigy V-Bar 600
    от avi@tor в разделе Барахолка. Аппаратура
    Ответов: 1
    Последнее сообщение: 08.11.2010, 13:02
  4. Продам Gaui система стабилизации GU365, дёшево.
    от avi@tor в разделе Барахолка. Вертолеты
    Ответов: 3
    Последнее сообщение: 03.08.2010, 11:13
  5. Системы стабилизации
    от max815 в разделе Фото и видеосъемка, системы стабилизации
    Ответов: 16
    Последнее сообщение: 11.03.2010, 03:14

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения