สารบัญ:

หุ่นยนต์เดินด้วยตนเอง: 7 ขั้นตอน
หุ่นยนต์เดินด้วยตนเอง: 7 ขั้นตอน

วีดีโอ: หุ่นยนต์เดินด้วยตนเอง: 7 ขั้นตอน

วีดีโอ: หุ่นยนต์เดินด้วยตนเอง: 7 ขั้นตอน
วีดีโอ: 3ข้อควรรู้ก่อนเริ่มทำหุ่นยนต์ - สำหรับผู้เริ่มต้น 2024, พฤศจิกายน
Anonim
หุ่นยนต์เดินเอง
หุ่นยนต์เดินเอง

ฉันทำอะไรลงไป

● บอทที่สามารถฝึกให้เดิน (ก้าวไปข้างหน้า) บนพื้นผิวต่างๆ ได้ บอทแสดงภาพสิ่งมีชีวิตธรรมดาที่มี 4 ขาที่ "ไม่มีเข่า" ที่กำลังดิ้นรนที่จะก้าวไปข้างหน้า มันรู้ว่าสามารถปรับทิศทางขาแต่ละข้างได้ 3 วิธีเท่านั้น ตอนนี้ต้องคิดหาขั้นตอนที่ดีที่สุดที่จะสามารถดำเนินการต่อไปได้ เนื่องจากการเคลื่อนที่ของมันขึ้นอยู่กับการเสียดสีกับพื้นผิวด้วย เราเชื่อว่าสำหรับพื้นผิวต่างๆ ที่มันเดิน จะมีชุดขั้นตอนที่แตกต่างกัน (ไม่จำเป็นต้องมีลักษณะเฉพาะแต่น่าจะใกล้เคียงกันมากที่สุด) เพื่อเพิ่มความพยายามสูงสุดในการก้าวไปข้างหน้า

ใช้ทำอะไร?

● เหมาะที่สุดสำหรับการแสดงภาพรูปแบบการเดินของ AI ROBOT

ขั้นตอนที่ 1: แผนภาพการไหล

แผนภาพการไหล
แผนภาพการไหล

นี่คือรายละเอียดของโครงการทั้งหมด โปรเจ็กต์นี้แบ่งเป็น 2 ส่วนคืออุปกรณ์อิเล็กทรอนิกส์ที่มีโครงสร้างทางกลของหุ่นยนต์ และอีกส่วนคืออัลกอริธึมที่ทำงานบนพีซีและโค้ดที่ทำงานบน Arduino

ขั้นตอนที่ 2: ส่วนประกอบสำคัญที่เกี่ยวข้อง:

อิเล็กทรอนิกส์

Arduino UNO(!)

เซ็นเซอร์อัลตราโซนิก

เซอร์โวมอเตอร์

โมดูลบลูทูธ

การเข้ารหัส

Arduino IDE

Teraterm

Jupyter Notebook

Q- อัลกอริทึมการเรียนรู้

ขั้นตอนที่ 3: MODULE V1:

โมดูล V1
โมดูล 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: ปัญหาที่เกี่ยวข้อง -

  1. สำหรับบางสถานะการเคลื่อนไหวของบอทนั้นไม่สม่ำเสมอมากและส่งผลกระทบต่อค่าเซ็นเซอร์ของอัลตราโซนิก บอทจะเอียงและรับระยะห่างจากกำแพงที่อยู่ห่างไกล
  2. ปัญหาของการตัดการเชื่อมต่อจากแล็ปท็อปและการรีสตาร์ท Arduino ทำให้การฝึกฝนจากค่า 0 เป็นเรื่องที่น่ารำคาญมาก
  3. การดูรถไฟหุ่นยนต์ต่อเนื่อง 5 ชั่วโมงนั้นละเอียดถี่ถ้วนมาก

ขั้นตอนที่ 6: MODULE A1 และ A2:

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

ขั้นตอนที่ 7: เชื่อมโยงไปยังวิดีโอ:

ลิงก์ไปยังวิดีโอ
ลิงก์ไปยังวิดีโอ

สเต็ปเด็ก:

ภาพการฝึก:

เกือบตรง:

วิดีโอหุ่นยนต์เต้น:

Final Vide0:

แนะนำ: