Как запустить несколько roscore/master на нескольких машинах?
Мой проект заключается в том, чтобы заставить "наземную" станцию наземной станции взаимодействовать с несколькими Raspberry-Pi и несколькими Arduino ... Могу ли я запустить более одного roscore для запуска ROS на нескольких компьютерах, чтобы избежать единой точки отказа.
1 ответ
Вы можете взглянуть на ROS Network, так как я думаю, что она делает именно то, что вам нужно.
Например, скажем, у вас есть две машины M1(IP1)
& M2(IP2)
которые работают под ROS, и вы хотите, чтобы они обменивались данными (ROS msg, srv...) друг с другом. Сначала убедитесь, что they are reachable and are pinging each other successfully
, во-вторых, давайте предположим, что вы хотите M1 to be the ROS master
, поэтому настройте машины следующим образом:
in M1 : $export ROS_MASTER_URI=http://IP1:11311
in M2 : $export ROS_MASTER_URI=http://IP1:11311
Чтобы убедиться, что сеть хорошо настроена, start ROS master ($roscore) in M1
а также ($rostopic list) in M2
и вы должны увидеть темы, которые публикуются across the network (in M1 & M2)
,
Иногда возникают проблемы с синхронизацией (пакеты моделирования, большие данные, медленное соединение...), тогда вы можете использовать ntp для синхронизации ваших взаимосвязанных машин.
sudo apt-get install ntp
как обсуждено в этой теме.
Приветствия.