Daftar Isi:
- Langkah 1: Inisialisasi dan Sensor
- Langkah 2: Mendapatkan Data
- Langkah 3: Menyelesaikan Misi
- Langkah 4: Kesimpulan
Video: Roomba Explorer: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Dengan memanfaatkan MATLAB dan Robot Create2 iRobot, proyek ini akan menjelajahi berbagai area di lokasi yang tidak diketahui. Kami menggunakan sensor pada Robot untuk membantu manuver medan berbahaya. Dengan mendapatkan foto dan video feed dari Raspberry Pi yang terpasang, kami dapat menentukan hambatan yang akan dihadapi Robot, dan akan diklasifikasikan.
Bagian dan Bahan
Untuk proyek ini, Anda akan membutuhkan
-komputer
-versi MATLAB terbaru (MATLAB R2018b digunakan untuk proyek ini)
- roombaInstal kotak peralatan
-Robot Buat2 iRobot
-Raspberry Pi dengan Kamera
Langkah 1: Inisialisasi dan Sensor
Sebelum memulai pemrograman apa pun, kami mengunduh kotak alat roombaInstall, yang memungkinkan akses ke berbagai komponen Robot.
Awalnya, kami membuat GUI untuk menginisialisasi Robot apa pun. Untuk melakukan ini, Anda perlu mengetikkan nomor Robot sebagai input. Ini akan memungkinkan akses untuk menjalankan program kami ke Robot Kami bekerja untuk membuat Robot bermanuver melalui banyak medan yang akan dihadapinya. Kami menerapkan Cliff Sensors, Light Bump Sensors, dan Physical Bump Sensors, dengan menggunakan outputnya untuk menggerakkan Robot untuk mengubah kecepatan dan atau arahnya. Ketika salah satu dari enam Light Bump Sensors mendeteksi suatu objek, nilai yang mereka keluarkan akan berkurang, menyebabkan kecepatan Robot berkurang untuk menghindari tabrakan kecepatan penuh. Ketika Robot akhirnya bertabrakan dengan rintangan, sensor Bump Fisik akan melaporkan nilai yang lebih besar dari nol; karena itu, Robot akan berhenti, sehingga tidak akan ada lagi tabrakan dan lebih banyak fungsi dapat dijalankan. Untuk Cliff Sensor, mereka akan membaca kecerahan area di sekitar mereka. Jika nilainya lebih besar dari 2800, kami menentukan bahwa Robot akan berada di tanah yang stabil dan aman. Tapi, Jika nilainya kurang dari 800, Sensor Tebing akan mendeteksi tebing, segera berhenti agar tidak jatuh. Nilai apa pun di antaranya ditentukan untuk mewakili air dan akan menyebabkan Robot menghentikan aksinya. Dengan menggunakan sensor di atas, kecepatan Robot diubah sehingga kami dapat menentukan dengan lebih baik jika ada bahaya.
Di bawah ini adalah kode (dari MATLAB R2018b)
%% Inisialisasi
dlgPrompts = {'Nomor Kamar'};
dlgTitle = 'Pilih Roomba Anda';
dlgDefault = {''};
opts. Ubah ukuran = 'aktif';
dlgout = inputdlg(dlgPrompts, dlgTitle, 1, dlgDefaults, opts) % Buat jendela yang meminta pengguna untuk memasukkan nomor roomba mereka
n=str2ganda(dlgout{1});
r=ruangan(n); % Menginisialisasi Roomba yang ditentukan pengguna %% Penentuan kecepatan dari Light Bump Sensors saat true s=r.getLightBumpers; % dapatkan sensor benturan ringan
lbumpout_1=bidang ekstrak(s, 'kiri'); % mengambil nilai numerik dari sensor dan membuatnya lebih berguna lbumpout_2=extractfield(s, 'leftFront');
lbumpout_3=bidang ekstrak(s, 'kiriTengah');
lbumpout_4=bidang ekstrak(s, 'rightCenter');
lbumpout_5=bidang ekstrak(s, 'rightFront');
lbumpout_6=bidang ekstrak(s, 'kanan');
lbout=[lbumpout_1, lbumpout_2, lbumpout_3, lbumpout_4, lbumpout_5, lbumpout_6] % mengubah nilai menjadi matriks
sLbump=sort(lbout); % mengurutkan matriks ke nilai terendah yang dapat diekstraksi
lowLbump=sLbump(1); speed=.05+(lowLbump)*.005 %menggunakan nilai terendah, yang mewakili rintangan dekat, untuk menentukan kecepatan, kecepatan lebih tinggi saat tidak ada yang terdeteksi
r.setDriveVelocity(kecepatan, kecepatan)
akhir
% Bumper Fisik
b=r.getBumper; %Keluaran benar, salah
bsen_1=bidang ekstrak(b, 'kiri')
bsen_2=bidang ekstrak(b, 'kanan')
bsen_3=bidang ekstrak(b, 'depan')
bsen_4=bidang ekstrak(b, 'leftWheelDrop')
bsen_5=bidang ekstrak(b, 'rightWheelDrop')
bumps=[bsen_1, bsen_2, bsen_3, bsen_4, bsen_5] tbump=sum(gelandangan)
jika tbump>0 r.setDriveVelocity(0, 0)
akhir
% Sensor Tebing
c=r.getCliffSensors %% 2800 aman, kalau tidak air
csen_1=bidang ekstrak(c, 'kiri')
csen_2=bidang ekstrak(c, 'kanan')
csen_3=bidang ekstrak(c, 'depan kiri')
csen_4=bidang ekstrak(c, 'kananFront')
tebing=[csen_1, csen_2, csen_3, csen_4]
ordcliff=sort(tebing)
jika ordcliff(1) < 2750
r.setDriveVelocity(0, 0)
jika tebing<800
disp 'tebing'
lain
celupkan 'air'
akhir
r. TurnAngle(45)
akhir
Langkah 2: Mendapatkan Data
Setelah Sensor Bump Fisik tersandung, Robot akan mengimplementasikan Raspberry Pi di papan untuk mengambil foto rintangan. Setelah mengambil foto, menggunakan pengenalan teks jika ada teks dalam gambar, Robot akan menentukan apa penghalang dan apa yang dikatakan penghalang.
img = r.getGambar; tampilkan (img);
imwrite(img, 'imgfromcamera.jpg')
foto = imread('imgfromcamera.jpg')
ocrResult = ocr(foto)
dikenaliTeks = ocrResults. Teks;
angka;
imshow(foto) teks(220, 0, teks yang dikenali, 'Warna Latar Belakang', [1 1 1]);
Langkah 3: Menyelesaikan Misi
Ketika Robot menentukan bahwa rintangannya adalah RUMAH, ia akan menyelesaikan misinya dan tinggal di rumah. Setelah menyelesaikan misi, Robot akan mengirimkan e-mail peringatan bahwa ia telah kembali ke rumah, dan akan mengirimkan gambar yang diambil selama perjalanannya.
% Mengirim Email
setpref('Internet', 'SMTP_Server', 'smtp.gmail.com');
setpref('Internet', 'E_mail', '[email protected]'); % akun email untuk dikirim dari setpref('Internet', 'SMTP_Username', 'masukkan email pengirim'); % nama pengguna pengirim setpref('Internet', 'SMTP_Password', 'masukkan kata sandi pengirim'); % Sandi pengirim
props = java.lang. System.getProperties; props.setProperty('mail.smtp.auth', 'benar'); props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.port', '465');
sendmail('Masukkan email penerima', 'Roomba', 'Roomba telah kembali ke rumah!!', 'imgfromcamera.jpg') % akun email untuk dikirim ke
Robot kemudian selesai.
Langkah 4: Kesimpulan
Program MATLAB yang disertakan terpisah dari keseluruhan script yang digunakan dengan Robot. Dalam draf akhir, pastikan untuk memasukkan semua kode, kecuali untuk langkah inisialisasi, ke dalam loop while untuk memastikan bahwa bumper terus berjalan. Program ini dapat diedit sesuai dengan kebutuhan pengguna. Konfigurasi Robot kami ditampilkan.
*Pengingat: Jangan lupa bahwa toolbox roombaInstall diperlukan agar MATLAB dapat berinteraksi dengan Robot dan Raspberry Pi yang terpasang.
Direkomendasikan:
Robot Arduino Explorer "Nueve": 10 Langkah
Robot Arduino Explorador "Nueve": Se sabe que para el ser humano ada batas, esto también abarca la exploración de ciertos terrenos o zonas, aquellas casi imposibles o imposibles. Por eso se crearon robots exploradores para tal
Robot Explorer: 13 Langkah
Robot Explorador: Como ingenieros en Mecatronica se nos pide que seamos capaces de poder realizar proyectos que combinen distintas facultades como la mecanica, la electronica y la programacion. A continuacion se explicara los pasos a seguir para la realizacion de un
Pintasan Keyboard untuk Internet Explorer!!: 4 Langkah
Pintasan Keyboard untuk Internet Explorer !!: Instruksi ini akan menunjukkan kepada Anda beberapa pintasan keyboard yang berguna untuk internet explorer Silakan berlangganan saluran sayaTerima kasih
Roomba Scout Explorer: 8 Langkah
Roomba Scout Explorer: Sebagai salah satu proyek Amerika yang paling dinanti dan banyak diteliti, proyek penjelajah Mars telah menjadi pencapaian manusia dalam produksi sistem otonom berteknologi tinggi yang terus berkembang untuk tujuan tunggal investigasi dan inte
Dari Roomba ke Rover Hanya dalam 5 Langkah!: 5 Langkah
Dari Roomba ke Rover Hanya dalam 5 Langkah!: Robot Roomba adalah cara yang menyenangkan dan mudah untuk mencelupkan jari-jari kaki Anda ke dunia robotika. Dalam Instruksi ini, kami akan merinci cara mengubah Roomba sederhana menjadi penjelajah yang dapat dikontrol yang secara bersamaan menganalisis lingkungannya. Daftar Bagian1.) MATLAB2.) Roomb