สั่งหุ่นยนต์ด้วย AI! เปลี่ยนคำพูดเป็นแอคชันด้วย Claude Code x myPalletizer 260 M5 🤖✨

myPalletizer 260 M5 working with Claude AI

สวัสดีชาว Maker และนักพัฒนาหุ่นยนต์ทุกคนครับ! ปกติแล้วเวลาที่เราจะสั่งให้แขนกลขยับหรือทำอะไรสักอย่าง เรามักจะต้องนั่งเขียนสคริปต์โค้ดแข็งๆ หรือไม่ก็ต้องเซ็ตระบบ ROS (Robot Operating System) ให้วุ่นวายใช่ไหมครับ?

แต่วันนี้โลกเปลี่ยนไปแล้ว! ด้วยพลังของ AI Agent อย่าง Claude Code เราสามารถเปลี่ยนสภาพแวดล้อมการเขียนโค้ดให้กลายเป็น "ผู้ช่วยส่วนตัว" ที่คอยคำนวณพิกัดสุดหินและแก้บั๊กให้เราได้ เพียงแค่พิมพ์สั่งงานด้วย "ภาษาพูดทั่วไป (Natural language)" เจ้า AI ก็จะจัดการคุมแขนกล 4 แกนอย่าง myPalletizer 260 M5 ให้ขยับตามสั่งได้เลย!

ฮาร์ดแวร์คู่ใจ: myPalletizer 260 M5 & Suction Pump

พระเอกในงานนี้คือ myPalletizer 260 M5 ซึ่งเป็นแขนกล 4 แกน (4-DOF) ที่ออกแบบมาเพื่องานหยิบจับและจัดเรียง (Palletizing) โดยเฉพาะ จุดเด่นคือมันทำงานบนระบบพิกัดที่เข้าใจง่าย:

  • X, Y, Z: การเคลื่อนที่แนวเส้นตรงในอวกาศ 3 มิติ
  • Rz: การหมุนของปลายแขนกล (End-effector) ซึ่งสำคัญมากในการจัดองศาให้ตรงกับวัตถุหรือกล่อง

ในโปรเจกต์นี้ เราถอดมือจับ (Gripper) แบบปกติออก แล้วเปลี่ยนมาใช้ ปั๊มสุญญากาศ (myCobot Suction Pump 2.0) แทน เพราะมันไม่ต้องใช้พื้นที่รอบๆ วัตถุในการกางนิ้วจับ แค่วางลงบนผิวเรียบๆ แล้วดูดก็ยกขึ้นได้เลย แม่นยำสุดๆ ครับ

💡 Maker's Tip: ในการทำงานกับหุ่นยนต์และกล้อง (Vision-guided robotics) บางครั้งระยะห่างหรือมุมกล้องอาจไม่พอดีกับชิ้นงานเฉพาะทางของเรา การใช้ บริการ 3D Printing เพื่อออกแบบชิ้นส่วนยึดกล้อง (Camera Mount) หรือข้อต่อปลายแขนกลแบบ Custom จะช่วยแก้ปัญหาเรื่องระยะ Offset ได้อย่างสมบูรณ์แบบ!

หากเพื่อนๆ ต้องการ บริการรับปริ้นท์ 3D Printing คุณภาพสูง หรืออยากซื้อ เส้นพลาสติก (Filament) ไปปริ้นท์ชิ้นส่วนหุ่นยนต์เอง แวะมาใช้บริการที่ Globalbyte ได้เลยครับ! งานเนียน เป๊ะทุกจุดแน่นอน

สอนหุ่นยนต์ให้มองเห็น (Automated Hand-Eye Calibration)

ปัญหาที่ยากที่สุดของการทำหุ่นยนต์ติดกล้อง ไม่ใช่เรื่องการมอง หรือเรื่องการขยับ... แต่เป็นเรื่องของ "การแปลงค่า (Mapping)" ครับ เพราะกล้องมองเห็นโลกเป็นพิกเซล (Pixel: u, v) แต่แขนกลขยับเป็นมิลลิเมตร (Millimeter: X, Y, Z) เราจึงต้องสร้างสะพานเชื่อมทางคณิตศาสตร์ที่เรียกว่า Transformation Matrix

เนื่องจากงานหยิบจับของ myPalletizer เป็นการหยิบของบนพื้นระนาบ เราจึงสามารถลดความซับซ้อนจาก 3D ลงมาใช้สมการ 2D Affine Transformation ได้ ซึ่งครอบคลุมการเปลี่ยนแปลง 4 รูปแบบ: การเลื่อนจุดกำเนิด (Translation), การหมุน (Rotation), การย่อขยายสเกล (Scaling), และการบิดเอียงของเลนส์กล้อง (Shear)

Robot Hand Eye Calibration
การใช้ฟังก์ชัน cv2.estimateAffine2D จาก OpenCV ในการแก้สมการหา Transformation Matrix

กลยุทธ์ 9 จุด (The Nine-Point Strategy):
Claude จะสั่งให้หุ่นยนต์ขยับไปตามกริด 3x3 (รวม 9 จุด) เพื่อสุ่มเก็บข้อมูลภาพให้ครอบคลุมมุมมองของกล้อง จากนั้นใช้หลักการ Least Squares Estimation ใน OpenCV เพื่อหาค่าเฉลี่ยที่แม่นยำที่สุด ลดข้อผิดพลาดจากมอเตอร์สั่นหรือเลนส์กล้องเบี้ยวได้เนียนกริบ!

หยิบจับแบบมีเซนส์ (Perceptive Picking & ArUco)

