A robotic vending machine comprising: a housing comprising a plurality of delivery ports ; a physical item storage unit for storing therein a distribution of different items to be vended, the physical item storage unit comprising a plurality of item access ports ; a plurality of mobile robot modules for transporting items to one of the plurality of delivery ports, the plurality of mobile robot modules being arranged to store, when in use, a predicted number and assortment of items to vend; a central processing resource capable of communicating with the plurality of mobile robot modules , the processing resource being arranged to support a machine learning module; a plurality of data sources arranged to provide data to the machine learning module, at least one of the data sources comprising historical vending data; wherein the machine learning module is arranged to analyse the historical vending data provided by the plurality of data sources and to determine a plurality of respective actions for the plurality of mobile robot modules; the central processing resource is arranged to generate and communicate respective control instructions to the plurality of mobile robot modules based on the plurality of respective actions determined by the machine learning module; and the selected mobile robot module is arranged to receive the control instruction and to operate in response to the control instruction in order to convey the item to a determined delivery port; wherein the central processing resource is arranged to predict respective initial optimised locations for the plurality of mobile robot modules relative to one of the plurality of item access ports and the central processing resource is arranged to generate and communicate an initial positioning instruction to the one or more of the plurality of mobile robot modules. a housing comprising a plurality of delivery ports ; a physical item storage unit for storing therein a distribution of different items to be vended, the physical item storage unit comprising a plurality of item access ports ; a plurality of mobile robot modules for transporting items to one of the plurality of delivery ports, the plurality of mobile robot modules being arranged to store, when in use, a predicted number and assortment of items to vend; a central processing resource capable of communicating with the plurality of mobile robot modules , the processing resource being arranged to support a machine learning module; a plurality of data sources arranged to provide data to the machine learning module, at least one of the data sources comprising historical vending data; wherein the machine learning module is arranged to analyse the historical vending data provided by the plurality of data sources and to determine a plurality of respective actions for the plurality of mobile robot modules; the central processing resource is arranged to generate and communicate respective control instructions to the plurality of mobile robot modules based on the plurality of respective actions determined by the machine learning module; and the selected mobile robot module is arranged to receive the control instruction and to operate in response to the control instruction in order to convey the item to a determined delivery port; wherein the central processing resource is arranged to predict respective initial optimised locations for the plurality of mobile robot modules relative to one of the plurality of item access ports and the central processing resource is arranged to generate and communicate an initial positioning instruction to the one or more of the plurality of mobile robot modules. <EOS>