PIXHAWK PX4 Autopilot еще одна летающая железка

alexeykozin
SovGVD:

в планере вылезает окошко с выбором MAVLink устройства, выбирают hexacopter-1.

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

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

SovGVD

логично =( тогда совершенно не понятно как например в миссии задать каманду именно гимбалу и почему команда не шлется гимбалу при шутере от пульта (когда servo или relay), хотя там как раз продкастная рассылка по идее идет на все устройва из массива routed.

У меня предположение что строка routes[i].sysid == mavlink_system.sysid как раз и не пропускает команду дальше коптера, похоже надо искать как это всё дебажить… или ftdi в разрыв провода на гимбал ставить и слушать какие команды лезут.

А вообще в AP_Mount… идет рассылка конкретно подвесу, вот как бы это всё сделать внутри кода шутера или рассылки, чтобы определенная команда улетала любой ценой в гимбал.

Попробую завтра дописать что-то вроде:

if ((routes[i].sysid == mavlink_system.sysid || (routes[i].mavtype ==MAV_TYPE_GIMBAL && msg->command==MAV_CMD_DO_DIGICAM_CONTROL)) && !sent_to_chan[routes[i].channel]) {

чтобы игорировалось условие, если гимбал и шутер

alexeykozin

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

SovGVD

тут в целом косяк в том бродкастная рассылка (похоже), в которой команда на шутер, не доходит до гимбала… и я чето не могу осознать код:

// create command long mavlink message
        mavlink_command_long_t cmd_msg;
        memset(&cmd_msg, 0, sizeof(cmd_msg));
        cmd_msg.command = MAV_CMD_DO_DIGICAM_CONTROL;
        cmd_msg.param5 = 1;
        // create message
        mavlink_message_t msg;
        mavlink_msg_command_long_encode(0, 0, &msg, &cmd_msg);

        // forward to all components
        GCS_MAVLINK::send_to_components(&msg);

вся суть в cmd_msg, но не пойму как оно переходить в msg и переходит ли вообще? mavlink_msg_command_long_encode в переменную по ссылке (в сях & по ссылке? или что-то другое?) ничего не пихает, только делает return, т.е. вроде как вывод mavlink_msg_command_long_encode надо чему то присваивать?

UPD: там какая то магиня с копированием памяти, команды cmd_msg перетекают в msg… похоже на какогое наследие старого кода, чтобы не ломать совместимость

SovGVD

Ладно, всё фигня, одни неведомые и неработающие догадки…

Костыль за который должно быть стыдно, но работает:

AP_Camera.h в private секцию:

    bool _gimbalcam_search;              // try to search gimbal
    bool _gimbalcam_initialised;              // true once the driver has been initialised
    uint8_t _gimbalcam_sysid;                 // sysid of gimbal
    uint8_t _gimbalcam_compid;                // component id of gimbal
    mavlink_channel_t _gimbalcam_chan;        // mavlink channel used to communicate with gimbal.

AP_Camera.cpp в trigger_pic после GCS_MAVLINK::send_to_components(&msg);:

    if (!_gimbalcam_search) {
        _gimbalcam_search=true;
        if (GCS_MAVLINK::find_by_mavtype(MAV_TYPE_GIMBAL, _gimbalcam_sysid, _gimbalcam_compid, _gimbalcam_chan)) {
            _gimbalcam_initialised=true;
        }
    }

    if (_gimbalcam_initialised) {
        mavlink_msg_command_long_send(_gimbalcam_chan,
                                  _gimbalcam_sysid,
                                  _gimbalcam_compid,
                                  MAV_CMD_DO_DIGICAM_CONTROL,
                                  0,
                                  0,
                                  0,
                                  0,
                                  0, 1, 0,
                                  0);
    }
Конструктор

Всем добрый день!

Не могу скачать логи с карточки при подключенной телеметрии.

Смотрю логи вынимая карточку из контроллера.

Как можно скачать логи по телеметрии на комп?

lokanaft

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

Спрашивал же перед этим у другого продавца, мол сфоткай, чё там внутри - ой, на завод я писать, они ничего не ответить, я сам сложно сломать и тд

Я его когда подключил первый раз без зуммера и провода led - он не хотел подключаться. Потом всё это подсоединил и он издавал 3 длинных 3 коротких не прекращая - всё равно не хотел подключаться, потом прошил и нормально стало. Вроде откалибровал всё, но всё равно пишет про: bad mag position что то

ions
lokanaft:

Вроде откалибровал всё, но всё равно пишет про

На rcgroups пишет, что нужно проверять распиновку разъемов, не соответствует как у пикса. Там-же дает пояснения на картинке. Он плату поставил на квадрик без внешней виброразвязки и утверждает, что полет отличный.

GocMAN
ions:

Он плату поставил на квадрик без внешней виброразвязки и утверждает, что полет отличный.

Полеуретан мягкий, все-таки виброразвязка. На вид, даже лучше чем у Pixhack (ИМХО). Потому как у того пластиковый короб виброразвязки (я очень надеялся что делают силиконовый), в котором датчики между 2 кусков ППУ.
Пробовать летать, должно все получится!

Amelor
SovGVD:

Если кому надо - выложу сборку под вашу раму, собирать всё (tri,quad,hexa,y6 и прочее) и под все контроллеры (pix* и px4*) пока лениво (хотя надо бы скрипт написать на досуге, чую это на долго).

Мне под квадрокоптер, PIxhawk контроллер обычный (не лайт и тд). Спасибо.

SovGVD
Amelor:

Мне под квадрокоптер, PIxhawk контроллер обычный (не лайт и тд). Спасибо.

“пиксы” различаются на PX4 и Pixhawk, остальное не важно

Вот nekaka.com/d/Z2CSNLW0yO
ArduCopter 3.3.2 для квадрокоптера с исправлениями NMEA протокола для работы с GPS+ГЛОНАСС
как обычно на свой страх и риск (и во вкладке Messages, последняя в MissionPlanner, лучше проверить что именно 3.3.2 и QUAD)

Есть еще вариант с фиксом спуска через ИК через storm32 подвес.

SovGVD

Вылез наконец то полетать с pixlite (goodluckbuy) на y6 раме, которая раньше была с naza.
Как обычно хорошо что отрубил проверку компаса при арминге. Дома всё идельно, пошел на улицу и ошибка компаса на аппе мигает, а в логах неведомая ошибка COMPASS-4 - что это за ошибка не смог найти, в доках только 0,1 или 2.
Полет был сугубо тестовый (летает ли вообще), компас откалибровал абы как - немного туалетил, сторон света по карте врал градусов на 5…10.
Офсеты основного компаса: -89 -20 -14. Офсеты встронного… кхм… 163 -241 -157.
Кто расскажет что за COMPASS-4 ошибка и что с ней делать?

4 код это похоже unhealthy =( И что это вдруг с ним случилось что он не здоров?
Судя по логам отключился основной компас (нули по всем осям), который на палке в ГПС модуле. Странно что дома работает. Буду проверять провод.

Мельник
SovGVD:

Дома всё идельно, пошел на улицу…

Со мной такое почти постоянно )))). Дома гоняешь пока не надоесть-все идеально,но стоит выйти на улицу-начинается невероятное )).

lokikolbasa

может кто знает почему от пиксхака, ппм энкодер при подключении мигает красный светодиод и не питает приемник от аппаратуры?

lokikolbasa
lokanaft:

Там же запаивать надо перемычку

Какую там перемычку? У меня отдельно ппм енкодер

Nesenin
lokikolbasa:

Какую там перемычку?

правая картинка нижний левый угол sj1

bawtrik
lokikolbasa:

замкнул и сгорел с искарми и дымом 😁😃

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

Hyperion

Очень прикольно
diydrones.com/forum/…/pixhawk-1mb-flash-limit
если вкратце как понял. Ранние ревизии пиксов шли с процом с 1Мб памяти. Если ардукоптеровцы не смогут уложится в мегабайт то получается эти ревизии пиксов придется так же выкинуть как и АПМ. Хотя конечно есть вариант собрать прошивку самому и выкинуть ненужные свистелки-перделки.