intrinsic-dev/aic
GitHub: intrinsic-dev/aic
面向机器人精密操作竞赛的官方工具包,提供仿真环境、ROS 2 接口和评测系统,帮助开发者构建线缆插入任务的AI控制策略。
Stars: 231 | Forks: 121
# AI for Industry Challenge 工具包
[](https://github.com/intrinsic-dev/aic/actions/workflows/build.yml)
[](https://github.com/intrinsic-dev/aic/actions/workflows/style.yml)

**AI for Industry Challenge** 是一项面向开发人员和机器人专家的公开竞赛,旨在解决机器人技术和制造业中一些最具挑战性且影响深远的问题。
本代码库包含官方工具包,旨在帮助参赛者着手开发解决方案。有关注册详情、官方规则和常见问题解答,请访问 [AI for Industry Challenge 活动页面](https://www.intrinsic.ai/events/ai-for-industry-challenge)。
## 工具包指南
欢迎使用 AIC 工具包文档。本指南将引导您完成参与挑战的完整工作流程 —— 从理解需求到提交解决方案。
请按照以下章节浏览流程的各个阶段。
1. **📖 理解挑战**
- 阅读 [挑战概述](./docs/overview.md) 以了解目标。
- 查看 [资格赛阶段](./docs/phases.md#qualification-phase-train-your-model) 以了解您将要构建的内容。
- 查看 [评分指南](./docs/scoring.md) 以了解评分方式。
2. **🔧 设置环境**
- 遵循 [入门指南](./docs/getting_started.md) 来设置并验证您的开发环境。
- 运行评估容器并使用 Pixi 设置您的本地工作区。
3. **💻 开发策略**
- 探索 [场景描述](./docs/scene_description.md) 以了解如何自定义和探索环境。
- 查看 [AIC Interfaces](./docs/aic_interfaces.md) 以了解用于与传感器和执行器通信的可用接口。
- 参考 [AIC Controller](./docs/aic_controller.md) 以了解如何控制机器人。
- 参考 [挑战规则](./docs/challenge_rules.md) 以确保合规。
- 从 [策略集成指南](./docs/policy.md) 开始实施您的解决方案。
- 参阅 [参与者实用工具](./docs/participant_utilities.md) 获取实用工具列表。
4. **🧪 测试解决方案**
- 使用提供的模拟环境测试您的策略。
- 使用 [`aic_engine/config/`](./aic_engine/config/) 中的 `sample_config` 运行 `aic_engine` 以测试不同场景。有关使用不同配置运行 `aic_engine` 的更多信息,请参阅 [aic_engine README 文件](./aic_engine/README.md)。
- 按照 [`aic_engine/config/`](./aic_engine/config/) 中的配置示例创建您自己的测试场景,以便与 `aic_engine` 一起运行。
- 如果遇到问题,请参阅 [故障排除](./docs/troubleshooting.md)。
5. **📦 提交作品**
- 按照 [提交指南](./docs/submission.md) 打包您的解决方案。
- 在提交前按照 [这些说明](./docs/submission.md#verify-locally) 在本地测试您的容器。
- 按照 [这些说明](./docs/submission.md#2-upload-your-image-to-our-registry) 通过官方门户提交。
## 工具包架构

AI for Industry Challenge 工具包分为 **两个主要组件**:
### 1. 评估组件(由主办方提供 - 由主办方运行)
该组件提供完整的评估基础设施:
- **`aic_engine`** - 编排试验并计算分数。
- **`aic_bringup`** - 启动模拟环境(Gazebo、机器人、传感器)。
- **`aic_controller`** - 具有力管理的底层机器人控制。
- **`aic_adapter`** - 传感器融合和数据同步。
**您将获得:** 提供摄像头图像、关节状态、力/扭矩测量值和 TF frames 的标准 ROS 传感器主题。
### 2. 参赛模型组件(您的实现 - 您提交的内容)
这是您开发和提交的内容:
- **一个 ROS 2 节点**,遵循 [挑战规则](./docs/challenge_rules.md) 中定义的行为要求。
- **您的自定义逻辑** - 用于处理传感器数据并命令机器人插入线缆的代码。
**您需提供:** 一个包含名为 `aic_model` 的 ROS 2 Lifecycle 节点的容器,该节点响应 `/insert_cable` 动作,并通过标准 ROS topics/services 输出机器人运动命令。
**便捷入口点:** 我们提供了一个 `aic_model` 框架,用于处理所有 ROS 2 样板代码和生命周期管理。您只需实现一个在运行时动态加载的 Python 策略类。有关详细信息,请参阅 [策略集成指南](./docs/policy.md)。
### 开发与提交工作流程
**开发选项:**
- 在容器内开发(推荐 - 与评估环境匹配)。
- 或在原生 Ubuntu 24.04 环境中开发(需要所有依赖项)。
**提交要求:**
- 使用提供的 `aic_model` Dockerfile 打包您的解决方案。
- 提交您的容器 - 它必须响应标准 ROS 输入并命令机器人插入线缆。
- 您的容器通过 ROS topics 与评估组件交互。
## 代码库结构
```
aic/
├── aic_adapter/ # Adapter for interfacing between model and controller
├── aic_assets/ # 3D models and simulation assets
├── aic_bringup/ # Launch files for starting the challenge environment
├── aic_controller/ # Robot controller implementation
├── aic_description/ # Robot and environment URDF/SDF descriptions
├── aic_engine/ # Trial orchestration and validation engine
├── aic_example_policies/ # Example policy implementations
├── aic_gazebo/ # Gazebo-specific plugins and configurations
├── aic_interfaces/ # ROS 2 message, service, and action definitions
├── aic_model/ # Template for participant policy implementation
├── aic_scoring/ # Scoring system implementation
├── aic_utils/ # Utility packages and tools
├── docker/ # Docker container definitions
└── docs/ # Comprehensive documentation
```
## 面向参与者的关键包
### `aic_model` - 便捷策略框架(推荐)
该包提供一个现成的 ROS 2 Lifecycle 节点,可动态加载并执行您的 Python 策略实现。它处理所有 ROS 2 样板代码、生命周期管理和挑战规则合规性,让您专注于实现策略逻辑。
- **位置**: `aic_model/`。
- **文档**: [策略集成指南](./docs/policy.md)。
- **教程**: [创建新策略节点](./docs/policy.md#tutorial-creating-a-new-policy-node)。
### `aic_interfaces` - 通信协议
定义挑战中使用的所有 ROS 2 消息、服务和动作。
- **位置**: `aic_interfaces/`。
- **文档**: [AIC Interfaces](./docs/aic_interfaces.md)。
### `aic_example_policies` - 参考实现
展示不同方法和技术的示例策略。
- **位置**: `aic_example_policies/`。
- **README**: [aic_example_policies/README.md](./aic_example_policies/README.md)。
### `aic_bringup` - 启动环境
用于启动模拟、机器人和评分系统的 Launch 文件。
- **位置**: `aic_bringup/`。
- **README**: [aic_bringup/README.md](./aic_bringup/README.md)。
### `aic_engine` - 试验编排器
管理试验执行、验证参赛模型并收集评分数据。
- **位置**: `aic_engine/`。
- **README**: [aic_engine/README.md](./aic_engine/README.md)。
## 更多文档
### 挑战信息
* **[挑战概述](./docs/overview.md):** 竞赛目标和结构的高层摘要。
* **[竞赛阶段](./docs/phases.md):** 关于资格赛、第一阶段和第二阶段的详情。
* **[资格赛阶段](./docs/qualification_phase.md):** 资格赛阶段试验和评分的详细技术概述。
* **[挑战规则](./docs/challenge_rules.md):** 参赛模型的必需行为。
* **[评分](./docs/scoring.md):** 用于评估性能的指标和方法。
* **[评分测试示例](./docs/scoring_tests.md):** 使用确切命令演练每个评分等级的可复现示例。
### 技术文档
* **[入门指南](./docs/getting_started.md):** 如何设置您的本地开发环境。
* **[策略集成](./docs/policy.md):** 在 `aic_model` 框架中实现策略的指南。
* **[AIC Interfaces](./docs/aic_interfaces.md):** 您的策略可用的 ROS 2 topics、services 和 actions。
* **[AIC Controller](./docs/aic_controller.md):** 了解机器人控制器和运动命令。
* **[场景描述](./docs/scene_description.md):** 模拟环境的技术细节。
* **[任务板描述](./docs/task_board_description.md):** 任务板的物理布局和规格。
* **[故障排除](./docs/troubleshooting.md):** 常见问题和调试策略。
### 参考材料
* **[术语表](./docs/glossary.md):** AI for Industry Challenge 中使用的术语和定义
### 提交
* **[提交指南](./docs/submission.md):** 如何打包并提交您的最终模型。
## 支持与资源
- **讨论**: 在 [Open Robotics Discourse](https://discourse.openrobotics.org/c/competitions/ai-for-industry-challenge/) 上参与对话并询问有关挑战的问题。鼓励社区参与讨论并互相帮助。
- **问题**: 通过 [GitHub Issues](https://github.com/intrinsic-dev/aic/issues) 报告任何错误或技术问题。请勿使用 Issue 追踪器询问有关挑战的一般性问题。
- **注意**: 在提交新工单之前,请查看 [已知问题](https://github.com/intrinsic-dev/aic/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22known%20issue%22) 和 [错误](https://github.com/intrinsic-dev/aic/issues?q=is%3Aissue%20state%3Aopen%20label%3Abug) 列表。
- **活动页面**: 访问 [AI for Industry Challenge](https://www.intrinsic.ai/events/ai-for-industry-challenge) 获取官方更新。
## 许可证
本项目采用 Apache License 2.0 许可 - 详情请参阅各个包文件。
[aic_isaac](./aic_utils/aic_isaac/) 文件夹包含采用 BSD-3 许可的文件 - 请参阅 [aic_isaac/LICENSE](./aic_utils/aic_isaac/LICENSE)。
标签:Intrinsic, Pixi, 人工智能, 仿真环境, 传感器接口, 制造业, 威胁情报, 工业4.0, 工业机器人, 开发者工具, 强化学习, 执行器控制, 挑战赛工具包, 智能制造, 机器人学, 机器人操作系统, 模型训练, 深度学习, 用户模式Hook绕过, 策略开发, 网络调试, 自动化, 解决方案提交, 计算机视觉, 请求拦截, 逆向工具