获取ardupilot输出通道

时间:2018-11-14 08:57:32

标签: dronekit-python

我们如何从dronekit-python获取ardupilot的输出通道值?

我们可以从vehicle.channels获取输入通道,但是找不到与输出通道类似的东西。

编辑:

from time import sleep
from dronekit import connect
import dronekit_sitl

sitl = dronekit_sitl.start_default()
connection_string = sitl.connection_string()

vehicle = connect(connection_string,wait_ready=True)

while not vehicle.is_armable:
    sleep(1)
    print"Initializing"

vehicle.armed = True
while not vehicle.armed:
    print "Arming"
    sleep(1)
print "Armed"

@vehicle.on_attribute('ch1out')
def ch1out_listener(self, name, msg):
    print '%s attribute is: %s' % (name, msg)

for i in range(1000,2000,100):
    vehicle.channels.overrides['3']=i
    sleep(1)

vehicle.close()

每次更新频道3时,它应该打印ch1out,但不是。

1 个答案:

答案 0 :(得分:0)

我假设您的意思是输出通道是此“ ch1out”,“ ch2out”值等等。

Mission Planner Status Message

要获得该值,您只需使用这样的属性侦听器即可

@vehicle.on_attribute('ch1out')
def ch1out_listener(self, name, msg):
    print '%s attribute is: %s' % (name, msg)

此函数实质上每次更改时仅打印“ ch1out”值,您可以相应地对其进行修改。您可以在Observing attribute changes处了解更多信息。

但是如果您想直接从车辆对象(如输入通道或其他属性)访问输出通道值。

(例如:vehicle.channelsvehicle.mode

您可以按照Dronekit-Python文档Create Attribute in App提供的示例,将输出通道添加到车辆对象。