Filed under: Uncategorized
เทคนิคการสร้างท่าเดินคร๊าบบบ…
ในการจัดท่าทางการเดินของหุ่นยนต์ต้องทำการกำหนดท่าย่อยของท่าหลักแต่ละท่าขึ้นมาก่อน เช่น ต้องการสร้างท่าก้าวขาขวา ต้องกำหนดท่าย่อยดังนี้ 1. เอียงตัวไปทางซ้าย 2. ยกขาขวา 3. ก้าวขาขวา 4. วางขาขวา เราสามารถหาตำแหน่งของมอเตอร์เพื่อให้สร้างท่าทางเหล่านี้ได้ โดยใช้การกำหนดตำแหน่งที่ปลายเท้าทั้ง 2 ข้างของหุ่นยนต์ จากนั้นนำไปคำนวณโดยใช้สมการ Inverse Kinematic เราก็จะสามารถรู้ถึงตำแหน่งในการหมุนของมอเตอร์แต่ละตัวเพื่อให้เกิดเป็นท่าทางตามที่กำหนดไว้ได้ ในหุ่นยนต์ประเภททที่มีมอเตอร์หลายตัวต้องทำงานสัมพันธ์กันเพื่อให้เกิดท่าทางนั้น การสั่งงานมอเตอร์ให้เคลื่อนที่จากตำแหน่งหนึ่งไปยังอีกตำแหน่งหนึ่งนั้นไม่ควรสั่งเพียงครั้งเดียว เช่น จากรูปที่ 1 ต้องการสั่งให้มอเตอร์เคลื่อนที่จากตำแหน่ง x ไปยังตำแหน่ง y ไม่ควรสั่งให้มอเตอร์หมุนครั้งเดียวแล้วเคลื่อนจาก x ไป y เลยดังรูป A ควรมีการสร้าง trajectory ขึ้นระหว่างทางเพื่อให้เราสามารถกำหนดเวลาในการเคลื่อนที่ของมอเตอร์ทุกตัวให้สิ้นสุดพร้อมกันได้ ดังรูป B สามารยกตัวอย่างให้เห็นภาพมากขึ้นได้ เช่น ถ้าหุ่นย่อตัวอยู่ สั่งให้ยืดตัวขึ้นไปตรงๆ กรณีที่สั่งงานมอเตอร์แบบ A จะทำให้หุ่นยนต์พุ่งล้มไปข้างหน้า เนื่องจากในการจะเปลี่ยนท่าของหุ่นยนยต์จากท่าย่อเป็นยืดตัวนั้น ต้องมีมอเตอร์ที่ทำงานพร้อมกันอยู่ 6 ตัว คือมอเตอร์ที่สะโพก 2 ตัว หัวเข่า 2 ตัว และ ข้อเท้า 2 ตัว โดยตำแหน่งในการหมุนของมอเตอร์ที่สะโพกและข้อเท้าจะหมุนไปเป็นมุมที่เท่ากัน แต่มอเตอร์ที่หัวเข่าจะต้องหุมนไปเป็น 2 เท่าของมุมที่สะโพก ทำให้เวลาที่ใช้ในการหมุนของมอเตอร์ไม่เท่ากัน มีผลทำให้หุ่นยนต์ล้มไปด้านหน้า แต่ถ้าเปลี่ยนไปสั่งงานแบบ B จะทำให้มอเตอร์ทุทตัวทำงานเสร็จพร้อมกัน ผลคือหุ่นยนต์จะค่อยๆ ยืดตัวขึ้นทีละน้อยจนถึงตำแหน่งที่กำหนดไว้นั่นเอง

รูปที่ 1 แสดงตำแหน่งในการเคลื่อนที่ของหุ่นยนต์
ในการสั่งงานของหุ่นยนต์กุ๊กไก่เวลาที่ใช้ในการส่งคำสั่งไปยังมอเตอร์ คือทุกๆ 10 ms คือ 100 ครั้งต่อนาที เนื่องจากการส่งคำสั่งแต่ละคำสั่งต่อมอเตอร์ 1 ตัว ใช้ข้อมูลประมาณ 11 byte มอเตอร์ 20 ตัวก็ 220 byte คือประมาณ 2200 bit/10 ms ดังนั้นคำนวน Baud rate ต่ำสุดที่จะเลือกใช้ คือ
แต่ในที่นี้เลือกบอดเรตที่ 1 M เพราะต้องเพื่อช่วงการคำนวน Inverse Kinematic ด้วย
2200 x 100 = 220,000 bit/s
ท่าเดินสามารถแบ่งได้เป็น 2 แบบ คือ
1.ท่าเดินแบบ Static (เดินโดย จุดรวมมวลหรือ CM ไม่หลุดจากฝ่าเท้า)
เป็นการเดินแบบอาศัยกลักการทรงต้วด้วยเท้าข้างเดียว พยายามรักษาน้ำหนักตัวให้ตกอยู่เฉพาะในฝ่าเท้า ทำให้หุ่นไม่ล้ม แรกเริ่มเดิมทีหุ่นที่ทำเดินแบบนี้ คือ Jump01 และ Jidee01 การเดินแบบนี้เราก็แค่จัดท่าให้หุ่นรักษาสมดุลอยู่ได้โดยไม่ล้ม ที่ทำไว้สำหรับท่าก้าว แบ่งไว้เป็นเป็น 5 ท่าย่อย
1. เอียงตัวถ่ายน้ำหนักไปไว้ที่ขาข้างหนึ่ง
2. ยกขาด้านที่ไม่มีน้ำหนัก
3. ก้าวขาข้างที่ยกไปในระยะที่ต้องการ
4. วางขาข้างที่ก้าวลงกับพื้น
5. โยกถ่ายน้ำหนักจากขาข้างหนึ่งไปยังอีกข้างหนึ่ง ถ้าใช้การจัดท่าจะทำยาก ถ้าใช้การ
คำนวณด้วย Inverse Kinematic จะทำได้ง่ายมาก
ปัญหาที่พบ การเดินแบบนี้จะเดินช้ามากถึงมากที่สุด และมอเตอร์รับภาระมาก ทำให้มอเตอร์ร้อนและเสียเร็ว ส่วนมากที่พบคือวงจรขับพังละลายออกมา ร้อนขนาดว่าเอานิ้วไปแตะแล้วพองทันที
2.การเดินแบบ Dynamic
เป็นการเดินโดยมีความเร็วเนื่องจากการเคลื่อนที่เข้ามาเกี่ยว หลักการง่ายๆ คือ ก้าวขาไปข้างหน้า หุ่นจะเสียทรงตัวและล้ม ขณะที่หุ่นกำลังล้มเราก็ก้าวเท้าอีกข้างไปรับและทำแบบนี้เรื่อยๆไป การเดินแบบนี้ทำให้ลำตัวหุ่นจะอยู่ตรงกลางระหว่างเท้าทั้งสองพอดีตลอดเวลา จึงทำให้จัดท่าได้ง่ายกว่าแต่ต้องอาศัยดูจังหวะการโยกของหุ่น ที่ทำไว้สำหรับท่าก้าว แบ่งไว้เป็นเป็น 2 ท่าย่อย
1. ยกขาขึ้น
2. วางขาพร้อมก้าวลงกับพื้น
จะเห็นว่าไม่มีการเอียงตัวเข้ามาเกี่ยวข้องเลยเนื่องจากขณะที่หุ่นยนต์ยกขามันเอียงจนจะล้มอยู่แล้ว ดังนั้นมอเตอร์ที่ใช้ก็ต้องมีกำลังพอที่จะยกหุ่นยนต์ได้ด้วยเหมือนกัน ในการจัดท่าเบื้องต้น ให้จัดท่าหุ่นยนต์ยกเท้าซ้ายขวาย่ำเท้าอยู่กับที่ให้ได้ก่อน ถ้าได้แล้วท่าอื่นๆก็จะได้ตามมาโดยไม่ยาก
No Comments so far
Leave a comment
Leave a comment
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>