ภาคสนาม CS

CG_GUI_19

ภูมิหลัง

ในช่วงฤดูร้อนปี 2020 ผมเรียนวิชา CSCI370 หรือ “วิศวกรรมซอฟต์แวร์ขั้นสูง” ซึ่งเป็นส่วนหนึ่งของหลักสูตรปริญญาตรีด้านวิทยาการคอมพิวเตอร์ของผมที่ Colorado School of Mines CSCI370 เป็นรายวิชาที่ให้นักศึกษาออกแบบ พัฒนา และจัดทำเอกสารโซลูชันที่เกี่ยวข้องกับซอฟต์แวร์ให้กับบริษัทหนึ่ง รายวิชานี้เปิดโอกาสให้นักศึกษาได้นำความรู้จากการเรียนมาประยุกต์ใช้กับปัญหาด้านวิทยาการคอมพิวเตอร์ในโลกจริง คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับรายวิชานี้ได้ที่นี่

ในรายวิชานี้ คุณจะได้ตัดสินใจว่าจะทำงานกับโครงการหรือบริษัทใด รายวิชานี้มีไฟล์ PDF ที่อธิบายรายละเอียดของแต่ละโครงการและบริษัทไว้ ท้ายที่สุด ผมตัดสินใจทำงานกับโครงการที่ประกาศโดยบริษัทชื่อ Lunar Outpost ซึ่งเรียกว่า การตรวจจับการลื่นไถลของล้อแบบเรียลไทม์และการแก้ไขข้อผิดพลาดเพื่อการนำทางบนดวงจันทร์ที่มีประสิทธิภาพยิ่งขึ้น เนื่องจากชื่อยาว เรามาตั้งชื่อเรียกโครงการนี้ว่า “การตรวจจับการลื่นไถลของล้อ” กัน

ปัญหา

Lunar Outpost เป็นสตาร์ทอัปที่พยายามสร้างรถสำรวจดวงจันทร์อัตโนมัติ บนดวงจันทร์มีฝุ่นดวงจันทร์อยู่เป็นจำนวนมาก ซึ่งเป็นที่ทราบกันว่าทำให้ล้อเกิดการลื่นไถลเป็นอย่างมาก สิ่งนี้ไม่เหมาะสม เนื่องจากการลื่นไถลของล้ออาจทำให้ระบบอัตโนมัติสูญเสียการติดตามตำแหน่งของตนในโลกจริง บนโลก ปัญหานี้แก้ไขได้โดยใช้ข้อมูล GPS เพื่อแก้ไขค่าคลาดเคลื่อนใด ๆ ที่เกิดจากการลื่นไถลของล้อ แต่ปัญหาของ GPS คือ GPS ทำงานได้โดยอาศัยดาวเทียมนำทางมากกว่า 30 ดวงที่โคจรรอบโลกอย่างต่อเนื่องในวงโคจรและส่งสัญญาณเฉพาะ ซึ่งทำให้คอมพิวเตอร์สามารถคำนวณตำแหน่งของตนเองได้ แต่บนดวงจันทร์ ปัจจุบันยังไม่มีสิ่งที่เรียกว่า GPS เมื่อทราบเช่นนี้ จึงต้องใช้วิธีอื่นนอกเหนือจาก GPS เพื่อตรวจจับการลื่นไถลของล้อ สามารถดูรายงานปัญหาของโครงการโดยละเอียดเพิ่มเติมได้ที่นี่

เพื่อนร่วมทีม

โครงการนี้ไม่ใช่โครงการง่าย ๆ ดังนั้นจึงต้องทำเป็นทีม ทีมประกอบด้วยนักศึกษาคนอื่น ๆ จาก Colorado School of Mines จำนวนห้าคน ได้แก่:

  • Mehmet Yilmaz
  • Kane Bruce
  • Braedon O’Callaghan
  • Liam Dempsey
  • Kevin Grant

โครงการนี้กำหนดให้เราต้องมีความรู้เกี่ยวกับ ROS, C++, Python, Linux, Raspberry Pi และ Arduino พวกเราส่วนใหญ่มีประสบการณ์กับเทคโนโลยีเหล่านี้อย่างน้อยหนึ่งอย่าง แต่ผมเป็นเพียงคนเดียวที่มีประสบการณ์ด้าน ROS เนื่องจากผมเคยใช้ ROS ในวิชา Human Centered Robotics (CSC470) ระหว่างภาคการศึกษาฤดูใบไม้ผลิปี 2020 ด้วยเหตุนี้ ตั้งแต่ช่วงแรก ๆ ผมจึงช่วยให้ทุกคนมีความรู้เกี่ยวกับ ROS และวิธีพัฒนาสำหรับ ROS มากขึ้น

