Aggiornamento (22 / 06 / 2025): Abbiamo un ampio stock di tutti i nostri prodotti, trovaci anche in e    Acquista ora

Interfaccia SBC con libreria uROS

In questo tutorial impareremo come usare la libreria uROS per micropython: https://github.com/mgtm98/uRos

ROS è un Sistema Operativo per Robot in cui i diversi “nodi” comunicano con un server centrale tramite messaggi TCP in formato JSON.

Questa libreria ci permette di implementare un nodo ROS nel nostro SBC. Si collegherà a un server e sarà in grado di inviare (pubblicare) o ricevere (iscriversi) messaggi.

Il codice per postare un messaggio è il seguente:

 1 2 3 4 5 6 7 8 9 10 11 12 13 14
importare Rete
da uro importare *
da uros.std_msgs importare std_Bool lan = Rete.LAN() lan.attivo(I veri) lan.ifconfig( ( "10.0.0.1", "255.255.255.0", "10.0.0.2", "8.8.8.8" ))
while(lan.stato() != 3 ):
    stampare( ""., fine="" ) volta.dormire(1)
stampare( "Collegato!" ) uRos = Rosa( "10.0.0.2", 9090 )    #creazione di un nuovo oggetto uRos
msg = std_Bool( dati = I veri )     #creazione di un oggetto msg stringa Ros
uRos.pubblicare( "uRosTopic", messaggio )  #pubblicazione dell'oggetto msg
stampare("fatto")

In questo codice ci colleghiamo prima alla rete LAN e poi al server ROS; definiamo il formato del nostro messaggio e infine pubblichiamo.

Sul PC eseguiamo un codice in python che funge da server ROS. Per semplicità, questo codice è solo un server socket che stampa i dati sulla console.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
importare presa di corrente
importare sys
def socket_server( host, porto ): s = presa di corrente.presa (presa.AF_INET, presa.SOCK_STREAM) s.bind((host, porta)) s.ascoltare(1)
    while I veri: conn, ind = s.accettare ()
        stampare('Connesso da', ind.)
        while I veri: dati = conn.recv(1024)
            if non è un dati:
                rompere
            stampare(dati) conn.vicino()
        stampare("conn chiuso") S.vicino()
    stampare("s chiuso") socket_server( '10.0.0.2', 9090 )
stampare("fatto")

Di conseguenza, i dati ricevuti sul server vengono visualizzati:

Se esaminiamo i dati vediamo due parti:

1. La definizione del nostro messaggio uRosTopic. Questo viene inviato solo una volta per ogni nuovo tipo di messaggio.

2. E i dati pubblicati. Questo viene inviato ogni volta che pubblichiamo un nuovo valore.

 

Ora sei pronto per connettere il tuo SBC a qualsiasi dispositivo ROS tramite ethernet, definire un messaggio personalizzato e inviarlo con solo poche righe di codice python.

Se ti è piaciuto questo contenuto, puoi seguirci su Twitter, YouTube, Facebook or LinkedIn per rimanere aggiornato su contenuti come questo.

Hai domande o richieste?
Contattaci! Risponderemo <24 ore!

Icona
Contatti ArduSimple
Chiudi

Vuoi saperne di più su GPS/RTK?

1. Il nostro team di ingegneri ti contatterà per risolvere qualsiasi domanda
2. Ti terremo aggiornato sulle promozioni e sul rilascio di nuovi prodotti
3. Riceverai nostre notizie solo quando avremo notizie importanti, non invieremo spam alla tua email