The system is summarized in the block diagram below:
The chassis was designed to have minimal height so that the pallet will not be required to be lifted too far off the ground. The chassis must also have a large enough surface area to fully support unbalanced pallets and be made of readily available parts for easy replacements under failure. The design was optimized to be simple with minimal moving parts. The rigid design of the pallet fulfills the 3000lbs weight requirement. Spring loaded ball casters are situated at each of the corners. The chassis is to be custom made because there are no pre-made chassis available for our application. Most of the parts were machined to spec.
The electronics were divided into high power drivetrain and low power embedded controls. The high power electronics consists of the motors drawing large amounts of power from a fairly unregulated power rail. Whereas the low power consists of all the embedded and low voltage electronics that requires a clean power rail. The separation of these two power lines allows for a safe operation, clean power, and simple power management.
The interconnects of the electronics were also an integral part of the electrical design. The robot consists of two main components, the Android platform (IFC6410), and the Arduino platform. The distribution of the design into these two sections falls under the processing and response time requirements. The more time demanding components lies on the Arduino, and the more processing demanding components lies on the Android. Hence, all of the vision processing components are located on the Android platform and all of the low level motor controls and sensor readings are located on the Arduino. The real-time inner control loop for the motors occurs on the Arduino with the sensor readings, and the slow outer control loop for the control commands occurs on the Android with the image processing. The block diagram below details the control loops levels and where the processing is located.
The software was designed with an intent that commands must reach the robot in a timely manner and that there are minimal delays in processing the data. The low level software implementation consists of driver code, software protocol, high level system logic and control logic. The driver code interfaces the specific hardware connected to each of the embedded processors by following the data sheet provided by the hardware manufacturer. Below shows the software flow amongst the Arduino and the Android platforms.
The shelving design includes platforms which holds pallets raised above the ground such that the robots would be able traverse under the pallets. The robots would be able to lift the pallets and move with the pallet held slightly above the platforms. The design is described in the rendering shown below. The design works with multiple floors as well. Imagine the resting blocks extruded upwards as pillars with square resting platforms attached to the pillar.