Skip to content

Snupai/MultipackParser

Repository files navigation

MultipackParser

πŸ€– MultipackParser

Bridge software connecting Multipack optimization software with Universal Robots palletizing systems

Build Binary GitHub release (with filter) Image Python 3.13+ PySide6

Overview

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).

How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Multipack     β”‚ ───► β”‚  MultipackParser β”‚ ───► β”‚   UR Robot      β”‚
β”‚ (Optimization)  β”‚ CSV  β”‚   (This App)     β”‚ RPC  β”‚ (Palletizing)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  1. Multipack generates optimized palette plans (.rob files) based on box/palette dimensions
  2. MultipackParser reads and parses these files, providing a GUI for management
  3. UR Robot queries palette data via XML-RPC to execute the palletizing program

Key Features

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

Quick Start

Requirements

  • Python 3.12+
  • Linux (optimized for Raspberry Pi)
  • Multipack software for generating palette plans

Installation

# Clone the repository
curl -O https://github.com/Snupai/MultipackParser/releases/latest/MultipackParser 

# Make binary executable
sudo chmod +x MultipackParser

# Run the application
./MultipackParser

Command Line Options

./MultipackParser --version    # Display version
./MultipackParser --license    # Display license
./MultipackParser --verbose    # Enable debug logging
./MultipackParser --no-virtual-keyboard # Disables the virutal keyboard

Important

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.

Documentation

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

Development

Prerequisites

  • Python 3.13+
  • pip / uv package manager
  • Qt Designer (optional, for UI modifications)
  • Docker (optional, for ARM64 builds)

Setting Up Development Environment

# 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

UI Development

# 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.py

Warning

After running pyside6-uic, change the import from import MainWindowResources_rc to from . import MainWindowResources_rc

Building for Production

# Build ARM64 binary (requires Docker)
python build.py

The resulting binary will be placed in the local_dist directory. The binary is compatible with ARM64 architecture (Raspberry Pi).

Project Structure

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)

System Requirements

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

License

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.

Contributing

Contributions are welcome! Please read the Architecture Documentation to understand the codebase structure before submitting pull requests.


Built with ❀️ for industrial automation

About

MultipackParser HMI Application running on Raspberry Pi x11

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6

Languages