สารบัญ:

Hawking Bot: 5 ขั้นตอน
Hawking Bot: 5 ขั้นตอน

วีดีโอ: Hawking Bot: 5 ขั้นตอน

วีดีโอ: Hawking Bot: 5 ขั้นตอน
วีดีโอ: Hawking's Bot - Tutorial 2024, พฤศจิกายน
Anonim
Image
Image
สร้าง Hawking Bot ของคุณ
สร้าง Hawking Bot ของคุณ

Hawking Bot คือโครงการ Lego MINDSTORMS EV3 ซึ่งได้รับแรงบันดาลใจจาก Stephen Hawking ผู้ล่วงลับไปแล้ว Stephen Hawking มีอารมณ์ขันที่ดี ฉันแน่ใจว่าเขาจะอนุมัติโครงการนี้ Hawking Bot สามารถนำทางของเขาไปรอบ ๆ สิ่งกีดขวางและตอบสนองต่อการเคลื่อนไหว จากนั้นเปล่งเสียงอันโด่งดังของ Stephen Hawking และเคลื่อนที่ไปในทิศทางของวัตถุที่กำลังเคลื่อนที่ ใช้เซ็นเซอร์อัลตราโซนิกซึ่งกำลังสแกนสภาพแวดล้อมด้วยการเคลื่อนไหวของศีรษะแบบกวาด

ขั้นตอนที่ 1: สร้าง Hawking Bot ของคุณ

ชิ้นส่วนที่จำเป็นทั้งหมดอยู่ในชุด EV3 Lego MINDSTORMS พื้นฐาน ยกเว้นเซ็นเซอร์อัลตราโซนิก (ตาของเขา) ซึ่งต้องซื้อแยกต่างหาก

ขั้นตอนที่ 2:

ภาพ
ภาพ

รหัสสำหรับ Hawking Bot เขียนด้วย python 3 ทั้งหมด ไฟล์รูปภาพที่สามารถบู๊ตได้เพื่อเรียกใช้ python ภายในสภาพแวดล้อม Debian Linux บน Hawking Bot สามารถดาวน์โหลดได้จากเว็บไซต์ ev3dev สามารถดาวน์โหลดรหัสเพื่อเรียกใช้ Hawking Bot ได้จากที่นี่ รหัสทั้งหมดอยู่ในไฟล์คลาส ดังนั้นคุณสามารถใช้เมธอดที่มีอยู่หรือแก้ไขได้หากต้องการ

โปรดดูวิดีโอนี้พร้อมคำแนะนำโดยละเอียดเกี่ยวกับวิธีตั้งค่า Debian Linux และ Python3 บนหุ่นยนต์ของคุณ แม้ว่านี่จะมีไว้สำหรับการตั้งค่า Mac โดยเฉพาะ แต่ก็ยังมีประโยชน์ในการทำความเข้าใจกระบวนการโดยทั่วไป นี่คืองานที่กำลังดำเนินการอยู่ เซ็นเซอร์อัลตราโซนิกในบางครั้งไม่น่าเชื่อถือและต้องใช้รหัสที่ชาญฉลาดกว่าเพื่อตรวจจับ 'ค่าผิดปกติ' ฉันต้องการเห็นการมีส่วนร่วมจากผู้อื่นเพื่อทำให้โค้ดมีประสิทธิภาพมากขึ้นและเกิดข้อผิดพลาดน้อยลง

ขั้นตอนที่ 3: สร้างเสียงกัดของ Hawking ของคุณเอง

ตกลง ตอนนี้คุณต้องการใบเสนอราคาที่มีชื่อเสียงหรือคำพูดง่ายๆ จากศาสตราจารย์ฮอว์คิง มีวิดีโอมากมายที่คุณสามารถได้ยินเขาพูดและจากนั้นก็มีการบรรยายของเขาซึ่งเป็นขุมทรัพย์แห่งปัญญาและเสียงกัดที่มีประโยชน์

คุณต้องมีโปรแกรมอย่าง Audacity ซึ่งทำงานบนหลายแพลตฟอร์มเพื่อเลือกและตัดเพลงโปรดของคุณออก

บันทึกเสียงกัดของคุณเป็นไฟล์ wav mono เช่น SH6, SH7, …SH11, SH12 และอื่นๆ

ด้านล่างนี้คุณจะพบตัวอย่างบางส่วนที่ฉันสร้างขึ้นตามวิธีการข้างต้น

ขั้นตอนที่ 4: คำแนะนำและเคล็ดลับ

