У меня возникла эта проблема с ранними RTL в Mavproxy.py, что приводило к несовместимости производительности с симуляциями SITL в python.
Основная идея этого скрипта на python - просто привыкнуть к командам vehicle.simple_goto ().
Это скрипт Python, который я сейчас запускаю. По сути, это прямо из примеров, приведенных сообществом drone-kit.
arm_and_takeoff(10)
print "Going towards first point for 30 seconds ..."
point1 = LocationGlobalRelative(-35.361354, 149.165218, 20)
vehicle.simple_goto(point1, groundspeed=3)
# sleep so we can see the change in map
time.sleep(30)
print "Going towards second point for 30 seconds ..."
point2 = LocationGlobalRelative(-35.363244, 149.168801, 20)
vehicle.simple_goto(point2, groundspeed=10)
# sleep so we can see the change in map
time.sleep(30)
print "Returning to Launch"
vehicle.mode = VehicleMode("RTL")
Это вывод, который я получаю на моей консоли, где работает Mavproxy.py.
GUIDED> Mode GUIDED
APM: Initialising APM...
Got MAVLink msg: COMMAND_ACK {command : 400, result : 0}
ARMED
Arming checks disabled
Got MAVLink msg: COMMAND_ACK {command : 22, result : 0}
Got MAVLink msg: COMMAND_ACK {command : 178, result : 0}
Got MAVLink msg: MISSION_ACK {target_system : 255, target_component : 0, type : 0, mission_type : 0}
height 10
Got MAVLink msg: MISSION_ACK {target_system : 255, target_component : 0, type : 0, mission_type : 0}
Got MAVLink msg: COMMAND_ACK {command : 178, result : 0}
Flight battery 90 percent
RTL> Mode RTL
Got MAVLink msg: MISSION_ACK {target_system : 255, target_component :
0, type : 0, mission_type : 0}
Got MAVLink msg: COMMAND_ACK {command : 178, result : 0}
Got MAVLink msg: COMMAND_ACK {command : 11, result : 0}
Flight battery 80 percent
height 0
APM: DISARMING MOTORS
DISARMED
Flight battery 70 percent
Что я должен ожидать увидеть в приложении QGroundControl, так это то, что моделируемый беспилотник взлетает и движется к 3 различным координатам в течение 30 секунд каждый раз, прежде чем вернуться на исходную стартовую площадку.
Однако я замечаю, что в сценарии Mavlink дрон, по-видимому, преждевременно входит в режим RTL (строка 13 в выводе консоли Mavproxy.py). Скрипт python по-прежнему отправляет команды и работает, как и должно, в правильное время. Проблема с ранним RTL заключается в том, что путь моего беспилотника SITL совершенно непредсказуем, так как ранний RTL иногда появляется в промежутке от первых 15 секунд до 80 секунд во время выполнения.
Я бы хотел знать, почему это происходит, и как я могу от этого избавиться.
Заранее спасибо за вашу помощь.