Bisakah ROS berjalan di Raspberry Pi?


28

Bisakah ROS berjalan di Raspberry Pi?

ROS mengundurkan diri untuk berjalan di jaringan mesin, dengan mesin yang berbeda, bahkan inti yang berbeda pada mesin yang sama melakukan pekerjaan yang berbeda. Bisakah salah satu mesin itu menjadi Raspberry Pi?

Saya sedang mempertimbangkan menggunakan R-Pi sebagai master EtherCAT pada robot seluler, berkomunikasi dengan PC utama melalui WiFi, menggunakan dongle.

  • Bisakah R-Pi menjalankan ROS sama sekali?
  • Apakah R-Pi memiliki kekuatan pemrosesan yang cukup untuk melakukan servoing 1kHz?
  • Apakah mungkin menjalankan beberapa servoing pada host melalui koneksi WiFi?

Jawaban:


16

Sistem operasi RaspberryPi resmi adalah versi Debian, tetapi ada juga versi ArchLinux di situs web mereka .

Meskipun ROS mengklaim sebagai cross-platform, mereka hanya secara resmi mendukung Ubuntu saat ini. Namun, instalasi eksperimental telah dibuat untuk OS berikut, menurut ros.org :

  • OS X (Homebrew)
  • Fedora
  • Gentoo
  • OpenSUSE
  • Debian
  • Arch Linux
  • Windows

Meskipun saya tidak memiliki pengalaman langsung (kedua Pis saya memalukan duduk di sudut), ros.org memiliki panduan pengaturan cepat dan kotor .

Ada instruksi serupa di answer.ros.org .

Jika Anda mengalami masalah, forum RaspberryPi juga bisa membantu. Dan, tentu saja, SE punya PI.SE sendiri (Terima kasih kepada @Jivings dan @ppkinkin untuk pengingatnya).

Kalau tidak, cukup google "ros raspberry pi" dan Anda harus menemukan lebih banyak informasi.


IMO, Debian adalah pilihan yang lebih baik untuk Raspberry Pi. Saya percaya Anda akan merasa lebih mudah dan lebih baik didukung dari perspektif komunitas sebagai lawan rasa Linux Kernel lainnya.
DogEatDog

3
@DogEatDog Saya tidak setuju, Arch juga sangat didukung. Juga, pasang tanpa malu-malu di sini; Setiap masalah Raspberry Pi dari pertanyaan ini akan diterima dengan penuh rasa terima kasih di Raspberry Pi serta forum resmi.
Jivings

@Jivings Saya tidak percaya saya lupa memeriksa RaspberryPi.SE ... Meskipun pencarian cepat untuk ROS tidak memunculkan hasil apa pun sejauh ini ;-)
ThomasH

@ThomasH - Apakah Anda pikir Anda dapat menambahkan ke jawaban Anda tautan untuk datang ke PI.SE Kami mendapat banyak jawaban di sana dan mungkin beberapa solusi. Saya tidak hanya ingin mengedit jawaban Anda karena itu benar.
Piotr Kula

Karena ROS berjalan di bawah BSD - Tidak didukung sampai rilis terbaru FreeBSD- Dan tentunya sumber ROS harus dijalankan pada kode BSD terbaru juga. Ini semua berkaitan dengan hard float dan beberapa pembaruan driver untuk ARM spesifik yang dibuat oleh BroadCom (PS - Driver video dari BCM akan menjadi opensource sehingga harus ada lebih banyak dukungan di masa depan)
Piotr Kula

6

Robotika cukup sulit karena ketika semua dependensi Anda berfungsi. Hal terakhir yang Anda butuhkan adalah masalah tambahan yang berasal dari komponen yang tidak kompatibel atau kombinasi yang tidak didukung.

Saya melihat sedikit ini dan inilah perkembangan saya:

Raspberry Pi tidak mendukung Ubuntu karena ARM CPU menggunakan set instruksi yang lebih lama (ARM v6 saya percaya?) Dan tim Ubuntu menjatuhkan dukungan untuk ini kembali seperti 2009.

