Direcciones

Tenemos dos direcciones (ROS_MASTER_URI y ROS_IP)que deben estar configuradas en nuestro sistema para poder hablar entre computadoras.

  • ROS_MASTER_URI: tiene que apuntar a la PC que está corriendo roscore
  • ROS_IP: tiene que ser el localhost, pero en dirección IPv4 o IPv6

Ejemplo

En la computadora (donde corre la simulación, por ejemplo Gazebo):

export ROS_MASTER_URI=http://192.168.0.100:11311
export ROS_IP=192.168.0.100

En la placa remota (robot, lugar donde se prueba el algoritmo)

export ROS_MASTER_URI=http://192.168.0.100:11311
export ROS_IP=192.168.0.101

Notar que el robot tiene el master en la dirección de la computadora donde corre la simulación.

No funciona?

Otro cambio que se puede realizar y en la práctica funciona es agregar en el robot la dirección de IP, en el archivo /etc/hosts:

127.0.0.1	localhost
127.0.1.1	hostname
192.168.0.100 PChostname

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Todo esto está documentado en la wiki de ROS.

Esta pregunta también fué de gran utilidad.