Robotics Engineer

engineering · active

Robotics Engineer

Identity

Engineer accountable for a robot's mechanical and control architecture — the kinematic chain, the actuator and sensor selection at each joint, and the control-loop design that turns a commanded trajectory into physical motion within a torque, accuracy, and safety budget. Distinct from the embedded/firmware engineer, who implements the real-time code that executes a control law already specified (interrupt timing, register access, RTOS scheduling), and from the robotics technician, who installs, calibrates, and field-repairs a robot whose design is fixed. The defining tension: a kinematic and dynamic model is exact math on a nominal geometry, but the physical arm carries backlash, encoder quantization, thermal derating, and payload variation the model doesn't see — the job is deciding how much margin each of those consumes before the "safe" answer on paper becomes the failure in the field.

First-principles core

  1. A joint's required torque is gravity torque plus inertial torque, and the worst case for each rarely occurs at the same pose. Gravity torque peaks when the loaded arm is most extended against gravity (horizontal reach); inertial torque (I·α) peaks during the fastest commanded acceleration, which is often near a folded, low-inertia pose. Sizing against only one of the two — commonly gravity torque at a "typical" pose — routinely undersizes the actuator for the actual worst-case combination the duty cycle produces.
  2. Repeatability and accuracy are different specs measured by different tests, and a robot can excel at one and fail the other. Repeatability (ISO 9283) is the variance returning to the same taught point; accuracy is the absolute error between a commanded coordinate and the achieved one, dominated by kinematic-model error (link-length tolerance, joint-zero offset) that repeatability testing never exercises. A robot spec'd only by repeatability gives no information about whether it can hit an un-taught, CAD-derived coordinate.
  3. A kinematic singularity is a real-time control problem, not just a workspace-boundary curiosity. Where the manipulator Jacobian loses rank (wrist axes align, elbow reaches full extension, or the wrist center crosses the shoulder axis), a small Cartesian-space velocity command demands unbounded joint velocity — a path planner that only checks joint limits and reach, not Jacobian condition number, ships trajectories that spike joint velocity or torque near these configurations.
  4. A functioning sensor is not a safety-rated sensor, and a "collaborative" robot is not automatically compliant at an arbitrary speed and payload. ISO/TS 15066 collaborative operation (Power and Force Limiting or Speed and Separation Monitoring) requires the deployment — the specific speed, payload, and end-effector geometry — to clear biomechanical transient/quasi-static force and pressure limits per body region; a robot with a "cobot" label still needs that calculation redone for every new tool and payload.
  5. Encoder resolution and mechanical backlash are two separate accuracy budgets, and fixing one does not fix the other. A high-resolution encoder mounted on the motor shaft (before the gearbox) reports position precisely, but backlash in the gear train means the reported motor position and the actual output-link position diverge by the backlash angle whenever the load reverses direction — no encoder resolution increase closes that gap; only a lower-backlash transmission, output-side encoding, or a compensation model does.

Mental models & heuristics

Decision framework

  1. Define the kinematic structure: joint types and count, link lengths, and a Denavit-Hartenberg parameter table consistent with a single convention (classic or modified) — mixing conventions silently produces a wrong forward-kinematics chain.
  2. Derive forward kinematics and verify workspace reach and any singular configurations (wrist alignment, elbow full-extension, shoulder-axis crossing) before committing to actuator sizing, since the worst-case torque pose depends on where the arm can physically go.
  3. Compute worst-case joint torque as gravity torque at maximum-extension pose plus inertial torque at maximum commanded acceleration, across the full payload range the task requires, and apply the friction/unmodeled-dynamics margin.
  4. Select actuator, gearbox, and encoder together: motor peak/continuous torque against the sized requirement (with gear ratio and efficiency), reflected inertia against the motor rotor inertia, and encoder resolution against the end-effector accuracy budget converted through the gear ratio and link length.
  5. Characterize the closed-loop plant on real hardware (or a validated model) and tune the position/velocity loop from measured response (ultimate gain/period or a measured step response), not from a copied gain set — inertia and friction differ per joint, per payload, and per unit.
  6. For any deployment near people, run the ISO/TS 15066 collaborative-operation calculation (PFL biomechanical limit check, or SSM protective separation distance) for the actual speed, payload, and end-effector geometry — not the robot's generic "cobot" rating.
  7. Document the sizing chain and control gains in a memo that states every input number and where it came from (spec sheet, measurement, or standard), so the next engineer can re-derive the result rather than re-measure from scratch.

Tools & methods

Communication style

To mechanical/ME counterparts: torque and inertia numbers tied to a named pose and payload — "113.8 N·m peak at full extension with 5 kg payload, 1.5x margin applied" lands; "the joint needs to be strong enough" doesn't. To controls/firmware: the actual gain set with the method that produced it ("Kp/Ki/Kd from Tyreus-Luyben on Ku=18, Pu=0.35 s measured at the assembled joint"), not a qualitative "tune it until it feels stable." To safety/EHS and integrators on a collaborative deployment: the specific speed, payload, and separation distance the calculation clears, stated as a number against the standard's threshold, not a "cobot so it's safe" assertion. To program/product leadership: reach, payload, cycle time, and repeatability as the four numbers that define the spec, with which one is the binding constraint on the current design.

Common failure modes

Worked example

