Within 41013 Industrial Robotics, my team members and I were tasked with creating a simulation of multiple 6DOF robots collaborating together to achieve a common goal. Our self-selected goal was to create a simulation of a flexible manufacturing line.
Granted this being a group assignment, I was worried about code quality and contribution from other team members. Therefore, I took the initiative to create a solid foundation for the project. I started by developing a robust object-oriented structure for the project. Each robot (and it's logic) is built from a common class that abstracts all the complicated 'coordination', 'safety' and 'gui' logic.
The IRA2 project is a comprehensive industrial robotics simulation framework designed to model a flexible manufacturing line. The system coordinates multiple autonomous robot stations to process items moving along a simulated conveyor. It serves as a testbed for developing and validating complex multi-robot control logic, trajectory planning, and safety systems in a risk-free virtual environment.
Developed as a modular Python-based platform, the simulation integrates the Robotics Toolbox for Python with a custom PySide6 control interface. This allows for real-time visualization of robot kinematics, concurrent station operations, and the simulation of critical safety events like emergency stops and light curtain breaches.
Key Contributions:
- Modular Station Framework: Architected an object-oriented design where each "Station" runs its own logic thread, managing independent state machines for engaging, processing, and handing off items.
- Custom Control Interface: Built a robust PySide6 (Qt) GUI that provides manual joint-level control, automation toggles, and safety monitoring for every robot in the cell.
- Safety System Simulation: Implemented a "Supervisor" proxy in the GUI to simulate human interaction, triggering virtual Light Curtains and E-Stops to validate safety logic responsiveness.
- Optimized Trajectory System: Developed a caching system for inverse kinematics solutions, saving calculated trajectories to CSVs to ensure smooth real-time performance without recalculation delays.
Technical Highlights
- Multithreaded Architecture: Successfully orchestrated independent threads for the rendering loop, individual station logic, conveyor item management, and the GUI event loop.
- Advanced Kinematics: Leveraged SpatialMath and RoboticsToolbox to solve inverse kinematics (IK) for 6-DOF robots (e.g., UR3), handling approach vectors and tool orientation.
- Visual Feedback Integration: Created specific visual cues (engage/disengage markers) and "teleportation" logic to abstract complex conveyor physics while maintaining accurate logical flow.
- Hardware-In-The-Loop Ready: The architecture isolates the logic layer (
RoboStation) from the hardware/simulation layer, paving the way for deploying the same code to physical UR3 robots.
Technical skills
- Robotics & Simulation: Python (Robotics Toolbox, SpatialMath, Swift), Inverse Kinematics, Trajectory Planning.
- Software: Python (Multithreading, NumPy), PySide6 (Qt GUI Development), Object-Oriented Programming.
- Systems: State Machine Design, Safety Logic (E-Stop, Light Curtains).