0
$\begingroup$

Rosanswers logo

I have a problem with topic publisher/subscriber integration in RosJava when using the rosjava version of RosCore. I can execute the following test successfully where multiple subscribers attach to a publisher.

public void testOnePublisherToManySubscriber() throws InterruptedException {
        nodeConfiguration.setNodeName("publisher");
        Node publisherNode = nodeFactory.newNode(nodeConfiguration);

        CountDownPublisherListener<org.ros.message.std_msgs.String> publisherListener =
            CountDownPublisherListener.newDefault();
        Publisher<org.ros.message.std_msgs.String> publisher =
            publisherNode.newPublisher("foo", "std_msgs/String");
        publisher.addListener(publisherListener);

        final org.ros.message.std_msgs.String helloMessage = new org.ros.message.std_msgs.String();
        helloMessage.data = "Hello, ROS!";

        final CountDownLatch messageReceived = new CountDownLatch(1);
        nodeConfiguration.setNodeName("subscriber");
        Node subscriberNode = nodeFactory.newNode(nodeConfiguration);

        CountDownSubscriberListener<org.ros.message.std_msgs.String> subscriberListener =
            CountDownSubscriberListener.newDefault();
        
        CountDownSubscriberListener<org.ros.message.std_msgs.String> subscriberListener2 =
                CountDownSubscriberListener.newDefault();
        
        Subscriber<org.ros.message.std_msgs.String> subscriber1 =
            subscriberNode.newSubscriber("foo", "std_msgs/String");
        subscriber1.addMessageListener(new MessageListener<org.ros.message.std_msgs.String>() {
          @Override
          public void onNewMessage(org.ros.message.std_msgs.String message) {
            assertEquals(helloMessage, message);
            messageReceived.countDown();
          }
        });
        subscriber1.addSubscriberListener(subscriberListener);
        
        Subscriber<org.ros.message.std_msgs.String> subscriber2 =
                subscriberNode.newSubscriber("foo", "std_msgs/String");
            subscriber2.addMessageListener(new MessageListener<org.ros.message.std_msgs.String>() {
              @Override
              public void onNewMessage(org.ros.message.std_msgs.String message) {
                assertEquals(helloMessage, message);
                messageReceived.countDown();
              }
            });
            subscriber2.addSubscriberListener(subscriberListener2);

        assertTrue(publisherListener.awaitMasterRegistrationSuccess(1, TimeUnit.SECONDS));
        assertTrue(subscriberListener.awaitMasterRegistrationSuccess(1, TimeUnit.SECONDS));

        RepeatingPublisher<org.ros.message.std_msgs.String> repeatingPublisher =
            new RepeatingPublisher<org.ros.message.std_msgs.String>(publisher, helloMessage, 1000,
                executorService);
        repeatingPublisher.start();

        assertTrue(messageReceived.await(1, TimeUnit.SECONDS));

        repeatingPublisher.cancel();
        publisher.shutdown();
        subscriber1.shutdown();
        subscriber2.shutdown();
      }

However, if I fire up a RosCore on my own with something like:

  public static void main(String[] argv){
        RosCore core;
        if(argv.length == 1)
            core = newPublic(Integer.valueOf(argv[0]));
        else
            core = newPublic(11311);
        
        core.start();
      }

And then I use RosRun to execute the Talker node, it registers successfully. But then if I attempt to start multiple listeners an after the first fail. Subsequently... other pub/sub features fail to work properly. For example, starting a listener prior to a publisher. What am I doing wrong?

I'm executing the code in Eclipse on Windows, where I execute RosRun and then pass the package as an argument. After executing the second listener I get the following from RosCore:

Jan 17, 2012 5:02:11 PM org.ros.internal.node.server.MasterServer start
INFO: Starting master server.
Jan 17, 2012 5:02:20 PM org.ros.internal.node.server.MasterServer registerPublisher
INFO: Registering publisher: PublisherIdentifier<SlaveIdentifier</talker, http://127.0.0.1:55060>, TopicIdentifier</chatter>>
Jan 17, 2012 5:02:20 PM org.ros.internal.node.server.MasterServer publisherUpdate
INFO: Publisher update: /chatter
Jan 17, 2012 5:02:20 PM org.ros.internal.node.server.MasterServer registerPublisher
INFO: Registering publisher: PublisherIdentifier<SlaveIdentifier</talker, http://127.0.0.1:55060>, TopicIdentifier</rosout>>
Jan 17, 2012 5:02:20 PM org.ros.internal.node.server.MasterServer publisherUpdate
INFO: Publisher update: /rosout
Jan 17, 2012 5:02:26 PM org.ros.internal.node.server.MasterServer registerPublisher
INFO: Registering publisher: PublisherIdentifier<SlaveIdentifier</Listener1, http://127.0.0.1:55070>, TopicIdentifier</rosout>>
Jan 17, 2012 5:02:26 PM org.ros.internal.node.server.MasterServer publisherUpdate
INFO: Publisher update: /rosout
Jan 17, 2012 5:02:26 PM org.ros.internal.node.server.MasterServer registerSubscriber
INFO: Registering subscriber: SubscriberIdentifier<SlaveIdentifier</Listener1, http://127.0.0.1:55070>, TopicIdentifier</chatter>>
Jan 17, 2012 5:02:37 PM org.ros.internal.node.server.MasterServer registerSubscriber
INFO: Registering subscriber: SubscriberIdentifier<SlaveIdentifier</Listener1, http://127.0.0.1:55088>, TopicIdentifier</chatter>>
Jan 17, 2012 5:02:37 PM org.ros.internal.node.server.MasterServer addSlave
WARNING: Existing slave SlaveIdentifier</Listener1, http://127.0.0.1:55070> will be shutdown.
Jan 17, 2012 5:02:37 PM org.ros.internal.node.server.MasterServer registerPublisher
INFO: Registering publisher: PublisherIdentifier<SlaveIdentifier</Listener1, http://127.0.0.1:55088>, TopicIdentifier</rosout>>
Jan 17, 2012 5:02:37 PM org.ros.internal.node.server.MasterServer addSlave
WARNING: Existing slave SlaveIdentifier</Listener1, http://127.0.0.1:55070> will be shutdown.
Jan 17, 2012 5:02:37 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: I/O exception (org.apache.commons.httpclient.NoHttpResponseException) caught when processing request: The server 127.0.0.1 failed to respond
Jan 17, 2012 5:02:37 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: Retrying request
Jan 17, 2012 5:02:37 PM org.apache.xmlrpc.server.XmlRpcErrorLogger log
SEVERE: Failed to invoke method registerSubscriber in class org.ros.internal.node.xmlrpc.MasterXmlRpcEndpointImpl: java.net.SocketException: Software caused connection abort: recv failed
org.apache.xmlrpc.common.XmlRpcInvocationException: Failed to invoke method registerSubscriber in class org.ros.internal.node.xmlrpc.MasterXmlRpcEndpointImpl: java.net.SocketException: Software caused connection abort: recv failed
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:129)
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHandler.java:106)
    at org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:46)
    at org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:86)
    at org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:200)
    at org.apache.xmlrpc.webserver.Connection.run(Connection.java:208)
    at org.apache.xmlrpc.util.ThreadPool$Poolable$1.run(ThreadPool.java:68)
Caused by: java.lang.RuntimeException: java.net.SocketException: Software caused connection abort: recv failed
    at org.ros.internal.node.xmlrpc.XmlRpcClientFactory$1.invoke(XmlRpcClientFactory.java:157)
    at $Proxy0.shutdown(Unknown Source)
    at org.ros.internal.node.client.SlaveClient.shutdown(SlaveClient.java:62)
    at org.ros.internal.node.server.MasterServer.addSlave(MasterServer.java:169)
    at org.ros.internal.node.server.MasterServer.registerSubscriber(MasterServer.java:218)
    at org.ros.internal.node.xmlrpc.MasterXmlRpcEndpointImpl.registerSubscriber(MasterXmlRpcEndpointImpl.java:122)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:115)
    ... 6 more
Caused by: java.net.SocketException: Software caused connection abort: recv failed
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.io.BufferedInputStream.fill(Unknown Source)
    at java.io.BufferedInputStream.read(Unknown Source)
    at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
    at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
    at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
    at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
    at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
    at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
    at org.apache.xmlrpc.client.XmlRpcCommonsTransport.writeRequest(XmlRpcCommonsTransport.java:227)
    at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:151)
    at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143)
    at org.apache.xmlrpc.client.XmlRpcClientWorker$1.run(XmlRpcClientWorker.java:80)
    at java.lang.Thread.run(Unknown Source)
Caused by:
java.lang.RuntimeException: java.net.SocketException: Software caused connection abort: recv failed
    at org.ros.internal.node.xmlrpc.XmlRpcClientFactory$1.invoke(XmlRpcClientFactory.java:157)
    at $Proxy0.shutdown(Unknown Source)
    at org.ros.internal.node.client.SlaveClient.shutdown(SlaveClient.java:62)
    at org.ros.internal.node.server.MasterServer.addSlave(MasterServer.java:169)
    at org.ros.internal.node.server.MasterServer.registerSubscriber(MasterServer.java:218)
    at org.ros.internal.node.xmlrpc.MasterXmlRpcEndpointImpl.registerSubscriber(MasterXmlRpcEndpointImpl.java:122)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:115)
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHandler.java:106)
    at org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:46)
    at org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:86)
    at org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:200)
    at org.apache.xmlrpc.webserver.Connection.run(Connection.java:208)
    at org.apache.xmlrpc.util.ThreadPool$Poolable$1.run(ThreadPool.java:68)
Caused by: java.net.SocketException: Software caused connection abort: recv failed
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.io.BufferedInputStream.fill(Unknown Source)
    at java.io.BufferedInputStream.read(Unknown Source)
    at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
    at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
    at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
    at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
    at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
    at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
    at org.apache.xmlrpc.client.XmlRpcCommonsTransport.writeRequest(XmlRpcCommonsTransport.java:227)
    at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:151)
    at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143)
    at org.apache.xmlrpc.client.XmlRpcClientWorker$1.run(XmlRpcClientWorker.java:80)
    at java.lang.Thread.run(Unknown Source)

From the second listener I get:

   Loading node class: org.ros.tutorials.pubsub.Listener
Jan 17, 2012 5:02:37 PM org.ros.internal.node.client.Registrar callMaster
SEVERE: Exception caught while communicating with master.
Jan 17, 2012 5:02:37 PM org.ros.internal.node.topic.DefaultSubscriber$1 onMasterRegistrationFailure
INFO: Subscriber registration failed: Subscriber<TopicDefinition<TopicIdentifier</chatter>, MessageDefinition<sensor_msgs/NavSatFix, 2d3a8cd499b9b4a0249fb98fd05cfa48>>>
Jan 17, 2012 5:02:41 PM org.ros.internal.node.client.Registrar callMaster
SEVERE: Exception caught while communicating with master.
Jan 17, 2012 5:02:41 PM org.ros.internal.node.topic.DefaultPublisher$1 onMasterRegistrationFailure
INFO: Publisher registration failed: Publisher<PublisherDefinition<PublisherIdentifier<SlaveIdentifier</Listener1, http://127.0.0.1:55088>, TopicIdentifier</rosout>>, TopicDefinition<TopicIdentifier</rosout>, MessageDefinition<rosgraph_msgs/Log, acffd30cd6b6de30f120938c17c593fb>>>>
Jan 17, 2012 5:02:46 PM org.ros.internal.node.client.Registrar callMaster
SEVERE: Exception caught while communicating with master.
Jan 17, 2012 5:02:46 PM org.ros.internal.node.topic.DefaultSubscriber$1 onMasterRegistrationFailure
INFO: Subscriber registration failed: Subscriber<TopicDefinition<TopicIdentifier</chatter>, MessageDefinition<sensor_msgs/NavSatFix, 2d3a8cd499b9b4a0249fb98fd05cfa48>>>
Jan 17, 2012 5:02:50 PM org.ros.internal.node.client.Registrar callMaster
SEVERE: Exception caught while communicating with master.
Jan 17, 2012 5:02:50 PM org.ros.internal.node.topic.DefaultPublisher$1 onMasterRegistrationFailure
INFO: Publisher registration failed: Publisher<PublisherDefinition<PublisherIdentifier<SlaveIdentifier</Listener1, http://127.0.0.1:55088>, TopicIdentifier</rosout>>, TopicDefinition<TopicIdentifier</rosout>, MessageDefinition<rosgraph_msgs/Log, acffd30cd6b6de30f120938c17c593fb>>>>
Jan 17, 2012 5:02:55 PM org.ros.internal.node.client.Registrar callMaster
SEVERE: Exception caught while communicating with master.
Jan 17, 2012 5:02:55 PM org.ros.internal.node.topic.DefaultSubscriber$1 onMasterRegistrationFailure
INFO: Subscriber registration failed: Subscriber<TopicDefinition<TopicIdentifier</chatter>, MessageDefinition<sensor_msgs/NavSatFix, 2d3a8cd499b9b4a0249fb98fd05cfa48>>>
Jan 17, 2012 5:02:59 PM org.ros.internal.node.client.Registrar callMaster
SEVERE: Exception caught while communicating with master.
Jan 17, 2012 5:02:59 PM org.ros.internal.node.topic.DefaultPublisher$1 onMasterRegistrationFailure
INFO: Publisher registration failed: Publisher<PublisherDefinition<PublisherIdentifier<SlaveIdentifier</Listener1, http://127.0.0.1:55088>, TopicIdentifier</rosout>>, TopicDefinition<TopicIdentifier</rosout>, MessageDefinition<rosgraph_msgs/Log, acffd30cd6b6de30f120938c17c593fb>>>>
Jan 17, 2012 5:03:04 PM org.ros.internal.node.client.Registrar callMaster
SEVERE: Exception caught while communicating with master.

