Greg Cober
Jeremiah Jones
John Kieff
Rebecca Ouding
Roxanne Ruedy
Embedded systems are often used in the environments where the conditions and requirements may change after their deployment. Re-composable software design is critical in such systems to cope with the unpredictable changes in environment or requirements. Current techniques support reconfiguration that uses an existing module (backup spare) to replace a faulty module. A car always carries a backup wheel to replace a defeated wheel when needed. However, current techniques do not support real-time composition of a new module or re-composition of an existing module at run time and in real time. For example, if the engine of a vehicle needs to be replaced, the work has to be done in a garage. Normally, a vehicle is not designed in such a way that an engine can be replaced on site if the engine breaks. On the hand, it is possible to design the engine and other components of a vehicle in a recomposable way, so that they can be replaced on site in a short period of time. There are benefits of the recomposable design. The vehicle can send its runtime data to a Remote Control Center (RCC). The RCC can detect that the engine is sick and needs to be replaced before the engine breaks. Another possible situation is that the RCC can detect that the vehicle is being used in an environment where a different engine is needed. Thus, the RCC can order a new engine or redesign a new engine that meet the requirement in the environment the vehicle is being used; deliver the new engine to the site of the vehicle; replace the engine in real-time.
In this project, you will implement a system to demonstrate this idea. The tasks include programming following tasks:
(1) Two or three Sumobots (robot cars) will be used, one or two of them are challengers, one is the defender. The challengers try to travel from point A to point B. The defender tries to block them from reaching their destination.
(2) RCC that have a collection of program components (services). Each SumoBot can store a small number of components that tells how to do the next a few jobs. If a situation occurs that cannot be dealt with, the SumoBot will have to contact the RCC, which will re-compose a program using different components and re-deploy the program to the SumoBot.
(3) A simulation of the movement of the Sumobots will be displaced on the monitor of the RCC.
To learn more about the project, please visit:
http://asusrl.eas.asu.edu/EmbeddedExplorer/experiment.html
http://whoknows.eas.asu.edu/~wwsong/sumoshow.htm
Fahey. “C# OpenGL Wrapper”.