我正在尝试使用dronekit + JJ1000连接JRC python无人机。执行connect命令时:
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.我无所不用其极,但没有任何进展。我也尝试了Python2.7和3.7,结果是一样的。
发布于 2020-10-30 03:43:09
我一直收到相同的错误。我正在使用docker容器中的一些自定义代码来运行dronekit和ArduPilot的模拟。错误是间歇性的。到目前为止,让错误停止的唯一方法似乎是:
关闭所有docker containers.
也许这些问题是以某种方式相关的。在我看来,该连接可能正在被前一个实例使用,并且没有正确关闭。因为等待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"此外,文档还指出:“如果波特率设置不正确,连接可能会失败,并出现超时错误。最好显式设置波特率。”你确定你的波特率是正确的吗?
https://stackoverflow.com/questions/56910696
复制相似问题