The AI for Industry Challenge is an open competition for developers and roboticists aimed at solving some of the hardest, high-impact problems in robotics and manufacturing.
This repository contains the official toolkit to help participants start developing their solutions. For registration details, official rules, and FAQs, please visit the AI for Industry Challenge event page.
Welcome to the AIC toolkit documentation. This guide walks you through the complete workflow for participating in the challenge β from understanding the requirements to submitting your solution.
Follow the sections below to navigate through each phase of the process.
-
π Understand the Challenge
- Read the Challenge Overview to understand the goals.
- Review the Qualification Phase to understand what you'll be building.
- Review the Scoring Guide to understand how you'll be scored.
-
π§ Set Up Your Environment
- Follow the Getting Started guide to set up and validate your development environment.
- Run the evaluation container and set up your local workspace with Pixi.
-
π» Develop Your Policy
- Explore the Scene Description to learn how to customize and explore the environment.
- Review AIC Interfaces to understand available interfaces to communicate with sensors and actuators.
- Consult AIC Controller to learn about controlling the robot.
- Consult the Challenge Rules to ensure compliance.
- Start with the Policy Integration Guide to implement your solution.
- See Participant Utilities for a list of helpful tools.
-
π§ͺ Test Your Solution
- Use the provided simulation environment to test your policy.
- Run
aic_enginewith thesample_configinaic_engine/config/to test different scenarios. For more information on running theaic_enginewith different configs, see the aic_engine README file. - Create your own test scenarios by following the configuration example in
aic_engine/config/to run withaic_engine. - Refer to Troubleshooting if you encounter issues.
-
π¦ Submit Your Entry
- Package your solution following the Submission Guidelines.
- Test your container locally before submitting following these instructions.
- Submit through the official portal following these instructions.
The AI for Industry Challenge toolkit is divided into two main components:
This component provides the complete evaluation infrastructure:
aic_engine- Orchestrates trials and computes scores.aic_bringup- Launches simulation environment (Gazebo, robot, sensors).aic_controller- Low-level robot control with force management.aic_adapter- Sensor fusion and data synchronization.
What you receive: Standard ROS sensor topics providing camera images, joint states, force/torque measurements, and TF frames.
This is what you develop and submit:
- A ROS 2 node that follows the behavioral requirements defined in Challenge Rules.
- Your custom logic - Code to process sensor data and command the robot to insert cables.
What you provide: A container with a ROS 2 Lifecycle node named aic_model that responds to the /insert_cable action and outputs robot motion commands via standard ROS topics/services.
Convenient Entry Point: We provide an aic_model framework that handles all the ROS 2 boilerplate and lifecycle management. You simply implement a Python policy class that gets dynamically loaded at runtime. See the Policy Integration Guide for details.
Important
ROS 2 Distribution: The official evaluation of all submissions will be conducted using ROS 2 Kilted Kaiju. If you choose to develop or test your policy using a different ROS 2 distribution (e.g., Humble or Jazzy), it is entirely your responsibility to ensure compatibility and support. Please note that inter-distro communication is not guaranteed and not officially supported.
Development Options:
- Develop inside a container (recommended - matches evaluation environment).
- OR develop in native Ubuntu 24.04 environment (requires all dependencies).
Submission Requirements:
- Package your solution using the provided
aic_modelDockerfile. - Submit your container - it must respond to standard ROS inputs and command the robot to insert cables.
- Your container interfaces with the evaluation component via 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
This package provides a ready-to-use ROS 2 Lifecycle node that dynamically loads and executes your Python policy implementation. It handles all ROS 2 boilerplate, lifecycle management, and challenge rule compliance, allowing you to focus on implementing your policy logic.
- Location:
aic_model/. - Documentation: Policy Integration Guide.
- Tutorial: Creating a New Policy Node.
Note: While we recommend using this framework, you may implement your own ROS 2 node from scratch as long as it adheres to the Challenge Rules.
Defines all ROS 2 messages, services, and actions used in the challenge.
- Location:
aic_interfaces/. - Documentation: AIC Interfaces.
Example policies demonstrating different approaches and techniques.
- Location:
aic_example_policies/. - README: aic_example_policies/README.md.
Launch files to start the simulation, robot, and scoring systems.
- Location:
aic_bringup/. - README: aic_bringup/README.md.
Manages trial execution, validates participant models, and collects scoring data.
- Location:
aic_engine/. - README: aic_engine/README.md.
- Challenge Overview: High-level summary of the competition goals and structure.
- Competition Phases: Details on Qualification, Phase 1, and Phase 2.
- Qualification Phase: Detailed technical overview of the qualification phase trials and scoring.
- Challenge Rules: Required behavior for participant models.
- Scoring: Metrics and methods used to evaluate performance.
- Scoring Test Examples: Reproducible examples exercising each scoring tier with exact commands.
- Getting Started: How to set up your local development environment.
- Policy Integration: Guide to implementing your policy in the
aic_modelframework. - AIC Interfaces: ROS 2 topics, services, and actions available to your policy.
- AIC Controller: Understanding the robot controller and motion commands.
- Scene Description: Technical details of the simulation environment.
- Task Board Description: Physical layout and specifications of the task board.
- Troubleshooting: Common issues and debugging strategies.
- Glossary: Terminology and definitions used throughout the AI for Industry Challenge
- Submission Guidelines: How to package and submit your final model.
- Discussions: Engage in conversations and ask questions about the challenge on Open Robotics Discourse. The community is encouraged to participate in discussions and assist each other.
- Issues: Report any bugs or technical issues via GitHub Issues. Please refrain from using the Issue tracker for general questions about the challenge.
- Note:: Review the list of known issues and bugs before opening a new ticket.
- Event Page: Visit the AI for Industry Challenge for official updates.
This project is licensed under the Apache License 2.0 - see the individual package files for details. The aic_isaac folder contains files licensed under BSD-3 - see aic_isaac/LICENSE.

