LeRobot documentation

如何为 🤗 LeRobot 做出贡献

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
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