Skip to content

Latest commit

Β 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎨 Multirobot Control System for Automated Part Painting

Distributed multi-robot painting line with real-time monitoring

A unified precision-painting platform that coordinates two collaborative painting arms, one industrial pick-and-place robot, and a conveyor line under a single automated cycle β€” combining PLC-grade industrial reliability with a MATLAB-based supervisory layer.

MATLAB Simulink TIA Portal PLC License: MIT Status


Industrial painting line β€” paint, dry, pick-and-place

πŸ“– Overview

This repository contains the engineering work, control software, simulation models, and design documentation for a distributed multirobot control system with real-time monitoring for an automated industrial painting line, developed as a graduation (diploma) project at the Kazakh-British Technical University (KBTU).

The system automates the full technological cycle of part finishing β€” workpiece transport β†’ simultaneous spray painting β†’ drying β†’ pick-and-place handling β€” and synchronizes three heterogeneous robots and a conveyor within one production cycle. The process is modeled on a real automotive painting line at Hyundai Trans Kazakhstan and realized at laboratory scale, while the software is built to industrial standards for future scale-up.

The core engineering idea is a hybrid PLC + MATLAB architecture: the Siemens S7-1500 PLC handles deterministic sequencing, safety interlocks, and field-device I/O, while a MATLAB supervisory layer handles high-level trajectory generation, multi-robot coordination, and real-time telemetry.

πŸ“„ This work is based on the graduation thesis "Development of a multirobot control system for painting parts with real-time monitoring" (KBTU, 2026). Read the full thesis (PDF) and the presentation slides (PDF).


πŸ“Ή Demo


✨ Highlights

  • πŸ€– Three coordinated robots β€” two Waveshare RoArm-M2-S spray arms + one KUKA KR10 R1100-2 industrial pick-and-place robot.
  • 🏭 Industrial PLC backbone β€” Siemens SIMATIC S7-1500 (S7-1513F-1 PN) programmed in TIA Portal V19, with a WinCC HMI for real-time visualization and operator control.
  • πŸ”— Multi-protocol communication β€” PROFINET at field level, OPC UA (50 ms) for PLC↔MATLAB supervision, TCP/IP (KukaVarProxy) for the KUKA, and HTTP/JSON over Wi-Fi for the painting arms.
  • βš™οΈ Closed-loop conveyor β€” a BLDC-driven conveyor belt with PLC PID speed control holds a constant takt for synchronized painting.
  • πŸ› οΈ Built & validated β€” realized as a 1:1 laboratory cell and validated end-to-end (KUKA + 2Γ— RoArm + conveyor + S7-1500 + SCADA).
  • πŸ’° Proven business case β€” β‰ˆ 45 % lower labor cost, β‰ˆ 6.08 M KZT annual economic effect, and a 2.2-year payback.

πŸ—οΈ System Architecture

The platform follows a three-tier, fully network-based architecture that decouples the supervisory host from device-level implementations, so hardware can be reconfigured without rewriting control logic.

Three-level control architecture
Tier Responsibility Components
Level 2 β€” Supervisory High-level control, coordination, monitoring, operator UI MATLAB/Simulink Β· WinCC SCADA Β· TP700 Comfort HMI
Level 1 β€” Basic control Deterministic sequencing, safety, device control SIMATIC S7-1500 PLC Β· KUKA KR C4 Β· ESP32 (RoArm)
Level 0 β€” Physical process Sensing & actuation 4Γ— inductive sensors Β· 57BLF01 conveyor drive Β· fan Β· KUKA Β· 2Γ— RoArm

MATLAB exchanges a safety handshake with the PLC over OPC UA (zone-clear flag, E-stop circuits, supply-pressure check) before releasing any robot motion.

Process cycle

A workpiece moves through three stations β€” the conveyor carries it to the painting station (two arms spray simultaneously), then to the drying station (fan arch), then to the pick-and-place station where the KUKA unloads it to the output platform.

Painting, drying and pick-and-place stages

Workpiece positioning at every stage is governed by inductive proximity sensors, and every stage transition is gated by a PLC safety interlock before the MATLAB layer releases the next robot motion.


πŸ”§ Hardware

Subsystem Component Model / Part No. Key spec
Pick-and-place robot KUKA Agilus KR10 R1100-2 / SEL 6-DOF, 10 kg payload, Β±0.02 mm, 1101 mm reach
Painting manipulators (Γ—2) Waveshare RoArm-M2-S 4-DOF, ESP32, 0.5 kg payload, ~500 mm reach
Controller SIMATIC S7-1500 CPU 1513F-1 PN (6ES7 513-1FL02-0AB0) fail-safe, PROFINET IRT, OPC UA server
I/O modules SIMATIC DI 6ES7521-1BL00 Β· DQ 6ES7522-1BL01 Β· AI 6ES7531-7KF00 32 DI / 32 DQ / 8 AI
Operator panel SIMATIC HMI TP700 Comfort (6AV2124-0GC01-0AX0) 7β€³ touch, WinCC
Conveyor drive BLDC motor + driver 57BLF01 + BLDC-8015A 24 V, 3000 RPM, 63 W, 0.2 Nm
Position sensing Inductive proximity (Γ—4) Siemens 3RG40 22-3JB00 4 mm, IP67, PROFINET
End-effector Electromagnetic gripper 280 kg holding switched via $OUT[25]

πŸ“‹ Full bill of materials with prices is in the economic analysis.


πŸ’» Software Stack

