June 2021

Lucksawan Yutthanakorn
4 min readJun 4, 2021

Lucksawan Y. Progress Update #11
63340700413 FRAM#18

ครั้งที่ 11 รายงานความคืบหน้าตั้งแต่ 6 พฤษภาคม ถึง 5 มิถุนายน พ.ศ. 2564

Thesis update

Next step ที่เขียนไว้เดือนที่แล้ว

  1. เปลี่ยนเวอร์ชั่นของ MRTK ไปใช้เวอร์ชั่น 2.6 เนื่องจาก Unity ขึ้น warning มาว่า 2.5.4 ที่ใช้อยู่ตอนนี้มันล้าหลังไปแล้ว และเข้าไปดูที่เว็บไซต์ของ Microsoft แนะนำให้ใช้ Unity 2019 กับ MRTK 2.6 ขึ้นไปสำหรับ Hololens 2
  2. ทำ Sensor status ให้เรียบร้อย
  3. เริ่มทำ Blockly สำหรับสั่งควบคุม actuator
  4. ทดสอบกับ Hololens 2 เรื่อย ๆ
  5. สร้าง UI สำหรับสั่งงานหุ่นยนต์แขนกล Dobot Magician ที่มีอยู่ใน Demo site
  6. ทดสอบการใช้งานหุ่นยนต์แขนดกล Dobot Magician ผ่าน Hololens2
  7. หา Feedback เนื้อหาให้ได้ ตอนนี้ยังไม่ได้เลย

ในเดือนนี้ทดลองเปลี่ยนเวอร์ชั่นของไลบรารี่ MRTK จาก 2.5.4 เป็น 2.6.1 เนื่องจากโปรแกรม Unity แจ้งเตือนว่า MRTK 2.5.4 ล้าหลังแล้ว (obsolete) import package เข้ามาแล้วตามรูปที่ 1. จะเห็นว่า version เป็น 2.6.1 แล้ว โดยที่ทุก layout/component ได้สร้างมาตอนใช้ไลบรารี่เวอร์ชั่น 2.5.4

แถวของปุ่มด้านบนเป็นสั่งให้หุ่นยนต์เคลื่อนที่ไปยังจุดที่กำหนด
แถวปุ่มด้านล่างเป็นสั่งงาน actuator ให้ดันชิ้นงาน โดยกด 1 ครั้งเป็นสั่งดัน กดซ้ำอีก 1 ครั้งเป็นสั่งดึง actuator กลับ
สองปุ่มด้านข้างเป็นปุ่ม connect เข้ากับ broker และปุ่มทดสอบ Publish ข้อความไปยัง broker

รูปที่ 1. หลังจากเปลี่ยนเวอร์ชั่นไลบรารี่ MRTK มาเป็น 2.6.1

จากที่เปลี่ยนไลบรารี่ด้วยการ delete ออกจากโฟลเดอร์ Asset จากนั้น import package โดยไปที่แท็ป Assets>Import Package>Custom Package… แล้วเลือก package ที่ได้ download ไว้ โปรแกรม Unity จะ import เข้ามา เมื่อเสร็จแล้วก็กด run ได้ผลดังรูปที่ 2.

รูปที่ 2. ทดลอง run ด้วยไลบรารี่ MRTK 2.6.1

พอเปลี่ยนมาเป็นเวอร์ชั่น 2.6.1 แล้วพบว่าสี่ของปุ่มที่ตั้งค่าไว้ไม่แสดงผลตอนกด run จะต้องหาวิธีให้สีแสดงผลอย่างถูกต้อง

รูปที่ 3. ขณะทดลองใช้ Hololens 2 สั่ง Hardware

จากนั้น remote เข้าไปที่ตัว Microsoft Hololens 2 เพื่อทดลองเชื่อมต่อกับ broker และสั่งงานอุปกรณ์ โดยครั้งนี้สั่งงานทั้ง actuator ดันชิ้นงานและสั่งงานหุ่นยนต์แขนกล Dobot Magician ทั้งหุ่นยนต์แขนกลและ actuator สามารถทำงานได้ตรงตามคำสั่งที่สั่งผ่าน Hoolens 2 ได้ทุกอย่าง

