โปรเจ็กต์ RoboComp

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

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

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

  • 27-29 พ.ย.: สิ้นสุดรายงานโครงการ

  • หลังจาก GSoD 2019: ฉันต้องการติดต่อกับ RoboComp ต่อไปเพื่อปรับปรุงและบำรุงรักษางานของฉันให้ดียิ่งขึ้น

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

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