Управление PX4 по Mavlink

DmitrySD

Здравствуйте!

Имею следующую ситуацию.
Я подключаюсь с RaspberryPi 3 к Pixhawk и обмениваюсь с ним по Мавлинку.
Для управления в режиме Stabilized использую сообщение MANUAL_CONTROL мавлинка, в которое загоняю нужные мне тангаж, крен, и уровень газа.
Но это перестает работать, когда я включаю RC. Насколько понял, он перебивает данные, приходящие по мавлинку, и из-за этого перестают работать рули высоты и крена. Пульт нужен чисто ради безопасности. Возможно и как-то выставить. В режиме Stabilized MANUAL_CONTROL шлется на пикс с частотой 10 Гц.
Можно ли как-то заставить пикс корректно отрабатывать MANUAL_CONTROL при включенном пульте?
Спасибо

dollop

К сожалению это не возможно. PX4 поддерживает либо MANUAL_CONTROL либо RC. Одновременно никак.
Я обычно (если возникает желание как у вас “подстраховаться”) использую полетный стек ArduPilot и шлю вместо отсутствующего там MANUAL_CONTROL сообщения RC_CHANNELS_OVERRIDE (хоть это и не рекомендуется, но это на сегодня единственный мне известный способ двойного управления).

DmitrySD

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

А какой пакет отвечает за настройку параметров QGC? docs.px4.io/en/…/parameter_reference.html
Конкретно интересует FW_AIRSPD_TRIM. Возможно ли менять скорость полета по маршруту в режиме Mission?

dollop

Очень хочу спросить, как сейчас организован программный интерфейс с ЛА?
Слышали ли о dronekit? Очень облегчает жизнь и позволяет сосредоточиться на решении непосредственно задачи, а не сопутствующих граблей.
Для изменения скорости полета ЛА в авторежимах у dronrkit есть функции/команды vehicle.groundspeed и vehicle.airspeed.
Если нужно изменить параметры прямо в полете, то есть функция vehicle.parameters. То есть просто пишем vehicle.parameters[‘ИМЯ_ПАРАМЕТРА’]=ЗНАЧЕНИЕ. Все для чего не нужна перезагрузка, применится мгновенно.
Синтаксис выше приведен для python, есть api для андроида.

зы. Ну и при всем уважении к PX4, много чего, что начинал с него заканчивалось сползанием на Ardu

DmitrySD
dollop:

Очень хочу спросить, как сейчас организован программный интерфейс с ЛА?
Слышали ли о dronekit? Очень облегчает жизнь и позволяет сосредоточиться на решении непосредственно задачи, а не сопутствующих граблей.
Для изменения скорости полета ЛА в авторежимах у dronrkit есть функции/команды vehicle.groundspeed и vehicle.airspeed.
Если нужно изменить параметры прямо в полете, то есть функция vehicle.parameters. То есть просто пишем vehicle.parameters[‘ИМЯ_ПАРАМЕТРА’]=ЗНАЧЕНИЕ. Все для чего не нужна перезагрузка, применится мгновенно.
Синтаксис выше приведен для python, есть api для андроида.

зы. Ну и при всем уважении к PX4, много чего, что начинал с него заканчивалось сползанием на Ardu

Софт (на C++) управляет пиксом по юсб. Отправляет и принимает мавлинковские сообщения. Про dronekit почти не слышал ничего. Но видел на сайте пикса ссылки на него. Но это уже было после того, как был сделан обмен чисто по мавлинку. А чем плох PX4?

8 months later
DmitrySD

Возможно ли по MAVLink задавать положение для пикса? Т.е., чтобы свое местоположение он брал не с GPS-приемника, а то, которое я ему скажу.

RW9UAO
DmitrySD:

озможно ли по MAVLink задавать положение для пикса? Т.е., чтобы свое местоположение он брал не с GPS-приемника, а то, которое я ему скажу

это три разные вещи.

а вообще почитайте про harware in the loop в вашем полетнике

DmitrySD
RW9UAO:

а вообще почитайте про harware in the loop в вашем полетнике

Спасибо, пикс подключен к xplane и управление есть. Там есть сообщение HIL_GPS, которое подается на пикс. В него записываю координаты, пришедшие с xplane. Вопрос в том, что можно ли это сообщение использовать не в HIL-режиме? Т.е., я формирую местоположение и подсовываю его пиксу.