สารบัญ:
- ขั้นตอนที่ 1: การเริ่มต้นและเซ็นเซอร์
- ขั้นตอนที่ 2: รับข้อมูล
- ขั้นตอนที่ 3: เสร็จสิ้นภารกิจ
- ขั้นตอนที่ 4: บทสรุป
วีดีโอ: Roomba Explorer: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ด้วยการใช้ MATLAB และ Create2 Robot ของ iRobot โครงการนี้จะสำรวจพื้นที่ต่างๆ ของตำแหน่งที่ไม่รู้จัก เราใช้เซ็นเซอร์บน Robot เพื่อช่วยในการเคลื่อนที่ในภูมิประเทศที่อันตราย ด้วยการถ่ายภาพและฟีดวิดีโอจาก Raspberry Pi ที่แนบ เราสามารถระบุอุปสรรคที่ Robot จะเผชิญ และจะถูกจำแนก
ชิ้นส่วนและวัสดุ
สำหรับโครงการนี้ คุณจะต้อง
-คอมพิวเตอร์
- MATLAB เวอร์ชันใหม่ล่าสุด (MATLAB R2018b ใช้สำหรับโครงการนี้)
- roombaInstall กล่องเครื่องมือ
-หุ่นยนต์ Create2 ของ iRobot
-Raspberry Pi พร้อมกล้อง
ขั้นตอนที่ 1: การเริ่มต้นและเซ็นเซอร์
ก่อนเริ่มการเขียนโปรแกรมใดๆ เราดาวน์โหลดกล่องเครื่องมือ roombaInstall ซึ่งอนุญาตให้เข้าถึงส่วนประกอบต่างๆ ของ Robot ได้
เริ่มแรก เราสร้าง GUI เพื่อเริ่มต้น Robot ใดๆ ในการทำเช่นนี้ คุณต้องพิมพ์หมายเลขหุ่นยนต์เป็นอินพุต ซึ่งจะช่วยให้สามารถเข้าถึงโปรแกรมของเราไปยัง Robot ได้ เราได้ดำเนินการเพื่อให้ Robot เคลื่อนที่ผ่านภูมิประเทศต่างๆ ที่อาจพบเจอได้ เราใช้ Cliff Sensors, Light Bump Sensors และ Physical Bump Sensors โดยใช้เอาต์พุตเพื่อเดินทางหุ่นยนต์เพื่อเปลี่ยนความเร็วและหรือทิศทาง เมื่อ Light Bump Sensors ตัวใดตัวหนึ่งในหกตัวตรวจจับวัตถุ ค่าที่ส่งออกจะลดลง ทำให้ความเร็วของหุ่นยนต์ลดลงเพื่อหลีกเลี่ยงการชนกันของความเร็วเต็มที่ เมื่อหุ่นยนต์ชนกับสิ่งกีดขวางในที่สุด เซ็นเซอร์ Physical Bump จะรายงานค่าที่มากกว่าศูนย์ ด้วยเหตุนี้ หุ่นยนต์จะหยุดทำงาน ดังนั้นจึงไม่มีการชนกันเพิ่มเติม และสามารถใช้งานฟังก์ชันเพิ่มเติมได้ สำหรับ Cliff Sensors พวกเขาจะอ่านความสว่างของพื้นที่โดยรอบ หากค่ามากกว่า 2800 เราพิจารณาแล้วว่าหุ่นยนต์จะอยู่บนพื้นดินที่มั่นคงและปลอดภัย แต่ถ้าค่าน้อยกว่า 800 Cliff Sensors จะตรวจจับหน้าผาโดยหยุดทันทีเพื่อไม่ให้ตก ค่าใด ๆ ระหว่างนั้นถูกกำหนดให้เป็นตัวแทนของน้ำและจะทำให้หุ่นยนต์หยุดการกระทำของมัน ด้วยการใช้เซ็นเซอร์ข้างต้น ความเร็วของหุ่นยนต์จะเปลี่ยนไป ทำให้เราสามารถระบุได้ดีขึ้นว่ามีอันตรายใดๆ หรือไม่
ด้านล่างเป็นรหัส (จาก MATLAB R2018b)
%% การเริ่มต้น
dlgPrompts = {'หมายเลข Roomba'};
dlgTitle = 'เลือก Roomba ของคุณ';
dlgDefaults = {''};
opts. Resize = 'เปิด';
dlgout = inputdlg(dlgPrompts, dlgTitle, 1, dlgDefaults, opts) % สร้างหน้าต่างที่แจ้งให้ผู้ใช้ป้อนหมายเลข roomba
n=str2double(dlgout{1});
r=roomba(n); % เริ่มต้น Roomba ที่ระบุโดยผู้ใช้ %% การกำหนดความเร็วจาก Light Bump Sensors ในขณะที่ true s=r.getLightBumpers; % รับเซ็นเซอร์ตรวจจับแสง
lumpout_1=extractfield(s, 'left'); % ใช้ค่าตัวเลขของเซ็นเซอร์และทำให้ใช้งานได้มากขึ้น lumpout_2=extractfield(s, 'leftFront');
lbumpout_3=extractfield(s, 'leftCenter');
lbumpout_4=extractfield(s, 'rightCenter');
lumpout_5=extractfield(s, 'ด้านหน้าขวา');
lumpout_6=extractfield(s, 'ขวา');
lbout=[lumpout_1, lbumpout_2, lumpout_3, lumpout_4, lbumpout_5, lbumpout_6] % แปลงค่าเป็นเมทริกซ์
sLbump=sort(lbout); % sorts matrix เป็นค่าต่ำสุดสามารถแยกได้
lowLbump=sLbump(1); speed=.05+(lowLbump)*.005% ใช้ค่าต่ำสุดซึ่งแสดงถึงสิ่งกีดขวางอย่างใกล้ชิดเพื่อกำหนดความเร็ว ความเร็วสูงขึ้นเมื่อไม่มีอะไรตรวจพบ
r.setDriveVelocity (ความเร็ว, ความเร็ว)
จบ
% กันชนทางกายภาพ
b=r.getBumpers; %ผลลัพธ์จริงเท็จ
bsen_1=extractfield(b, 'ซ้าย')
bsen_2=extractfield(b, 'ขวา')
bsen_3=extractfield(b, 'ด้านหน้า')
bsen_4=extractfield(b, 'leftWheelDrop')
bsen_5=extractfield(b, 'rightWheelDrop')
กระแทก=[bsen_1, bsen_2, bsen_3, bsen_4, bsen_5] tbump=sum(บุ๋ม)
ถ้า tbump>0 r.setDriveVelocity(0, 0)
จบ
% คลิฟเซนเซอร์
c=r.getCliffSensors %% 2800 ปลอดภัย อย่างอื่นน้ำ
csen_1=extractfield(c, 'ซ้าย')
csen_2=extractfield(c, 'ถูกต้อง')
csen_3=extractfield(c, 'leftFront')
csen_4=extractfield(c, 'ด้านหน้าขวา')
หน้าผา=[csen_1, csen_2, csen_3, csen_4]
ordcliff=sort(หน้าผา)
ถ้า ordcliff(1) < 2750
r.setDriveVelocity(0, 0)
ถ้าหน้าผา<800
disp 'หน้าผา'
อื่น
กระจาย 'น้ำ'
จบ
ร.เทิร์นแองเกิล(45)
จบ
ขั้นตอนที่ 2: รับข้อมูล
หลังจากที่เซ็นเซอร์ตรวจจับการกระแทกทางกายภาพถูกสะดุด หุ่นยนต์จะติดตั้ง Raspberry Pi บนบอร์ดเพื่อถ่ายภาพสิ่งกีดขวาง หลังจากถ่ายภาพโดยใช้การจดจำข้อความหากมีข้อความในภาพ หุ่นยนต์จะกำหนดว่าสิ่งกีดขวางคืออะไรและสิ่งกีดขวางพูดว่าอย่างไร
img = r.getImage; imshow(img);
imwrite(img, 'imgfromcamera.jpg')
รูปภาพ = imread('imgfromcamera.jpg')
ocrResults = ocr (ภาพถ่าย)
ได้รับการยอมรับText = ocrResults. Text;
รูป;
ข้อความ imshow (ภาพถ่าย) (220, 0, จดจำข้อความ, 'BackgroundColor', [1 1 1]);
ขั้นตอนที่ 3: เสร็จสิ้นภารกิจ
เมื่อหุ่นยนต์กำหนดว่าสิ่งกีดขวางคือ HOME มันจะทำภารกิจให้สำเร็จและอยู่บ้าน หลังจากเสร็จสิ้นภารกิจ หุ่นยนต์จะส่งอีเมลแจ้งเตือนว่าได้กลับบ้านแล้ว และจะส่งภาพที่ถ่ายไปตลอดการเดินทาง
% การส่งอีเมล
setpref('อินเทอร์เน็ต', 'SMTP_Server', 'smtp.gmail.com');
setpref('อินเทอร์เน็ต', 'อีเมล', '[email protected]'); % บัญชีเมลที่จะส่งจาก setpref('Internet', 'SMTP_Username', 'Enter sender email'); % ชื่อผู้ใช้ผู้ส่ง setpref ('อินเทอร์เน็ต', 'SMTP_Password', 'ป้อนรหัสผ่านผู้ส่ง'); % รหัสผ่านผู้ส่ง
อุปกรณ์ประกอบฉาก = java.lang. System.getProperties; props.setProperty('mail.smtp.auth', 'true'); props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.port', '465');
sendmail('ป้อนอีเมลที่ได้รับ', 'Roomba', 'Roomba กลับบ้านแล้ว!!', 'imgfromcamera.jpg') % บัญชีอีเมลที่จะส่งไปที่
หุ่นยนต์เสร็จแล้ว
ขั้นตอนที่ 4: บทสรุป
โปรแกรม MATLAB ที่รวมอยู่นั้นแยกออกจากสคริปต์ทั้งหมดที่ใช้กับหุ่นยนต์ ในฉบับร่างสุดท้าย ตรวจสอบให้แน่ใจว่าได้ใส่โค้ดทั้งหมด ยกเว้นขั้นตอนการเริ่มต้น ลงในลูป while เพื่อให้แน่ใจว่าบัมเปอร์ทำงานอย่างต่อเนื่อง โปรแกรมนี้สามารถแก้ไขได้ตามความต้องการของผู้ใช้ การกำหนดค่าของ Robot ของเราจะแสดงขึ้น
*คำเตือน: อย่าลืมว่าจำเป็นต้องใช้กล่องเครื่องมือ roombaInstall เพื่อให้ MATLAB โต้ตอบกับ Robot และ Raspberry Pi บนบอร์ดได้
แนะนำ:
เปลี่ยน Roomba ของคุณให้เป็น Mars Rover: 5 ขั้นตอน
เปลี่ยน Roomba ของคุณให้เป็น Mars Rover:
แป้นพิมพ์ลัดสำหรับ Internet Explorer!!: 4 ขั้นตอน
แป้นพิมพ์ลัดสำหรับ Internet Explorer!!: คำแนะนำนี้จะแสดงแป้นพิมพ์ลัดที่เป็นประโยชน์สำหรับ internet explorer โปรดสมัครรับข้อมูลจากช่องของฉันขอบคุณ
Roomba Scout Explorer: 8 ขั้นตอน
Roomba Scout Explorer: ในฐานะหนึ่งในโปรเจ็กต์ของอเมริกาที่ทุกคนตั้งตารอและได้รับการวิจัยอย่างหนัก โครงการสำรวจดาวอังคารได้กลายเป็นความสำเร็จของมนุษย์ในการผลิตระบบอัตโนมัติที่มีเทคโนโลยีสูงที่ก้าวหน้าอย่างต่อเนื่องเพื่อจุดประสงค์เดียวในการสืบสวนและค้นคว้า
จาก Roomba สู่ Rover ในเวลาเพียง 5 ขั้นตอน!: 5 ขั้นตอน
จาก Roomba ถึง Rover ในเวลาเพียง 5 ขั้นตอน!: หุ่นยนต์ Roomba เป็นวิธีที่สนุกและง่ายในการจุ่มเท้าของคุณในโลกของหุ่นยนต์ ในคำแนะนำนี้ เราจะให้รายละเอียดเกี่ยวกับวิธีแปลง Roomba ธรรมดาให้เป็นรถแลนด์โรเวอร์ที่ควบคุมได้ ซึ่งจะวิเคราะห์สภาพแวดล้อมไปพร้อม ๆ กัน รายการชิ้นส่วน1.) MATLAB2.) Roomb
Bus Pirate 3EEPROM Explorer Board: 5 ขั้นตอน
Bus Pirate 3EEPROM Explorer Board: หากคุณมีหนึ่งใน Hack a Day's Bus Pirates คุณจะทำอย่างไรกับมัน เรียนรู้เกี่ยวกับ 1-wire, I2C และ SPI EEPROM ด้วยบอร์ดสำรวจ 3EEPROM (เราเรียกว่า THR-EE-PROM)EEPROM เป็นชิปหน่วยความจำประเภทหนึ่งที่จัดเก็บข้อมูลโดยไม่ต้องใช้พลังงานต่อเนื่อง