Automatic calibration
Every AAA system must be capable of self-calibration. This enables any real AAA factory to automatically generate a corresponding virtual AAA factory which is in precise registration and synchronization with the real factory. There are no specific restrictions in the architecture as to how this is to be done. In minifactory, which is AAA compliant, a specific method is under development.
A minifactory will use one of two schemes for self-calibration. In the simpler of the two schemes, each courier agent receives a list from the interface tool of all the manipulators and overhead processors that should be over its workspace. They can then use their coordination sensor to precisely localize the overhead agents. This information can then be used by the interface tool to update its representation of the factory to a geometrically correct one.
In the second scheme, each courier performs sensor-based coverage of its workspace. For this process, the courier starts with no a priori information and runs a reactive geometric algorithm to explore while looking for overhead agents using its optical coordination sensor. The window on the left in the picture above shows a (highly unrealistic) minifactory layout. The window on the right shows a graphical representation of the courier's map as it is being built. The courier senses the bumpers at the edges of the platens using its magnetic position sensor to determine their geometry and uses the map it creates to direct the coverage process. Generating a complete coverage of its workspace ensures the detection of all overhead agents, even ones placed incorrectly. The algorithm developed (entitled CCR; Contact-based Coverage of Rectilinear Environments) has a unique reactive structure that will allow the couriers to cooperate during coverage, as described below, and has been proven to produce a complete coverage of any rectilinear environment. A schematic diagram of the components of CCR and how they relate to the developing map C and courier position p is shown here; further details can be found in the paper below.
The picture below shows a courier performing coverage of our prototype system (to which two small obstacles have been added), which it is able to do in about 90 seconds, including localizing a fixed beacon placed near the top of the photo.
In addition, when several couriers are performing coverage at the same time, an algorithm has been written under which they can register themselves (and their maps) to each other. This is done either through recognizing common overhead agents in their maps, or by actual collisions between couriers. (Since they start with no map information, collisions are inevitable during this process, but actually they can be quite useful!) The interface tool can also watch this process to generate a new global factory representation (virtual factory). Then, once the couriers are registered to each other, they share information about their maps to increase their efficiency. That is, each courier can avoid area covered by one of its colleagues and therefore spend less time while still developing a complete map of its workspace. This is enabled by keeping the sensor-based coverage algorithm as is while adding an additional algorithmic component that alters the map used for coverage - since the coverage process does not make plans, but rather uses the map after every trajectory to decide where to continue coverage, simply altering the map (in a correct way) will enable cooperation.
The algorithm used is actually somewhat more general than needed for the minifactory, and the picture (above) shows a simulation of three robots working together to cover their shared workspace. This algorithm (DCR; Distributed Coverage of Rectilinear Environments) has also been proven complete, in that for any shared rectilinear environment, at least one robot will reach each point in it. A schematic of the algorithmic components that make up DCR (as well as the interaction between them and between two robots) is given here. Note that one component, CCRM, is the single robot coverage algorithm (with minor changes), which has been integrated into the cooperative framework. Again, more details can be found in the paper.
In addition, simulations have shown that efficiency is indeed increased through the use of cooperation - each robot in a two-robot team requires about 2/3 of the time required by a robot working alone in the same environment, and each robot in a three-robot team requires just over half the time.