0
$\begingroup$

Rosanswers logo

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?


Originally posted by Skinkworks on ROS Answers with karma: 11 on 2011-07-07

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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.


Originally posted by Lorenz with karma: 22731 on 2011-07-07

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by tfoote on 2011-07-09:
Sometimes rxgraph will determine nodes are not connected if there's a lossy link between rxgraph and the nodes.

Comment by Skinkworks on 2011-07-08:
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?

Comment by Lucas2903 on 2021-02-19:
If you have your IP addresses set correctly (as explained in this answer), and the error is still present, this can be caused by a firewall (e.g. ufw). Try disabling it and it should solve the issue.

$\endgroup$

Your Answer

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