Hawking Bot: 5 ขั้นตอน
Hawking Bot: 5 ขั้นตอน
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

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

แนะนำ: