Skip to content

intrinsic-dev/aic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

436 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AI for Industry Challenge Toolkit

build style

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.


Toolkit Guide

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.

  1. πŸ“– Understand the Challenge

  2. πŸ”§ 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.
  3. πŸ’» Develop Your Policy

  4. πŸ§ͺ Test Your Solution

    • Use the provided simulation environment to test your policy.
    • Run aic_engine with the sample_config in aic_engine/config/ to test different scenarios. For more information on running the aic_engine with different configs, see the aic_engine README file.
    • Create your own test scenarios by following the configuration example in aic_engine/config/ to run with aic_engine.
    • Refer to Troubleshooting if you encounter issues.
  5. πŸ“¦ Submit Your Entry


Toolkit Architecture

AIC Competition Components

The AI for Industry Challenge toolkit is divided into two main components:

1. Evaluation Component (Provided - Run by Organizers)

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.

2. Participant Model Component (Your Implementation - What You Submit)

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.

Development and Submission Workflow

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_model Dockerfile.
  • 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.

Repository Structure

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

Key Packages for Participants

aic_model - Convenient Policy Framework (Recommended)

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.

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.

aic_interfaces - Communication Protocols

Defines all ROS 2 messages, services, and actions used in the challenge.

aic_example_policies - Reference Implementations

Example policies demonstrating different approaches and techniques.

aic_bringup - Launch the Environment

Launch files to start the simulation, robot, and scoring systems.

aic_engine - Trial Orchestrator

Manages trial execution, validates participant models, and collects scoring data.


Additional Documentation

Challenge Information

Technical Documentation

Reference Materials

  • Glossary: Terminology and definitions used throughout the AI for Industry Challenge

Submission


Support and Resources

  • 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.
  • Event Page: Visit the AI for Industry Challenge for official updates.

License

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.

About

Toolkit for the AI for Industry Challenge

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors