簡體   English   中英

Dronekit Python車輛連接超時

[英]Dronekit python vehicle connection timeout

讓Dronekit與我們的直升機配合使用會遇到一些麻煩。 到目前為止,我們已經使用SITL測試了所有內容,並且一切正常,但是這種成功並未很好地轉移到真實事物上。

我們的設置是:運行Mavproxy(通過COM9為主,Dronekit腳本和Mission Planner的UDP輸出)和基本Dronekit腳本(起飛和降落)的Windows GCS。 請參閱該圖以獲得更清晰的說明。

在此處輸入圖片說明

運行MAVProxy時,我們使用以下命令:mavproxy.exe --master = com9,57600 --out = udp:127.0.0.1:14550 --out = udp:127.0.0.1:14551 --console

我們遇到的問題是連接到車輛( http://python.dronekit.io/guide/connecting_vehicle.html ),我們能夠連接到無人機並獲得一些主板信息。 但是,在30秒鍾內我們沒有收到心跳消息,導致超時。

>>> APM:Copter V3.5.2 (4322ffda)
>>> PX4: 1d6bf64c NuttX: 1a99ba58
>>> Frame: QUAD
>>> PX4v3 0020002E 30365110 35323931

Traceback (most recent call last):
  File "C:/Users/simon/PycharmProjects/uas_lol/test_mission.py", line 32, in <module>
    vehicle = connect(connection_string, wait_ready=True, baud=57600, heartbeat_timeout=120)
  File "C:\Python27\lib\site-packages\dronekit\__init__.py", line 2849, in connect
    vehicle.wait_ready(True)
  File "C:\Python27\lib\site-packages\dronekit\__init__.py", line 2199, in wait_ready
    timeout)
dronekit.APIException: wait_ready experienced a timeout after 30 seconds.

Process finished with exit code 1

我們可以通過設置wait_ready = False來繞過超時。 使用此工具,我們可以連接到車輛並武裝無人機。 關於起飛,它僅在某些時間有效。 我們發現重置MAVProxy時,它更有可能工作(起飛)。

我想確認,使用帶有Mission Planner的udp 127.0.0.1:14550連接到無人機是否可以正常工作。

非常感謝您對我們可能做錯的任何見解,謝謝!

原來的問題是,因為我們以57600的波特率通過串行遙測進行連接,所以下載參數大約需要2分鍾,而Dronekit在30秒后會超時。

根據文檔,您可以使用heartbeat_timeout = 180( http://python.dronekit.io/automodule.html#dronekit.connect )設置超時。 但是,這實際上並沒有解決問題,因為它在30秒后仍然超時。

看來30秒可能已編碼到庫中,在下一行中將30更改為180解決了我的問題。 https://github.com/dronekit/dronekit-python/blob/754ce6223dd26179045eaa394d5df0a5f787ebb2/dronekit/ init .py#L2216

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM