Site icon ThaiRobotics

[BYOB] การเคลื่อนที่บนพื้นด้วยล้อและสายพาน

byob-wheel-and-track

** บทความนี้เป็นส่วนหนึ่งของบทความชุด Build Your Own Bot แนะนำการสร้างหุ่นยนต์ด้วยตัวเอง **

หลังจากที่รู้แนวทางการสร้างหุ่นยนต์โดยคร่าว ๆ กันแล้ว เรามาลงลึกในแต่ละขั้นตอนกันดีกว่า ในส่วนของการโจทย์และการหาความต้องการของระบบนั้น น่าจะขึ้นกับผู้สร้างหุ่นยนต์และสถานการณ์ซะมากกว่า ดังนั้นจะขอลงลึกในส่วนของการออกแบบระบบโดยคร่าวเลยแล้วกัน ในส่วนของการออกแบบระบบหุ่นยนต์โดยคร่าวนั้น หากเราได้เคยพบเห็นหุ่นยนต์แบบต่าง ๆ มาก่อน เราก็อาจจะใช้แบบหุ่นยนต์เหล่านั้นเป็นข้อมูลอ้างอิงในการออกแบบหุ่นยนต์ของเราเอง ซึ่งจะทำให้เราออกแบบได้เร็วขึ้น ไม่ต้องออกแบบใหม่ทั้งหมดในสิ่งที่มีคนอื่นแก้ปัญหานั้น ๆ ไว้แล้ว (don’t re-invent the wheel) แต่ก็อย่ายึดติดกับแบบที่คนอื่นเคยทำมา เราสามารถออกแบบหุ่นยนต์แบบใหม่ ๆ เองก็ได้ BYOB ครั้งนี่เลยจะขอแนะนำตัวอย่างหุ่นยนต์เคลื่อนที่โดยใช้ล้อและสายพาน

ก่อนอื่น จะขอแนะนำคำศัพท์เกี่ยวกับรูปแบบการเคลื่อนที่เล็กน้อย

holonomic VS non-holonomic

ตัวอย่างระบบขับเคลื่อนหุ่นยนต์ที่ใช้ล้อและสายพาน

Differential drive

เป็นรูปแบบการเคลื่อนที่ด้วยล้อที่ง่ายที่สุด คือ มีล้อ 2 ล้อ ล้อซ้าย และล้อขวา ถ้าต้องการเคลื่อนที่ไปข้างหน้าตรง ๆ ก็หมุนล้อซ้ายและขวาไปทางเดียวกันด้วยความเร็วเท่ากัน ถอยหลังตรง ๆ ก็หมุนล้อซ้ายและขวาถอยหลังทั้งคู่ ถ้าอยากเลี้ยวซ้ายก็หมุนล้อขวาไปข้างหน้าให้เร็วกว่าล้อซ้าย อยากเลี้ยวขวาก็หมุนล้อซ้ายไปข้างหน้าให้เร็วกว่าล้อขวา หรือจะหมุนตัวอยู่กับที่ก็ได้ ก็ให้หมุนล้อข้างหนึ่งไปข้างหน้า และล้ออีกข้างหมุนกลับหลังด้วยความเร็วเท่ากัน จะเห็นได้ว่าการขับเคลื่อนแบบ differential drive นั้น ไม่สามารถเคลื่อนที่ไปทิศใด ๆ ได้ตามต้องการในทันที ต้องทำการเลี้ยว หมุนตัวก่อน ดังนั้น differential drive จึงเป็นการเคลื่อนที่แบบ non-holonomic

differential drive

ตัวอย่าง

Skid steer

เรียกได้ว่าเป็นญาติกับ differential drive ใช้หลักการเดียวกันเรื่องการหมุนล้อเดินหน้า ถอยหลังเพื่อเคลื่อนที่และเลี้ยว ต่างกันตรงที่ skid steer จะใช้เรียกกับหุ่นยนต์ที่ใช้มากกว่า 2 ล้อ เช่น 4, 6, 8, … ล้อ และตีนตะขาบ เนื่องจากในหุ่นยนต์ที่มีล้อมาก ๆ หรือสายพานตีนตะขาบ เวลาเลี้ยวหรือหมุนตัว จะเกิดลื่นไถล (slip) บนล้อเทียบกับพื้น แน่นอนว่าการ slip นี้ทำให้ skid steer ใช้พลังงานในการเลี้ยวเยอะกว่า differential drive แต่ด้วยล้อที่มากกว่า มีพื้นที่สัมผัสพื้นมากกว่า ก็ทำให้มีแรงขับเคลื่อนมากกว่า

skid steer
การเคลื่อนที่ของล้อ (หมุนตามแนวล้อ) ที่ไม่สัมพันธ์กับการเคลื่อนที่ของหน้าสัมผัสล้อ (หมุนตามการหมุนของหุ่นยนต์) ทำให้เกิดการไถลที่ล้อ

ตัวอย่าง

Ackermann steering

ชื่อฟังดูยาก แต่จริง ๆ มันคือการเคลื่อนที่แบบรถยนต์นั่นเอง คือ มีล้อขับเคลื่อนและล้อเลี้ยว (ล้อเลี้ยวอาจจะเป็นล้อเดียวกับล้อขับเคลื่อนก็ได้ ในกรณีนี้จะต้องมีล้อหมุนอิสระคอยประคองด้วย เหมือนรถขับเคลื่อนล้อหน้า) คือเวลาเลี้ยวจะทำการหมุนล้อเลี้ยวให้ตั้งฉากกับเส้นที่ลากไปสู่จุดศูนย์กลางการเลี้ยว เพื่อทำให้ล้อทุกล้อเคลื่อนที่ไปตามเส้นโค้งของการเคลื่อนที่โดยไม่มีการ slip การที่ต้องหมุนล้อไปมาเพื่อเลี้ยว ทำให้ไม่สามารถเปลี่ยนทิศการเคลื่อนที่ไปทิศใด ๆ ตามต้องการได้ทันที ทำให้ Ackermann steering เป็น non-holonomic

ackermann steering

Articulate drive

คล้าย ๆ กับ Ackermann steering แต่จะหมุนล้อเลี้ยวไปด้วยกันทั้งชุด ตัวอย่างเช่น หุ่นยนต์ตีนตะขาบหลายท่อน articulate drive เป็น non-holonomic

articulate drive

ตัวอย่าง

Synchro drive

เป็นการขับเคลื่อนที่ล้อทุกล้อหมุนด้วยความเร็วเท่ากัน และมีกลไกลงบังคับเลี้ยวล้อทุกล้อไปในทิศต่าง ๆ พร้อมกัน ทำให้สามารถเคลื่อนที่ไปยังทิศใด ๆ ก็ได้ (แต่ต้องรอหมุนล้อแป๊บนึง) แต่ synchro drive จะไม่สามรถหมุนเลี้ยวรอบตัวเองได้ synchro drive เป็น semi-holonomic (คือ เกือบ ๆ จะเป็น holonomic คือ เคลื่อนที่ไปทิศใด ๆ ก็ได้ ไม่ต้องหมุนเลี้ยว แต่ไม่สามารถเปลี่ยนทิศได้ทันทีทันใด ต้องรอหมุนล้อก่อน)

synchro drive

ตัวอย่าง

Swerve drive

เป็นญาติกับ synchro drive ต่างกันตรงที่ล้อทุกล้อของ swirl drive สามารถหมุนเลี้ยวได้เป็นอิสระต่อกัน ทำให้เคลื่อนที่ไปทิศใด ๆ ก็ได้ และหมุนรอบตัวเองได้ swervel drive เป็น semi-holonomic

swirl drive

ตัวอย่าง

Singularity drive

อันนี้อาจจะไม่ค่อยเคยเห็นกัน จริง ๆ การเคลื่อนที่แบบนี้ถูกคิดค้นขึ้นมานานแล้ว แต่ไม่ค่อยเป็นที่นิยม หลัง ๆ นี้เริ่มมีคนนำมาใช้ใหม่ เป็นการเคลื่อนที่ที่เข้าใจยากซักหน่อย คือ จะใช้ล้อทรงส่วนของทรงกลม หมุนให้การหมุนตั้งฉากกับพื้น จุดที่ล้อสัมผัสกับพื้นจะมีความเร็วเป็นศูนย์ ถ้าต้องการเคลื่อนที่ไปทิศทางใด ก็เอียงล้อ ทำให้จุดที่ล้อสัมผัสกับพื้นมีความเร็วไม่เป็นศูนย์ การเอียงล้อทรงกลมไปยังทิศต่าง ๆ ทำให้เกิดแรงผลักบนพื้นในทิศต่าง ๆ ทำให้ singularity drive สามารถเคลื่อนที่ไปยังทิศใด ๆ ก็ได้ (แต่ต้องรอเอียงล้อสักเล็กน้อย) ทำให้ singularity drive เป็น semi-holonomic

singularity drive

ตัวอย่าง

Omni drive

ล้อของ omni drive จะพิเศษคือ มี roller อยู่รอบ ๆ ล้อ ในทิศทางการหมุนที่ตั้งฉากกับการหมุนของล้อ omni drive ต้องใช้ล้ออย่างน้อย 3 ล้อ วางทำมุมกัน เนื่องจากในแต่ละล้อมี roller อยู่ จึงเกิดการเคลื่อนที่ได้ 2 แกนพร้อม ๆ กันในแต่ละล้อ คือ ตามแนวการหมุนของล้อ และตามแนวการหมุนของ roller เมื่อต้องการเคลื่อนที่ไปยังทิศใด ๆ ก็สามารถแตกความเร็วการเคลื่อนที่เข้าแนวการเคลื่อนที่ของล้อและของ roller ได้เสมอ ทำให้ omni drive สามารถเคลื่อนที่ไปยังทิศใด ๆ ก็ได้ เป็น holonomic การเคลื่อนที่ของ omni drive จะต้องมีสมการที่เรียกว่า Jacobian/Inverse-jacobian matrix เพื่อแปลงความเร็วของหุ่นยนต์ ไปสู่ความเร็วของล้อแต่ละล้อ

omni drive

ตัวอย่าง

Mecanum drive

เป็นญาติกับ omni drive ต่างกันตรงที่ roller บนล้อไม่วางตั้งฉากกับล้อ แต่จะวางทำมุมกัน ส่วนมากจะทำมุม 45 องศา และล้อสามารถวางตัวขนานกันได้ตามปกติ ไม่ต้องวางทำมุมกัน การเคลื่อนที่ก็ใช้หลักการเดียวกับ omni drive จึงต้องมี Jacobian/Inverse-jacobian matrix ในการคำนวณความเร็วล้อเช่นกัน แต่สมการจะง่ายกว่า mecanum drive เป็น holonomic

mecanum drive

ตัวอย่าง

ยาวละ ขอตัดจบตอนแต่เพียงเท่านี้ก่อนดีกว่า คราวหน้าเรามาต่อกับการเคลื่อนที่แบบอื่น ๆ กัน

ภาพ Wheel Robot – harry nesbitt

** บทความนี้เป็นส่วนหนึ่งของบทความชุด Build Your Own Bot แนะนำการสร้างหุ่นยนต์ด้วยตัวเอง **

Exit mobile version