Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Nox – Robot Pengembara Rumah (ROS)

Nox adalah robot bagus (dan memakan waktu) yang menggunakan SLAM (ROS) dengan Kinect untuk bernavigasi di lingkungannya.Nox adalah robot penggerak diferensial yang dibuat menggunakan ROS, Raspberry Pi, dan Arduino. Saya memulai proyek sebagai basis robot dengan navigasi dasar yang kemudian dapat saya gunakan untuk hal lain, seperti penyedot debu.

Namun saya segera memutuskan untuk menjadikannya robot mandiri dengan desain yang tepat, karena sering kali hilang di robot DIY. Dalam kondisi saat ini, robot dapat menggunakan SLAM (gmapping) untuk membuat peta sekitarnya (menggunakan persepsi kedalaman Kinect untuk mendeteksi dinding dan rintangan) dan melokalisasi dirinya di dalam peta. Itu dapat merencanakan jalan menuju tujuan tertentu dan mendorongnya untuk menghindari rintangan.

Nox ditenagai oleh baterai Lithium-Ion 11.1v dan digerakkan oleh dua motor. Panel depan dapat dilepas untuk mengganti baterai. Lubang berlubang dan sekrup kencangkan dan biarkan baterai dengan panjang berbeda. Saya memasang alarm baterai dengan layar untuk memantau levelnya.


Motornya adalah dua motor DC 12v (107rpm) dari Banggood. Mereka bagus, tetapi saya sebenarnya tidak membutuhkan robot untuk bekerja secepat itu dan saya akan baik-baik saja untuk menukar beberapa kecepatan untuk pembuat enkode yang lebih akurat.

Tentang desain, kendala utama adalah memiliki sesuatu yang terintegrasi dengan baik dengan Kinect, karena saya sedang membangun robot di sekitarnya. Saya terinspirasi oleh tampilan segitiga dari banyak objek bergaya modern (dan harus saya akui banyak dari Deus Ex). Saya benar-benar ingin memiliki robot yang terlihat bagus dan profesional karena itu adalah sesuatu yang sering hilang di robot DIY (tapi jangan khawatir kabelnya berantakan seperti yang seharusnya). Menghabiskan beberapa minggu pada model CAD untuk mengubah semuanya diperlukan.

Lampu di samping didaur ulang dari tongkat bercahaya Malam Tahun Baru yang saya dapatkan secara gratis dan berfungsi untuk menunjukkan status robot. Ketika Arduino tidak terhubung ke master ROS (menunjukkan bahwa program robot belum dimulai) lampu berkedip tiga kali berturut-turut dengan sangat cepat. Saat mengemudi, lampu memiliki kedipan yang terlihat lebih "bernafas" dan kecepatan kedipan bergantung pada kecepatan robot.

Tidak terhubung berkedip

Berkedip menganggur

Struktur

Seperti yang dinyatakan di atas, robot adalah penggerak diferensial, sehingga motor ditempatkan pada sumbu yang sama. Basisnya terbuat dari kayu dengan dua roda kastor sebagai penyangga. Saya awalnya berencana menggunakan satu roda kastor untuk menghindari hal yang hiperstatik tetapi tidak dapat menemukan yang berukuran bagus. Sisa struktur sebagian besar terbuat dari braket kayu dan logam, mudah ditemukan di toko ritel DIY mana pun. Di bagian belakang pelat robot dapat ditumpuk untuk memasang papan elektronik.


Carter terbuat dari plat plastik hitam, dipotong dan direkatkan dengan tangan (lain kali pasti akan menggunakan 3D printing).


Perangkat Keras

