Atualização (17/07/2025): Temos bastante estoque de todos os nossos produtos, encontre-nos também em e    comprar agora

Interface SBC com biblioteca uROS

Neste tutorial aprenderemos como usar a biblioteca uROS para micropython: https://github.com/mgtm98/uRos

ROS é um Sistema Operativo para Robôs no qual os diferentes “nós” comunicam com um servidor central através de mensagens TCP em formato JSON.

Esta biblioteca nos permite implementar um nó ROS em nosso SBC. Ele se conectará a um servidor e poderá enviar (publicar) ou receber (assinar) mensagens.

O código para postar uma mensagem é o seguinte:

 1 2 3 4 5 6 7 8 9 10 11 12 13 14
importar rede
da auroque importar *
da uros.std_msgs importar std_Bool lan = rede.LAN() LAN.ativo(a Verdadeira) lan.ifconfig(( "10.0.0.1", "255.255.255.0", "10.0.0.2", "8.8.8.8" ))
enquanto(lan.status() != 3 ):
    impressão( ".", fim="" ) Tempo.dorme(1)
impressão( "Conectado!" ) uRos = Ros( "10.0.0.2", 9090 )    #criando novo objeto uRos
msg = std_Bool( dados = a Verdadeira )     #criando um objeto Ros string msg
uRos.publicar( "uRosTopic", mensagem)  #publicando o objeto msg
impressão("feito")

Neste código, primeiro nos conectamos à rede LAN e depois ao servidor ROS; definimos o formato da nossa mensagem e por fim publicamos.

No PC executamos um código em python que funciona como um servidor ROS. Para simplificar, esse código é apenas um servidor de soquete que imprime os dados no console.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
importar soquete
importar sys
def servidor_de_soquete( host, porta ): s = soquete.soquete(soquete.AF_INET, soquete.SOCK_STREAM)s.bind((host, porta)) s.ouço(1)
    enquanto a Verdadeira: conn, addr = s.aceitar ()
        impressão('Conectado por', endereço)
        enquanto a Verdadeira: dados = Conn.recv(1024)
            if não Dados:
                quebrar
            impressão(dados) conn.fechar()
        impressão("conn fechado") s.fechar()
    impressão("está fechado") socket_server( '10.0.0.2', 9090 )
impressão("feito")

Como resultado, os dados recebidos no servidor são exibidos:

Se examinarmos os dados, veremos duas partes:

1. A definição da nossa mensagem uRosTopic. Isso é enviado apenas uma vez para cada novo tipo de mensagem.

2. E os dados publicados. Isso é enviado toda vez que publicamos um novo valor.

 

Agora você está pronto para conectar seu SBC a qualquer dispositivo ROS via ethernet, definir uma mensagem personalizada e enviá-la com apenas algumas linhas de código python.

Se você gostou deste conteúdo, você pode nos seguir no Twitter, YouTube, Facebook or LinkedIn para ficar atualizado de conteúdo como este.

Tem alguma dúvida ou pedido?
Contate-nos! Responderemos <24 horas!

ícone
Contato ArduSimple
Fechar

Quer saber mais sobre GPS/RTK?

1. Nossa equipe de engenharia entrará em contato com você para resolver qualquer dúvida
2. Manteremos você atualizado sobre promoções e lançamentos de novos produtos
3. Você só receberá notícias nossas quando tivermos notícias importantes, não enviaremos spam para seu e-mail