Dronekit-python работает в докере, подключаясь к MAVProxy на хосте

Я использую dronekit-python в док-контейнере и пытаюсь подключиться к экземпляру MAVProxy, работающему на моем хост-компьютере (Mac OSX), используя следующую команду:

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 локально на хосте, но не когда он работает в контейнере докеров.

Я нашел аналогичный вопрос stackoverflow здесь, но принятый ответ сделал не работает для меня. Не уверен, что мне нужно выставлять порты или что-то в этом роде.

Вот команда, которую я запускаю на своем хост-компьютере, чтобы запустить 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


person pepperpuppy    schedule 10.05.2020    source источник


Ответы (1)


Я закончил тем, что правильно подключил MAVProxy на хосте и dronekit-python в контейнере фляги докера.

Ответ Seemus790 в этой ветке gitter помог.

Рабочее решение: 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

Команда dronekit-python в контейнере докеров:

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

Хитрость заключалась в том, что --out=tcpin:0.0.0.0:14552 является частью команды mavproxy, которая задокументирована здесь

person pepperpuppy    schedule 11.05.2020
comment
Какая версия OS X? - person Greenonline; 27.03.2021
comment
@Greenonline Не уверен в версии, когда я писал этот пост, но на моей той же машине в настоящее время установлена ​​версия 10.15.7 Catalina. Скорее всего, это была довольно похожая версия год назад. - person pepperpuppy; 28.03.2021