
Productive Robotics
Safety Features & Speed Limiting
Implemented a multi-layer defense-in-depth safety system spanning firmware (thermal protection, per-joint current limits in C++ motor controllers), ROS middleware (speed validation, torch state gating, overspeed authorization), and tablet UI (E-stop verification, high-speed confirmation modals, CAN communication warnings). Matches ISO 10218 cobot safety and IEC 62443 industrial cybersecurity principles.
Implemented E-stop hardware gating for OPTX laser welder software updates — Diagnostics.isEstopped() queries the robot's emergency stop state and blocks updates unless the E-stop is physically engaged, preventing any possibility of laser activation during the update process. This is defense-in-depth: software enforcing the use of a hardware safety device. Also implemented torch state gating that subscribes to /welding/status and monitors torch_active_ — speed change requests are rejected during approach/retract phases when the torch is inactive.
Built per-joint temperature and current limit enforcement at two independent levels: temperature limits written to the ODrive object dictionary enable hardware-level thermal protection that operates independently of the ROS stack and cannot be overridden by application-layer software. Per-joint current limits are configurable via the motor dashboard UI, persisted in YAML configuration, and enforced at 1kHz in the EtherCAT real-time control loop. Each joint has independent limits reflecting its mechanical capabilities and load characteristics.
Designed a two-tier speed authorization system: default maximum 250 mm/s for precision work near workpieces, with high-speed mode enabling up to 1000 mm/s for large moves between weld points. Enabling high-speed requires explicit operator opt-in through a safety confirmation modal. Hard weld speed range validation of 1–200 mm/s prevents near-zero speeds causing burn-through and excessive speeds producing cold welds.