ArduCopter Mega: порт на обычную Arduino (тестим)
Подскажите, почему во второй половине графика сонар показывает 100-150см, а баро -100 -150см
это барометр не защищенный от потоков ветра. по показаниям сонара видно, что быстро опускал и поднимал плату. если плату с барометром поместить в контейнер - будут другие показатели. барометр не любит даже воздух от движения рук рядом с ним =)
Красный график - итоговая высота.
шикарно. вот бы теперь понять, как это все в прошивку всунуть =)
шикарно. вот бы теперь понять, как это все в прошивку всунуть =)
Формулы просты до безобразия!
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. Исходные данные - ваши.
Хм… в этой прошивке отвалился ГПС 😦 У кого блек вортекс, как прикрутить?
в этой прошивке отвалился ГПС
GPS протокол правильно выставлен в конфиге?
Там же авто определение, или я что то путаю…?
#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
Прошивка из архива, моими кривыми руками не тронутая 😃 В каком файле это крутится?
В APM_Config.h нужно выставить #define GPS_PROTOCOL GPS_PROTOCOL_NMEA
Прописал… в планере все равно пишет No GPS…
Может авто поставить?
Попробуй авто или ublox. Но насколько я помню Олег допиливал автоопределение, чтобы ublox нормально определялся, а в последней прошивке этих изменений нету.
Фууух, наконец-то разобрался, почему у меня компас работать не хотел.
Причиной всему являлась антенна гпс. У неё в корпусе два мощных магнита, чтобы крепить её на металлические поверхности. Вот эти магниты и создавали наводки на компас.
все равно пишет No GPS…
Можно еще со скоростью порта поиграться. У меня заработал только на 4800
Romb89, есть идеи, насчет кракозябров gps в консоли? 😃
Формулы просты до безобразия!
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. Исходные данные - ваши.
У меня по ссылке скачивается Яндекс-Бар. Где искать файл для Екселя?
У меня по ссылке скачивается Яндекс-Бар. Где искать файл для Екселя?
- Вводите капчу
2.Появляется страница с содержимым:
Чтобы скачать файл, нажмите на ссылку:
хттп:/narod.ru/disk/******/bob_lpf_4_stage.xls - загрузится мой эксель-файл.
Установить Яндекс.Бар. - снимите галку.
Все скорости перепробовал… Ощущение что вообще не чего не меняется…
При команде gps, в терминале идут точки до бесконечности…
в rawgps выдает всякую чушь из кучи знаков вопроса и xxxx…
Причем от изменения скорости в APM_Config.h совершенно не чего не меняет… В общем странная не понятная хуня 😃
- Вводите капчу
2.Появляется страница с содержимым:
Чтобы скачать файл, нажмите на ссылку:
хттп:/narod.ru/disk/******/bob_lpf_4_stage.xls - загрузится мой эксель-файл.Установить Яндекс.Бар. - снимите галку.
Что такое капча? Прошу прощения, но у нас тут русский язык несколько своеобразный.
Вот эту цифры надо напечатать в поле пониже, это и есть капча
Romb89, есть идеи, насчет кракозябров gps в консоли?
Как-то даже и идей нету. Там должна выдаваться сформированная строка с координатами. Откуда там могут браться каракули эти, сложно сказать. Нужно чтобы ещё кто-нибудь у себя потестил, может тогда чего прояснится.
Ещё можно попробовать залить это: libraries/ AP_GPS/ examples/ GPS_Ublox_i2c_test/ GPS_Ublox_i2c_test.pde, хотя скорее всего то же самое будет.
Как-то даже и идей нету. Там должна выдаваться сформированная строка с координатами. Откуда там могут браться каракули эти, сложно сказать. Нужно чтобы ещё кто-нибудь у себя потестил, может тогда чего прояснится.
Ещё можно попробовать залить это: libraries/ AP_GPS/ examples/ GPS_Ublox_i2c_test/ GPS_Ublox_i2c_test.pde, хотя скорее всего то же самое будет.
Вечером по тестю, скажу что у меня.
Как-то даже и идей нету. Там должна выдаваться сформированная строка с координатами. Откуда там могут браться каракули эти, сложно сказать. Нужно чтобы ещё кто-нибудь у себя потестил, может тогда чего прояснится.
Ещё можно попробовать залить это: 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
У меня блек вортекс тоже перестал работать ГРС , в терминале пишет одни нули и не находит спутники. До перепрошивки была B8 от автора.
Откуда там могут браться каракули эти, сложно сказать
Каракули могут быть из-за не правильно вбыранного GPS протокола. У мего протокол MTK16, а выбирал NMEA и были каракули и мусор.
В APM_Config.h нужно выставить #define GPS_PROTOCOL GPS_PROTOCOL_NMEA
У Black Vortex стоит UBLOX вроде как.