ส่วนรับผิดชอบ: System Integration, UX/UI, Database, Digital Twin, Support Vision For Safety และ Robot Assembly
ผู้จัดทำ: นาย อิทธิวัตร รัตตกูล
จากการทำงานในโครงงาน FIBO ROBOT CAFE หน้าที่หลักของผมคือการทำ System Integration เพื่อรวมระบบย่อยต่างๆ ทั้งฮาร์ดแวร์ ซอฟต์แวร์ การควบคุม และ AI เข้าด้วยกันให้ระบบทำงานได้จริง กระบวนการทำงานในส่วนนี้ทำให้ผมได้เรียนรู้และพัฒนาทักษะใหม่ๆ ในหลายด้าน ดังนี้
1. การเรียนรู้ด้าน Web Technology, UI/UX และ Digital Twin


- ความสำคัญของ Digital Twin ในการทำงานจริง: ตอนแรกผมสนใจทำ 3D Digital Twin เพราะเห็นว่าเป็นเทคโนโลยีที่น่าสนใจ แต่เมื่อได้พัฒนาและนำมาใช้จริง สิ่งที่ผมได้เรียนรู้คือ Digital Twin เป็นเครื่องมือที่มีประโยชน์มากในการทำงานร่วมกัน ช่วยให้เราสามารถตรวจสอบระยะและการเคลื่อนที่ของหุ่นยนต์ (Simulation) ได้อย่างปลอดภัยก่อนสั่งงานฮาร์ดแวร์จริง ทำให้ลดความเสี่ยงที่หุ่นยนต์จะพัง และช่วยให้ผมสามารถทดสอบโค้ดจากที่ไหนก็ได้
- การออกแบบ UI/UX สำหรับหุ่นยนต์: ผมได้เรียนรู้วิธีคิดในการออกแบบหน้าจอควบคุมที่เน้นให้คนทั่วไปใช้งานได้ง่าย ต่างจาก Teach Pendant ทั่วไปที่มักจะซับซ้อน นอกจากนี้ การเลือกใช้เทคโนโลยีเว็บ (Web-based) ยังสอนให้ผมเข้าใจเรื่องความยืดหยุ่นของระบบ เพราะทำให้สามารถนำ UI นี้ไปรันบนอุปกรณ์ไหนก็ได้
- การขยายข้อจำกัดด้วย Database: ระบบเดิมมีข้อจำกัดเรื่องการบันทึกท่าทาง ผมจึงได้เรียนรู้การนำระบบ Database เข้ามาประยุกต์ใช้ในการจัดเก็บข้อมูลคำสั่ง (Task) ซึ่งทำให้เข้าใจวิธีการออกแบบโครงสร้างข้อมูลที่ดี ช่วยให้ระบบสามารถบันทึก ลบ และแก้ไขขั้นตอนการทำงานได้อย่างเป็นระบบและไม่จำกัดจำนวน


2. การเรียนรู้ด้าน System Integration และ ROS

- การจำลองระบบ (Mock-up) และความเข้าใจเรื่อง Kinematics: ในช่วงที่ระบบหลักอย่าง Trajectory Planning และการคำนวณ IK ของเพื่อนยังไม่เสร็จ ผมต้องเขียนสคริปต์ Python ขึ้นมาจำลองการส่งข้อมูลผ่าน ROS Topic เอง การต้องทำส่วนนี้เองทำให้ผมได้เรียนรู้และเข้าใจเรื่อง DH Parameters ลึกซึ้งขึ้น ได้รู้วิธีการนำข้อมูลพิกัดจากไฟล์ 3D ใน Fusion 360 มาทำเป็นไฟล์ URDF รวมถึงได้ลองใช้ Jacobian Matrix ในการจำลองการเคลื่อนที่ ซึ่งถือเป็นความรู้ใหม่ที่สำคัญ
- การจัดการข้อมูลและการ Optimize ระบบ: การที่ระบบมีข้อมูลจากกล้อง 3D และกล้อง Web Camera ส่งเข้ามาพร้อมกันจำนวนมาก ทำให้ผมได้เรียนรู้ปัญหาข้อจำกัดของทรัพยากรฮาร์ดแวร์ (บอร์ดรันไม่ไหว) สิ่งที่ผมได้เรียนรู้คือวิธีการแก้ปัญหาเฉพาะหน้าด้วยการ Optimize เช่น การเขียนระบบให้ผู้ใช้เลือกปรับความละเอียด (SD/HD) และลดทอนรายละเอียดของ 3D ลง เพื่อให้ระบบโดยรวมยังทำงานได้อย่างเสถียร
- กระบวนการทดสอบระบบ (Testing Process): ในการเอาโค้ดของหลายๆ คนมารวมกัน ผมได้เรียนรู้วิธีการจัดการโดยสร้างระบบจำลองขนาดเล็กให้แต่ละคนไปทดสอบการรับ-ส่งข้อมูลของตัวเองก่อน วิธีนี้สอนให้ผมรู้ว่าการเตรียมความพร้อมก่อนนำระบบมารวมกัน ช่วยลดเวลาในการ Debug และลดความสับสนได้มาก