เคล็ดลับและเทคนิค
เคล็ดลับและเทคนิค
เคล็ดลับและเทคนิค
เคล็ดลับและเทคนิค

Hawking Bot มาพร้อมกับโมดูลตรวจสอบตัวเองเพื่อให้แน่ใจว่าสายเคเบิลทั้งหมดเชื่อมต่อและพลังงานแบตเตอรี่เพียงพอ การเชื่อมต่อที่หลวม ขาดหาย หรือแม้แต่เสียหายอาจเกิดขึ้นได้ง่าย ดังนั้นโมดูลนี้จึงมีประโยชน์มาก วิธี 'checkConnection' จะตรวจสอบว่ามีการเชื่อมต่อไฟฟ้าหรือไม่ คุณยังต้องแน่ใจว่ามอเตอร์เชื่อมต่อกับพอร์ตที่ถูกต้อง

การเคลื่อนไหวของศีรษะแบบรูดเป็นสิ่งจำเป็นสำหรับ Hawking Bot ในการสแกนภูมิประเทศและค้นหาเส้นทางที่ไม่มีสิ่งกีดขวางที่ยาวที่สุดข้างหน้า สายเคเบิลต้องการพื้นที่เพียงพอเพื่อรองรับการเคลื่อนไหวของศีรษะ ดังนั้นจึงแนะนำให้ผูกเข้าด้วยกันตามที่แสดงในภาพ

Hawking Bot ทำงานได้ดีที่สุดกับสิ่งกีดขวางขนาดใหญ่และบนพื้นผิวที่เรียบและเรียบ พรมเป็นสิ่งที่ท้าทายสำหรับมอเตอร์มากกว่า และคุณอาจต้องปรับการตั้งค่าเพื่อปรับพฤติกรรมสำหรับพื้นผิวต่างๆ

Hawking Bot ไม่ได้สมบูรณ์แบบและนี่คือต้นแบบที่จะได้รับประโยชน์จากการปรับปรุงเพิ่มเติม โค้ดได้รับการแสดงความคิดเห็นอย่างเต็มที่แล้ว และน่าจะเป็นเรื่องง่ายสำหรับคุณที่จะทราบว่าวิธีการต่างๆ ทำอย่างไร มีการคอมเมนต์บิตต่างๆ ด้วย # หากคุณลบ # ข้างหน้า 'print' โปรแกรมที่ทำงานอยู่จะแสดงการอ่านและการคำนวณของเซ็นเซอร์ต่างๆ

ขั้นตอนที่ 5: การปรับปรุงที่แนะนำ การอัปเดต & แนวคิดในอนาคต

ตอนนี้ คุณสร้างหุ่นยนต์ของคุณสำเร็จแล้ว คุณต้องการก้าวไปสู่อีกระดับ คุณสามารถปรับปรุงวิธี MotionDetector เดี๋ยวนี้อ่านผิดบ่อยมาก คุณสามารถดูการอ่านจริงได้โดยยกเลิกการใส่ความคิดเห็น disA และ disB (ที่ด้านล่างของบล็อกวิธีการ) การอ่านที่ไม่ถูกต้องมักจะโดดเด่นกว่าการอ่านอื่นๆ ดังนั้นคุณสามารถเขียนอัลกอริทึมเพื่อหยุดหุ่นยนต์ตอบสนองต่อการอ่านที่ไม่ถูกต้อง

บางทีคุณอาจต้องการควบคุมหุ่นยนต์อย่างเต็มที่และเพียงแค่ควบคุมการทำงานต่างๆ ของหุ่นยนต์จากระยะไกล คุณสามารถทำได้ผ่าน Bluetooth และเขียนโปรแกรม Android เพื่อสื่อสารกับหุ่นยนต์ อย่างไรก็ตาม แนวทางที่ง่ายกว่ามากคือการหาที่สำหรับเซ็นเซอร์อินฟราเรดเพื่อควบคุม Hawking Bot

แล้วการให้หุ่นยนต์เรียนรู้เกี่ยวกับสภาพแวดล้อมล่ะ? สิ่งนี้สามารถทำได้ด้วยวิธีการเพื่อนบ้านที่ใกล้ที่สุด k หรืออาจเป็นโครงข่ายประสาทเทียม อิฐ EV3 มีพลังในการประมวลผลที่จำกัด แม้ว่าจะรองรับ Numpy ก็ตาม อีกทางเลือกหนึ่งคือ BrickPi ซึ่งจะช่วยให้คุณเรียกใช้ไลบรารี่ AI เช่น Tensorflow แต่จุดประสงค์ของคู่มือนี้คือการใช้ชุด Lego EV3 MINDSTORMS โดยไม่จำเป็นต้องซื้อชิ้นส่วนราคาแพงอื่น ๆ นอกเหนือจากเซ็นเซอร์อัลตราโซนิก

อย่างไรก็ตาม แนวทางการเรียนรู้แบบ re-infocement เพื่อนบ้านที่ใกล้ที่สุด k ควรทำงานกับอิฐ EV3 และนี่คืออัลกอริธึมที่แนะนำ ฉันปล่อยให้คุณค้นหาการใช้งานที่ใช้งานได้หรือพบปัญหาใดๆ:

การเรียนรู้การเสริมแรงสำหรับ Hawkings Bot

แนวคิดก็คือการอ่าน USS 7 ครั้งนั้นถูกเข้ารหัสเป็นเวกเตอร์ และใช้การส่ายหัว 10 ครั้งสุดท้ายเพื่อสร้างเวกเตอร์ตามลำดับ 70 รายการ การอ่านครั้งแรกไม่สมบูรณ์ดังนั้นจะเต็มไปด้วยศูนย์ แต่ละรายการมีค่าระยะทางจาก USS นี่คือเวกเตอร์ของรัฐ s ระบบอนุญาตให้มี 1,000 รายการ หลังจากนั้นรายการเก่าที่สุดจะถูกแทนที่และรายการอายุสำหรับคู่ s-r แต่ละคู่จะลดลงหนึ่งคู่

บอทต้องไม่เข้าใกล้วัตถุเกิน 10 ซม. สิ่งนี้สร้างรางวัลเชิงลบ เพื่อความเรียบง่าย การกระทำที่ดีจะได้รับรางวัลเป็น 1 และการกระทำที่ไม่ดีด้วย 0 สิ่งนี้ทำให้เกิดความน่าจะเป็นสำหรับรางวัลสำหรับชุดค่าผสมแต่ละสถานะการกระทำ เราจะใช้ส่วนลดและนโยบายความโลภของเอปซิลอน

สิ่งนี้จะสร้างตารางรางวัลขนาดใหญ่ 3 สถานะ (s-r) สำหรับการกระทำทั้งสามทางขวา ตรงไปข้างหน้า และซ้าย – อาจเป็นไปได้ที่จะมีความเร็วที่รวดเร็วและช้าสำหรับแต่ละการกระทำ จากนั้นเราจะมีการดำเนินการ 6 รายการและตารางการค้นหา 6 รายการ

ทุกครั้งที่มีการบันทึกสถานะใหม่ จะมีการเปรียบเทียบกับตาราง ระยะทางแบบยุคลิด (หรือการวัดที่คล้ายกัน) ถูกใช้เพื่อค้นหาเพื่อนบ้านที่ใกล้ที่สุด สิ่งนี้จะไม่ถูกจัดอันดับ แต่มีการตั้งค่าเกณฑ์ t ให้ยอมรับสถานะที่คล้ายกันมาก เขียนทับสถานะที่มีอยู่และอัปเดตเพื่อรับรางวัลสูงสุดและดำเนินการที่เกี่ยวข้อง a. ถ้ามันไม่เหมือนกัน (d>t) ให้ป้อนคู่ s-r ใหม่สำหรับแต่ละการกระทำ a หากมีการเสมอกันระหว่างการกระทำสำหรับ s-r (พวกเขาทั้งหมดมีรางวัลเหมือนกัน) ให้เลือกแบบสุ่ม แต่นี่ไม่ใช่เรื่องปกติและสามารถละเว้นได้

t จะต้องพิจารณาจากการทดลอง ถ้า t มีค่าน้อยเกินไป รัฐที่คล้ายกันจะถูกละเว้น และแต่ละสถานะจะถูกมองว่าไม่ซ้ำกัน ใหญ่เกินไป t หมายความว่าแม้รัฐที่ค่อนข้างแตกต่างกันจะรวมกันเป็นก้อนซึ่งอาจส่งผลต่อความสามารถในการเลือกการกระทำที่ดี อาจเป็นไปได้ที่จะใช้วิธีทางสถิติเพื่อหาค่าที่ดีที่สุด

ตารางมีลักษณะดังนี้: หมายเลขรายการ – เวกเตอร์สถานะ– รางวัลสำหรับการดำเนินการ 1 – รางวัลสำหรับการดำเนินการ 2 – รางวัลสำหรับการดำเนินการ 3

ฉันเดาว่าการใช้งานจริงจะยุ่งยาก แต่ควรค่าแก่ความพยายาม ขอให้โชคดี!

แนะนำ: