A single script can connect perception, inventory updates, navigation goals, and customer assistance quickly. It also makes every failure affect every concern.
The retail robot used loosely coupled nodes around distinct responsibilities: perception and tracking, inventory interpretation, ERP communication, navigation, and customer guidance.
Why the split matters
The detector may restart without resetting the map. Odoo may be unavailable without preventing localisation. A customer request may change the navigation goal without changing shelf-level inventory history.
Topics and service boundaries make those relationships visible.
Integration is still the hard part
Decoupling does not remove coordination. Messages need stable identifiers, compatible timing, known coordinate frames, and explicit ownership of state.
The architecture is useful because it localises failure while keeping the integration contracts reviewable.