AI-система автономной горной техники: разработка и внедрение

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1564 услуг
AI-система автономной горной техники: разработка и внедрение
Сложный
от 2 недель до 3 месяцев
Часто задаваемые вопросы

Направления AI-разработки

Этапы разработки AI-решения

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1348
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1247
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    949
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1183
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    642
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    921

Мы разрабатываем AI-системы управления для автономной горнодобывающей техники. Наши решения интегрируются с промышленными платформами — Komatsu AHS, Caterpillar MineStar, Rio Tinto Mine of the Future — и работают в production уже более десяти лет. Autonomous haulage system ML и RL расширяют возможности: адаптация к изменениям рудника, оптимизация загрузки флота и предиктивное обслуживание.

Например, один из наших клиентов — рудник с 40 самосвалами и 6 экскаваторами — после внедрения RL диспетчеризации сократил простой экскаваторов с 15% до 5% (в 3 раза) и снизил расход топлива на 12%. Окупаемость решения составила 8 месяцев. Получите консультацию по внедрению AI-диспетчеризации на вашем руднике.

Как RL оптимизирует диспетчеризацию флота?

Классическая задача: N грузовиков, M экскаваторов и K разгрузочных пунктов. Нужно минимизировать простой экскаватора (ждёт грузовика), пробег порожняком и очереди на разгрузке. Детерминированное расписание не справляется с поломками и изменениями плана — RL адаптируется в real-time.

class MiningFleetEnv(gym.Env):
    def __init__(self, n_trucks, n_shovels, n_dumps):
        self.n_trucks = n_trucks
        self.n_shovels = n_shovels
        self.n_dumps = n_dumps

        # observation: статус каждого грузовика + экскаватора + очереди
        obs_per_truck = 6   # position, load_status, fuel, ETA, queue_wait, is_broken
        obs_per_shovel = 4  # position, dig_rate, queue_length, availability
        obs_per_dump = 3    # position, throughput, queue_length

        self.observation_space = spaces.Box(
            low=0, high=np.inf,
            shape=(n_trucks * obs_per_truck +
                   n_shovels * obs_per_shovel +
                   n_dumps * obs_per_dump,))

        # action: назначить грузовик на точку (экскаватор или разгрузка)
        self.action_space = spaces.MultiDiscrete(
            [n_shovels + n_dumps] * n_trucks
        )

    def step(self, assignments):
        for truck_id, destination in enumerate(assignments):
            self.trucks[truck_id].assign_destination(destination)
        self._simulate_step()
        reward = -(self.shovel_idle_time +
                   0.5 * self.truck_idle_time +
                   0.3 * self.queue_wait_time)
        return self._get_obs(), reward, False, False, self._get_info()
Подробнее об обучении RL

Обучение проводится в симуляторе, построенном на SUMO и кастомном плагине рудника. Используем PPO с clipping и entropy bonus для стабильности. Policy деплоится через Triton Inference Server с latency <10 мс на решение.

Path Planning в сложном рельефе

Горный рудник — динамичная среда: взрывы создают котлованы, осыпи блокируют дороги, влажность меняет проходимость. HD-карта обновляется после каждого взрыва (LiDAR survey → occupancy grid → пересчёт маршрутов). A* на взвешенном графе с учётом уклона обеспечивает проходимость для нагруженных грузовиков.

def mine_astar(start, goal, terrain_map, max_grade=10.0):
    def heuristic(a, b):
        return np.linalg.norm(np.array(a) - np.array(b))
    def slope_cost(current, neighbor):
        dz = terrain_map.elevation[neighbor] - terrain_map.elevation[current]
        dx = terrain_map.cell_size
        grade = abs(dz / dx) * 100
        if grade > max_grade:
            return float('inf')
        return 1.0 + grade * 0.1
    return a_star(start, goal, heuristic, slope_cost)

На сложных участках RL контроллер адаптирует скорость и торможение — обучение в CARLA с кастомным terrain plugin даёт лучшие результаты, чем PID.

Параметр A* на графе RL контроллер
Адаптация к рельефу Пересчёт при изменении карты Онлайн-адаптация
Учёт тяговых характеристик Через вес уклона Reward за проходимость
Время расчёта <100 мс на маршрут <10 мс на шаг
Покрытие редких ситуаций Гарантирован Обучение требуется

Как обеспечивается safety в автономной технике?

Safety-архитектура многоуровневая. Аппаратный failsafe (ASIL-D) гарантирует остановку при потере связи. Virtual barriers через GNSS не позволяют технике покинуть зону. Proximity detection останавливает машину при обнаружении человека в 20 метрах. RL policy работает только в advisory mode — оператор может взять управление в любой момент.

Что даёт предиктивное обслуживание горной техники?

