LeRobot documentation

如何为 🤗 LeRobot 做出贡献

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

如何为 🤗 LeRobot 做出贡献

欢迎所有人参与贡献,我们珍视每一位的贡献。代码并非帮助社区的唯一途径。解答问题、协助他人、主动联系以及改进文档都具有极高的价值。

无论您选择以何种方式做出贡献,请留意遵守我们的行为准则和我们的AI 政策。

参与贡献的方式

您可以通过多种方式做出贡献:

  • 修复问题:解决错误或改进现有代码。
  • 新功能:开发新功能。
  • 扩展:实现新的模型/策略、机器人或仿真环境,并将数据集上传到 Hugging Face Hub。
  • 文档:改进示例、指南和文档字符串。
  • 反馈:提交与 bug 或期望的新功能相关的工单。

正在添加新硬件? 机器人、遥操作设备和相机通常作为独立的插件包运行效果最佳,而不是对核心库进行修改。请遵循 Bring Your Own Hardware,发布你的包,然后提交一个 PR,将其添加到 Third-Party Robots & Teleoperators 或 Third-Party Cameras & Sensors 中。

如果您不确定从哪里开始,请加入我们的 Discord 频道。

开发环境配置

要贡献代码,您需要搭建一个开发环境。

1. Fork 和 Clone

在 GitHub 上 Fork 该仓库,然后克隆你的 Fork:

git clone https://github.com/<your-handle>/lerobot.git
cd lerobot
git remote add upstream https://github.com/huggingface/lerobot.git

2. 环境安装

请按照我们的安装指南进行环境设置和从源代码安装。

运行测试与质量检查

代码风格(Pre-commit)

安装 pre-commit 钩子,以便在提交前自动运行检查:

pre-commit install

要手动对所有文件运行检查:

pre-commit run --all-files

文档字符串

API 参考文档由 src/lerobot/ 中的 docstring 生成。如果您添加或修改任何公开内容,请遵循 docstring 标准——该格式会被渲染器解析,并在 CI 中进行检查。

运行测试

我们使用 pytest。首先,请通过安装 git-lfs 来确保你拥有测试工件:

git lfs install
git lfs pull

运行完整测试套件(可能需要安装额外的依赖项):

pytest -sv ./tests

或在开发过程中运行特定的测试文件:

pytest -sv tests/test_specific_feature.py

Fast Tests CI 针对每个 extra(base、dataset、hardware、viz)各运行一个层级,并通过 pytest 标记来选择每个层级的测试。如果您的测试需要 dataset、hardware 或 viz extra,请为其添加标记(整个文件使用 pytestmark = pytest.mark.dataset,单个测试使用 @pytest.mark.dataset)。未标记的测试仅在 base 层级中运行,在该层级中,需要 extra 的测试会被跳过。要在本地运行某个层级:

pytest -sv tests -m dataset

GPU Tests CI 仅运行标记为 gpu 的测试。tests/policies 下的所有测试以及所有 @require_cuda 测试都会自动获得该标记;对于其他使用 CUDA 的测试,请使用 @pytest.mark.gpu 进行标记。

提交问题与拉取请求

使用模板来填写必填字段和示例。

  • 问题:请遵循工单模板。
  • 拉取请求:在 upstream/main 上变基,使用描述性分支(不要在 main 上工作),在本地运行 pre-commit 和测试,并遵循 PR 模板。

社区评审政策:为了扩大我们的努力并营造协作环境,我们要求贡献者在自己的 PR 获得关注之前,先评审至少一个其他人的开放 PR。这种共同责任会倍增我们的评审能力,并帮助所有人的代码更快被合并!

提交 PR 并完成同行评审后,LeRobot 团队的成员将审核您的贡献。

感谢您为 LeRobot 做出贡献!

Update on GitHub