Layer Tooling
Supervisory control MATLAB R2025b (Instrument Control Toolbox, Robotics System Toolbox)
Process dispatch & kinematics Simulink (OPC UA sensor states β†’ launch painting / pick-and-place)
PLC / SCADA / HMI Siemens TIA Portal V19 + WinCC Runtime Advanced
KUKA middleware KukaVarProxy (open-source) over TCP/IP, port 7000
RoArm firmware ESP32 HTTP/JSON server (Waveshare stock firmware)
Mechanical design AutoCAD (2D), STEP / Fusion 360 (3D)

πŸ“ Repository Structure

multirobot_painting_control_system/
β”œβ”€β”€ MATLAB/
β”‚   β”œβ”€β”€ KUKA_control/        # KUKA KR10 pick-and-place: GUI, trajectory gen, kinematics/dynamics library
β”‚   β”œβ”€β”€ Roarm_control/       # RoArm-M2-S painting: OOP control classes, dual-arm painting app
β”‚   └── README.md
β”œβ”€β”€ PLC/
β”‚   β”œβ”€β”€ PLC_SCADA_HMI/       # Siemens TIA Portal V19 project (S7-1500 + WinCC HMI)
β”‚   β”œβ”€β”€ PLC_SCADA_HMI.zap19  # portable project archive (open via Project β†’ Retrieve)
β”‚   └── README.md
β”œβ”€β”€ Simulink/
β”‚   β”œβ”€β”€ MultiRobotPaintingModel_fixed.slx   # supervisory model: OPC UA sensor states β†’ launch painting / pick-and-place
β”‚   └── README.md
β”œβ”€β”€ CAD/
β”‚   β”œβ”€β”€ 3D_model/            # STEP models (industrial + laboratory cells)
β”‚   β”œβ”€β”€ autocad_drawings/    # 2D engineering drawings (PDF)
β”‚   └── README.md
β”œβ”€β”€ docs/
β”‚   └── images/              # renders, screenshots, diagrams
β”œβ”€β”€ LICENSE                  # MIT
β”œβ”€β”€ CITATION.cff             # how to cite this work
└── README.md                # you are here

Each subsystem folder has its own README with detailed setup and usage instructions.

Subsystem What's inside Docs
🦾 KUKA control Pick-and-place GUI, quintic-smoothstep trajectory generation, 6-DOF FK/IK/ID library, Simulink simulation MATLAB/KUKA_control
πŸ–ŒοΈ RoArm control OOP motion-control classes (serial + Wi-Fi), dual-arm painting application, telemetry GUI MATLAB/Roarm_control
🏭 PLC / SCADA / HMI S7-1500 sequencing logic, conveyor PID, WinCC operator panel PLC
πŸ“Š Simulink Supervisory dispatch model β€” OPC UA sensor states launch the painting / pick-and-place processes; robot kinematics Simulink
πŸ“ CAD 3D STEP assemblies and 2D AutoCAD drawings CAD

πŸ“ˆ Results

Economic impact

Metric Value
Total capital expenditure β‰ˆ 46.5 M KZT (β‰ˆ $50,874 BOM)
Annual labor-cost reduction β‰ˆ 44.8 % (10 β†’ 4 operators)
Total annual savings β‰ˆ 20.96 M KZT
Annual economic effect β‰ˆ 6.08 M KZT
Payback period 2.2 years

πŸš€ Getting Started

Each subsystem is independent β€” start with the one you need. Full prerequisites and step-by-step instructions live in each subsystem README.

  1. KUKA pick-and-place β€” run the MATLAB GUI kuka_pick_and_place_gui_magnetic, design Home/Pick/Place poses, preview the trajectory, then execute on the robot via KukaVarProxy. β†’ guide
  2. RoArm painting β€” launch roarms_painting_process to control both arms over Wi-Fi, or use the RoarmM2_MotionControl_* classes programmatically. β†’ guide
  3. PLC / HMI β€” open PLC/PLC_SCADA_HMI.zap19 in TIA Portal V19 (Project β†’ Retrieve). β†’ guide
  4. Simulation β€” open Simulink/MultiRobotPaintingModel_fixed.slx to explore the conveyor control model. β†’ guide

πŸ“· Gallery

KUKA pick-and-place GUI RoArm dual-arm painting GUI
KUKA control GUI RoArm painting GUI
Pose editor, 3D preview, live joint telemetry, abort control Dual-arm workspace preview, path planning, telemetry
WinCC HMI control panel Simulink supervisory model
WinCC HMI control panel Simulink supervisory model
Conveyor, fans, robots, PID & error status OPC UA inputs β†’ supervisor β†’ robot dispatch
Laboratory cell (render) Industrial cell (render)
Laboratory cell render Industrial scale render

πŸ‘₯ Authors

Graduation project β€” Kazakh-British Technical University (KBTU), School of Information Technology and Engineering, educational program 6B07103 "Automation and Control", 2026.

  • Almat Abdimalik
  • Rassul Zeinulla
  • Collins Masimba
  • Ayan Rakhmetkali

Supervisor: Associate Professor, PhD T. I. Samigulin


πŸ“ Citation

If you reference this work, please cite it using the metadata in CITATION.cff, or:

A. Abdimalik, R. Zeinulla, C. Masimba, and A. Rakhmetkali, "Development of a multirobot control system for painting parts with real-time monitoring," Graduation Project, Kazakh-British Technical University, Almaty, 2026.


πŸ“„ License

This project is released under the MIT License β€” see LICENSE for details.

About

πŸ€–πŸŽ¨ Two spray arms + a KUKA robot + a Siemens S7-1500 PLC painting parts in perfect sync β€” MATLAB/Simulink supervisory control with real-time monitoring

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages