Специальные цены   новые товары
+ Ответить в теме
Страница 76 из 312 ПерваяПервая ... 66 74 75 76 77 78 86 ... ПоследняяПоследняя
Показано с 3,001 по 3,040 из 12469

Автопилот ArduPilot с открытым программным обеспечением

Тема раздела Полеты по камере, телеметрия в категории Cамолёты - Общий; Сообщение от tusik Подскажите, есть ли прошивка Ардупилота для полета на планере в термиках. Где-то читал, что на рцгрупс кто-то ...

  1. #3001

    Регистрация
    07.01.2012
    Адрес
    Quebec
    Возраст
    67
    Сообщений
    1,864
    Цитата Сообщение от tusik Посмотреть сообщение
    Подскажите, есть ли прошивка Ардупилота для полета на планере в термиках. Где-то читал, что на рцгрупс кто-то делал, но найти не могу


    Француз Jean-Louis Naudin занимался этим несколько лет назад
    Вот линк на его блог. Крутите вниз там все и найдете
    http://diydrones.com/profile/JeanLouisNaudin)'s

    Цитата Сообщение от hobbyser Посмотреть сообщение
    нашел интересный сайтик американский для коптероводов.Цены очень вкусные.APM2.5.2 у них называется READYTOFLYER2.5.2 и конфигурация распайки разьемов на любой вкус +все плюшки добавляеш на свой выбор.
    Линк дайте на саит, PLS

  2.  
  3. #3002

    Регистрация
    07.03.2013
    Адрес
    Donetsk ukraine
    Возраст
    56
    Сообщений
    12
    Цитата Сообщение от Alex 13 Посмотреть сообщение
    Линк дайте на саит, PLS
    Пожалуйста-http://witespyquad.gostorego.com

  4. #3003

    Регистрация
    15.09.2011
    Адрес
    Москва
    Возраст
    45
    Сообщений
    5,945
    Записей в дневнике
    22
    Цитата Сообщение от hobbyser Посмотреть сообщение
    Пожалуйста-http://witespyquad.gostorego.com
    + 5-7 баксов за штырьки
    + непонятно где брать шлейфы жпс и телеметрии если жпс и телеметрию брать отдельно
    + 9 баксов самая дешевая посылка
    ладно бы они сделали что то лучше, убрали бы этот идиотский повермодуль подключенный через диод и предохранитель давно признанный ошибкой, добавили бы емкий электролит по питанию,
    т.е. ничего не изменено на апм2.5.2 никаких дубрирующих разъемы пинов

    имхо логичнее взять пакадж от rctimer.com ArduFlyer 2.5.2 with Case (Top pin style)
    apm2.5.2 + корпус + два проводка жпс и телеметрии за 89.99

  5. #3004

    Регистрация
    07.03.2013
    Адрес
    Donetsk ukraine
    Возраст
    56
    Сообщений
    12
    Цитата Сообщение от alexeykozin Посмотреть сообщение
    имхо логичнее взять пакадж от rctimer.com ArduFlyer 2.5.2 with Case (Top pin style)
    apm2.5.2 + корпус + два проводка жпс и телеметрии за 89.99
    Тогда уж лучше взять здесь-http://www soodohobby.com

  6.  
  7. #3005

    Регистрация
    27.03.2012
    Адрес
    Обнинск, Щербинка
    Возраст
    35
    Сообщений
    1,029
    Записей в дневнике
    4
    А никто не задавался целью - побаночно мониторить батареи при помощи APM?

    Самая банальная идея (чтобы не лазить в код ардупилота) - простой ардуинкой измеряем ячейки отдельно, а на вход APM отдаем одну - с минимальным напряжением.
    Профит: Летаем спокойнее зная о состоянии наихудшей банки + имеем напряжение в привычных единицах "вольт на банку", а то пока запомнишь соответствующие пределы разряда для 3-4-5-6 S - с ума сойдешь.

    Если банок мало, а свободные аналоговые пины на APM есть, то можно наверное все это реализовать программно прямо в APM, но лазить в чужой код бывает чревато ))

  8. #3006

    Регистрация
    15.09.2011
    Адрес
    Москва
    Возраст
    45
    Сообщений
    5,945
    Записей в дневнике
    22
    Цитата Сообщение от Arseni Посмотреть сообщение
    А никто не задавался целью - побаночно мониторить батареи при помощи APM?
    Цитата Сообщение от Arseni Посмотреть сообщение
    простой ардуинкой измеряем ячейки отдельно
    делал я наподобие штуку . но она актуальна лишь когда летаешь на убитых батареях, если батарейка свежая и не подпорченная, ее емкости хватает на 20-30 минут полета - то при достижении 3,5 вольт на банку при половинном газе - пора заходить на посадку, а сенсоры тока только сбивают с толку.

  9. #3007

    Регистрация
    31.07.2008
    Адрес
    Москва
    Возраст
    34
    Сообщений
    1,081
    помогите. спаял всю схему. не могу победить связку с 915 радио и минимом. При включении показывает только minim extra и серый экран. как только нажимаешь в mission planer кнопку connect -тут же показывает стандартную развертку минима -с горизонтом, надписью no gps fix и т.д. НО модемы не соединяются, хотя лампочка на них горит зелёная. + подергал самолет -горизонт не работает в таком режиме. TX с минима не припаян. что делать?

  10.  
  11. #3008

    Регистрация
    15.09.2011
    Адрес
    Москва
    Возраст
    45
    Сообщений
    5,945
    Записей в дневнике
    22
    Цитата Сообщение от fargo Посмотреть сообщение
    что делать?
    Цитата Сообщение от fargo Посмотреть сообщение
    как только нажимаешь в mission planer кнопку connect
    отключить юсб и подключить от юбека
    при включении юсб шлейфа порт телеметрии отключается

  12. #3009

    Регистрация
    31.07.2008
    Адрес
    Москва
    Возраст
    34
    Сообщений
    1,081
    Цитата Сообщение от alexeykozin Посмотреть сообщение
    отключить юсб и подключить от юбека
    при включении юсб шлейфа порт телеметрии отключается
    Алексей, добрый день. В том то и дело -арм уже в самолете. Никаким образом в usb разъем ничего не воткнуто. Наоборот, собрано так, как он будет летать. Т.е. 915 телеметрия +миним+гпс+датчик тока от rctimer. Больше ничего. Поясните мне-дураку,что выткнуть то? Со стороны компа только 915 модем -выбран порт и скорость 57600. Про ситуацию "воткнуто что-то по usb в арм2.5 -не работает телеметрия" читал на rcgroups.
    "You disconnect USB, connect UBEC or PM, or phone charger, now you see this....
    Tilt your frame and you will notice nothing changes on the display, IT IS NOT WORKING - not just yet.

    MAvlinkOSD displays telemetry DATA from the APM 2.5 or ArduFlyer 2.5 telemetry socket.

    DATA does NOT pour out just because the board has power connected

    A request to send data out the telemetry port has to be made FIRST, that request will occur when you connect to Mission Planner via the 3DRadio
    .
    Connect to Mission Planner via the 3DRadio and you will see this

    Everything is working, tilt the frame and the display follows horizon tilt etc...
    Последний раз редактировалось fargo; 30.11.2013 в 13:32.

  13. #3010

    Регистрация
    15.09.2011
    Адрес
    Москва
    Возраст
    45
    Сообщений
    5,945
    Записей в дневнике
    22
    Цитата Сообщение от fargo Посмотреть сообщение
    Про ситуацию "воткнуто что-то по usb в арм2.5 -не работает телеметрия" читал на rcgroups.
    в вашем посте об этом ничего не написано, это наиболее частая ошибка, поэтому я сделал такое предположение
    проверьте что tx апм идет на rx модема используется соединение крест-накрест
    это тоже достаточно очевидная вещь, не сочтите за дерзость

  14. #3011

    Регистрация
    31.07.2008
    Адрес
    Москва
    Возраст
    34
    Сообщений
    1,081
    Цитата Сообщение от alexeykozin Посмотреть сообщение
    в вашем посте об этом ничего не написано, это наиболее частая ошибка, поэтому я сделал такое предположение
    проверьте что tx апм идет на rx модема используется соединение крест-накрест
    это тоже достаточно очевидная вещь, не сочтите за дерзость
    Алексей! еще раз огромное СПАСИБО! перепроверил схему. на самом деле ошибся с пайкой крест-на-крест. вечера к 3-м ночи, как закончил собирать самолет (очень уж хотелось собрать все это вместе), проверить это уже не догадался. Только что проверил -принципиально схема работает. буду дальше разбираться с режимами и схемами.

  15. #3012
    MaF
    MaF вне форума
    Забанен
    Регистрация
    10.11.2012
    Адрес
    Москва
    Возраст
    34
    Сообщений
    1,212
    Коллеги,есть АПМ 1.4
    есть пепелац с V-tail
    я правильно понимаю,что для 1.х ардупилота нужно докупать V-tail mixer?

  16. #3013

    Регистрация
    15.09.2011
    Адрес
    Москва
    Возраст
    45
    Сообщений
    5,945
    Записей в дневнике
    22
    Цитата Сообщение от MaF Посмотреть сообщение
    Коллеги,есть АПМ 1.4 есть пепелац с V-tail я правильно понимаю,что для 1.х ардупилота нужно докупать V-tail mixer?

    тут пишут
    Note that you cannot use the VTAIL_OUTPUT option on an APM1 board if you have the flight mode channel (FLTMODE_CH) set to 8, as on the APM1 this will lead to hardware pass through of controls when in manual, which means your transmitter must be setup for vtail mixing. If using an APM2 or PX4 this is not a problem, and the VTAIL_OUTPUT option is recommended for vtail planes. On an APM1 use a hardware vtail mixer instead.

    это значит что поскольку у апм1 есть аппаратная коммутация при использовании 8 канала в качестве переключателя режимов может при включении режима аппаратный мануал приемник соединится с сервами аппаратно, через ключи. поэтому следует понимать что если хотите оставить аппаратное переключение на приемник - то придется использовать дополнительный микшер

    но анализируя озвученное в мануале - можно попробовать поменять опцию переключателя режимов на 5 канал, переставить на 5 канал провод переключения режима, как в коптере, при этом аппаратный переключатель будет незадействован (или прошить ппм энкодер коптерной прошивкой)

  17. #3014

    Регистрация
    09.12.2012
    Адрес
    Sydney
    Возраст
    41
    Сообщений
    63
    Записей в дневнике
    2
    Коллеги, нужен ваш совет, как правильно настраиваить закрылки в самолете с ArduPilot'ом.

    Сделал все по инструкции plane.ardupilot.com/wiki/automatic-flaps/. Все подключил, все работает.

    Теперь важно подобрать значения переменных:
    FLAP_1_PERCNT / FLAP_1_SPEED (например, 20% - 5м/с)
    FLAP_2_PERCNT / FLAP_2_SPEED (например, 10% - 10м/с)

    Как вы находите правильные параметры этих переменных. Хотелось в общих чертах понять алгоритм такого подбора.

  18. #3015

    Регистрация
    19.07.2013
    Адрес
    Саров
    Возраст
    38
    Сообщений
    5,605
    Дико извиняюсь, но еще раз повторю свой вопрос. Может есть у кого датчик воздушной скорости и он сможет проверить ?

    Цитата Сообщение от X3_Shim Посмотреть сообщение
    А вот вопрос про датчик AS. На столе автопилот 2.6, подключен только датчик AS в A0 (A1 тоже пробовал), по USB к компу. Поставил галку что у меня есть датчик, дую в него, все норм, скорость показывает, около ноля прыгает 0-0.7. Ставлю галку "использовать AS", дую на него, горизонт показывает небольшое пикирование. Автопилот конечно лежит неподвижно на столе. Это так задумано ?

  19. #3016

    Регистрация
    26.08.2012
    Адрес
    Lithuania
    Возраст
    45
    Сообщений
    445
    Сори за глупый вопрос - как узнать какая стоит прошивка на APM 2.5 ?

  20. #3017

    Регистрация
    07.01.2012
    Адрес
    Quebec
    Возраст
    67
    Сообщений
    1,864
    Mission Planner - Terminal - Connect........... ( Наверху зеленые квадратики )

  21. #3018

    Регистрация
    26.08.2012
    Адрес
    Lithuania
    Возраст
    45
    Сообщений
    445
    Цитата Сообщение от Alex 13 Посмотреть сообщение
    Mission Planner - Terminal - Connect........... ( Наверху зеленые квадратики )
    у меня подклюено по 3DR - и как то там идёт только какой то логб прошивки не вижу.
    вроде должна стоять 2,74b - но хочу убедиться чтоб коллеге поставить такую-же (как то проверено временем ) и не знаю за какое число прошивка 2,74b

  22. #3019

    Регистрация
    02.03.2009
    Адрес
    Калининград
    Возраст
    49
    Сообщений
    839
    Цитата Сообщение от X3_Shim Посмотреть сообщение
    Дико извиняюсь, но еще раз повторю свой вопрос
    Да никто просто с этим не заморачивается. Там прежде чем его использовать надо и ratio подобрать. Да и вообще когда это все лежит-стоит неподвижно, приборы все равно чуток бегают. Это нормально. Плюс после подключения питания надо подождать минут пять для прогрева. Короче все относительно. Поэтому никто и не реагирует на ваш вопрос.

    Цитата Сообщение от davk Посмотреть сообщение
    у меня подклюено по 3D
    так воткните юсб

  23. #3020

    Регистрация
    19.07.2013
    Адрес
    Саров
    Возраст
    38
    Сообщений
    5,605
    Цитата Сообщение от Andrey3167 Посмотреть сообщение
    Да никто просто с этим не заморачивается. Там прежде чем его использовать надо и ratio подобрать. Да и вообще когда это все лежит-стоит неподвижно, приборы все равно чуток бегают. Это нормально. Плюс после подключения питания надо подождать минут пять для прогрева. Короче все относительно. Поэтому никто и не реагирует на ваш вопрос.
    Как прыгает горизонт я знаю когда все неподвижно. А тут пикирование прямо зависит от скорости потока. Рашио здесь не причем, какое бы оно не было, по моему оно не должно влиять на горизонт. Да, а у вас есть AS датчик ?

  24. #3021

    Регистрация
    02.03.2009
    Адрес
    Калининград
    Возраст
    49
    Сообщений
    839
    Цитата Сообщение от X3_Shim Посмотреть сообщение
    Да, а у вас есть AS датчик ?
    есть. Небольшое пикирование- сколько? Пока дуете- оно пропадает? Как дуете?
    Не сидел я за столом и не дул в трубку, не привлекал такой момент моего внимания.
    Но если бы на предполетной проверке дунул бы ветер в пито, что происходит регулярно, а горизонт бы спикировал градусов на 20-30, наверное заметил. Но такого не происходило
    Последний раз редактировалось Andrey3167; 02.12.2013 в 00:57.

  25. #3022

    Регистрация
    19.07.2013
    Адрес
    Саров
    Возраст
    38
    Сообщений
    5,605
    Цитата Сообщение от Andrey3167 Посмотреть сообщение
    есть
    так может проверите ? Если не трудно конечно. Сохраните свои настройки в файлик, сбросьте на дефолт, поставьте две галочки (касающиеся AS), и посмотрите что с горизонтом происходит, если дуть на трубку пито. Я был бы сильно благодарен, так как если такой глюк у всех, или так задумано, то я и париться не буду по этому поводу Да, поделитесь как настраивали Ratio плз, и на что влияет установка воздушной скорости, там же все равно надо ставить круизный газ, максимальный газ и минимальный. Я думал что с AS автопилот будет газ выбирать в зависимости от воздушной скорости. Спасибо заранее

  26. #3023

    Регистрация
    02.03.2009
    Адрес
    Калининград
    Возраст
    49
    Сообщений
    839
    Цитата Сообщение от X3_Shim Посмотреть сообщение
    А тут пикирование прямо зависит от скорости потока
    Чем сильнее дуете, тем сильнее пикирует?

  27. #3024

    Регистрация
    19.07.2013
    Адрес
    Саров
    Возраст
    38
    Сообщений
    5,605
    Цитата Сообщение от Andrey3167 Посмотреть сообщение
    Чем сильнее дуете, тем сильнее пикирует?
    именно так.

  28. #3025

    Регистрация
    02.03.2009
    Адрес
    Калининград
    Возраст
    49
    Сообщений
    839
    У меня есть "чистый" апм с 2,76 сейчас попробую

  29. #3026

    Регистрация
    19.07.2013
    Адрес
    Саров
    Возраст
    38
    Сообщений
    5,605
    Цитата Сообщение от Andrey3167 Посмотреть сообщение
    У меня есть "чистый" апм с 2,76 сейчас попробую
    отлично Спасибо.

  30. #3027

    Регистрация
    02.03.2009
    Адрес
    Калининград
    Возраст
    49
    Сообщений
    839
    Цитата Сообщение от Andrey3167 Посмотреть сообщение
    сейчас попробую
    да, пикирует, градусов на десять. Только я еще на 2,76 не летал. Может связано с алгоритмами работы апм. Типа скорость растет, обороты теже- значит пикирует. Но в подробности я не вдавался, не программист

  31. #3028

    Регистрация
    19.07.2013
    Адрес
    Саров
    Возраст
    38
    Сообщений
    5,605
    Цитата Сообщение от Andrey3167 Посмотреть сообщение
    не, ни пикирует
    очень интересно. Галочку "использовать AS" поставили ?

  32. #3029

    Регистрация
    02.03.2009
    Адрес
    Калининград
    Возраст
    49
    Сообщений
    839
    Цитата Сообщение от X3_Shim Посмотреть сообщение
    Галочку "использовать AS" поставили ?
    Да галочку не поставил, потом отредактировал

  33. #3030

    Регистрация
    19.07.2013
    Адрес
    Саров
    Возраст
    38
    Сообщений
    5,605
    Цитата Сообщение от Andrey3167 Посмотреть сообщение
    Да галочку не поставил, потом отредактировал
    Эээ В смысле ? Что отредактировали ? Я ставлю галку что у меня есть датчик, потом ставлю галку использовать датчик (ну в полном списке параметров проверяю, что стоит A1 порт). В общем понял. Буду смотреть где я что мог накосячить. А то если я отключаю датчик на работающем автопилоте, то горизонт просто сходит с ума.

  34. #3031

    Регистрация
    02.03.2009
    Адрес
    Калининград
    Возраст
    49
    Сообщений
    839
    Цитата Сообщение от X3_Shim Посмотреть сообщение
    Да, поделитесь как настраивали Ratio плз, и на что влияет установка воздушной скорости, там же все равно надо ставить круизный газ, максимальный газ и минимальный. Я думал что с AS автопилот будет газ выбирать в зависимости от воздушной скорости
    Сейчас вроде есть автонастройка AS. До 2,74- становил в круг с постоянным креном градусов 20 (предварительно ограничив его в настройках 20 град в FBW-A) с постоянным газом и в этом режиме делал 2-3 круга потом смотрел логи. По графикам наземной и воздушной скорости смотришь , чтоб средние AS и GS были одинаковыми, высчитываешь поправку в коэффициент. Еще раз проверяешь на "кругах". Сейчас посмотрел в руководстве - все в автомате http://plane.ardupilot.com/wiki/airspeed-3/

    Цитата Сообщение от X3_Shim Посмотреть сообщение
    Что отредактировали
    Свое сообщение выше. Да-да теперь все как у вас, забыл галку поставить

  35. #3032

    Регистрация
    19.07.2013
    Адрес
    Саров
    Возраст
    38
    Сообщений
    5,605
    Чет я запутался Но вроде понял. У вас тоже пикирует. Значит с железом у меня все норм таки. Усе, спасибо, буду думать, как и зачем это.

  36. #3033

    Регистрация
    02.03.2009
    Адрес
    Калининград
    Возраст
    49
    Сообщений
    839
    Цитата Сообщение от X3_Shim Посмотреть сообщение
    если я отключаю датчик на работающем автопилоте, то горизонт просто сходит с ума.
    наверное этого не стоит делать, не любит электроника отключений-подключений на горячую, может что-нибудь крякнуть

    Цитата Сообщение от X3_Shim Посмотреть сообщение
    У вас тоже пикирует
    да

  37. #3034

    Регистрация
    19.07.2013
    Адрес
    Саров
    Возраст
    38
    Сообщений
    5,605
    Цитата Сообщение от Andrey3167 Посмотреть сообщение
    наверное этого не стоит делать, не любит электроника отключений-подключений на горячую, может что-нибудь крякнуть
    Не, не в этом случае. Это простые аналоговые пины, которые меряют напряжение.

  38. #3035

    Регистрация
    02.03.2009
    Адрес
    Калининград
    Возраст
    49
    Сообщений
    839
    Цитата Сообщение от X3_Shim Посмотреть сообщение
    Не, не в этом случае.
    может быть, но я боюсь

  39. #3036

    Регистрация
    07.01.2012
    Адрес
    Quebec
    Возраст
    67
    Сообщений
    1,864
    Цитата Сообщение от X3_Shim Посмотреть сообщение
    А тут пикирование прямо зависит от скорости потока.


    Вот посмотрите, здесь вроде ответ на ваш вопрос
    Далеко и высоко. Тактика и практика

  40. #3037

    Регистрация
    15.09.2011
    Адрес
    Москва
    Возраст
    45
    Сообщений
    5,945
    Записей в дневнике
    22
    Цитата Сообщение от Andrey3167 Посмотреть сообщение
    да, пикирует, градусов на десять. Только я еще на 2,76 не летал. Может связано с алгоритмами работы апм. Типа скорость растет, обороты теже- значит пикирует. Но в подробности я не вдавался, не программист

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

  41. #3038

    Регистрация
    15.09.2011
    Адрес
    Москва
    Возраст
    45
    Сообщений
    5,945
    Записей в дневнике
    22
    покопал программный код -
    вопрос: уровень отклоняется при воздействии на аирспид в полевых условиях?
    по идее разный алгоритм коррекции при хорошем захвате спутников по жпс и при проблемах с жпс

    вот этот кусок

    * AP_AHRS_DCM.cpp

    AP_AHRS_DCM::drift_correction(float deltat)
    {
    Matrix3f temp_dcm = _dcm_matrix;
    Vector3f velocity;
    uint32_t last_correction_time;

    // perform yaw drift correction if we have a new yaw reference
    // vector
    drift_correction_yaw();

    // apply trim
    temp_dcm.rotateXY(_trim);

    // rotate accelerometer values into the earth frame
    _accel_ef = temp_dcm * _ins.get_accel();

    // integrate the accel vector in the earth frame between GPS readings
    _ra_sum += _accel_ef * deltat;

    // keep a sum of the deltat values, so we know how much time
    // we have integrated over
    _ra_deltat += deltat;

    если нет жпс, или 3д фикса или спутников меньше чем минимум для коррекции (указывается в списке параметров)
    if (!have_gps() ||
    _gps->status() < GPS::GPS_OK_FIX_3D ||
    _gps->num_sats < _gps_minsats) {
    // no GPS, or not a good lock. From experience we need at
    // least 6 satellites to get a really reliable velocity number
    // from the GPS.
    //
    // As a fallback we use the fixed wing acceleration correction
    // if we have an airspeed estimate (which we only have if
    // _fly_forward is set), otherwise no correction
    if (_ra_deltat < 0.2f) {
    // not enough time has accumulated
    return;
    }
    float airspeed;
    if (_airspeed && _airspeed->use()) {
    airspeed = _airspeed->get_airspeed();
    } else {
    airspeed = _last_airspeed;
    }
    // use airspeed to estimate our ground velocity in
    // earth frame by subtracting the wind
    velocity = _dcm_matrix.colx() * airspeed;

    // add in wind estimate
    velocity += _wind;

    last_correction_time = hal.scheduler->millis();
    _have_gps_lock = false;
    } else {



    if (_gps->last_fix_time == _ra_sum_start) {
    // we don't have a new GPS fix - nothing more to do
    return;
    }
    velocity = Vector3f(_gps->velocity_north(), _gps->velocity_east(), _gps->velocity_down());
    last_correction_time = _gps->last_fix_time;
    if (_have_gps_lock == false) {
    // if we didn't have GPS lock in the last drift
    // correction interval then set the velocities equal
    _last_velocity = velocity;
    }
    _have_gps_lock = true;

    // keep last airspeed estimate for dead-reckoning purposes
    Vector3f airspeed = velocity - _wind;
    airspeed.z = 0;
    _last_airspeed = airspeed.length();
    }

    if (have_gps()) {
    // use GPS for positioning with any fix, even a 2D fix
    _last_lat = _gps->latitude;
    _last_lng = _gps->longitude;
    _position_offset_north = 0;
    _position_offset_east = 0;

    // once we have a single GPS lock, we can update using
    // dead-reckoning from then on
    _have_position = true;
    } else {
    // update dead-reckoning position estimate
    _position_offset_north += velocity.x * _ra_deltat;
    _position_offset_east += velocity.y * _ra_deltat;
    }

    // see if this is our first time through - in which case we
    // just setup the start times and return
    if (_ra_sum_start == 0) {
    _ra_sum_start = last_correction_time;
    _last_velocity = velocity;
    return;
    }

    // equation 9: get the corrected acceleration vector in earth frame. Units
    // are m/s/s
    Vector3f GA_e;
    GA_e = Vector3f(0, 0, -1.0f);

    bool using_gps_corrections = false;
    if (_flags.correct_centrifugal && (_have_gps_lock || _flags.fly_forward)) {
    float v_scale = gps_gain.get()/(_ra_deltat*GRAVITY_MSS);
    Vector3f vdelta = (velocity - _last_velocity) * v_scale;
    GA_e += vdelta;
    GA_e.normalize();
    if (GA_e.is_inf()) {
    // wait for some non-zero acceleration information
    return;
    }
    using_gps_corrections = true;
    }

    // calculate the error term in earth frame.
    _ra_sum /= (_ra_deltat * GRAVITY_MSS);

    // get the delayed ra_sum to match the GPS lag
    Vector3f GA_b;
    if (using_gps_corrections) {
    GA_b = ra_delayed(_ra_sum);
    } else {
    GA_b = _ra_sum;
    }
    GA_b.normalize();
    if (GA_b.is_inf()) {
    // wait for some non-zero acceleration information
    return;
    }

    Vector3f error = GA_b % GA_e;

    #define YAW_INDEPENDENT_DRIFT_CORRECTION 0
    #if YAW_INDEPENDENT_DRIFT_CORRECTION
    // step 2 calculate earth_error_Z
    float earth_error_Z = error.z;

    // equation 10
    float tilt = pythagorous2(GA_e.x, GA_e.y);

    // equation 11
    float theta = atan2f(GA_b.y, GA_b.x);

    // equation 12
    Vector3f GA_e2 = Vector3f(cosf(theta)*tilt, sinf(theta)*tilt, GA_e.z);

    // step 6
    error = GA_b % GA_e2;
    error.z = earth_error_Z;
    #endif // YAW_INDEPENDENT_DRIFT_CORRECTION

    // to reduce the impact of two competing yaw controllers, we
    // reduce the impact of the gps/accelerometers on yaw when we are
    // flat, but still allow for yaw correction using the
    // accelerometers at high roll angles as long as we have a GPS
    if (use_compass()) {
    if (have_gps() && gps_gain == 1.0f) {
    error.z *= sinf(fabsf(roll));
    } else {
    error.z = 0;
    }
    }

    // if ins is unhealthy then stop attitude drift correction and
    // hope the gyros are OK for a while. Just slowly reduce _omega_P
    // to prevent previous bad accels from throwing us off
    if (!_ins.healthy()) {
    error.zero();
    } else {
    // convert the error term to body frame
    error = _dcm_matrix.mul_transpose(error);
    }

    if (error.is_nan() || error.is_inf()) {
    // don't allow bad values
    check_matrix();
    return;
    }

    _error_rp_sum += error.length();
    _error_rp_count++;

    // base the P gain on the spin rate
    float spin_rate = _omega.length();

    // we now want to calculate _omega_P and _omega_I. The
    // _omega_P value is what drags us quickly to the
    // accelerometer reading.
    _omega_P = error * _P_gain(spin_rate) * _kp;
    if (_flags.fast_ground_gains) {
    _omega_P *= 8;
    }

    if (_flags.fly_forward && _gps && _gps->status() >= GPS::GPS_OK_FIX_2D &&
    _gps->ground_speed_cm < GPS_SPEED_MIN &&
    _ins.get_accel().x >= 7 &&
    pitch_sensor > -3000 && pitch_sensor < 3000) {
    // assume we are in a launch acceleration, and reduce the
    // rp gain by 50% to reduce the impact of GPS lag on
    // takeoff attitude when using a catapult
    _omega_P *= 0.5f;
    }

    // accumulate some integrator error
    if (spin_rate < ToRad(SPIN_RATE_LIMIT)) {
    _omega_I_sum += error * _ki * _ra_deltat;
    _omega_I_sum_time += _ra_deltat;
    }

    if (_omega_I_sum_time >= 5) {
    // limit the rate of change of omega_I to the hardware
    // reported maximum gyro drift rate. This ensures that
    // short term errors don't cause a buildup of omega_I
    // beyond the physical limits of the device
    float change_limit = _gyro_drift_limit * _omega_I_sum_time;
    _omega_I_sum.x = constrain_float(_omega_I_sum.x, -change_limit, change_limit);
    _omega_I_sum.y = constrain_float(_omega_I_sum.y, -change_limit, change_limit);
    _omega_I_sum.z = constrain_float(_omega_I_sum.z, -change_limit, change_limit);
    _omega_I += _omega_I_sum;
    _omega_I_sum.zero();
    _omega_I_sum_time = 0;
    }

    // zero our accumulator ready for the next GPS step
    _ra_sum.zero();
    _ra_deltat = 0;
    _ra_sum_start = last_correction_time;

    // remember the velocity for next time
    _last_velocity = velocity;

    if (_have_gps_lock && _flags.fly_forward) {
    // update wind estimate
    estimate_wind(velocity);
    }
    }
    Последний раз редактировалось alexeykozin; 03.12.2013 в 00:01.

  42. #3039

    Регистрация
    19.07.2013
    Адрес
    Саров
    Возраст
    38
    Сообщений
    5,605
    Цитата Сообщение от alexeykozin Посмотреть сообщение
    уровень отклоняется при воздействии на аирспид в полевых условиях?
    Я проверял строго без GPS.

    Цитата Сообщение от alexeykozin Посмотреть сообщение
    покопал программный код
    Завтра гляну его внимательнее.
    Последний раз редактировалось X3_Shim; 03.12.2013 в 00:36.

  43. #3040

    Регистрация
    31.07.2008
    Адрес
    Москва
    Возраст
    34
    Сообщений
    1,081
    Помогите, не получается переключать экраны minim. Пульт ER9x. поставил на восьмой канал 100% source:full switch TRN . в миниме поставил канал 8 так же, без rotating. не меняет и все тут.
    2. Как скачать логи полета? запускаю mp через комплект телеметрии 915 коннекчусь, если запускаю терминал он без перерыва что то пишет, не давая написать команду. что делать?

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

Похожие темы

  1. Помогите разобраться в ворохе программного обеспечения.
    от Черт в разделе Программное обеспечение станков ЧПУ
    Ответов: 5
    Последнее сообщение: 12.07.2010, 17:14
  2. Датчик omron D5a с открытым коллектором (+)
    от frt в разделе Общие вопросы
    Ответов: 8
    Последнее сообщение: 18.09.2009, 04:49
  3. Видео с открытого кубка России по F3J
    от Sanya в разделе Планеры, мотопланеры
    Ответов: 11
    Последнее сообщение: 05.07.2008, 23:17
  4. Зарядное Устройство Poseidon 860-ds , Программное обеспечение
    от Texnik в разделе Аккумуляторы, зарядники
    Ответов: 3
    Последнее сообщение: 20.06.2008, 14:56
  5. Ответов: 0
    Последнее сообщение: 17.02.2002, 20:22

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

Ваши права

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