Внеплановая поломка карьерного самосвала → простой 6–24 часа, потери превышают $100K/час. LSTM на 45 датчиках предсказывает отказ за 24 часа с точностью 92%. Autoencoder детектирует аномалии без labelled failure data — это критично, так как размеченных данных мало.

class TruckHealthPredictor(nn.Module):
    def __init__(self, n_sensors=45, hidden_dim=128):
        super().__init__()
        self.lstm = nn.LSTM(n_sensors, hidden_dim, 3, batch_first=True)
        self.head = nn.Sequential(
            nn.Linear(hidden_dim, 64), nn.ReLU(),
            nn.Linear(64, 1), nn.Sigmoid()
        )
    def forward(self, sensor_history):
        out, _ = self.lstm(sensor_history)
        return self.head(out[:, -1, :])
# деплой: threshold 0.7 → alert → плановое ТО на следующей смене

Сравнение подходов к диспетчеризации

Параметр Детерминированное расписание RL диспетчер
Адаптация к поломкам Нет, пересчёт вручную Real-time переназначение
Учёт очередей Статический Динамический (wait time)
Простой экскаватора ~15% времени ~5% времени
Экономия топлива База −12% за счёт оптимизации пробега

Интеграция с MES и Dispatch

Komatsu AHS API и Cat MineStar REST API — получаем статус флота, передаём команды. RL диспетчер работает как microservice. OSIsoft PI / Aspentech Historian хранят телеметрию для обучения. Данные Loadrite и Wenco — для reward расчёта (t/h выработки).

Что входит в нашу работу

  • Аудит существующей техники и инфраструктуры связи (5G Private Network, LTE, mesh radio)
  • Разработка RL policy для fleet management
  • Интеграция с AHS-платформой (Komatsu, Caterpillar) через REST API
  • Предиктивное ТО с LSTM и autoencoder
  • Safety-архитектура: аппаратный failsafe, virtual barriers, proximity detection
  • Тестирование в симуляторе и пилот на 1–2 грузовиках
  • Развёртывание в production с мониторингом (Triton Inference Server, Prometheus)
  • Обучение операторов и техническая поддержка

Почему стоит выбрать нас

Более 5 лет опыта в промышленной робототехнике и AI. Реализовано 12 проектов для открытых и подземных рудников. Сертифицированные инженеры по безопасности (ASIL). Гарантируем снижение простоев флота на 30–50% и окупаемость решения в течение 6–12 месяцев. Свяжитесь с нами для оценки проекта.

Сроки: 24–48 недель

Fleet management RL поверх существующего AHS — 12–16 недель. Предиктивное ТО с IoT интеграцией — 16–20 недель. Полный цикл с path planning и safety-сертификацией — 36–48 недель.

Обучение с подкреплением: PPO, SAC, DQN и промышленное применение

Мы каждый день видим проекты, которые умирают не из‑за слабого алгоритма, а из‑за неправильной награды. Инженер пишет reward = +1 за правильное действие, запускает обучение, а через 10 млн шагов агент находит способ получить максимум, не решив задачу. Это reward hacking — системная боль промышленного RL. Наш опыт показывает: правильный reward занимает 70% успеха.

Почему RL сложнее, чем supervised learning?

В supervised learning есть датасет с правильными ответами. В RL правильного ответа нет — есть скалярный сигнал «лучше/хуже», который приходит с задержкой в сотни шагов. Агент сам исследует пространство и находит стратегию.

Следствия: нестабильность обучения, высокая чувствительность к гиперпараметрам, медленная сходимость. PPO (Proximal Policy Optimization) на Atari сходится за 10 млн шагов — это часы. На роботизированных задачах с реальной физикой — дни или недели в симуляторе.

Выбор алгоритма под задачу:

Задача Алгоритм Причина
Непрерывное управление (роботика, техпроцессы) SAC, TD3 Sample efficiency, стабильность
Дискретные действия, game‑playing PPO, DQN + Rainbow Простота, изучен в индустрии
Multi‑agent MAPPO, QMIX Кооперация/конкуренция
Offline RL (датасет без среды) CQL, IQL, TD3+BC Обучение без среды
RLHF (alignment LLM) PPO, GRPO Интеграция с reward model

Как настроить PPO и избежать типичных проблем?

PPO — рабочая лошадка RL. Основная идея: ограничиваем обновление политики через клиппирование ratio clip_range=0.2. Это даёт стабильность по сравнению с vanilla policy gradient. Но без грамотной настройки агент не сходится.

Одна из частых ловушек — entropy collapse: агент слишком быстро становится детерминированным, перестаёт исследовать. Симптом — entropy coefficient падает до нуля. Лечение — ent_coef=0.01–0.05 и не снижать ниже 0.001. Другая проблема — value function расходится, когда vf_loss_coef высокий, а explained_variance отрицательный. Рекомендуем vf_coef=0.5 и gradient clipping max_grad_norm=0.5.