Some more information...

I added another test where I use the standard publisher/subscribers.

public void testOnePublisherToManySubscriberNoLatch() throws InterruptedException { nodeConfiguration.setNodeName("publisher"); Node publisherNode = nodeFactory.newNode(nodeConfiguration);

final Publisher<org.ros.message.std_msgs.String> publisher = publisherNode
        .newPublisher("foo", "std_msgs/String");

final org.ros.message.std_msgs.String msg = new org.ros.message.std_msgs.String();

publisherNode.executeCancellableLoop(new CancellableLoop() {
    private int sequenceNumber;

    @Override
    protected void setup() {
        sequenceNumber = 0;
    }

    @Override
    protected void loop() throws InterruptedException {

        msg.data = "Hello! " + sequenceNumber;

        publisher.publish(msg);
        sequenceNumber++;
        Thread.sleep(1000);
    }
});

nodeConfiguration.setNodeName("subscriber1");
Node subscriberNode1 = nodeFactory.newNode(nodeConfiguration);

Subscriber<org.ros.message.std_msgs.String> subscriber1 = subscriberNode1
        .newSubscriber("foo", "std_msgs/String");
subscriber1
        .addMessageListener(new MessageListener<org.ros.message.std_msgs.String>() {
            @Override
            public void onNewMessage(
                    org.ros.message.std_msgs.String message) {
                System.out.println("Listener1:" + message.data);
            }
        });

nodeConfiguration.setNodeName("subscriber2");
Node subscriberNode2 = nodeFactory.newNode(nodeConfiguration);
Subscriber<org.ros.message.std_msgs.String> subscriber2 = subscriberNode2
        .newSubscriber("foo", "std_msgs/String");
subscriber2
        .addMessageListener(new MessageListener<org.ros.message.std_msgs.String>() {
            @Override
            public void onNewMessage(
                    org.ros.message.std_msgs.String message) {
                System.out.println("Listener2:" + message.data);
            }
        });

subscriber1.shutdown();
subscriber2.shutdown();
publisher.shutdown();

} This works as desired. Is it somehow related to the node configuration / hostname resolution? I don't have these issues if I use the regular rosmaster in linux.

Running the same test, but with a CPP publisher and a CPP listener on another host in addition to the two subscribers on the same host as the master, I get the following errors:

