A robotic carton unloader for unloading and loading articles, the robotic carton unloader comprising: a mobile body sized for driving in and out of a truck on a plurality of wheels; a robotic arm coupled to the mobile body and configured to load and unload articles; a vision camera configured to capture one or more images of one or more of a first location and a second location in the truck; the robotic carton unloader being characterised by: a system control box configured to determine an appropriate loading or unloading sequence for the robotic carton unloader based on the captured one or more images of the first location and the second location; and a manipulator attached to a movable free end of the robotic arm, wherein the manipulator comprises a plurality of independently individually movable head elements (160a, 160b, 160c) movably attached to a cross member, each head element (160a, 160b, 160c) attaches to a respective vertical guide (166a, 166b, 166c) and each is independently movable up or down upon a vertical axis of the respective vertical guide (166a, 166b, 166c), and wherein the head elements (160a, 160b, 160c) are configured to enable the manipulator to be configurable based on a captured image of the first location to match a first orientation of articles in the first location, and reconfigurable based on a captured image of the second location to match an orientation of the second location for unloading and loading articles based on the loading or unloading sequence. a mobile body sized for driving in and out of a truck on a plurality of wheels; a robotic arm coupled to the mobile body and configured to load and unload articles; a vision camera configured to capture one or more images of one or more of a first location and a second location in the truck; the robotic carton unloader being characterised by: a system control box configured to determine an appropriate loading or unloading sequence for the robotic carton unloader based on the captured one or more images of the first location and the second location; and a manipulator attached to a movable free end of the robotic arm, wherein the manipulator comprises a plurality of independently individually movable head elements (160a, 160b, 160c) movably attached to a cross member, each head element (160a, 160b, 160c) attaches to a respective vertical guide (166a, 166b, 166c) and each is independently movable up or down upon a vertical axis of the respective vertical guide (166a, 166b, 166c), and wherein the head elements (160a, 160b, 160c) are configured to enable the manipulator to be configurable based on a captured image of the first location to match a first orientation of articles in the first location, and reconfigurable based on a captured image of the second location to match an orientation of the second location for unloading and loading articles based on the loading or unloading sequence. a system control box configured to determine an appropriate loading or unloading sequence for the robotic carton unloader based on the captured one or more images of the first location and the second location; and a manipulator attached to a movable free end of the robotic arm, wherein the manipulator comprises a plurality of independently individually movable head elements (160a, 160b, 160c) movably attached to a cross member, each head element (160a, 160b, 160c) attaches to a respective vertical guide (166a, 166b, 166c) and each is independently movable up or down upon a vertical axis of the respective vertical guide (166a, 166b, 166c), and wherein the head elements (160a, 160b, 160c) are configured to enable the manipulator to be configurable based on a captured image of the first location to match a first orientation of articles in the first location, and reconfigurable based on a captured image of the second location to match an orientation of the second location for unloading and loading articles based on the loading or unloading sequence.