Ažuriranje (19.): Imamo dosta zaliha svih naših proizvoda, pronađite nas i ovdje i    Kupi

SBC sučelje s uROS bibliotekom

U ovom vodiču ćemo naučiti kako koristiti uROS biblioteku za micropython: https://github.com/mgtm98/uRos

ROS je operativni sustav za robote u kojem različiti "čvorovi" komuniciraju sa središnjim poslužiteljem putem TCP poruka u JSON formatu.

Ova nam biblioteka omogućuje implementaciju ROS čvora u našem SBC. Spojit će se na poslužitelj i moći će slati (objavljivati) ili primati (pretplatiti se na) poruke.

Kod za objavljivanje poruke je sljedeći:

 1 2 3 4 5 6 7 8 9 10 11 12 13 14
uvoz mreža
iz aurochs uvoz *
iz uros.std_msgs uvoz std_Bool lan = mreža.LAN() lan.aktivan(Pravi) lan.ifconfig( ( "10.0.0.1", "255.255.255.0", "10.0.0.2", "8.8.8.8" ))
dok(lan.status() != 3 ):
    otisak( ".", na kraju="" ) vrijeme.spavati(1)
otisak( "Povezano!" ) uRos = Ros( "10.0.0.2", 9090 )    #stvaranje novog uRos objekta
msg = std_Bool( podaci = Pravi )     #stvaranje Ros string msg objekta
uRos.objaviti( "uRosTopic", poruka )  #objavljivanje objekta poruke
otisak("gotovo")

U ovom kodu prvo se spajamo na LAN mrežu, a zatim na ROS poslužitelj; definiramo format naše poruke i na kraju objavljujemo.

Na računalu izvršavamo kod u pythonu koji djeluje kao ROS poslužitelj. Radi jednostavnosti, ovaj kod je samo socket poslužitelj koji ispisuje podatke na konzolu.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
uvoz utičnica
uvoz sys
def poslužitelj_utičnice( domaćin, port ): s = utičnica.utičnica (utičnica.AF_INET, utičnica.SOCK_STREAM) s.bind((host, port)) s.slušati(1)
    dok Pravi: spoj, adresa = s.prihvatiti ()
        otisak('Povezano od', adresa)
        dok Pravi: podaci = conn.recv(1024)
            if ne podatke:
                razbiti
            otisak(podatak) conn.Zatvoriti()
        otisak("priključak zatvoren") s.Zatvoriti()
    otisak("zatvoreno je") socket_server( '10.0.0.2', 9090 )
otisak("gotovo")

Kao rezultat toga, prikazani su podaci primljeni na poslužitelju:

Ako pogledamo podatke, vidimo dva dijela:

1. Definicija naše uRosTopic poruke. Ovo se šalje samo jednom za svaku novu vrstu poruke.

2. I objavljeni podaci. Ovo se šalje svaki put kada objavimo novu vrijednost.

 

Sada ste spremni povezati svoj SBC s bilo kojim ROS uređajem putem etherneta, definirati prilagođenu poruku i poslati je sa samo nekoliko redaka python koda.

Ako vam se svidio ovaj sadržaj, možete nas pratiti na X / Twitter, YouTube, Facebook or LinkedIn da biste bili u tijeku s ovakvim sadržajem.

Imate pitanja ili zahtjeva?
Kontaktirajte nas! Odgovaramo <24 sata!

Ikona
Kontakt ArduSimple
Blizu

Želite saznati više o GPS/RTK?

1. Naš inženjerski tim će vas kontaktirati kako bismo riješili sva pitanja
2. Obavještavat ćemo vas o promocijama i novim izdanjima proizvoda
3. Javit ćemo vam se samo kada budemo imali važne vijesti, nećemo spamati vašu e-poštu