ArduCopter Mega: порт на обычную Arduino (тестим)
Test6 поставил, а как GPS проверять?
По команде gps в консоль идут кракозябры, причем прервать вывод нельзя, только ресетом.
По rawgps ничего не выдает.
Через некоторое время начинает мигать светодиод возле UBLOX модуля, это значит спутники увидел?
По rawgps ничего не выдает.
Да. Это не работает пока. Просто там в коде идет напрямую чтение из Serial2.
Через некоторое время начинает мигать светодиод возле UBLOX модуля, это значит спутники увидел?
Это значит, что он определил местоположение.
По команде gps в консоль идут кракозябры, причем прервать вывод нельзя, только ресетом.
А вот это интересно. Сделай пожалуйста скриншот этого.
Попробуйте залить этот код ardupirates.googlecode.com/svn/…/i2c_spy.pde
GPS модуль должен определиться как “unknown device”. И посмотрите какой адрес там будет.
С предыдущей страницы взял данные по сонару и баро. В екселе сделал 2 формулы: усреднение высоты с весовыми коэффициентами и рекурсивный фильтр 4 порядка. Красный график - итоговая высота.
Усредненная высота = b*baro + s*sonar, где s=0.65 (потому что высота менее 2х метров =>верим сонару), а весовой коэффициент b=(1-s) = (1-0.65) = 0.35. Усредненная высота проходит через рекурсивный фильтр.
Можно варьировать весовые коэффициенты средней высоты по высоте коптера:
<3 метров: s = 0.7 b=0.3 g=0 (по GPS)
>3 метров: s = 0 b=0.8 g=0.2
I2C devices detector
=================================
Detected device addr: 0x3C HMC5883/43 (compass)
Detected device addr: 0x82 BMA180 (accel) Allinone board
Detected device addr: 0x84 unknown device!
Detected device addr: 0xD0 ITG3200 (gyro)
Detected device addr: 0xEE BMP085 (baro)
=================================
Cycle is over
Сегодня более детально оттестил ртл. Еще раз скажу - работает. Вот видео.
Летал в сильный ветер. Это был третий или четвертый возврат. Над головой выключил ртл и рулил руками - боялся влетит в куст. Ветер коптер держит хорошо, но когда летишь против ветра сильно подымается вверх, приходится сбрасывать газ. Лойтер не проверил, при попытке привести коптер к ногам в ветер (поработал на публику. блин) сломал пропеллер, а запасного не было
Подскажите, почему во второй половине графика сонар показывает 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 совершенно не чего не меняет… В общем странная не понятная хуня 😃