หน้านี้มีรายละเอียดของโปรเจ็กต์การเขียนเชิงเทคนิคที่ได้รับการยอมรับสำหรับ Google Season of Docs
สรุปโปรเจ็กต์
- องค์กรโอเพนซอร์ส
- RoboComp
- นักเขียนเชิงเทคนิค:
- Le Thai An
- ชื่อโปรเจ็กต์:
- คอมโพเนนต์พื้นฐานของ 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 และความรู้เกี่ยวกับพารามิเตอร์เฉพาะอุปกรณ์ รวมถึงไลบรารีที่ต้องพึ่งพาจะช่วยในการบันทึกกระบวนการคอมไพล์ การติดตั้ง และการกำหนดค่าคอมโพเนนต์ ตัวอย่างเช่น การคอมไพล์ hokuyoComp ต้องใช้แพ็กเกจ deb ของ liburg0-dev เวอร์ชันเก่าจาก Ubuntu 14.04 แต่แพ็กเกจ deb ถูกนำออกจาก PPA ของ Ubuntu ในเวอร์ชันที่ใหม่กว่า เราจึงต้องหาวิธีแก้ปัญหาสำหรับการคอมไพล์ตามที่ระบุไว้ในเอกสาร ในกระบวนการนี้ เรายังบันทึกปัญหาที่ทราบเพื่อเร่งการแก้ไขข้อบกพร่องสำหรับนักพัฒนาแอปรายใหม่ๆ ได้ด้วย สุดท้าย มีการบันทึกการใช้งานคอมโพเนนต์สำหรับสถานการณ์การใช้งานต่างๆ เพื่อให้ผสานรวมคอมโพเนนต์เข้ากับภาพรวม RoboComp สำหรับงานหุ่นยนต์ต่างๆ ได้อย่างง่ายดาย
เป้าหมาย
ส่วนนี้จะวางแผนกรอบเวลาเริ่มต้นเพื่อให้บรรลุเป้าหมายที่กล่าวถึงของโปรเจ็กต์ เราจะเลือกเอกสารคอมโพเนนต์ที่จะเขียนตามหมวดหมู่ (เช่น คอมโพเนนต์กล้อง คอมโพเนนต์เลเซอร์) เวลาโดยประมาณในการจัดทำเอกสารองค์ประกอบในปัจจุบันตามเวลาที่เสร็จสมบูรณ์ในตัวอย่างเอกสาร hokuyoComp ตารางเวลามีดังนี้
1 ส.ค. - 1 ก.ย.: กิจกรรมสานสัมพันธ์ในชุมชน
- จัดการประชุมรายสัปดาห์เพื่อสร้างขอบเขตของโปรเจ็กต์ รวมถึงความคาดหวังจากทั้งผู้เขียนและที่ปรึกษา
- ทําความเข้าใจเฟรมเวิร์ก RoboComp อย่างละเอียด
2 ก.ย. - 2 พ.ย.: เขียนเอกสารสำหรับคอมโพเนนต์แต่ละรายการในรีโพซิทอรี robocomp-robolab โดยมีการปรับปรุงซ้ำๆ ระหว่างที่ปรึกษาและผู้เขียนผ่านการประชุม (คาดว่าจะเขียนเอกสารส่วนใหญ่ที่ไม่มีเอกสารประกอบให้เสร็จสมบูรณ์)
2-26 พ.ย.: เขียนเอกสารทั่วไปเพื่อเป็นตัวอย่างในการใช้คอมโพเนนต์ต่างๆ เพื่อแก้ปัญหาเกี่ยวกับหุ่นยนต์
27-29 พ.ย.: สิ้นสุดรายงานโปรเจ็กต์
หลังจาก GSoD 2019: ฉันต้องการติดต่อกับ RoboComp ต่อไปเพื่อปรับปรุงและดูแลผลงานของฉัน
หมายเหตุสุดท้าย
คุณต้องเขียนตัวอย่างทั่วไปเกี่ยวกับวิธีผสานรวมคอมโพเนนต์ต่างๆ ในสภาพแวดล้อม RoboComp เพื่อให้ผู้ใช้เข้าใจภาพรวมของฟังก์ชันการทำงานของ RoboComp เราจะหารือเพิ่มเติมในเอกสารตัวอย่างนี้กับที่ปรึกษา เพื่อตัดสินใจว่างานด้านหุ่นยนต์แบบใดที่เหมาะสม โดยขึ้นอยู่กับการติดตั้งใช้งาน RoboComp ในปัจจุบัน