โปรเจ็กต์ RoboComp

หน้านี้มีรายละเอียดของโปรเจ็กต์การเขียนเชิงเทคนิคที่ได้รับการยอมรับสำหรับ 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 ก.ย.: กิจกรรมสานสัมพันธ์ในชุมชน

    1. จัดการประชุมรายสัปดาห์เพื่อสร้างขอบเขตของโปรเจ็กต์ รวมถึงความคาดหวังจากทั้งผู้เขียนและที่ปรึกษา
    2. ทําความเข้าใจเฟรมเวิร์ก RoboComp อย่างละเอียด
  • 2 ก.ย. - 2 พ.ย.: เขียนเอกสารสำหรับคอมโพเนนต์แต่ละรายการในรีโพซิทอรี robocomp-robolab โดยมีการปรับปรุงซ้ำๆ ระหว่างที่ปรึกษาและผู้เขียนผ่านการประชุม (คาดว่าจะเขียนเอกสารส่วนใหญ่ที่ไม่มีเอกสารประกอบให้เสร็จสมบูรณ์)

  • 2-26 พ.ย.: เขียนเอกสารทั่วไปเพื่อเป็นตัวอย่างในการใช้คอมโพเนนต์ต่างๆ เพื่อแก้ปัญหาเกี่ยวกับหุ่นยนต์

  • 27-29 พ.ย.: สิ้นสุดรายงานโปรเจ็กต์

  • หลังจาก GSoD 2019: ฉันต้องการติดต่อกับ RoboComp ต่อไปเพื่อปรับปรุงและดูแลผลงานของฉัน

หมายเหตุสุดท้าย

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