繁体   English   中英

JRC JJ1000 +dronekit >> ERROR:dronekit.mavlink:MAVLink 输入循环中的异常

[英]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 的模拟。 该错误是间歇性的。 到目前为止,让错误停止的唯一方法似乎是:

  • 关闭所有 docker 容器。
  • 打开 windows 任务管理器并等待 vmmem 降低内存使用率(5-10m)。
  • 再试一次。

也许这些问题以某种方式相关。 在我看来,该连接可能正在被前一个实例使用,并且没有正确关闭。 由于等待 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM