กายวิภาคและการออกแบบหุ่นยนต์ Mini Cheetah ตอนที่ 1 Actuator
เมื่อไม่นานมานี้หลาย ๆ คนคงได้เห็นหุ่นยนต์สี่ขา ที่ชื่อ Mini Cheetah จาก MIT ผ่านตากันมาบ้าง หากใครยังไม่เคยชมก็ดูได้จาก Video ด้านล่างนี้ได้เลย
หลังจากที่ได้ดูครั้งแรกก็ได้แต่คิดว่าหุ่นนี่มันสุดยอดมาก อยากจะลองทำตามบ้าง ผมจึงได้ไปลองค้นหาข้อมูลดูก็ได้เห็นความแจ๋งสุด ๆ ใครจะเชื่อว่าหุ่นนี่จะเป็นโปรเจคจบของเด็กปี 4 !!! (แต่ก็นะนี่คือ MIT) ซึ่งคนทำชื่อ Benjamin G. Katz นักศึกษา สาขา Mechanical Engineering (โดยผลงานนี้ใช้เพื่อการเรียนต่อโท ของเขาด้วย) ซึ่งคนนี้เจ๋งในระดับที่ทำเครื่องแก้รูบิค ภายในเวลา 0.38 วินาที (ชนะ world record [1]ที่ทำไว้ 0.637 วินาทีอย่างขาดลอย) โดยเอกสารทั้งหมดในบทความนี้เรียบเรียงจากวิทยานิพนธ์ ของ Ben[2] + เนื้อหาในบล็อคของเขาเอง [3] และ บล็อคภาษาจีนที่เรียบเรียงและพยายามก๊อปโครงสร้างไปใช้ในหุ่นจีนชื่อ XDog อยู่ [4] เรียกได้ว่าโปรเจคนานาชาติจริง ๆ 555++
เอาหล่ะเรามาเข้าเรื่องของหุ่น mini cheetah กันดีกว่า ในการออกแบบนั้นแบ่งออกเป็นหลาย ๆ ส่วนด้วยกัน ผมจะแบ่งออกเป็นตอนเพื่อให้อ่านง่าย โดยเราจะเริ่มที่ส่วน “ตัวกระตุ้น” (Actuator) เพื่อความเข้าใจที่ตรงกันขอเขียนภาษาอังกฤษดีกว่า
ส่วนของการออกแบบนั้นเน้นให้ราคาถูก ใช้งานง่าย Actuator แต่ละตัวราคาต่ำกว่า 300$ เท่านั้น(เมื่อเทียบกับหุ่น Cheetah 2 และ 3 ที่มีขนาดใหญ่และแพงกว่า) โดยการออกแบบอ้างอิงจาก Cheetah รุ่นเดิม ซึ่งมีส่วนประกอบดังนี้
Motor
มอเตอร์ที่ใช้ในหุ่นจะเป็นมอเตอร์ Outrunner (นิยมใช้กันในโดรน) ซึ่งตัวที่ใช้ในหุ่นนี้ไม่ได้เปิดเผยรุ่นอย่างชัดเจน แต่อ้างอิงโมเดลขนาดของ T-Motor U8 โดยบอกว่าประสิทธิภาพและขนาดใกล้เคียงกับ U8 แต่ราคาถูกกว่า ประมาณ 60$-90$ (ซึ่งผมไปหาใน Blog ที่เขาเขียนน่าจะใช้ตัว EX-8 105Kv[5] ลองไปค้น Aliexpress ดูปรากฏราคา 85.5$ เทียบกับ T-motor U8 ราคา 279$) ทำให้หุ่นราคาถูกลงมาก โดยตารางด้านล่าง แสดงแรงบิดเมื่อเทียบกับกระแส จะเห็นได้ว่ากราฟเกือบเป็นเส้นตรงมี error ประมาณ 12% เท่านั้น
Gearbox
มอเตอร์ที่ใช้นั้นไม่ได้มาขับเคลื่อนขาหุ่นโดยตรง แต่ผ่านเกียร์ในอัตราทด 6:1 (0.005 rad / 0.28 °) และที่เจ๋งคือเกียร์นั้นเป็นแบบ planetary gear (ดูภาพด้านล่าง) ที่มีการปรับมอเตอร์และใส่เกียร์เข้าไปในตัวมอเตอร์เลย (พี่จีนพยายามก๊อปตัวนี้อยู่)
ซึ่งการประกอบ gearbox แบบนี้เข้าไปทำให้ actuator ยังคงมีขนาดที่เล็กกระทัดรัดแต่ให้แรงบิดที่สูงกว่าเดิม
Controller (3-phase inverter)
สำหรับตัวที่ควบคุมมอเตอร์นั้นถูกออกแบบ PCB ขึ้นมาใหม่โดยคล้ายกับ ESC ทั่วไป ประกอบด้วยไมโครคอนโทรเลอร์ STM32F446, driver DRV8302***(version ใหม่ใช้ DRV8323 แทน ทำให้มีขนาดเล็กกว่าเดิมอีก [7]), half-bridge MOSFET เบอร์ PH7030L และใช้ CAN Bus เป็นตัวสื่อสาร มีขั้วต่อแบต XT-30
คุณสมบัติ
- 24V power supply
- 40A peak phase current (ที่จริงอาจจะต่ำกว่านั้นเนื่องจากมีข้อจำกัด thermodynamic ของมอเตอร์)
- สื่อสารด้วย CAN bus ส่งข้อมูลการวัด position, velocity, estimated torque และ คำสั่ง set position, set velocity, position gain, velocity gain, torque.
- ความถี่ในการส่งข้อมูลอยู่ที่ 4kHz/ต่อตัว
Encoder
ที่ด้านหลังของ PCB จะมี encoder แบบ non-contact magnetic field (คือเอาแม่เหล็กกลม ๆ ไปแปะแกนกลางมอเตอร์ แล้วเอา sensor นี้ไปวางไว้ตรงกลางมันจะวัดมุมได้ละเอียดมาก) ใช้เบอร์ AS5047P ความละเอียด 14bit (aliexpress ตัวละ 6$ [6]) (แต่จริง ๆ แอบเห็นเบอร์แทนราคาถูกกว่า MA730GQ คุณสมบัติเหมือน ๆ กัน) ซึ่งเมื่อประกอบกับมอเตอร์แล้วจะได้ตามรูป
เมื่อทำออกมาเสร็จรวมกับ controller ตัว actuator จะมีคุณสมบัติดังนี้
เนื่องจากการใช้มอเตอร์ที่หาซื้อได้ทั่วไป เมื่อเทียบกับหุ่น Cheetah 2 และ 3 จะพบว่า mini cheetah ให้อัตรากำลังสูงสุด(maximum power/mass output density) = 1417watt/kg ขณะที่ cheetah 2 & 3 ให้กำลังที่ 2400w/kg [8] ถึงจะน้อยกว่าแต่ก็ให้กำลังพอที่จะกระโดดตีลังกาหลังได้เนื่องจากขนาดที่เล็กกว่านั่นเอง
สำหรับตัว Actuator ที่เล่ามาทั้งหมดมอเตอร์หาซื้อได้ที่ Aliexpress [5] pcb controller สามารถ download ได้ที่ https://github.com/bgkatz/3phase_integrated และ โค้ด firmware สามารถ Download ได้ที่ https://os.mbed.com/users/benkatz/code/Hobbyking_Cheetah_Compact/
เอ้า 1–2–3 กราบ ….
อ่านต่อตอนที่ 2
Reference :
[1] http://www.guinnessworldrecords.com/world-records/fastest-robot-to-solve-a-rubiks-cube
[2] https://dspace.mit.edu/handle/1721.1/118671
[3] http://build-its.blogspot.com
[4] https://zhuanlan.zhihu.com/p/58077049
[5] https://www.aliexpress.com/item/ipower/32981605227.html
[6] https://www.aliexpress.com/item/as5048p/32701153287.html
[7] http://build-its-inprogress.blogspot.com/2018/06/integrated-motor-controllers-v2.html