Di bagian dalam pengontrol utama adalah Raspberry Pi 3B yang menjalankan Ubuntu dan ROS. Raspberry dapat diakses dari komputer luar melalui WiFi dan ssh untuk memberi perintah kepada robot. Program ROS melakukan perhitungan odometri, perencanaan navigasi, dan pemetaan menggunakan Kinect. Raspberry Pi mengirimkan perintah kecepatan ke Arduino yang mengontrol dua motor dengan PID melalui Adafruit Motor Shield. Ini membaca nilai encoder, menghitung kecepatan setiap motor dan mengirim kembali nilai ke Raspberry untuk perhitungan odometri. Arduino dan Raspberry Pi terhubung melalui USB dan program Arduino bertindak sebagai node ROS (cari rosserial untuk info lebih lanjut).

Saya menggunakan berbagai jenis Arduino sebelum memilih yang bagus. Pada awalnya saya menggunakan Arduino Uno dasar tetapi saya tidak memiliki cukup pin interupsi untuk membaca nilai encoder dengan (metode terbaik untuk melakukannya dengan Arduino). Kecepatan dan akurasi terbatas karena saya harus menggunakan trik pemrograman lain untuk membuatnya bekerja. Saya mencoba menggunakan Arduino Leonardo tetapi faktor pembatasnya adalah memori dan akhirnya saya harus beralih ke Arduino Mega 2560. Sebuah berkah tersembunyi karena saya memiliki banyak memori dan pin yang tersisa untuk menambahkan fungsi baru sekarang.

Kinect 360 adalah bagian dari proyek sejak awal, karena saya ingin melakukan SLAM (Pelokalan dan Pemetaan Simultan) tetapi tanpa menghabiskan banyak uang untuk sebuah lidar. Kinect pada dasarnya adalah kamera 3D 25€ (tentu saja tidak mengharapkan akurasi yang sama dengan Hokuyo) dan, selain pemindaian kedalaman yang diperlukan untuk SLAM, dapat juga digunakan untuk visi komputer, memiliki akselerometer dan mikrofon Himpunan. Semuanya berguna untuk langkah-langkah proyek berikut.

Dua konverter DC digunakan untuk mengubah tegangan. Motor berjalan langsung dengan tegangan baterai (kurang lebih 11.1v). Bagian perintah (termasuk Raspberry Pi, Arduino dan encoder) berjalan pada 5V yang dikonversi dari baterai. Kinect membutuhkan tegangan stabil 12v dan konverter juga menyediakannya dari baterai.

Perangkat Lunak

Pada bagian software, saya menggunakan ROS Kinetic. Satu-satunya simpul yang benar-benar saya tulis adalah "nox_controller" yang, seperti namanya tidak terlalu tersirat, digunakan untuk menghitung odometri dari data Arduino (kecepatan motor). Model yang digunakan untuk perhitungan dapat ditemukan di makalah “Pada Odometri Robot Penggerak Diferensial dengan Aplikasi untuk Perencanaan Jalur” (Saya sebenarnya membuat rumus saya sendiri tetapi mereka sama, bagaimanapun makalah ini layak untuk dibaca). Matriks kovarians diberikan dalam odometri tetapi saat ini tidak digunakan (namun akan berguna jika saya mengintegrasikan IMU ke odometri).

Di Arduino, kontrol motor dilakukan melalui PWM. PID seharusnya mengatur setiap kecepatan motor tetapi karena rasio kecepatan PWM/motor sangat linier, saya mendapat hasil yang baik dengan perintah langsung kecepatan dan menonaktifkan PID untuk saat ini. Jangan khawatir meskipun implementasi dan kalibrasi PID yang benar sedang dalam proses.

Baca Selengkapnya Detail :Nox – A House Wandering Robot (ROS)


Proses manufaktur

  1. Cara Membuat Platform Robot Arduino+Raspberry Pi
  2. Robot Menggunakan Raspberry Pi &Bridge Shield
  3. Robot Kotak CD Raspberry Pi
  4. ANDY:Robot "Humanoid" Serbaguna
  5. Robot Alarm Bergulir
  6. Membuat Robot Creeper Minecraft
  7. Robot Otonom Berkaki Empat JQR
  8. Archimedes:AI Robot Owl
  9. EMAR Mini – Robot Bantuan Darurat
  10. Robot Terkendali Wifi Menggunakan Raspberry Pi