Автопилот Arduplane - открытое ПО

max809

Тоже 712 использую. За три года нареканий нет. Дешевый, мелкий, а если шунт поставить, то и бОльший ток можно измерять.

alexeykozin
Карабас:

Я тут поразмышлял - наверное RC цепочка должна как минимум фильтровать скачки тока при коммутации обмоток двигателя (8-16кГц), но с другой стороны, не вижу причин опустить частоту среза фильтра до десятков герц, чтоб только поспевала за рулежкой газом. Но, т.к. я не сторонник крайностей, то мой выбор - 1кГц. Козин в блоге описывает цепочку 1,5кОм и несколько мкф. Т.е. его частота среза около 50Гц.
А знание частоты опроса датчика ИМХО позволило бы опустить частоту среза фильтра до этой частоты. В мои планы пока не входит изучение кода, вот поэтому и спросил.

если использовать для интеграции расходования батареи то имеет смысл подгонять рц фильтр под частоту опроса, но поскольку количество израсходованных милиампер в большинстве случаев у неопытного пилота создает обманчивый запас то величина скорее вредная с практической точки зрения.
(далеко не все используют предсказуемые свежие батареи и контролируют емкость полученную при заряде, ведут статистику по батарее сколько она отдала при разряде, сколько составил дизбаланс, учитывают температуру итд) поэтому для типового применения датчика тока для мониторинга среднего тока в рамках обновления значений по осд и телеметрии 0,5 -1 гц логично использовать большие значения емкости для конденсатора т.е. 1-10 мкф при 1…2ком. если датчик тока для PIXHAWK или иного 32 битного полетника с аналоговым диапазоном 3.3 вольта то при расчете рц фильтра нужно понимать что при использовании последовательно делителя изменится и чувствительность которую мы вбиваем в параметр ампер пер вольт. т.е придется пересчитать делитель.
альтернатива использовать сенсор тока с питанием 3,3 и соответственным выходным диапазоном.

ps. если кому на глаза попадется библиотека под eagle cad для корпуса acs781 - дайте знать, я бы мог заказать печатных плат и распространить среди заинтересованых

max809
Shuricus:

А где заказывали?

Я на eBay вроде бы заказывал, но и на Аli их полно.
Сенсор для ардуино, бывают на 5А, 20А, 30А.

- делитель из резисторов (датчик напряжения) туда же прилепил.

Shuricus

Спасибо, перепутал с 781. Вот их не могу найти.

kak-dela007
alexeykozin:

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

Не знаю оно или нет… Решил попробовать включить измерение тока, чтобы видеть на экране ОСД процент заряда батареи. У меня стоит клон 3Dr Power Module. В итоге, проценты падают очень быстро: еще не успев взлететь и даже дать нагрузку, показания опускаются до нуля (о чем дроид планер мне сообщает). Дальше - больше. Показания переходят в отрицательные значения, чего по идее никак не может быть. Емкость батареи выставил соответственно тому, что написано на аккумляторе.

Подскажите, какой датчик тока может стоять на клонированном 3Dr модуле, чтобы выставить правильные BATT_AMP_OFFSET и BATT_AMP_PERVOLT?

Модуль вот такой ru.aliexpress.com/item/…/1845120635.html

Spartak1245

А можно ли сделать, так чтобы при посадки или если рухнет при срабатывании RTl, чтобы он не крутил мотором? А, то будет молотить землю либо из-за потери РУ либо из-за чего нибудь еще. Как это убрать, т.е чтобы он понял, что это земля и RTL-у не место быть?

kak-dela007
Spartak1245:

А можно ли сделать, так чтобы при посадки или если рухнет при срабатывании RTl, чтобы он не крутил мотором? А, то будет молотить землю либо из-за потери РУ либо из-за чего нибудь еще. Как это убрать, т.е чтобы он понял, что это земля и RTL-у не место быть?

Ага, у меня так регуль сгорел, который впоследствии спалил и мотор. Пришлось перематывать. Если РУ работает, то нужно переключаться в режим без автоматического управления газом. А при потере РУ он должен кружить над точкой дома, пока не сядет аккум, разве нет? А если стоит автопосадка, то есть параметр круизного газа для автопосадки : TECS_LAND_THR. Можно попробовать поставить 0. Но я еще не тестировал.

Spartak1245
kak-dela007:

А при потере РУ он должен кружить над точкой дома, пока не сядет аккум, разве нет?

Предположим летим, летим и тут бац самолет начал падать из-за отказа сервы, при падении включится ртл правильно? Соответственно будет мотор молотить землю и утащит за собой регуль и КЗ. Как сделать, так чтобы РТЛ вообще не включился когда самолет на земле?

kak-dela007
Spartak1245:

Предположим летим, летим

  • а в каком режиме? С автоматическим газом/курском или нет? В режимах типа Manual и FBWA когда летал, при посадках ни разу не случалось включения RTL. С авто-газом (RTL) - вот у меня такое однажды было, когда и погорела электроника. Но там была не управляемая посадка с участием деревьев. Сейчас понимаю, что скорее всего регуль и сгорел потому что винт задевал за ветки деревьев (при 90% газе). Т,е. самолет не был в этот момент на земле. Что касается посадок на землю, в том числе аварийных, - то сложилось впечатление, что АП “понимает” когда самоль обездвижен и находится на стартовой высоте. Так что если ЛА садится или падает в режиме с газом, управляемым с пульта, и если за секунды до касания земли газ был убран до нуля, то по идее RTL сам включиться не должен. Но у меня пару раз было и когда я после неудачного старта поднимал самолет, а его винт крутился на полном газу. Т.е. скорее всего включался RTL. Поэтому поддерживаю вопрос.

При отказе сервы - сомневаюсь, что включится RTL. Как ПК это поймёт? Будет думать, что это пилот его в штопор вводит 😃

kostya-tin
kak-dela007:

При отказе сервы - сомневаюсь, что включится RTL. Как ПК это поймёт?

когда самолет будет в паре километров от вас РТЛ обязательно включится, когда самолет будет падать, т.к. будет потеря связи у земли

Spartak1245
kak-dela007:

С автоматическим газом/курском или нет?

После посадке самолета, если не передернуть питание на АПМ, то при включение режимов auto, rtl, cruise мотор начнет крутить, как ненормальный. Вот из-за чего я спрашивал, как можно это отрубить, чтобы не молотил землю.
А так, если РТл и он упал или просто летит и упал, то в РТЛ т.к связи с пультом нет включит МОТОР на полную.

alexeykozin

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

Spartak1245
alexeykozin:

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

Если это так, то это замечательно. А, то сами понимаете?!

alexeykozin
Spartak1245:

Если это так, то это замечательно. А, то сами понимаете?!

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

Spartak1245
alexeykozin:

звук был как будто стопку листов шифера о бетон шарахнули и эхо три раза)

Нифига себе)) Ну если так, то да. А, если просто летишь на крыле в 5км и высота 500м то еще имеет смысл, а так да!

XrayT1

Доброго времени суток.

Подскажите, пожалуйста, в чем может быть проблема/что поправить.
Носитель MiniTalon, APM 2.6. После автотюна по ROLL пиды как будто очень высокие (P = 1.8) что проявляется в виде оциляций и раскачке на скоростях 50км/ч и ниже.
После ручных правок P = 1.2 (I уменьшено пропорционально) осциляции уменьшаются и заметны на 40 км/ч.
После ручных правок P = 0.9 осциляции уменьшаются вплоть до ~36 км/ч (около скорости сваливания), но чувствуется как будто компенсации недостаточно (самолет слегка плавает по уровню).

ehduarg

Он всегда немного плавает. Надо с ручным режимом сравнивать. У меня разницы не заметно.

alexeykozin
XrayT1:

что поправить.

ardupilot.org/plane/docs/parameters.html#scaling-s…

Airspeed in m/s to use when calculating surface speed scaling. Note that changing this value will affect all PID values
By adjusting SCALING_SPEED you can have the same set of PIDs for both airspeed and non-airspeed flight control.

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

в актуальной версии кода коэфициент скалирования пидов ограничен диапазоном 0,6 - 1,67
посмотреть как это устроено можно тут github.com/ArduPilot/ardupilot/…/Attitude.cpp#L29