Actualización (09 / 11 / 2024): Disponemos de amplio stock de todos nuestros productos, encuéntranos también en y    Comprar ahora

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(¿Editas con tu equipo de forma remota?) 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 = ¿Editas con tu equipo de forma remota? )     #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 ¿Editas con tu equipo de forma remota?: conexión, dirección = s.aceptar ()
        Imprimir('Conectado por', dirección)
        mientras ¿Editas con tu equipo de forma remota?: datos = conn.recibo(1024)
            if no datos:
                break
            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.

¿Tienes alguna pregunta o solicitud?
¡Contáctenos! ¡Responderemos <24 horas!

Ícono
Contacto ArduSimple
Cerrar

¿Quieres saber 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 sabrá de nosotros cuando tengamos noticias importantes, no enviaremos spam a su correo electrónico.