
Productive Robotics
Plasma Cutter Mode
Added a complete plasma cutting operational mode to the OB7 robot, integrating with Hypertherm Powermax plasma cutters via Modbus TCP. Built a computed-property-based dynamic terminology system that switches all labels, components, recipes, and workflows between 'welding' and 'cutting' modes — a clean architecture pattern that scales to additional modes without branching through 50+ components.
Implemented a computed-property-based terminology system in the Vue root instance that dynamically switches every label in the UI between welding and cutting modes: typeLabel ('Cut'/'Weld'), tabLabel, actionLabel, recipeLabel, speedLabel ('Cut Speed'/'Travel Speed'), positionLabel ('Pierce Height'/'Start Position'), and processTypeLabel — all driven by a single this.cutting = (this.welderType == 6) flag. Every label in the 50+ component UI references $root.typeLabel rather than hardcoded strings, eliminating mode-specific branching throughout the codebase. Adding a third operational mode (e.g., laser cutting) requires only extending the conditionals in one file.
Built plasma-specific recipe parameters (material thickness, current 15–105A, cut height, pierce height, pierce delay, kerf width and direction Left/Right/Center) with full NumberWithUnits metric/imperial conversion. Real-time status monitoring subscribes to /plasma/status for operating current, gas pressure, remote control mode, and Modbus fault code decoding from registers 0x3044–0x3047. RS-485 cartridge detection via /plasma/detect_cartridge ROS service. New tile type productive_atomic.cut with linear and circular path types.