DroneKit - 设置RTL高度

时间:2016-06-30 10:38:44

标签: dronekit-python

我希望我的直升机能够在特定高度恢复发射,现在我正在运行ArduPilot SITL上的所有东西。首先,我尝试使用simple_goto()

vehicle.commands.download()
vehicle.commands.wait_ready()
finish_location = deepcopy(vehicle.home_location)
finish_location.alt = flight_altitude
vehicle.simple_goto(finish_location)

simple_goto()适用于其他位置,但是当我使用vehicle.home_location时,它会导致直升机下降到-7.5m的高度。什么是更直升机只是下降,它不会飞到finish_location。

所以我尝试使用RTL模式

self.vehicle.mode = VehicleMode("RTL")

效果很好,但是我无法找到将RTL高度设置为我想要的flight_altitude参数的方法,它默认运行15米。

2 个答案:

答案 0 :(得分:0)

下面的代码工作正常。

vehicle.commands.download()
vehicle.commands.wait_ready()
target_location = LocationGlobalRelative(0, 0, 0)
target_location.lat = vehicle.home_location.lat
target_location.lon = vehicle.home_location.lon
target_location.alt = target_altitude

我仍然不明白为什么

vehicle.commands.download()
vehicle.commands.wait_ready()
finish_location = deepcopy(vehicle.home_location)
finish_location.alt = flight_altitude
vehicle.simple_goto(finish_location)

不起作用。

答案 1 :(得分:0)

设置RTL高度的方法是通过参数。 如果您希望它以相同的高度返回,请将参数设置为0。

vehicle.parameters['RTL_ALT'] = 0
vehicle.mode = VehicleMode("RTL")

看看文档。 http://ardupilot.org/copter/docs/parameters.html#rtl-alt-rtl-altitude