2015-04-15 14:42:45 -0500 | received badge | ● Notable Question
(source)
|
2015-04-15 14:42:45 -0500 | received badge | ● Famous Question
(source)
|
2013-04-22 21:46:11 -0500 | received badge | ● Famous Question
(source)
|
2013-02-20 04:45:30 -0500 | received badge | ● Popular Question
(source)
|
2012-09-16 07:56:34 -0500 | received badge | ● Famous Question
(source)
|
2012-09-16 07:56:34 -0500 | received badge | ● Popular Question
(source)
|
2012-09-16 07:56:34 -0500 | received badge | ● Notable Question
(source)
|
2012-09-10 06:08:59 -0500 | asked a question | Repeated calls to rosjava parameter server produce unexpected results. During repeated runs with a rosjava master mixing java and C++ nodes (all on Windows, compiled with MSVC), it appeared that a socket connection was dying within the Java code. After some period of time one or more of the C++ nodes would appear to block somewhere down in OS code. Was unable to debug effectively. However, it was noted that the C++ nodes affected were making multiple default parameter calls at 1HZ to the rosjava master: nh.param<std::string>("default_param", default_param, "default_value");
After removing these calls, the nodes worked reliably. It seems like repeated calls to the java implementation of the parameter server was causing some kind of hang up. Anyone experienced this? I'll try to debug more and get a stack trace as time allows. |
2012-09-10 05:57:01 -0500 | received badge | ● Supporter
(source)
|
2012-09-05 05:44:30 -0500 | received badge | ● Famous Question
(source)
|
2012-08-20 21:15:36 -0500 | received badge | ● Notable Question
(source)
|
2012-08-16 00:40:01 -0500 | received badge | ● Popular Question
(source)
|
2012-06-25 09:47:48 -0500 | asked a question | rosjava CallerID in MessageListener Is there a simple way to get a publisher's callerID within a Subscriber/Message Listener in rosjava? I see that it gets stored in the publisher while in TcpServerHandshakeHandler.java:handleSubscriberHandshake() but do not see the subscriber having access to this. Thanks,
Steve |
2012-06-25 09:42:22 -0500 | commented question | Multiple Publishers, single subscriber - pubUpdate call fails. Damon,
I ended up modifying the pubUpdate calls in topic_manager.cpp:583 to return sub->pubUpdate(pubs); so that it returns true and thus constructs the response properly. |
2012-05-07 06:46:43 -0500 | received badge | ● Notable Question
(source)
|
2012-04-09 11:35:08 -0500 | commented question | Multiple Publishers, single subscriber - pubUpdate call fails. Looking at topic_manager.cpp:pubUpdateCallback, I see the request come in, but it will only ever return a successful XMLRPC response if pubUpdate returns true. pubUpdate always returns false in this case. Bug -- or am I missing something here? |
2012-04-09 07:59:25 -0500 | asked a question | Multiple Publishers, single subscriber - pubUpdate call fails. Here's my scenario:
I have a rosjava master running on 192.168.1.2. I create a publisher running on 192.168.1.3 with ROS_IP=192.168.1.3. (Using rostopic) I create a subscriber on 192.168.1.2 with ROS_IP=192.168.1.2, the subscriber connects successfully and starts receiving messages. (Using roscpp). I create a subscriber on 192.168.1.3 with ROS_IP=192.168.1.3, the subscriber connects successfully and starts receiving messages. (Using rostopic). I create another publisher on the same topic on 192.168.1.3 using rostopic. The subscriber on 192.168.1.3 replies successfully to the rosjava master's publisherUpdate XMLRPC call in SlaveClient.java. However, the roscpp node running on 192.168.1.2 returns a failure code to the master's call to publisherUpdate causing the second rostopic publisher to fail registration with the master. Any ideas on what might be causing this? |
2012-04-07 18:50:28 -0500 | received badge | ● Popular Question
(source)
|
2012-01-18 06:53:14 -0500 | commented question | RosJava Tutorial Integration / Multiple Listeners 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 |
2012-01-18 02:05:36 -0500 | commented answer | RosJava Tutorial Integration / Multiple Listeners Roger that -- condensed the postings. Did not see that ASKBOT supports editing posts either otherwise I would have done so to provide additional information since comments are limited in size just like on SO. Thanks for the heads up. |
2012-01-18 02:00:26 -0500 | received badge | ● Editor
(source)
|
2012-01-17 11:19:39 -0500 | answered a question | RosJava Tutorial Integration / Multiple Listeners 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 ... (more) |
2012-01-17 11:16:31 -0500 | answered a question | RosJava Tutorial Integration / Multiple Listeners 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. Will post an answer if I figure it out... Thanks |
2012-01-17 10:26:52 -0500 | received badge | ● Student
(source)
|
2012-01-17 10:08:15 -0500 | asked a question | RosJava Tutorial Integration / Multiple Listeners 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 ... (more) |
2011-07-06 03:39:37 -0500 | answered a question | Openni rosmake failing on OSX Replacing sed with GSed in OSX 10.6 appears to work for me in getting compilation going. I also had to execute: sudo port install libusb-devel +universal otherwise linking fails. |