วิดิโอที่ 1. ใช้ Microsoft Hololens 2 สั่งงานอุปกรณ์หลังจากเปลี่ยนไลบรารี่เป็น MRTK 2.6.1

สั่งงานผ่านโปรโตคอล MQTT ตั้งค่า local broker และ port ให้เรียบร้อย
จากนั้นตั้งค่า Topic ที่จะ Publish คำสั่งไปควบคุมอุปกรณ์ ดังนี

Actuator ดันชิ้นงานสีแดง
Topic: “module/1/cmd/stack/actuator/r”
สั่งดันชิ้นงาน: “1”
สั่งดึงอุปกรณ์กลับ: “0”

Actuator ดันชิ้นงานสีเขียว
Topic: “module/1/cmd/stack/actuator/g”
สั่งดันชิ้นงาน: “1”
สั่งดึงอุปกรณ์กลับ: “0”

Actuator ดันชิ้นงานสีน้ำเงิน (ม่วง)
Topic: “module/1/cmd/stack/actuator/b”
สั่งดันชิ้นงาน: “1”
สั่งดึงอุปกรณ์กลับ: “0”

Actuator ดันชิ้นงานสีเหลือง
Topic: “module/1/cmd/stack/actuator/y”
สั่งดันชิ้นงาน: “1”
สั่งดึงอุปกรณ์กลับ: “0”

Dobot Magician
Topic: “module/1/cmd/dobot”
สั่งให้หุ่นยนต์เคลื่อนที่ไป Home position: “HOME”
สั่งให้หุ่นยนต์เคลื่อนที่ไปตำแหน่งวางชิ้นงานที่ 1: “place0”
สั่งให้หุ่นยนต์เคลื่อนที่ไปตำแหน่งวางชิ้นงานที่ 2: “place1”
สั่งให้หุ่นยนต์เคลื่อนที่ไปตำแหน่งวางชิ้นงานที่ 3: “place2”
สั่งให้หุ่นยนต์เคลื่อนที่ไปตำแหน่งวางชิ้นงานที่ 4: “place3”

ด้วยการ Publish ข้อความเหล่านี้ผ่าน MQTT จะสามารถสั่งงาน Hardware ให้ทำงานตามที่ต้องการได้

การสั่งหุ่นยนต์ให้เคลื่อนที่ไป 5 ตำแหน่งนี้ เป็นการ proof concept การทำงานของการสั่งงานหุ่นยนต์ที่วางแผนไว้ให้ผู้ใช้งานเขียนโปรแกรมแบบ Blockly จากการทดลองสามารถส่งคำสั่งไปควบคุมหุ่นยนต์และอุปกรณ์ได้ ดังนั้นในขั้นตอนถัดไปจะเป็นการทำ UI เพื่อให้แสดงผลตามที่วางแผนไว้

ศึกษาการใช้งานไลบรารี่ Vuforia เพื่อเตรียมทำ area target ต้องการนำมาประยุกต์ใช้เข้ากับการแสดงชื่ออุปกรณ์ขณะมองผ่าน Hololens 2 ผู้ใช้งานจะได้ทำความรู้จักอุปกรณ์จากการใช้งานจริง

ใน Unity asset store จะมี Vuforia asset ให้ import เข้ามาใช้ในโปรเจกได้

ทำการ import โดยไปที่แท็ป Windows>Asset Store ค้นหาคำว่า Vuforia จากนั้นหา Vuforia Hololens 1+2 แล้วเลือกเวอร์ชั่นสำหรับ Unity ที่ใช้ (ในที่นี้เลือกสำหรับ Unity 2019)

  • ในไลบรารี่ Vuforia จะมีไลบรารี่ MRTK ให้แล้ว แต่จะเป็นเวอร์ชั่น 2.5.3