Beaglebone mirip dengan Raspberry Pi dalam banyak hal dan memiliki set instruksi yang lebih baru sehingga akan menjalankan Ubuntu. Namun distribusi ARM Ubuntu 'terbaik' keluar dari proyek Linaro dan mereka kehilangan dukungan untuk Beaglebone beberapa revisi sebelumnya (terakhir adalah Linaro 12.03) karena menggunakan prosesor TI OMAP 3 yang lebih lama (selamat datang di dunia indah dari smartphone cepat kemajuan).

Langkah saya berikutnya adalah untuk melihat TI Pandaboard yang menggunakan prosesor OMAP 4 yang lebih baru yang saat ini didukung, tetapi harganya lebih dekat ke kisaran $ 200.

Tapi sekarang Ubuntu secara resmi dirilis untuk Nexus 7. Dengan harga 200 dolar, Nexus 7 memberi Anda segalanya yang ditawarkan Raspberry Pi plus lebih banyak lagi. Perlu diingat bahwa bahkan dengan Raspberry Pi, setelah Anda menambahkan pengisi daya, adaptor wifi, kartu penyimpanan, dan kabel Anda merayap mendekati 100 dolar dari 35 dolar sehingga imho Nexus 7 adalah kesepakatan yang jauh lebih baik.

Terakhir, jangan mencoba dan mengeluarkan sinyal 1 khz dari OS yang tidak real-time. Pasang sendiri mikrokontroler murah seperti PJRC Teensy (klon Arduino) dan biarkan ia menangani tugas waktu nyata yang sederhana untuk Anda. Dengan cara ini Anda mendedikasikan CPU murah untuk tugas-tugas sensitif waktu sederhana ini. Pada 16 MHz dengan dukungan untuk beberapa timer, AVR MCU kecil dapat menangani setengah lusin tugas seperti ini tanpa masalah.


1
Menjalankan robot Anda dengan Ubuntu di Nexus 7, ide keren! Secara kebetulan, apakah Anda tahu ada proyek robotika yang menggunakan nexus dengan cara ini?
bit-bajak laut

5

Pertanyaan ini dijawab dengan baik oleh ThomasH , tetapi selain itu saya hanya ingin menyarankan kemungkinan penambatan nirkabel quadcopter ke laptop. Yaitu, cukup tulis protokol komunikasi nirkabel (wifi?, Bluetooth?) Yang bagus dan cepat untuk quadcopter, kemudian lakukan hal-hal yang berat pada CPU pada laptop, sambil mengirimkan instruksi dan pertanyaan sensor ke R-PI. Kami mencoba banyak implementasi, dan menyelesaikan pengaturan serupa untuk semua robot kecil kami. Juga hampir setiap implementasi quadcopter jaw-dropping diatur dengan cara ini. Itu membuat hidup mudah, dan memungkinkan Anda untuk menggunakan perpustakaan pemukul besar tanpa mengorbankan kecepatan.

Mari kita jujur ​​di sini, bahwa quadcopter kemungkinan besar tidak akan keluar dari jangkauan nirkabel laptop Anda.


Untuk menjadi jelas, ketika Anda mengatakan "hal-hal CPU yang berat" di sini, yang Anda maksud adalah kontrol tingkat tinggi yang melibatkan banyak angka, seperti SLAM atau visi komputer. Kontrol penerbangan tingkat rendah harus terjadi secara real-time dan pada frekuensi yang cukup tinggi sehingga tidak mungkin dilakukan melalui koneksi nirkabel.
yoo

Kontrol penerbangan, seperti dalam output servo, harus dihasilkan oleh elektronik di dalam pesawat, ya. Tetapi perintah penerbangan, seperti kecepatan rotor yang diinginkan dan semacamnya dapat dihasilkan oleh pc yang ditambatkan (bluetooth sangat luar biasa untuk ini), tetapi tidak ada alasan untuk jika Anda dapat menjalankannya pada R-Pi. Jika itu masalahnya, maka ya, "barang-barang CPU berat" mengacu pada perencanaan tingkat tinggi, koordinasi multi-kendaraan, SLAM, CV, dll.
Josh Vander Hook

4

Ya , tetapi menginstal ROS di Debian bisa dilakukan, namun tidak sepele.


4