ความท้าทาย

ในโครงการนี้มีความท้าทายมากมาย แต่ความท้าทายที่ใหญ่ที่สุดที่เราเผชิญคือการไม่สามารถเข้าถึงหุ่นยนต์ในโลกจริงเพื่อใช้ทดสอบได้ สาเหตุมาจากโควิดที่ทำให้ทุกอย่างต้องดำเนินการทางไกล และขัดขวางไม่ให้เราทำงานในห้องปฏิบัติการ/อาคารของ Lunar Outpost ด้วยเหตุนี้ เราจึงต้องใช้การจำลอง

นอกจากนี้ เรายังศึกษางานวิจัยทางวิชาการบางส่วนจากห้องปฏิบัติการการนำทาง WVU เพื่อทำความเข้าใจว่าปัญหาการลื่นไถลของล้อจะสามารถแก้ไขได้อย่างไรสำหรับกรณีการใช้งานของ Lunar Outpost ซึ่งสำหรับพวกเราในฐานะนักศึกษาระดับปริญญาตรีชั้นปีที่สองและสามนั้น ยากกว่าที่เราคาดไว้

ความท้าทายอีกประการหนึ่งที่เราเผชิญคือระยะเวลาที่เรามีเพื่อทำงานในโครงการนี้ CSCI370 เป็นรายวิชาที่ใช้เวลาหนึ่งเดือน แต่ตัวปัญหาเองเป็นปัญหาขนาดใหญ่ที่บริษัทและนักวิชาการจำนวนมากพยายามแก้ไข/ทำให้สมบูรณ์แบบมานานหลายทศวรรษ ดังนั้นเวลาหนึ่งเดือนจึงไม่เพียงพออย่างมากสำหรับการแก้ไขปัญหานี้ แต่ถึงแม้จะมีความท้าทายทั้งหมดนี้ เราก็ยังพยายามอย่างเต็มที่และทำให้แน่ใจว่าสามารถส่งมอบผลงานได้

บทสรุป

ในโพสต์นี้ ผมอยากอธิบายโซลูชันของเราให้ละเอียดกว่านี้ รวมถึงนำเสนอบทสรุปที่เหมาะสมซึ่งอธิบายสิ่งที่เราค้นพบและผลลัพธ์สุดท้าย แต่เป็นเรื่องน่าเสียดายที่ผมและเพื่อนร่วมทีมทุกคนได้ลงนามใน ข้อตกลงไม่เปิดเผยข้อมูล (NDA) ซึ่งป้องกันไม่ให้เราแบ่งปันข้อมูลที่เป็นความลับเกี่ยวกับโครงการนี้ ข้อมูลทั้งหมดที่ผมนำเสนอข้างต้นเป็นข้อมูลสาธารณะและสามารถเข้าถึงได้จากอินเทอร์เน็ต

ระหว่างโครงการนี้ เราได้เรียนรู้วิธีใช้ ROS และสร้างการจำลองโดยใช้ ROS และ Gazebo อย่างแท้จริง นอกจากนี้ เรายังมีความเข้าใจที่ดีขึ้นในสาขาการวิจัยด้านการตรวจจับการลื่นไถลของล้อ เรายังได้รับเกียรติให้พบกับนักวิชาการ/นักวิจัยบางส่วนจากห้องปฏิบัติการการนำทาง WVU

เมื่อพิจารณาทั้งหมดนี้แล้ว ผมต้องบอกว่าโครงการนี้เปิดโอกาสให้ผมรับบทบาทผู้นำในทีม ทำหน้าที่เป็นผู้ให้ความรู้เพื่อช่วยให้เพื่อนร่วมทีมเข้าใจ ROS ได้ดียิ่งขึ้น และมอบประสบการณ์เพิ่มเติมให้ผมในด้าน ROS, Gazebo และ Python นอกจากนี้ยังทำให้ผมได้รู้จักกับปัญหาการลื่นไถลของล้อ ซึ่งเป็นปัญหาที่ผมไม่เคยตระหนักถึงมาก่อนจนกระทั่งได้ทำงานในโครงการนี้ โดยรวมแล้ว ผมรู้สึกขอบคุณที่ Lunar Outpost สละเวลาจากตารางงานที่ยุ่งอยู่แล้ว โดยเฉพาะในช่วงโควิด เพื่อเปิดโอกาสให้เราทำงานในโครงการนี้ ผมยังรู้สึกขอบคุณที่มีเพื่อนร่วมทีมที่ยอดเยี่ยมซึ่งทุ่มเททำงานอย่างหนักในโครงการนี้