หน้านี้มีรายละเอียดของโครงการการเขียนเชิงเทคนิคที่ยอมรับสำหรับ Google Season of Docs
ข้อมูลสรุปของโปรเจ็กต์
- องค์กรโอเพนซอร์ส:
- RoboComp
- ผู้เขียนด้านเทคนิค:
- เลอ ไทยอัน
- ชื่อโปรเจ็กต์:
- คอมโพเนนต์พื้นฐานของ RoboComp
- ระยะเวลาของโปรเจ็กต์:
- ระยะเวลามาตรฐาน (3 เดือน)
คำอธิบายโปรเจ็กต์
แรงจูงใจ
RoboComp เป็นหนึ่งในเฟรมเวิร์กหุ่นยนต์ที่รู้จักกันดีสำหรับการวิจัยและการใช้งานจริง ที่เก็บ robocomp มีคอมโพเนนต์ที่หลากหลาย (เก็บอยู่ในที่เก็บขนาดเล็กที่ชื่อ robocomp-robolab) สำหรับแอปพลิเคชันหุ่นยนต์ต่างๆ เช่น การควบคุมการเคลื่อนไหว การแปลและการแมป การนำทาง การจดจำ ฯลฯ แต่ที่เก็บของคอมโพเนนต์ขาดเอกสารรายละเอียดสำหรับการคอมไพล์หรือการใช้งานคอมโพเนนต์แต่ละรายการ ส่งผลให้ความสามารถในการใช้งานที่จำกัดสำหรับนักพัฒนาซอฟต์แวร์ใหม่ ข้อเสนอนี้มีเป้าหมายที่จะแก้ไขปัญหานี้ด้วยการบันทึกองค์ประกอบที่สำคัญของ RoboComp และรวบรวมตัวอย่างเอกสารการใช้งานสำหรับการรวมองค์ประกอบต่างๆ เพื่อช่วยแก้ปัญหางานหุ่นยนต์ที่เฉพาะเจาะจง เราจะอธิบายรายละเอียดของกระบวนการจัดทำเอกสารประกอบในส่วนถัดไป แล้วตามด้วยส่วนเป้าหมายสำหรับการวางแผนกรอบเวลาในการดำเนินการให้เสร็จสมบูรณ์ สุดท้ายนี้ จะมีการกล่าวถึงหมายเหตุบางอย่างเกี่ยวกับกระบวนการจัดทำเอกสาร
คำอธิบาย
ดังที่ได้กล่าวไว้ โครงการนี้มีเป้าหมายหลัก 2 ประการ ได้แก่
- คำอธิบายรายละเอียดเอกสาร การรวบรวมและการติดตั้ง การกำหนดค่า การใช้งาน และปัญหาที่ทราบเกี่ยวกับองค์ประกอบแต่ละรายการใน RoboComp
- เขียนคู่มือตัวอย่างที่ใช้คอมโพเนนต์ต่างๆ ในสภาพแวดล้อม RoboComp เพื่อแก้ปัญหางานหุ่นยนต์ที่เฉพาะเจาะจง เช่น การแปล
ขณะนี้คอมโพเนนต์พื้นฐานส่วนใหญ่ในที่เก็บ robocomp-robolab ไม่มีคำแนะนำโดยละเอียดเกี่ยวกับวิธีคอมไพล์และวิธีใช้งานในการกำหนดค่าพารามิเตอร์ที่แตกต่างกัน ซึ่งสร้างอุปสรรคสำคัญสำหรับนักพัฒนาซอฟต์แวร์ใหม่ที่ต้องการใช้คอมโพเนนต์ในโปรเจ็กต์หรือมีส่วนร่วมในเฟรมเวิร์ก เหตุผลคือ คอมโพเนนต์จำนวนมากเป็น Wrapper ของไดรเวอร์หรือไลบรารีภายนอกที่มีทรัพยากร Dependency หลายรายการ ซึ่งทำให้การคอมไพล์และติดตั้งทำได้ยาก นอกจากนี้ คอมโพเนนต์จำนวนมากยังรวมไดรเวอร์อุปกรณ์ที่ซับซ้อน (กล่าวคือ hokuyoComp ทั่วไป) เพื่อให้บริการอินเทอร์เฟซข้อความใน RoboComp ซึ่งต้องใช้ความรู้เฉพาะของอุปกรณ์ในการปรับแต่งพารามิเตอร์
ดังนั้น ความต้องการเอกสารรายละเอียดที่ครอบคลุมรายละเอียดของอุปกรณ์ การแก้ไขทรัพยากร Dependency และการใช้งาน จึงจำเป็นต่อการสนับสนุนแบบโอเพนซอร์ส ดูตัวอย่างเอกสารคอมโพเนนต์ hokuyoComp ที่ทำงานของฉันได้ในลิงก์
https://github.com/anindex/robocomp-robolab/tree/master/components/hokuyoComp
หากต้องการเขียนเอกสารประกอบเกี่ยวกับส่วนประกอบที่เป็นรูปธรรมและส่วนประกอบรายละเอียดโดยใช้วิธีการจากด้านบน อย่างน้อยผู้เข้าร่วมต้องสามารถสัมผัสกับเนื้อหาที่เขียนในเอกสารนั้นได้ เนื่องจากจุดประสงค์สุดท้ายของเอกสารประกอบคือการโอนความรู้จากการทำงานให้แก่นักพัฒนาซอฟต์แวร์ที่รับช่วงมา โครงสร้างที่เสนอสำหรับเอกสารคอมโพเนนต์แต่ละรายการมีดังนี้
- คำอธิบาย
- การรวบรวมและการติดตั้ง
- พารามิเตอร์การกําหนดค่า
- การเริ่มคอมโพเนนต์ (การใช้งาน)
- ปัญหาที่ทราบ
ในตัวอย่างนี้ ตอนแรกรวบรวมข้อมูลเกี่ยวกับข้อมูลจำเพาะของเซ็นเซอร์ Hokuyo อ่านโค้ดคอมโพเนนต์เพื่อทำความเข้าใจภาพของฟังก์ชันการทำงานของคอมโพเนนต์เพื่อเขียนคำอธิบายคอมโพเนนต์ ถัดมา การทำความเข้าใจสภาพแวดล้อม RoboComp และความรู้เกี่ยวกับพารามิเตอร์เฉพาะของอุปกรณ์ ตลอดจนทรัพยากร Dependency ของไลบรารีจะช่วยบันทึกกระบวนการคอมไพล์ การติดตั้ง และการกำหนดค่าคอมโพเนนต์ได้ ตัวอย่างเช่น การคอมไพล์ hokuyoComp ต้องการแพ็กเกจ liburg0-dev deb เก่าจาก Ubuntu 14.04 แต่แพ็คเกจ deb ถูกนำออกจาก Ubuntu PPA ในเวอร์ชันที่ใหม่กว่า ดังนั้นเราต้องทำการหลีกเลี่ยงปัญหาสำหรับการคอมไพล์ตามที่ระบุไว้ในเอกสาร ในขั้นตอนนี้ เราสามารถบันทึกปัญหาที่ทราบเพื่อเพิ่มความเร็วในการแก้ไขข้อบกพร่องของนักพัฒนาซอฟต์แวร์รายใหม่ สุดท้าย การใช้งานคอมโพเนนต์ในสถานการณ์การใช้งานต่างๆ จะได้รับการบันทึกไว้เพื่อให้นำไปผสานรวมคอมโพเนนต์เข้ากับสภาพแวดล้อม RoboComp สำหรับงานหุ่นยนต์ต่างๆ ได้อย่างง่ายดาย
เหตุการณ์สำคัญ
ส่วนนี้วางแผนกรอบเวลาเริ่มต้นสำหรับการบรรลุเป้าหมายที่กล่าวถึงของโปรเจ็กต์ เราจะเลือกเอกสารสำหรับคอมโพเนนต์ที่จะเขียนตามหมวดหมู่ (เช่น คอมโพเนนต์กล้อง คอมโพเนนต์ของเลเซอร์) เวลาโดยประมาณในปัจจุบันสำหรับการจัดทำเอกสารคอมโพเนนต์เสร็จแล้วอิงตามเวลาที่กรอกตัวอย่างเอกสาร hokuyoComp ตารางเวลามีดังนี้
1 ส.ค. - 1 ก.ย.: การสร้างสัมพันธ์กับชุมชน:
- จัดการประชุมรายสัปดาห์เพื่อกำหนดขอบเขตของโครงการและ ความคาดหวังจากทั้งนักเขียนและที่ปรึกษา
- ทำความเข้าใจเกี่ยวกับเฟรมเวิร์ก RoboComp อย่างลึกซึ้ง
2 ก.ย. - 2 พ.ย.: การเขียนเอกสารสำหรับแต่ละองค์ประกอบในที่เก็บ robocomp-robolab โดยมีการปรับเกณฑ์การค้นหาอย่างสม่ำเสมอระหว่าง Mentor และผู้เขียนผ่านการประชุม (คาดว่าจะดำเนินการกับเอกสารที่ไม่ได้มีการบันทึกไว้เกือบทั้งหมด)
2 - 26 พ.ย.: การเขียนเอกสารทั่วไปเป็นตัวอย่างการใช้องค์ประกอบต่างๆ เพื่อแก้โจทย์หุ่นยนต์
27-29 พ.ย.: สิ้นสุดรายงานโครงการ
หลังจาก GSoD 2019: ฉันต้องการติดต่อกับ RoboComp ต่อไปเพื่อปรับปรุงและบำรุงรักษางานของฉันให้ดียิ่งขึ้น
หมายเหตุสุดท้าย
เราจำเป็นต้องเขียนตัวอย่างทั่วไปเกี่ยวกับวิธีผสานรวมคอมโพเนนต์ต่างๆ ในสภาพแวดล้อม RoboComp เพื่อให้ผู้ใช้เข้าใจภาพรวมของฟังก์ชันของ RoboComp เอกสารตัวอย่างนี้จะมีการหารือกับที่ปรึกษาเพิ่มเติมเพื่อตัดสินใจว่างานหุ่นยนต์แบบใดที่เหมาะสม โดยขึ้นอยู่กับการนำ RoboComp ไปใช้งานในปัจจุบัน