[英]JRC JJ1000 + dronekit >> ERROR:dronekit.mavlink:Exception in MAVLink input loop
我正在尝试使用dronekit + python 连接JRC JJ1000 无人机。 执行连接命令时:
dronekit.connect('com3', baud=115200, heartbeat_timeout=30)
我收到以下错误:
ERROR:dronekit.mavlink:Exception in MAVLink input loop
Traceback (most recent call last):
File "C:\Python37\lib\site-packages\dronekit\mavlink.py", line 211, in mavlink_thread_in
fn(self)
File "C:\Python37\lib\site-packages\dronekit\__init__.py", line 1371, in listener
self._heartbeat_error)
dronekit.APIException: No heartbeat in 5 seconds, aborting.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python37\lib\site-packages\dronekit\__init__.py", line 3166, in connect
vehicle.initialize(rate=rate, heartbeat_timeout=heartbeat_timeout)
File "C:\Python37\lib\site-packages\dronekit\__init__.py", line 2275, in initialize
raise APIException('Timeout in initializing connection.')
dronekit.APIException: Timeout in initializing connection.
我没有留下任何商店,但没有任何进展。 我还尝试了 Python 2.7 和 3.7,结果相同。
我遇到了同样的错误。 我在 docker 容器中使用一些自定义代码来运行带有dronekit 和ArduPilot 的模拟。 该错误是间歇性的。 到目前为止,让错误停止的唯一方法似乎是:
也许这些问题以某种方式相关。 在我看来,该连接可能正在被前一个实例使用,并且没有正确关闭。 由于等待 vmmem 释放资源似乎可以修复它。 如果有人找到一个更好的解决方案,我会更喜欢!
我们正在使用这样的 python 代码来连接:
from dronekit import connect
...
# try to connect 5 times
while connected == False and fails < 5:
try:
vehicle = connect(connection_string, wait_ready=True)
except:
fails += 1
time.sleep(3)
print("Failed to connect to local mavlink sleeping for 3 seconds")
else:
connected = True
其中 connection_string 的形式为:
"tcp:host:port"
此外,文档指出“如果波特率设置不正确,连接可能会因超时错误而失败。最好明确设置波特率。” 你确定你有正确的波特率吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.