Bridge software connecting Multipack optimization software with Universal Robots palletizing systems
MultipackParser is a bridge application that connects Multipack (commercial palette optimization software from Multiscience GmbH) with custom palletizing applications running on Universal Robots (UR10/UR20).
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β Multipack β ββββΊ β MultipackParser β ββββΊ β UR Robot β
β (Optimization) β CSV β (This App) β RPC β (Palletizing) β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
- Multipack generates optimized palette plans (
.robfiles) based on box/palette dimensions - MultipackParser reads and parses these files, providing a GUI for management
- UR Robot queries palette data via XML-RPC to execute the palletizing program
| Feature | Description |
|---|---|
| π¦ Pallet Management | Load, visualize, and manage pallet configurations with 3D preview |
| π€ Robot Communication | Real-time XML-RPC communication with UR10/UR20 robots |
| ποΈ Database Storage | SQLite database for persistent pallet data storage |
| π Status Monitoring | Live monitoring of robot mode, safety status, and scanners |
| π Security | Password-protected settings and operations |
| π Audio Feedback | Configurable audio notifications for system events |
- Python 3.12+
- Linux (optimized for Raspberry Pi)
- Multipack software for generating palette plans
# Clone the repository
curl -O https://github.com/Snupai/MultipackParser/releases/latest/MultipackParser
# Make binary executable
sudo chmod +x MultipackParser
# Run the application
./MultipackParser./MultipackParser --version # Display version
./MultipackParser --license # Display license
./MultipackParser --verbose # Enable debug logging
./MultipackParser --no-virtual-keyboard # Disables the virutal keyboardImportant
Robot-Side Components Required: This application requires a UR Program and URscript code running on the Universal Robot controller. These components are not included in this repository and must be obtained separately.
Comprehensive documentation is available in the docs/ directory:
| Document | Description |
|---|---|
| Documentation Index | Overview and navigation hub |
| Installation Guide | Detailed setup instructions |
| User Guide | Complete user manual |
| Architecture | Technical documentation for developers |
| API Reference | XML-RPC API function reference |
- Python 3.13+
- pip / uv package manager
- Qt Designer (optional, for UI modifications)
- Docker (optional, for ARM64 builds)
# Clone and install
git clone https://github.com/Snupai/MultipackParser.git
cd MultipackParser
pip install -r requirements.txt
# Run in development mode
python main.py --verbose# Open Qt Designer for UI editing
pyside6-designer ui_files/MainWindow.ui
# Convert .ui files to Python
pyside6-uic ui_files/MainWindow.ui -o ui_files/ui_main_window.py
# Convert resource files
pyside6-rcc ui_files/MainWindowResources.qrc -o ui_files/MainWindowResources_rc.pyWarning
After running pyside6-uic, change the import from import MainWindowResources_rc to from . import MainWindowResources_rc
# Build ARM64 binary (requires Docker)
python build.pyThe resulting binary will be placed in the local_dist directory. The binary is compatible with ARM64 architecture (Raspberry Pi).
MultipackParser/
βββ main.py # Application entry point
βββ build.py # Build script for ARM64 binary
βββ requirements.txt # Python dependencies
βββ ui_files/ # Qt UI files and resources
βββ utils/ # Core application modules
β βββ audio/ # Audio notifications
β βββ database/ # SQLite database operations
β βββ message/ # Message and status management
β βββ robot/ # Robot control and monitoring
β βββ server/ # XML-RPC server implementation
β βββ system/ # Core system utilities
β βββ ui/ # UI setup and helpers
βββ docs/ # Documentation
βββ logs/ # Application logs (auto-generated)
| Component | Requirement |
|---|---|
| Python | 3.12 or higher |
| OS | Linux (Raspberry Pi) |
| RAM | 512MB minimum, 1GB recommended |
| Storage | 300MB free space |
| Robot | Universal Robots UR10 or UR20 |
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
Copyright (C) 2025 Yann-Luca NΓ€her
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Contributions are welcome! Please read the Architecture Documentation to understand the codebase structure before submitting pull requests.