บันทึกการใช้งานไลบรารี่ Vuforia ครั้งแรก

  • ตอนที่ลอง import เข้ามา ต้องใช้เวลานานพอสมควร
  • แนะนำให้ทดลองกับโปรเจกใหม่ (สำหรับครั้งแรก) เนื่องจาก Vuforia มีไลบรารี่ MRTK มาให้อยู่แล้ว การ import เข้าโปรเจคที่ทำอยู่จะทำให้เวอร์ชั่นของไลบรารี่ไม่เข้ากัน (conflict) จะทำให้ไม่สามารถใช้งานโปรเจกนั้นได้
  • เคยจะลบโปรเจคที่ import Vuforia เข้ามา แต่ลบผิดวิธี (กด delete ที่โฟลเดอร์โปรเจค) ทำให้ไม่สามารถล้าง cache ที่ค้างอยู่ได้ ส่งผลให้เกิด error ตามมามาก
  • ผลจากการลบโปรเจคผิดวิธี ทำให้ Unity ใช้เวลาในการเปิดโปรเจคที่มีไลบรารี่ Vuforia นานกว่าปกติ เกิดจากซีนที่สร้างในโปรเจคไม่ตอบสนอง (Not responding) ถ้าบังคับปิด (End task) โปรเจคก็จะ error ต่อไป เปิดครั้งหน้าจะไม่ตอบสนองอีก แต่ถ้ารอ (ใช้เวลา 0.5–1 ชั่วโมง) จะสามารถเปิดได้ แล้วค่อยแก้ปัญหาโดยการ import Vuforia เข้ามาแล้วอัพเดทเวอร์ชั่นให้เป็นล่าสุด
รูปที่ 4. Unity not responding จากการลบโปรเจคที่มีไลบรารี่ Vuforia แบบผิดวิธี

ช่วงสิ้นเดือนพ.ค.ได้ทดลองเปลี่ยนไลบรารี่ MRTK ที่มีมาให้จาก Vuforia เป็นเวอร์ชั่นล่าสุดที่ได้ลอง (MRTK 2.6.1) แล้วจะเริ่มนำ UI ที่ได้ทำไว้มาใช้ในโปรเจคนี้

รูปที่ 5.เปลี่ยนไลบรารี่ MRTK ใน Vuforia มาเป็นเวอร์ชั่นล่าสุด (2.6.1)

ใช้เวลาในการทดลอง import Vuforia เข้าโปรเจคประมาณ 1 อาทิตย์สลับกับเข้าไปทำงาน Smart Factory ที่ตึก

Next step:

  1. นำ UI ที่เคยใช้สั่ง Hardware ผ่าน Microsoft Hololens 2 ได้มาใช้กับโปรเจคที่ import Vuforia เข้ามาใช้แล้ว โดยที่มีเป้าหมายว่าจะใช้
    - Unity 2019.4.15f1
    - MRTK 2.6.1
    - Vuforia 9.8.8 (Lastest version)
  2. ทดลอง run เพื่อหาว่ามีบัคหรือปัญหาอะไรหรือไม่
  3. ทดลองใช้ Hololens 2 สั่งงาน Hardware ผ่านโปรเจคดังกล่าว
  4. ทำหน้า UI สำหรับการเข้าใช้งาน
  5. ทดลองนำ video และ text เนื้อหาแนวทางการเขียนโปรแกรมควบคุมหุ่นยนต์แขนกลโดยคำนึงถึงความปลอดภัยไป display บน Hololens 2
  6. ทำเนื้อหาเพิ่ม เรื่อง
    - แนวทางการเขียนโปรแกรมควบคุมหุ่นยนต์แขนกลโดยคำนึงถึงความปลอดภัย
    - Degree of Freedom ของหุ่นยนต์แขนกล
    - การแบ่งประเภทของหุ่นยนต์แขนกลตาม DoF
    - Safety ในการออกแบบสายการผลิตที่มีการใช้หุ่นยนต์แขนกล
    - ประเภทของ Gripper
    - Input / Output พื้นฐานที่จำเป็น

AI For All: Phase 1

เข้าไปทดสอบระบบของ Demo site ทุกอาทิตย์ เข้าอาทิตย์ละ 1–2 วัน

