Nox: Robot Mengintip Rumah DIY dengan SLAM Berbasis ROS
Nox adalah robot differential-drive yang dibangun pada ROS, Raspberry Pi, dan Arduino, dilengkapi Kinect 360 untuk SLAM dan deteksi hambatan waktu nyata.
Awalnya dikonsepsi sebagai basis modular, saya mengembangkannya menjadi platform otonom penuh yang mampu membuat peta lingkungan sekitarnya (menggunakan gmapping), melokalkan dirinya sendiri, dan merencanakan jalur bebas tabrakan ke lokasi target apa pun.
Diberi daya oleh baterai Li-Ion 11,1 V dan dua motor DC 12 V (107 rpm) dari Banggood, robot dapat diisi ulang dengan cepat—panel depan dapat dilepas dan menerima baterai berbagai panjang. Tampilan level baterai memperingatkan Anda saat perlu diisi ulang.
Meskipun motor menyediakan kecepatan yang cukup, saya memilih untuk mengutamakan enkoder yang presisi untuk navigasi yang lebih halus.
Chassis dirancang untuk mengintegrasikan Kinect secara mulus. Saya memilih bentuk segitiga yang elegan yang terinspirasi oleh desain kontemporer dan estetik ikonik “Deus Ex”. Pengaturan CAD yang luas memastikan finishing profesional sambil menjaga kabel tetap terkelola.
LED status—daur ulang dari tongkat kilat Tahun Baru—memberikan petunjuk visual: urutan berkedip cepat tiga kali menandakan Arduino belum terhubung ke master ROS; pola bernapas menunjukkan navigasi aktif, dengan laju berkedip menyesuaikan kecepatan robot.
Tidak terhubung berkedip
Berkedip idle
Struktur
Drive diferensial menempatkan kedua motor pada poros bersama. Basis kayu mendukung dua roda castor untuk stabilitas; bagian belakang menampung papan tumpukan untuk Raspberry Pi, Arduino, dan elektronika lainnya.
Perut luar adalah plat plastik hitam yang dipotong tangan, desain yang akan difungsikan ulang dengan pencetakan 3D di build masa depan.
Hardware
Di intinya berada Raspberry Pi 3B yang menjalankan Ubuntu dan ROS, dapat diakses melalui Wi-Fi dan SSH untuk kontrol jarak jauh. ROS menangani odometri, perencanaan navigasi, dan SLAM dengan data Kinect. Pi mengirim perintah kecepatan ke Arduino Mega 2560, yang menggerakkan motor melalui Adafruit Motor Shield menggunakan loop PID. Umpan balik enkoder disalurkan kembali ke Pi untuk odometri yang akurat.
Saya bereksperimen dengan Uno dan Leonardo sebelum menetapkan pada Mega 2560, yang menawarkan memori dan pin interrupt yang cukup untuk pembacaan enkoder.
Kinect 360 adalah inti proyek: kamera 3D seharga 25 € yang menyediakan data kedalaman untuk gmapping, dan juga menyediakan visi, akselemeter, dan array mikrofon—berharga untuk ekspansi di masa depan.
Manajemen daya menggunakan dua konverter DC: motor berjalan langsung dari baterai 11,1 V, Pi, Arduino, dan enkoder beroperasi pada 5 V, sementara Kinect menerima 12 V yang distabilkan.
Perangkat Lunak
Proyek ini menjalankan ROS Kinetic. Satu node khusus, nox_controller, menghitung odometri dari data kecepatan motor. Model kinematik mengikuti pendekatan yang detail dalam “On Differential Drive Robot Odometry with Application to Path Planning.” Matriks kovarians dipublikasikan untuk fusi sensor di masa depan.
Kontrol motor saat ini menggunakan perintah PWM langsung; loop PID dinonaktifkan tetapi akan dikalibrasi untuk presisi yang ditingkatkan. Umpan balik enkoder sudah menghasilkan regulasi kecepatan yang memuaskan.
Baca Detail Lebih Lanjut: Nox – Robot Mengintip Rumah (ROS)