ArduPilot 2.8 beta 1 Тестирование, обсуджение

alexeykozin

это под маленький вариант ардупилота, тот который предшествовал “ардупилоту мега”
плата выглядит так:

официальная страница проекта code.google.com/p/ardupilot/wiki/ArduPilot
тут мои изыскания в целях сделать толковую инструкцию как все это можно использовать

alexeykozin

хорошая новость, дидроновцы не забросили проект
Джорди анонсировал выход платы сенсоров v3 diydrones.com/…/arduimu-v3-is-finally-here
с крутым цифровым процессором движения и 3д компасом
пишет что осталось немного дописать код и вскоре устройство появится в продаже, доступен предзаказ

11 days later
alexeykozin

Слепил Ardupilot 2.8 beta 6, в основном отладка и доработка замеченных в симуляторе “кривостей” полета
пока не разобрался почему не работает алгоритм названный crosstrack, сделал замену ослабление пидов на малом удалении от вэйпоинтов и усиление на маршруте, это позволило избежать “осциляции” на резких маневрах изза высоких пидов, устраняет скачки и резкие маневры вблизи вэйпоинта но в тоже время на маршруте не допускает ошибки по курсу больше нескольких долей градуса и доли метра по высоте (до этого его мало волновала ошибка по высоте в десяток метров и пара - тройка градусов по курсу), что в симуляторе обеспечивает гарантированное проходжение “rc_model” точек маршрута с радиусом 5м (по умолчанию в утилите 20 и старые прошивки умудрялись не попадать)
попробовал цессну, оставил в ардупилоте для нее те же настройки (стоковые пиды и скорость), только усиление по каналам в ardupilotsim увеличил на 20% (800, 8000,8000,8000 обычная rc модель и 600, 6000, 6000, 6000 cessna ) несколько увеличил расстояние между вейпоинтами ибо всетаки он неповоротлив - результат замечательный, взлетает проходит маршрут и мягко садится четко на полосу.
Ах, да сделал нормальный “Ландинг” теперь он для посадки берет не абы-какой курс который у него случился на последней точке маршрута в силу воздействия внешних факторов а взлетный, важно лишь поставить последнюю маршрутную точку на курсе, на глиссаде. убрал подскок, который был вызван единоразовым изменением тангажа на посадочный (+10:+15 градусов) теперь тангаж плюсуется по мере необходимости (при привышении вертикальной скорости 20см/сек)

единственное но, это только симулятор…
изза погоды все никак не решусь летнуть по-настоящему

Rom111

Алексей, а в прошивке ардупилота 2.8 Remzibi OSD будет поддерживаться?

alexeykozin

в принципе единственная проблема - лишь бы памяти хватило, но после удаления термофилов пара килобайт освободилась

Rom111

Здорово, хотелось бы использовать арудупилот в комплексе с OSD. Пока, если позволит погода, в выходные планирую облет ArduPilot_2_7.1_no_tremor + Remzibi

alexeykozin

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

alexeykozin

скриншот как ардупилот 2.8 в xplane 9 на самоле cessna 172 (не модель)
на стоковых пидах автоматически взлетает, проходит маршрут, заходит на посадку и мягко садится

Rom111

Из учебника мы о посадке самолёта знаем следующее:

Посадка является завершающим этапом полёта и представляет собой замедленное движение самолета с высоты 25 м до полной остановки после пробега по земле. Посадка самолета, как правило, состоит из следующих этапов :

  • планирования (снижения);
  • выравнивания;
  • выдерживания;
  • приземления (парашютирования);
  • пробега.

Тут наверное попроще, модель снижается с определённым тангажом до касания земли? А что дальше? Момент касания как-нибудь определяется автопилотом? И ещё интересно двигатель в какой момент отключается?

alexeykozin

я слыхал от авторитетных летчиков другую версию, “посадка это прерванный уход на второй круг” 😃)
но применительно к существующим версиям модельных автопилотов это не так