พอหุ่นยนต์รู้พิกัดแล้ว ก็ต้องสอนให้มันมองหาของที่จะหยิบครับ Claude เลือกใช้ระบบสีแบบ HSV (Hue, Saturation, Value) แทน RGB เพราะ HSV แยกความสว่างของแสง (Value) ออกจากสี (Hue) ได้ดีกว่า ทำให้หุ่นยนต์ไม่ตาบอดเวลามีแสงสะท้อนบนบล็อกไม้

แต่ถึงอย่างนั้น แสงสะท้อนก็ยังกวนใจอยู่ดี Claude เลยแก้เกมด้วยการเขียนโค้ดใส่ GaussianBlur และ Morphological Operations (OPEN/CLOSE) ทำหน้าที่เป็น "กระดาษทรายดิจิทัล" ลบรอยจุดกวนใจบนภาพทิ้งไปจนหมดจด จากนั้นคำนวณจุดศูนย์กลาง (Moment) แล้วแปลงค่า Pixel ให้กลายเป็นระยะทาง Millimeter ที่หุ่นยนต์ต้องขยับครับ

Pixel to Millimeter Formula
สมการการแปลงค่าจากพิกเซลบนภาพ ให้เป็นระยะทางจริงระดับมิลลิเมตรที่หุ่นยนต์ต้องขยับ

วิดีโอสาธิตการทำงาน (Video Demonstration)

ลองดูวิดีโอสาธิตการทำงานจริงของระบบนี้กันครับ เป็นการหยิบบล็อกสีแดง แล้วนำไปวางบนแผ่นป้าย ArUco ID ที่ระบุไว้ได้อย่างแม่นยำ

ให้ AI เป็นคนคุม (The “Agentic” Workflow & Skills)

ความพีคของการใช้ Claude Code ไม่ใช่แค่ให้มันเขียนสคริปต์ OpenCV ธรรมดา แต่คือการรวมคำสั่งทั้งหมดให้กลายเป็น Skill (ทักษะ) ของ AI ครับ

เราใช้ Plugin ชื่อ skill-creator ผ่าน Terminal เพื่อแพ็กเกจระบบ Calibration, ระบบแยกสี, และระบบอ่าน ArUco รวมกันเป็นสกิลชื่อ PalletizerPro

Terminal (Bash) - สร้าง Skill ด้วย Claude Code
claude plugin call skill-creator --name "PalletizerPro" --dir "./skills/robotics"

หลังจากสร้าง Skill เสร็จ คุณแค่พิมพ์ใน Terminal ว่า:
/sort-by-id color=blue id=12
หรือจะพิมพ์ภาษาคนปกติเลยว่า "ช่วยหยิบบล็อกสีฟ้าไปวางหน่อย" Claude ก็จะคิดเองเลยว่าจะต้องรันสคริปต์ไหน คำนวณพิกัดยังไง แล้วสั่งหุ่นยนต์ให้ทำตามคำสั่งแบบเบ็ดเสร็จ!

Claude Code CLI Tooltip
การเรียกใช้งาน Skill ผ่าน Claude Code CLI
Skill Creator Output
ระบบจะบันทึก Skill.md เพื่อสอน AI ว่าฟังก์ชันนี้ใช้ทำอะไร

รีวิวการใช้งานจริง: คุ้มไหมกับ $20/เดือน?

การทำงานกับ AI Agent เพื่อคุมฮาร์ดแวร์ให้ความรู้สึกเหมือนเราเป็นหัวหน้างานคุมโปรแกรมเมอร์จูเนียร์ที่หัวไวมากๆ ครับ

  • ข้อดีสุดโกง (Auto-Correction): เวลาสคริปต์มีปัญหา (เช่น พอร์ต Serial ไม่ว่าง หรือแขนกลติด Limit) Claude จะเห็น Error ใน Terminal ทันที แล้วมันจะเสนอตัวแก้โค้ดหรือเปลี่ยน Baud rate ให้เองเสร็จสรรพ ประหยัดเวลาดีบักสุดๆ!
  • ข้อควรระวัง (The Trap): บางที AI ก็ดื้อครับ ถ้ามันแก้ไม่ตรงจุด มันอาจจะเข้าสู่ลูป "พยายามแก้ผิดๆ ซ้ำๆ" หรือบางทีสายไฟเราหลุดแท้ๆ แต่มันดันคิดว่าเป็นบั๊กที่ซอฟต์แวร์ซะงั้น

สรุป: คุ้มค่ามากสำหรับการช่วยให้เราปั้นโปรเจกต์หุ่นยนต์อัจฉริยะจบได้ภายในบ่ายวันเดียว แต่จำไว้ว่ามันคือ "ผู้ช่วย" ที่เราต้องคอยคุมดูแล ไม่ใช่ระบบ Autopilot ที่ปล่อยทิ้งไว้ได้เลยครับ (อ้อ! ระวังเรื่องโควตาการใช้งานของ Claude Opus ให้ดีนะ ถ้าถามรัวๆ อาจจะติดลิมิตรายวันได้ไวมาก)

อ้างอิงและเรียบเรียงข้อมูลจาก: Globalbyteshop Blog

แหล่งที่มาบทความต้นฉบับ: Hackster.io - Build Robot Skills with Claude on myPalletizer

ดาวน์โหลด Source Code ของโปรเจกต์: GitHub Repository

*คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงแนวคิดจากบทความโปรเจกต์ต้นฉบับภาษาอังกฤษ ข้อมูลทางเทคนิคบางส่วนอาจถูกปรับภาษาให้เข้าใจง่ายขึ้นสำหรับผู้เริ่มต้น ผู้สนใจสามารถศึกษารายละเอียดเชิงลึก การใช้งานไลบรารี pymycobot และการเขียนคำสั่ง Claude CLI แบบเต็มได้จาก เว็บไซต์ต้นฉบับ

 

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี