LiveBaster - self-learning Universal Artificial Intelligence (UAI)
Use case for Unity3D
Method of connecting and preliminary training of BC for simple tasksAs a fairly common variant of the use of SAI, you can use BC to control the movements of the robot, and there is no difference which way is used. It can be walking, flying, crawling and using any other kind of movement robot. To pre-configure the SAI and gain experience, it is possible to connect the BC in various simulation packages, for example Unity3D. It is possible to create the intended device in a primitive form, as long as the number of sensors and controlled actuators (joints) is consistent with the existing robot, you also need to set gravity approximately corresponding the one of a real robot. It is also important to provide restrictions in the movement of joints corresponding to the simulated device. If this is not done, then the training can largely be inconsistent with the original robot control. Decimal numbers are used as signals for BC, if in the real robot signals are transmitted through a standard bus (Modbus, Profibus or similar), then surely you will need a transcoder, since the signals will most likely be in binary code. After that, set a simple task for the robot (to reach the desired point or, for example, the desired position of the body) Ц and start the process, the robot starts moving, trying to perform the task Ц and at the same time the learning process will occur. In the beginning (probably long enough) motions will be meaningless, and gradually it will perform tasks faster. Please note that a well-designed robot (optimal arrangement of limbs or wings, stability of equilibrium, etc.) learns much faster than an unsuccessful or unstable structure. After that, you can transfer the knowledge base to train a real robot. It is necessary to make sure that in a real robot signals have the same value, the same sign and magnitude as in the emulation, only in this case such knowledge base will be useful. This method of training is desirable, as it saves time for training, significantly reduces the cost of resources for the robot (energy, time), reduces its wear and tear during training (can be significant).
Method of connecting of BC for complex tasksA complex task can be regarded as the task where the function of the different segments of the robot vary significantly. For example, technical vision and movement, simultaneous movement of several robots - football players (or "cloud" of robots), the work of the crane on the chassis (chassis movement and the movement of the crane is virtually unrelated). In fact, there is a choice of two options Ц either one BC controls the entire system, or each dedicated (at the request of the robot designer) the system is controlled by a separate BC, and the Central BC is launched (instead of it, you can use any version of the usual AI, in some cases, it is even preferable), which controls the entire system from several BCs. There is no single solution, the choice is made by the robot builder based on their experience and goals of the design. As for the technical vision, it is produced for the SAI-3-1.00, so the technical vision will always be in the form of a separate BC. When choosing a scheme for the other cases, you can simply analyze the advantages and disadvantages of each connection circuit of the BC. It is necessary to consider that the SAI is arranged in such a way that there is no difference for it where, how and in what sequence the signal sensors and actuators are located. The received information signal is not connected with the location of the sensor, the adjacent numbering control signals can be sent to different limbs of the same robot, as well as to different nodes in different robots. There is no need to prescribe which signals from where and where to go. All this information is determined by the SAI in the learning process, and in the process you can switch lines Ц this will only lead to the rapid (usually) retraining of SAI "on the go". Here you can draw an analogy with vision Ц the baby sees an inverted image, but quite quickly the brain "turns" - and we end up seeing the right picture. But if you constantly wear inverting glasses, then pretty quickly the picture will turn over again. This exact principle is used in processing incoming signals from the sensors of the SAI. Based on the above, the separation of sensor signals and control signals into groups, controlled by each individual SAI, occurs within the selection of individual functional groups. The criterion for the correct selection of functional groups is the speed of learning the robot, if the groups are selected optimally, then the training occurs much faster; but this does not mean that you can not choose the functional groups in another way. As an example, an excavator robot is created. Here it makes sense to use SAI-3 for the image processing (and selection of objects), for the movement of the chassis Ц the second SAI, and for the excavator Ц the third SAI. In this case, it is best to use AI for General control of the design, which will set tasks to functional groups controlled by the SAI and receive signals from them.
Control methodThe method of controlling the SAI is significantly different from the usual method for systems with artificial intelligence. This is due to the fact that usually the AI-controlled systems are created for specific purposes and in fact such AI represents a very complex and very intelligent feedback. As you know, the goals for achievement in the feedback system are set externally. In contrast, the SAI is an analogue of the living being and defines its goals by itself. Therefore, you can implement two management methods. One of them can be called training and is not very different from the training of animals (of course taking into account the specifics of the subject of training). But the robot created for this purpose has to pass a certain stage of development. In the early stages (newly created robot) the only possibility is to create an analogue of innate reflex. That is, the robot was given the "innate" desire to do something. As soon as the goal is achieved, the desire can be replaced.