Специальные цены   новые товары
+ Ответить в теме
Страница 96 из 165 ПерваяПервая ... 86 94 95 96 97 98 106 ... ПоследняяПоследняя
Показано с 3,801 по 3,840 из 6569

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

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

  1. #3801

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

    Цитата Сообщение от SergDoc Посмотреть сообщение
    да кстати о магнитном склонении у меня 6.29, но арду его ещё доворачивает на 0.11 - кому верить?
    Арда это сама делает? или ручками надо вводить?

    Цитата Сообщение от WETErok Посмотреть сообщение
    Сомневаюсь. На текущих датчиках IMU, сонары, барометры, gps уже всё выжали, ну чуть чуть можно улучшить более сильной математикой. Но принципиально нового, прорыва тут никакого уже не будет.
    А в чем собственно должен быть прорыв? Посмотрите как летает тот же АПМ? Что ещё нужно? Улучшение я вижу только в повышении автоматизации, увеличении надежности и упрощении (автоматизации) настройки, ну и уменьшение массогабарита. Для первого и второго у F4BY большой задел.
    Цитата Сообщение от WETErok Посмотреть сообщение
    Я имею ввиду удержание позиции или следование траектории по камерам, "кинектам", лидарам. и тд. Вот если бы плата была на ARM с соответствующими шинами, тогда бы можно было говорить что платы хватит на несколько лет. Под несколько лет я всё же имею ввиду передний край разработок, а так конечно можно и на куке летать 10 лет.
    Это всё фичи для мухи-шпиона ))) На свободно летающем аппарате это нафиг не нужно.

  2.  
  3. #3802

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от rual Посмотреть сообщение
    Арда это сама делает? или ручками надо вводить?
    по умолчательному стоит автомат, но можно и ручками, так вот когда вводишь ручками он и показывает 11 минут разницы, у меня тут мысль возникла, что не все просто точки у него есть?
    Цитата Сообщение от rual Посмотреть сообщение
    ну и уменьшение массогабарита.
    это harakiri только с датчиками нет определённости или ждать 9250 или же остановится на на 6000? 36Х36мм 8Х8 входы - выходы, на борту доп. флеш и возможность что-нибудь подцепить по SPI ну и вариации на тему входов/выходов ибо плата 50Х50 не везде влезет.... при условии, перехода на SMD разъёмы (без дырок всмысле) возможна установка SD, т.е. практически весь функционал F4BY в миниатюре

    по ней есть нюанс - не хочу задействовать i2c на датчики, а саму шину пустить как универсальную - хочешь i2c хочешь usart ну т.д. ....

  4. #3803

    Регистрация
    10.12.2013
    Адрес
    Люберцы
    Возраст
    33
    Сообщений
    168
    Цитата Сообщение от SergDoc Посмотреть сообщение
    перехода на SMD разъёмы
    И контроллер в BGA корпусе, только плата многослойная уже нужна будет)))

  5. #3804

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от djdron Посмотреть сообщение
    И контроллер в BGA корпусе
    вполне может и 4 слоя - незнаю, а контроллер не BGA, а обычный RGT6 - лежат два без дела, пока это всё вилами по воде и проект в MicroXplorer с набросками в орле

  6.  
  7. #3805

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от rual Посмотреть сообщение
    Одного раза мало, тем более тут ещё надо учитывать снос от ветра.
    Сто раз уже думал совсем отказаться от магнитометра (и проще и надежнее..) размышляя так:
    "если надо куда-то лететь, то летим по GPS однозначно", а висеть на месте и знать где север конечно хорошо но зачем ??, компас чтоль имитировать ?
    В конце концов всеж жадность заставила оставить этот LSM на плате..... и понеслась всякая там "hard/soft iron".., ды еще его надо калибровать чуть ли не перед каждым полетом.... тьфу.. (вопрос пока открыт для меня, поиграюсь и выкину..)

  8. #3806

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

  9. #3807

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от SergDoc Посмотреть сообщение
    и тут ЖПС выключили
    По моему если "выключат" GPS то надо подумать: "а не пора ли заканчивать полеты..?"
    Цитата Сообщение от SergDoc Посмотреть сообщение
    чем больше входных данных, тем вернее
    Если данные наглухо противоречат реальности (ЛЭП, аномалии всякие,... ды просто i2c завис,..) то дешевле их не учитывать, чем напрягать бедного калмана их сводить..
    Тут еще "научил" свою плату разговаривать через DAC и надо бы нормальный динамик поставить, так компас не разрешает.., а через пьезо, голос "Анны" звучит как у пропитого Федора...

  10.  
  11. #3808

    Регистрация
    14.02.2012
    Адрес
    Бийск
    Возраст
    37
    Сообщений
    202
    По поводу уменьшения размеров, вычислительной мощи и прочего будущего. Сейчас тренд умных вещей. Вангую. Как вещи они мне не очень интересны, но стоит обратить внимание на "умные" часы. Есть несколько моделей даже китайские, по сути это смартфон в корпусе часов. Получается интересная плата размером ~40x40 c 2-4 ядерным арм процессором, памятью 512-1024Мб, gps, 3g, КАМЕРА, usb ... выходов конечно нет. Моё имхо, год, два и мы увидим полетный контролер таких же размеров и функционала. Зачем оно надо, затем же зачем сейчас 4 ядра в смартфонах но тенденция однако.
    То что контролеры должны умнеть я не сомневаюсь. Что бы не было таких ситуаций как зарулился врезался в землю, дерево, стену, провод. И появятся преимущества полет по точкам с огибанием рельефа местности..

  12. #3809

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от oleg70 Посмотреть сообщение
    то дешевле их не учитывать, чем напрягать бедного калмана их сводить..
    [заглянул в будущее] Датчики с глюком автоматически выкидываются из уравнения [/заглянул в будущее]
    динамик да - подальше от компаса, у меня на стойке лыж висит....

    Цитата Сообщение от oleg70 Посмотреть сообщение
    По моему если "выключат" GPS то надо подумать:
    рвать когти домой - нефиг думать

  13. #3810

    Регистрация
    10.12.2013
    Адрес
    Люберцы
    Возраст
    33
    Сообщений
    168
    Цитата Сообщение от WETErok Посмотреть сообщение
    Есть несколько моделей даже китайские, по сути это смартфон в корпусе часов. Получается интересная плата размером ~40x40 c 2-4 ядерным арм процессором, памятью 512-1024Мб, gps, 3g, КАМЕРА, usb ... выходов конечно нет. Моё имхо, год, два и мы увидим полетный контролер таких же размеров и функционала. Зачем оно надо, затем же зачем сейчас 4 ядра в смартфонах но тенденция однако.
    Не нужен здесь такой многоядерник, на телефонах и планшетах это многозадачность и универсальность, а здесь специфика. Да и с серьезной обработкой видео и т.д. в реалтайме не справится ARM даже 4 ядра. Для обычного полетного контроллера как-то много, а для серьезного с большим функционалом маловато будет.
    Можно поставить Zynq-7000 там и мозг и мозжечек, но дороговато выйдет)))

  14. #3811
    Забанен
    Регистрация
    12.01.2011
    Адрес
    Moscow
    Возраст
    43
    Сообщений
    952
    Дрон, ну че, был на ввц? Поведай публике вкратце че там интересного было?

  15. #3812

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Armazila там была чёт очень смахивающая на Дринкер-пилот
    STM32F103RE CPU (32bit ARM Cortex M3, 72MHz, 512K flash. LQFP 64 10x10mm packages)
    L3GD20 2000 degrees/second 3-axis digital gyro
    LSM303DLHC 3-axis digital accelerometer and magnetometer
    LPS331AP digital MEMS pressure sensor

    Андрей, авторские права бы обсудить, а?

  16. #3813

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    проГПС : это нормально от ублокса такую запись получить?
    $GPGGA,143451.20,,,,,0,0099.99,,,,,,*62
    В том смысле, что пока он с положением не определился, в координатах пропуски? Навис всегда последние известные ему координаты пхает...
    Три раза сегодня из за этого контроллер перешивал, а то при пропадании спутников, он у меня пытается улететь в 0гр СШ и 0 гр ВД.

    Цитата Сообщение от SergDoc Посмотреть сообщение
    там была чёт очень смахивающая на Дринкер-пилот
    Мне мой первый контроллер напомнило... по возможностям ))

  17. #3814

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    это naze32 harakiri (потому что с мавлинком), кто не верит тот может посмотреть кодятник https://github.com/ARMAZILA/FlightCo.../app/src/imu.c
    стыдно с такой платформой да ещё за такие бабки показываццо - моё ИМХО

  18. #3815

    Регистрация
    13.01.2014
    Адрес
    Vilnius
    Возраст
    39
    Сообщений
    7
    Здравствуйте SergDoc. Извиняюсь за свой русский .
    Я долго читаю эту ветку и вижу, что Вы пишите про фильтр Калмана на одну ось у Naze32. Тогда мне становиться очень грустно, потому что такой "фильтр Калмана" есть у MultiWii (не Naze32, а MultiWii) уже давно, но там он называется low-pass filter (ФВЧ). Я надеюсь что Вы поймете почему так.
    Взгляните на код, которий Вы сами выложили:
    Код:
    /*
     * kalman.c
     *
     *  Created on: 25.11.2012
     *      Author: rob
     */
    
    #include "stdint.h"
    #include "kalman_simple.h"
    
    typedef struct
    {
    	float q;	// process noise covariance
    	float r;	// measurement noise covariance
    	float x;	// value
    	float p;	// estimation error covariance
    } kalman_state;
    
    // accelerometer
    kalman_state kax;
    kalman_state kay;
    kalman_state kaz;
    
    // gyro
    kalman_state kgx;
    kalman_state kgy;
    kalman_state kgz;
    
    void kalman_init(kalman_state* state, float q, float r, float p, float intial_value)
    {
    	state->q = q;
    	state->r = r;
    	state->p = p;
    	state->x = intial_value;
    }
    
    void kalman_update(kalman_state* state, float measurement)
    {
    	// prediction update
    	// omit x = x
    	float k; // kalman gain
    	state->p = state->p + state->q;
    
    	// measurement update
    	k = state->p / (state->p + state->r);
    	state->x = state->x + k * (measurement - state->x);
    	state->p = (1 - k) * state->p;
    }
    
    void initKalmanAccel(float ax, float ay, float az)
    {
    // small jakub frame
    #define Q 0.0625		// process noise covariance
    #define	R 1.0			// measurement noise covariance
    #define P 0.22			// estimation error covariance
    	kalman_init(&kax, Q, R, P, ax);
    	kalman_init(&kay, Q, R, P, ay);
    	kalman_init(&kaz, Q, R, P, az);
    #undef Q
    #undef R
    #undef P
    }
    
    void initKalmanGyro(float gx, float gy, float gz)
    {
    
    // small jakub frame
    #define Q 1.0 		// process noise covariance
    #define	R 0.0625	// measurement noise covariance
    #define P 0.22		// estimation error covariance
    	kalman_init(&kgx, Q, R, P, gx);
    	kalman_init(&kgy, Q, R, P, gy);
    	kalman_init(&kgz, Q, R, P, gz);
    #undef Q
    #undef R
    #undef P
    }
    
    inline int kalman_filter_step(kalman_state* state, int16_t val)
    {
    	float measurement = (float) val;
    	kalman_update(state, measurement);
    	return (state->x + 0.5f);
    }
    
    void accKalmanFilterStep(int16_t accels[3])
    {
    	static int _init = 0;
    	if (!_init)
    	{
    		_init = 1;
    		initKalmanAccel(accels[0], accels[1], accels[2]);
    	}
    	else
    	{
    		accels[0] = kalman_filter_step(&kax, accels[0]);
    		accels[1] = kalman_filter_step(&kay, accels[1]);
    		accels[2] = kalman_filter_step(&kaz, accels[2]);
    	}
    }
    
    void gyroKalmanFilterStep(int16_t gyros[3])
    {
    	static int _init = 0;
    	if (!_init)
    	{
    		_init = 1;
    		initKalmanGyro(gyros[0], gyros[1], gyros[2]);
    	}
    	else
    	{
    		gyros[0] = kalman_filter_step(&kgx, gyros[0]);
    		gyros[1] = kalman_filter_step(&kgy, gyros[1]);
    		gyros[2] = kalman_filter_step(&kgz, gyros[2]);
    	}
    }
    Там нет ничего интересного кроме этой ф-ции (всего 5 строк):

    Код:
    void kalman_update(kalman_state* state, float measurement)
    {
    	// prediction update
    	// omit x = x
    	float k; // kalman gain
    	state->p = state->p + state->q;
    
    	// measurement update
    	k = state->p / (state->p + state->r);
    	state->x = state->x + k * (measurement - state->x);
    	state->p = (1 - k) * state->p;
    }
    В этом коде state->p, state->q и state->r есть КОНСТАНТЫ, которые не зависят ни от времени ни от данных. Они зависят только одна от другой. Потому k (или kalman gain), тоже КОНСТАНТА. Она обретает свое стабильное значение (как и state->p) спустя пару десятков итераций и больше не меняется. Если не верите и не хотите считать сами, то выведите значение k и/или state->p на debug MultiWiiConf и увидите.
    Потому что k есть КОНСТАНТА
    Код:
    state->x = state->x + k * (measurement - state->x);
    есть обыкновенный low-pass filter как и в MultiWii. Вот Вам и "фильтр Калмана" на одну ось...
    Я когда то решил поспорить с brm на эту тему, но увидил что с ним спорить бесполезно.

  19. #3816

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

  20. #3817

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от SVentas Посмотреть сообщение
    В этом коде state->p, state->q и state->r есть КОНСТАНТЫ, которые не зависят ни от времени ни от данных. Они зависят только одна от другой.
    Всё верно, это обычный ФВЧ .
    Цитата Сообщение от SergDoc Посмотреть сообщение
    фильтр определился с погрешностями датчика, подобрал для него константы (адаптировался) а дальше да low-pass filter но уже с подобраными коэффициентами.
    Неа, в том коде коэффициент от данных НИКАК не зависит, Сарунас верно подметил. Прошу прощения за невежество, но вроде как в коде нет оценки правильности подбора коэффициента и его корректировки.

  21. #3818

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

    рассмотрим другой пример:

    Код:
     float Q_angleX  =  0.001; 
        float Q_gyroX   =  0.003;  
        float R_angleX  =  0.03;  
    
        float x_angle = 0;
        float x_bias = 0;
        float PX_00 = 0, PX_01 = 0, PX_10 = 0, PX_11 = 0;	
        float dtX, yX, SX;
        float KX_0, KX_1;
    
      float kalmanCalculateX(float newAngle, float newRate,int looptime) {
        dtX = float(looptime)/1000;                                    // XXXXXXX arevoir
        x_angle += dtX * (newRate - x_bias);
        PX_00 +=  - dtX * (PX_10 + PX_01) + Q_angleX * dtX;
        PX_01 +=  - dtX * PX_11;
        PX_10 +=  - dtX * PX_11;
        PX_11 +=  + Q_gyroX * dtX;
        
        yX = newAngle - x_angle;
        SX = PX_00 + R_angleX;
        KX_0 = PX_00 / SX;
        KX_1 = PX_10 / SX;
        
        x_angle +=  KX_0 * yX;
        x_bias  +=  KX_1 * yX;
        PX_00 -= KX_0 * PX_00;
        PX_01 -= KX_0 * PX_01;
        PX_10 -= KX_1 * PX_00;
        PX_11 -= KX_1 * PX_01;
        
        return x_angle;
      }

  22. #3819

    Регистрация
    10.12.2013
    Адрес
    Люберцы
    Возраст
    33
    Сообщений
    168
    Цитата Сообщение от Drinker Посмотреть сообщение
    Дрон, ну че, был на ввц? Поведай публике вкратце че там интересного было?
    Не получилось поехать, семейные проблемы

  23. #3820

    Регистрация
    10.12.2013
    Адрес
    Люберцы
    Возраст
    33
    Сообщений
    168
    Цитата Сообщение от rual Посмотреть сообщение
    проГПС : это нормально от ублокса такую запись получить?
    Странно, не должен пропуски давать, может ублокс просто не передает координаты в этом пакете. Какой ублокс? А чем $GPRMC координаты не устраивают?

  24. #3821

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от djdron Посмотреть сообщение
    Странно, не должен пропуски давать, может ублокс просто не передает координаты в этом пакете.
    НМЕА именно в этом пакете координаты передаёт, и они там есть, когда приемнику хватает спутников чтоб местоположение своё определить, но если фикс пропадает в полях появляются пропуски ((( ублокс нео-м-0-0001

  25. #3822

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от rual Посмотреть сообщение
    Прошу прощения за невежество, но вроде как в коде нет оценки правильности подбора коэффициента и его корректировки.
    посмотри что тут творится? http://forum.rcdesign.ru/f123/thread...ml#post4787351 туда загоняется на сколько я понял угол с акселя (посчитаный) и угловая скорость с гиры... или опять развод?

    короче просчитал вручную две интерации, получается:
    x_bias(ошибка) выходит из нуля на третей интерации... а как работает надо запустить наверно и посмотреть - давно было
    Последний раз редактировалось SergDoc; 26.01.2014 в 23:24.

  26. #3823

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Разбор:
    должна быть фундаментальная матрица (данные натыканые пальцем в небо) - чего-то не хватает
    Код:
       float Q_angleX  =  0.001; 
        float Q_gyroX   =  0.003;  
        float R_angleX  =  0.03;
    матрица ковариаций
    Код:
        PX_00 +=  - dtX * (PX_10 + PX_01) + Q_angleX * dtX;
        PX_01 +=  - dtX * PX_11;
        PX_10 +=  - dtX * PX_11;
        PX_11 +=  + Q_gyroX * dtX;
    /////////////////////////////////////////////////////
    
        PX_00 -= KX_0 * PX_00;
        PX_01 -= KX_0 * PX_01;
        PX_10 -= KX_1 * PX_00;
        PX_11 -= KX_1 * PX_01;
    тут где-то запрятана матрица ошибок коэффициенты и собственно сам угол
    Код:
     yX = newAngle - x_angle;
        SX = PX_00 + R_angleX;
    KX_0 = PX_00 / SX;
        KX_1 = PX_10 / SX;
        x_angle +=  KX_0 * yX;
        x_bias  +=  KX_1 * yX;
    Ругайте что и как называется мог и перепутать

    не засунуть ли это в удержание высоты?
    вместо угла по гире подсунуть скорость с акселя, а вместо угла по акселю скорость с баро?
    Последний раз редактировалось SergDoc; 27.01.2014 в 00:00.

  27. #3824

    Регистрация
    13.01.2014
    Адрес
    Vilnius
    Возраст
    39
    Сообщений
    7
    Цитата Сообщение от rual Посмотреть сообщение
    Прошу прощения за невежество, но вроде как в коде нет оценки правильности подбора коэффициента и его корректировки.
    Совершенно верно.
    Далее о другом примере:
    Код:
      float Q_angleX  =  0.001;
      float Q_gyroX   =  0.003;
      float R_angleX  =  0.03;
       
      float x_angle = 0;
      float x_bias = 0;
      float PX_00 = 0, PX_01 = 0, PX_10 = 0, PX_11 = 0;
      float dtX, yX, SX;
      float KX_0, KX_1;
       
      float kalmanCalculateX(float newAngle, float newRate,int looptime)
      {
          dtX = float(looptime)/1000;
          x_angle += dtX * (newRate - x_bias);
          PX_00 +=  - dtX * (PX_10 + PX_01) + Q_angleX * dtX;
          PX_01 +=  - dtX * PX_11;
          PX_10 +=  - dtX * PX_11;
          PX_11 +=  + Q_gyroX * dtX;
       
          yX = newAngle - x_angle;
          SX = PX_00 + R_angleX;
          KX_0 = PX_00 / SX;
          KX_1 = PX_10 / SX;
       
          x_angle +=  KX_0 * yX;
          x_bias  +=  KX_1 * yX;
          PX_00 -= KX_0 * PX_00;
          PX_01 -= KX_0 * PX_01;
          PX_10 -= KX_1 * PX_00;
          PX_11 -= KX_1 * PX_01;
       
          return x_angle;
      }
    Это почти тоже самое что было ранее (наверное еще один „гениальный Калмановский“ код brm?). Ладно . Посмотрите где в коде меняются Q_angleX, Q_gyroX и R_angleX. Нигде! Значит это константы.
    А теперь посмотрите где в коде PX_00, PX_01, PX_10, PX_11, SX, KX_0 и KX_1 зависит от x_angle или newRate или newAngle или x_bias т.е. от данных. Опять нигде! Значит и это будут константы (не совсем, так как они зависят от времени, см. дальше).
    В этом коде добавлена зависимость ФВЧ от времени (если sampling rate непостоянный). Вот и все.
    Я хочу сказать что матричные элементы PX, SX и KX зависит только от констант Q_angleX, Q_gyroX, R_angleX ну и от dtX. От данных они НЕ ЗАВИСЯТ! Здесь нет прогноза данных и нет ни какой физической или мат. модели процесса. И быт ни может, потому что нельзя предсказать ни гиро ни акселя из их же самих предыдущих данных.
    SegDoc, eсли что не ясно, то посмотрите тот код, что был ранее. Он проще (только 5 строчек ).

  28. #3825

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от SVentas Посмотреть сообщение
    Q_angleX, Q_gyroX
    это погрешности датчиков... они и есть константы и будут зависеть только от датчиков
    далее да согласен, и момент, угол с акселя также можно назвать константой, он ничем не корректируется и не проверяется....

  29. #3826

    Регистрация
    13.01.2014
    Адрес
    Vilnius
    Возраст
    39
    Сообщений
    7
    Цитата Сообщение от SergDoc Посмотреть сообщение
    это погрешности датчиков... они и есть константы и будут зависеть только от датчиков
    далее да согласен, и момент, угол с акселя также можно назвать константой, он ничем не корректируется и не проверяется....
    Тогда зачем надо делать такую кучю вычислений, когда можно одич раз вычислить КХ и применить простую формулу low-pass фильтра?
    Ответ я знаю - чтобы написать что это "фильтр Калмана". Но это смешно .
    P. S.
    Это не Вы смешной, это автор кода .

  30. #3827

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от SVentas Посмотреть сообщение
    это автор кода
    А у меня в закромах ещё парочка таких примеров где-то валяется надо поискать

    Так вот сижу читаю кучу статей разных, а везде такое вот

  31. #3828

    Регистрация
    13.01.2014
    Адрес
    Vilnius
    Возраст
    39
    Сообщений
    7
    Цитата Сообщение от SergDoc Посмотреть сообщение
    далее да согласен, и момент, угол с акселя также можно назвать константой, он ничем не корректируется и не проверяется....
    У меня впечатление что Вы меня не понимаете. Угол с акселя x_angle и x_bias это не константы. KX_0 и KX_1- константы. Вот их не надо все время вычеслять. Ладно, завтра или после завтра я вам напишу простой пример. Тогда надеюсь что будет ясно .

  32. #3829

    Регистрация
    10.12.2013
    Адрес
    Люберцы
    Возраст
    33
    Сообщений
    168
    Цитата Сообщение от rual Посмотреть сообщение
    НМЕА именно в этом пакете координаты передаёт, и они там есть, когда приемнику хватает спутников чтоб местоположение своё определить, но если фикс пропадает в полях появляются пропуски
    Да наверное будут пропуски, можно в пакете $GPGGA,143451.20,,,,,0,0099.99,,,,,,*62 искать выделенный байт и смотреть позишнфикс или нет и игнорировать координаты если отсутствует, но как-то это муторно.
    NMEA еще передает координаты в пакете
    $GPRMC,083559.00,A,4717.11437,N,00833.91522,E,0.004,77.52,091202,,,A*57
    $GPRMC,hhmmss,status,latitude,N,longitude,E,spd,cog,ddmmyy,mv,mvE,mode*cs<CR><LF>
    там статус позишнфикс идет перед координатами, проще его найти в пакете, даже если при отсутствии спутников будут пропуски координат и просто игнорировать их.

  33. #3830
    Забанен
    Регистрация
    12.01.2011
    Адрес
    Moscow
    Возраст
    43
    Сообщений
    952
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Armazila там была чёт очень смахивающая на Дринкер-пилот STM32F103RE CPU (32bit ARM Cortex M3, 72MHz, 512K flash. LQFP 64 10x10mm packages) L3GD20 2000 degrees/second 3-axis digital gyro LSM303DLHC 3-axis digital accelerometer and magnetometer LPS331AP digital MEMS pressure sensor Андрей, авторские права бы обсудить, а?
    Вздор. Дринкер-пелот на стм32f4, аксель и гира такие-же, баро мс5611 и гпс навиа 8080... Мало чего общего.

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

  34. #3831

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от SVentas Посмотреть сообщение
    Угол с акселя x_angle
    он ничем не корректируется!!! он берётся как есть с акселя, не важно правильный он или нет - вот я о чём...

    Цитата Сообщение от SVentas Посмотреть сообщение
    я вам напишу простой пример.
    Это было бы очень замечательно

    Цитата Сообщение от Drinker Посмотреть сообщение
    Более того, там если код посмотреть затасканный до дыр алгоритм иму студента магвика.
    код Вия, в реинкорнации Таймкопа....

  35. #3832
    Забанен
    Регистрация
    12.01.2011
    Адрес
    Moscow
    Возраст
    43
    Сообщений
    952
    Цитата Сообщение от SergDoc Посмотреть сообщение
    код Вия, в реинкорнации Таймкопа....
    Код может и вия, но алгоритьм иму магвика.

  36. #3833

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

    Кстати по EKF https://github.com/PX4/Firmware/blob...r_ekf_main.cpp
    мог бы попробовать и подлетнуть на этом, но там нет трёхи и я так и не понял как у них микшер устроен
    Последний раз редактировалось SergDoc; 27.01.2014 в 12:59.

  37. #3834
    Забанен
    Регистрация
    12.01.2011
    Адрес
    Moscow
    Возраст
    43
    Сообщений
    952
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Да какая разница, тоже самое, чем я занимался в позапрошлом году на 103-м датчики мучал на этом же кодятнике
    Ну это примитивно как-то.

    А че щас в проекте происходит? Какие-то околонаучные дебаты идут.

  38. #3835

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от SergDoc Посмотреть сообщение
    мог бы попробовать и подлетнуть на этом, но там нет трёхи и я так и не понял как у них микшер устроен
    Он тоже не учитывает полноту налитого стакана ))) В том смысле, что не учтены абсолютные координаты и высота.
    /* state vector x has the following entries [ax,ay,az||mx,my,mz||wox,woy,woz||wx,wy,wz]' */
    матрица маленькая, нет координат ГПС и баро и нет динамики по ГПС (курс, скорость) и баро. И кроме того, как мне кажется должна быть ещё моделька атмосферы, вектор сноса от внешних сил (ветра).

  39. #3836

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Копни дальше это только положение. Есть и удержание позиции https://github.com/PX4/Firmware/blob.../KalmanNav.cpp
    там столько параметров можно крутить через станцию - волосы дыбом встают и когда я её себе запускал - так и не добился толку - плавало всё мама не горюй, возможно из-за того что мы датчики разные пользуем, там же (PX4) тоже MPU не основной датчик...

    Цитата Сообщение от Drinker Посмотреть сообщение
    Ну это примитивно как-то.
    Когда сам для себя балуешся это как бы нормально, а вот когда на продажу и по загнутым ценникам - это уже не смешно ну конечно комманда разработчиков же работала - кушать хочецца. Так ух купили бы чё-нить дорогое (скинулись, они же команда) распилили и содрали, а так баловство....

    Цитата Сообщение от Drinker Посмотреть сообщение
    А че щас в проекте происходит?
    у меня каша в голове, пытаюсь математику понять и что самое обидное, раньше то получалось....
    Последний раз редактировалось SergDoc; 27.01.2014 в 14:11.

  40. #3837
    Забанен
    Регистрация
    12.01.2011
    Адрес
    Moscow
    Возраст
    43
    Сообщений
    952
    Цитата Сообщение от SergDoc Посмотреть сообщение
    у меня каша в голове, пытаюсь математику понять и что самое обидное, раньше то получалось....
    Не пугай общественность...Врятли можно доверять таким поделкам, если автор признаецца что сам не понимает что дерет. Лучше заявлять мол все понятно и ежу, ну или посмотрел, улучшил, и нет теперь равных моему мегакоду! Вот как надо.

  41. #3838

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Копни дальше это только положение. Есть и удержание позиции
    Нет, Сергей, это не то... Нормальный фильтр должен объединять все вместе датчики вместе, из песни слова не выкинешь, если что то не учтено, значит система нормально будет работать ТОЛЬКО в особых условиях, типа: на месте не крутись, по кругу не летай, бочки не делай. Без получения внутри фильтра текущего положения по ГПС (или другого абсолютного датчика положения) невозможно правильно разнести линейные ускорения и ошибку отклонения искусственного горизонта. Интегралы угловой и линейный надо постоянно проверять и корректировать, иначе "утекут"...

  42. #3839

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

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

    Цитата Сообщение от rual Посмотреть сообщение
    Без получения внутри фильтра текущего положения по ГПС (или другого абсолютного датчика положения) невозможно правильно разнести линейные ускорения и ошибку отклонения искусственного горизонта.
    Ни в одном проекте этого нет везде эти понятия разделены, а также обычно и удержание высоты отделено....
    Вопрос в другом, а как будет себя вести, предполагаемый пока, алгоритм без GPS?
    Последний раз редактировалось SergDoc; 27.01.2014 в 15:38.

  43. #3840
    Забанен
    Регистрация
    12.01.2011
    Адрес
    Moscow
    Возраст
    43
    Сообщений
    952
    Вернулся, крутилки. Было бы не плохо если не на самой плате иметь крутилки, то хотябы три адс вывести для подключения внешнего блока крутилок. Мало ли че нужно подстраивать - от пидов до приведения камеры к реальному горизонту, или частотой пвм на регули менять. Практика показала что крутилка незаменима для игр с альтхольдом для каждой конкретной конструкции коптера (один тяжелее другой легче и т.д)

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

Похожие темы

  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

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

Ваши права

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