ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

note: the page you link uses ROS_HOSTNAME with IPs, which is (technically and officially) not correct. I'm using ROS_IP in my answer, but if you must, just use ROS_HOSTNAME everywhere I've used ROS_IP.


localhost is a special IP, and the lo entry in the output you post would be its "virtual" network interface. As to it's IP, that is shown on the second line:

inet addr:127.0.0.1  Mask:255.0.0.0

However, that is not the IP address you want to use for setting ROS_IP, as every host in your network uses it to communicate with itself. That won't help if you're trying to get two PCs to communicate using ROS, as they won't be able to find each other.

The text in the manual is a little confusing (and I would report that to Robotis), but the diagram shown at the top explains quite well what is needed to set this up: ROS_IP must be set to the IP address of each host respectivel, and ROS_MASTER_URI must point to the IP address of the host running the ROS master (ie: roscore).

If the ifconfig output you included in your question is from your "Remote PC", then ROS_IP would have to be set to 172.16.51.164, and ROS_MASTER_URI would be http://172.16.51.164:11311.

On your turtlebot, you'd use the same ROS_MASTER_URI, but set ROS_IP to the IP address of the turtlebot.

Note: the names enp3s0 and wlp2s0 entries in the ifconfig output in the manual are just examples. Each network interface gets its own name, and they may be differently named on your system.

note: the page you link uses ROS_HOSTNAME with IPs, which is (technically and officially) not correct. I'm using ROS_IP in my answer, but if you must, just use ROS_HOSTNAME everywhere I've used ROS_IP.


localhost (wikipedia) is a special IP, hostname, and the lo entry in the output you post would be its "virtual" a virtual network interface. As to it's IP, that is shown on the second line:

inet addr:127.0.0.1  Mask:255.0.0.0

However, that is not the IP address you want to use for setting ROS_IP, as every host in your network uses it to communicate with itself. That won't help if you're trying to get two PCs to communicate using ROS, as they won't be able to find each other.

The text in the manual is a little confusing (and I would report that to Robotis), but the diagram shown at the top explains quite well what is needed to set this up: ROS_IP must be set to the IP address of each host respectivel, and ROS_MASTER_URI must point to the IP address of the host running the ROS master (ie: roscore).

If the ifconfig output you included in your question is from your "Remote PC", then ROS_IP would have to be set to 172.16.51.164, and ROS_MASTER_URI would be http://172.16.51.164:11311.

On your turtlebot, you'd use the same ROS_MASTER_URI, but set ROS_IP to the IP address of the turtlebot.

Note: the names enp3s0 and wlp2s0 entries in the ifconfig output in the manual are just examples. Each network interface gets its own name, and they may be differently named on your system.

note: the page you link uses ROS_HOSTNAME with IPs, which is (technically and officially) not correct. I'm using ROS_IP in my answer, but if you must, just use ROS_HOSTNAME everywhere I've used ROS_IP.


localhost (wikipedia) is a special hostname, and the lo entry in the output you post would be a virtual network interface. As to it's IP, that is shown on the second line:

inet addr:127.0.0.1  Mask:255.0.0.0

However, that is not the IP address you want to use for setting ROS_IP, as every host in your network uses it to communicate with itself. That won't help if you're trying to get two PCs to communicate using ROS, as they won't be able to find each other.

The text in the manual is a little confusing (and I would report that to Robotis), but the diagram shown at the top explains quite well what is needed to set this up: ROS_IP must be set to the IP address of each host respectivel, and ROS_MASTER_URI must point to the IP address of the host running the ROS master (ie: roscore).

If the ifconfig output you included in your question is from your "Remote PC", then ROS_IP would have to be set to 172.16.51.164, and ROS_MASTER_URI would be http://172.16.51.164:11311.

On your turtlebot, you'd use the same ROS_MASTER_URI, but set ROS_IP to the IP address of the turtlebot.

It seems that there lacks one part of Network information when compared to the introduction

Note: the names enp3s0 and wlp2s0 entries in the ifconfig output in the manual are just examples. Each network interface gets its own name, and they may be differently named on your system.