исходя из моего понимания кода и тестов в симуляторе:
логика перекочевавшая из 2.7 в 2.8 beta 1 заключалась в том что выйти на последнюю маршрутную точку по высоте и курсу
при расстоянии до последней маршрутной точки заданной в константе SLOW_RADIUS устанавливается уровень газа из константы THROTTLE_SLOW
при достижении расстояния THROTTLE_CUT_RADIUS вырубается газ
при достижении расстояния “радиус вейпоинта” (задается в configtoolglobal и сохраняется в eeprom) устанавливается кабрирование LAND_PITCH ( по умолчанию 15 градусов) что сначала приводит к подскоку при высокой скорости
далее выдерживается этот тангаж что обеспечивает гашение скорости. если последняя точка слишком высоко то сначала вертикальная скорость минимальна, но потом растет, в момент планирования идет стабилизация по крену, при потере скорости иногда несколько колбасит

что касается курса то его в 2.7 версии автопилот запоминает при достижении последней точки, если в этот момент модель заходила по кривой то посадка будет не на полосу а фиг знает куда.

в разрабатываемой версии 2.8 в бэта 6 сделал запоминание курса для посадки на стадии взлета по курсу home-> 1 точка и убрал подскок при посадке тем что задаю посадочный тангаж не единовременно постепенно а в зависимости от вертикальной скорости по жпс

впоследствии думаю задействовать сонар и интенсивно гасить вертикальную скорость лишь на последних паре метров

Rom111
alexeykozin:

устанавливается кабрирование LAND_PITCH ( по умолчанию 15 градусов) что сначала приводит к подскоку при высокой скорости

Ага, понял теперь, что за маневр перед снижением на рисунке из поста #13.
Я вот ещё, что подумал, а можно ввести в код автопилота команду на автоматическое отключение двигателя при условии снижения ну скажем менее 20м? На тот случай, если модель вдруг упадет в кусты, что бы движком не молотила. Точнее это условие должно, наверное, выполняться при удалении от точки старта более 200м и высота ниже 20м.

alexeykozin

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

Rom111

ясно, т.е. самолет взлетал справа налево, а я думал наоборот 😃

11 days later
alexeykozin

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

для пробного полета рекомендую установить следующие параметры:
#define THROTTLE_CRUISE 700 // 1000 = trottle max Default throttle value - Used for central value.
#define THROTTLE_MAX 1000 // 1000 = 100 percent of trottle stick Throttle (lower this if your plane is overpowered)

проверить можно отклонением сервы подключенной в канал газа
она должна отклоняться в режиме takeoff на такой же угол как и в ручном при одинаковом положении стика газа

3 months later
kedrikov

Тестил сегодня REMZIB+ARDUPILOT+IMU по земле.Вобщем первые грабли которые немогу победить.
Проблема с выводом данных на ремзиб.Стоим на месте,включаем питание,спутники найдены судя по свечению голубого светодиода на иму.Жмякаем ресет на ремзиб сохраняя точку старта и начилось …😦 высота и дистанция живут своей жизнью,количество захваченых спутников не отображается.Скорость вроде как верно смотрел на спидометр.Dj время движения дистанция не меняется…

Связка ремзим и жпс модуль с обычной прошивкой работаю приемлемо вот только дистанция и высота постоянно плывут ± 20-50м вобщем фигня какаято…

www.youtube.com/watch?v=eljM8Su-tg8&feature=youtu.…

kedrikov

Все разобрался с проблемной.Пришел к выводу ,что все глюки были из-за комнатных тестов ,также выяснилось ,что прошивки для всех модулей нужно лить из одно пака hobby.msdatabase.ru/project-updates/…/remzibiosd спасибо Алексею.
Сделал небольшой тест на точность отображения скорости,дистанции и высоты,вот что получилось

www.youtube.com/watch?v=Z-IyPi1ib0M

Чтобы символы не моргали их нужно помещать не в зонах горизонта

kedrikov

Перешел к этапу установки ардупилота на ская и наткнулся на очередную проблему.В хвосте стоят HXT900 аналог они ведут себя во всех режимах пилота отлично.В элеронах стоит цифра www.hobbyking.com/hobbycity/…/uh_viewItem.asp?idpr… мягкие отличные сервы но в режиме Manual они почемуто дергаются с очень приличной амплитудой.Подключал на элерон 900-ку такой ерунды нет.Ну очень уж нехочется обратно менять на аналог темболее что в будущем планируется установка таких же цифровых серв в хвост.Как решить эту проблему?

Ardupilot от Алексея hobby.msdatabase.ru/project-updates/…/remzibiosd remzibi_softpack_1_73 с поддержкой ремзиб

www.youtube.com/watch?v=9JZkglDtjHA&feature=youtu.…