ทดสอบระบบส่วนของ Order manager (Module#0)

รูปที่ 6. โปรแกรมของส่วน Order manager (Module#0)

มีแก้ไขเพิ่มเติมจากบัคคือ

  1. ตอนทำ JSON แล้วมีการปรับเปลี่ยน flow เล็กน้อย ทำให้ไม่สามารถดึงออร์เดอร์จากเว็บได้แบบอัตโนมัติ → แก้แล้ว สามารถเรียกได้อัตโนมัติ ทดสอบวันที่ 4 มิ.ย. 2564
  2. เพิ่มฟังก์ชัน response คำสั่ง GET_PENDING เพื่อ publish จำนวนออร์เดอร์ที่ยังคงเหลือในระบบ

ผลการทำงาน

วิดิโอที่ 2. Demo site ทำงานจริงตามออร์เดอร์ที่ลูกค้าสั่งผ่านหน้าเว็บไซต์ smartfactory.hcilab.net

Story board

Key content ของแต่ละหัวข้อและแนวทางการทำเนื้อหาต่อ

รูปที่ 7. Key content ของแต่ละหัวข้อเพื่อเตรียมไปทำหน้าเว็บไซต์ smartfactory.hcilab.net
รูปที่ 8. หัวข้อเนื้อหาที่จะเพิ่ม (ตัวหนังสือสีม่วง)

จัดเตรียมทำ Story board สำหรับคุยกับทีมดีไซน์ทำ video ประกอบเนื้อหาในเว็บไซต์ที่ตอนนี้เผยแพร่อยู่ที่ Robotics Learning Hub: All courses (thairobotics.org)

Story board ที่ได้จัดทำเสร็จแล้วตอนนี้เป็นของบทความ “โรงงานอัจฉริยะกับแนวทางการประกอบอาชีพในประเทศไทย” ดังนี้

รูปที่ 9. Story board ของโรงงานอัจฉริยะกับแนวทางการประกอบอาชีพในประเทศไทย

โดยออกแบบให้มี 4 scene หลัก ในแต่ละ scene จะมีรายละเอียดดังนี้

Scene1: มาสคอตโผล่มาแบบสงสัย ‘ชั้นอยากทำงานแนวออโตเมชั่น เป็น SI ออกแบบให้โรงงานอัจฉริยะในประเทศไทย ชั้นต้องทำยังไงนะ’ คำถามโผล่มาเป็นบอลลูนทีละคำถาม โบ๊ะๆๆ พร้อมเสียงพากษ์อ่านคำถาม
“1.สนใจ smart factory
2.สนใจทำออโตเมชั่น
3.อยากเป็น system integrator ในประเทศไทย
4.ต้องเริ่มยังไงดี
เดี๋ยวมาสคอตจะพาทุกคนไปรู้จักกับหน่วยงานสำคัญที่เกี่ยวข้องกับสายอาชีพนี้ นั่นก็คือออ…” ( → Scene2)

Scene2: มาสคอตแนะนำ TPQI ลำดับภาพเป็นมาสคอตโผล่มา →มีบอลลูนตัวย่อ TPQI ขึ้นมาพร้อมแผนที่ประเทศไทย →จุดปักหมุดตรงกรุงเทพ →บอลลูน zoom out เป็นภาพจำลองตึกของ TPQI

รูปที่ 10. ภาพตึกของสถาบันคุณวุฒิวิชาชีพที่ต้องการให้ทำเป็นกราฟฟิกประกอบในวิดิโอ

ระหว่างนั้นก็มีเสียงพากษ์ “สถาบันคุณวุฒิวิชาชีพ Thailand Professional Qualification Institute ตามพระราชกฤษฎีกาจัดตั้งสถาบันคุณวุฒิวิชาชีพ เป็นสถาบันเพื่อพัฒนาและผลักดันระบบคุณวุฒิวิชาชีพของประเทศไทย ด้วยการจัดทำมาตรฐานอาชีพให้ได้มาตรฐานสากล ให้การรับรองและประเมินผลองค์กรที่มีหน้าที่รับรองสมรรถนะของบุคคลตามมาตรฐานอาชีพ ประเมินระบบให้มีความโปร่งใส ส่งเสริมและให้ความร่วมมือกับองค์กรต่าง ๆ ในการเผยแพร่ระบบคุณวุฒิวิชาชีพและมาตรฐานอาชีพ และเป็นศูนย์กลางข้อมูลเกี่ยวกับระบบคุณวุฒิวิชาชีพและมาตรฐานอาชีพ” → ตัดไป scene3

Scene3: ตัวหนังสือขึ้นเรียงเหมือนเวลาพิมพ์เร็วๆ ‘คุณวุฒิวิชาชีพแมคคาทรอนิกส์ สาขาคลัสเตอร์หุ่นยนต์ 19 คุณวุฒิวิชาชีพ 66 หน่วยสมรรถนะ’ พร้อมเสียงพากษ์ “คุณวุฒิวิชาชีพแมคคาทรอนิกส์ สาขาคลัสเตอร์หุ่นยนต์ 19 คุณวุฒิวิชาชีพ 66 หน่วยสมรรถนะ” มาสคอตก็ขึ้นมาพร้อมกับตัวหนังสือเลย ระหว่างที่เป็นเสียงพากษ์ให้เป็นรหัสหน่วยสมรรถนะสลับกันขึ้นแบบเร็ว ๆ ซ้ายขวาบนล่างเยอะแยะไปหมด

Scene4: ขึ้นตัวอักษรครบทั้งข้อความ‘คุณวุฒิวิชาชีพแมคคาทรอนิกส์ สาขาคลัสเตอร์หุ่นยนต์ 19 คุณวุฒิวิชาชีพ 66 หน่วยสมรรถนะ’ (ขึ้นจากหน้าที่แล้วทิ้งไว้เลย) กราฟฟิกเป็นรูปหัวการ์ตูนแสดง character อาชีพขึ้นเรียงจากซ้ายไปขวาคือ ช่างประกอบ, ช่างเทคนิค, เจ้าหน้าที่/วิศวกร, ผู้จัดการ, นักออกแบบระบบ, นักบูรณาการระบบ แล้วก็มีเกจเหมือน growth level beginner →expert ประกอบ
พร้อมเสียงพากษ์ “ในการประกอบอาชีพในสายงานหุ่นยนต์และระบบอัตโนมัติ มาตรฐานสมรรถนะจากสถาบันคุณวุฒิวิชาชีพจะเป็นตัวการันตีความสามารถ ระดับความยากของหน่วยสมรรถนะไล่เรียงตั้งแต่ระดับ 2 (ภาพกราฟฟิกหัวช่างประกอบต้องขึ้นตอนนี้ แล้วตัวที่เหลือก็ขึ้นตามมา โบ๊ะ ๆ ๆ) คือช่างประกอบไปจนถึงระดับ 7 คือนักบูรณาการระบบการผลิต หรือที่คุ้นเคยกันดีว่า System integrator การที่มีหน่วยสมรรถนะสำหรับวัดผลนี้ก็เพื่อให้อาชีพใหม่ใน new s curve ของประเทศไทยเป็นมาตรฐานทัดเทียมสากล เป็นผลดีกับผู้ที่จะประกอบกิจการที่จะหาจ้างบุคลากรที่มีคุณภาพ หรือผู้ที่สนใจจะสร้างโปรไฟล์การทำงานให้น่าเชื่อถือในสายงานนี้เช่นเดียวกัน”

และวางแผนไว้ว่าจะให้ทำส่วนของปกเปิดปิดคลิปวิดิโอ ให้ใส่ตราสัญลักษณ์ของโครงงาน AI For All, KMUTT++, FIBO, HCI Lab, Smart Factory

Mascot

วางแผนกับพี่เชาว์ว่าจะใช้ตู้สำหรับใส่จอของ Schneider เป็น identity หลัก

รูปที่ 11. จอที่จะนำมาใช้เป็น character ของ mascot
  • Identity อยากได้เป็นตู้ใส่จอตัวนี้ ใช้ล้อเคลื่อนที่ อาจจะมีแขนไว้ชี้ไปมาได้ ref คล้าย ๆ ตัวการ์ตูน BMO
  • ตรงส่วนหน้าจอสี่เหลี่ยมๆด้านบน เอาไว้แสดงสีหน้าท่าทาง ละเอาไว้เป็นกรอบเวลาทำ video/animation ก้ได้ เอาไว้เปิดวิดิโอเหมือนหน้าท้องเทเลทับบี้
  • สีส้ม น้ำเงิน ขาว แบบตรา SF
  • ท่าทาง: ยิ้ม, ดีใจ, ชี้มือไปมา, ทักทาย

Next step:

  1. ทำ Story board ของเนื้อหาที่เหลือ
  2. นัดทีมดีไซน์สำหรับจัดทำวิดิโอประกอบเนื้อหา

--

--