Comunicação de dois computadores
Neste post vamos ensinar como comunicar dois computadores usando ros
Exemplo
192.168.0.1 robo_base
192.168.0.2 notebook
Para testar se a configuração foi feita corretamente podemos fazer o comando ping
ping robo_base
ping notebook
export ROS_IP=192.168.0.1
Agora os computadores sabem se comunicar usando nomes e ips e o ROS tambem.
E os outros computadores precisam enviar requisições para esse servidor.
O comando para isso é
export ROS_MASTER_URI=http://robo_base:11311
Onde robo_base eh o nome do servidor definido no arquivo hosts e 11311 é a porta que o ros ouve.
Esse comando precisa ser feito em todas as máquinas envolvidas na comunicação.
Agora as outras máquinas podem rodar seus programas que os topicos serão compartilhados com todas.
Você pode rodar um listener na máquina host e vários listeners nas outras máquinas e você verá a mágica acontecer. (Ver [3])
[2] http://wiki.ros.org/ROS/NetworkSetup
[3] http://wiki.ros.org/pt_BR/ROS/Tutorials/WritingPublisherSubscriber(python)
Setup Inicial
Antes de mais nada é preciso que os computadores saibam da existência uns dos outros, ou seja, é preciso que eles saibam o ip e o nome relacionado a cada computador. Para configurar isso nós editamos o arquivo /etc/hosts dos computadores e adicionamos o ip e um nome para cada computador.Exemplo
192.168.0.1 robo_base
192.168.0.2 notebook
Para testar se a configuração foi feita corretamente podemos fazer o comando ping
ping robo_base
ping notebook
Setup ROS
Feito isto agora temos que fazer o setup do ros. Setamos o IP de cada computador com o comandoexport ROS_IP=192.168.0.1
Agora os computadores sabem se comunicar usando nomes e ips e o ROS tambem.
Comunicação
O Ros foi feito com a arquitetura cliente sevidor em mente então comunicar dois computadores não é difícil. O que precisamos fazer é iniciar o roscore em um dos computadores e esse computador vai funcionar como um servidor. No nosso exemplo o servidor sera o robo_base, é só dar o comando roscoreE os outros computadores precisam enviar requisições para esse servidor.
O comando para isso é
export ROS_MASTER_URI=http://robo_base:11311
Onde robo_base eh o nome do servidor definido no arquivo hosts e 11311 é a porta que o ros ouve.
Esse comando precisa ser feito em todas as máquinas envolvidas na comunicação.
Agora as outras máquinas podem rodar seus programas que os topicos serão compartilhados com todas.
Você pode rodar um listener na máquina host e vários listeners nas outras máquinas e você verá a mágica acontecer. (Ver [3])
Referências
[1] http://wiki.ros.org/ROS/Tutorials/MultipleMachines[2] http://wiki.ros.org/ROS/NetworkSetup
[3] http://wiki.ros.org/pt_BR/ROS/Tutorials/WritingPublisherSubscriber(python)
Comentários
Postar um comentário