簡體   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