F4BY. Отечественный ответ Pixhawka'm

OrlOf

Привет всем!
А где можно почитать или, может быть, кто-то потрудится объяснить, как происходит распределение усилий по моторам для гексы и окты?
Для квадры понятно - 4 точки, либо строго по крену/тангажу, либо довёрнутые на 45 градусов через матрицу поворота.
А если винтов 6,8,12? Как это реализовывается? Для каждого луча решается своя матрица?

OrlOf

Не силён в Си… С математической или физической точки зрения как это происходит?
Повторюсь, для квадры всё ясно. Есть 2 оси, перекос тяг задаёт угол. Довернули на 45 и всё ровно то же. Но когда моторов, например, 6? Получается, для каждого луча своя матрица или как? Я понять не могу как через один поворот разложить усилие крена, например, на 6 моторов 😦

Ну, то есть матрицу я нашёл, но расшифровать из Си знаний не хватает:

case MOTOR_FRAME_HEXA:
            switch (frame_type) {
                case MOTOR_FRAME_TYPE_PLUS:
                    add_motor(AP_MOTORS_MOT_1,   0, AP_MOTORS_MATRIX_YAW_FACTOR_CW,  1);
                    add_motor(AP_MOTORS_MOT_2, 180, AP_MOTORS_MATRIX_YAW_FACTOR_CCW, 4);
                    add_motor(AP_MOTORS_MOT_3,-120, AP_MOTORS_MATRIX_YAW_FACTOR_CW,  5);
                    add_motor(AP_MOTORS_MOT_4,  60, AP_MOTORS_MATRIX_YAW_FACTOR_CCW, 2);
                    add_motor(AP_MOTORS_MOT_5, -60, AP_MOTORS_MATRIX_YAW_FACTOR_CCW, 6);
                    add_motor(AP_MOTORS_MOT_6, 120, AP_MOTORS_MATRIX_YAW_FACTOR_CW,  3);
                    success = true;
                    break;
                case MOTOR_FRAME_TYPE_X:
                    add_motor(AP_MOTORS_MOT_1,  90, AP_MOTORS_MATRIX_YAW_FACTOR_CW,  2);
                    add_motor(AP_MOTORS_MOT_2, -90, AP_MOTORS_MATRIX_YAW_FACTOR_CCW, 5);
                    add_motor(AP_MOTORS_MOT_3, -30, AP_MOTORS_MATRIX_YAW_FACTOR_CW,  6);
                    add_motor(AP_MOTORS_MOT_4, 150, AP_MOTORS_MATRIX_YAW_FACTOR_CCW, 3);
                    add_motor(AP_MOTORS_MOT_5,  30, AP_MOTORS_MATRIX_YAW_FACTOR_CCW, 1);
                    add_motor(AP_MOTORS_MOT_6,-150, AP_MOTORS_MATRIX_YAW_FACTOR_CW,  4);
                    success = true;
                    break;
                default:
                    // hexa frame class does not support this frame type
break;

А ещё есть коптеры, у которых не симметричен Х крест. Передние (как правило) моторы стоят ближе друг к другу. Этакие ножницы. Там же вообще рычаг воздействия на центр тяжести разный, значит одним поворотом не обойтись, надо пропорционально рычагу ещё усилия раскладывать?

arb

А для чего нужны такие знания, что Вам это даст?

Ну и судя по тексту усилия распределяются через угол.

alexeykozin

функция добваляет в модуль управления моторами моторы в зависимости от класса рамы
add_motor(AP_MOTORS_MOT_1, 0, AP_MOTORS_MATRIX_YAW_FACTOR_CW, 1);
если не ошибаюсь
первый аргумент - указатель на номер выхода для мотора
второй - угол установки мотора
трейтий - направление вращения винта и то как повышение оборотов влияет на воздействие по яв
последний - порядок включения мотора при выполнении теста моторов

соответственно для того чтобы настроить специфическую раму нужно задать углы их установки относительно центра и яв фактор

2 months later
alexeykozin

Нас приняли в регулярные сборки тестовых и стабильных прошивок,
теперь можно не собирать самостоятельно прошивку если есть желание протестировать самые новые фичи а просто скачать самую свежую сборку.
Большое спасибо Александру Малышеву и Эндрю Тиджелу.

тут должна появиться папочка f4by firmware.ardupilot.org/Copter/latest/
это будет бинарник на ChibiOs.
Файл для загрузки имеет расширение APJ, он идентичен по структуре файлам с расширением PX4 (означает что собрано под ОС натикс)
если необходимо расширение можно изменить.

Gapey

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

alexeykozin

платы всех версий будут работать
компасы 5983 и 5883 будут также работать

у плат 2.1.2 нет сенсора боард вольтажа и сенсора серворэйл вольтажа а в остальном совместимо.
для чибиоса мы перенумеровали дигитал и аналог инпуты в соответствии с подписями на плате
под чибиосом не будет раздельных 8 пвм входов, т.к. их места занимают выходы 9-12,
поэтому следует позаботиться чтобы был приемник с ппм-сум сбас или дсм
дока тут swift-flyer.com/?page_id=83
фотка

18 days later
Antur

Подскажите пожалуйста на F4BY необходимо использовать Ваши прошивки или возможны стоковые, на которые заявлена поддержка discuss.ardupilot.org/t/…/31600?

alexeykozin

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

Antur

То есть обновить прошивку теперь можно штатно из последней версии Mission Planner?

alexeykozin
Antur:

То есть обновить прошивку теперь можно штатно из последней версии Mission Planner?

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

1 month later
Antur

Коллеги, простите криворукого любителя, но я по моему при прошивке F4BY завалил загрузчик. Дело было так…
При исполнении описанной в документации процедуре:

  • Для загрузки программного обеспечения в контроллер рекомендую использовать Mission Planner версии 1.2.99 загрузить можно отсюда (по крайней мере эта версия работает стабильнее всех) с использованием “Load custom firmware”.
    (ссылка загрузки Load custom firmware может быть недоступна если мишен планер не переведен в расширенный режим в соответствующих настройках)
  • При первой прошивке Mission Planner задал несколько вопросов касающихся какая версия платы использована:
  • сначала вопрос это апм 2+ надо ответь нет
  • второй вопрос что это “px4” надо ответить да
  • третий вопрос это пиксавк - ответ любой
  • Далее дождаться вопроса о перезагрузке…и вот тут вопроса я не дождаться и нажал ресет…
    Теперь при подключении полетника к USB порту не определяется сом порт, компьютер ругается что подключенное устройство не опознано, в диспетчере подключений вместо нормального порта так же висит неопознанное USB устройство…
    Подскажите, можно чем то оживить полетник? Обещаю больше так не делать :о)
alexeykozin

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

и через программку dfuse demo от стм влить туда бутлоадер

чисто теоретически есть еще и прошивка бут + прошива два в одном, она в регулятных сборках под чибиос firmware.ardupilot.org/Copter/latest/F4BY/

arb

но я по моему при прошивке у F4BY завалил загрузчик.

А что хоть решили прошить?

Antur

Перемычка boot возле кнопки Reset?
Замыкаем Boot, с замкнутой перемычкой вставляем USB и потом нажимаем Reset? Так?

alexeykozin

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

Antur
alexeykozin:

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

Все, порт появился…пошел искать dfuse demo…

Antur:

Все, порт появился…пошел искать dfuse demo…

Нашел, подключился в режиме DFU…где взять файл загрузчика?

Нашел…

Antur
alexeykozin:

каквсегда в аттаче к странице hobby.msdatabase.ru/project-updates/…/f4by

Алексей, большое спасибо, на arduplane 3.7.1 контроллер завелся! На сегодня хорош, завтра начну осваивать настройку…