Aktualizacja (12 / 08 / 2026): Posiadamy duży zapas wszystkich naszych produktów, znajdziesz nas również w oraz    Jak uzyskać wycenę

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" ))
jednocześnie(ł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)
    jednocześnie Prawdziwy: poł., addr = s.zaakceptować()
         ('Połączony przez', adres)
        jednocześnie 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.

Asystent RTK

Znajdź najlepsze produkty dla swoich potrzeb, odpowiadając na zaledwie kilka pytań.

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!

Kontakt ArduSimple
Zamknij

Uzyskaj dostęp do swojego konta i zamówień

Or

Jesteś nowym klientem? Utwórz swoje konto
ArduSimple – sprzęt i rozwiązania do pomiarów RTK o wysokiej precyzji w prosty sposób

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

Jeśli jesteś w tej chwili zajęty, nasi inżynierowie mogą wysłać Ci 3 krótkie wiadomości e-mail, w których wyjaśnią wszystko, co musisz wiedzieć, aby rozpocząć swój projekt.