สารบัญ:
- ขั้นตอนที่ 1: แผนภาพการไหล
- ขั้นตอนที่ 2: ส่วนประกอบสำคัญที่เกี่ยวข้อง:
- ขั้นตอนที่ 3: MODULE V1:
- ขั้นตอนที่ 4: MODULE V2:
- ขั้นตอนที่ 5: ปัญหาที่เกี่ยวข้อง -
- ขั้นตอนที่ 6: MODULE A1 และ A2:
- ขั้นตอนที่ 7: เชื่อมโยงไปยังวิดีโอ:
วีดีโอ: หุ่นยนต์เดินด้วยตนเอง: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ฉันทำอะไรลงไป
● บอทที่สามารถฝึกให้เดิน (ก้าวไปข้างหน้า) บนพื้นผิวต่างๆ ได้ บอทแสดงภาพสิ่งมีชีวิตธรรมดาที่มี 4 ขาที่ "ไม่มีเข่า" ที่กำลังดิ้นรนที่จะก้าวไปข้างหน้า มันรู้ว่าสามารถปรับทิศทางขาแต่ละข้างได้ 3 วิธีเท่านั้น ตอนนี้ต้องคิดหาขั้นตอนที่ดีที่สุดที่จะสามารถดำเนินการต่อไปได้ เนื่องจากการเคลื่อนที่ของมันขึ้นอยู่กับการเสียดสีกับพื้นผิวด้วย เราเชื่อว่าสำหรับพื้นผิวต่างๆ ที่มันเดิน จะมีชุดขั้นตอนที่แตกต่างกัน (ไม่จำเป็นต้องมีลักษณะเฉพาะแต่น่าจะใกล้เคียงกันมากที่สุด) เพื่อเพิ่มความพยายามสูงสุดในการก้าวไปข้างหน้า
ใช้ทำอะไร?
● เหมาะที่สุดสำหรับการแสดงภาพรูปแบบการเดินของ AI ROBOT
ขั้นตอนที่ 1: แผนภาพการไหล
นี่คือรายละเอียดของโครงการทั้งหมด โปรเจ็กต์นี้แบ่งเป็น 2 ส่วนคืออุปกรณ์อิเล็กทรอนิกส์ที่มีโครงสร้างทางกลของหุ่นยนต์ และอีกส่วนคืออัลกอริธึมที่ทำงานบนพีซีและโค้ดที่ทำงานบน Arduino
ขั้นตอนที่ 2: ส่วนประกอบสำคัญที่เกี่ยวข้อง:
อิเล็กทรอนิกส์
Arduino UNO(!)
เซ็นเซอร์อัลตราโซนิก
เซอร์โวมอเตอร์
โมดูลบลูทูธ
การเข้ารหัส
Arduino IDE
Teraterm
Jupyter Notebook
Q- อัลกอริทึมการเรียนรู้
ขั้นตอนที่ 3: MODULE V1:
Reinforcement Learning: การใช้ ANN (Artificial Neural Network) เราวางแผนที่จะฝึกหุ่นยนต์ของเรา และเราคิดหาวิธีที่เป็นไปได้สองวิธี
ข้อจำกัด: ขาแต่ละข้าง (เซอร์โวมอเตอร์) ถูกจำกัดให้รับเพียง 3 ตำแหน่งที่เป็นไปได้ 60, 90 และ 120 องศา สมมติฐาน: เราพิจารณาว่าการเคลื่อนที่ของบอทจะประกอบด้วย 4 สถานะ (สถานะคือทิศทางที่แน่นอนของเซอร์โวทั้งสี่) กล่าวคือ จะมีสถานะต่างๆ ของหุ่นยนต์ 4 สถานะ ซึ่งเราจะพิจารณาเป็น 4 ขั้นตอนตามลำดับ ทำให้มีหนึ่งรอบของการเคลื่อนที่ใน ซึ่งบอทจะเคลื่อนที่ไปข้างหน้า วัฏจักรนี้จะทำซ้ำ ad infinitum เพื่อให้บอทเคลื่อนที่
แต่ปัญหาเดียวคือจำนวนการวนซ้ำที่ต้องประเมิน - เรามีทิศทางที่เป็นไปได้ 3 แบบสำหรับมอเตอร์แต่ละตัว และมีมอเตอร์ 4 ตัวที่แตกต่างกัน ทำให้เป็นสถานะ 3^4=81 ที่หุ่นยนต์สามารถดำรงอยู่ในขั้นตอนหรือสถานะเดียว เราต้องใช้ 4 ขั้นตอนที่ต่างกันเพื่อให้การเคลื่อนไหวที่ซับซ้อนหนึ่งครั้งเสร็จสมบูรณ์ ซึ่งหมายความว่า 81^4 = 43, 046, 721 ชุดค่าผสมที่เป็นไปได้เพื่อตรวจสอบประสิทธิภาพสูงสุดสำหรับหนึ่งรอบของการเคลื่อนไหว สมมติว่าใช้เวลา 5 วินาทีในการฝึกสถานะเดียว จะใช้เวลา 6.8250 ปีในการฝึกให้เสร็จ!
ขั้นตอนที่ 4: MODULE V2:
อัลกอริทึมการเรียนรู้ Q
อัลกอริธึมการเรียนรู้แบบเสริมกำลังขั้นต้นที่พัฒนาขึ้นสำหรับการฝึกสิ่งต่าง ๆ ที่มีสถานะจำกัดและค้นหาเส้นทางที่สั้นที่สุด ที่มา:
Math of Algorithm: มี 81 สถานะที่เป็นไปได้สำหรับแต่ละขั้นตอนที่บอทสามารถเข้ามาได้ เราตั้งชื่อสถานะเหล่านี้เป็นตัวเลขตั้งแต่ 1 ถึง 81 และตอนนี้สิ่งที่เราต้องการทราบคือค่าการเปลี่ยนแปลง ซึ่งหมายถึงการเปลี่ยนแปลงในตำแหน่งของหุ่นยนต์ (ระยะทางที่เคลื่อนที่) ในขณะที่ย้ายจากสถานะสุ่ม s1 ไปยังสถานะอื่น s2 (s1, s2 จาก 81 สถานะเหล่านั้น) เราสามารถเห็นมันเป็นเมทริกซ์ที่มี 81 แถวและ 81 คอลัมน์โดยที่องค์ประกอบของเมทริกซ์จะเท่ากับค่าของระยะทางที่มันย้ายจากที่สอดคล้องกับหมายเลขแถวและคอลัมน์ของมัน ค่าเหล่านี้อาจเป็นค่าบวกหรือค่าลบขึ้นอยู่กับการกระทำของโรบ็อตในคำพูดจริง ตอนนี้ เราจะพบสถานะวงปิดซึ่งระยะทางที่เดินทางเป็นบวกเสมอ เราจะประเมินค่าเมทริกซ์ 81x81 ซึ่งเท่ากับ 81^2=6561 ตอนนี้ หากเราใช้เวลา 5 วินาทีเพื่อเก็บค่าเหล่านี้ไว้ในเมทริกซ์ ก็จะได้ค่า ใช้เวลา 9.1125 ชั่วโมงเพื่อสร้างเมทริกซ์ทั้งหมด จากนั้นวนรอบขั้นตอนเพื่อเพิ่มประสิทธิภาพในการเคลื่อนที่สูงสุดสามารถคิดออกได้อย่างง่ายดาย
ขั้นตอนที่ 5: ปัญหาที่เกี่ยวข้อง -
- สำหรับบางสถานะการเคลื่อนไหวของบอทนั้นไม่สม่ำเสมอมากและส่งผลกระทบต่อค่าเซ็นเซอร์ของอัลตราโซนิก บอทจะเอียงและรับระยะห่างจากกำแพงที่อยู่ห่างไกล
- ปัญหาของการตัดการเชื่อมต่อจากแล็ปท็อปและการรีสตาร์ท Arduino ทำให้การฝึกฝนจากค่า 0 เป็นเรื่องที่น่ารำคาญมาก
- การดูรถไฟหุ่นยนต์ต่อเนื่อง 5 ชั่วโมงนั้นละเอียดถี่ถ้วนมาก
ขั้นตอนที่ 6: MODULE A1 และ A2:
- ชิ้นส่วนเครื่องจักรกลประกอบด้วยบอร์ดแชสซีที่มีเซอร์โวสี่ตัวติดอยู่ เราใช้แท่งไอศกรีมเพื่อทำขา
- งานหลักของเรา - เพื่อติดตามระยะห่างของบอทจากตำแหน่งเริ่มต้น
- วิธีแรกของเราคือการใช้เซ็นเซอร์ไจโรและใช้ความเร่งของบอทในขณะที่มันเคลื่อนที่เพื่อดึงความเร็วและตำแหน่งต่อมา
- ปัญหา - กลายเป็นว่าซับซ้อนเกินกว่าจะนำไปใช้ได้! ทางเลือกอื่น - เราจำกัดการเคลื่อนไหวของบอทไว้ที่ 1 มิติเท่านั้น และใช้เซ็นเซอร์อัลตราโซนิกเพื่อวัดระยะห่างจากกำแพงที่อยู่ตรงหน้า
- โมดูล HC05-Bluetooth ถูกใช้ระหว่างช่วงการฝึกเพื่อส่งอัตราการเปลี่ยนระยะทางระหว่างสองขั้นตอนไปยังพีซี และข้อมูลถูกเก็บไว้ในเมทริกซ์
ขั้นตอนที่ 7: เชื่อมโยงไปยังวิดีโอ:
สเต็ปเด็ก:
ภาพการฝึก:
เกือบตรง:
วิดีโอหุ่นยนต์เต้น:
Final Vide0:
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง