A full-stack desktop application for controlling the movements of an industrial welding robot, developed as a graduation research project at Hanoi University of Science and Technology (Feb 2021 – Jun 2021).
This project delivers an end-to-end control system for an industrial welding robotic arm, running on Windows. It was built by a 3-person team over 5 months, including kinematics/dynamics computation, real-time PLC communication and operator-facing GUI.
The system computes required motor rotations for desired arm movements, transmits control data to a Programmable Logic Controller (PLC) over Ethernet, and provides a graphical interface for real-time operation and monitoring — achieving target positioning within a 5% margin of error with zero system failures during operation.
- Movement calculation — computes motor rotations for desired end-effector movements using inverse kinematics, validated with zero error against MATLAB-based Kinematics and Dynamics simulations
- PLC connectivity — Ethernet-based communication between the application and the robot's PLC, with zero communication interruptions during operation
- Real-time GUI — multiple widgets for live operator control and monitoring of robot movement
- Unified control system — all modules integrated into a single deployed application for real-time operation
- Language: Python
- GUI Framework: Qt Framework (Qt Widgets) via PyQt5
- Numerical Computing: NumPy, SymPy
- Industrial Communication: Snap7 (PLC Ethernet protocol)
- Industrial PLC Framework: Siemens TIA Portal (PLC Siemens programming and configuration)
- Validation: MATLAB (Kinematics and Dynamics simulation)
- OS: Windows
- Python 3.9
- PLC connected via Ethernet (configured with the robot controller)
- Dependencies listed in
requirements.txt(NumPy, SymPy, PyQt5, python-snap7)
git clone https://github.com/sntung/2021_proj_robotics_hust.git
cd 2021_proj_robotics_hust
pip install -r requirements.txtpython main.pyOn launch, the GUI allows the operator to set target positions for the robotic arm. The Movement Calculation module computes the required motor rotations, and the Connection module transmits these to the PLC in real time, with live status shown in the GUI.
- Motor rotation calculations validated with zero error against MATLAB Kinematics/Dynamics simulations
- Zero communication interruptions during PLC data transmission
- Zero critical defects in the GUI during operation
- Robot consistently reached target positions within a 5% margin of error
- Zero system failures during real-time deployment
Developed by a 3-person team as a graduation research project at Hanoi University of Science and Technology, with the author leading the project across the full development lifecycle.
Academic project — no license specified. Feel free to reach out if you'd like to use or reference this work.