Interface SBC avec bibliothèque uROS

Dans ce tutoriel, nous allons apprendre à utiliser la bibliothèque uROS pour micropython : https://github.com/mgtm98/uRos

ROS est un système d'exploitation pour robots dans lequel les différents "nœuds" communiquent avec un serveur central via des messages TCP au format JSON.

Cette bibliothèque nous permet d'implémenter un nœud ROS dans notre SBC. Il se connectera à un serveur et pourra envoyer (publier) ou recevoir (s'abonner) des messages.

Le code pour poster un message est le suivant :

 1 2 3 4 5 6 7 8 9 10 11 12 13 14
importer réseau et
du aurochs importer *
du uros.std_msgs importer std_Bool lan = réseau et.LAN() lan.actif(Vrai) LAN.ifconfig( ( "10.0.0.1", "255.255.255.0", "10.0.0.2", "8.8.8.8" ))
tout en(lan.statut() != 3 ):
    impression( ".", fin="" ) temps.dormir(1)
impression( "Lié!" ) uRos = Rose( "10.0.0.2", 9090 )    #création d'un nouvel objet uRos
msg = std_Bool( données = Vrai )     #création d'un objet msg de chaîne Ros
uRos.publier( "uRosTopic", message)  #publier l'objet msg
impression("Fini")

Dans ce code, nous nous connectons d'abord au réseau LAN, puis au serveur ROS ; nous définissons le format de notre message et enfin nous publions.

Sur le PC, nous exécutons un code en python qui agit comme un serveur ROS. Pour plus de simplicité, ce code est juste un serveur de socket qui imprime les données sur la console.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
importer douille
importer sys
def serveur_socket(hôte, port): s = douille.prise (prise.AF_INET, douille.SOCK_STREAM) s.lier((hôte, port)) s.Ecoutez(1)
    tout en Vrai: conn, adresse = s.J'accepte()
        impression('Connecté par', adresse)
        tout en Vrai: Les données = conn.recv(1024)
            if ne sauraient  données:
                pause
            impression(données) connexion.Fermer()
        impression("connexion fermée") s.Fermer()
    impression("est fermé") socket_server( «10.0.0.2 ', 9090 )
impression("Fini")

En conséquence, les données reçues sur le serveur sont affichées :

Si nous examinons les données, nous voyons deux parties :

1. La définition de notre message uRosTopic. Celui-ci n'est envoyé qu'une seule fois pour chaque nouveau type de message.

2. Et les données publiées. Celui-ci est envoyé à chaque fois que nous publions une nouvelle valeur.

 

Vous êtes maintenant prêt à connecter votre SBC à n'importe quel appareil ROS via Ethernet, à définir un message personnalisé et à l'envoyer avec seulement quelques lignes de code python.

Si vous avez aimé ce contenu, vous pouvez nous suivre sur Twitter, YouTube, Facebook or LinkedIn pour rester à jour de contenu comme celui-ci.

Want en savoir plus sur le GPS/RTK ?

1. Notre équipe d'ingénieurs vous contactera pour résoudre toutes les questions
2. Nous vous tiendrons au courant des promotions et des nouvelles versions de produits
3. Vous n'entendrez parler de nous que lorsque nous aurons importéant nouvelles, nous ne spammerons pas votre e-mail