Как установить режим GUIDED_NOGPS с помощью Arducopter на Dronekit?

Как заставить Arducopter войти в режим guide_nogps? Я планирую работать в среде, где отсутствует GPS, и, хотя в других сообщениях указано, что это возможно с помощью guide-nogps, я не вижу, как установить этот режим. Использование Dronekit (python) Vehicle.mode = VehicleMode("Guided_NoGPS") возвращает ошибку, указывающую на отсутствие такого режима.

Mavlink также отказывается подтверждать режим.

Моя установка — это Pixhawk с Arducopter и компаньоном Raspberry Pi. Прошивка v3.5 dev и v3.4 на DroneKit-SITL (для этого я скомпилировал свой собственный бинарник v3.4).

Все остальное работает отлично (например, управление через set_attitude_target благодаря этому сообщению Как настроить отношение коптеров через DroneKit -- SET_ATTITUDE_TARGET не работает ) - Мне просто нужно иметь возможность зайти в помещение!

Кроме того, я заметил в этом сообщении до выпуска Arducopter v3.4 Управление движением без GPS, что может потребоваться оптический датчик потока. Выполнилось ли это требование?

Спасибо еще раз!

Все советы приветствуются.

Спасибо, Сквилтер, за помощь. Я создал функцию для изменения режима полета (20):

def set_mode(flightmode):
# create the MAV_CMD_DO_SET_MODE command
msg = vehicle.message_factory.command_long_encode(
    0, 0,    # target system, target component
    mavutil.mavlink.MAV_CMD_DO_SET_MODE, #command
    0, #confirmation
    flightmode,
    0, 0, 0, 0, 0, 0 )
# send command to vehicle
vehicle.send_mavlink(msg)

Сообщение получено правильно, но не было успешно выполнено (возвращен результат 3). Одна вещь, в которой я не был уверен, это параметр 2, который, как указывает спецификация, зависит от платформы. Я поставил 0, так как не знал, что с ним делать для Arducopter.

Опять же, любые предложения приветствуются и большое спасибо!


person M Isted    schedule 30.11.2016    source источник
comment
Это досадное несоответствие с устройствами mavlink. Некоторые устройства меняют свой режим с помощью MAV_CMD_DO_SET_MODE, упакованного в command_long. Однако для ArduCopter вы должны отправить сообщение SET_MODE.   -  person squilter    schedule 01.12.2016


Ответы (2)


Попробуйте установить режим на 20. Это внутреннее представление режима. Похоже, что dronekit-python еще этого не знает.

Оптический поток требуется для нормального управляемого режима, а не для управляемого_nogps. Тем не менее, guide_nogps не позволяет отправлять запросы скорости или положения, только углы.

person squilter    schedule 30.11.2016
comment
Спасибо за это. Я попытался установить режим на 20. Консоль выдает правильный код command_ack, но результат равен 3, что, как я полагаю, означает, что это не удалось. Вот моя функция: - person M Isted; 01.12.2016
comment
Я добавлю свою функцию выше. - person M Isted; 01.12.2016

Я знаю, что этот вопрос немного устарел, но я нашел ответ. Обновите свои установки MAVProxy и PyMAVLink.

pip install -U pymavlink mavproxy

DroneKit автоматически установит их старые версии без доступных новых режимов. Вам нужны PyMAVLink >= 2.2.4 и MAVProxy >= 1.6.1.

person markrjr    schedule 17.09.2017