docker中运行的Python连接到主机上的MAVProxy

2024-04-29 13:05:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在docker容器中使用dronekit python,并尝试使用以下命令连接到主机(Mac OSX)上运行的MAVProxy实例:

vehicle = connect('udp:host.docker.internal:14551', wait_ready=True)

但是我得到了以下错误:

File "/usr/local/lib/python3.7/site-packages/pymavlink/mavutil.py", line 1015, in __init__
self.port.bind((a[0], int(a[1])))

OSError: [Errno 99] Cannot assign requested address

有人知道这里有什么问题吗?当我在主机上本地运行python脚本时,我能够使用上面的命令成功地连接,但当我在docker容器中运行python脚本时,就不能了

我发现了一个类似的stackoverflow问题here,但被接受的答案对我来说并不适用。不确定我是否需要暴露端口或类似的东西

以下是我在主机上运行的启动MAVProxy的命令: mavproxy.py --master=127.0.0.1:14550 --out udp:127.0.0.1:14551 --out udp:10.55.222.120:14550 --out udp:127.0.0.1:14552


Tags: 实例dockerpy命令脚本hostmacconnect
1条回答
网友
1楼 · 发布于 2024-04-29 13:05:35

我最终使主机上的MAVProxy和docker flask容器中的无人机工具包python正确连接

Seemus790在这个gitter thread中的回答成功了

工作解决方案: 主机上的MAVProxy(在我的例子中是Mac OS)

mavproxy.py  master=127.0.0.1:14550  out udp:127.0.0.1:14551  out udp:10.55.222.120:14550  out=tcpin:0.0.0.0:14552

docker容器中的dronekit python命令:

vehicle = connect('tcp:host.docker.internal:14552', wait_ready=True)

诀窍是mavproxy命令的out=tcpin:0.0.0:14552部分,它被记录为here

相关问题 更多 >