Interfaz SBC con biblioteca uROS

En este tutorial aprenderemos a usar la librería uROS para micropython: https://github.com/mgtm98/uRos

ROS es un Sistema Operativo para Robots en el que los diferentes “nodos” se comunican con un servidor central a través de mensajes TCP en formato JSON.

Esta biblioteca nos permite implementar un nodo ROS en nuestro SBC. Se conectará a un servidor y podrá enviar (publicar) o recibir (suscribirse a) mensajes.

El código para publicar un mensaje es el siguiente:

 1 2 3 4 5 6 7 8 9 10 11 12 13 14
importar del sistema,
del masculino importar *
del uros.std_msgs importar std_Bool lan = del sistema,.LAN().activo(Edición colaborativa) red.si configuración (( "10.0.0.1", "255.255.255.0", "10.0.0.2", "8.8.8.8" ))
mientras(lan.estado() != 3 ):
    Imprimir( ".", final="" ) tiempo.dormir(1)
Imprimir( "¡Conectado!" ) uRos = rosa( "10.0.0.2", 9090 )    #creando nuevo objeto uRos
MSG = std_Bool (datos = Edición colaborativa )     #creando un objeto de mensaje de cadena Ros
uRos.publicar( "uRosTopic", mensaje)  #publicando el objeto msg
Imprimir("hecho")

En este código primero nos conectamos a la red LAN y luego al servidor ROS; definimos el formato de nuestro mensaje y finalmente lo publicamos.

En la PC ejecutamos un código en python que actúa como un servidor ROS. Para simplificar, este código es solo un servidor de socket que imprime los datos en la consola.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
importar enchufe
importar sis
def servidor_socket(host, puerto): s = enchufe.enchufe (enchufe.AF_INET, enchufe.SOCK_STREAM).enlazar((host, puerto)) s.escuchar(1)
    mientras Edición colaborativa: conexión, dirección = s.aceptar ()
        Imprimir('Conectado por', dirección)
        mientras Edición colaborativa: datos = conn.recibo(1024)
            if no datos:
                romper
            Imprimir(datos) conexión.close()
        Imprimir("conexión cerrada") s.close()
    Imprimir("está cerrado") servidor_socket( '10.0.0.2', 9090 )
Imprimir("hecho")

Como resultado, se muestran los datos recibidos en el servidor:

Si examinamos los datos vemos dos partes:

1. La definición de nuestro mensaje uRosTopic. Este solo se envía una vez por cada nuevo tipo de mensaje.

2. Y los datos publicados. Esto se envía cada vez que publicamos un nuevo valor.

 

Ahora está listo para conectar su SBC a cualquier dispositivo ROS a través de Ethernet, definir un mensaje personalizado y enviarlo con solo unas pocas líneas de código Python.

Si te ha gustado este contenido, puedes seguirnos en Twitter, YouTube, Facebook or LinkedIn para mantenerse actualizado de contenido como este.

Want para aprender más sobre GPS/RTK?

1. Nuestro equipo de ingeniería se pondrá en contacto contigo para resolver cualquier duda
2. Lo mantendremos informado sobre promociones y lanzamientos de nuevos productos.
3. Solo escuchará de nosotros cuando tengamos importaciónant noticias, no enviaremos spam a su correo electrónico