- Shoggoth Mini เป็นหุ่นยนต์หนวดนุ่มที่ใช้ GPT-4o และ การเรียนรู้แบบเสริมกำลัง เพื่อสร้างการเคลื่อนไหวที่เป็นธรรมชาติและแสดงออกได้อย่างมีอารมณ์
- ต่างจาก หุ่นยนต์ใช้ในบ้าน แบบเดิม ๆ มันถูกออกแบบมาให้สามารถแสดง สถานะภายในหรือเจตนา ระหว่างปฏิสัมพันธ์กับมนุษย์ได้
- อธิบายกระบวนการทั้งหมดอย่างละเอียด ตั้งแต่การออกแบบฮาร์ดแวร์ไปจนถึงซอฟต์แวร์ รวมถึง ระบบการมองเห็นด้วยกล้องและระบบควบคุม
- เพิ่มความใช้งานง่ายด้วยการแมป อินพุตแทร็กแพด 2D ไปยังการควบคุมหนวดแบบ 3D อย่างเป็นธรรมชาติ และผสาน คอมพิวเตอร์วิทัศน์สมัยใหม่ กับเทคโนโลยี RL เพื่อให้ได้ทั้งความแม่นยำและพลังในการแสดงออก
- ช่วงท้ายนำเสนอข้อคิดเกี่ยวกับความสมดุลระหว่างความมีชีวิตชีวาของหุ่นยนต์ ความคาดเดาไม่ได้ และความเป็นมิตรต่อมนุษย์ ตลอดจนแนวคิดการต่อยอดในอนาคต
บทนำและพื้นหลัง
- ในช่วง 1 ปีที่ผ่านมา วงการ หุ่นยนต์ พัฒนาอย่างรวดเร็วจากการผสานเข้ากับยุคของ โมเดลภาษาขนาดใหญ่ (LLM)
- ตัวอย่างเช่น π0.5 และ Tesla Optimus สามารถเข้าใจคำสั่งภาษาและลงมือทำในโลกจริงได้ แต่ส่วนใหญ่ยังคงอยู่ในระดับของ หุ่นยนต์เชิงหน้าที่
- ผู้เขียนชี้ว่า "ความสามารถในการแสดงออก (expressiveness)" คือหัวใจสำคัญของความเป็นธรรมชาติในการปฏิสัมพันธ์ระหว่างมนุษย์กับหุ่นยนต์ และการถ่ายทอดสถานะภายใน เช่น เจตนา ความสนใจ หรือความมั่นใจ
- ได้แรงบันดาลใจจากโคมไฟสไตล์ Pixar (Apple ELEGNT) และ SpiRobs ที่แม้จะมีเพียงการเคลื่อนไหวง่าย ๆ แต่กลับให้ความรู้สึกเหมือน “มีชีวิต” อย่างประหลาด จึงเริ่มสนใจ ความแตกต่างระหว่างการออกแบบการแสดงออกอย่างตั้งใจกับความมีชีวิตที่เกิดขึ้นโดยบังเอิญ
- เพื่อทดลองแนวคิดนี้ จึงเริ่มสร้าง Shoggoth Mini และแบ่งปันกระบวนการออกแบบผ่านการลองผิดลองถูกและการค้นพบต่าง ๆ
ฮาร์ดแวร์
- เวอร์ชันแรกของแท่นทดสอบเริ่มจากโครงสร้างเรียบง่ายที่มีมอเตอร์ 3 ตัว แผ่นสำหรับยึดหนวด และฝาครอบทรงโดม
- ระหว่างพิมพ์ 3D เส้นฟิลาเมนต์หมด ทำให้บางส่วนของโดมมีสีต่างกัน จนกลายเป็นใบหน้าที่ดูมีลูกตาและปาก จากนั้นใช้ ChatGPT สำรวจแบบร่างด้านภาพและสรุปรูปทรงสุดท้าย
- ติดตั้ง กล้องสเตอริโอ บนโดมเพื่อใช้ติดตามหนวด และ “ข้อผิดพลาดในการคาดการณ์” ของดวงตาหุ่นยนต์กลับให้ผลในการดึงดูดสายตา
- การออกแบบสปูลแบบเปิดมีข้อเสียคือสายหลุดและพันกันได้ง่าย จึงแก้ปัญหาด้วยการเพิ่ม ฝาครอบสปูล แบบง่าย ๆ ซึ่งช่วยให้การทดลองซ้ำทำได้เร็วขึ้น
- เพิ่มสคริปต์คาลิเบรชันและความยาวลวดสำรอง เพื่อให้การบำรุงรักษาและการปรับความตึงของมอเตอร์ทำได้รวดเร็ว
- ปรับให้กระดูกสันหลัง (spine) ของหนวดหนาขึ้นพอเหมาะเพื่อลดอาการหย่อนตัวของหนวด
- ทั้งภาพประกอบการประกอบใน CAD และไฟล์ STL สำหรับพิมพ์ 3D ถูกเผยแพร่ไว้ใน GitHub repository
การควบคุมแบบแมนนวล
- ในช่วงแรก มีการลดความซับซ้อนของการควบคุมความยาวเอ็นดึง (tendon) 3 เส้นให้เป็นการควบคุมแบบ 2 มิติ เพื่อให้สามารถขยับหนวดได้อย่างเป็นธรรมชาติผ่าน แทร็กแพด
- เอ็นดึงแต่ละเส้นมีทิศทางหลักบนระนาบ 2D โดยนำเวกเตอร์ทิศทางของเคอร์เซอร์ไปฉายลงบนแต่ละแกน เพื่อคำนวณการเปลี่ยนแปลงความยาวตามแรงตึงที่ต้องการ
- ค่าบวกหมายถึงเอ็นดึงสั้นลง ค่าลบหมายถึงยืดออก
- วิธีแปลง 2D→3D นี้ถูกนำกลับมาใช้เป็น projection layer มาตรฐานสำหรับการควบคุมอัตโนมัติด้วย เช่น การเรียนรู้แบบเสริมกำลัง
- แม้ช่วงการควบคุมจะจำกัด แต่สามารถควบคุมได้อย่างเป็นธรรมชาติ และช่วยยกระดับการตอบสนองกับประสบการณ์ใช้งานอย่างมาก
การออกแบบระบบ
- โครงสร้างการควบคุมแบบลำดับชั้น 2 ชั้น:
- ระดับล่าง ทำงานด้วยนโยบายแบบ open-loop (เช่น
<yes>, <shake>) และนโยบาย RL แบบ closed-loop (เช่น การติดตามนิ้วมือ) โดยการติดตามปลายหนวด/ตำแหน่งมือรับผิดชอบโดยไปป์ไลน์ที่อิงสเตอริโอวิชัน
- ระดับบน GPT-4o ประมวลผลเสียง/ข้อความแบบเรียลไทม์ (ยังไม่เปิดเผยวิชัน) และเหตุการณ์จากวิดีโอ เช่น การโบกมือ จะถูกส่งไปยัง GPT-4o ในรูปของ text cue เพื่อใช้ตัดสินใจเรียก API
- แทนที่จะรวมแบบ end-to-end vision-language-action (VLA) โดยตรงด้วยโมเดลขนาดใหญ่ ระบบนี้ถูกออกแบบเป็น โครงสร้างแบบขั้นบันไดที่ประกอบด้วยวิชันเฉพาะทางและคอนโทรลเลอร์ย่อยน้ำหนักเบา
- การปรับขอบเขตการสังเกตของ RL การกลับสู่ท่าเริ่มต้นอย่างเป็นธรรมชาติ และการใส่ช่วง idle (โหมดหายใจ) ระหว่างการเรียก API ช่วยเสริม “ความรู้สึกมีชีวิต” ของหุ่นยนต์
- เนื่องจาก VLA ยังมีข้อจำกัดในทางปฏิบัติ เช่น ปัญหาการปรับเวลา prompt engineering จึงกลายเป็นองค์ประกอบสำคัญ
การรับรู้และการมองเห็น
- ผสาน MediaPipe สำหรับติดตามมือเข้ากับชุดข้อมูลแบบกำหนดเองและโมเดล YOLO สำหรับติดตามปลายหนวด
- ใช้ k-means clustering, ระบบ auto-labeling/active learning ของ Roboflow และ Segment Anything เพื่อขยายชุดข้อมูลและติดป้ายกำกับอย่างละเอียด
- ฝึกด้วย Ultralytics YOLO และใช้ notebook ของ DeepLabCut เพื่อประมาณพารามิเตอร์ภายใน/ภายนอกของกล้องและทำ 3D triangulation
- การติดตามตำแหน่งมือ-หนวดแบบ 3D เรียลไทม์ทำให้สามารถควบคุมแบบปิดลูปได้อย่างทนทาน
API ควบคุมระดับล่าง
- เนื่องจากหุ่นยนต์นุ่มต่างจากวัตถุแข็ง จลนศาสตร์ผกผัน จึงใช้งานได้ไม่ดีนัก จึงใช้วิธี 2D control projection อย่างสม่ำเสมอ
- การทำให้กระดูกสันหลังหนาขึ้นยังช่วยเพิ่มความสามารถในการทำซ้ำของการเคลื่อนไหวข้ามแต่ละเซสชัน
- จากการทดลอง เช่น ท่าหยิบจับวัตถุ (grab) พบ ความทนทานเชิงกล เฉพาะตัวของหุ่นยนต์นุ่ม ซึ่งสามารถรองรับความหลากหลายของรูปร่างและน้ำหนักวัตถุที่จับได้
- แม้จะไม่ถนัดงานควบคุมละเอียดความถี่สูง แต่การควบคุมพื้นฐานกลับมีเสถียรภาพเกินคาดจากการออกแบบเชิงกลเพียงอย่างเดียว
การเรียนรู้แบบเสริมกำลัง (RL)
- เริ่มนำ RL มาใช้กับนโยบายง่าย ๆ เช่น การติดตามนิ้วมือผู้ใช้ โดยใช้ MuJoCo simulator และเพิ่มความสามารถ sim-to-real ผ่าน domain randomization แบบไดนามิก (PPO, MLP, frame stacking, การสุ่มมวล/แรงเสียดทาน/การหน่วง)
- ในช่วงแรกใช้ความยาว tendon เองเป็น action space แต่เกิด reward hacking และย้ายไปใช้กับของจริงไม่สำเร็จ
- จำกัด action ด้วยวิธี 2D projection เพื่อลดพฤติกรรมที่ไม่สมจริง เช่น ความสับสนหรือการสั่น และชี้ให้เห็นความเป็นไปได้ในการขยายไปสู่มิติที่สูงขึ้นแบบค่อยเป็นค่อยไปด้วย curriculum learning
- เพื่อชดเชยอาการสั่น (jitter) จากการเปลี่ยน action อย่างรวดเร็ว จึงเพิ่ม penalty ใน reward และทำ action smoothing ด้วย EMA
บทสรุปและทิศทางในอนาคต
- ในตอนแรก ความรู้สึกของ ความคาดเดาไม่ได้และพื้นที่ให้ตีความ ทำให้เกิดความรู้สึกว่า “มีชีวิต” (aliveness) แต่เมื่อมีการวิเคราะห์และทำความเข้าใจมากขึ้น ความสดใหม่ของฟีดแบ็กนั้นก็ค่อย ๆ ลดลง
- เน้นย้ำว่า ความสมดุลระหว่าง ความสามารถในการแสดงออก (การสื่อเจตนา) กับ ความมีชีวิต (ความคาดเดาไม่ได้) เป็นปัจจัยชี้ขาดของปฏิสัมพันธ์ระหว่างหุ่นยนต์กับมนุษย์
- แนวคิดการต่อยอดในอนาคต:
- มอบเสียงที่ไม่เหมือนมนุษย์
- ปลดข้อจำกัดแบบ 2D
- เพิ่มความหลากหลายของท่าทางแสดงออกด้วย RLHF เป็นต้น
- เพิ่มจำนวนหนวดและทำให้เคลื่อนที่ได้ด้วยตัวเอง
- ใช้มอเตอร์ direct-drive เพื่อลดเสียงรบกวน
- ซอร์สโค้ดและไฟล์ต่าง ๆ มีให้ที่ GitHub repository และยินดีต้อนรับการร่วมมือและการพูดคุย
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
รู้สึกว่านี่เป็นการบรรจบกันที่น่าสนใจของเทคโนโลยีกับจิตวิทยามนุษย์ ตอนแรกหุ่นยนต์ให้ความรู้สึกเหมือนมีชีวิตมาก แต่พอใช้ไปสักพักและเริ่มคาดเดาการเคลื่อนไหวได้ง่ายขึ้น ก็เริ่มรู้สึกว่ามันมีชีวิตน้อยลงเรื่อย ๆ, ‘ความสามารถในการแสดงออก’ คือการสื่อสารสถานะภายใน แต่ ‘ความมีชีวิต’ กลับเกิดจากความคาดเดาไม่ได้และความทึบแสงอยู่บ้าง เพราะระบบที่มีชีวิตจริงต้องติดตามตัวแปรที่ซับซ้อนและหลากหลาย, Shoggoth Mini ยังไม่ถึงระดับนั้น, เลยสงสัยว่าเราต้องการหุ่นยนต์ที่ทำให้รู้สึกเหมือนมีชีวิตจริง ๆ หรือไม่ หรือมีจุดหนึ่งที่มันจะคาดเดาไม่ได้มากเกินไปจนมนุษย์ไม่สบายใจที่จะอยู่ใกล้
ทำให้นึกถึง Furby ทั้งรูปทรง ขนาด ดวงตาสองข้าง และหูที่ขยับได้ ตอนแรกก็น่าตื่นเต้น แต่พอลองเล่นไม่นานก็เห็นว่ามันมีพฤติกรรมจำกัดตามการผสมกันของสิ่งเร้ากับสถานะภายในแบบง่าย ๆ หลายคนชอบล้อว่า “มนุษย์ก็เป็นแบบนั้นไม่ใช่เหรอ?” แต่ในความเป็นจริง เราจับแพตเทิร์นที่ซ้ำได้อย่างรวดเร็ว
คล้ายกับเวลาที่เข้าใจกฎของระบบเกมแล้ว ก็จะรู้สึกสนุกน้อยลง แม้จะดูซับซ้อนจากการนำกฎมาใช้ แต่ผลลัพธ์กลับให้ความรู้สึกเหมือนถูกกำหนดไว้แล้ว เสน่ห์แบบเวทมนตร์นั้นก็หายไป
มนุษย์มอบความเป็นมนุษย์และความเป็นอิสระให้กับไฟ น้ำที่ไหล ออโตมาตาในศตวรรษที่ 18 แชตบอตยุคแรก ๆ และ ChatGPT — ไปจนถึงเครื่องจักรอีกมากมาย บางครั้งเครื่องก็เหมือนมี ‘อารมณ์’ ได้ด้วยซ้ำ
มีการแชร์ประสบการณ์เกี่ยวกับผู้ช่วยเสียงและภาษาประดิษฐ์ โดยตั้งผู้ช่วยเสียงให้ใช้สำเนียงอังกฤษ เพราะมันฟังดูแปลกหูพอประมาณและเลยรู้สึกว่าน่าเชื่อถือกว่ามาก แม้อาจไม่ใช่สำหรับคนอังกฤษก็ตาม, เมื่อก่อนตอนร่วมพัฒนาเกม เคยพยายามสร้างบทพูด NPC แบบไดนามิก แต่การทำให้ฟังสมจริงในภาษาอังกฤษนั้นยากมาก สุดท้ายเลยให้นักแสดง NPC พูดภาษาสมมติ และเพิ่มองค์ประกอบปริศนาให้ผู้เล่นต้องเรียนรู้ภาษานั้น กลับทำให้ตัวละครดูสมจริงกว่ามาก, ที่จริงแล้วการที่ผู้เล่นต้องใช้พลังไปกับการแปล ทำให้ลืมไปชั่วคราวว่านี่เป็นภาษาประดิษฐ์ จึงช่วยเลี่ยง ‘uncanny valley’ ได้, แต่ก็สงสัยเหมือนกันว่าพอผู้เล่นคุ้นกับเกมและเชี่ยวชาญภาษามากขึ้นแล้ว สุดท้ายจะมองออกไหมว่ามันเป็นระบบประดิษฐ์ที่ถูกควบคุมอยู่
ไม่ได้รู้สึกว่าเป็น “อ้อ มันลังเลนะ” เท่าไร แต่รู้สึกว่ามันลังเลคล้าย ๆ กันกับทุกคำถาม ดีเลย์ตอน GPT สร้างคำตอบรบกวนใจพอสมควร และน่ารำคาญยิ่งกว่าความหน่วงจากการเชื่อมต่อถ่ายทอดข่าวสดเสียอีก เลยคิดว่าถ้ามีอะไรอย่าง LED ที่ดวงตาไว้แสดงว่าระบบกำลังทำงานอยู่ อาจช่วยได้บ้าง, พอส่งคำถามไปให้ GPT ก็หลีกเลี่ยงความหน่วงไม่ได้ โดยเฉพาะเมื่อส่งคำขอขึ้นคลาวด์, และมองว่าการตั้งค่าให้ GPT-4o ฟังสตรีมเสียงทั้งหมดตลอดเวลาเป็นเรื่องที่มีปัญหาได้
ถ้าเป็นงานง่าย ๆ แบบนี้ คิดว่า LLM ขนาดเล็กอย่าง Qwen 0.6B ก็น่าจะพอ มีวิธีใช้ความสามารถ zero-shot ของโมเดลใหญ่เพื่อสร้างชุดข้อมูลของตัวเอง แล้วฝึกโมเดลแยกที่เร็วกว่าได้มาก
เรื่องที่ GPT-4o ฟังเสียงตลอดเวลานั้น คิดว่าใช้ไลบรารี wake word (เช่น openWakeWord, porcupine) ก็แก้ได้ ให้ผู้ใช้ปลุกด้วยคำเรียกเฉพาะก่อนแล้วค่อยส่งพรอมป์ต์ ก็จะช่วยลดประเด็นด้านความปลอดภัยและความเป็นส่วนตัวได้ด้วย ปกติอาจแสดงแอนิเมชันว่า ‘กำลังหลับ’ แล้วพอถูกเรียกก็ค่อยตื่นขึ้นมาตอบสนอง พร้อมแชร์ลิงก์โอเพนซอร์ซที่เกี่ยวข้อง openWakeWord porcupine
ไม่ค่อยเห็นด้วยกับความเห็นที่ว่าดีเลย์ตอน GPT ตอบนั้นน่ารำคาญ ตอนที่หนวดหยุดแล้วตั้งขึ้นทันที มันให้ความรู้สึกเหมือนกำลังตั้งใจฟังและกำลังคิดอยู่ เลยกลับรู้สึกว่าน่ารักดี
คิดว่ามันควรมีคิ้วแบบ Johnny 5 วิดีโอตัวอย่าง Johnny 5
หลังผ่านช่วงต้นแบบไปแล้ว ก็น่าจะเอาโมเดลขนาดเล็กที่ปรับแต่งมาไว้บนอุปกรณ์โดยตรงได้ แบบนั้นจะเร็วกว่า ปลอดภัยกว่า และเหมาะกับผลิตภัณฑ์จริงมากกว่า (แม้ในช่วงต้นแบบจะยืดหยุ่นน้อยลง)
แชร์วิดีโอเจ๋ง ๆ ของ SpiRobs ที่เป็นแรงบันดาลใจให้ไอเดียนี้ วิดีโอ YouTube ของ SpiRobs
ดีไซน์น่ารักมาก ตอนที่ไปศึกษาหุ่นยนต์หนวด (tentacle) เมื่อปีที่แล้ว ได้รู้ว่าคำเรียกอย่างเป็นทางการคือ “continuum robots” และมีงานวิจัยเยอะมากโดยเฉพาะในสายหุ่นยนต์ทางการแพทย์ ถ้าอยากรู้เพิ่มก็มีวิดีโอบรรยายเบื้องต้นที่ดีให้ดู วิดีโอบรรยายที่เกี่ยวข้อง
คิดว่าเป็นโปรเจ็กต์ที่เจ๋งมาก ทุกวันนี้ความสามารถของ AI เพิ่มขึ้นมากและหุ่นยนต์ก็ก้าวหน้าไปเยอะ เลยอดเสียดายไม่ได้ว่าทำไมเราถึงสร้างแต่รูปร่างมนุษย์อยู่เรื่อย ๆ อยากเห็นหุ่นยนต์รูปทรงแปลก ๆ อย่างลูกผสมแมงมุม-ปลาหมึกเดินอยู่ในบ้านบ้าง
มีการถกเถียงเรื่องความปลอดภัยของ AI กันมาก แต่ฉันอยากได้หุ่นยนต์ลูกผสมแมงมุม-ปลาหมึกเดินไปมาทั่วบ้าน
วงการหุ่นยนต์มีแนวโน้มจะทำให้มันเข้ากันได้กับโลกที่ออกแบบเพื่อมนุษย์มากที่สุด แต่การลองเปลี่ยนรูปแบบของขาเพื่อสำรวจตัวเลือกที่หลากหลายก็น่าสนใจมากเหมือนกัน
ไม่มีทางเอาด้วย เคยดูหนังพวกนี้มาแล้ว ไม่ต้องการให้มีสิ่งมีชีวิตแบบ facehugger นั่งอยู่บนโต๊ะเด็ดขาด
แฟน ๆ Hentai อาจจะยินดีต้อนรับก็ได้
ถ้าหนวดยาวกว่านี้และมีโปรแกรมไว้แกล้งเพื่อนร่วมงานแต่ละคนได้ อาจจะออกมาสนุกก็ได้
ชอบการอ้างอิงถึงเลิฟคราฟต์ และสงสัยว่าใช้โมเดลเล็กกว่านี้ก็น่าจะพอหรือเปล่า
แชร์ลิงก์อ้างอิงเกี่ยวกับมีม Shoggoth ที่น่าดู Shoggoth With Smiley Face Meme บทความ NYT เกี่ยวกับมีม Shoggoth
เห็นด้วยคล้าย ๆ กัน ที่จริงคิดว่าน่าจะทำให้ง่ายกว่านี้ได้อีก มีการอ้างคำพูดของผู้พัฒนาว่า “เคยคิดจะฝึกโมเดล VLA แบบ end-to-end แต่หุ่นยนต์นิ่มที่ขับเคลื่อนด้วยสายเคเบิลมีชุดความยาวสายได้หลายแบบสำหรับตำแหน่งปลายเดียวกัน ทำให้ความคาดเดาไม่ได้สูง และการเรียนรู้จากการสาธิตก็ขยายต่อได้ไม่ดี” สุดท้ายเลยไปใช้สถาปัตยกรรมแบบเป็นชั้น โดยให้วิชันเฉพาะทางป้อนเข้าคอนโทรลเลอร์น้ำหนักเบา ถึงอย่างนั้น ถ้าลองใหม่ด้วยโมเดลเล็กก็น่าจะเจ๋งมาก และถ้าจะรันโมเดลโลคัลก็ควรวางไว้ในเพนตาแกรมเพื่อความอุ่นใจ เป็นมุกขำ ๆ
ดูสื่อจากญี่ปุ่นมามากพอที่จะพอเดาได้ว่าเรื่องนี้จะจบไปทางไหน
ไอเดียนี้เจ๋งมาก ดึงดูดใจตรงที่พยายามเพิ่มความสามารถในการแสดงออกให้กับสิ่งมีชีวิตที่ไม่ใช้ภาษาและไม่ใช่มนุษย์
คิดว่าเป็นงานที่สวยงามมาก โดยเฉพาะที่หุ่นยนต์ตัวนี้ถูกออกแบบมาให้ไม่เหมือนสิ่งมีชีวิตใด ๆ ในธรรมชาติเลย นั่นน่าประทับใจมาก ไม่อยากเห็นอนาคตที่เส้นแบ่งระหว่างหุ่นยนต์กับโลกความจริงพร่าเลือนลง และจนถึงตอนนี้หุ่นยนต์ฮิวแมนนอยด์ก็ยังดูเป็นของประดิษฐ์อยู่ ซึ่งหวังว่าเทรนด์นั้นจะคงอยู่ต่อไป