ArduCopter Mega: порт на обычную Arduino (тестим)

Ar2r
Musgravehill:

Подскажите, почему во второй половине графика сонар показывает 100-150см, а баро -100 -150см

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

Musgravehill:

Красный график - итоговая высота.

шикарно. вот бы теперь понять, как это все в прошивку всунуть =)

Musgravehill
Ar2r:

шикарно. вот бы теперь понять, как это все в прошивку всунуть =)

Формулы просты до безобразия!

Y = усредненная высота = b*baro + s*sonar, где s=0.65 (потому что высота менее 2х метров =>верим сонару), а весовой коэффициент b=(1-s) = (1-0.65) = 0.35.


 if ($altitude < 2)
    {
        $s=0.65;  $b=1-$s;
    }
 else
    {
       $s=0;  $b=1;
    }

$altitude = $b*$baro + $s*$sonar;

Y = усредненную высоту подаем на фильтр:
//four stage low pass filter
Z[n] = выход фильтра = итоговая высота.
и Y[n] - вход на n измерении.

//Z[n] = a0*Y[n] + b1*Z[n-1] + b2*Z[n-2] + b3*Z[n-3] + b4*Z[n-4]
//x - главный коэффициент фильтра. При х=1 перестают учитываться свежие данные, но максимально влияют предыдущие выходы фильтра. Я задал х = 0.7
Остальные коэффициенты рассчитываются так:
//a0 = (1-x)^4 = 0,0081
//b1 = 4x =2,8
//b2 = -6 * x^2 =-2,94
//b3 = 4 * x^3 =1,372
//b4 = - x^4 =-0,2401
Т.е. используется 1 свежее значение с датчика (a0*Y[n]), причем, коэффициент а0 очень мал. И 4 прошлых выхода фильтра (bi*Z[n-i]). Таким образом, фильтр сильно сглаживает, потому что малый коэффициент а0 не позволяет выходу Zn быстро измениться.

narod.ru/disk/…/bob_lpf_4_stage.xls.html Excel файл. Можно править коэффициент фильтрации Х и вес сонара S. Исходные данные - ваши.

LeonVS

Хм… в этой прошивке отвалился ГПС 😦 У кого блек вортекс, как прикрутить?

Ar2r
LeonVS:

в этой прошивке отвалился ГПС

GPS протокол правильно выставлен в конфиге?

LeonVS

Там же авто определение, или я что то путаю…?

#if GPS_PROTOCOL == GPS_PROTOCOL_AUTO
AP_GPS_Auto g_gps_driver(&Serial2, &g_gps);

#elif GPS_PROTOCOL == GPS_PROTOCOL_NMEA
AP_GPS_NMEA g_gps_driver(&Serial2);

#elif GPS_PROTOCOL == GPS_PROTOCOL_SIRF
AP_GPS_SIRF g_gps_driver(&Serial2);

#elif GPS_PROTOCOL == GPS_PROTOCOL_UBLOX
AP_GPS_UBLOX g_gps_driver(&Serial2);

#elif GPS_PROTOCOL == GPS_PROTOCOL_MTK
AP_GPS_MTK g_gps_driver(&Serial2);

#elif GPS_PROTOCOL == GPS_PROTOCOL_MTK16
AP_GPS_MTK16 g_gps_driver(&Serial2);

#elif GPS_PROTOCOL == GPS_PROTOCOL_NONE
AP_GPS_None g_gps_driver(NULL);

#else
#error Unrecognised GPS_PROTOCOL setting.
#endif // GPS PROTOCOL

Прошивка из архива, моими кривыми руками не тронутая 😃 В каком файле это крутится?

Romb89

В APM_Config.h нужно выставить #define GPS_PROTOCOL GPS_PROTOCOL_NMEA

LeonVS

Прописал… в планере все равно пишет No GPS…
Может авто поставить?

Romb89

Попробуй авто или ublox. Но насколько я помню Олег допиливал автоопределение, чтобы ublox нормально определялся, а в последней прошивке этих изменений нету.

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

tusik
LeonVS:

все равно пишет No GPS…

Можно еще со скоростью порта поиграться. У меня заработал только на 4800

Aven

Romb89, есть идеи, насчет кракозябров gps в консоли? 😃

Alex_from_Israel
Musgravehill:

Формулы просты до безобразия!

Y = усредненная высота = b*baro + s*sonar, где s=0.65 (потому что высота менее 2х метров =>верим сонару), а весовой коэффициент b=(1-s) = (1-0.65) = 0.35.

if ($altitude < 2)
   {
       $s=0.65;  $b=1-$s;
   }
else
   {
      $s=0;  $b=1;
   }

$altitude = $b*$baro + $s*$sonar;

Y = усредненную высоту подаем на фильтр:
//four stage low pass filter
Z[n] = выход фильтра = итоговая высота.
и Y[n] - вход на n измерении.

//Z[n] = a0*Y[n] + b1*Z[n-1] + b2*Z[n-2] + b3*Z[n-3] + b4*Z[n-4]
//x - главный коэффициент фильтра. При х=1 перестают учитываться свежие данные, но максимально влияют предыдущие выходы фильтра. Я задал х = 0.7
Остальные коэффициенты рассчитываются так:
//a0 = (1-x)^4 = 0,0081
//b1 = 4x =2,8
//b2 = -6 * x^2 =-2,94
//b3 = 4 * x^3 =1,372
//b4 = - x^4 =-0,2401
Т.е. используется 1 свежее значение с датчика (a0*Y[n]), причем, коэффициент а0 очень мал. И 4 прошлых выхода фильтра (bi*Z[n-i]). Таким образом, фильтр сильно сглаживает, потому что малый коэффициент а0 не позволяет выходу Zn быстро измениться.

narod.ru/disk/…/bob_lpf_4_stage.xls.html Excel файл. Можно править коэффициент фильтрации Х и вес сонара S. Исходные данные - ваши.

У меня по ссылке скачивается Яндекс-Бар. Где искать файл для Екселя?

Musgravehill
Alex_from_Israel:

У меня по ссылке скачивается Яндекс-Бар. Где искать файл для Екселя?

  1. Вводите капчу
    2.Появляется страница с содержимым:
    Чтобы скачать файл, нажмите на ссылку:
    хттп:/narod.ru/disk/******/bob_lpf_4_stage.xls - загрузится мой эксель-файл.

Установить Яндекс.Бар. - снимите галку.

LeonVS

Все скорости перепробовал… Ощущение что вообще не чего не меняется…
При команде gps, в терминале идут точки до бесконечности…
в rawgps выдает всякую чушь из кучи знаков вопроса и xxxx…
Причем от изменения скорости в APM_Config.h совершенно не чего не меняет… В общем странная не понятная хуня 😃

Alex_from_Israel
Musgravehill:
  1. Вводите капчу
    2.Появляется страница с содержимым:
    Чтобы скачать файл, нажмите на ссылку:
    хттп:/narod.ru/disk/******/bob_lpf_4_stage.xls - загрузится мой эксель-файл.

Установить Яндекс.Бар. - снимите галку.

Что такое капча? Прошу прощения, но у нас тут русский язык несколько своеобразный.

Covax

Вот эту цифры надо напечатать в поле пониже, это и есть капча

Romb89
Aven:

Romb89, есть идеи, насчет кракозябров gps в консоли?

Как-то даже и идей нету. Там должна выдаваться сформированная строка с координатами. Откуда там могут браться каракули эти, сложно сказать. Нужно чтобы ещё кто-нибудь у себя потестил, может тогда чего прояснится.
Ещё можно попробовать залить это: libraries/ AP_GPS/ examples/ GPS_Ublox_i2c_test/ GPS_Ublox_i2c_test.pde, хотя скорее всего то же самое будет.

evgenyl
Romb89:

Как-то даже и идей нету. Там должна выдаваться сформированная строка с координатами. Откуда там могут браться каракули эти, сложно сказать. Нужно чтобы ещё кто-нибудь у себя потестил, может тогда чего прояснится.
Ещё можно попробовать залить это: libraries/ AP_GPS/ examples/ GPS_Ublox_i2c_test/ GPS_Ublox_i2c_test.pde, хотя скорее всего то же самое будет.

Вечером по тестю, скажу что у меня.

Aven
Romb89:

Как-то даже и идей нету. Там должна выдаваться сформированная строка с координатами. Откуда там могут браться каракули эти, сложно сказать. Нужно чтобы ещё кто-нибудь у себя потестил, может тогда чего прояснится.
Ещё можно попробовать залить это: libraries/ AP_GPS/ examples/ GPS_Ublox_i2c_test/ GPS_Ublox_i2c_test.pde, хотя скорее всего то же самое будет.

А вот и нет! Все работает!

GPS Ublox_I2C library test
No fix
No fix
No fix
No fix
No fix
No fix
No fix
No fix
No fix
No fix
No fix

Lat: 0.0000000 Lon: 53.6492270 Alt: 0.00m GSP: 0.06m/s CoG: 0 SAT: 0 TIM: 7410460
Lat: 0.0000000 Lon: 53.6492270 Alt: 0.00m GSP: 0.23m/s CoG: 0 SAT: 0 TIM: 7410460
Lat: 63.5679440 Lon: 53.6492270 Alt: 137.20m GSP: 0.23m/s CoG: 0 SAT: 3 TIM: 7410460
Lat: 63.5679440 Lon: 53.6492270 Alt: 137.20m GSP: 0.08m/s CoG: 1 SAT: 3 TIM: 7410480
Lat: 63.5679440 Lon: 53.6492270 Alt: 137.20m GSP: 0.31m/s CoG: 1 SAT: 3 TIM: 7410480
Lat: 63.5679440 Lon: 53.6492270 Alt: 136.30m GSP: 0.31m/s CoG: 1 SAT: 3 TIM: 7410480
Lat: 63.5679440 Lon: 53.6492270 Alt: 136.30m GSP: 0.01m/s CoG: 1 SAT: 3 TIM: 7410500
Lat: 63.5679440 Lon: 53.6492270 Alt: 136.30m GSP: 0.05m/s CoG: 1 SAT: 3 TIM: 7410500

alexTAG

У меня блек вортекс тоже перестал работать ГРС , в терминале пишет одни нули и не находит спутники. До перепрошивки была B8 от автора.

Ar2r
Romb89:

Откуда там могут браться каракули эти, сложно сказать

Каракули могут быть из-за не правильно вбыранного GPS протокола. У мего протокол MTK16, а выбирал NMEA и были каракули и мусор.

iBat
Romb89:

В APM_Config.h нужно выставить #define GPS_PROTOCOL GPS_PROTOCOL_NMEA

У Black Vortex стоит UBLOX вроде как.