A robot for packing produce comprising; a plurality of pickup locations for the produce, the pickup locations arranged in an array, a drop off zone for the produce, and a plurality of heads, arranged in an array, each head for picking up, holding and dropping off an item of produce, wherein the produce packing robot further comprises a controller to control the movement of the heads, wherein the plurality of heads move together as a set in a first direction between the array of pickup locations and the drop off zone, wherein each head is independently moveable in a second direction, being a direction orthogonal to the first direction, to vary the spacing of the plurality of heads in the second direction, and wherein each of the plurality of pickup locations further comprises an orientation module for presenting an item of produce in a desired pickup orientation with respect to at least one feature of the produce, each orientation module having: at least one orientation sensing camera for detecting and determining the location of said at least one feature, and an orientator configured to manipulate said item of produce into a desired pickup orientation, characterised in that: the orientation module is configured to indicate to the controller when the feature is detected by the orientation sensing camera that an item of produce is nearly ready to be picked up, and the controller is configured to make a decision to wait or not to wait for a nearly ready item before moving the heads to the drop off zone. a plurality of pickup locations for the produce, the pickup locations arranged in an array, a drop off zone for the produce, and a plurality of heads, arranged in an array, each head for picking up, holding and dropping off an item of produce, wherein the produce packing robot further comprises a controller to control the movement of the heads, wherein the plurality of heads move together as a set in a first direction between the array of pickup locations and the drop off zone, wherein each head is independently moveable in a second direction, being a direction orthogonal to the first direction, to vary the spacing of the plurality of heads in the second direction, and wherein each of the plurality of pickup locations further comprises an orientation module for presenting an item of produce in a desired pickup orientation with respect to at least one feature of the produce, each orientation module having: at least one orientation sensing camera for detecting and determining the location of said at least one feature, and an orientator configured to manipulate said item of produce into a desired pickup orientation, characterised in that: the orientation module is configured to indicate to the controller when the feature is detected by the orientation sensing camera that an item of produce is nearly ready to be picked up, and the controller is configured to make a decision to wait or not to wait for a nearly ready item before moving the heads to the drop off zone. at least one orientation sensing camera for detecting and determining the location of said at least one feature, and an orientator configured to manipulate said item of produce into a desired pickup orientation, characterised in that: the orientation module is configured to indicate to the controller when the feature is detected by the orientation sensing camera that an item of produce is nearly ready to be picked up, and the controller is configured to make a decision to wait or not to wait for a nearly ready item before moving the heads to the drop off zone.