3. การเรียนรู้จากหน้างานฮาร์ดแวร์ (Hardware Assembly & Wiring)
- ข้อจำกัดของงานชิ้นส่วนประกอบ: จากที่ทำแต่หน้าจอซอฟต์แวร์ การได้มาช่วยประกอบชิ้นส่วนที่พิมพ์ 3D ทำให้ผมได้เรียนรู้ความสำคัญของค่าความเผื่อ (Tolerance) ได้เห็นปัญหาจริงว่าถ้าเฟืองแน่นไปก็หมุนไม่ได้ หรือถ้าหลวมไปก็จะเกิดระยะคลอน (Backlash) ซึ่งเรื่องพวกนี้ส่งผลกระทบโดยตรงมาถึงการเขียนโค้ดควบคุมซอฟต์แวร์
- การแก้ปัญหาเฉพาะหน้าและการจัดสายไฟ: เมื่อบอร์ดขับมอเตอร์พังและต้องเปลี่ยนสเปคอุปกรณ์กะทันหัน ผมได้เรียนรู้วิธีการรับมือกับปัญหาเฉพาะหน้า และได้เห็นความสำคัญของการจัดการสายไฟ (Cable Management) ที่เป็นระเบียบ เพราะการเดินสายไฟที่ซับซ้อนและพันกันอาจก่อให้เกิดปัญหาสัญญาณรบกวนในระบบได้ง่าย
4. ข้อคิดและสิ่งที่ควรปรับปรุง (Reflection)
จากปัญหาทั้งหมดที่พบ สิ่งสำคัญที่ผมได้เรียนรู้และอยากปรับปรุงการทำงานในอนาคตคือ การเตรียมขั้นตอนการตรวจสอบฮาร์ดแวร์ (Hardware Test Buffer) ผมเรียนรู้ว่าเราควรเผื่อเวลาและทดสอบการรับ-ส่งข้อมูลหรือการทำงานของอุปกรณ์ใหม่ทุกชิ้นอย่างละเอียดก่อนที่จะนำไปต่อเข้ากับระบบใหญ่ การไม่ตรวจสอบให้ดีตั้งแต่แรกทำให้เกิดผลกระทบต่อเนื่อง และทำให้งานส่วนอื่นๆ ล่าช้าตามไปด้วย
จากปัญหาทั้งหมดที่พบ สิ่งสำคัญที่ผมได้เรียนรู้และอยากปรับปรุงการทำงานในอนาคตคือ การเตรียมขั้นตอนการตรวจสอบฮาร์ดแวร์ (Hardware Test Buffer) ผมเรียนรู้ว่าเราควรเผื่อเวลาและทดสอบการรับ-ส่งข้อมูลหรือการทำงานของอุปกรณ์ใหม่ทุกชิ้นอย่างละเอียดก่อนที่จะนำไปต่อเข้ากับระบบใหญ่ การไม่ตรวจสอบให้ดีตั้งแต่แรกทำให้เกิดผลกระทบต่อเนื่อง และทำให้งานส่วนอื่นๆ ล่าช้าตามไปด้วย
