我在Mavproxy.py中的早期RTL遇到了这个问题,导致python的SITL模拟的性能不一致。
这个python脚本的主要思想只是习惯了vehicle.simple_goto()命令。
这是我现在正在运行的python脚本。从本质上讲,这完全与无人机套件社区给出的示例完全一致。
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模式(Mavproxy.py控制台输出中的第13行)。 python脚本仍在正确的时间发送命令并按需运行。早期RTL发生的问题是我的SITL无人机的路径是完全不可预测的,早期RTL有时会在运行时的前15秒到80秒之间出现。
我很想知道为什么会这样,以及如何摆脱这种情况。
预先感谢您的帮助。