Неправильный n_steps тоже ломает обучение. n_steps=2048 — дефолт Stable‑Baselines3. Для задач с длинным горизонтом (>500 шагов) нужно увеличивать, для быстрых (10–50 шагов) — уменьшать до 256–512.

Для быстрого старта используем stable‑baselines3 + sb3‑contrib. Для research и кастомных алгоритмов — tianshou или CleanRL.

SAC для непрерывного управления

SAC (Soft Actor‑Critic) добавляет в objective максимизацию энтропии — агент учится быть и эффективным, и разнообразным. Это даёт отличную sample efficiency и устойчивость к шуму в reward.

На задачах управления техпроцессами SAC обычно обходит PPO по сходимости: требуется меньше взаимодействий для того же качества. Ключевой параметр — target_entropy. Стандартное значение ‑dim(action_space) часто подходит, но для специфических задач лучше настраивать вручную.

Как перенести обученного агента на реальное устройство?

Обучать RL на реальном роботе — дорого и опасно. Стандартный подход: обучение в симуляторе → трансфер на реальное железо. Основная проблема — reality gap: симулятор не воспроизводит физику, трение, шум датчиков.

Главный инструмент — domain randomization. Во время обучения случайно варьируем параметры среды: масса объектов ±30%, коэффициент трения ±50%, задержка действий 0–100 мс, шум наблюдений σ=0.01–0.1. Агент обучается быть робастным к вариациям, и реальный мир становится лишь ещё одной вариацией.

Сравнение популярных симуляторов:

Симулятор Особенности Производительность
MuJoCo Стандарт для роботики, физика среднего уровня Один робот — CPU
Isaac Gym / Isaac Lab (NVIDIA) GPU‑accelerated, 10 000+ параллельных сред Высокая (на A100 до 50 000 fps)
PyBullet Бесплатный, удобный для прототипов Низкая, CPU
Gazebo Интеграция с ROS, полный цикл Средняя, CPU+GPU
Кейс: манипулятор для сортировки компонентов на PCB

Использовали Isaac Gym с 4096 параллельными средами на A100, PPO с domain randomization (случайная масса, освещение, позиция камеры). 500 млн шагов — 18 часов. После трансфера на реальный UR5 success rate 78% без дополнительного fine‑tuning. После 2 часов на реальном роботе (10 k шагов) — 94%. Весь process — 3 недели.

RLHF: обучение LLM из человеческой обратной связи

RLHF стал стандартом после InstructGPT. Классическая схема: supervised fine‑tuning → reward model → PPO.

Проблемы классического PPO: нестабильность (KL‑дивергенция может взорваться), медленная сходимость, сложность настройки. Поэтому популярны альтернативы:

  • DPO — обходит reward model, учится на парах предпочтений. Проще, стабильнее, но менее гибкий.
  • GRPO — используется в DeepSeek‑R1, хорош для reasoning tasks.
  • ORPO — объединяет SFT и alignment в одну стадию.

Библиотека trl от Hugging Face — стандарт. Поддерживает PPO, DPO, ORPO, GRPO из коробки, работает с PEFT/LoRA для memory‑efficient fine‑tuning.

«Reward hacking — одна из основных причин провалов в RL, наряду с неправильно выбранной архитектурой среды.» — Wikipedia: Reward hacking

Что входит в работу

  • Архитектурное решение и обоснование выбора алгоритма
  • Разработка и документирование reward‑функции
  • Создание симулятора или настройка существующего
  • Обучение, hyper‑parameter sweep (Optuna / Ray Tune)
  • Трансфер на реальное железо или интеграция в продукт
  • Документация, доступы к коду и симуляторам
  • Обучение команды и 3‑месячная поддержка после деплоя

Процесс работы

  1. Аудит задачи — фиксируем цели, ресурсы, ограничения.
  2. Reward engineering — формализация желаемого поведения, проверка на reward hacking.
  3. Выбор среды и алгоритма — baseline, первые прогоны.
  4. Систематический hyperparameter sweep — используем Optuna.
  5. Обучение в симуляторе с domain randomization.
  6. Тестирование на реальном оборудовании (при необходимости).
  7. Деплой, мониторинг, поддержка.

Сроки: proof of concept — 2–4 недели; production‑система с sim‑to‑real — 3–8 месяцев; RLHF для LLM — 4–10 недель. Стоимость рассчитывается индивидуально — оценим ваш проект за 2 дня. Свяжитесь с нами для консультации.

Наша команда — 5+ лет опыта в RL, 30+ успешных проектов в роботике, оптимизации цепочек поставок и LLM alignment. Гарантируем прозрачную архитектуру и полную техническую документацию. Закажите разработку системы RL — мы поможем обойти типовые ловушки и получить работающую систему в сжатые сроки.