Repositori eksperimental baru saja diisi dengan paket ROS Groovy untuk Raspbian (mengi), petunjuk untuk menggunakannya dapat ditemukan di sini:

http://www.ros.org/wiki/groovy/Installation/Raspbian

Repositori memiliki 350+ paket dan paket inti ROS dapat diinstal dalam hitungan menit pada pemasangan Raspbian baru.


2

Saya akan memeriksa proyek raksasa . Pada dasarnya, ini menghasilkan beberapa kode untuk Arduino untuk berkomunikasi melalui serial ke simpul ROS di komputer. Saya yakin Anda dapat mengonversinya ke Raspberry Pi, sehingga Anda dapat menggunakan beberapa protokol lain untuk berkomunikasi antara Pi dan komputer host.


2

iya nih. Yakin. Kami sudah melakukan ini sejak lama.
ROS bukan "OS" dan itu tidak besar. Hanya "middleware" yang berjalan dengan baik di "raspbian".
Kami hanya membakar dengan raspbian resmi (jadi kami berharap ini dapat membuat kami bekerja di lingkungan "stabil") dan mengkompilasi ROS dengan sumber. inilah tautan selangkah demi selangkah (untuk Kinetic):
http://wiki.ros.org/ROSberryPi/Instaling%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi
Anda dapat mencoba ros_comm atau desktop.
Saya mencoba ros_comm dan kemudian menambahkan paket lain.


1
Mengapa Anda tidak menggunakan Ubuntu Mate dan cukup menginstal ROS dari paket?
FooTheBar

karena Ubuntu Mate berjalan lambat pada chip ARM pada raspberry, baik Pi2 maupun Pi3. Raspbian adalah debian ringan dan berjalan sangat baik pada chip ARM. @FooBar
Nick Qian

Ada sumber untuk itu? Saya belum mengalami masalah kecepatan.
FooTheBar

Saya tidak mencoba lagi setelah saya memilih raspbian. mungkin sekarang dist Ubuntu Mate untuk raspberry lebih baik dan lancar untuk digunakan. Saya tertarik untuk mencobanya lagi karena di ubuntu manajemen perangkat lunaknya bagus. Tapi bagaimana dengan GPIO? mungkin bersion baru ubuntu juga memiliki dukungan gpio, saya tidak tahu ....
Nick Qian

1
Jadi mengapa Anda mengatakan itu lambat jika Anda belum menguji?
FooTheBar


1

Berbeda dengan apa yang telah dikatakan di lain jawaban (agak usang), saya sudah berhasil mencoba menjalankan ROS di kedua Raspbian atau Ubuntu dengan Raspberry Pi 2 Model B .

Setelah beberapa bolak-balik, saya akan tetap dengan Ubuntu: Meskipun saya tidak berhasil mengakses modul kamera Raspberry dengan Ubuntu, saya melihat keuntungan besar dalam manajemen paket yang superior dan kompatibilitas dengan ROS. Anda memerlukan beberapa fitur ROS baru yang aneh? Hanya sudo aptitude installpaket dan Anda siap.


0

Saya memiliki pengalaman menginstal ROS pada Raspi menggunakan Ubuntu Mate sebagai sistem operasi. Ini pada dasarnya adalah sistem operasi ubuntu biasa, tetapi pada perangkat lengan. Itu dapat menginstal ROS melalui binari pra-dibangun. Tidak memerlukan konfigurasi lebih dari laptop Ubuntu biasa. Saya tahu bahwa ada satu versi Pi yang tidak didukung secara resmi (saya pikir itu adalah 3B +, sudah lama sejak instalasi untungnya), tetapi seseorang menemukan cara untuk mengatasi masalah itu pada posting forum yang saya googled.


tautan ke posting forum?
drerD

Saya sudah ditautkan ke situs web sehingga Anda dapat mengunduh pasangan Ubuntu. Ini benar-benar sesederhana mesin ubuntu biasa untuk menginstal ROS. Saya tidak tahu mengapa Anda memerlukan tautan posting forum ... Itu untuk proyek sekolah pada repositori pribadi (jadi, kode sumber ROS bukan untuk publik), tetapi pasangan Ubuntu tersedia untuk umum. Berikut ini tautan lain yang lebih spesifik .
thatrobotguy


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.