Geração de Código para Robôs implementados com ROS a partir de modelos UML/MARTE
Resumo
Este trabalho apresenta uma abordagem para a geração de código fonte para sistemas embarcados usandos em robôs a partir de modelos UML anotados com o perfil MARTE. O código fonte gerado utiliza a semântica e as bibliotecas disponíveis no Robot Operating System (ROS) que é amplamente utilizado no projeto e implementação de robôs tanto no meio industrial como no acadêmico. O objetivo principal deste trabalho é a aplicação de técnicas de engenharia guiada por modelos (MDE) no projeto de robôs visando a prototipação rápida de robôs através de simuladores e também a implementação real deles. O trabalho foi validado através de um estudo de caso que mostra a viabilidade da proposta na implementação de um robô simples. Os resultados fornecem indicativos que a abordagem pode ser aplicada em sistemas mais complexos que envolvem multiplos robôs que interagem para realizar tarefas em ambientes industriais.
Referências
M. A. Wehrmeister, et al. “Combining aspects and object-orientation in model-driven engineering for distributed industrial mechatronics systems,” in Mechatronics, Vol. 24, no. 7, pp. 844-865, Oct. 2014. doi: 10.1016/j.mechatronics.2013.12.008
M. Leite, M. A. Wehrmeister, “System-level design based on UML/MARTE for FPGA-based embedded real-time systems,” in Design Automation for Embedded Systems, Vol. 20, no. 2, pp. 127- 153, Jun. 2016. doi: 10.1007/s10617-016-9172-6
Object Management Group (OMG), Unified Modeling Language version 2.5.1, 2017, https://www.omg.org/spec/UML/2.5.1/.
Object Management Group (OMG), UML Profile for Modeling and Analysis of Real-Time Embedded Systems (MARTE), version 1.2, 2018, https://www.omg.org/spec/MARTE/.
Robert Filman, et al. Aspect-Oriented Software Development. 1st ed. Addison-Wesley Professional, 800 p. 2004.
E. P. de Freitas, et al., “DERAF: A High-Level Aspects Framework for Distributed Embedded Real-Time Systems Design”, in Early Aspects: Current Challenges and Future Directions. Lecture Notes in Computer Science, vol 4765, pp 55-74, 2007. doi: 10.1007/978-3-540-76811-1_4
M. A. Wehrmeister, E.P. de Freitas, C.E. Pereira. “An Infrastructure for UML-Based Code Generation Tools” In: Analysis, Architectures and Modelling of Embedded Systems. IFIP AICT, vol.310. pp.32-43, 2009, doi: 10.1007/978-3-642-04284-3_4
M. A. Wehrmeister, E. P. Freitas, C. E. Pereira and F. Rammig, "GenERTiCA: A Tool for Code Generation and Aspects Weaving," 2008 11th IEEE International Symposium on Object and Component- Oriented Real-Time Distributed Computing (ISORC), Orlando, FL, 2008, pp. 234-238. doi: 10.1109/ISORC.2008.67
R. Rajkumar, M. Gagliardi and Lui Sha, "The real-time publisher/subscriber inter-process communication model for distributed real-time systems: design and implementation," Proc. Real- Time Technology and Applications Symposium, Chicago, IL, USA, 1995, pp. 66-75. doi: 10.1109/RTTAS.1995.516203
A. P. D. Binotto, et al. “Sm@rtConfig: a Context-Aware Runtime and Tuning System using an Aspect-Oriented Approach for Data Intensive Engineering Applications”, in Control Engineering Practice, vol. 21, no. 2 p. 204-217, Feb. 2013. doi: 10.1016/j.conengprac.2012.10.001
T. G. Moreira, et al. "Automatic code generation for embedded systems: From UML specifications to VHDL code," 2010 8th IEEE International Conference on Industrial Informatics, Osaka, 2010, pp. 1085-1090. doi: 10.1109/INDIN.2010.5549590
Open Source Robotics Foundation., Robot Operating System (ROS), http://www.ros.org.
L. Joseph, and J. Cacace, Mastering ROS for Robotics Programming - Second Edition: Design, build, and simulate complex robots using the Robot Operating System. 2018. Packt Publishing Ltd.
J. Baumgartl et al. "Towards easy robot programming: Using DSLs, code generators and software product lines”, Proc. of the 8th Int. Joint Conference on Software Technologies, Reykjavik, 2013, p. 548-554.
D. Brugali And N. Hochgeschwender. “Software Product Line Engineering for Robotic Perception Systems”. International Journal of Semantic Computing, v. 12, n. 01, p. 89-107, 2018.
Kai Adam, et al. “Model-driven separation of concerns for service robotics”. In: Proc. of the International Workshop on Domain-Specific Modeling. ACM, 2016. p. 22-27.
Y. Hua, et al. "From AutomationML to ROS: A model-driven approach for software engineering of industrial robotics using ontological reasoning," 2016 IEEE 21st Int. Conf. on Emerging Technologies and Factory Automation (ETFA), Berlin, 2016, pp. 1-8.
C. Schlegel, et al. Design abstraction and processes in robotics: From code-driven to model-driven engineering. In: Int. Conf. on Simulation, Modeling, and Programming for Autonomous Robots. Springer, Berlin, Heidelberg, 2010. pp. 324-335.
N. Hammoudeh Garcia, et al. , "Bootstrapping MDE Development from ROS Manual Code - Part 1: Metamodeling," 2019 IEEE Int. Conf. on Robotic Computing (IRC), Naples, Italy, 2019, pp. 329-336.
G. Bardaro, et al. “A use case in model-based robot development using AADL and ROS”. In: Proceedings of the International Workshop on Robotics Software Engineering. ACM, 2018. p. 9-16.
E. Estévez, et al. “A novel model-driven approach to support development cycle of robotic systems”. International Journal of Advanced Manufacturing Technology, v. 82, n. 1-4, p. 737-751, 2016.
M. Wenger, et al "A model based engineering tool for ROS component compositioning, configuration and generation of deployment information," 2016 IEEE 21st Int. Conf. on Emerging Technologies and Factory Automation (ETFA), Berlin, 2016, pp. 1-8.
N. GOBILLOT, Nicolas, et al.. “A Design and Analysis Methodology for Component-Based Real-Time Architectures of Autonomous Systems”. Journal of Intelligent & Robotic Systems, p. 1-16, 2018.