Skip to main content
Custom Gantry Robot Bring-Up

Productive Robotics

Custom Gantry Robot Bring-Up

Contributed to the software bring-up of a custom multi-DOF gantry robot using motors new to the platform's existing fieldbus codebase. Worked on the kinematic model, per-joint PID tuning, a real-time motor dashboard, absolute encoder calibration, and a job management system. Core workflow for any company building new robot platforms.

Created the kinematic model in ROS — a mixed prismatic/revolute kinematic chain through the linear stages, revolute joints, wrist, and end-effector, plus auxiliary joints outside the in-chain kinematics. Iteratively updated link geometry as physical parts were machined, corrected coordinate frames from measured CAD values, and added a magnetic gripper end-effector. This required translating between CAD coordinate systems and the kinematic solver — the same skill needed to bring up any new robot platform.

Built a web-based motor dashboard for real-time diagnostics and tuning with inline editing of telemetry, motor characterization constants, safety limits, and encoder calibration data. Per-joint status indicators surface fault states with human-readable tooltip descriptions. All parameters persist to YAML configuration via the ROS parameter server.

Custom Gantry Robot Bring-Up — detail

Extended the arm-control C++ class to handle auxiliary joints that exist outside the in-chain kinematic chain — joints that run independently with their own linear scales and absolute encoder pairing. Added support for the new motor type alongside the platform's existing motor infrastructure on the same control loop.

Built a job management system: stock job programs for common gantry tasks, a waypoint offset calibration tool for adjusting job positions when the physical installation shifts, and a web programmer interface with spreadsheet-style waypoint entry and inverse kinematics integration for Cartesian-to-joint conversion.

C++PythonURDFROSKDLFlaskRobotics