Isi kandungan:
- Langkah 1: Permulaan dan Sensor
- Langkah 2: Mendapatkan Data
- Langkah 3: Menamatkan Misi
- Langkah 4: Kesimpulannya
Video: Roomba Explorer: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Dengan menggunakan Robot Buat2 MATLAB dan iRobot, projek ini akan meneroka pelbagai kawasan di lokasi yang tidak diketahui. Kami menggunakan sensor pada Robot untuk membantu menggerakkan kawasan yang berbahaya. Dengan mendapatkan gambar dan suapan video dari Raspberry Pi yang dilampirkan, kami dapat menentukan rintangan yang akan dihadapi oleh Robot, dan mereka akan diklasifikasikan.
Bahagian dan Bahan
Untuk projek ini, anda akan memerlukan
-komputer
-MATLAB versi terbaru (MATLAB R2018b digunakan untuk projek ini)
- kotak alat roombaInstall
-Robot Buat2 Robot
-Raspberry Pi dengan Kamera
Langkah 1: Permulaan dan Sensor
Sebelum memulakan sebarang pengaturcaraan, kami memuat turun kotak alat roombaInstall, yang membolehkan akses ke komponen Robot yang berbeza.
Pada mulanya, kami membuat GUI untuk menginisialisasi Robot apa pun. Untuk melakukan ini, anda perlu memasukkan nombor Robot sebagai input. Ini akan membolehkan akses untuk menjalankan program kami ke Robot Kami berusaha mendapatkan Robot untuk bergerak melalui banyak medan yang akan dihadapinya. Kami menerapkan Sensor Cliff, Light Bump Sensor, dan Physical Bump Sensor, dengan menggunakan outputnya untuk menjelajah Robot untuk mengubah kelajuan dan atau arahnya. Apabila salah satu dari enam Sensor Bump Cahaya mendeteksi objek, nilai yang dikeluarkannya akan berkurang, menyebabkan kecepatan Robot menurun untuk menghindari perlanggaran kecepatan penuh. Apabila Robot akhirnya bertembung dengan halangan, sensor Physical Bump akan melaporkan nilai lebih besar daripada sifar; kerana ini, Robot akan berhenti, jadi tidak akan ada lagi perlanggaran dan lebih banyak fungsi dapat dilakukan. Untuk Cliff Sensors, mereka akan membaca kecerahan kawasan di sekitarnya. Sekiranya nilainya lebih besar dari 2800, kami menentukan bahawa Robot akan berada di landasan yang stabil dan selamat. Tetapi, jika nilainya kurang dari 800, Cliff Sensor akan mengesan tebing, berhenti serta-merta agar tidak jatuh. Apa-apa nilai di antara ditentukan untuk mewakili air dan akan menyebabkan Robot menghentikan tindakannya. Dengan menggunakan sensor di atas, kelajuan Robot diubah memungkinkan kita untuk menentukan dengan lebih baik apakah ada bahaya.
Berikut adalah kod (dari MATLAB R2018b)
%% Permulaan
dlgPrompts = {'Roomba Number'};
dlgTitle = 'Pilih Roomba Anda';
dlgDefaults = {''};
opts. Resize = 'on';
dlgout = inputdlg (dlgPrompts, dlgTitle, 1, dlgDefaults, opts)% Buat tetingkap yang mendorong pengguna memasukkan nombor roomba mereka
n = str2double (dlgout {1});
r = roomba (n); % Memulakan pengguna yang ditentukan Roomba %% Penentuan kelajuan dari Light Bump Sensors sedangkan true s = r.getLightBumpers; % mendapat sensor lebam cahaya
lbumpout_1 = extractfield (s, 'kiri'); % mengambil nilai berangka sensor dan menjadikannya lebih berguna lbumpout_2 = extractfield (s, 'leftFront');
lbumpout_3 = extractfield (s, 'leftCenter');
lbumpout_4 = extractfield (s, 'rightCenter');
lbumpout_5 = extractfield (s, 'rightFront');
lbumpout_6 = extractfield (s, 'kanan');
lbout = [lbumpout_1, lbumpout_2, lbumpout_3, lbumpout_4, lbumpout_5, lbumpout_6]% menukar nilai menjadi matriks
sLbump = sort (lbout); % menyusun matriks hingga nilai terendah dapat diekstrak
lowLbump = sLbump (1); speed =.05 + (lowLbump) *. 005% menggunakan nilai terendah, yang mewakili rintangan dekat, untuk menentukan kelajuan, kelajuan lebih tinggi apabila tidak ada yang dikesan
r.setDriveVelocity (kelajuan, kelajuan)
akhir
% Bumper Fizikal
b = r.getBumpers; % Keluaran benar, salah
bsen_1 = ladang ekstrak (b, 'kiri')
bsen_2 = ladang ekstrak (b, 'kanan')
bsen_3 = ladang ekstrak (b, 'depan')
bsen_4 = extractfield (b, 'leftWheelDrop')
bsen_5 = extractfield (b, 'rightWheelDrop')
bumps = [bsen_1, bsen_2, bsen_3, bsen_4, bsen_5] tbump = jumlah (bum)
jika tbump> 0 r.setDriveVelocity (0, 0)
akhir
% Sensor Tebing
c = r.getCliffSensors %% 2800 selamat, jika tidak air
csen_1 = ladang ekstrak (c, 'kiri')
csen_2 = ladang ekstrak (c, 'kanan')
csen_3 = extractfield (c, 'leftFront')
csen_4 = extractfield (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'
yang lain
buang 'air'
akhir
r. TurnAngle (45)
akhir
Langkah 2: Mendapatkan Data
Setelah Sensor Bump Fizikal tersekat, Robot akan menggunakan Raspberry Pi di dalamnya untuk mengambil gambar halangan. Setelah mengambil gambar, menggunakan pengecaman teks jika ada teks dalam gambar, Robot akan menentukan apa halangan dan apa yang dikatakan oleh halangan tersebut.
img = r.getImage; imshow (img);
imwrite (img, 'imgfromcamera.jpg')
foto = imread ('imgfromcamera.jpg')
ocrResults = ocr (foto)
diiktirafTeks = ocrResults. Text;
angka;
teks imshow (foto) (220, 0, teks yang dikenali, 'BackgroundColor', [1 1 1]);
Langkah 3: Menamatkan Misi
Apabila Robot menentukan bahawa halangan itu adalah RUMAH, ia akan menyelesaikan misinya dan tinggal di rumah. Setelah menyelesaikan misi, Robot akan menghantar amaran e-mel bahawa ia telah pulang, dan ia akan menghantar gambar yang diambil sepanjang perjalanannya.
% Menghantar E-mel
setpref ('Internet', 'SMTP_Server', 'smtp.gmail.com');
setpref ('Internet', 'E_mail', '[email protected]'); % akaun mel untuk dihantar dari setpref ('Internet', 'SMTP_Username', 'masukkan e-mel pengirim'); % pengirim nama pengguna setpref ('Internet', 'SMTP_Password', 'masukkan kata laluan pengirim'); % Kata laluan pengirim
alat peraga = 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 yang diterima', 'Roomba', 'Roomba telah pulang !!', 'imgfromcamera.jpg')% akaun mel untuk dihantar ke
Robot kemudian selesai.
Langkah 4: Kesimpulannya
Program MATLAB yang disertakan dipisahkan dari keseluruhan skrip yang digunakan dengan Robot. Dalam draf akhir, pastikan untuk memasukkan semua kod, kecuali langkah permulaan, ke dalam gelung sementara untuk memastikan bumper terus berjalan. Program ini dapat diedit agar sesuai dengan keperluan pengguna. Konfigurasi Robot kami ditunjukkan.
* Peringatan: Jangan lupa bahawa kotak alat roombaInstall diperlukan agar MATLAB berinteraksi dengan Robot dan Raspberry Pi di dalamnya.
Disyorkan:
Mengubah Roomba Anda menjadi Mars Rover: 5 Langkah
Mengubah Roomba Anda menjadi Mars Rover:
Roomba Bot the Bulider: 5 Langkah (dengan Gambar)
Roomba Bot the Bulider: Bot the Builder adalah roomba, yang mempunyai " grabbers " melekat pada bahagian depan akan dapat menggerakkan objek ke sekeliling. Kod dengannya ditetapkan untuk merekod pergerakan pertama dengan kotak GUI yang dapat anda kendalikan hanya dengan satu klik tetikus anda. Selepas
Pintasan Papan Kekunci untuk Internet Explorer !!: 4 Langkah
Pintasan Papan Kekunci untuk Internet Explorer !!: Petunjuk ini akan menunjukkan kepada anda beberapa jalan pintas papan kekunci yang berguna untuk penjelajah internetSila melanggan saluran sayaTerima kasih
Dari Roomba ke Rover hanya dalam 5 Langkah !: 5 Langkah
Dari Roomba ke Rover hanya dalam 5 Langkah!: Robot Roomba adalah cara yang menyeronokkan dan mudah untuk mencengkam jari kaki anda dalam dunia robotik. Dalam Instructable ini, kita akan memperincikan cara menukar Roomba sederhana menjadi rover terkawal yang secara serentak menganalisis persekitarannya. Senarai Bahagian1.) MATLAB2.) Roomb
Bas Pirate 3EEPROM Explorer Board: 5 Langkah
Bus Pirate 3EEPROM Explorer Board: Sekiranya anda mempunyai salah satu Hack Pir Day Bus Pirates, apa yang anda lakukan dengannya? Ketahui mengenai 1-wayar, I2C, dan SPI EEPROM dengan papan penjelajah 3EEPROM (kami memanggilnya THR-EE-PROM). EEPROM adalah sejenis cip memori yang menyimpan data tanpa kuasa berterusan