FixTheRobot Explore Robotics / Systems Engineering / Design & Selection / Module 02

Design & Selection · Module 02

Accuracy vs precision, resolution vs accuracy, rate vs latency

A sensor can be precise and wrong, finely resolved and inaccurate, fast and late. This guide separates the four pairs with numbers.

  • Intermediate
  • Module 02: Sensor Selection, Trade-offs & Integration
  • Written for ROS 2 Jazzy where ROS 2 is used
  • Sources checked 2026-11-05

Assumptions: Simple static statistics and a constant-speed latency estimate. The example numbers are illustrations, not a product. The calculations are executed by the site’s tests.

1. Engineering problem

Datasheets and conversations use these words loosely. A sensor that repeats to 6 mm but is 12 cm off will misplace every obstacle the same wrong way; a 1 mm resolution says nothing about error; a 10 Hz rate with 50 ms of delay means the data you use is already up to 150 ms old.

2. When is this needed?

  • Comparing sensors from different vendors.
  • Explaining a sensor’s behaviour on the robot.
  • Setting latency and calibration requirements.

3. Selection and design decisions

Four distinctions
PairFirst termSecond termWhy confusing
Accuracy vs precisionAccuracy: closeness to the true value; systematic error (bias)Precision: repeatability; random error (noise)A precise sensor can be inaccurate; averaging reduces noise but not bias; calibration fixes bias
Resolution vs accuracyResolution: smallest change the output can showAccuracy: error against truthA reading with 1 mm steps can be off by centimetres
Rate vs latencyRate: samples per secondLatency: delay from the physical event to usable dataA high-rate stream can be late; low rate adds waiting time on top of latency
Datasheet vs real worldDatasheet: figure at stated, favourable conditionsReal world: behaviour in your environment and systemMounting, time sync, temperature, targets and calibration are not in the datasheet

4. Advantages and disadvantages

  • Calibrate to remove bias; average or filter to reduce noise (at the cost of lag).
  • Increasing the rate shortens the waiting term of latency but can raise bandwidth and compute.
  • Higher resolution rarely improves accuracy unless the sensor was resolution-limited.

5. Requirements and constraints

  • Accuracy needs a reference you trust (a surveyed target or a better instrument).
  • Latency must be measured end to end on the real system.
  • Statistics need enough samples (dozens, not five); five are used here only to keep the example readable.

6. Architecture

physical event ─▶ sensor sampling ─▶ driver ─▶ transport ─▶ processing ─▶ your algorithm
                  └ rate (period) ┘└────────── latency ──────────────┘

7. Implementation

import statistics
true_range = 5.000
readings = [5.12, 5.11, 5.13, 5.12, 5.12]           # five repeated measurements of the same target
mean = statistics.fmean(readings)
bias = mean - true_range                            # accuracy error (systematic)
sd = statistics.pstdev(readings)                    # precision (random scatter)
print(round(mean, 3), round(bias, 3), round(sd * 1000, 1))
quantise = lambda x, step: round(round(x / step) * step, 6)
print(quantise(5.1234, 0.01), quantise(5.1234, 0.1))   # resolution 1 cm vs 10 cm
period, transport, processing, speed = 0.100, 0.020, 0.030, 2.0   # 10 Hz sensor; seconds; robot speed m/s
latency = transport + processing                   # delay from measurement to use
worst_age = latency + period                       # data can also wait a full period for the next sample
print(round(latency * 1000), round(worst_age * 1000), round(worst_age * speed, 2))

Printed (checked by the site’s tests):

5.12 0.12 6.3
5.12 5.1
50 150 0.3

Reading it: five readings of a target at 5.000 m average 5.12 m. The bias (accuracy error) is 0.12 m; the scatter (precision) is only 6.3 mm: precise and inaccurate, so averaging will not help but a calibration offset will. Quantising 5.1234 m to 1 cm gives 5.12 m and to 10 cm gives 5.1 m: resolution limits what you can see, not how right it is. A 10 Hz sensor with 20 ms transport and 30 ms processing has 50 ms latency and, since a reading can wait up to a full 100 ms period, data up to 150 ms old: at 2 m/s the robot has moved 0.3 m.

8. Real examples

  • A LiDAR range offset of a few centimetres from the mounting reference: a bias, fixed by calibration.
  • An IMU with low noise but a warm-up bias drift: precise, increasingly inaccurate.
  • A camera at 30 Hz delivered after a 100 ms driver buffer: fast rate, long latency.

9. Failure scenarios

  • Averaging a biased sensor and believing the average is right.
  • Using the rate as the latency.
  • Accepting a 1 mm resolution as 1 mm accuracy.
  • Ignoring the waiting term when rates are low.

10. Troubleshooting

  1. Measure a known target repeatedly: the mean minus truth is the bias, the standard deviation is the precision.
  2. Check resolution by stepping the target in small increments and watching the output steps.
  3. Measure latency end to end (see the bag-latency guide).
  4. Fix bias by calibration, noise by filtering, latency by pipeline changes and delayed-measurement handling.

11. Validation

  • Bias and scatter reported separately, with sample size and conditions.
  • Latency distribution (mean, maximum) measured on the integrated robot.
  • The example prints the values above (executed by the site tests).

12. Engineering checklist

13. Further references

  • Metrology vocabulary (accuracy, precision, resolution): general measurement texts, for example the ISO/BIPM guides to measurement vocabulary. Not fetched here.

Related on FixTheRobot