Thanks, Nicholas. That is the approach I will take. Damon On Wed, Jun 22, 2011 at 4:48 PM, Nicholas Butko wrote: > Damon, > One option is to take the course of "When in doubt, follow the behavior of > roscpp." In that case, when a second node registers with the same name, the > first node dies. For example, if you run > {{{ > rosrun roscpp_tutorials talker > }}} > twice, the second instance behaves normally, but the first instance shows > {{{ > [ INFO] [1308753854.115622000]: hello world 72 > [ INFO] [1308753854.215643000]: hello world 73 > [ WARN] [1308753854.285720000]: Shutdown request received. > [ WARN] [1308753854.285791000]: Reason given for shutdown: [new node > registered with same name] > [ INFO] [1308753854.315770000]: hello world 74 > }}} > Just a thought. What do you think? > --Nick > > On Wed, Jun 22, 2011 at 7:03 AM, Damon Kohler > wrote: >> >> So, I can explain what's going on, but I'll have to think about what >> the correct behavior should be. Please file an issue about this. >> >> Basically, the exception that's being thrown is correct. You should >> not try to register two nodes with the same name. >> >> The reason it still works is that you don't _have_ to register a >> subscriber in order to connect it to a publisher. At the point the >> exception is thrown, the subscriber has enough information to connect >> to the publisher. >> >> Because the master registration happens asynchronously, it doesn't >> affect your ability to connect to the publisher. To do that, we'd >> either have to wait for registration to succeed, or disconnect you >> some time in the future if it failed. Both of those options are pretty >> terrible. >> >> Damon >> >> On Tue, Jun 21, 2011 at 8:25 PM, Abhishek Verma >> wrote: >> > How about remote subscribers ? >> > I dont know if this use case exist or not but There can be remote >> > publisher/subscriber? >> > What happens in c++? Do code core refuse connection? >> > >> > Rosjava need fix ...I am seeing this exception but publisher and >> > subscriber >> > are able to communicate..(with exception) >> > >> > >> > Thanks and Regards >> > Abhishek Verma >> > >> > >> > On Tue, Jun 21, 2011 at 6:41 PM, Nicholas Butko wrote: >> >> >> >> ROS nodes must have unique names. Two start two nodes of the same type >> >> in >> >> c++, you would use the command line arguments to set the name of the >> >> nodes, >> >> which would override the default. >> >> I'm not sure if this command line argument name remapping was >> >> implemented >> >> in java, but if it wasn't, you may consider having java append a random >> >> number to the end of the node name. >> >> --Nick >> >> On Tue, Jun 21, 2011 at 10:33 AM, Abhishek Verma >> >> wrote: >> >>> >> >>> Hi Friends, >> >>> I am seeing following exception >> >>> 21-Jun-2011 18:29:01 org.apache.xmlrpc.server.XmlRpcErrorLogger log >> >>> SEVERE: Failed to invoke method registerSubscriber in class >> >>> org.ros.internal.node.xmlrpc.MasterImpl: null >> >>> org.apache.xmlrpc.common.XmlRpcInvocationException: Failed to invoke >> >>> method registerSubscriber in class >> >>> org.ros.internal.node.xmlrpc.MasterImpl: >> >>> null >> >>> 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.IllegalStateException >> >>> at >> >>> >> >>> com.google.common.base.Preconditions.checkState(Preconditions.java:129) >> >>> at >> >>> >> >>> org.ros.internal.node.server.MasterServer.addSlave(MasterServer.java:80) >> >>> at >> >>> >> >>> org.ros.internal.node.server.MasterServer.registerSubscriber(MasterServer.java:110) >> >>> at >> >>> >> >>> org.ros.internal.node.xmlrpc.MasterImpl.registerSubscriber(MasterImpl.java:123) >> >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> >>> at >> >>> >> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >> >>> at >> >>> >> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> >>> at java.lang.reflect.Method.invoke(Method.java:597) >> >>> at >> >>> >> >>> org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:115) >> >>> >> >>> My code is >> >>> //Publisher >> >>> node = new Node("Camera1", configuration); >> >>> publisher = node.createPublisher("Camera1", >> >>> org.ros.message.sensor_msgs.Image.class); >> >>> .................... >> >>> //Subscriber >> >>>  node = new Node("Camera1", configuration); >> >>>       System.out.println("ScreenView.main() Starting"); >> >>> //      final Log log = node.getLog(); >> >>>       node.createSubscriber("Camera1", new >> >>> MessageListener() { >> >>>         public void onNewMessage(org.ros.message.sensor_msgs.Image >> >>> message) { >> >>>           System.out >> >>> .println("Subscriber \"" + message + "\""); >> >>>         } >> >>>       }, org.ros.message.sensor_msgs.Image.class); >> >>> >> >>> Reason behind this exception is Nodes with same name. >> >>> If I change this name and create different nodes in publisher and >> >>> subscribers code then its fine. >> >>> Anyone has any idea why is that or we are not supposed to create node >> >>> with same name? >> >>> Thanks and Regards >> >>> Abhishek Verma >> >>> >> >>> _______________________________________________ >> >>> ros-users mailing list >> >>> ros-users@code.ros.org >> >>> https://code.ros.org/mailman/listinfo/ros-users >> >>> >> >> >> >> >> >> _______________________________________________ >> >> ros-users mailing list >> >> ros-users@code.ros.org >> >> https://code.ros.org/mailman/listinfo/ros-users >> >> >> > >> > >> > _______________________________________________ >> > ros-users mailing list >> > ros-users@code.ros.org >> > https://code.ros.org/mailman/listinfo/ros-users >> > >> > >> >> >> >> -- >> ---------------------------------------------- >> Damon Kohler >> Software Engineer >> >> Google Germany GmbH >> Dienerstr. 12 >> 80331 München >> ---------------------------------------------- >> AG Hamburg, HRB 86891 >> Sitz der Gesellschaft: Hamburg >> Geschäftsführer: John Herlihy, Graham Law, Lloyd Martin, Kent Walker >> ---------------------------------------------- >> Diese E-Mail ist vertraulich. Wenn Sie nicht der richtige Adressat >> sind, leiten Sie diese bitte nicht weiter, informieren den Absender >> und löschen Sie die E-Mail und alle Anhänge. Vielen Dank. >> >> This email is confidential. If you are not the right addressee please >> do not forward it, please inform the sender, and please erase this >> e-mail including any attachments. Thanks. >> _______________________________________________ >> ros-users mailing list >> ros-users@code.ros.org >> https://code.ros.org/mailman/listinfo/ros-users > > > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users > > -- ---------------------------------------------- Damon Kohler Software Engineer Google Germany GmbH Dienerstr. 12 80331 München ---------------------------------------------- AG Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschäftsführer: John Herlihy, Graham Law, Lloyd Martin, Kent Walker ---------------------------------------------- Diese E-Mail ist vertraulich. Wenn Sie nicht der richtige Adressat sind, leiten Sie diese bitte nicht weiter, informieren den Absender und löschen Sie die E-Mail und alle Anhänge. Vielen Dank. This email is confidential. If you are not the right addressee please do not forward it, please inform the sender, and please erase this e-mail including any attachments. Thanks.