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 roscoreROS_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.