
Probot Palletizer
– мобильное приложение для управления роботами FANUC, автоматизирующими логистические процессы на складах и производственных линиях. Оно позволяет операторам в реальном времени контролировать сортировку, перемещение коробок и сборку паллет, задавать параметры работы, отслеживать выполнение задач и анализировать производительность робота за выбранные периоды. Визуальный контроль, системные уведомления и быстрый запуск и остановка операций делают работу быстрой и надёжной, а поддержка английского и французского языков – удобной в международной среде
Заказчик
Сфера
Промышленная автоматизация
Регион
Канада
Работаем с
2025
Probot Systems – канадская компания в сфере промышленной автоматизации, которая разрабатывает роботизированные решения на базе роботов FANUC, известных во всём мире своей надёжностью и производительностью. Компания создаёт коллаборативные системы паллетирования для пищевой, фармацевтической и производственной отраслей. Её решения помогают бизнесу оптимизировать производственные линии, сокращать время циклов и справляться с нехваткой персонала
Решение
Мы подключились к проекту, чтобы модернизировать существующее приложение Probot Palletizer на .NET MAUI и .NET 10 и расширить его функциональность в соответствии с новыми требованиями клиента. Страницы, которые не соответствовали утверждённым макетам, были переработаны: устаревшие компоненты заменены, а также разработан набор новых пользовательских UI-элементов, что повысило производительность и улучшило пользовательский опыт.

Раньше приложение было доступно только на Android-планшетах, теперь оно поддерживает и смартфоны. Планшетная версия используется на производстве, а мобильная включает демо-режим с тестовыми данными, который активирован по умолчанию и позволяет клиенту демонстрировать возможности приложения потенциальным заказчикам без подключения к реальному роботу.


Мы провели рефакторинг структуры базы данных, таблиц и моделей и внедрили миграции Entity Framework, благодаря которым больше не нужно переустанавливать приложение после изменений в базе данных. Расчёты схем паллетирования вынесены в отдельный модуль Pallet Layout Engine, независимый от UI и Evergine Framework, а новый механизм генерации изображений визуализирует каждую схему. Мы также устранили утечки памяти в 3D-движке Evergine и вынесли операции, не связанные с UI, из основного потока, благодаря чему приложение стало заметно быстрее и стабильнее.


Для безопасного взаимодействия с роботом мы разработали собственный HTTP-клиент, который поддерживает Wi-Fi и Ethernet и отправляет конфиденциальные запросы исключительно через Ethernet. Специальный бинарный формат файлов передаёт роботу всю информацию, необходимую для сборки многоуровневых паллет по выбранной схеме.
Чтобы помочь операторам быстрее решать проблемы, мы добавили AI-ассистента, доступного через плавающую кнопку: он получает данные от робота и приложения и подсказывает, как устранить ошибки. Также в приложении появились страница статистики с графиками производительности, уведомления о состоянии робота в реальном времени, контроль доступа к функциям с ограниченными правами и интерактивные обучающие материалы на 10 языках с пошаговыми инструкциями и поддержкой преобразования речи в текст.


В результате получилось стабильное, безопасное и высокопроизводительное приложение, которое даёт операторам полный контроль над роботами-паллетайзерами и помогает бизнесу повысить эффективность логистических процессов.
Предоставленные услуги
Предоставленные услуги
2
.Net MAUI Разработчика
1
Backend Разработчик
1
Проектный менеджер
1
UI/UX Дизайнер

Технологии
Мобильная разработка
C#, .NET MAUI
3D и визуализация
Evergine Framework,
LiveChartsCore
Инструменты
CommunityToolkit,
Mopups, Newtonsoft
Архитектура
MVVM, PropertyChanged.Fody
Подключение
Custom HTTP Client

Испытания
Рефакторинг неудачно спроектированной базы данных
В существующей базе данных отсутствовали связи между сущностями и механизм миграций, а модели были жёстко связаны с UI. Любое изменение требовало переустановки приложения, что затрудняло поддержку и дальнейшую разработку
Отделение логики паллетирования от UI
Расчёты схем паллетирования были жёстко привязаны к пользовательскому интерфейсу, что вызывало конфликты в кодовой базе. Их выделение в независимый модуль Pallet Layout Engine потребовало масштабного рефакторинга и преобразования результатов в сущности Evergine Framework
Устранение утечек памяти и повышение производительности
3D-движок Evergine вызывал утечки памяти, а ресурсоёмкие операции, не связанные с UI, выполнялись в основном потоке и замедляли инте рфейс. Решение потребовало детального анализа использования памяти и перестройки модели многопоточности приложения
Передача сложных инструкций роботу
Взаимодействие с роботом требовало передачи больших объёмов данных в бинарном файле со специальной кодировкой, при этом часть необходимых данных изначально отсутствовала в приложении, что повышало риск ошибок при работе робота
Интеграция AI-ассистента с доступом к данным робота
Создание AI-ассистента, помогающего операторам устранять ошибки, потребовало обеспечить ему безопасный доступ к данным робота и приложения, а также гарантировать, что его ответы соответствуют конкретному запросу пользователя и текущему состоянию системы
Наша команда всегда готова помочь и ответить на ваши вопросы
Наше местоположение
Кирова 3, офис 9 · Гродно, Беларусь