# License Agreement This project (`dsh-nonead-universal-robots`) adopts a **User-Segmented Dual Licensing** model. ## Basic Principles - **Individual users** and **organizations/companies with ≤10 people**: AGPLv3 license applies automatically. - **Organizations/companies with >10 people**: **Commercial license** required. ### Definition of "≤10 people": This refers to situations where the total number of individuals in your organization (including companies, non-profits, government agencies, educational institutions, etc.) who directly or indirectly access, use, or benefit from `dsh-nonead-universal-robots` does not exceed 10. This includes but is not limited to developers, testers, operators, end-users, and users through integrated systems. ## 1. Open Source License (AGPLv3) — For individuals and organizations with ≤10 people If you are an individual user or your organization meets the "≤10 people" definition, you may freely use, modify, and redistribute `dsh-nonead-universal-robots` under AGPLv3 terms. The full AGPLv3 license can be found at [https://www.gnu.org/licenses/agpl-3.0.html](https://www.gnu.org/licenses/agpl-3.0.html). > **Key obligations**: As a core requirement of AGPLv3, you must provide recipients with complete source code under AGPLv3 if you distribute modified versions of `dsh-nonead-universal-robots` or offer it as a network service. Even if your organization meets the "≤10 people" criteria, you should consider a commercial license (see below) if you wish to avoid this source code disclosure requirement. Read and understand all AGPLv3 terms thoroughly before use. ## 2. Commercial License — For organizations with >10 people or users wishing to avoid AGPLv3 obligations - **Mandatory requirement**: If your organization does not meet the "≤10 people" definition (i.e., 11+ people access/use/benefit from the software), you must enter a commercial license agreement with us before using `dsh-nonead-universal-robots`. - **Optional application**: Even if your organization meets the "≤10 people" criteria, a commercial license is required if your usage scenario does not comply with AGPLv3 terms (especially source code disclosure requirements) or if you need specific commercial provisions (such as warranties, indemnification, or absence of Copyleft restrictions) not offered under AGPLv3. Common cases requiring a commercial license (non-exhaustive): - Organizations with >10 people. - (Regardless of size) Distributing modified versions of `dsh-nonead-universal-robots` without disclosing source code as required by AGPLv3. - (Regardless of size) Offering `dsh-nonead-universal-robots` as a network service (SaaS) without providing users access to modified source code. - (Regardless of size) When company policies, customer contracts, or project requirements prohibit use of AGPLv3-licensed software or require closed distribution/confidentiality. **Obtaining a commercial license**: Contact the `dsh-nonead-universal-robots` development team at [service@nonead.com](mailto:service@nonead.com). ## 3. Contributions We welcome community contributions to `dsh-nonead-universal-robots`. All contributions to the project are considered made under the AGPLv3 license. By submitting a contribution (e.g., a Pull Request), you agree that your code will be made available to the project and all future users (regardless of whether they choose AGPLv3 or a commercial license) under AGPLv3 terms. You also agree that your contribution may be included in versions of `dsh-nonead-universal-robots` distributed under a commercial license. ## 4. Other Terms - Specific commercial license terms are established in the formal commercial license agreement. - Project maintainers reserve the right to update this license policy (including user size definitions and thresholds) as needed. Any updates will be announced via the project's official channels (code repository, website, etc.). --- # 许可协议 / License Agreement 本项目(`dsh-nonead-universal-robots`)采用区分用户的双重许可 (User-Segmented Dual Licensing) 模式。 ## 核心原则 - **个人用户** 和 **10人及以下企业/组织**: 默认适用 GNU Affero 通用公共许可证 v3.0 (AGPLv3)。 - **超过10人的企业/组织**: **必须** 获取 **商业许可证** (Commercial License)。 ### 定义:"10人及以下" 指在您的组织(包括公司、非营利组织、政府机构、教育机构等任何实体)中,能够访问、使用或以任何方式直接或间接受益于本软件(`dsh-nonead-universal-robots`)功能的个人总数不超过10人。这包括但不限于开发者、测试人员、运营人员、最终用户、通过集成系统间接使用者等。 ## 1. 开源许可证 (Open Source License): AGPLv3 - 适用于个人及10人及以下组织 如果您是个人用户,或者您的组织满足上述"10人及以下"的定义,您可以在 AGPLv3 的条款下自由使用、修改和分发 `dsh-nonead-universal-robots`。AGPLv3 的完整文本可以访问 [https://www.gnu.org/licenses/agpl-3.0.html](https://www.gnu.org/licenses/agpl-3.0.html) 获取。 > **核心义务**:AGPLv3 的一个关键要求是,如果您修改了 `dsh-nonead-universal-robots` 并通过网络提供服务,或者分发了修改后的版本,您必须以 AGPLv3 许可证向接收者提供相应的完整源代码。即使您符合"10人及以下"的标准,如果您希望避免此源代码公开义务,您也需要考虑获取商业许可证(见下文)。 使用前请务必仔细阅读并理解 AGPLv3 的所有条款。 ## 2. 商业许可证 (Commercial License) - 适用于超过10人的组织,或希望规避 AGPLv3 义务的用户 - **强制要求**:如果您的组织不满足上述"10人及以下"的定义(即有11人或更多人可以访问、使用或受益于本软件),您必须联系我们获取并签署一份商业许可证才能使用 `dsh-nonead-universal-robots`。 - **自愿选择**:即使您的组织满足"10人及以下"的条件,但如果您的使用场景无法满足 AGPLv3 的条款要求(特别是关于源代码公开的义务),或者您需要 AGPLv3 未提供的特定商业条款(如保证、赔偿、无 Copyleft 限制等),您也必须联系我们获取并签署一份商业许可证。 需要商业许可证的常见情况包括(但不限于): - 您的组织规模超过10人。 - (无论组织规模)您希望分发修改过的 `dsh-nonead-universal-robots` 版本,但不希望根据 AGPLv3 公开您修改部分的源代码。 - (无论组织规模)您希望基于修改过的 `dsh-nonead-universal-robots` 提供网络服务(SaaS),但不希望根据 AGPLv3 向服务使用者提供修改后的源代码。 - (无论组织规模)您的公司政策、客户合同或项目要求不允许使用 AGPLv3 许可的软件,或要求闭源分发及保密。 **获取商业许可**:请通过邮箱 [service@nonead.com](mailto:service@nonead.com) 联系 `dsh-nonead-universal-robots` 开发团队洽谈商业授权事宜。 ## 3. 贡献 (Contributions) 我们欢迎社区对 `dsh-nonead-universal-robots` 的贡献。所有向本项目提交的贡献都将被视为在 AGPLv3 许可证下提供。 通过向本项目提交贡献(例如通过 Pull Request),即表示您同意您的代码以 AGPLv3 许可证授权给本项目及所有后续使用者(无论这些使用者最终遵循 AGPLv3 还是商业许可)。 您也理解并同意,您的贡献可能会被包含在根据商业许可证分发的 `dsh-nonead-universal-robots` 版本中。 ## 4. 其他条款 (Other Terms) - 关于商业许可证的具体条款和条件,以双方签署的正式商业许可协议为准。 - 项目维护者保留根据需要更新本许可政策(包括用户规模定义和阈值)的权利。相关更新将通过项目官方渠道(如代码仓库、官方网站)进行通知。 --- ## Third-party notice `python/URBasic` is vendored from the URBasic library and **remains under its own MIT License** (© Anthony Zhuang / Universal Robots, 2009-2025). It is **not** covered by the AGPLv3 / commercial dual license above. See its per-file headers under `python/URBasic/`.