Телеметрия (часть 2)
Полетал вчера с автопилотом. Правильно заработало всё только где-то наполовину, но главное - есть логи, по ним уже 2 или 3 косяка исправил и еще парочку надо будет поправить. Все посадки штатные, самик живой, всё в норме.
Для первого вылета, самого вообще-вообще первого вылета с автопилотом - неплохо.
Подробнее всё через пару часов распишу 😃
Тимофей приветствую, я тут последнее время выступаю не часто. Но вот наболело. В телеметрии есть на мой взгляд “косячок” который портит жизнь. Она не запоминает состояние экрана на момент выключения. Отсюда вылазит проблемка. Не все пользователи могут иметь переключалку режимов в полете. Банально не хватает каналов.
У меня например 6 каналов и все задействованы, и вешать переключалку например на флапы не удобно (точнее она у меня сейчас там висит, но используется только для мониторинга качества сигнала, поскольку что бы работала как переключалка не хватает амплитуды изменения сигнала при работе с флапами (серва затримлена), но даже если бы хватало пользоваться в полете было бы не очень удобно ) А так же приходится каждый раз переключаться между баро и GPS.
Если с этим можно что то сделать было бы просто изюмительно!
Могу запоминать последние настройки в EEPROMе. Если место под это в коде найду ☕
>У нас на работе для влогозащиты используют поливоск (вроде так называется).
Спасибо за наводку, буду пробовать разные варианты. Главная цель - сделать платы пирометров без корпуса, но устойчивые к влаге. Хочется, чтоб покрытие было механически устойчивым, чтоб на двухсторонний скотч или там клей или кто как захочет мог бы закрепить платы. Для этого платы пирометов с нижней стороны “лысые”, без единой детальки.
Автопилот хочется защитить чисто только от случайных касаний клемм аккумулятора, и чтоб хотя бы нижней стороной, где нет разъемов, можно было бы без опаски класть на металлические поверхности/предметы.
Печатки все сделаны с маской, она защищает дорожки, но там где разъемы да детальки, маски, конечно, нет.
А, и еще, если вдруг придется делать ремонт, хотелось бы иметь возможность хотя бы с платы автопилота снять лак, чтоб спокойно паять. Платы пирометров - пофигу. Там самое ценное - пирометры, а их я из-под любого лака выцарапаю 😃
Тимофей, а Вы не думали вместо пирометров поставить магнитометр?
Тимофей, а Вы не думали вместо пирометров поставить магнитометр?
Магнитометр определяет курс относительно МП земли. Ориентацию не определить одним магнитометром.
Инерциальные системы содержат акселерометры, гироскопы. Это как бы минимум, чтоб компенсировать всяческие дрейфы. Далее магнитометр, барометрический датчик, GPS и остальное.
У Тимофея вместо гир и акселей используются пирометры.
ЗЫ: Вроде так вот. Опять че-то на писанину потянуло.
Трехосевой компас с коррекцией по пирометрам на автопилоте стоит. Польза от него не так чтобы прямо фантастическая, но он есть и работает. Вот если вдруг для вертолетов адаптировать автопилот потянет, там он в самую тему - хвостовой балкой вертеть 😃
Тимофей, а Вы не думали вместо пирометров поставить магнитометр?
На наших широтах точности лучше 1,5 градусов не достич. Кроме того, магнитометру нужно знать опорный вектор. Вектор g или горизонт по пирометрам - не важно. Но сам по себе магнитометр не работает.
Поздравляю с почином! 😃
Я вот тоже поигрался и решил сделать следующую версию автопилота, с учётом косяков. Начал рисовать пироголовку и такой вот монстер получился. Теперь думаю, как это всё развести в миниатюре…
Мега там просто собирает данные и отдаёт пилоту по SPI. Сделано так, чтобы кучу проводов не тянуть.
А флешу я всёж рекомендую поставить 642D. Не повторяйте ошибку с телеметрией 😉 Разница в цене копеечная, а объём позволит вообще не задумываться о сжатии и потратить потом своё время с большей пользой. 50 минут, это мало. Как и 5 Гц. У меня пишется 20 раз в секунду, и то мало для детализации…
В общем, отчет по полетам:
-
Стабилизация. Работает. Летал на закате, часов в 9 или 10 вечера, не помню точно сколько время, но помню что в начале полетов солнце еще маячило на горизонте, а в конце - уже нет, никаких связанных с закатом проблем не было. Было только ощущение, что на большой высоте (>150м) она сама собой отключалась, но это уже, скорее всего кривые ручки (см далее) или помехи от ЛЭП неподалеку. Надо будет перекалибровать передатчик.
Для верности проходил над собой несколько раз на небольшой высоте, чтоб оценить, как работает - таки работает. Еще для верности потыкал ИК-термометром-пистолетом в землю и небо - получил +19 на земле и -9 в небе. -
Автопилот.
По курсу рулит ваще не туда. То есть ну просто ваще совсем сам по себе куда-то самик устремляется. Стабилизируется, выходит на одному ему ведомый курс, и пошел… 😃
Сейчас сидел ковырял логи - нашел ошибку в вычислении угла доворота на базу.
По тангажу-крену всё нормально, куда автопилот скажет накрениться, туда и кренится. То, что математика автопилота в плане курса была слегка на один бок кривая - это уже написано.
По логике включения-выключения автопилота в принципе замечаний пока нет, но после выключения передатчика может пройти до 1 секунды, прежде чем включится автопилот - состояние fail safe и т.д. я обновляю раз в секунду. Вот за эту секунду самик может такое вытворить, пока не застабилизируется автопилотом, что волосы седеют даже в тех местах, где этого быть просто не может.
Надо будет чтоли 2 или 4 раза в секунду это состояние обновлять.
Логгинг замедляет работу автопилота. То есть, каждый раз, когда нужно сбросить дамп в память, где-то на 30-50 мсек математика автопилота тормозится. Из-за этого, например, если плавно шевелить стиками на передатчике даже при выключенном автопилоте, сервы шдвигаются с паузами в 30-50 мсек. Знаю как лечить, вылечу полностью.
При передаче настроек с компука в авопилот перепутаны максимально допустимые углы крена и тангажа при включенном автопилоте. В итоге по крену самик рулится максимум на ±10 градусов, а по тангажу - на 30.
Вкупе с тем, что столбик пирометров я закрепил не очень как бы плотно и потоком воздуха на большой скорости его, оказывается, наклоняло назад, это было ЧТО-ТО.
То есть, на высоте в 150м я выключаю передатчик, самик чахоточно дергается, потом через секунду врубается автопилот, и, поддав газу, на полной скорости хреначит в планету. Столбик ветром наклонило, так что горизонт уже не горизонт… Пролетев 100м почти по вертикали, до целевой высоты в 50м, самик как будто втыкается в землю: с хрустом крыльев выходит на полной скорости в горизонтальный полет. Я к тому времени уже глотаю сигарету и роняю блин передатчик.
После этого эта скотина сбрасывает скорость до той, что положена на 30% газа(забито с компука), летит ровненько по горизонтали (столбик с пирометрами уже вернулся на место) куда-то вдаль, раз в секунду делая прыжки вверх-вниз на полметра-метр, на основании высоты с ГПС…
В общем, как-то так. Всё это я вроде как пофиксил, бум летать дальше.
ПС. А на тему покрытия плат есть много тем:
forum.ixbt.com/topic.cgi?id=48:7384
forum.ixbt.com/topic.cgi?id=48:6886
forum.ixbt.com/topic.cgi?id=48:5519
forum.ixbt.com/topic.cgi?id=48:3353
forum.ixbt.com/topic.cgi?id=48:1966
Я для “промышленных” плат использую специальный лак из радиомагазина. Застывает чем-то средним между лаком и силеконом.
Для “босяцких” плат использую натуральный пчелиный воск. Продаётся в магазинах пчеловодства. Он не трескается, в отличие от парафина.
но после выключения передатчика может пройти до 1 секунды, прежде чем включится автопилот - состояние fail safe и т.д. я обновляю раз в секунду. Вот за эту секунду самик может такое вытворить, пока не застабилизируется автопилотом, что волосы седеют даже в тех местах, где этого быть просто не может.
+1, та же проблема. Если фиксить меньше потерь ППМ пачек, переключение ненадёжное. Для себя сделал двухуровневое переключение: 5 потреных пачек, включается стабилизация крен/тангаж (5 корректных пачек - отключается). 75 пачек (около 1,5 сек) - полностью автопилот. Для возврата в ручное нужно принять 75 правильных пачек подряд.
Я каждую секунду считаю в каждом канале число пришедших PPM импульсов, и еще число тех, что попали в заранее заданный диапазон (калиброванный с передатчика диапазон, расширенный на 5 или 10 или 15%)
Если число импульсов в пределах диапазона в каком либо заданном или в любом (задается с компука) канале оказывается меньше 30, я включаю автопилот. Соответственно, автопилот в худшем случае может с включением запоздать на секунду.
Стабилизацию я включаю по отдельному каналу с передатчика. Щелк вверх - включилась, щелк вниз - выключилась.
Про память: перейти с AT45DB161D на AT45DB321D можно сразу, там всё такоеже, только места в 2 раза больше. На 642D перейти будет сложнее: у нее размер страницы в 2 раза больше, стало быть, адресация другаяч, и, главное, корпус другой. Многоногий TSOP 28 ног я не хочу брать, это монстр, а BGA и CASON я не запаяю.
После этого эта скотина сбрасывает скорость до той, что положена на 30% газа(забито с компука), летит ровненько по горизонтали (столбик с пирометрами уже вернулся на место) куда-то вдаль, раз в секунду делая прыжки вверх-вниз на полметра-метр, на основании высоты с ГПС…
Гы гы 😃 метр - полтора это мелочи жизни, вот у меня в крайнем ролике (rcopen.com/forum/f90/topic55521/1044) высота ЖПС скакнула что-то вроде с 130 до 190 м. Причем количество спутников при этом изменилось с 6 до 7 (странно, на земле после включения обычно 8-10). Кстати, при скачке высота по барометру похоже отображалась правдивее. Как бы повел себя автопилот при таких показаниях ЖПС?
P.S. Товарисч, раньше знаимавшийся ЖПС для экспедиторов, грит точность далеко не фонтан. У них ЖПС-ки давали погрешность что-то около 20 см на 20 км (если я правильно запомнил), тока у них антенны были покрупнее.
Кстати, при скачке высота по барометру похоже отображалась правдивее.
Мы недавно катались по городу с GPS и баро. С учётом статической ошибки баро идеально повторил GPS (условия приёма GPS были отличные и ничего не скакало), так что мастер-фильтр баро/GPS необходим.
На 642D перейти будет сложнее: у нее размер страницы в 2 раза больше, стало быть, адресация другаяч, и, главное, корпус другой. Многоногий TSOP 28 ног я не хочу брать, это монстр, а BGA и CASON я не запаяю.
Я думаю, скоро будет 642 в SO8. Когда я делал свой первый автопилот в 2005-м, 161-е были только в TSOP 28. А сейчас вот поуменьшились. Так что возможность проапгрейдить будет, я думаю. А адресация легко задаётся дефайнами - у меня код при старте проверяет ID флешки и выставляет размеры страницы и их число согласно типу. Мне это, в принципе, не нужно, просто остался атавизм со старого проекта, где из них набиралось 32 мБ. Не стал убивать 😃
Насчёт монстрости TSOP 28 - так выводы только с одной стороны, очень удобно подключать. Монтаж не усложняется, а места на ваших платах ещё достаточно много, надо только найти маленькую свобрдную полоску под ряд противоположных выводов и туда его припаять. ИМХО.
А можно ли будет отдельно (например с какогонить канала в полете) включить только стабилизацию крена автопилоту, а упрваление по высоте и РН оставить себе?
пасиба:)
Гы гы 😃 метр - полтора это мелочи жизни, вот у меня в крайнем ролике (rcopen.com/forum/f90/topic55521/1044) высота ЖПС скакнула что-то вроде с 130 до 190 м. Причем количество спутников при этом изменилось с 6 до 7 (странно, на земле после включения обычно 8-10). Кстати, при скачке высота по барометру похоже отображалась правдивее. Как бы повел себя автопилот при таких показаниях ЖПС?
P.S. Товарисч, раньше знаимавшийся ЖПС для экспедиторов, грит точность далеко не фонтан. У них ЖПС-ки давали погрешность что-то около 20 см на 20 км (если я правильно запомнил), тока у них антенны были покрупнее.
Это у Вас где-то секунд 5-7 показания по высоте от ГПСа не обновлялись, пока самик набирал высоту. Или ГПС модуль посчитал необязательным обновлять высоту - мож, все спутники столпились в одном углу неба - или строки с ГПС побились помехами и не прошли проверку контрольной суммы, или момент прихода этих строк в течение этих 5-7 секунд совпадал с одним неудобным моментом в телеметрии, когда она может пропускать символы приходящие с ГПС, и строки не проходят проверку контрольной суммы. Но судя по тому, что широта-долгота-скорость-курс обновлялись нормально, скорее всего, это ГПСу что-то не понравилось.
Автопилот бы в таких условиях, видя константную высоту с ГПС, выставил бы руль высоты в 0 и летел бы горизонтально, пока не придет обновленная высота.
То, что он у меня на тестовом полете прыгал - ошибка передачи данных с компука в автопилот, я слишком большие углы тангажа позволил автопилоту. Щас уже пофиксено, должен плавно, ну или как зададите 😁, набирать-снижать высоту.
А можно ли будет отдельно (например с какогонить канала в полете) включить только стабилизацию крена автопилоту, а упрваление по высоте и РН оставить себе?
пасиба:)
Примерно в таком режиме и работает стабилизация. Она позволяет кренить самик влево-вправо-вверх-вниз, но петель и бочек уже не получится, и если бросить ручки, самик сам выравнивается. Вы этого хотели? Такая стабилизация включается щелчком на отдельном канале.
Мы недавно катались по городу с GPS и баро. С учётом статической ошибки баро идеально повторил GPS (условия приёма GPS были отличные и ничего не скакало), так что мастер-фильтр баро/GPS необходим.
Я, возвращаясь после полетов с дачи, врубил автопилот с ГПСом в балансирный разъем батарейки и бросил на торпеду под лобовое стекло. Получил полтора часа логов поездки на машине. Проштудировал логи и не нашел никаких глюков ГПСа вообще. То есть, скорость, высота, координаты, курс - всё в норме. А логи посмотреть, кстати, было афигеть как интересно. После макс скорости в 160кмч пробка на въезде в город кажется ну просто чудовищной, а на самом деле провел я в ней всего минут 15 и скорость в пробке была 30-40 кмч. Интересно еще то, что высота дорожного полотна от Чехова до севера Москвы метров на 150 гуляет. Если когда-нибудь кто-нибудь будет пускать оттуда сюда самик на автопилоте, с целевой высотой метров в 100, то фигушки оно прилетит. Холмы, блин…
Автопилот бы в таких условиях, видя константную высоту с ГПС, выставил бы руль высоты в 0 и летел бы горизонтально, пока не придет обновленная высота.
А на какой высоте самолет летит на автопилоте? Как она изменяется?
Проштудировал логи и не нашел никаких глюков ГПСа вообще.
А это как повезёт. Я одно время делал логгеры для транспорта - писали все перемещения во флеш и по блютузу потом читались владельцами машины. Так когда война в грузии началась мне телефон сорвали - врут приборы и всё!
Коммизм ситуации был ещё и в том, чтоя в этот момент находится в 200 км от границы с Осетией 😃
Посему сейчас я все показаниц ЖПС проверяю относительно баровысотоимера. И лишь если баро показывает аналогичное изменение, принимаю данные ЖПС верными. Ну и “фильтр исключения” - зная предельную скорость самолёта можно прикинуть, является ли верным изменение координаты на 100 км за 2 секунды.
Вот так эти выбросы выглядят в озике:
>А на какой высоте самолет летит на автопилоте? Как она изменяется?
На той, что пилот вбивает с компука, но не выше 1000м и не ниже 50м.
Высота меряется от высоты точки старта. В полете не изменяется никак.
Разобрался, почему на большой высоте ассист не работал.
На высоте >100м (задается с компука) включается автопилот и отрубает ассиста. Но, поскольку с компука задано, что при наличии RC сигнала автопилот автоматом выключается, через сто строк кода он автоматически выключается.
В итоге имеем то, что ассист выключается, а автопилот так и не включается.
Вообще, с вылизыванием логики включения автопилота будут еще приколы…
Про кривобокую математику поворота на базу я уже говорил. Когда на компуке я вектором рисую угол доворота на базу, всё выглядит хорошо. Но на самом деле довернуть, скажем, на 270 градусов влево - это совсем неправильно. Правильно - довернуть на 90 градусов вправо.
Углы +270 градусов и -90 градусов абсолютно равнозначные, поэтому на компуке всё выглядит шикарно. А вот по смыслу - совершенно неправильно выходит.
Пофиксил.
Тимофей, я все забываю спросить, показания высоты по бародатчику все так же ограничены 999 метрами?
В телеметрии с прошивкой v252 ограничение 9999 метров.
Ура!!! Я помню что где-то проскакивало что ограничение было пофикшено, но в описаниях к прошивкам вроде нигде не упоминается.
Примерно в таком режиме и работает стабилизация. Она позволяет кренить самик влево-вправо-вверх-вниз, но петель и бочек уже не получится, и если бросить ручки, самик сам выравнивается. Вы этого хотели? Такая стабилизация включается щелчком на отдельном канале.
Да! здорово!
Еще мысль, просто мысль 😃 на ±100% включать стабилизацию, на ±50% ничего не включать - управление пользователя. на ±0% включать автопилот.
Гуру и Тимофей, подскажите, можно ли чем-нибудь безболезненно заменить LM1881 относительно схемы данной телеметрии? 😃
Ну блин кончилась она в рознице в Питере по нормальной цене. 😦 А у меня как раз свободный вечер для поездок по городу.