我们如何从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
,但不是。
答案 0 :(得分:0)
我假设您的意思是输出通道是此“ ch1out”,“ ch2out”值等等。
要获得该值,您只需使用这样的属性侦听器即可
@vehicle.on_attribute('ch1out')
def ch1out_listener(self, name, msg):
print '%s attribute is: %s' % (name, msg)
此函数实质上每次更改时仅打印“ ch1out”值,您可以相应地对其进行修改。您可以在Observing attribute changes处了解更多信息。
但是如果您想直接从车辆对象(如输入通道或其他属性)访问输出通道值。
(例如:vehicle.channels
,vehicle.mode
)
您可以按照Dronekit-Python文档Create Attribute in App提供的示例,将输出通道添加到车辆对象。