เคล็ดลับของหุ่นยนต์ 6 แกนที่มีความแม่นยำ 0.05 มม. (2021) [วิดีโอ] (youtube.com) 2 คะแนน โดย GN⁺ 2024-10-27 | 1 ความคิดเห็น | แชร์ทาง WhatsApp บทความที่เกี่ยวข้อง สเปก 0.002 มม. ของ LEGO และผลกระทบต่ออุตสาหกรรมการผลิต 6 คะแนน · 1 ความคิดเห็น · 2026-03-13 หุ่นยนต์ที่เจ๋งที่สุดที่ผมเคยสร้าง [วิดีโอ] 1 คะแนน · 1 ความคิดเห็น · 2023-11-08 วิธีทำ Vibe Coding โดยไม่ตกอยู่ในภาวะหมกมุ่นเกินไป (อุโมงค์) และเข้าสู่ภาวะจดจ่ออย่างแท้จริง 11 คะแนน · 4 ความคิดเห็น · 2026-01-05 การทำอุตสาหกรรมของปัญญาหุ่นยนต์แบบมีร่างกาย (Embodied) 4 คะแนน · 0 ความคิดเห็น · 2026-04-04 Do You Love Me? [วิดีโอ] 5 คะแนน · 9 ความคิดเห็น · 2020-12-31 1 ความคิดเห็น GN⁺ 2024-10-27 ความคิดเห็นจาก Hacker News ก่อนหน้านี้ก็เคยเห็นวิธีอื่นที่เพิ่ม IMU เข้าไปในแขนหุ่นยนต์ การนำเซ็นเซอร์คนละสองชนิดมารวมกันเรียกว่า sensor fusion และการใช้ IMU ร่วมกับ GPS พร้อม Kalman filter เพื่อให้ได้ค่าตำแหน่งที่แม่นยำมากก็เป็นวิธีที่พบได้บ่อย จุดที่เจ๋งเป็นพิเศษในวิดีโอนี้คือสามารถติดตั้งเซ็นเซอร์ตัวใหม่ไว้ภายในมอเตอร์ ทำให้ทั้งระบบเล็กลงและแข็งแรงขึ้นมาก [1] https://en.wikipedia.org/wiki/Inertial_measurement_unit [2] https://en.wikipedia.org/wiki/Sensor_fusion [3] https://en.wikipedia.org/wiki/Kalman_filter ใน GitHub มีการอธิบาย อัลกอริทึมควบคุม ของโปรเจ็กต์นี้ไว้อย่างละเอียด ซึ่งค่อนข้างซับซ้อน https://github.com/adamb314/ServoProject/blob/main/Doc/Theor... ถ้าอยากลองทำอะไรแบบนี้ Raspberry Pi Pico 2 รุ่นใหม่มีประสิทธิภาพสูงกว่าชิปที่ใช้ที่นี่หลายลำดับขั้น แต่ราคาประมาณครึ่งเดียว ตอนนี้น่าจะเป็นอุปกรณ์ embedded 32-bit ARM/RISC สำหรับผู้เริ่มต้นที่คุ้มค่ามากแบบทิ้งห่างตัวอื่น ตาม Errata ข้อ 9 ควรรู้ไว้ว่าต้องใช้ external pulldown แทน internal pulldown แม้ตอนนี้จะค่อนข้างเก่าแล้ว แต่ Teensy 4.1 ก็ยังให้ประสิทธิภาพที่ยอดเยี่ยมอยู่ ราคาสูงกว่านิดหน่อยที่ราว 30 ดอลลาร์ แต่ทำงานบน Cortex M7 600MHz และมี I/O กับโปรโตคอลมาให้เหลือเฟือ น่าประทับใจนะ แล้ว trade-off คืออะไรล่ะ? ยังมีหุ่นยนต์อุตสาหกรรมขนาดใหญ่ที่ใช้ auxiliary encoder เพื่อเพิ่มความแม่นยำแบบ “แกะกล่องแล้วใช้ได้เลย” สำหรับงานที่ยากกว่า โดยเอาฟีดแบ็กของข้อต่อเสริมมารวมกับโมเดลคิเนแมติกส์ของโครงสร้างหุ่นยนต์และชุดกลไก เพื่อคาดการณ์ตำแหน่งปลายเครื่องมือจริงของหุ่นยนต์ได้แม่นยำขึ้น https://electroimpact.com/Products/Robots/AchievingAccuracy งั้น encoder หลัก ใช้ทำอะไร? แค่เห็นหุ่นยนต์ทำชุดการเคลื่อนไหวเดิมซ้ำๆ อย่างแม่นยำ ก็ยังสรุปเรื่อง backlash ไม่ได้ เพราะถ้าทำแบบนั้น ตามนิยามแล้วปัญหา hysteresis จะหายไปจากโจทย์เลย ดูเหมือนไม่ใช่การเคลื่อนไหวเดิมนะ? การเคลื่อนที่ครั้งที่สองไปในทิศตรงกันข้ามนี่ ก็ดีนะ แต่หุ่นยนต์ตัวนั้นยังไม่ได้ทำงานจริงอะไรไม่ใช่เหรอ? ผมนึกภาพไม่ค่อยออกว่าการเพิ่มความแม่นยำของตำแหน่งในระบบที่มี backlash มากตอนอยู่ในสภาวะไม่มีโหลด จะนำไปสู่การใช้งานที่มีประโยชน์อะไรได้บ้าง อาจเป็นเพราะผมจินตนาการไม่พอก็ได้ ช่วงนี้มีแนวคิดว่าต่อให้สร้างหรือซื้อฮาร์ดแวร์แย่ๆ มาก็ให้ซอฟต์แวร์มาแก้ทีหลังได้ แต่ผมไม่ค่อยเห็นว่ามันให้ผลดีนัก นึกถึงกรณี Tesla ใช้เว็บแคมกับระบบขับขี่อัตโนมัติ หรือกรณี Boeing ออกแบบเครื่องบินแล้วไปใช้เซ็นเซอร์วัดท่าทางที่มีข้อบกพร่อง ถ้าหุ่นยนต์ได้โชว์ว่าทำอะไรที่มีประโยชน์จริง น่าจะน่าประทับใจกว่านี้มาก และผมก็สงสัยว่าการประยุกต์ใช้จริงจะค่อนข้างจำกัด กรณีของ Boeing น่าจะถูกทำให้เรียบง่ายเกินไป เป้าหมายคือทำเครื่องบินที่มีประสิทธิภาพเพื่อแข่งขันกับ Airbus แต่หลีกเลี่ยงต้นทุนและความล่าช้าจากการขอการรับรองแบบใหม่ ซึ่งแปลว่าต้องใส่เครื่องยนต์ที่ใหญ่ขึ้นกับลำตัวเดิม ผลคือจำเป็นต้องติดตั้งเครื่องยนต์ไว้ด้านหน้ามากขึ้น ทำให้ลักษณะการบินเปลี่ยนไปและต้องมีการฝึกใหม่ การฝึกใหม่นั้นกระทบยอดขายอย่างหนัก จึงเพิ่มระบบซอฟต์แวร์เข้าไปเพื่อให้มันดูเหมือนยังบินแบบ 737 รุ่นเก่า แบบนั้นนักบินก็อัปเกรดได้ด้วยหลักสูตรฝึกบน iPad เท่านั้น ระบบชดเชยนี้ต้องทำให้นักบินไม่สังเกตว่ากำลังเกิดภาวะ stall ที่มุมปะทะสูง ดังนั้น MCAS จึงใช้เซ็นเซอร์ AoA เพื่อกดหัวเครื่องลงตามค่ามุมปะทะที่ตรวจจับได้ เดิมทีเซ็นเซอร์ AoA ไม่ได้ถูกออกแบบมาให้เป็นอินพุตหลักโดยตรงที่เป็นเรื่องคอขาดบาดตาย และมันก็มีอาการค้างหรือเสียเป็นครั้งคราว แต่ MCAS ใช้ข้อมูลจากมันเพียงตัวเดียว ถ้า MCAS ตัดสินผิดว่าต้องกดหัวเครื่องลง และนักบินตอบสนองตามการฝึกของ 737 วันนั้นก็จะเป็นเที่ยวบินสุดท้าย เพราะเครื่องจะตก สรุปคือ Boeing ฆ่าคนเพื่อทำเงินเพิ่มในทุกขั้นของแผนการอันเลวร้ายนี้ ผมเห็นด้วยกับประเด็นเดิมนะ แต่กรณี Boeing แทบจะเป็นตัวอย่างของการออกแบบโดยเจตนาร้ายระดับเลวร้ายที่สุด จึงควรแยกเป็นกรณีพิเศษ งานประยุกต์ของหุ่นยนต์ที่ไม่ต้องยกโหลด แต่ต้องเคลื่อนที่อย่างแม่นยำมาก มีอย่างเช่นระบบวัดด้วยหุ่นยนต์แบบ coordinate-measuring machine: https://en.wikipedia.org/wiki/Coordinate-measuring_machine ถ้าดูวิดีโอถัดๆ ไป จะมีฉากที่เซอร์โวยกตุ้มน้ำหนักที่ปลายแขนยาว มีคำถามถึงคนที่เคยใช้ เกจวัดแบบแอนะล็อก แบบนี้ ก่อนที่กล้องจะซูมเข้าไปอ่านค่า ดูเหมือนเข็มจะหมุนครบหนึ่งรอบ แบบนี้วิดีโอแสดงความแม่นยำตามที่อ้างไว้จริงหรือ? ผมไม่ได้ดูวิดีโอทั้งหมด แต่เดาว่าน่าจะเป็นการ “ขยับ x จาก 0.00 ไป 10.00” แล้วเกจก็แสดงว่าตำแหน่งปลายทางจริงคือ 10.05 เมื่อดูจากความโยกเยกของอุปกรณ์นั้นแล้ว ถือว่าน่าประทับใจทีเดียว แต่เกจแบบนี้ ถ้าจะวัดการเคลื่อนที่ในทิศลบ ต้องใส่ preload ไว้เพื่อกดให้มันอยู่ในช่วง “บวก” ดูเหมือนจะทำแบบนั้นอยู่ แต่ถ้าไม่วิเคราะห์ลึกกว่านี้ก็ยังยืนยัน 100% ไม่ได้ อีกอย่าง ตัวเกจเองก็ให้ preload อยู่ระดับหนึ่ง ซึ่งอาจช่วยตัดความหลวมของระบบออกไปได้มาก ทำให้ความแม่นยำดูดีกว่าความเป็นจริง ใช่ ลูกบอลที่ปลายมีรัศมีคงที่ และถ้าลูกบอลนั้นถูกดันไปเท่ากับรัศมีของมันเอง หมายถึงเมื่อจุดสัมผัสอยู่ตรงแนวแกนพอดี ตัวชี้ก็จะกลับไปชี้ 0 อีกครั้ง ถ้าการสัมผัสขาดไป ความหมายก็ใกล้เคียงกับว่ามันคลาดจากจุดที่ควรอยู่เดิมอย่างน้อย 1 มม. ปกติจะมีเข็มที่สองไว้บอกว่าตอนนี้อยู่ในสองกรณีไหน แต่ในบริบทของการใช้อุปกรณ์แบบนี้ ถ้าคลาดไปถึง 1 มม. สถานการณ์ก็มักชัดเจนมากอยู่แล้ว จึงน่าจะมองว่าไม่จำเป็น หุ่นยนต์ 3 แกนที่ซื้อได้ในราคา 100 ดอลลาร์ หรือก็คือ เครื่องพิมพ์ 3D ทำความแม่นยำเชิงสถิตระดับ 0.05 มม. ได้อย่างไร? นี่ไม่ใช่เรื่องของทฤษฎีการควบคุม แต่เป็นเรื่องของโครงสร้างเชิงกลและสเต็ปเปอร์มอเตอร์ มันคือ การประนีประนอม ระหว่างโครงสร้างแบบแกนเลื่อนกับโครงสร้างแบบแขนกล ก็จริง แต่แบบนั้นไม่ใช่แขนหุ่นยนต์ จึงน่าสนใจน้อยกว่า ความยาวของแขนจะขยายความคลาดเคลื่อน ดังนั้นถ้าจะสร้างแขนที่อาศัย “โครงสร้างเชิงกลและสเต็ปเปอร์” ให้ได้ความแม่นยำด้านตำแหน่งแบบเดียวกับเครื่องพิมพ์ มอเตอร์ก็ต้องแม่นยำกว่ามาก หรือถ้าใช้ชุดทดรอบ ก็ต้องมีแบ็กลาชต่ำมากแบบแขนหุ่นยนต์อุตสาหกรรม สงสัยว่าวิธีที่ดีที่สุดในการทำระบบ x/y และอาจรวมถึง z ที่ให้ความแม่นยำต่ำกว่า 0.05 มม. โดยไม่ต้องแลกกับความเร็วนั้นคืออะไร ผมสงสัยมาตลอดว่าทำไมเวลาอยากได้ความเที่ยงตรง จึงไม่ใช้ แพนโทกราฟ กับหุ่นยนต์ให้มากกว่านี้ เป็นวิธีที่ใช้กับงานตัดไม้แบบละเอียด หรือการแกะสลักไม้และโลหะ https://en.wikipedia.org/wiki/Pantograph https://youtu.be/s56J_Rnh_Co ถ้าขับฝั่ง “ใหญ่” เพื่อให้ฝั่ง “เล็ก” เคลื่อนที่ ก็จะได้ความแม่นยำสูง Feynman พูดถึงแพนโทกราฟและปัญหาความแม่นยำไว้ในหน้า 6~7 ของ https://calteches.library.caltech.edu/1976/1/1960Bottom.pdf แต่ผมยังไม่ได้คิดลึกด้วยตัวเอง แพนโทกราฟมักมีประโยชน์ในงาน 2 มิติ และถ้าหุ่นยนต์ต้องการแค่ 2 มิติ การใช้ ราง ตรง ๆ ก็มักจะแม่นยำกว่า เป็น ลูกเล่นของเอนโค้ดเดอร์ ที่ยอดเยี่ยมมาก ไม่คิดว่าจะดีได้ขนาดนี้ แต่ดูจากวิดีโอแล้วเห็นได้ชัดว่ามันดีจริง สิ่งที่วิดีโอนี้แสดงให้เห็นส่วนใหญ่คือ ความแม่นยำในการทำซ้ำ เมื่อทำซ้ำในทิศทางเดียวกัน ไม่ใช่ความแม่นยำเชิงสถิตแบบสัมบูรณ์ สามารถชดเชยแบ็กลาชของมอเตอร์แต่ละตัวได้ แต่ชดเชยความหลวมหรือการโก่งตัวของลิงก์ไม่ได้ ที่นี่ใช้มอเตอร์ DC ถ้าใช้เซอร์โวมอเตอร์ 3 เฟสสมัยใหม่ ก็จะรู้ได้มากขึ้นว่ามอเตอร์กำลังทำอะไรอยู่จริง ๆ
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ก่อนหน้านี้ก็เคยเห็นวิธีอื่นที่เพิ่ม IMU เข้าไปในแขนหุ่นยนต์ การนำเซ็นเซอร์คนละสองชนิดมารวมกันเรียกว่า sensor fusion และการใช้ IMU ร่วมกับ GPS พร้อม Kalman filter เพื่อให้ได้ค่าตำแหน่งที่แม่นยำมากก็เป็นวิธีที่พบได้บ่อย
จุดที่เจ๋งเป็นพิเศษในวิดีโอนี้คือสามารถติดตั้งเซ็นเซอร์ตัวใหม่ไว้ภายในมอเตอร์ ทำให้ทั้งระบบเล็กลงและแข็งแรงขึ้นมาก
[1] https://en.wikipedia.org/wiki/Inertial_measurement_unit
[2] https://en.wikipedia.org/wiki/Sensor_fusion
[3] https://en.wikipedia.org/wiki/Kalman_filter
https://github.com/adamb314/ServoProject/blob/main/Doc/Theor...
ถ้าอยากลองทำอะไรแบบนี้ Raspberry Pi Pico 2 รุ่นใหม่มีประสิทธิภาพสูงกว่าชิปที่ใช้ที่นี่หลายลำดับขั้น แต่ราคาประมาณครึ่งเดียว
ตอนนี้น่าจะเป็นอุปกรณ์ embedded 32-bit ARM/RISC สำหรับผู้เริ่มต้นที่คุ้มค่ามากแบบทิ้งห่างตัวอื่น
ยังมีหุ่นยนต์อุตสาหกรรมขนาดใหญ่ที่ใช้ auxiliary encoder เพื่อเพิ่มความแม่นยำแบบ “แกะกล่องแล้วใช้ได้เลย” สำหรับงานที่ยากกว่า
โดยเอาฟีดแบ็กของข้อต่อเสริมมารวมกับโมเดลคิเนแมติกส์ของโครงสร้างหุ่นยนต์และชุดกลไก เพื่อคาดการณ์ตำแหน่งปลายเครื่องมือจริงของหุ่นยนต์ได้แม่นยำขึ้น
https://electroimpact.com/Products/Robots/AchievingAccuracy
แค่เห็นหุ่นยนต์ทำชุดการเคลื่อนไหวเดิมซ้ำๆ อย่างแม่นยำ ก็ยังสรุปเรื่อง backlash ไม่ได้ เพราะถ้าทำแบบนั้น ตามนิยามแล้วปัญหา hysteresis จะหายไปจากโจทย์เลย
ก็ดีนะ แต่หุ่นยนต์ตัวนั้นยังไม่ได้ทำงานจริงอะไรไม่ใช่เหรอ?
ผมนึกภาพไม่ค่อยออกว่าการเพิ่มความแม่นยำของตำแหน่งในระบบที่มี backlash มากตอนอยู่ในสภาวะไม่มีโหลด จะนำไปสู่การใช้งานที่มีประโยชน์อะไรได้บ้าง อาจเป็นเพราะผมจินตนาการไม่พอก็ได้
ช่วงนี้มีแนวคิดว่าต่อให้สร้างหรือซื้อฮาร์ดแวร์แย่ๆ มาก็ให้ซอฟต์แวร์มาแก้ทีหลังได้ แต่ผมไม่ค่อยเห็นว่ามันให้ผลดีนัก นึกถึงกรณี Tesla ใช้เว็บแคมกับระบบขับขี่อัตโนมัติ หรือกรณี Boeing ออกแบบเครื่องบินแล้วไปใช้เซ็นเซอร์วัดท่าทางที่มีข้อบกพร่อง
ถ้าหุ่นยนต์ได้โชว์ว่าทำอะไรที่มีประโยชน์จริง น่าจะน่าประทับใจกว่านี้มาก และผมก็สงสัยว่าการประยุกต์ใช้จริงจะค่อนข้างจำกัด
ซึ่งแปลว่าต้องใส่เครื่องยนต์ที่ใหญ่ขึ้นกับลำตัวเดิม ผลคือจำเป็นต้องติดตั้งเครื่องยนต์ไว้ด้านหน้ามากขึ้น ทำให้ลักษณะการบินเปลี่ยนไปและต้องมีการฝึกใหม่ การฝึกใหม่นั้นกระทบยอดขายอย่างหนัก จึงเพิ่มระบบซอฟต์แวร์เข้าไปเพื่อให้มันดูเหมือนยังบินแบบ 737 รุ่นเก่า
แบบนั้นนักบินก็อัปเกรดได้ด้วยหลักสูตรฝึกบน iPad เท่านั้น ระบบชดเชยนี้ต้องทำให้นักบินไม่สังเกตว่ากำลังเกิดภาวะ stall ที่มุมปะทะสูง ดังนั้น MCAS จึงใช้เซ็นเซอร์ AoA เพื่อกดหัวเครื่องลงตามค่ามุมปะทะที่ตรวจจับได้
เดิมทีเซ็นเซอร์ AoA ไม่ได้ถูกออกแบบมาให้เป็นอินพุตหลักโดยตรงที่เป็นเรื่องคอขาดบาดตาย และมันก็มีอาการค้างหรือเสียเป็นครั้งคราว แต่ MCAS ใช้ข้อมูลจากมันเพียงตัวเดียว ถ้า MCAS ตัดสินผิดว่าต้องกดหัวเครื่องลง และนักบินตอบสนองตามการฝึกของ 737 วันนั้นก็จะเป็นเที่ยวบินสุดท้าย เพราะเครื่องจะตก
สรุปคือ Boeing ฆ่าคนเพื่อทำเงินเพิ่มในทุกขั้นของแผนการอันเลวร้ายนี้ ผมเห็นด้วยกับประเด็นเดิมนะ แต่กรณี Boeing แทบจะเป็นตัวอย่างของการออกแบบโดยเจตนาร้ายระดับเลวร้ายที่สุด จึงควรแยกเป็นกรณีพิเศษ
มีคำถามถึงคนที่เคยใช้ เกจวัดแบบแอนะล็อก แบบนี้ ก่อนที่กล้องจะซูมเข้าไปอ่านค่า ดูเหมือนเข็มจะหมุนครบหนึ่งรอบ แบบนี้วิดีโอแสดงความแม่นยำตามที่อ้างไว้จริงหรือ?
เมื่อดูจากความโยกเยกของอุปกรณ์นั้นแล้ว ถือว่าน่าประทับใจทีเดียว
แต่เกจแบบนี้ ถ้าจะวัดการเคลื่อนที่ในทิศลบ ต้องใส่ preload ไว้เพื่อกดให้มันอยู่ในช่วง “บวก” ดูเหมือนจะทำแบบนั้นอยู่ แต่ถ้าไม่วิเคราะห์ลึกกว่านี้ก็ยังยืนยัน 100% ไม่ได้
อีกอย่าง ตัวเกจเองก็ให้ preload อยู่ระดับหนึ่ง ซึ่งอาจช่วยตัดความหลวมของระบบออกไปได้มาก ทำให้ความแม่นยำดูดีกว่าความเป็นจริง
ถ้าการสัมผัสขาดไป ความหมายก็ใกล้เคียงกับว่ามันคลาดจากจุดที่ควรอยู่เดิมอย่างน้อย 1 มม.
ปกติจะมีเข็มที่สองไว้บอกว่าตอนนี้อยู่ในสองกรณีไหน แต่ในบริบทของการใช้อุปกรณ์แบบนี้ ถ้าคลาดไปถึง 1 มม. สถานการณ์ก็มักชัดเจนมากอยู่แล้ว จึงน่าจะมองว่าไม่จำเป็น
หุ่นยนต์ 3 แกนที่ซื้อได้ในราคา 100 ดอลลาร์ หรือก็คือ เครื่องพิมพ์ 3D ทำความแม่นยำเชิงสถิตระดับ 0.05 มม. ได้อย่างไร?
นี่ไม่ใช่เรื่องของทฤษฎีการควบคุม แต่เป็นเรื่องของโครงสร้างเชิงกลและสเต็ปเปอร์มอเตอร์
ผมสงสัยมาตลอดว่าทำไมเวลาอยากได้ความเที่ยงตรง จึงไม่ใช้ แพนโทกราฟ กับหุ่นยนต์ให้มากกว่านี้
เป็นวิธีที่ใช้กับงานตัดไม้แบบละเอียด หรือการแกะสลักไม้และโลหะ
https://en.wikipedia.org/wiki/Pantograph
https://youtu.be/s56J_Rnh_Co
ถ้าขับฝั่ง “ใหญ่” เพื่อให้ฝั่ง “เล็ก” เคลื่อนที่ ก็จะได้ความแม่นยำสูง
เป็น ลูกเล่นของเอนโค้ดเดอร์ ที่ยอดเยี่ยมมาก ไม่คิดว่าจะดีได้ขนาดนี้ แต่ดูจากวิดีโอแล้วเห็นได้ชัดว่ามันดีจริง
ที่นี่ใช้มอเตอร์ DC ถ้าใช้เซอร์โวมอเตอร์ 3 เฟสสมัยใหม่ ก็จะรู้ได้มากขึ้นว่ามอเตอร์กำลังทำอะไรอยู่จริง ๆ