Специальные цены   новые товары
+ Ответить в теме
Страница 20 из 165 ПерваяПервая ... 10 18 19 20 21 22 30 ... ПоследняяПоследняя
Показано с 761 по 800 из 6569

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

Тема раздела Квадрокоптеры. Общие вопросы в категории Квадрокоптеры и мультироторы; Видео полетов где можно посмотреть?...

  1. #761
    Забанен
    Регистрация
    30.11.2011
    Адрес
    Киев
    Возраст
    36
    Сообщений
    373
    Видео полетов где можно посмотреть?

  2.  
  3. #762

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

  4. #763

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

  5. #764

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

  6.  
  7. #765

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Починился, поднастроился, подлетнул, правда уже в ветер, картина такая: при переходе с сонара, на баро+сонар происходит прыжок сантиметров 20-30 вверх - потом меленно обратно, выше (с баро+сонар на баро) ещё не пробовал, что делать?

  8. #766

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

  9. #767

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от SergDoc Посмотреть сообщение
    при переходе с сонара, на баро+сонар происходит прыжок сантиметров 20-30 вверх
    Думаю, это нормально, датчики зиначально дают разные показания, при переходе их значения усредняются ступенькой. Потом баро потихоньку подтягивается к сонару и всё... При отключении датчика ступеньки не должно быть.

  10.  
  11. #768

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

  12. #769

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

  13. #770

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

  14. #771

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

  15. #772

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

  16. #773

    Регистрация
    12.09.2012
    Адрес
    Москва
    Возраст
    46
    Сообщений
    23
    Здравствуйте! Очень понравилась идея сделать систему стабилизации. Хочу тоже попробовать! Ваши успехи впечатляют. Когда ожидается завершение проекта?

  17. #774

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

  18. #775

    Регистрация
    12.09.2012
    Адрес
    Москва
    Возраст
    46
    Сообщений
    23
    Я остановился на том что к процессору stm32F прикрутил барометр; давление-температуру меряет, но я крепко задумался: ведь если не хватит вычислительной мощности у него, а STM на старших армах ничего не делает, это же будет засада. Так что думаю сейчас про i.MX536

  19. #776
    Забанен
    Регистрация
    30.11.2011
    Адрес
    Киев
    Возраст
    36
    Сообщений
    373
    Цитата Сообщение от shrimp Посмотреть сообщение
    Я остановился на том что к процессору stm32F прикрутил барометр; давление-температуру меряет, но я крепко задумался: ведь если не хватит вычислительной мощности у него, а STM на старших армах ничего не делает, это же будет засада. Так что думаю сейчас про i.MX536
    Вам что STM32F4 с 210MIPSами и поддержкой float не хватает?????

  20. #777

    Регистрация
    06.10.2011
    Адрес
    Самарская обл.
    Возраст
    43
    Сообщений
    172
    Цитата Сообщение от shrimp Посмотреть сообщение
    остановился на том что к процессору stm32F прикрутил барометр; давление-температуру меряет, но я крепко задумался: ведь если не хватит вычислительной мощности у него
    Олег Syberian на STM32F4 в MPX не только Калмана крутит но и OSD рисует ну и датчики опрашивает, и на все хватает.

  21. #778

    Регистрация
    12.09.2012
    Адрес
    Москва
    Возраст
    46
    Сообщений
    23
    Я перестраховываюсь, так как опыт программирования микропроцессоров минимальный. Но все говорят что хватит и ещё останется. В самом карйнем случае если нехватит, можно попробовать передавать на другой комп с быстрым FPU данные через ethernet и пускай он считает.

  22. #779

    Регистрация
    16.12.2005
    Адрес
    Москва
    Возраст
    34
    Сообщений
    4,452
    Записей в дневнике
    13
    Цитата Сообщение от shrimp Посмотреть сообщение
    к процессору stm32F прикрутил барометр; давление-температуру меряет, но я крепко задумался: ведь если не хватит вычислительной мощности у него

    Даже у 168/2560 меги хватает скорости

    Цитата Сообщение от shrimp Посмотреть сообщение
    В самом карйнем случае если нехватит, можно попробовать передавать на другой комп с быстрым FPU данные через ethernet

    Точно опыта нету..

  23. #780

    Регистрация
    12.09.2012
    Адрес
    Москва
    Возраст
    46
    Сообщений
    23
    Кстати, может народ позитивную RTOS посоветует? До этого всё делал под FreeRTOS , но вот кажется эта http://chibios.org значительно удобнее.

  24. #781

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    А я опять за старое, не лызе бацьку, i у крынку не лызе... нижняя плата не хочет пока влазить в посадочное место 45Х45, мыслю над переносом лишнего на верхнюю - светодиоды почти все туда ушли EEProм-ка туда же, разъёмы телеметрии и программирования (всё равно разъём при снятой верхней плате будет, я конечно с выходами переборщил (12 шт. надо они мне?) 4 чисто на сервы 8 на моторы ну или некоторые вариации, в общем мудрю чего-то... дожди...

  25. #782

    Регистрация
    12.09.2012
    Адрес
    Москва
    Возраст
    46
    Сообщений
    23
    А фото будет как оно всё выглядит?

  26. #783

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

  27. #784

    Регистрация
    15.06.2011
    Адрес
    Ростов-на-Дону
    Возраст
    45
    Сообщений
    870
    Цитата Сообщение от SergDoc Посмотреть сообщение
    нижняя плата не хочет пока влазить в посадочное место 45Х45, мыслю над переносом лишнего на верхнюю
    лучше нижнюю развести 50х60 венеся серворазЪёмы за габарит 50х50 , как это сделано у BLACK VORTEX ... и место освободится и разЪёмы будут легкодоступны после установки второго этажа ... остальные разЪёмы можно угловые паять , а трехрядные угловые нежелательно , они ощутимо тяжелее ...

  28. #785

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    я сейчас так и делаю, оставляю "хвост" - последние штрихи и буду пробовать разводить...
    P.S. проц приехал (STM32F407VET6) - здоровый зараза после 48 лапых

    Ну вот что вышло со схемой нижней платы, пошел на пальцах разводить
    Последний раз редактировалось SergDoc; 04.10.2012 в 23:40.

  29. #786

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Сделал "примерку", как и ожидалось автотрассировщик заткнулся на 67% хотя очевидно, что плата разведётся, придётся помучатся только с двумя SPI - двухслойке быть это радует, надо попробовать "Топором" развести, хотя лучше по старинке в ручную - долго, но зато как хочется так и делается, плюс контроль самостоятельный

  30. #787

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

  31. #788

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

    в общем сделал что-то такое:
    Код:
    // **** Alt. Set Point stabilization PID ****
        baroHistTab[baroHistIdx] = BaroAlt / 10;
        baroHigh += baroHistTab[baroHistIdx];
        baroHigh -= baroHistTab[(baroHistIdx + 1) % cfg.baro_tab_size];
    
    
        baroHistIdx++;
        if (baroHistIdx == cfg.baro_tab_size) 
            baroHistIdx = 0;
    #ifdef SONAR  //&& defined(SONAR_BARO_FUSION)
        debug[0]=EstAlt;
        //debug[1]=baroHigh / 10;
    		debug[1] = BaroHome;
        
       if(!f.ARMED) { //init offset till motors not armed
          BaroHome = BaroHome*0.9f + (baroHigh*10.0f/(cfg.baro_tab_size))*0.1f; // play with optimal coef. here
          SonarHome = sonarAlt;
     }
    
        //mix baro/sonar
        if(BaroHome!=0) {    
         baroHigh = baroHigh-BaroHome/10.0f;
    		 SonarPostAlt = sonarAlt -SonarHome;
    			if(sonarAlt<SONAR_BARO_FUSION_LC) {
            EstAlt = EstAlt*cfg.baro_noise_lpf + SonarPostAlt*(1.0f - cfg.baro_noise_lpf);
    				debug[2] = BaroHome+sonarAlt;
          } else if(SonarPostAlt>=SONAR_BARO_FUSION_LC && SonarPostAlt<SONAR_BARO_FUSION_HC) {
            float fade = SONAR_BARO_FUSION_RATIO;
            if(fade==0.0) fade = (SONAR_BARO_FUSION_HC-SonarPostAlt)/(SONAR_BARO_FUSION_HC-SONAR_BARO_FUSION_LC);
            fade = constrain(fade, 0.0, 1.0);
            
            EstAlt = EstAlt*(1.0f - cfg.baro_noise_lpf) + ((SonarPostAlt)*fade + (baroHigh*10.0f/(cfg.baro_tab_size - 1))*(1-fade))*(1-cfg.baro_noise_lpf);
            
          } else {
            EstAlt = EstAlt*cfg.baro_noise_lpf + (baroHigh*10.0f/(cfg.baro_tab_size - 1))*(1-cfg.baro_noise_lpf); // additional LPF to reduce baro noise          
          }
        }
    	
      #elif (sonarAlt<SONAR_MIN)||(sonarAlt>SONAR_MAX)
        EstAlt = EstAlt*cfg.baro_noise_lpf + (baroHigh*10.0f/(cfg.baro_tab_size - 1))*(1-cfg.baro_noise_lpf); // additional LPF to reduce baro noise  
    #endif
    Последний раз редактировалось SergDoc; 08.10.2012 в 12:22.

  32. #789

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

  33. #790

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    В общем ещё один косяк
    Код:
    #ifdef SONAR  //&& defined(SONAR_BARO_FUSION)
        debug[0]=SonarPostAlt;
        debug[2]=BaroHome;
    		debug[1] = baroPostHigh;
        
       if(!f.ARMED) { //init offset till motors not armed
          BaroHome = BaroHome*0.9f + (baroHigh*10.0f/(cfg.baro_tab_size))*0.1f; // play with optimal coef. here
          SonarHome = sonarAlt;
     }
    
        //mix baro/sonar
        if(BaroHome!=0) {    
         baroPostHigh = baroHigh-BaroHome/10.0f; // приравниваем к нулю
    		 SonarPostAlt = sonarAlt -SonarHome; // приравниваем к нулю
    			if(sonarAlt>=SONAR_MIN && sonarAlt<SONAR_MAX){
    			 if(SonarPostAlt<SONAR_BARO_FUSION_LC) {
             EstAlt = EstAlt*cfg.baro_noise_lpf + SonarPostAlt*(1.0f - cfg.baro_noise_lpf);
    				//debug[2] = baroHigh;
           } else if(SonarPostAlt>=SONAR_BARO_FUSION_LC && SonarPostAlt<SONAR_BARO_FUSION_HC) {
             float fade = SONAR_BARO_FUSION_RATIO;
             if(fade==0.0) fade = (SONAR_BARO_FUSION_HC-SonarPostAlt)/(SONAR_BARO_FUSION_HC-SONAR_BARO_FUSION_LC);
             fade = constrain(fade, 0.0, 1.0);
            
             EstAlt = EstAlt*(1.0f - cfg.baro_noise_lpf) + ((SonarPostAlt)*fade + (baroPostHigh*10.0f/(cfg.baro_tab_size - 1))*(1-fade))*(1-cfg.baro_noise_lpf);
    			 } 
           }
    		 			
    			else  {
            EstAlt = EstAlt*cfg.baro_noise_lpf + (baroPostHigh*10.0f/(cfg.baro_tab_size - 1))*(1-cfg.baro_noise_lpf); // должно считать только по баро притянутому к земле
          } 
    	    }
      //#elif // отключил для проверки
      // EstAlt = EstAlt*cfg.baro_noise_lpf + (baroHigh*10.0f/(cfg.baro_tab_size - 1))*(1-cfg.baro_noise_lpf); // отключил для проверки  
    #endif
    так вот, если пальцем заткнуть сонар, начинает почему-то считать не по baroPostHigh = примерно 0, а по baroHigh*10.0f который практически высота по давлению над уровнем моря откуда он его берёт?

  34. #791

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Ну что, оставить или ещё помучать? на горизонтальные полосы не смотреть - это глюк преобразования
    Миниатюры Миниатюры Нажмите на изображение для увеличения
Название: первый заход.jpg‎
Просмотров: 179
Размер:	101.7 Кб
ID:	702654  

  35. #792

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от SergDoc Посмотреть сообщение
    в общем сделал что-то такое:
    тоже лопатил сегодня этот кодярник... чутка отрефакторил т.к. там ну оч. грязный код
    Код:
      int32_t tempAlt = baroHigh*10.0f/(BARO_TAB_SIZE - 1);
    
      if(!f.ARMED) { //init offset till motors not armed
        EstAltStart = EstAltStart*0.8f + tempAlt*0.2f;
      }
      debug[0] = EstAltStart;
    
      #if defined(SONAR) && defined(SONAR_BARO_FUSION)
        //mix baro/sonar
        debug[1] = sonarAlt;
        if(EstAltStart != 0) {    
          if(sonarAlt < SONAR_BARO_FUSION_LC) {
            tempAlt = EstAltStart + sonarAlt;
          } else if(sonarAlt < SONAR_BARO_FUSION_HC) {
            float fade = SONAR_BARO_FUSION_RATIO;
            if(fade == 0.0) {
              fade = (SONAR_BARO_FUSION_HC-sonarAlt)/(SONAR_BARO_FUSION_HC-SONAR_BARO_FUSION_LC);
            }
            fade = constrain(fade, 0.0, 1.0);
            debug[2] = fade;
            
            tempAlt = (EstAltStart + sonarAlt)*fade + tempAlt*(1 - fade);
          }
        }
      #endif
      
      EstAlt = EstAlt*0.6f + tempAlt*0.4f; // additional LPF to reduce baro noise  
      debug[3] = EstAlt;
    также думал о том как корректировать баро... тут сонар приводится к показаниям баро, а надо наоборот думаю, т.е. сонар брать "чистым" (от нуля), а на баро уже оффсет считать и корректировать его соот-но...

  36. #793

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

    все бяки с cfg. - в Cli выведены, а что мешает в MultiWii сделать? памяти маловато?

    Цитата Сообщение от mahowik Посмотреть сообщение
    if(fade == 0.0) {
    fade = (SONAR_BARO_FUSION_HC-sonarAlt)/(SONAR_BARO_FUSION_HC-SONAR_BARO_FUSION_LC);
    }
    а если fade не равно нулю что будет?
    Последний раз редактировалось SergDoc; 13.10.2012 в 00:40.

  37. #794

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от SergDoc Посмотреть сообщение
    все бяки с cfg. - в Cli выведены, а что мешает в MultiWii сделать? памяти маловато?
    лень ))
    Цитата Сообщение от SergDoc Посмотреть сообщение
    а если fade не равно нулю что будет?
    т.е. тогда придефайненый (статический) вес сонар/баро будет...
    Код:
    #define SONAR_BARO_FUSION_RATIO 0.0 //0.0-1.0 amount of each sensor value, 0 = proportionnel between LC and HC
    Последний раз редактировалось mahowik; 13.10.2012 в 01:11.

  38. #795

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    ага понял, да и баро проблемотично к сонару привязат ...
    вобщем остановился пока на таком варианте:
    Код:
    #ifdef SONAR  //&& defined(SONAR_BARO_FUSION)
        debug[0]=tempAlt;
    	 tempAlt = baroHigh*10.0f/(cfg.baro_tab_size - 1);
       if(!f.ARMED) { //init offset till motors not armed
          BaroHome = BaroHome*0.8f + tempAlt*0.2f; // play with optimal coef. here
         // SonarHome = sonarAlt;
     }
    
        //mix baro/sonar
        if(BaroHome!=0) {    
         //baroPostHigh = baroHigh-(BaroHome / 10.0f);
    		// SonarPostAlt = sonarAlt - 	SonarHome;
    		    debug[1]=BaroHome;
    			  debug[2] = BaroAlt;
    			if(sonarAlt>=SONAR_MIN && sonarAlt<SONAR_MAX){
    			 if(sonarAlt<SONAR_BARO_FUSION_LC) {
             EstAlt = EstAlt*cfg.baro_noise_lpf + (sonarAlt+BaroHome)*(1.0f - cfg.baro_noise_lpf);
           } else if(sonarAlt>=SONAR_BARO_FUSION_LC && sonarAlt<SONAR_BARO_FUSION_HC) {
             float fade = SONAR_BARO_FUSION_RATIO;
             if(fade==0.0) fade = (SONAR_BARO_FUSION_HC-sonarAlt)/(SONAR_BARO_FUSION_HC-SONAR_BARO_FUSION_LC);
             fade = constrain(fade, 0.0, 1.0);
            
             EstAlt = EstAlt*(1.0f - cfg.baro_noise_lpf) + ((sonarAlt+BaroHome)*fade + (baroHigh*10.0f/(cfg.baro_tab_size - 1))*(1-fade))*(1-cfg.baro_noise_lpf);
    			 } 
           }
    		 			
    			else  {
            EstAlt = EstAlt*cfg.baro_noise_lpf + (baroHigh*10.0f/(cfg.baro_tab_size - 1))*(1-cfg.baro_noise_lpf); // additional LPF to reduce baro noise          
          } 
    	    }
    только с проверкой на адекватность сонара
    Код:
     if(sonarAlt>=SONAR_MIN && sonarAlt<SONAR_MAX){ // если сонар больше или равен единице ну и т.д.

  39. #796

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от SergDoc Посмотреть сообщение
    тот код выше он работает
    если ты сам понимаешь что написал в этой строчке, то возможно я тебе поверю
    Цитата Сообщение от SergDoc Посмотреть сообщение
    baroPostHigh = baroHigh-BaroHome/10.0f; // приравниваем к нулю
    может так?!
    Код:
    baroPostHigh = baroHigh/(cfg.baro_tab_size - 1) - BaroHome/10.0f;
    ------------------------------------------------------------
    Код:
    if(!f.ARMED) { //init offset till motors not armed
          BaroHome = BaroHome*0.9f + (baroHigh*10.0f/(cfg.baro_tab_size))*0.1f; // play with optimal coef. here
          SonarHome = sonarAlt;
     }
    почему не
    Код:
    if(!f.ARMED) { //init offset till motors not armed
          BaroHome = BaroHome*0.9f + (baroHigh*10.0f/(cfg.baro_tab_size - 1))*0.1f; // play with optimal coef. here
          SonarHome = sonarAlt;
     }

  40. #797

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    кстати
    Код:
     #elif
       EstAlt = EstAlt*cfg.baro_noise_lpf + (baroHigh*10.0f/(cfg.baro_tab_size - 1))*(1-cfg.baro_noise_lpf); // additional LPF to reduce baro noise  
    #endif
    #elif не катит ARM он хитрый нет дефайна (#ifdef SONAR ) даже смотреть дальше не буду, досвиданья весь альхольд без сонара

    по порядку, я же говорил невнимательность
    Цитата Сообщение от mahowik Посмотреть сообщение
    если ты сам понимаешь что написал в этой строчке, то возможно я тебе поверю
    это бред...
    Цитата Сообщение от mahowik Посмотреть сообщение
    может так?!
    проверял
    Цитата Сообщение от mahowik Посмотреть сообщение
    почему не
    ну и так далее

    это всё удалено
    сонар притянутый к баро работает сейчас переделываю всё заново

    Цитата Сообщение от mahowik Посмотреть сообщение
    может так?!
    попробую ещё раз, не получалось сразу, EstAlt вообще не считался, хотя может что-то учудил
    Последний раз редактировалось SergDoc; 13.10.2012 в 01:31.

  41. #798

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    по логике один в один с моим приведенным выше, только более зашумленным ))
    1) почему везде не использовать tempAlt вместо baroHigh*10.0f/(cfg.baro_tab_size - 1)
    2) нафиг ты инвертируешь фильтр? в одном случае EstAlt*cfg.baro_noise_lpf, в другом EstAlt*(1.0f - cfg.baro_noise_lpf)
    3) почему фильтр не держать в конце?
    Код:
    EstAlt = EstAlt*0.6f + tempAlt*0.4f; // additional LPF to reduce baro noise
    ооооооооо... мляяяяяяяяяя Ж)
    посмотри что ты написал... ну так нельзя!
    Код:
    EstAlt = EstAlt*(1.0f - cfg.baro_noise_lpf) + ((sonarAlt+BaroHome)*fade + (baroHigh*10.0f/(cfg.baro_tab_size - 1))*(1-fade))*(1-cfg.baro_noise_lpf);

  42. #799

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    А теперь
    Код:
    #ifdef SONAR  //&& defined(SONAR_BARO_FUSION)
        debug[0]=tempAlt;
    	 tempAlt = baroHigh*10.0f/(cfg.baro_tab_size - 1);
       if(!f.ARMED) { //init offset till motors not armed
          BaroHome = BaroHome*0.8f + tempAlt*0.2f; // play with optimal coef. here
         // SonarHome = sonarAlt;
     }
    
        //mix baro/sonar
        if(BaroHome!=0) {    
         baroPostHigh = baroHigh/(cfg.baro_tab_size - 1) - BaroHome/10.0f;
    		 SonarPostAlt = sonarAlt - 	SonarHome;
    		    debug[1]=BaroHome;
    			  debug[2] = BaroAlt;
    			if(sonarAlt>=SONAR_MIN && sonarAlt<SONAR_MAX){
    			 if(sonarAlt<SONAR_BARO_FUSION_LC) {
             EstAlt = EstAlt*cfg.baro_noise_lpf + (SonarPostAlt)*(1.0f - cfg.baro_noise_lpf);
           } else if(SonarPostAlt>=SONAR_BARO_FUSION_LC && SonarPostAlt<SONAR_BARO_FUSION_HC) {
             float fade = SONAR_BARO_FUSION_RATIO;
             if(fade==0.0) fade = (SONAR_BARO_FUSION_HC-SonarPostAlt)/(SONAR_BARO_FUSION_HC-SONAR_BARO_FUSION_LC);
             fade = constrain(fade, 0.0, 1.0);
            
             EstAlt = EstAlt*cfg.baro_noise_lpf + ((SonarPostAlt)*fade + (baroPostHigh*10.0f)*(1-fade))*(1-cfg.baro_noise_lpf);
    			 } 
           }
    		 			
    			else  {
            EstAlt = EstAlt*cfg.baro_noise_lpf + (baroPostHigh*10.0f)*(1-cfg.baro_noise_lpf); // additional LPF to reduce baro noise          
          } 
    	    }
    тьфу не раскоментировал SonarHome

  43. #800

    Регистрация
    13.03.2011
    Адрес
    Montreal, Canada
    Возраст
    38
    Сообщений
    2,291
    Записей в дневнике
    19
    Цитата Сообщение от SergDoc Посмотреть сообщение
    А теперь
    так проще мне кажется
    Код:
    #ifdef SONAR  //&& defined(SONAR_BARO_FUSION)
        debug[0]=tempAlt;
         tempAlt = baroHigh*10.0f/(cfg.baro_tab_size - 1);
       if(!f.ARMED) { //init offset till motors not armed
          BaroHome = BaroHome*0.8f + tempAlt*0.2f; // play with optimal coef. here
          SonarHome = sonarAlt;
     }
    
        //mix baro/sonar
        if(BaroHome!=0) {    
         baroPostHigh = tempAlt - BaroHome;
             SonarPostAlt = sonarAlt -     SonarHome;
                debug[1]=BaroHome;
                  debug[2] = BaroAlt;
                if(sonarAlt>=SONAR_MIN && sonarAlt<SONAR_MAX){
                 if(sonarAlt<SONAR_BARO_FUSION_LC) {
             EstAlt = EstAlt*cfg.baro_noise_lpf + (SonarPostAlt)*(1.0f - cfg.baro_noise_lpf);
           } else if(SonarPostAlt<SONAR_BARO_FUSION_HC) {
             float fade = SONAR_BARO_FUSION_RATIO;
             if(fade==0.0) fade = (SONAR_BARO_FUSION_HC-SonarPostAlt)/(SONAR_BARO_FUSION_HC-SONAR_BARO_FUSION_LC);
             fade = constrain(fade, 0.0, 1.0);
            
             EstAlt = EstAlt*cfg.baro_noise_lpf + (SonarPostAlt*fade + baroPostHigh*(1-fade))*(1-cfg.baro_noise_lpf);
                 } 
           }
                         
                else  {
            EstAlt = EstAlt*cfg.baro_noise_lpf + baroPostHigh*(1-cfg.baro_noise_lpf); // additional LPF to reduce baro noise          
          } 
            }

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

Похожие темы

  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

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

Ваши права

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