Подписка на удаленное издательство rospy - PullRequest
0 голосов
/ 16 марта 2020

Я реализовал публикацию / подписку, используя ros java в качестве подписчика и Роспи в качестве издателя. Тем не менее, я не получаю никаких сообщений от Роспи. Я что-то здесь пропустил?

ПОДПИСЧИК В JAVA (скажем, IP: 1.1.1.1)

public void start_on_init() {
   nodeConfiguration = NodeConfiguration.newPublic("1.1.1.1");
   nodeConfiguration.setMasterUri(new URI("http://localhost:11311/"));
   NodeMain listener = new SampleProcessor();
   NodeMainExecutor nodeMainExecutor = DefaultNodeMainExecutor.newDefault();
   nodeMainExecutor.execute(listener, nodeConfiguration);
}

class SampleProcessor extends AbstractNodeMain {
   ...
   public void onStart(ConnectedNode connectedNode) {
      Subscriber<std_msgs.String> subscriber = connectedNode.newSubscriber("sample_topic", std_msgs.String._TYPE);
      subscriber.addMessageListener(new MessageListener<std_msgs.String>() {
         @Override
         public void onNewMessage(std_msgs.String message) {
            logger.info(message.getData());
   ...

ИЗДАТЕЛЬ В PYTHON (скажем, IP: 1.1.1.2)

sample_publisher = rospy.Publisher("sample_topic", String , queue_size=10)
sample_publisher.publish(some_json_data)

Экспортированный главный uri как переменная env перед запуском python сценария с использованием сценария оболочки

export ROS_MASTER_URI=http://1.1.1.1:11311

1 Ответ

0 голосов
/ 23 марта 2020

Я думаю, есть только шанс, что узлы не находятся в одном и том же пространстве. Где работает Роскор? Экспортируется ли IP-адрес главного компьютера как ROS_MASTER_URI на подчиненном компьютере? Я думаю, вам вряд ли стоит изучать настройку сети в ROS здесь

...