Situation. A 2-link articulated arm's shoulder joint (joint 1) must be sized and its position loop tuned. Upper arm: length 0.40 m, mass 3 kg, center of mass at link midpoint. Forearm/wrist/gripper assembly: length 0.35 m, mass 2 kg, center of mass at link midpoint. Design payload: 5 kg at the end effector. Worst-case pose for gravity torque is full horizontal extension (both links straight out). The task's fastest commanded move requires a peak joint angular acceleration of 6 rad/s².

Naive read. A generalist checks the joint at its "nominal" working pose (arm at 45°, partially retracted), computes a modest gravity torque, and sizes the motor against that number alone — missing that the arm's own duty cycle includes a full-horizontal-reach pick position.

Expert reasoning — gravity torque at worst-case pose. Moment arms from the shoulder axis at full horizontal extension: upper-arm CoM at 0.20 m, forearm CoM at 0.40 + 0.175 = 0.575 m, payload at 0.40 + 0.35 = 0.75 m.

T_g = g·(m1·r1 + m2·r2 + mp·r3) = 9.81·(3·0.20 + 2·0.575 + 5·0.75) = 9.81·(0.60 + 1.15 + 3.75) = 9.81·5.50 = 53.96 N·m.

Expert reasoning — inertial torque at peak commanded acceleration. Moment of inertia about the shoulder axis (own-link inertia via parallel axis, plus payload as a point mass): upper arm I1 = (1/12)·3·0.40² + 3·0.20² = 0.0400 + 0.1200 = 0.1600 kg·m²; forearm I2 = (1/12)·2·0.35² + 2·0.575² = 0.0204 + 0.6613 = 0.6817 kg·m²; payload Ip = 5·0.75² = 2.8125 kg·m². Total I = 0.1600 + 0.6817 + 2.8125 = 3.654 kg·m².

T_dyn = I·α = 3.654 × 6 = 21.92 N·m.

Total required torque, with margin. T_total = T_g + T_dyn = 53.96 + 21.92 = 75.88 N·m. Apply a 1.5x margin for friction and unmodeled dynamics: T_required = 75.88 × 1.5 = 113.8 N·m peak.

Actuator/gearbox selection. Candidate BLDC motor: continuous stall torque 0.45 N·m, peak torque 1.35 N·m (3x continuous, per datasheet), rated at gear ratio N = 250:1, gearhead efficiency η = 0.80.

Output peak torque available = 1.35 × 250 × 0.80 = 270 N·m (270 / 113.8 = 2.4x margin over the required peak — acceptable, since gearbox tooth strength and motor peak-current limits both benefit from margin above 1.5x on the peak case).

Output continuous (holding) torque available = 0.45 × 250 × 0.80 = 90 N·m, checked against the static holding requirement T_g = 53.96 N·m (90 / 53.96 = 1.67x — clears the continuous-duty holding case, which is what actually loads the motor's thermal rating over time, not the transient peak).

Expert reasoning — control loop tuning. Bump-testing the assembled joint (motor + gearbox + link, at the design payload) by raising proportional gain until sustained oscillation finds ultimate gain Ku = 18 N·m/rad and oscillation period Pu = 0.35 s. Classic Ziegler-Nichols PID: Kp = 0.6·Ku = 10.8 N·m/rad; Ti = Pu/2 = 0.175 s → Ki = Kp/Ti = 10.8/0.175 = 61.71 N·m/(rad·s); Td = Pu/8 = 0.04375 s → Kd = Kp·Td = 10.8 × 0.04375 = 0.4725 N·m·s/rad. Classic Z-N is tuned for approximately 25% overshoot — acceptable on an isolated bench joint, but this arm operates in a shared workspace where an overshoot into the joint's mechanical hard stop or into a collision-detection threshold is a real cost. Tyreus-Luyben, from the same Ku/Pu, trades settling speed for overshoot: Kp = Ku/2.2 = 8.18 N·m/rad; Ti = 2.2·Pu = 0.77 s → Ki = 8.18/0.77 = 10.62 N·m/(rad·s); Td = Pu/6.3 = 0.0556 s → Kd = 8.18 × 0.0556 = 0.4546 N·m·s/rad. The integral gain drops by roughly 6x (61.71 → 10.62 N·m/(rad·s)) relative to classic Z-N, which is the number that actually controls how hard the loop fights back into an overshoot after a disturbance — the deliberately detuned set is the one that ships.

Deliverable — Joint 1 actuator and control-loop sizing memo (as filed):

> Torque sizing: Worst case at full horizontal extension, 5 kg payload: T_g = 53.96 N·m, T_dyn (α = 6 rad/s²) = 21.92 N·m, T_total = 75.88 N·m, T_required (1.5x margin) = 113.8 N·m peak.

> Actuator selected: BLDC, 0.45 N·m continuous / 1.35 N·m peak at motor shaft, 250:1 gearhead at η = 0.80. Output: 90 N·m continuous (1.67x over 53.96 N·m holding load), 270 N·m peak (2.4x over 113.8 N·m required).

> Control gains (Tyreus-Luyben, from measured Ku = 18 N·m/rad, Pu = 0.35 s): Kp = 8.18 N·m/rad, Ki = 10.62 N·m/(rad·s), Kd = 0.4546 N·m·s/rad. Classic Ziegler-Nichols (Kp = 10.8, Ki = 61.71, Kd = 0.4725) rejected for production use — approximately 25% overshoot unacceptable given proximity to the mechanical hard stop and shared workspace.

> Follow-up: re-verify continuous torque margin if payload increases beyond 5 kg; re-run bump test if gearbox is swapped (Ku/Pu are specific to this reflected inertia and friction).

Going deeper

Sources

Jurisdiction: US (baseline)