Ask Your Question
0

Multiple machines - nodes somewhat communicating

asked 2011-07-07 10:33:03 -0500

Skinkworks gravatar image

updated 2011-07-07 10:34:00 -0500

I am trying to get a navigation stack running on an Lego NXT-based system. However, it is different from the normal nxt_apps assisted_teleop in that the NXT is carrying a camera and a laptop, which is doing some of the navigation and SLAM processing (so I don't have to send camera images over the network), and another computer, which is running rviz and the rest of the vslam and navigation stacks. I am having trouble seeing messages from one computer on another. I have read the ROS troubleshooting page for network configuration, and I have done everything it says. Here is my roswtf output:

 Beginning tests of your ROS graph. These may take awhile...
 analyzing graph...
 ... done analyzing graph
 running graph rules...
 ... done running graph rules

 Online checks summary:

 Found 2 warning(s).
 Warnings are things that may be just fine, but are sometimes at fault

 WARNING The following node subscriptions are unconnected:
  * /base_ctrl:
    * /joint_states

 WARNING The following nodes are unexpectedly connected:
  * /joy_node->/rosout (/rosout)


 Found 7 error(s).

 ERROR Communication with [/rosout] raised an error: 
 ERROR Communication with [/camera_tf] raised an error: 
 ERROR Communication with [/nxt_teleop] raised an error: 
 ERROR Communication with [/base_ctrl] raised an error: 
 ERROR Communication with [/camera] raised an error: 
 ERROR Communication with [/nxt_ros] raised an error: 
 ERROR The following nodes should be connected but aren't:
  * /base_ctrl->/nxt_ros (/joint_command)
  * /nxt_teleop->/base_ctrl (/cmd_vel)
  * /joy_node->/nxt_teleop (/joy)

Here is my 'rostopic list' output:

 /camera_info
 /cmd_vel
 /diagnostics
 /image_raw
 /joint_command
 /joint_states
 /joy
 /rosout
 /rosout_agg
 /tf

These commands were run on the second computer, the one which is not the laptop. If I run these commands on the laptop, they report completely normal results.

If it's of any interest, roscore is running on the computer which is not the laptop. Also, no firewalls are running on either computer.

What is happening here?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2011-07-07 22:09:02 -0500

Lorenz gravatar image

updated 2011-07-07 22:10:16 -0500

This is somewhat related to this question.

I guess you don't have a correct DNS configuration in your network. ROS uses domain names instead of IP addresses per default. When a node registers at the master, it uses the hostname of the computer it is running on. If another node, maybe on a different computer, wants to communicate with that node, it uses this information to establish the connection. Now if a DNS is not present and the hostnames are not mapped to IP addresses in /etc/hosts, the connection cannot be established. The fix is to set ROS_IP on both computers to their own IP address.

You can find more information on fixing your network setup here and here.

edit flag offensive delete link more

Comments

I now have each computer's /etc/hosts file correctly set up, and I can get data from one node to another, so it works, but rxgraph sometimes thinks that nodes are not connected. Is this rxgraph, or is there actually a problem?
Skinkworks gravatar imageSkinkworks ( 2011-07-08 11:23:00 -0500 )edit
Sometimes rxgraph will determine nodes are not connected if there's a lossy link between rxgraph and the nodes.
tfoote gravatar imagetfoote ( 2011-07-09 08:45:48 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2011-07-07 10:33:03 -0500

Seen: 2,644 times

Last updated: Jul 07 '11