Distributed System - Rosjava Nodes don't subscribe properly
Hello,
I am trying to set up MoveIt with a robot, writing my controller in Java. The general idea is, that I have computer A running roscore, MoveIt, and all the sensors (kinects) while computer B runs my ActionServer and JointStatePublisher as well as Rviz.
I followed the instructions for a distributed setup (setting ROS_MASTER_URI and so on), and now I am running into the following problems:
I launch the roscore on A, launch my ActionServer & JointStatePublisher on B. rosnode list
shows all my nodes, rosnode info [nodename]
shows some infos, the topics are there also. But when I now launch moveIt on A, it can't connect to the ActionServer although the necessary topics are available. It can't receive any JointStates either.
Trying to find possible sources for this error, I used roswtf
. The output has two parts.
- a)
unknown ([URI_B]:[somePort])
nodes are "unexpectedly connected" to themove_group
and/rosout
- b) my Java-nodes "should be
connected, but aren't" to the
move_group
androsout
Comparing the ports from the unknown nodes with the rosnode info [node]
output shows, that they are the same. Also, when I check out the node-graph in rqt, everything seems ok. Even more confusing: rostopic echo /jointStates
shows the proper messages, no matter if it's called from computer A or B.
Information about my setup:
I am using Ubuntu 12.04 with ROS Hydro. The Rosjava-Version I am using is fairly old, since I need to rely on Actions. the package.xml doesn't have any version-number, but it is from before Rosjava moved to Github.
Why is it, that some parts of ROS know about my nodes and can recieve their messages, no matter which machine they're running on, and other parts (moveIt, roswtf) can't figure out how to contact the nodes?
Thanks in advance,
Rabe
Edit:
Even more confusing: When I launch alle the nodes on one computer, the moveIt connects to the actionServer although roswtf
still shows the same kind of errors?