我正在寻找与来自两个不同流程的同一车辆合作的帮助。
我有一个SITL实例运行。我试图从我的DroneKit脚本的主进程和同一脚本中生成的子进程连接到同一个实例。
两个连接都正常工作(在两种情况下返回MPAPIConnection对象,使用相同的@引用),但在子进程中,连接对象似乎不是实时的,并且车辆参数未更新。
在下面的示例中,无人机移动时主进程返回的位置是实际位置,但子进程返回的位置在首次启动子进程时仍保持在初始位置。
示例:
import time
from pymavlink import mavutil
import multiprocessing
class OtherProcess(multiprocessing.Process):
def __init__(self):
super(OtherProcess,self).__init__()
def run(self):
sp_api = local_connect()
sp_v = api.get_vehicles()[0]
while True:
print "SubProcess : " + str(sp_v.location)
time.sleep(1)
api = local_connect()
v = api.get_vehicles()[0]
sp = OtherProcess()
sp.start()
while True:
print "MainProcess : " + str(v.location)
time.sleep(1)
那么有没有办法从同一个mavproxy实例中的不同进程访问同一个工具?
答案 0 :(得分:0)
你应该再试一次 - DKPY2(刚刚发布)使用独立脚本,其设计理念是使用connect()函数返回的每个Vehicle对象是完全独立的。当然可以在同一个脚本中连接到不同的车辆(相同的过程),因此很可能您可以连接到同一车辆和不同的过程。