Aktualizacja (22 / 06 / 2024): Posiadamy duży zapas wszystkich naszych produktów, znajdziesz nas również w i    Kup teraz

Interfejs SBC z biblioteką uROS

W tym samouczku nauczymy się korzystać z biblioteki uROS dla micropythona: https://github.com/mgtm98/uRos

ROS to system operacyjny dla robotów, w którym różne „węzły” komunikują się z serwerem centralnym za pomocą komunikatów TCP w formacie JSON.

Ta biblioteka pozwala nam zaimplementować węzeł ROS w naszym SBC. Połączy się z serwerem i będzie mógł wysyłać (publikować) lub odbierać (subskrybować) wiadomości.

Kod do opublikowania wiadomości wygląda następująco:

 1 2 3 4 5 6 7 8 9 10 11 12 13 14
importować sieć
od żubr importować *
od uros.std_msgs importować std_Bool lan = sieć.LAN() sieć.aktywny(Prawdziwy)lan.ifconfig(( "10.0.0.1", "255.255.255.0", "10.0.0.2", "8.8.8.8" ))
Podczas(łan.status() != 3 ):
     ( ".", koniec="" ) czas.spać(1)
 ( "Połączony!" ) uRos = Róża( "10.0.0.2", 9090 )    #tworzenie nowego obiektu uRos
msg = std_Bool( dane = Prawdziwy )     #tworzenie obiektu msg ciągu Ros
uRos.publikować( „uRosTemat”, wiadomość )  #publikowanie obiektu wiadomości
 ("Gotowe")

W tym kodzie łączymy się najpierw z siecią LAN, a następnie z serwerem ROS; określamy format naszego przekazu i wreszcie publikujemy.

Na PC wykonujemy kod w Pythonie, który działa jak serwer ROS. Dla uproszczenia ten kod jest tylko serwerem gniazd, który drukuje dane na konsoli.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
importować gniazdo
importować sys
def serwer_gniazda( host, port ): s = gniazdo.gniazdo (gniazdo).AF_INET, gniazdo.SOCK_STREAM).bind((host, port)) s.słuchać(1)
    Podczas Prawdziwy: poł., addr = s.zaakceptować()
         ('Połączony przez', adres)
        Podczas Prawdziwy: dane = Conn.recv(1024)
            if nie Dane:
                złamać
             (dane) poł.blisko()
         ("połączenie zamknięte") s.blisko()
     („zamknięte”) serwer_gniazda( "10.0.0.2", 9090 )
 ("Gotowe")

W rezultacie dane odebrane na serwerze są wyświetlane:

Jeśli przeanalizujemy dane, zobaczymy dwie części:

1. Definicja naszego przekazu uRosTopic. Jest wysyłany tylko raz dla każdego nowego typu wiadomości.

2. I opublikowane dane. Jest on wysyłany za każdym razem, gdy publikujemy nową wartość.

 

Teraz możesz podłączyć swój SBC do dowolnego urządzenia ROS przez Ethernet, zdefiniować niestandardową wiadomość i wysłać ją tylko kilkoma liniami kodu Pythona.

Jeśli podobały Ci się te treści, możesz nas śledzić Twitter, YouTube, Facebook or LinkedIn aby być na bieżąco z takimi treściami.

Masz pytania lub prośby?
Skontaktuj się z nami! Odpowiemy <24 godziny!

Ikona
Kontakt ArduSimple
Zamknij

Chcesz dowiedzieć się więcej o GPS/RTK?

1. Nasz zespół inżynierów skontaktuje się z Tobą w celu rozwiązania wszelkich pytań
2. Będziemy na bieżąco informować Cię o promocjach i nowościach produktowych
3. Dowiesz się od nas tylko wtedy, gdy będziemy mieć ważne wiadomości, nie będziemy spamować Twojego e-maila