RoboComp 项目

本页面包含 Google 文档季接受的技术写作项目的详细信息。

项目摘要

开源组织:
RoboComp
技术文档工程师:
Le Thai An
项目名称:
RoboComp 的基本组件
项目时长:
标准时长(3 个月)

Project description

设计初衷

RoboComp 是用于研究和实际应用的知名机器人框架之一。robocomp 代码库包含适用于不同机器人应用(例如电机控制、定位和映射、导航、识别等)的各种组件(在名为 robocomp-robolab 的较小代码库中维护)。不过,组件代码库缺少有关每个组件的编译或使用方式的详细文档,因此新开发者很难使用。此提案旨在通过记录 RoboComp 的关键组件以及编写有关组合不同组件来解决特定机器人任务的示例使用文档,从而解决此问题。下一部分将详细介绍文档流程,然后是里程碑部分,用于规划完成项目的时间范围。最后,介绍一些有关文档流程的说明。

说明

如前所述,此项目有两个主要目标:

  • 针对 RoboComp 中每个组件的文档详细说明、编译和安装、配置、用法和已知问题
  • 编写一个示例指南,说明如何利用 RoboComp 环境中的不同组件来解决特定的 Robotics 任务,例如定位。

robocomp-robolab 仓库中的大多数基本组件目前都缺少有关如何在不同参数配置中进行编译和使用的详细操作说明。这对希望在项目中使用组件或为框架做出贡献的新开发者来说,是一个巨大的障碍。原因在于,许多组件都是具有许多依赖项的外部驱动程序或库的封装容器,这使得编译和安装任务变得困难。此外,许多组件会封装复杂的设备驱动程序(即通用 hokuyoComp),以便在 RoboComp 中提供消息接口,这需要具备设备专用知识才能调整参数。

因此,对于开源贡献,详细文档(包括设备说明、依赖项解析和用法)至关重要。您可以在以下链接中找到我的工作 hokuyoComp 组件文档示例:

https://github.com/anindex/robocomp-robolab/tree/master/components/hokuyoComp

若要使用自上而下的方法编写具体而详细的组件文档,必须至少能够体验文档中编写的内容,因为文档的最终目的是将工作知识传授给继承开发者。每个组件文档的建议结构如下所示:

  • 说明
  • 编译和安装
  • 配置参数
  • 启动组件(用例)
  • 已知问题

在该示例中,首先要收集有关 Hokuyo 传感器规范的信息,然后仔细阅读组件代码,以了解组件功能的概况,以便编写组件说明。其次,了解 RoboComp 环境、设备特定参数以及库依赖项有助于记录组件的编译、安装和配置过程。例如,编译 hokuyoComp 需要 Ubuntu 14.04 中的旧版 liburg0-dev deb 软件包,但该 deb 软件包已从较高版本的 Ubuntu PPA 中移除,因此我们必须按照文档中所述的方法解决编译问题。在此过程中,我们还可以记录已知问题,以便新开发者加快调试速度。最后,记录了不同使用场景的组件用法,以便轻松将组件集成到 RoboComp 环境中,以执行不同的机器人任务。

重大事件

本部分将规划完成项目中提及的目标的初始时间范围。我们将根据类别(例如相机组件、激光组件)选择要编写的组件文档。当前完成组件文档的估计时间基于完成 hokuyoComp 示例文档的时间。时间表如下:

  • 8 月 1 日至 9 月 1 日:社区互动:

    1. 每周召开一次会议,确定项目范围,并传达对作者和导师的预期。
    2. 深入了解 RoboComp 框架。
  • 9 月 2 日至 11 月 2 日:为 robocomp-robolab 代码库中的每个组件编写文档,并通过会议让导师和编写者之间迭代优化(预计完成大多数未记录的文档)

  • 11 月 2 日至 11 月 26 日:编写一般文档,以示例形式说明如何利用不同的组件来解决机器人任务。

  • 11 月 27 日至 11 月 29 日:项目报告结束。

  • 2019 年 GSoD 之后:我想继续与 RoboComp 团队保持联系,以进一步改进和维护我的作品。

最后的备注

请务必编写一个有关如何在 RoboComp 环境中集成不同组件的一般示例,以便用户了解 RoboComp 功能的整体情况。本示例文档将与导师进一步讨论,以便根据 RoboComp 的当前实现情况确定合适的机器人任务。