
Productive Robotics
Testing Simulators
Developed a suite of hardware-free simulation and testing tools that enabled full software development without access to a physical robot or welding equipment. Includes a welding status simulator (Miller EtherNet/IP emulation), a standalone weld dashboard (no ROS dependency), a headless weld recorder for background CSV capture, FK/IK testing tools for kinematic verification, and a motor simulator for ODrive CAN response emulation.
Built a welding status simulator that emulates the Miller DeltaWeld's EtherNet/IP responses — voltage, current, wire speed, gas flow, arc state, and fault codes — allowing the entire welding software stack to run without a physical welder connected. The simulator accepts configuration for different welding scenarios: steady-state welding at various parameters, arc start/stop transients with realistic ramp profiles, and fault injection (gas flow loss, wire stick, thermal shutdown) for testing error handling paths. A companion standalone weld dashboard runs the complete weld monitoring UI (real-time voltage/current plots, recipe display, arc time tracking) as a self-contained Python application with zero ROS dependencies — using direct TCP sockets instead of ROS topics, making it launchable on any developer's laptop without installing the full robot software stack.
Developed a headless Python weld recorder that subscribes to welding telemetry topics and writes timestamped CSV files in the background — capturing voltage, current, wire speed, travel speed, and position data at the full 50Hz publication rate. The recorder runs as a background process during weld cycles and produces files suitable for post-weld quality analysis, process development, and customer deliverables. Built FK/IK testing tools that verify the robot's forward and inverse kinematic solutions against known reference poses — essential for validating kinematic parameter changes (DH parameters, joint offsets) without needing to move the physical robot and risk collision. The tools compare computed end-effector positions against measured positions from the robot's calibration dataset and flag discrepancies exceeding configurable tolerances.
Created a motor simulator that emulates ODrive CAN bus responses for all 7 joints — position feedback, velocity feedback, current measurements, temperature readings, and fault status registers. The simulator accepts trajectory commands over the CAN interface and returns physically plausible responses using a simplified motor model (inertia, friction, torque limits). This enabled development and testing of the C++ motor control layer — PID tuning, trajectory interpolation, fault detection logic — from a home office without access to the robot hardware. Combined, these simulators eliminated the requirement for on-site development, enabling productive remote work during travel, weekends, and periods when the physical robot was in use for customer demonstrations or production welding.