Jan 17, 2012 6:15:04 PM org.ros.internal.node.server.MasterServer registerPublisher
INFO: Registering publisher: PublisherIdentifier<SlaveIdentifier</subscriber2, http://192.168.1.113:56473>, TopicIdentifier</rosout>>
Jan 17, 2012 6:15:04 PM org.ros.internal.node.server.MasterServer publisherUpdate
INFO: Publisher update: /rosout
Jan 17, 2012 6:15:04 PM org.apache.xmlrpc.server.XmlRpcErrorLogger log
SEVERE: Failed to invoke method registerPublisher in class org.ros.internal.node.xmlrpc.MasterXmlRpcEndpointImpl: 
org.apache.xmlrpc.common.XmlRpcInvocationException: Failed to invoke method registerPublisher in class org.ros.internal.node.xmlrpc.MasterXmlRpcEndpointImpl: 
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:129)
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHandler.java:106)
    at org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:46)
    at org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:86)
    at org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:200)
    at org.apache.xmlrpc.webserver.Connection.run(Connection.java:208)
    at org.apache.xmlrpc.util.ThreadPool$Poolable$1.run(ThreadPool.java:68)
Caused by: org.ros.exception.RemoteException: 
    at org.ros.internal.node.response.Response.fromListChecked(Response.java:115)
    at org.ros.internal.node.client.SlaveClient.publisherUpdate(SlaveClient.java:119)
    at org.ros.internal.node.server.MasterServer.publisherUpdate(MasterServer.java:195)
    at org.ros.internal.node.server.MasterServer.registerPublisher(MasterServer.java:259)
    at org.ros.internal.node.xmlrpc.MasterXmlRpcEndpointImpl.registerPublisher(MasterXmlRpcEndpointImpl.java:103)
    at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:115)
    ... 6 more
Caused by:
org.ros.exception.RemoteException: 
    at org.ros.internal.node.response.Response.fromListChecked(Response.java:115)
    at org.ros.internal.node.client.SlaveClient.publisherUpdate(SlaveClient.java:119)
    at org.ros.internal.node.server.MasterServer.publisherUpdate(MasterServer.java:195)
    at org.ros.internal.node.server.MasterServer.registerPublisher(MasterServer.java:259)
    at org.ros.internal.node.xmlrpc.MasterXmlRpcEndpointImpl.registerPublisher(MasterXmlRpcEndpointImpl.java:103)
    at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:115)
    at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHandler.java:106)
    at org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:46)
    at org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:86)
    at org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:200)
    at org.apache.xmlrpc.webserver.Connection.run(Connection.java:208)
    at org.apache.xmlrpc.util.ThreadPool$Poolable$1.run(ThreadPool.java:68)

Jan 17, 2012 6:15:04 PM org.ros.internal.node.client.Registrar callMaster
SEVERE: Exception caught while communicating with master.
Jan 17, 2012 6:15:04 PM org.ros.internal.node.topic.DefaultPublisher$1 onMasterRegistrationFailure
INFO: Publisher registration failed: Publisher<PublisherDefinition<PublisherIdentifier<SlaveIdentifier</subscriber2, http://192.168.1.113:56473>, TopicIdentifier</rosout>>, TopicDefinition<TopicIdentifier</rosout>, MessageDefinition<rosgraph_msgs/Log, acffd30cd6b6de30f120938c17c593fb>>>>
Listener2:hello world 1733

Looks like perhaps a RosOut issue...


Originally posted by stevefturner on ROS Answers with karma: 26 on 2012-01-17

Post score: 1


Original comments

Comment by stevefturner on 2012-01-18:
I've narrowed it down to a the publisherUpdate call in SlaveClient. If I attempt to register two publishers on the same topic on two different hosts, I get the failure: org.apache.xmlrpc.common.XmlRpcInvocationException: Failed to invoke method registerPublisher in class org.ros.internal.node.xmlrpc

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

I think this is a bug in the current rosjava implementation of roscore at head. The released version of rosjava should not have this problem. We're working to resolve this at head.


Originally posted by damonkohler with karma: 3838 on 2012-01-23

This answer was ACCEPTED on the original site

Post score: 2

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.