[英]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.