A method performed by one or more data processing apparatus, the method comprising: identifying a set of tasks to be performed by a set of workcells (127, 422, 512, 612), wherein each workcell is adapted to perform one or more particular tasks and at least one workcell performs a different task than each other workcell; for each task: selecting a workcell (127, 422, 512, 612) to perform the task based at least on the one or more particular tasks that each workcell is adapted to perform; selecting, from a set of autonomous guided vehicles, AGVs (125, 400, 500, 600), an AGV (400, 500, 600) to transport the selected workcell (422, 512, 612) to a location at which the task is to be performed, wherein each AGV (400, 500, 600) includes an electro-mechanical interface that is adapted to i) connect to or lift multiple different types of workcells (127, 422, 512, 612) and ii) provide charging power to or receive charging power from multiple different types of workcells (127, 422, 512, 612), and causing the selected AGV (400, 500, 600) to transport the selected workcell (127, 422, 512, 612) to the location at which the task is to be performed and provide charging power to or receive charging power from the selected workcell (127, 422, 512, 612), characterized in that each of one or more of the workcells (127, 422, 512,612) comprises a base (424, 614) having fork receiving areas (428A, 428B, 628A, 628B) for receiving forks of forklift AGVs and a tow hitch (425, 517) for receiving a tow pin (410, 510) of a tugger AGV (400, 500). identifying a set of tasks to be performed by a set of workcells (127, 422, 512, 612), wherein each workcell is adapted to perform one or more particular tasks and at least one workcell performs a different task than each other workcell; for each task: selecting a workcell (127, 422, 512, 612) to perform the task based at least on the one or more particular tasks that each workcell is adapted to perform; selecting, from a set of autonomous guided vehicles, AGVs (125, 400, 500, 600), an AGV (400, 500, 600) to transport the selected workcell (422, 512, 612) to a location at which the task is to be performed, wherein each AGV (400, 500, 600) includes an electro-mechanical interface that is adapted to i) connect to or lift multiple different types of workcells (127, 422, 512, 612) and ii) provide charging power to or receive charging power from multiple different types of workcells (127, 422, 512, 612), and causing the selected AGV (400, 500, 600) to transport the selected workcell (127, 422, 512, 612) to the location at which the task is to be performed and provide charging power to or receive charging power from the selected workcell (127, 422, 512, 612), selecting a workcell (127, 422, 512, 612) to perform the task based at least on the one or more particular tasks that each workcell is adapted to perform; selecting, from a set of autonomous guided vehicles, AGVs (125, 400, 500, 600), an AGV (400, 500, 600) to transport the selected workcell (422, 512, 612) to a location at which the task is to be performed, wherein each AGV (400, 500, 600) includes an electro-mechanical interface that is adapted to i) connect to or lift multiple different types of workcells (127, 422, 512, 612) and ii) provide charging power to or receive charging power from multiple different types of workcells (127, 422, 512, 612), and causing the selected AGV (400, 500, 600) to transport the selected workcell (127, 422, 512, 612) to the location at which the task is to be performed and provide charging power to or receive charging power from the selected workcell (127, 422, 512, 612),