RoboComp 项目

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

项目摘要

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

Project description

设计初衷

RoboComp 是用于研究和实际应用的知名机器人框架之一。robocomp 代码库包含适用于不同机器人应用的各种组件(在名为 robocomp-robolab 的小型代码库中进行维护),例如电机控制、本地化和地图、导航、识别等。但是,这些组件的代码库缺少每个组件的编译或使用的详细文档,因此对新开发者的可用性有限。此方案旨在通过记录 RoboComp 的关键组件并编译一个示例用法文档,以组合不同组件来解决特定的机器人任务,从而解决此问题。我们将在下一部分详细介绍文档流程,随后是里程碑部分,用于规划完成项目所需的时间范围。最后,这里还有一些关于文档流程的说明。

说明

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

  • 关于 RoboComp 中每个组件的文档详细信息、编译和安装、配置、用法和已知问题
  • 编写一个示例指南,利用 RoboComp 环境中的不同组件来完成特定的机器人任务,即本地化。

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 年 Google 开发者大会之后:我想继续与 RoboComp 联系,以便进一步改进和维护我的作品。

最后备注

请务必编写一个通用示例,说明如何在 RoboComp 环境中集成不同组件,以便用户全面了解 RoboComp 功能。我们将与导师进一步讨论此示例文档,以根据 RoboComp 的当前实现确定适合的机器人任务。