ArduCopter Mega: порт на обычную Arduino (тестим)
в консоле самой Arduino IDE
в общем у меня там показывает так же как в планете… залил multiwii - там вроде нормально компас показывает, видимо косяк в коде =(
В планере, когда показывается местоположение коптера на карте, один луч - синий. Это что, перед или зад коптера? Если перед, то у меня кажется правильно показывает.
Но тогда не понятно, что с лойтер такое. По его поведению очень похоже на неправильную работу компаса. Коптер не держится в точке, а улетает от неё с всё увеличивающимся креном.
Если перед, то у меня кажется правильно показывает.
а когда крутите - на карте так же вращается? т.е. если плавно крутить, то по кругу проходит или перескакивает?
какая прошивка? что показывает CLI->setup->compass?
а улетает от неё с всё увеличивающимся креном.
Попробуй отключить моторы, подключи коптер к планеру, открой окно радио, включи режим лойтер и посмотри уровни сигнала на двигателях. По идее, уровни должны быть примерно одинаковые.
а когда крутите - на карте так же вращается? т.е. если плавно крутить, то по кругу проходит или перескакивает?
Прошивка 38. Сейчас ещё раз проверил, всё-таки есть касяк какой-то.
Ставлю его параллельно стене, на карте показывает всё абсолютно верно. Потом разворачиваю его на 180 градусов, в планере разворачивается где-то на 225 градусов и оказывается под 45 к стене, хотя в реале стоит параллельно.
Попробуй отключить моторы, подключи коптер к планеру, открой окно радио, включи режим лойтер и посмотри уровни сигнала на двигателях. По идее, уровни должны быть примерно одинаковые.
Это нужно будет в поле проверить, а то дома сигнал жпс слабый и он постойнно куда-то скачет на карте. И соответственно в уровнях на движки полный хаос.
в уровнях на движки полный хаос
У меня в квартире на движках уровни почти не меняются. А если
улетает от неё с всё увеличивающимся креном.
то это будет заметно. Для примера на карте укажи точку правой кнопкой мыши, скажи лететь туда и посмотри на моторы
обновил код (только svn пока, утром потестирую, если работает, то намутим архивчик), перелил библиотеку компаса из 2.0.38 (судя по многочисленным видео с AUTO RTL LOITER, компас там работает)
немного потестил, вроде и правда работает, только declination хочется руками подобрать - чуток врет, градусов на 5-10
только svn пока
А как этой свн пользоваться? Объясните ламеру
А как этой свн пользоваться?
хз как винде =) но имхо надо скачать какой нибудь SVN клиент под винду и забить туда сливание кода по ссылке megapirateng.googlecode.com/svn/branches
вообще надо бы потестить, вот файлики на обновление (чтобы всё не тянуть)
конфиги: dl.dropbox.com/u/…/mpng_2.0.40_test3_magfix.zip
библиотека: dl.dropbox.com/…/mpng_2.0.40_test3_magfix_AP_Compa…
но лучше SVN юзать - не очень удобно под каждое тестируемое изменение делать новый архив
там кстаии еще обновление с программным триммированием аппы, по идее можно больше не гемороится с тримирование на самой аппе
как будет хотябы еще 2 подтверждения что компас показывает как надо - можно будет тестить =)
еще есть нехорошее предчувствие что может сломаться удержание курса, но опять НАДО ТЕСТИТЬ
А как этой свн пользоваться? Объясните ламеру
- Устанавливаем TortoiseSVN
- Создаем какую нить папку
- вызываем контекстное меню на папке, и там выбираем “SVN Checkout”, в окне, указываем URL Repository:
Для версии 2.0.40 - http://megapirateng.googlecode.com/svn/branches/2.0.40
Для версии 2.0.39 - http://megapirateng.googlecode.com/svn/trunk/ - Жмем OK
В дальнейшем, что бы получить последнюю версию исходников, выбираем SVN Update
2.0.39 лучше не использовать - там тот же косяк с компасом должен быть, да и вообще заброшено в виду пиления 2.0.40 =)
кстаи Норберт (kinderkram) положительно отзывается о 2.0.42
так что если щас проблема с компасом решится, надо портировать
щас проблема с компасом решится
Щас затещу…
тут у народа красивые графики работы барометра с сонаром (кликабельно):
тоже такие хочу
Щас затещу…
setup-offsets попробуй не делать и посмотреть как себя компас ведет… если ЯВНО лагает (пропускает вращение, а не отклонаяется на несколько градусов от реального положения), то попробуй cli-setup-offsets (чтобы сбросить cli-setup-offsets c)
хз по картинкам =) я GPS подлкючал и сравнивал положение самолетика (у меня в виртуалке новая версия повисает, там походу с directx теперь), показывал адекватно, но со смещением (ощущение что неверно было как раза на выставленный declination)
еще рекомендую сначало почистить все значения: cli-setup-erase, потом пару раз перезгрузить платку и потом посмотреть чего и как
тут у народа красивые графики работы барометра с сонаром (кликабельно):
а в чем они их получили? В Планере? У меня в планере все графики с какими то жирными линиями… совсем некрасивые 😃
это логи с оригинального ардукоптера… можно попробовать у нас в CLI добавить показание баро и сонара сразу и потом в офис/опенофис/гуглодокс забить и посмотреть
хз по картинкам
На двух последних картинках поволот на 180 градусов, а если посмотреть на верхний ряд циферок (градусы?) то врятли наберется 40
опа… а чето в SVN не залились файлы то новые от компаса? 0_0
как обновить список файлов для закачки?
как обновить список файлов для закачки?
В смысле? Удаляешь файл и заливаешь по новой 😃
Кстати, а для чего вообще нужно делать setup->compass offsets? Я так понимаю, что компас калибруется автоматом, во время запуска коптера (или полета)
не, там новые файлы добавились, он их не обновил… но щас нашел куда тыркнуть =) чуть позже залью
а еще меня вот этот код смущает:
if(baro_alt < 1000){
#if SONAR_TILT_CORRECTION == 1
// correct alt for angle of the sonar
float temp = cos_pitch_x * cos_roll_x;
temp = max(temp, 0.707);
sonar_alt = (float)sonar_alt * temp;
#endif
scale = (sonar_alt - 400) / 200;
scale = constrain(scale, 0, 1);
current_loc.alt = ((float)sonar_alt * (1.0 - scale)) + ((float)baro_alt * scale) + home.alt;
}else{
current_loc.alt = baro_alt + home.alt;
}
высота барометра отдается в сантиметрах, т.е. к барометру, поключится сонар на высотее менее 1000 см (10 метров!) дальше какое то математическое кунгфу
у оригинального ардукоптера сонар до 10 метров прошибает?
в оригинальном ардукоптере (в сантиметрах же)
// convert analog value to distance in cm (using child implementation most likely)
raw_value = convert_raw_to_distance(raw_value);
и при этом границы от 20 см до 7 метров (наш дальномер в лучшем случае 5 метров, а в реальности метра 2 только стабильно)
#define AP_RANGEFINDER_MAXSONARXL_MIN_DISTANCE 20
#define AP_RANGEFINDER_MAXSONARXL_MAX_DISTANCE 700
и где задается SONAR_TILT_CORRECTION=1? вроде не видел такого раньше тут
Я так понимаю, что компас калибруется автоматом, во время запуска коптера (или полета)
хз… у меня нормально показывает только если не калибровать вообще =) но вернул на всякий случай