Update (11 / 02 / 2026): Kami memiliki banyak stok semua produk kami, temukan kami juga di dan    Toko sekarang

Antarmuka SBC dengan perpustakaan uROS

Dalam tutorial ini kita akan mempelajari cara menggunakan perpustakaan uROS untuk micropython: https://github.com/mgtm98/uRos

ROS adalah Sistem Operasi untuk Robot di mana “node” yang berbeda berkomunikasi dengan server pusat melalui pesan TCP dalam format JSON.

Pustaka ini memungkinkan kita mengimplementasikan node ROS di SBC. Ini akan terhubung ke server dan akan dapat mengirim (menerbitkan) atau menerima (berlangganan) pesan.

Kode untuk mengirim pesan adalah sebagai berikut:

 1 2 3 4 5 6 7 8 9 10 11 12 13 14
mengimpor jaringan
dari uro mengimpor *
dari uros.std_msgs mengimpor std_Bool lan = jaringan.LAN().aktif(Benar).ifconfig( ( "10.0.0.1", "255.255.255.0", "10.0.0.2", "8.8.8.8" ))
sementara(lan.status() != 3 ):
    mencetak( "", end="" ) waktu.tidur(1)
mencetak( "Terhubung!" ) kamuRos = Ros( "10.0.0.2", 9090 )    #membuat objek uRos baru
msg = std_Bool( data = Benar )     #membuat objek pesan string Ros
kamuRos.menerbitkan( "uRosTopik", pesan )  #menerbitkan objek pesan
mencetak("Selesai")

Dalam kode ini pertama-tama kita terhubung ke jaringan LAN dan kemudian ke server ROS; kami menentukan format pesan kami dan akhirnya kami mempublikasikannya.

Di PC kami menjalankan kode dengan python yang bertindak sebagai server ROS. Untuk mempermudah, kode ini hanyalah server soket yang mencetak data ke konsol.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
mengimpor stopkontak
mengimpor sys
def soket_server( tuan rumah, pelabuhan ): s = stopkontak.soket (soket.AF_INET, soket.SOCK_STREAM) s.mengikat((host, port)) s.mendengarkan(1)
    sementara Benar: samb, tambahan = s.menerima()
        mencetak('Terhubung oleh', tambahan)
        sementara Benar: data = conn.penerimaan(1024)
            if tidak Data:
                istirahat
            mencetak(data) samb.Menutup()
        mencetak("koneksi ditutup") S.Menutup()
    mencetak("sudah tutup") soket_server( '10.0.0.2', 9090 )
mencetak("Selesai")

Hasilnya, data yang diterima di server ditampilkan:

Jika kita memeriksa data kita melihat dua bagian:

1. Definisi pesan uRosTopic kami. Ini hanya dikirim satu kali untuk setiap jenis pesan baru.

2. Dan data yang dipublikasikan. Ini dikirim setiap kali kami menerbitkan nilai baru.

 

Sekarang Anda siap untuk menghubungkan SBC Anda ke perangkat ROS apa pun melalui ethernet, tentukan pesan khusus dan kirimkan hanya dengan beberapa baris kode python.

Jika Anda menyukai konten ini, Anda dapat mengikuti kami di Twitter, Youtube, Facebook or LinkedIn untuk tetap update konten seperti ini.

Punya pertanyaan atau permintaan?
Hubungi kami! Kami akan menjawab <24 jam!

Ikon
Kontak ArduSimple
Penyelesaian
ArduSimple Papan evaluasi GNSS RTK dibuat mudah

Ingin mempelajari lebih lanjut tentang GPS dan RTK?

Jika Anda sedang sibuk saat ini, teknisi kami dapat mengirimkan 3 email singkat yang menjelaskan semua yang perlu Anda ketahui untuk memulai proyek Anda.