Supporting Robotic Software Migration Using Static Analysis and Model-Driven Engineering
The wide use of robotic systems in several application domains contributed to developing robotic software highly coupled to the hardware platform running the robotic system. Due to increased maintenance cost, lack of tacit knowledge or changing business priorities, the robotic hardware is infrequently upgraded, thus increasing the risk the robotic system to fall into technology stagnation. Reducing this risk entails migrating the system and its software to a new hardware platform. Conventional software engineering practices such as complete re-development and code-based migration, albeit useful in supporting the resolution of these obsolescence issues, they are time-consuming, error-prone and overly expensive. Our RoboSMi model-driven approach supports the migration of the software controlling a robotic system between hardware platforms. First, RoboSMi executes static analysis on the robotic software of the source hardware platform to identify platform-dependent and platform-agnostic software constructs. By analysing a model that expresses the architecture of robotic components on the target platform, RoboSMi establishes the hardware configuration of those components and suggests software libraries for each component whose execution will enable the robotic software to control the components. Finally, RoboSMi through code-generation produces software for the target platform and indicates areas that require manual intervention by robotic engineers to complete the migration. We evaluate the applicability of RoboSMi and analyse the level of automation and performance provided from its use by migrating two robotic systems deployed for an environmental monitoring and a line following mission from a Propeller Activity Board to an Arduino Uno.