Chapter 4: Robot Hardware Architecture (Big Picture)
Lesson 5: Reading Robot Datasheets and Spec Sheets
This lesson teaches you how to extract engineering meaning from robot datasheets: how to interpret mechanical, actuation, sensing, compute, power, and environmental specifications; how to convert them into quantitative performance bounds; and how to detect marketing-language pitfalls. We connect specs to physics-based limits, uncertainty, and control-relevant constraints.
1. Why Datasheets Matter
A robot datasheet is a compact contract between the manufacturer and the system integrator. It encodes limits on safe operation and expected performance. Formally, view a robot as a constrained dynamical system with state \( \mathbf{x}(t) \) and input \( \mathbf{u}(t) \):
\[ \dot{\mathbf{x}} = \mathbf{f}(\mathbf{x},\mathbf{u}), \quad \mathbf{u} \in \mathcal{U}_{\text{rated}},\; \mathbf{x} \in \mathcal{X}_{\text{safe}}. \]
A datasheet specifies (implicitly or explicitly) the rated input set \( \mathcal{U}_{\text{rated}} \) (e.g., torques, currents, speeds) and safe state set \( \mathcal{X}_{\text{safe}} \) (e.g., workspace, thermal bounds, vibration/shock limits).
Engineers are responsible for verifying that a task demand set \( \mathcal{D} \) satisfies \( \mathcal{D} \subseteq \mathcal{X}_{\text{safe}} \times \mathcal{U}_{\text{rated}} \). This lesson provides tools to check that inclusion using spec numbers.
2. A Systematic Workflow for Reading Spec Sheets
A good datasheet reading process avoids cherry-picking one attractive number (like “max speed”) while ignoring binding constraints (like torque, duty cycle, or payload at reach).
flowchart TD
A["Start: Get spec sheet + manual"] --> B["Identify robot category (arm, mobile, aerial, etc.)"]
B --> C["List task requirements"]
C --> D["Read mechanical specs"]
D --> E["Read actuation + power specs"]
E --> F["Read sensing + compute specs"]
F --> G["Read environmental + safety specs"]
G --> H["Translate specs to constraints/bounds"]
H --> I["Check task feasibility vs bounds"]
I --> J["Flag missing/unclear specs; consult manual"]
We now go through each spec family and how to interpret it quantitatively.
3. Mechanical Performance Specs
3.1 Payload, Reach, and Moment Limits
Payload is rarely a single scalar. It depends on reach and tool geometry. A conservative static model treats the arm as a lever with effective horizontal reach \( r \) and payload mass \( m \). Required joint torque about the base scales like \( M = m g r \).
\[ M_{\text{req}} = m g r \le M_{\text{rated}}(r). \]
Datasheets often give a “payload at full reach” and a “maximum payload at short reach.” Interpret them as samples of a decreasing function \( M_{\text{rated}}(r) \).
Proof (monotonicity of payload vs reach):
Let a joint have rated torque limit \( M_{\max} \), with static gravitational moment \( M_{\text{req}} = m g r \). Solving for permissible mass:
\[ m_{\max}(r) = \frac{M_{\max}}{g r}. \]
Since \( r > 0 \), derivative:
\[ \frac{d m_{\max}}{dr} = -\frac{M_{\max}}{g r^2} < 0. \]
Therefore allowable payload decreases strictly with reach in any gravity-dominated regime. If a datasheet suggests otherwise, it is describing a different configuration or using a non-static metric.
3.2 Speed, Acceleration, and Duty Cycle
“Max joint speed” \( \omega_{\max} \) and “max acceleration” \( \alpha_{\max} \) are peak limits; continuous motion is bounded by thermal/duty-cycle specs. If a motor has continuous torque \( M_c \) and peak torque \( M_p \), define duty ratio \( \delta \in [0,1] \):
\[ M_{\text{RMS}} = \sqrt{\delta M_p^2 + (1-\delta) M_c^2} \le M_{\text{thermal}}. \]
Many datasheets hide \( \delta \) in a “duty cycle” chart. You should treat \( M_p \) as usable only for short bursts.
3.3 Repeatability vs Accuracy
**Repeatability** is variation around the mean of repeated motions, while **accuracy** is deviation from the commanded target. Let end-effector error on trial \( k \) be \( e_k \in \mathbb{R}^3 \). Repeatability is typically a standard deviation:
\[ \sigma_{\text{rep}} = \sqrt{\frac{1}{N-1}\sum_{k=1}^{N} \|e_k-\bar{e}\|^2 }. \]
Accuracy is \( \|\bar{e}\| \). A robot might repeat very well (small \( \sigma_{\text{rep}} \)) but be inaccurate due to calibration bias.
Control connection: If the controller tracks a reference with steady-state bias \( b \) and noise \( n_k \), then \( e_k = b + n_k \), so \( \bar{e} = b \) and \( \sigma_{\text{rep}} = \text{std}(n_k) \). That is why repeatability is often better than accuracy in industrial arms.
4. Actuation, Electrical, and Power Specs
4.1 Rated Torque/Force and Gear Ratios
Actuator spec tables often list motor torque \( M_m \), gearbox ratio \( N \), and output torque \( M_o \approx \eta N M_m \), where \( \eta \in (0,1] \) is efficiency.
\[ M_o = \eta N M_m. \]
If only output torque and speed are given, you can infer whether a robot is torque-limited or speed-limited for your task.
4.2 Motor Constants and Control-Relevant Limits
Many component datasheets provide torque constant \( K_t \) and back-EMF constant \( K_e \). For SI-consistent units, \( K_t = K_e \). With current \( i \) and terminal voltage \( v \):
\[ M_m = K_t i,\qquad v = K_e \omega + i R. \]
Therefore peak torque and speed imply peak current and voltage:
\[ i_{\max} = \frac{M_{m,\max}}{K_t},\qquad \omega_{\max} = \frac{v_{\max} - i_{\max}R}{K_e}. \]
Proof (speed–torque trade-off):
Eliminating \( i \) yields
\[ M_m = \frac{K_t}{R}(v - K_e\omega) = M_{\text{stall}} - \underbrace{\frac{K_t K_e}{R}}_{c}\omega, \]
a line with negative slope. Hence a datasheet curve showing higher speed requires lower torque is a direct consequence of DC motor physics.
4.3 Power Consumption and Battery Runtime
If a mobile robot gives average electrical power \( P_{\text{avg}} \) and battery energy \( E_b \) (Wh), runtime estimate:
\[ T_{\text{run}} \approx \frac{E_b}{P_{\text{avg}}}. \]
When only battery capacity \( C \) (Ah) and voltage \( V \) are given, \( E_b \approx V C \) (Wh).
5. Sensing, Compute, and Interface Specs
5.1 Sensor Resolution and Quantization
For an encoder with \( B \) bits over one revolution, the quantization step is \( \Delta\theta = 2\pi/2^B \).
\[ \Delta\theta = \frac{2\pi}{2^B}. \]
A conservative bound on quantization error is half a step: \( |e_\theta| \le \Delta\theta/2 \).
Proof (worst-case quantization bound):
Uniform mid-tread quantizer maps any true angle to nearest code center. The farthest point from a center is at the boundary between codes, which is \( \Delta\theta/2 \) away. Hence the bound.
5.2 Sampling Rate and Control Bandwidth
If a sensor samples at \( f_s \) Hz, then Nyquist frequency is \( f_N = f_s/2 \). For stable feedback, a common rule is closed-loop bandwidth \( f_b \) should satisfy \( f_b \lesssim f_s/10 \).
\[ f_b \le \frac{f_s}{10}. \]
Datasheets listing low sampling rates imply slow feedback capability, regardless of advertised mechanical speed.
5.3 Communication Interfaces and Latency
Interface specs (CAN, EtherCAT, UART, etc.) should be interpreted via throughput and latency. If message size is \( S \) bits and bus rate is \( R_b \) bit/s, ideal transmit time is
\[ T_{\text{tx}} = \frac{S}{R_b}. \]
Any additional cycle time, arbitration delay, or jitter stated in the manual affects real-time control quality.
6. Environmental, Compliance, and Safety Specs
6.1 Ingress Protection (IP) and Operating Conditions
IP ratings classify protection against solids/liquids. Treat them as constraints on the environment set \( \mathcal{E} \) where the robot can safely operate.
Temperature, humidity, and vibration limits similarly constrain \( \mathcal{E} \).
6.2 Safety Ratings and Failure Limits
Safety specs may include maximum collision force, emergency stop time, or safe torque-off. If max stopping time is \( t_s \) from speed \( v_0 \) with deceleration bound \( a_{\max} \), the best-case stop distance is
\[ d_s \ge \frac{v_0^2}{2 a_{\max}}. \]
If your workspace clearance is smaller than this bound, the robot is not safe for that speed.
7. Mini-Labs — Turning Specs into Numbers
These short examples show how to compute feasibility bounds directly from a spec sheet. They are intentionally kinematics-light, using only lever and control basics.
7.1 Python: Payload-at-Reach Check
import numpy as np
def payload_ok(m_payload, reach, rated_moment):
g = 9.81
M_req = m_payload * g * reach
return M_req <= rated_moment, M_req
# Example: rated moment at this configuration is 120 N·m
ok, Mreq = payload_ok(m_payload=8.0, reach=0.9, rated_moment=120.0)
print("Required moment:", Mreq, "N·m")
print("Feasible?", ok)
7.2 C++: Encoder Quantization Bound
#include <iostream>
#include <cmath>
double quant_step_rad(int bits){
return 2.0 * M_PI / std::pow(2.0, bits);
}
int main(){
int B = 17; // 17-bit absolute encoder
double dtheta = quant_step_rad(B);
double emax = dtheta / 2.0;
std::cout << "Step (rad): " << dtheta << "\\n";
std::cout << "Worst-case error (rad): " << emax << "\\n";
return 0;
}
7.3 Java: Runtime Estimate from Battery + Power
public class RuntimeEstimate {
public static double runtimeHours(double voltage, double capacityAh, double avgPowerW){
double Eb_Wh = voltage * capacityAh; // Wh
return Eb_Wh / avgPowerW;
}
public static void main(String[] args){
double V = 24.0; // battery voltage
double C = 18.0; // Ah
double Pavg = 120.0; // W
System.out.println("Estimated runtime (h): " + runtimeHours(V, C, Pavg));
}
}
7.4 MATLAB/Simulink: Motor Speed–Torque Line
Kt = 0.08; % N*m/A
Ke = 0.08; % V*s/rad
R = 0.6; % Ohm
Vmax = 24; % V
w = linspace(0, 300, 200); % rad/s
M = (Kt/R) * (Vmax - Ke*w); % torque line
figure; plot(w, M);
xlabel('omega (rad/s)'); ylabel('Motor torque (N*m)');
title('Speed–torque limit from datasheet constants');
grid on;
In Simulink, this line is the saturation boundary for a motor block: torque command must lie under \( M(\omega) \).
8. Common Datasheet Pitfalls
- Peak vs continuous: Max speed/torque often means peak, not sustained. Always look for duty cycle or thermal limits.
- Unspecified configuration: Payload without reach/tool orientation is ambiguous.
- Repeatability marketed as accuracy: Verify which one is reported.
- Hidden assumptions: Some specs assume factory calibration, ideal power supply, or specific ambient temperature.
- Missing jitter/latency: Interface rate without timing determinism can mislead control design.
9. Problems and Solutions
Problem 1 (Payload at Reach): A 6-DOF arm datasheet lists “max payload 10 kg at 0.8 m reach.” Assume gravity-dominated static loading. Estimate the rated moment \( M_{\max} \). Then compute the maximum payload at 1.2 m reach.
Solution:
Rated moment from the given point:
\[ M_{\max} \approx m g r = 10 \cdot 9.81 \cdot 0.8 = 78.48~\text{N·m}. \]
At reach \( r=1.2 \),
\[ m_{\max}(1.2)=\frac{M_{\max}}{g r} =\frac{78.48}{9.81\cdot 1.2}=6.67~\text{kg}. \]
So if the task needs >6.7 kg at 1.2 m, it violates a basic statics bound.
Problem 2 (Repeatability vs Accuracy): Ten trials of a positioning move yield errors (mm): \( e_k \) = {0.8, 1.0, 0.9, 0.6, 1.1, 0.7, 0.9, 0.8, 1.0, 0.9}. Compute accuracy and repeatability.
Solution:
Mean error:
\[ \bar{e}= \frac{1}{10}\sum_{k=1}^{10} e_k = \frac{8.7}{10}=0.87~\text{mm}. \]
Accuracy is \( |\bar{e}|=0.87 \) mm. Repeatability (std):
\[ \sigma_{\text{rep}} = \sqrt{\frac{1}{9}\sum_{k=1}^{10} (e_k-\bar{e})^2} \approx 0.15~\text{mm}. \]
The robot is very repeatable but has a bias of about 0.9 mm.
Problem 3 (Encoder Quantization): A joint encoder has 16-bit absolute resolution. Find \( \Delta\theta \) and the worst-case angular error.
Solution:
\[ \Delta\theta=\frac{2\pi}{2^{16}}=9.59\times 10^{-5}~\text{rad}, \qquad |e_\theta|\le \Delta\theta/2 = 4.79\times 10^{-5}~\text{rad}. \]
Problem 4 (Sampling vs Control Bandwidth): A mobile robot IMU samples at 200 Hz. Using \( f_b \le f_s/10 \), estimate a safe maximum closed-loop bandwidth.
Solution:
\[ f_b \le \frac{200}{10}=20~\text{Hz}. \]
A controller demanding 50 Hz bandwidth would be poorly supported by this IMU rate.
Problem 5 (Motor Spec Consistency): A motor datasheet lists \( K_t=0.1 \) N·m/A, \( R=0.5 \) Ω, and \( v_{\max}=24 \) V. Compute stall torque and torque at \( \omega = 150 \) rad/s assuming \( K_e=K_t \).
Solution:
From \( M_m = (K_t/R)(v-K_e\omega) \):
\[ M_{\text{stall}} = \frac{K_t}{R}v_{\max} =\frac{0.1}{0.5}\cdot 24 = 4.8~\text{N·m}. \]
\[ M(150)=\frac{0.1}{0.5}(24-0.1\cdot 150) =0.2(24-15)=1.8~\text{N·m}. \]
If a spec claims 4 N·m at 150 rad/s, it contradicts the listed constants.
10. Summary
Datasheets are constraint maps. We learned a structured method to read them, interpret mechanical and actuation limits through statics and motor physics, translate sensor/compute specs into uncertainty and bandwidth bounds, and check feasibility for tasks. Key takeaways: distinguish peak vs continuous, repeatability vs accuracy, and always convert marketing numbers into physically meaningful inequalities.
11. References
- Hollerbach, J.M., & Suh, K.C. (1987). Redundancy resolution of manipulators through torque optimization. IEEE Journal on Robotics and Automation, 3(4), 308–316.
- Whitney, D.E. (1969). Resolved motion rate control of manipulators and human prostheses. IEEE Transactions on Man-Machine Systems, 10(2), 47–53.
- Asada, H., & Slotine, J.-J.E. (1986). On the dynamics of robot manipulators with elastic joints. International Journal of Robotics Research, 5(3), 19–41.
- De Luca, A., & Book, W.J. (2008). Robots with flexible elements. Springer Tracts in Advanced Robotics, 47, 287–319.
- Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (1990s+). On performance indices and specification-based robot evaluation. Various theoretical journal contributions.
- Goodwin, G.C., Graebe, S.F., & Salgado, M.E. (2001). Sampling, bandwidth, and limitations in digital control. Control Engineering Theory Papers Collection.