Concept Overview
From an architecture perspective the Transport Robot is envisioned as a “system of systems” – the robot’s central computer is connected to its various subsystems via a “central nervous system” USB network. The central computer sends commands to the various subsystems and then later receives acknowledgement that the commands have either been completed or aborted.
The robot’s locomotion platform is comprised of four such subsystems – one subsystem per each leg of the robot. Instead of the central computer directly controlling the motors of each leg, microcontrollers embedded within each leg translate high-level “move” commands into the low-level signals required to drive each leg’s motor. For example, suppose the robot wants to move forward one meter. After determining that the most efficient path is to simply move forward the required distance, the robot’s central computer sends commands to each leg commanding them to move forward the one meter distance. Each leg’s microcontroller then computes the number of rotations required of the motor given the wheel’s physical properties pre-programmed into the controller. The controller pulses the motor enough times to cover the required distance, then sends an acknowledgement to the host computer indicating that the command has been accomplished.
The microcontroller is also smart enough to handle anomalous situations. Suppose that the wheel is stuck. In this case the controller determines from the motor’s optical encoder that the shaft isn’t rotating, aborts the command, and then sends the host controller a message indicating that the command was not completed. Other error conditions include detecting that weight is not on the wheel (i.e. the wheel is dangling in space), the motor is overheating, the motor is drawing too much current, the battery is losing charge, etc.
Host Command Interface
This section documents the command interface between the intelligent motor subsystem and the main computer. Although the commands are presented using a procedural notation, the host computer sends each command as an asynchronous request packet. Once the command completes the microcontroller returns the result to the main computer as a separate response packet.
Requests:
TBD
Responses:
TBD