Prévia do material em texto
PAPEL CURTO O artigo apresenta a modelagem, simulação e implementação de robôs móveis baseados em componentes robóticos sem fio (WRCs) por meio de um framework de desenvolvimento baseado em modelos que utiliza a Linguagem de Modelagem Unificada (UML) e Redes de Petri Coloridas (CPNs). Cada WRC é um módulo autônomo composto por uma unidade de comunicação sem fio, uma unidade de processamento e sensor(es)/ atuador(es) para realizar uma função específica. A arquitetura WRC é descrita genericamente por diagramas UML para liderar o desenvolvimento de sistemas robóticos baseados em WRC. O framework proposto customiza os diagramas UML com base na análise da plataforma do robô, sua tarefa atribuída e o ambiente operacional. Em seguida, as especificações do design comportamental do WRC são traduzidas para o formalismo dos CPNs. O desenvolvedor complementa os CPNs para gerar um módulo por cada WRC em um CPN hierárquico. A arquitetura WRC e o framework de desenvolvimento são usados para implementar um robô de direção Ackermann e robôs de acionamento diferencial para realizar as tarefas de seguimento de parede e exploração evitando obstáculos, respectivamente. O esquema de validação segue três fases: simulação, simulação de hardware-in-the-loop (HIL) e implementação física de robôs móveis confgurados com os WRCs apropriados. Os resultados experimentais validam o framework de desenvolvimento usando ferramentas de modelagem padrão e formal para orientar a implementação de sistemas robóticos construídos com WRCs. Fernando D. Von Borstel1 · J. Francisco VillaÿMedina1 · Joaquín Gutiérrez1 Além das ferramentas de simulação de robôs móveis [10–13], os desenvolvedores de sistemas robóticos podem usar abordagens de desenvolvimento baseadas em modelos, que incluem notações padrão e linguagens formais para visualizar, analisar e modelar arquiteturas robóticas [14], como a Unifed Modeling Language ( UML) e Redes de Petri Coloridas (CPNs). A UML permite especificar a estrutura e o comportamento de sistemas complexos na fase inicial de concepção do desenvolvimento de software; entretanto, os modelos UML carecem de uma semântica formal para servir de base para gerar modelos executáveis ou realizar uma análise automatizada. Em vez disso, os CPNs fornecem uma representação gráfica e semântica bem definida, adequada para realizar análises e verificações formais baseadas em simulação. Tutoriais práticos sobre UML e CPN podem ser encontrados [15–18]. A UML fornece vários elementos gráficos e regras que compõem um framework para dar múltiplos pontos de vista de sistemas complexos [19]. Além disso, a UML tornou-se a linguagem de modelagem padrão para software e Palavras -chave Redes de Petri Coloridas · Sistemas de eventos discretos · Arquitetura modular · UML · Componente robótico sem fio Arquiteturas fundamentais de controle robótico têm sido definido como uma abstração de como os componentes devem ser conectados e interagir em um robô, como as arquiteturas deliberativa, reativa e híbrida [2]. Vários trabalhos separaram funções e comportamentos em unidades modulares para obter arquiteturas estruturais bem projetadas [3]. Por exemplo, abordagens baseadas em métodos homogêneos/heterogêneos Abstrato módulos para desenvolver comportamentos de navegação, mapeamento, aprendizado, planejamento e locomoção [4-6]; módulos que funcionam concorrentemente e formam redes para se comunicarem entre si [7, 8]; e trabalhos de pesquisa usando computação evolutiva desenvolveram robôs modulares adaptativos [9]. Robôs móveis são sistemas que integram sensores, atuadores e unidades de processamento heterogêneos para realizar tarefas atribuídas em um ambiente específico, incluindo algoritmos apropriados. Vários trabalhos robóticos focam em sistematizar o desenvolvimento de software e hardware, fornecendo frameworks ou arquiteturas para simplificar os esforços na implementação do sistema robótico [1]. 1. Introdução 1 Desenvolvimento de Robôs Móveis Baseados em Robótica Sem Fio Componentes usando UML e redes de Petri coloridas hierárquicas https://doi.org/10.1007/s10846-021-01549-1 Centro de Investigaciones Biológicas del Noroeste, SC, Av. Recebido: 7 de agosto de 2021 / Aceito: 29 de novembro de 2021 / Publicado online: 8 de abril de 2022 * Joaquín Gutiérrez joaquing04@cibnor.mx Instituto Politécnico Nacional 195, Playa Palo de Santa Rita, 23096 La Paz, BCS, México Journal of Intelligent & Robotic Systems (2022) 104: 70 © O(s) Autor(es), sob licença exclusiva da Springer Nature BV 2022 Vol.:(0123456789) 1 3 Machine Translated by Google Neste contexto, uma variedade de frameworks baseados em middleware tem sido propostos para gerenciar a complexidade e heterogeneidade entre os módulos, fornecendo componentes de software reutilizáveis. Por exemplo, o framework de código aberto Robotic Operating System (ROS) é uma biblioteca robótica para padronização de software que inclui ferramentas de visualização, pacotes de funções e um O desenvolvimento de arquiteturas modulares adequadas permitiu a implementação de sistemas robóticos em uma ampla gama de aplicações desde a indústria até a exploração espacial. Este artigo apresenta um framework de desenvolvimento baseado em modelo baseado em ferramentas de modelagem padrão e formal para implementar robôs móveis compostos por componentes robóticos sem fio (WRCs). O quadro proposto leva o Vários trabalhos formalizam a transformação da UML Por exemplo, extensas aplicações internas motivaram pesquisas no desenvolvimento de ligações e juntas pré-fabricadas como módulos para construir manipuladores, incluindo formas e torques distintos, respectivamente [38-40], e módulos de controle [41, 42]. tradução de diagramas UML para modelos CPN hierárquicos de sistemas robóticos baseados em WRC, que são validados progressivamente desde a simulação até a implementação. A contribuição do artigo é um framework de desenvolvimento viável que permite a análise do robô móvel desde a configuração inicial até a interação entre os módulos WRC heterogêneos na simulação modelo-robô-ambiente, simulação HIL com robôs escravos e implementação para executar tarefas atribuídas. desenvolvimento do sistema [20-22]. Por exemplo, um conjunto de construções baseado em UML foi proposto para modelar aplicações robóticas e apoiar a verificação por meio de verificação de modelos e prova de teoremas [23], e perfis de aplicações colaborativas humano- robô em uma cadeia de ferramentas de desenvolvimento orientada a modelos para suportar produção rápida mudanças [24]. Robôs móveis também têm sido explorados, nos quais módulos homogêneos são combinados para criar configurações complexas de manipulação e locomoção construídas a partir de outras mais simples. Por exemplo, módulos mecatrônicos que se conectam e desconectam para fornecer novas configurações [43] ou produzir esquemas de locomoção planar [44] e módulos prismáticos para montar manipuladores [45],a prioridade do centro Nesse período, o veículo detectou e evitou o obstáculo B para realizar a tarefa de seguimento de parede. A Direção do WRC executou as solicitações de curva à esquerda e curva à direita geradas pelo Wall Follow WRC até o 44º segundo. No segundo seguinte, o Obstacle Avoiding WRC gerou uma curva à esquerda 1 3 Fig. 17 Robô autônomo baseado em WRC seguindo uma parede oval, evitando o obstáculo Journal of Intelligent & Robotic Systems (2022) 104: 70 Fig. 18 Trajetórias simuladas (preto) e implementadas (azul) do robô baseado em WRC (plataforma Ack ermann) durante as tarefas de seguir a parede e evitar obstáculos a 0,5 m de distância entre o veículo e a parede 70 Página 22 de 28 Machine Translated by Google A Figura 22 mostra as solicitações geradas pelos WRCs (seguir parede, evitar obstáculos e explorar), roteadas pelo Coordenador e tratadas pelos WRCs correspondentes (direção, tração, diferencial) nos robôs modulares. Os WRCs Wall Following e Obstacle Avoiding do veículo Ack ermann (símbolos verdes) foram mais ativos do que os WRCs Exploring no primeiro, segundo e terceiro veículos diferenciais (símbolos azul, vermelho e magenta, respectivamente) devido à sua funcionalidade inerente. A simulação dos CPNs não cronometrados que modelam o precisão funcional da implantação da arquitetura robótica proposta nos estudos de caso. Os módulos CPN se comportam sem deadlocks, com transições ao vivo e de forma síncrona entre eles e o robô e ambiente simulado/físico. Além disso, o procedimento de registro de cada WRC foi modelado por estruturas de rede com transições L1-live (fred once), que consomem os dados cadastrais armazenados em locais com marcação inicial, que são transferidos uma vez para o Coordenador a ser utilizado para reconhecer aquela WRC pode exigir/lidar com um pedido. O modelo CPN hierárquico permitiu visualizar e compreender a interação dos módulos WRC, ao receber estímulos sensoriais em tempo real e emitir comandos para controlar a navegação autônoma de robôs móveis para a execução de suas tarefas atribuídas em um determinado ambiente. As WRCs forneceram o mecanismo para analisar e avaliar a pedido é menor do que o pedido de virar à esquerda gerado pelo Wall Follow WRC. A Figura 20 mostra várias trajetórias de robôs percorridas a diferentes distâncias da parede: 0,3 m (vermelho), 0,5 m (azul), 0,6 m (verde), 0,8 m (ciano) e 1,0 m (magenta). As trajetórias mostram que o robô Ackermann realizou mais manobras para evitar o obstáculo B quando mais próximo da parede Também foi testada uma configuração com um Coordenador e quatro robôs móveis. Neste caso, o robô Ackermann e os robôs diferenciais realizaram as tarefas de seguimento de parede e exploração em um corredor de escritório, respectivamente (Fig. 21). O robô móvel Seguir e Evitar Obstáculos foi construído utilizando 231 lugares, 82 transições e 608 arcos, onde havia 47 tipos de conjuntos de cores, 102 variáveis e 85 declarações, segundo o software CPN Tools. Tudo isso inclui os elementos traduzidos dos diagramas de atividades UML de cada WRC e os elementos adicionados pelo desenvolvedor. As especificações do Firmware da Unidade do Processador para a implementação de cada WRC incorporado, desenvolvido com base nos modelos UML e CPN, estão resumidas na Tabela 6. O desempenho dos sistemas robóticos baseados em WRC para solicitar, redirecionar e tratar uma requisição é de cerca de 70 ms, um atraso semelhante ao relatado em trabalho anterior [74], no qual outros WRCs disponíveis foram apresentados. No entanto, o Wall Follow WRC perdeu a detecção de parede; assim, gerou requisições para virar à direita e avançar até detectar a parede novamente (ponto R). As trajetórias acima da distância restrita de 0,5 m para seguir a parede e evitar o obstáculo apresentaram comportamento semelhante realizado pelo veículo Ack ermann. O modelo CPN hierárquico executável para o Wall resultado da interação entre os WRCs de Seguir Paredes e Evitar Obstáculos. Por exemplo, a trajetória vermelha segue a parede na distância restrita (0,3 m) até que o Obstacle Avoiding WRC detecte o obstáculo, gerando solicitações de parada, retrocesso, curva à esquerda e avanço para evitá-lo (ponto O). 1 3 Journal of Intelligent & Robotic Systems (2022) 104: 70 Fig. 19 Solicitações dos WRCs de Seguimento de Parede (verde) e Prevenção de Obstáculos (azul) para o intervalo de 40 a 60 segundos Página 23 de 28 70 Machine Translated by Google 11 Conclusão Journal of Intelligent & Robotic Systems (2022) 104: 7070 Página 24 de 28 Fig. 20 Trajetórias executadas pelo veículo Ackermann ao evitar obstáculos e seguir a parede a 0,3 m (vermelho), 0,5 m (azul), 0,6 m (verde), 0,8 m (ciano) e 1,0 m (magenta), respectivamente implementação do protótipo. Essa estrutura aproveita as ferramentas UML e CPN como duas linguagens complementares de modelagem formal e padrão para fornecer instanciações práticas da arquitetura WRC.O framework de desenvolvimento baseado em modelo proposto é uma abordagem viável para projetar, visualizar, especificar e validar a estrutura e o comportamento de sistemas robóticos baseados em WRC a partir de simulação, passando por uma análise de simulação HIL para chegar ao Os resultados das simulações e protótipos físicos validam a implementação de sistemas robóticos baseados em WRC, 1 3 Machine Translated by Google guiado pelo framework de desenvolvimento baseado em modelo. A modularidade e interação sem fio da arquitetura WRC permitem a síntese de sistemas robóticos reconfiguráveis com uma configuração flexível através da adição/remoção de WRCs. Os robôs móveis baseados em WRC podem ser representados em diagramas UML para descrever as especificações estruturais e comportamentais. Esses diagramas UML customizados servem para orientar o desenvolvimento de CPNs hierárquicos usados para validar a operação desses sistemas robóticos. O framework proposto explode os recursos hierárquicos do CPN, que são compatíveis com a arquitetura WRC proposta, para desenvolver um modelo executável do sistema robótico. procedimento de tradução entre os diagramas UML e CPNs hierárquicos. Também incluirá elementos cronometrados para analisar o tempo de resposta, taxa de transferência e consumo de tempo por WRC no modelo CPN hierárquico resultante. Existem limitações neste framework proposto, sendo necessário integrar ferramentas de simulação para considerar a complexidade dos ambientes dinâmicos. O trabalho adicional no quadro de desenvolvimento baseado em modelos reduzirá a lacuna na formalização do A arquitetura é um framework personalizável, que é adaptável desde a seleção de componentes até a implementação de módulos pelos usuários. Seu aprimoramento futuro envolve fornecer funções de gerenciamento de rede ao Coordenador e estender o desenvolvimento de WRCs baseadosem dispositivos de hardware específicos e pertinentes para executar funções como percepção visual, tátil e de profundidade, navegação, planejamento, SLAM e interação humano-robô, incluindo manipulação hábil e locomoção com pernas. A arquitetura WRC também requer a funcionalidade de detecção de falhas para configurar soluções sólidas baseadas em WRC. Finalmente, o WRC baseado 1 3 Página 25 de 28 70 30 337–472 1184 7984 Journal of Intelligent & Robotic Systems (2022) 104: 70 Tração 828–902 Folclore de Parede. 1118 5882 Fig. 22 Número de solicitações geradas pelos quatro robôs móveis baseados no WRC, registrados pelo Coordenador na seguinte ordem: veículo Ackermann (verde) e o segundo (vermelho), terceiro (magenta) e primeiro (azul) veículos diferenciais (KBytes) Linhas (Bytes) Tabela 6 Tamanho do frmware do microcontrolador e memória utilizada. Tamanho do firmware e linhas de código do programa usadas para implementar o robô móvel Wall Following e Obstacle Avoiding (veículo Ackermann). Os tamanhos de ROM e RAM são relatados pelo Ambiente de Desenvolvimento Integrado usado para programar o microcontrolador embutido 395-556 30 Nome do WRC Código de arquivo hexadecimal ROM usada RAM usada 1011 5778 Direção Obs. Evitar. 56 1680 10.630 (Bytes Mín.-Máx.) 229–313 199–315 Coordenador 22 4454 4454 Fig. 21 Veículos baseados em WRC implementados. O veículo Ackermann realiza autonomamente as tarefas de seguir paredes e evitar obstáculos, enquanto os veículos diferenciais realizam autonomamente as tarefas de explorar e evitar obstáculos 42 Machine Translated by Google os sistemas são limitados pelas especificações de sensoriamento, computação, conectividade e tecnologia de atuação utilizada. Referências 1 3 Declarações 937859 Contribuições dos Autores A pesquisa da estrutura de desenvolvimento baseada em modelo, execução do experimento, redação e redação – revisão foram realizadas por FD Von Borstel. A implementação do protótipo, execução do experimento e revisão foram realizadas por JF Villa-Medina. org/10.1177/1729881417710457 10.1145/3342355 1. Kortenkamp, D., Simmons, R., Brugali, D.: Arquiteturas e programação de sistemas robóticos. In: Siciliano, B., Khatib, O. (eds.) Springer Handbook of Robotics, Springer Handbooks, pp. 283–306. Springer, Cham (2016). https:// doi.org/10.1007/ doi.org/10.1016/j.robot.2012.09.002 3. Chen, IM, Yim, M.: Robôs modulares. In: Siciliano, B., Khatib, O. (eds.) Springer Handbook of Robotics, Springer Handbooks, pp. 531–542. Springer, Cham (2016). https://doi.org/10.1007/ Cambridge, MA: The MIT Press, pp. 169–204 (2011) https://doi. Consentimento para publicação Não aplicável. 574714001866 10.1007/s10270-014-0425-1 27. Kucera, E., HrÃz, B.: Modelagem de AS/RS usando redes de Petri coloridas hierárquicas e temporizadas, In: Proc. 23º Internacional Conf. Robô. Região Alpe Adria-Danúbio (RAAD), pp. 1–8 (2014) https://doi.org/10. 20. Miles, R., Hamilton, K.: Aprendendo UML 2.0. O'Reilly, Califórnia 17. Jensen, K.: Redes de Petri Coloridas. Conceitos Básicos, Métodos de Análise e Uso Prático, Monografias EATCS sobre Informática Teórica. Springer-Verlag, Berlim (1996). https://doi.org/10. Journal of Intelligent & Robotic Systems (2022) 104: 70 10.1146/annurev-control-053018-023834 Disponibilidade de dados Todos os dados e códigos personalizados que suportam este estudo estão disponíveis com o autor correspondente, J. Gutiérrez, mediante solicitação razoável. 2011.5752942 Mag. 17(3), 38-55 (2010). https://doi.org/10.1109/MRA.2010. 6. Brunete, A., Ranganath, A., Segovia, S., de Frutos, JP, Hernando, M., Gambao, E.: Tendências atuais no projeto de robôs modulares reconfiguráveis. Int. J. Av. Robô. Sistema 14(3), 1-21 (2017). https://doi. 19. Booch, G., Rumbaugh, J., Jacobson, I.: O Guia do Usuário da Linguagem de Modelagem Unificada, 2ª ed. Addison-Wesley, Westford, MA (2005) 14. Luckcuck, M., Farrell, M., Dennis, L., Dixon, C., Fisher, M.: Especificação formal e verificação de sistemas robóticos autônomos: uma pesquisa. Computação ACM. Sobreviv. 52(5), 1-41 (2019). https://doi.org/ 9. Alattas, RJ, Patel, S., Sobh, TM: Robôs modulares evolucionários: levantamento e análise. J. Intel. Robô. Sistema 95, 815-828 (2019). https://doi.org/10.1007/ s10846-018-0902-9 25. Giua, A., Seatzu, C.: Redes de Petri para o controle de sistemas de eventos discretos. Softw. Sistema Modelo. 14, 693-701 (2015). https://doi.org/ Consentimento para participar Não aplicável. Robotica. 34(04), 791-822 (2016). https://doi.org/10.1017/S0263 5679170 22. OMG: Linguagem de Modelagem Unificada OMG (OMG UML). Versão 2.5.1. Grupo de gerenciamento de objetos. Recuperado em 2 de agosto de 2021. https://www.omg.org/spec/UML 70 Página 26 de 28 16. Lange, CFJ, Chaudron, MRV, Muskens, J.: Na prática: arquitetura de software UML e descrição do projeto. IEEE Softw. 23(2), 40-46 (2006). https://doi.org/ 10.1109/MS.2006.50 21. Cook, S.: Olhando para trás na UML. Softw. Sistema Modelo. 11(4), 471-480 (2012). https://doi.org/10.1007/s10270-012-0256-x 80511817533 Rev. Robô de Controle. Auton. Sistema 2, 63-88 (2019). https://doi.org/ 4. Gilpin, K., Rus, D.: Sistemas de robôs modulares. Robô IEEE. Autom. Financiamento Os autores não têm interesse fnanceiro ou não fnanceiro relevante a divulgar. 11. Harris, A., Conrad, JM: Levantamento de simuladores, estruturas e kits de ferramentas de robótica populares. In: 2011 Proceedings of IEEE South eastcon, pp. 243–249 (2011) https://doi.org/10.1109/SECON. 5. Ahmadzadeh, H., Masehian, E., Asadpour, MJ: Sistemas robóticos modulares: características e aplicações. J. Intel. Robô. Sistema 81, 317-357 (2016). https:// doi.org/10.1007/s10846-015-0237-8 7. Moubarak, P., Ben-Tzvi, P.: Robótica móvel modular e reconfigurável. Robô. Auton. Sistema 60(12), 1648-1663 (2012). https:// 2. Arkin, RC: Robótica baseada em comportamento. Cambridge University Press, Nova York (1998) 18. Van der Aalst, W., Stahl, C.: Colored Petri Nets: the language. Na Modelagem de Processos de Negócios: Uma Abordagem Orientada à Rede de Petri. Agradecimentos Os autores são muito gratos a Jorge Cobos e Alfonso Alvarez pela confecção das estruturas dos componentes usinados. 24. Askarpour, M., Lestingi, L., Longoni, S., Iannacci, N., Rossi, M., Vicentini, F.: Desenvolvimento orientado por modelo formalmente baseado em aplicativos robóticos colaborativos. J. Intel. Robô. Sistema 102, 59, (2021). https://doi.org/ 10.1007/s10846-021-01386-2 12. Torres-Torriti, M., Arredondo, T., Castillo-Pizarro, P.: Levantamento e estudo comparativo de software livre de simulação para robôs móveis. Aprovação ética Não aplicável. Conf., pp. 104–118 (2010) https://doi.org/10.1109/WSC.2010. 26. Gehlot, V., Nigro, C.: Uma introdução à modelagem e simulação de sistemas com Redes de Petri Coloridas, In: Proc. Inverno 2010 Simul. 978-3-319-32552-1 15. Ambler, S.: Os Elementos do estilo UML 2.0. Cambridge University Press, Cambridge (2005). https://doi.org/10.1017/CBO97 8. Seo, J., Paik, J., Yim, M.: Robótica modular reconfigurável.Anu. 978-3-319-32552-1 10. Klanÿar, G., Zupanÿiÿ, B., Karba, R.: Modelagem e simulação de um grupo de robôs móveis. Simul. Modelo. Pratique. Teoria. 15(6), 647-658 (2007). https:// doi.org/10.1016/j.simpat.2007.02.002 org/10.7551/mitpress/8811.001.0001 13. Sharif, M., Chen, X., Pretty, C., Clucas, D., Cabon-Lunel, E.: Modelagem e simulação de um robô móvel omnidirecional não holonômico para programação offline e análise de desempenho do sistema. Simul. Modelo. Pratique. Teoria. 87, 155-169 (2018). https://doi.org/10.1016/j.simpat.2018.06.005 1109/RAAD.2014.7002226 1007/978-3-662-03241-1 (2006) 23. Miyazawa, A., Ribeiro, P., Li, W., Cavalcanti, A., Timmis, J., Woodcock, J.: RoboChart: modelagem e verificação do comportamento funcional de aplicações robóticas. Softw. Sistema Modelo. 18, 3097-3149 (2019). https://doi.org/10.1007/ s10270-018-00710-z Conflitos de interesse/interesses concorrentes Os autores declaram não ter conflito de interesses/interesses concorrentes. A pesquisa, análise formal e redação – revisão – edição foram realizadas por J. Gutiérrez. Todos os autores leram e aprovaram o manuscrito final. Machine Translated by Google https://doi.org/10.1007/978-3-662-03241-1 https://doi.org/10.1177/1729881417710457 https://doi.org/10.1007/s10270-014-0425-1 https://doi.org/10.1017/S0263574714001866 https://doi.org/10.1146/annurev-control-053018-023834 https://doi.org/10.1016/j.robot.2012.09.002 https://doi.org/10.1109/WSC.2010.5679170 1 3 55. Chocron, O., Bidaud, P.: Evoluindo robôs ambulantes para projeto global baseado em tarefas. In: Proceedings of the Congress on Evolutionary Computation 1, pp. 405–412 (1999) https://doi.org/10.1109/CEC. 36. Staines, TS: Mapeamento intuitivo de diagramas de atividade UML 2 no conceito de modelagem fundamental Diagramas de redes de Petri e redes de Petri coloridas. Em: Proc. Eng. de Comp. Sistemas Baseados, 15th IEEE Intl. 46. Castano, A., Behar, A., Will, PM: Os módulos Conro para robôs reconfiguráveis. Trans. IEEE/ASME Mechatron. 7(4), 403-409 (2002). https://doi.org/10.1109/ TMECH.2002.806233 59. Brunete, A., Hernando, M., Gambao, E., Torres, JE: Uma arquitetura de controle baseada em comportamento para micro-robôs heterogêneos modulares, multi configuráveis e encadeados. Robô. Auton. Sistema 60(12), 1607-1624 (2012). https://doi.org/10.1016/j.robot.2012.09.019 30. Jensen, K., Kristensen, LM: Introdução à modelagem e validação, In: Colored Petri Nets Modeling and Validation of Concurrent Systems, 1st ed., pp.1–12 (2009) https://doi.org /10.1007/ doi.org/10.1109/ROBOT.1996.506907 44. Tomita, K., Murata, S., Kurokawa, H., Yoshida, E., Kokaji, S.: Método de auto- montagem e auto-reparação para um sistema mecânico distribuído. Trans. IEEE no Robô. Autom. 15(6), 1035-1045 (1999). https://doi.org/10.1109/70.817668 52. da Silva Ferreira, MA, Begazo, MFT, Lopes, GC, de Oliveira, AF, Colombini, EL, da Silvia Simões, A.: Drone reconfigurable architecture (DRA): uma arquitetura modular multifuncional para veículos aéreos não tripulados (VANTs) ). J. Intel. Robô. Sistema 99, 517-534 (2020). https://doi.org/10.1007/s10846-019-01129-4 Em: Proc. 6º Internacional Conf. Eng. Orientada a Modelos e Suave. Desenvolver. doi.org/10.1016/B978-0-12-420232-0.00004-0 49. Murata, S., Yoshida, E., Kurokawa, H., Tomita, K., Kokaji, S.: Self-repairing Mechanical Systems. Auton. Robôs. 10, 7-21 (2001). https://doi.org/10.1023/ A:1026540318188 1026596403167 42. Xu, W., Han, L., Wang, X., Yuan, H.: Um manipulador modular reconfigurável sem fio e seu sistema de controle. Mecatrônica. 73, 102470 (2021). https://doi.org/ 10.1016/j.mechatronics.2020. 51. Belke, CH, Paik, J.: Mori: um robô de origami modular. IEEE/ Auton. Agente. Sistema Multiagente 31(2), 332-361 (2017). https:// Página 27 de 28 70 35. Zhu, L., Wang, W.: Diagramas UML para redes de Petri coloridas hierárquicas: uma ferramenta automática de desempenho de software. Procedia Eng. 29, 2687-2692 (2012). https://doi.org/10.1016/j.proeng.2012.01.373 1109/ROBÔ.1990.126059 54. Mondada, F., Franzi, E., Guignard, A.: O desenvolvimento da era Khep. Em Proc. 1º Int. Khepera Workshop 64, pp. 7–14 (1999) 013 39. Paredis, CJJ, Brown, HB, Khosla, PK: Um sistema manipulador de rápida implantação. Em: Proc. Conferência Internacional IEEE sobre Robótica e Automação (ICRA), pp. 1434–1439 (1996) https:// 10 J. Suave. Técnica de Ferramentas. Transferir. 9(3-4), 213-254 (2007). https://doi. 57. Farritor, S., Dubowsky, S.: Sobre o projeto modular de sistemas robóticos de campo. Auton. Robôs. 10, 57-65 (2001). https://doi.org/10.1023/A: 37. Mkaouer, MW, Kessentini, M.: Transformação de modelos usando otimização multiobjetivo. Av. Computar. 96, 161-202 (2014). https:// 48. Rus, D., Vona, M.: Robôs cristalinos: auto-reconfiguração com módulos de unidades compressíveis. Auton. Robôs. 10, 107-124 (2001). https://doi.org/10.1023/ A:1026504804984 62. Innocenti Badano, BM: Uma Arquitetura Multiagente com Coordenação Distribuída para um Robô Autônomo. Tese de Doutorado, Universitat de Girona, Espanha (2009) 10.1109/ROBÔ.1995.525575 Journal of Intelligent & Robotic Systems (2022) 104: 70 32. Farinelli, A., Raeissi, MM, Marchi, N., Brooks, N., Scerri, P.: Interagindo com planos orientados a equipes em sistemas multi-robô. 41. Matsumaru, T.: Projeto e controle do sistema de robô modular: TOMMS. Em: Proc. Conferência Internacional IEEE sobre Robótica e Automação (ICRA), pp. 2125– 2131 (1995) https://doi.org/ 31. Giglio, D.: Um modelo de rede de Petri para um sistema multi-AGV de caminho aberto, In: Proc. 11º Internacional Conf. Inf. Controle, Autom. Robô. ICINCO, pp. 734-745 (2014) https://doi.org/10.5220/0005054807340745 org/10.1016/S0921-8890(99)00047-0 34. Tariq, O., Sang, J., Gulzar, K., Xiang, H.: Análise automatizada do diagrama de atividade UML usando CPNs, In: Proc. 8º IEEE Internacional Conf. em Suave. Eng. e Ciência de Serviço (ICSESS), pp. 134-138 (2017) https://doi.org/10.1109/ ICSESS.2017.8342881 45. Fukuda, T., Kawauchi, Y.: Sistema robótico celular (CEBOT) como uma das realizações do manipulador universal inteligente auto-organizado. Em: Proc. IEEE International Conference on Robotics and Automation (ICRA), pp. 662–667 (1990) https://doi.org/10. 58. Baca, J., Ferre, M., Aracil, R.: Um projeto robótico modular heterogêneo para resposta rápida a uma diversidade de tarefas. Robô. Auton. Sistema 60(4), 522-531 (2012). https://doi.org/10.1016/j.robot.2011.11. 38. Kelmar L., Khosla, P.: Geração automática de cinemática para um sistema manipulador modular reconfigurável. Em: Proc. IEEE International Conference on Robotics and Automation (ICRA) 2, pp. 663–668 (1988) https://doi.org/10.1109/ ROBOT.1988.12135 43. Pamecha, A., Ebert-Uphof, I., Chirikjian, GS: Métricas úteis para planejamento de movimento de robôs modulares. Trans. IEEE no Robô. Autom. 13(4), 531-545 (1997). https://doi.org/10.1109/70.611311 org/10.1109/TMECH.2017.2697310 33. Soares, JAC, Lima, B., Faria, JP: Transformação automática de modelos de diagramas de sequência UML para redes de Petri coloridas. 29. Jensen, K., Kristensen, LM,Wells, L.: Redes de Petri coloridas e ferramentas CPN para modelagem e validação de sistemas concorrentes. Int. 56. Leger PC, J. Bares.: Síntese automatizada e otimização de configurações de robôs. In: Proceedings of the Proceedings of the 1998 ASME Design Engineering Technical Conferences, pp. 13–16 (1998) https://doi.org/10.1115/DETC98/ MECH-5945 1007/s10846-020-01270-5 doi.org/10.1109/ECBS.2008.12 61. Andreev, V., Kim, V., Pryanichnikov, V.: Uma arquitetura modular hierárquica para robôs móveis reconfiguráveis. In: Anais do 30º Simpósio Internacional DAAAM, pp.1152–1159 (2019) https://doi.org/10.2507/30th.daaam.proceedings.162 60. Pio Negri, S., Basile, V., Valori, M., Gambino, B., Fassi, I., Tosatti, LM: Uma arquitetura robótica móvel modular para detecção e reparo de defeitos em túneis estreitos de componentes aeronáuticos CFRP . Robô. Computar. Integr. Manuf. 55(A), 109-128 (2019). https://doi.org/10.1016/j.rcim.2018.07.011 40. Acaccia, G., Bruzzone, L., Razzoli, R.: Um sistema robótico modular para aplicações industriais. Montar Autom. 28(2), 151-162 (2008). https://doi.org/ 10.1108/01445150810863734 b95112 53. Fujita, M., Kitano, H., Kageyama, K.: Uma plataforma de robô reconfigurável, Robot. Auton. Sistema 29(2-3), 119-132 (1999). https://doi. org/10.1007/s10009-007-0038-x (MODEL SWARD 2018), Madeira, Portugal, pp. 668–679 (2018) https://doi.org/ 10.5220/006731806680679 50. Garcia, RFM, Hiller, JD, Stoy, K., Lipson, H.: Um mecanismo de ligação à base de vácuo para robótica modular. Trans. IEEE Robô. 27(5), 876-890 (2011). https:// doi.org/10.1109/TRO.2011.21530 102470 doi.org/10.1007/s10458-016-9344-6 28. Hu, HS, Yang, Y., Liu, Y., Chen, C.: Supervisor de projeto e simplificação de sistemas automatizados de fabricação usando redes de Petri coloridas, In: Proc. Internacional IEEE Conf. Robô. Autom. (ICRA), pp. 3826–3832 (2015) https:// doi.org/10,1109/ICRA.2015.7139732 Trans. ASME Mechatron. 22(5), 2153-2164 (2017). https://doi. 1999.781953 Conf. e Workshops (ECBS 2008), pp. 191–200 (2008) https:// 47. Reddy, CHSS, Abhimanyu Godiyal, R., Zodage, T., Rane, T.: 2DxoPod – um robô modular para imitar a locomoção em vértebras. J. Intel. Robô. Sistema 101, 23 (2021). https://doi.org/10. Machine Translated by Google https://doi.org/10.1109/TMECH.2002.806233 https://doi.org/10.1023/A:1026596403167 https://doi.org/10.1016/j.robot.2011.11.013 https://doi.org/10.1109/ROBOT.1996.506907 https://doi.org/10.1109/TRO.2011.2153010 https://doi.org/10.1109/ROBOT.1995.525575 https://doi.org/10.5220/0005054807340745 https://doi.org/10.1109/ROBOT.1990.126059 https://doi.org/10.1109/TMECH.2017.2697310 https://doi.org/10.1007/b95112 https://doi.org/10.1109/TRO.2011.2153010 https://doi.org/10.1016/j.mechatronics.2020.102470 https://doi.org/10.1109/TMECH.2017.2697310 https://doi.org/10.1109/ECBS.2008.12 https://doi.org/10.1007/s10846-020-01270-5 1 3 Com. de Áreas 29(8), 1508-1524 (2011). https://doi.org/10.1109/ Fernando D. Von Borstel recebeu o título de bacharel em engenharia de controle e computação pela Universidad Autónoma de Nuevo León, Monterrey, México, em 1989, e o doutorado em inteligência artificial pelo Tecnológico de Monterrey, Monterrey, México, em 2005. Desde 1995, trabalha no Centro de Investigaciones Biológicas del Noroeste, La Paz, México. Seus atuais interesses de pesquisa incluem modelagem de sistemas robóticos para desenvolvimento e implementação. doi.org/10.1007/s10846-017-0504-y 70. Elkady, A., Joy, J., Sobh, T., Valavanis, K.: Uma abordagem estruturada para projeto modular em ambientes de robótica e automação. J. 75. Shen, WM, Salemi, B., Will, P.: Comunicação adaptativa inspirada em hormônios e controle distribuído para robôs auto-reconfiguráveis CONRO. Trans. IEEE Robô. Auto. 18(5), 700-712 (2002). https://doi.org/10.1109/ TRA.2002.804502 68. Metta, G., Fitzpatrick, P., Natale, L.: YARP – mais uma plataforma robótica, versão 2.3.20. Int. J. Av. Robô. Sistema 3(1), 43-48 (2013). https://doi.org/ 10.5772/5761 s10846-012-9798-y 64. Paulos, J., Eckenstein, N., Tosun, T., Seo, J., Davey, J., Greco, J., Kumar, V., Yim, M.: Automontagem automatizada de grandes estruturas marítimas por uma equipe de barcos robóticos. Trans. IEEE Autom. Sci. doi.org/10.1109/ICRA40945.2020.9196735 org/10.1155/2013/969304 74. Villa-Medina, J., Porta-Gándara, M., Gutiérrez, J.: Componentes robóticos sem fio para veículos autônomos. Robotica. 39(7), 1202-1215 (2021). https:// doi.org/10.1017/S0263574720001010 Journal of Intelligent & Robotic Systems (2022) 104: 70 77. Gallasch, G., Kristensen, LM: COMMS/CPN: uma infraestrutura de comunicação para comunicação externa com Design/CPN. In: Jensen, K. (ed.) Terceiro Workshop e Tutorial sobre o Uso Prático de Redes de Petri Coloridas e as Ferramentas CPN, DAIMI PB-554, Departamento de Ciência da Computação, pp. 75–91. Universidade de Aarhus, Dinamarca (2001) Joaquin Gutiérrez é bacharel em eletrônica e engenharia de comunicação pelo Instituto Politécnico Nacional, Cidade do México, México, em 1998, ante doutorado em inteligência artificial pelo Instituto Tecnológico de Estudios Superiores de Monterrey, Monterrey, México, em 2004. Desde 1988, esteve na CIBNOR, La Paz, México. 73. Kugele, S., Obergfell, P., Sax, E.: Análise de recursos baseada em modelo e síntese de arquiteturas de software automotivo orientadas a serviços. Softw. Sistema Modelo, 31 (2021) https://doi.org/10.1007/ Nota do editor Springer Nature permanece neutro em relação a reivindicações jurisdicionais em mapas publicados e afiliações institucionais. 71. Veloso, MVD, Filho, JTC, Barreto, GA: SOM4R: um middleware para aplicações robóticas baseado na arquitetura orientada a recursos. J. Intel. Robô. Sistema 87, 487-506 (2017). https:// 76. Di Francesco, M., Anastasi, G., Conti, M., Das, SK, Neri, V.: Confiabilidade e eficiência energética em redes de sensores IEEE 802.15.4/ZigBee: uma abordagem adaptativa e de camada cruzada . IEEE J. Sel. 2416678 67. Mayoral, V., Hernández, A., Kojcev, R., Muguruza, I. Zamalloa, I., Usategi, L., Bilbao, A.: A mudança no paradigma da robótica – o sistema operacional do robô de hardware (H -ROS); uma infraestrutura para criar componentes de robôs interoperáveis. In: Conferência da NASA/ESA sobre Hardware e Sistemas Adaptativos, pp. 229–236 (2017) https://doi.org/10.1109/ AHS.2017.8046383 Intel. Robô. Sistema 72(1), 5-19 (2013). https://doi.org/10.1007/ 65. Gabrich, B., Li, G., Yim, M.: ModQuad-DoF: uma nova atuação de guinada para quadrotors modulares. In: IEEE International Conference on Robotics and Automation (ICRA), pp. 8267–8273 (2020) https:// 63. Hwang, K., Lo, C., Liu, W.: Uma arquitetura de agente modular para um robô autônomo. Trans. IEEE Instrumento Medir. 58(8), 2797–2806 (2009). https:// doi.org/10.1109/TIM.2009.2016301 69. Zou, Y., Zhao, G., Wang, T.: Uma estrutura geral de arquitetura modular mecatrônica. Av. Mec. Eng. 5, 15 (2013). https://doi. s10270-021-00896-9 Eng. 12(3), 958-968 (2015). https://doi.org/10.1109/TASE.2015. 66. Quigley, M., Gerkey, B., Conley, K., Faust, J., Foote, T., Leibs, J., Berger, E., Wheeler,R., Ng, A.: ROS: an sistema operacional de robô de código aberto. In: Workshop do ICRA sobre Software de Código Aberto 3, pp. 1–5 (2009) 70 Página 28 de 28 JSAC.2011.110902 J. Francisco VillaÿMedina recebeu os graus de bacharelado e mestrado em sistemas computacionais pelo Instituto Tecnológico de La Paz, México, em 2013. Atualmente cursa o doutorado. Graduado em Ciências Marinhas pelo Centro Interdisciplinario de Ciencias Marinas do Instituto Politécnico Nacional (CICIMAR- IPN), La Paz, BCS, México. É Técnico do Grupo de Engenharia do Centro de Investigaciones Biológicas del Noroeste, SC, La Paz, BCS, México. Seus atuais interesses de pesquisa incluem o desenvolvimento de sistemas de engenharia. 72. Hinton, MA, Zeher, MJ, Kozlowski, MV, Johannes, MS: Advanced Explosive Ordnance Disposal Robotic System (AEODRS): uma revolução na arquitetura comum. Johns Hopkins APL Tech. Escavação. 30(3), 256–266 (2011) Machine Translated by Google https://doi.org/10.1109/TRA.2002.804502 https://doi.org/10.5772/5761 https://doi.org/10.1155/2013/969304 https://doi.org/10.1007/s10270-021-00896-9 https://doi.org/10.1007/s10846-017-0504-y https://doi.org/10.1007/s10846-012-9798-y https://doi.org/10.1109/ICRA40945.2020.9196735 https://doi.org/10.1155/2013/969304 https://doi.org/10.1109/TASE.2015.2416678 https://doi.org/10.1109/JSAC.2011.110902robôs escaladores e ambulantes [46, 47], envolvendo mecanismos de atuação para expansão e contração [48], rejeição de módulos defeituosos [49], geração de forças adesivas [50], transformação de configurações 2D em 3D [51], e montagem de módulos de rotor em um veículo aéreo não tripulado [52]. Módulos heterogêneos que incluem plataformas móveis, rodas, atuadores, sensores e componentes de potência, têm permitido o desenvolvimento de sistemas robóticos compostos por módulos pré- definidos com conectores comuns [53, 54]; inventários de módulos parametrizados que são selecionados por um algoritmo genético [55], uma simulação intensiva de tarefas [56], ou filtros de engenharia e técnicas de busca [57]; através de um repositório de módulos de poder e controle, conjuntos e especializados [58]; micromódulos cilíndricos [59]; rover pré-definido, braço, antebraço de escarificação, antebraço de limpeza e módulos de semi-reboque [60]; e módulos gerais de placa- mãe, atuador e sensor para processamento, controle de eletromotores acoplados e conexão de uma variedade de sensores, respectivamente [61]. Outras arquiteturas voltadas para a modularidade abordam a configuração do robô considerando cada módulo como um agente baseado na teoria multiagente [62, 63] e montam grandes robôs móveis compostos por plataformas autônomas não tripuladas idênticas como módulos [64, 65]. modelos para CPNs para simulação e análise, tratando cada diagrama UML de forma independente ou combinada. Por exemplo, uma abordagem, baseada em técnicas modelo a modelo fornecidas por uma estrutura de modelagem, transforma automaticamente diagramas de seqüência UML em CPNs [33]. Um trabalho que tem como foco a análise do comportamento e simulação dos diagramas de atividade UML, que são transformados em CPNs por meio de regras de mapeamento [34]. Uma plataforma de desempenho de software foi proposta para desenvolvimento iterativo combinando vários diagramas estruturais e comportamentais da UML: caso de uso, colaboração, implantação e suas relações para gerar e avaliar CPNs hierárquicos [35]. Além disso, regras intuitivas de mapeamento e transformação para traduzir diagramas de atividades em CPNs também foram formuladas [36]. O mainstream das abordagens de transformação UML-CPN existentes se concentra em um único diagrama UML comportamental para oferecer regras formais que geram modelos CPN; no entanto, essas regras são algumas vezes complexas e podem gerar grandes modelos de CPN que podem ser impraticáveis para o desenvolvedor e comprometer a análise posterior [37]. Redes de Petri (PNs) e CPNs convencionais são amplamente aplicadas para descrever Sistemas de Eventos Discretos (DES), onde os processos inerentes são concorrentes, distribuídos, dependem de comunicação, compartilham recursos, entre outras características [25]. Além disso, CPNs estendem PNs convencionais por meio de tipos de dados, inscrições de arco, modularidade, hierarquia e uma linguagem de programação de alto nível [26]. Modelos CPN hierárquicos permitem agrupar algumas partes em um módulo, sem perder informações sobre o comportamento do sistema oculto no módulo [27]. Os CPNs fornecem os elementos necessários para detalhar de forma sucinta a interação entre processos e recursos em complexos sistemas de manufatura automatizados [28] por meio de ferramentas de desenvolvimento, como o simulador CPN Tools [29, 30] para modelar graficamente, executar simulações e validar sistemas DES. Além disso, o CPN Tools possui uma linguagem de programação chamada CPN ML, que fornece as primitivas para a definição dos tipos de dados e a manipulação dos valores dos dados [26]. Vários trabalhos usaram CPNs para modelar, descrever e simular sistemas de robôs. Por exemplo, um sistema de múltiplos veículos guiados automatizados (AGV) para transporte de produtos em armazéns [31] e a interação de robôs autônomos para planos de equipe em ambientes complexos [32]. 1 3 2 Sistemas Robóticos Modulares 70 Página 2 de 28 Journal of Intelligent & Robotic Systems (2022) 104: 70 Machine Translated by Google 1 3 3 Arquitetura de componentes robóticos sem fio 4 Modelagem da Arquitetura WRC Journal of Intelligent & Robotic Systems (2022) 104: 70 Página 3 de 28 70 Esta arquitetura possui uma estrutura modular reconfigurável com uma morfologia extensível e flexível obtida pela adição e remoção de WRCs. A modularidade da arquitetura expande sua adequação por meio de uma rede sem fio de função distribuída que inclui a conectividade, segurança e escalabilidade fornecidas por padrões técnicos, como IEEE 802.15.4 (ZigBee) [76]. Além disso, um Coordenador é um WRC especial que cumpre a função particular de dispersão das solicitações, permitindo a interação entre WRCs (Fig. 1). Assim, pelo menos três WRCs são necessários para conformar uma rede interna WRC, ou seja, um Coordenador, um gerador e um manipulador. A arquitetura modular considera uma comunicação robótica sem fio A arquitetura WRC propõe o desenvolvimento de módulos de construção de poços com ações de sensoriamento/atuação, computação e comunicação, que são descritos por diagramas gerais UML que são tomados como referência pelo framework de desenvolvimento proposto. componente como um módulo embarcado de hardware/software que implementa uma função robótica específica, que pode ser montada para configurar robôs móveis [74]. Cada WRC é um componente autônomo composto por uma unidade de comunicação sem fio, um Os WRCs interagem gerando e processando solicitações por meio do Coordenador, que recebe cada solicitação e a direciona para os WRCs correspondentes que realizam a função requerida no sistema robótico. A interação WRC é baseada em uma comunicação mínima através de um protocolo orientado a cinco bytes para transmitir comandos com parâmetros e níveis de prioridade ou dados relevantes, o que é uma adaptação da abordagem inspirada em hormônios [75]. Um WRC transmite requisições sem destino WRC específico, mas pode acionar funções em diferentes WRCs que decidem localmente a execução de seu mecanismo de seleção de ação pré-definido, permitindo a reação às mudanças nas condições internas ou externas do robô. mecanismo comum de passagem de mensagens para programar o comportamento de um sistema robótico [66]. Recentemente, o H- ROS (Hardware ROS) é uma abordagem complementar para a criação de componentes padronizados que alimentam e conectam por Fieldbus Ethernet em tempo real, como a tecnologia PoE e EtherCAT P [67]. Estruturas semelhantes baseadas na reutilização de software são YARP – ainda outra plataforma de robô [68], F-model [69], RISCWare [70] e SOM4R [71]. Além disso, AEODRS [72] e AUTOSAR [73] para integrar múltiplas unidades de controle eletrônico nos setores automotivo e militar, respectivamente. Nestes trabalhos anteriores, a implementação do sistema robótico se preocupa com cinemática,dinâmica, requisitos de tarefas, automontagem, autorreconfiguração e evolução, entre outros estudos, com base em módulos homogêneos/heterogêneos de componentes físicos e de software usando estruturas, bibliotecas prontas para uso e padrões de interface. O presente trabalho foca na falta de um framework de desenvolvimento para apoiar a implementação de robôs modulares, adotando ferramentas de modelagem. A motivação deste framework de desenvolvimento não visa automatizar o processo de implementação nem aliviar o projetista; em vez disso, para auxiliar o usuário no desenvolvimento do projeto, construção e teste de robôs móveis modulares viáveis. O framework proposto é aplicado para desenvolver sistemas robóticos a partir de componentes robóticos sem fio, comportando- se como módulos autônomos que interagem por meio de pequenas mensagens, compostas por comandos e níveis de prioridade, para desempenhar sua função. Cada WRC é implementado a partir de dispositivos de hardware heterogêneos, incluindo sua interface física pertinente, frmware de baixo nível e software de funcionalidade, sem estrutura e interfaces padronizadas, nem compatíveis com outros frameworks (YARP ou ROS). Os WRCs fornecem as capacidades e limitações intrínsecas aos dispositivos de hardware selecionados, por exemplo, alcance, taxa de dados, atraso, número de conexão do hardware de comunicação sem fio. As contribuições do trabalho aqui apresentado são um framework de desenvolvimento baseado em modelos, uma ferramenta adequada para apoiar a implementação de robôs móveis modulares, baseado em ferramentas de modelagem padrão e formal; um procedimento de tradução proposto para mapear diagramas de atividade UML de cada WRC em elementos CPN para obter um modelo CPN hierárquico do robô modular baseado em WRC; e validação experimental do framework de desenvolvimento baseado em modelos desde a simulação até a construção do protótipo. Os diagramas UML são usados inicialmente para visualizar, especificar e documentar a configuração do robô móvel com base na arquitetura WRC. Os diagramas estruturais permitem definir os componentes estáticos de cada WRC e os diagramas comportamentais permitem capturar os estados intrínsecos e a interação entre os WRCs durante sua execução. Por exemplo, o diagrama de classes UML descreve o software de arquitetura WRC em termos gerais (Fig. 2). Envolve as classes de software WRC e Coordinator, mostrando as classes mais signifcativas com seus atributos e métodos. Da mesma forma, o diagrama de implantação UML (Fig. 3) descreve a disposição física dos WRCs necessários para implementar um robô móvel, indicando sua implementação mínima utilizando um Coordenador com dois ou mais WRCs para gerar e tratar as requisições. unidade de processamento (computador ou plataforma embarcada) e por sensor(es)/atuador(es)/sensor(es)-atuador(es) para executar uma função específica. Um WRC é construído a partir das especificações técnicas para operar/controlar o sensor/atuador específico. Os WRCs geralmente são nomeados de acordo com sua funcionalidade e podem gerar, manipular ou gerar e manipular solicitações. Machine Translated by Google 1 3 5 Estrutura de Desenvolvimento Baseada em Modelo 70 Página 4 de 28 Journal of Intelligent & Robotic Systems (2022) 104: 70 Fig. 1 Arquitetura de componentes robóticos sem fio para implementação de robôs móveis. Um sistema robótico configurado pelo Coordenador, Tração, Direção, Evitar Obstáculos e Seguir Paredes WRCs A operação da arquitetura depende da interação de mensagens entre as WRCs; portanto, os diagramas comportamentais são usados para especificar a transmissão da mensagem. O diagrama de seqüência geral UML (Fig. 4) descreve uma interação de mensagem representativa entre objetos e instancia um Coordenador com dois WRCs. O diagrama de seqüência define três tipos de mensagens, denominadas Register, Register Reply e Request. Cada WRC envia uma mensagem de Registo ao Coordenador, composta pelos dados da unidade de comunicação (endereços MAC e PAN), uma lista de pedidos a tratar (RF), uma lista de pedidos a gerar (RQ), uma lista dos respectivos prioridades (PR) e uma palavra de terminação (Term). O Coordenador responde a cada WRC com uma mensagem Register Reply que contém um número de identificação (ID) e uma palavra de terminação (Term). As mensagens de solicitação têm cinco argumentos, uma solicitação (Req), um parâmetro de solicitação (Par), uma prioridade de solicitação (Prio), o ID do remetente e uma palavra de terminação (Term). Cada mensagem de Solicitação é enviada ao Coordenador, que a direciona para o(s) WRC(s) correspondente(s) que pode tratar a solicitação. Esses diagramas UML gerais suportam o desenvolvimento do modelo CPN hierárquico que representa o sistema robótico completo. Um framework trifásico serve para modelar e desenvolver robôs móveis usando a arquitetura WRC. Na primeira fase, são definidos os WRCs da configuração do robô móvel através da análise da plataforma móvel, das funções necessárias para realizar a tarefa atribuída e das especifcações do ambiente. Um modelo UML personalizado é criado a partir dos diagramas UML gerais para fornecer uma estrutura que inclui diagramas UML estruturais e comportamentais específicos para visualizar o projeto do robô móvel. As características específicas de um WRC, como o fluxo de operação inerente ou o tipo de mensagem para comunicação com outros componentes, são incorporados em diagramas UML customizados. Em particular, cada WRC é representado por um diagrama de atividades UML para descrever suas operações internas e fluxo de dados interno. Na segunda fase, cada elemento dos diagramas de atividades UML é redefinido em seu elemento CPN correspondente para gerar uma estrutura CPN fundamental por meio de um procedimento de tradução proposto. Na última fase, desde o formalismo CPN, a linguagem de programação CPN ML e a definição de módulos em CPNs hierárquicos conformam uma ferramenta de modelagem mais estendida do que os diagramas UML comportamentais, como os diagramas de atividades, Machine Translated by Google Journal of Intelligent & Robotic Systems (2022) 104: 70 Página 5 de 28 70 Fig. 3 Diagrama geral de implantação UML do software e hardware da arquitetura WRC Fig. 2 Diagrama geral de classes UML do software de arquitetura WRC 1 3 Machine Translated by Google 6 Tradução do Diagrama de Atividades UML para CPN CPN = (P, T, A, ÿ, V, C, G, E, I) AD = (AN, IN, FN, KN, JN, DN, MN, FF, ED, GD) Journal of Intelligent & Robotic Systems (2022) 104: 7070 Página 6 de 28 Fig. 4 Diagrama geral de sequência UML da arquitetura WRC 1 3 onde AN é um conjunto finito de nós de atividade. IN e FN são conjuntos finitos de nós iniciais e finais, respectivamente. KN é um conjunto finito de nós de bifurcação, JN é um conjunto finito de nós de junção,DN denota o conjunto de expressões fornecidas pela linguagem de inscrição (por exemplo, CPN ML em CPN Tools), Type[r] denota Redes de Petri Coloridas: Uma Rede de Petri Colorida não hierárquica é um conjunto finito de nós de decisão, MN é um conjunto finito de nós de mesclagem e FF é um conjunto finito de nós finais. ED é um conjunto finito de arestas direcionadas defnidas por ED={e(x, y) |x ÿ X, y ÿY, (X ÿY) ÿ N}. GD é um conjunto finito de instruções de guarda relacionadas a arestas de saída de nós de decisão, tal que uma instrução de guarda g ÿ GD, próxima a uma aresta de saída e(x, y) ÿ ED de um nó de decisão d ÿ DN, deve ser verdadeira antes de passar para o próximo nó de ação o ÿ AN. A. Preliminares O CPN é definido pelas nove tuplas: Diagramas de atividade: Esses diagramas comportamentais descrevem fluxogramas que representam o fluxo de um nó de atividade para outro, onde um nó de atividade descreve uma operação do sistema modelado. Existe um fluxo de controle de uma operação para outra, que pode ser sequencial, concorrente ou ramificada. Tipos de nós, como nós de decisão, bifurcação ou junção, são usados para descrever o controle de fluxo [34]. Um diagrama de atividades AD é definido pela dez tupla: O diagrama de atividades UML de cada WRC permite a tradução de suas especificações comportamentais para a semântica formal dos CPNs. O procedimento de tradução gera a estrutura fundamental de um CPN, que é posteriormente modificada pelo desenvolvedor, adicionando outros elementos para completar um módulo em um modelo CPN hierárquico. o desenvolvedor deve adicionar mais elementos aos CPNs fundamentais para completar o modelo de robô móvel. Esse modelo representa os WRCs como módulos separados, conforme mostrado no diagrama de implantação UML personalizado; fornece a interação de mensagens entre os módulos WRC, conforme descrito no diagrama de seqüência UML personalizado; mantém e trata os dados de registro WRC, conforme indicado pelos atributos de classe nos diagramas de classe UML customizados; e compreende as estruturas CPN e expressões de linguagem CPN ML que analisam mensagens e registram dados para realizar as operações inerentes às WRCs, conforme descrito nos nós de atividade dos diagramas de atividades UML. Em seguida, o modelo CPN hierárquico resultante é usado para realizar uma validação dinâmica do sistema robótico baseado em WRC. onde P é um conjunto finito de lugares p e T é um conjunto finito de transições t, tal que P ÿ T = ÿ. A é um conjunto finito de arcos direcionados conectando lugares e transições, tais que A ÿ (P × T) ÿ (T × P). ÿ é um conjunto finito de conjuntos de cores não vazios para definir os tipos de dados. V é um conjunto finito de variáveis tipadas, tal que Type[v] ÿ ÿ para todas as variáveis v ÿ V. C: P ÿ ÿ é uma função de conjunto de cores C(p) que atribui um conjunto de cores a um lugar p. EXPRESS Machine Translated by Google B. Tradução 5. Cada aresta e(x, y) ÿ ED relacionada a uma instrução de guarda g(x, y) ÿ GD, que é uma aresta de saída de um nó de decisão x para conectar um nó fnal, fow-fnal ou merge y, é traduzido como dois elementos de CPN: um arco a(x, y) ÿ A e expressão de arco E(x, y) ÿ EXPv. Onde E(x, y) é definido por uma estrutura de controle forma if-then-else da linguagem de inscrição CPN ML. Isso é denotado por: ÿ V é denotado EXPRv. G: T ÿ EXPRv é uma função de guarda que atribui uma expressão de guarda a uma transição t tal que Type[G(t)]= Bool. E: A ÿ EXPv é uma função de expressão de arco que atribui uma expressão de arco a um arco a tal que Tipo[E(a)]= C(p), onde p é o lugar conectado ao arco a. Para um a(p, t) ÿ A, conectando um lugar p a uma transição t, é necessário que Tipo[E(p, t)] = C(p). Da mesma forma, para um arco a(t, p) ÿ A é necessário que Tipo[E(t, p)]=C(p). Portanto, uma expressão de arco E(a) deve ter o mesmo tipo de cor que os tokens aceitos por um lugar p conectado ao arco a. Finalmente, I: P ÿ EXPÿ é uma função de inicialização que atribui a um lugar p uma expressão de inicialização I(p) [28]. 7. Todo nó inicial i ÿ IN é traduzido como um lugar p ÿ P Definição 1: S(AD)=CPN denota a função de tradução S, onde um diagrama de atividade UML AD=(N, AN, IN, FN, 1. Cada aresta e(x, y) ÿ ED, que conecta um nó inicial x o tipo de cor de uma expressão r ÿ EXPR, tal que Var[r] 2. Cada aresta e(x, y) ÿ ED, que conecta uma ação, junta ou nó de forquilha x a uma ação, junta, forquilha ou nó de decisão y, é traduzida como três elementos de CPN: um arco de saída a( x, p') ÿ A do nó x, conectado a um lugar p' ÿ P´ com o conjunto de cores da unidade E atribuído e 1'e como sua expressão de inicialização. Isso é denotado por: isso como um conjunto de cores atribuído, e um arco de saída a(p', y) ÿ A de p' para conectar o nó y. Isso é denotado por: para uma ação, junta, forquilha ou nó de decisão y, é traduzido para um arco a(x, y) ÿ A em CPN. Isso é expresso pela notação de conjunto: KN, JN, DN, MN, FF, ED, GD) é traduzido para elementos de um CPN através dos seguintes passos: 4. Cada aresta e(x, y) ÿ ED relacionada a uma instrução de guarda g(x, y) ÿ GD, que é uma aresta de saída de um nó de decisão x para conectar uma ação, junta, forquilha ou nó de decisão y, é traduzido como quatro elementos do CPN: um arco de saída a(x, p') ÿ A do nó x, para conectar um lugar p' ÿ P´ que tem um arco de saída a(p', y) ÿ A, para conectar um nó y, e uma expressão de arco E(x, p´) ÿ EXPv. Onde E(x, p') é definido por uma estrutura de controle forma if-then-else do conjunto de expressões usando a linguagem de inscrição CPN ML, que deve ter o mesmo tipo de conjunto de cores atribuído ao lugar p', Type[ E(x, p')]= C(p'). Isso é denotado por: 8. Todo elemento n da união dos conjuntos de nós fnal, fow-fnal e merge, incluindo o conjunto P´ de lugares p´ criados nos passos 2 e 4, é traduzido como um lugar p ÿ P com uma expressão de inicialização vazia. Isso é denotado por: 6. Cada aresta e(x, y) ÿ ED, que conecta um nó inicial ou de mesclagem x a outro nó de mesclagem y, é traduzida como três elementos de CPN: um arco de saída a(x, t´) ÿ A do nó x , para conectar uma transição t´ÿ T ´, e um arco de saída a(t', y) ÿ A para conectar o nó y. Isso é denotado por: 3. Cada aresta e(x, y) ÿ ED, que conecta um nó de ação, junta ou forquilha x a um nó fnal, fow-fnal ou de junção y, é traduzida como um arco a(x, y) ÿ A no CPN. Isso é denotado por: {a(x, ÿ), ÿ, a(ÿ, y)} ÿ C(ÿ) ÿ = e(x, y) ÿ x ÿ {p | I(p) = vazio} = n ÿ n ÿ (FN ÿ FF ÿ MN ÿ ÿ) { a(x, tÿ), tÿ, a(tÿ, y) } = e(x, y) ÿ x ÿ (IN ÿ MN), y ÿ MN a(x, y) = e(x, y) ÿ x ÿ IN, y ÿ (AN ÿ JN ÿ KN ÿ DN) (ANÿ JN ÿ KN), y ÿ (AN ÿ JN ÿ KN ÿ DN) { p | C(p) = E, I(p) = 1ÿ e } = i ÿ i ÿ IN Journal of Intelligent & Robotic Systems (2022) 104: 70 Página 7 de 28 70 { a(x, ÿ), ÿ, a(ÿ, y), E(x, ÿ) = }}se ÿ então ÿ senão ÿ formaÿ| Digite[ E(x, ÿ) ] = C(ÿ) } = { e(x, y), g(x, y) } ÿ x ÿ DN, y ÿ (AN ÿ JN ÿ KN ÿ DN) {a(x, y), E(x, y) = }}se ÿ então ÿ senão ÿ formaÿ} = { e(x, y), g(x, y) } ÿ x ÿ DN, y ÿ (FN ÿ FF ÿ MN) a(x, y) = e(x, y) ÿ x ÿ (AN ÿ JN ÿ KN), y ÿ (FN ÿ FF ÿ MN) 1 3 Machine Translated by Google Journal of Intelligent & Robotic Systems (2022) 104: 7070 Página 8 de 28 Fig. 5 As etapas da função S são usadas para traduzir elementos de AD para CPN: a) etapas 1, 7, 10–11 aplicadas a um nó inicial conectado a um nó de atividade e elementos CPN resultantes ; b) etapas 2, 8–12 aplicadas a um nó de atividade conectado a outro nó de atividade e elementos CPN resultantes ; c) etapas 3, 8–10 e 12 aplicadas a um nó de atividade conectado a um nó fnal e elementos CPN resultantes ; d) passos 4, 8, 10-11 aplicados a um nó de decisão conectado a um nó de ação e elementos CPN resultantes ; e) etapas 5, 8–10 aplicadas a um nó de decisão conectado a um nó de mesclagem e elementos CPN resultantes; e f) etapas 6, 8–12 aplicadas a um nó de mesclagem conectado a outro nó de mesclagem e elementos CPN resultantes . As variáveis v e w são digitadas como INT, um conjunto de cores inteiro, e a variável e é digitada como E, um conjunto de cores de unidade, ambos os conjuntos de cores existem como declarações padrão no simulador CPN Tools. As bordas de entrada/saída não indicadas nos nós de mesclagem são mostradas para visualizar como os nós de mesclagem são traduzidos como locais com arcos de entrada/saída { E(p, t) = definido | Digite[ E(p, t) ] = C(p) } = {E(t, p) = não definido | t ÿ T, p ÿ P} {E(p, t) = não definido | p ÿ P, t ÿ T } { E(t, p) = definido | Digite[ E(t, p) ] = C(p) } = {t | G(t) = vazio} = {n | n ÿ (AN ÿ KN ÿ JN ÿ DN ÿ Tÿ)} ÿ 1 3 {p | C(p) ÿ ÿÿ} = {p | C(p) = nenhum conjunto de cores atribuído} A Figura 5 mostra vários exemplos simples, onde as etapas de função traduzem os elementos do diagrama de atividades da UML (AD), como arestas denotadas por e(x, y), nós executáveis e de controle e instruções de guarda, em elementos CPN (CPN) como lugares, transições, arcos, expressões de arco (letras minúsculas e expressões if-then-else, no lado esquerdo dos arcos) e conjuntos de cores atribuídos a lugares (letras maiúsculas na parte inferior direita dos lugares). 12. Toda expressão de arco E(t, p) não defnida é traduzida definindo uma expressão de arco E(t, p) ÿ EXPv com o mesmo tipo de cor atribuído ao lugar p. Isso é denotado por: Após as etapas da função de tradução, a estrutura de rede resultante é um CPN fundamental que precisa ser modificado, T com expressões de guarda vazias. 10. Cada elemento n da união dos conjuntos de nós de atividade, bifurcação, junta e de decisão, incluindo o conjunto T´ de transições criadas t´ no passo 6, é traduzido como uma transição t ÿ 9. Todo lugar p ÿ P, que não atribuiu um conjunto de cores C(p), é completado com a atribuição de um conjunto de cores que pertence ao conjunto finito de conjuntos de cores de CPN. 11. Toda expressão de arco E(p, t) não definida, é traduzida pela definição de uma expressão de arco E(p, t) ÿ EXPv com o mesmo tipo de cor atribuído ao lugar p. Isso é denotado por: Machine Translated by Google Evitando Centro Evite obstáculos na frente do robô gerando solicitações com base em seus dados de sensores de proximidade e regras de controle Lidar com solicitações para realizar ações de tração por meio de seu atuador e regras de controle Vire à Esquerda Para trás Seguindo Registre cada WRC fornecendo um ID e dispersando solicitações Registro Tração Vire à direita Função necessária Centro Pare Pare Página 9 de 28 70 Vire à esquerda Registro Vire à Esquerda Coordenador Lidar com solicitações de nome WRC Avançar Avançar Para trás Gerar solicitações Registro Parede Obstáculo Tabela 1 Veículo Ackermann baseado em WRC como estudo de caso. Lista de descrições de funcionalidade, solicitações a serem geradas, solicitações a serem tratadas e os nomes WRC correspondentes Vire à direita sensores de imidade e regras de controle Vire à direita Lidar com solicitações para realizar ações de direção por meio de seu atuador e regras de controle Journal of Intelligent & Robotic Systems (2022) 104: 70 Siga uma parede a certa distância gerando solicitações de acordo com seus dados de prox Direção Registro Registro registro de solicitação para redirecionar a mensagem de solicitação com o endereço MAC do(s) WRC(s) que pode tratar a solicitação; ou quando é uma mensagem Ack recebida do WRC que tratou da solicitação, o Coordenador verifica o registro de solicitações permitidas para recuperar o ID do remetente da solicitação e então transmite uma mensagem Ack para a WRC correspondente. Um robô móvel acionado por Ackermann, desenvolvido aqui como um estudo de caso da implementação do framework de desenvolvimento baseado em modelo, executa a tarefa de seguir a parede enquanto evita obstáculos em um ambiente semelhante a um escritório. Na primeira fase do framework, os WRCs necessários para montar o sistema robótico são defnidos através da análise da plataforma móvel com rodas, do ambiente e das funções necessárias para realizar a tarefa atribuída (Tabela 1). pelo desenvolvedor, para descrever cada WRC como um módulo em um CPN hierárquico. Para uma prioridade menor, o Steering WRC compara os IDs atuais e anteriores; o sinal de controle é atualizado para o pedido com o mesmo ID, caso contrário, permanece (pedido nulo). fluxo de procedimento. Quando é uma mensagem de registro, o coordenador atribui um número de identificação ao remetente do WRC, registra os dados do WRC e gera uma mensagem de resposta de registro que inclui o número de identificação; quando é uma mensagem Request, o Coordenador verifica o ID do remetente WRC e sua Por exemplo, a Fig. 7 mostra o diagrama de atividades UML do Coordenador, onde os métodos de classe de software, como rx(), classificarMsg(), checkID(), checkAllowedRequest() e tx(), entre outros, são representados por os nós de atividade e os nós de controle de fluxo. A operação Coordenador inicia quando recebe uma mensagem e seu tipo é identificado para decidir a O diagrama de atividades UML do Steering WRC descreve seu fluxo de operações (Fig. 8), onde os nós de atividade e os nós de controle de fluxo representam os métodos de classe de software, como generateRegisterMsg(), tx(), classificarMsg(), rx(), getID() e outros. O funcionamento do Steering WRC inicia-se quando gera e transmite uma mensagem de Registo ao Coordenador, que lhe fornece um número de identificaçãoatravés de uma mensagem de Registo de Resposta. Quando uma mensagem respondida é recebida, o Steering WRC registra seu número de identificação. Depois de receber uma mensagem de solicitação, o Steering WRC verifica o ID do remetente e seu registro de solicitação permitido e, em seguida, transmite uma mensagem de confirmação ao Coordenador e executa uma verificação de prioridade de solicitação. Se a prioridade atual for maior que a prioridade de solicitação anterior, o Steering WRC gera o sinal de controle apropriado para o atuador de direção. As WRCs defnidas são identificadas como Direcção, Tracção, Seguir Paredes, Evitar Obstáculos e Coordenador (Fig. 1). Os diagramas gerais UML da arquitetura WRC são então customizados, resultando em uma classe de software Coordinator e quatro classes de software WRC (Fig. 2). O diagrama de seqüência UML personalizado descreve a interação de mensagens entre os WRCs (Fig. 6). Um tipo de mensagem de confirmação (Ack) é incluído para fornecer sincronicidade no modelo CPN executável. Os diagramas de atividades UML descrevem as operações inerentes de cada WRC que compõem o robô móvel. 1 3 7 Robô Móvel como Estudo de Caso Machine Translated by Google É necessário definir os conjuntos de cores e variáveis que irão compô-los no modelo CPN hierárquico, pois o comportamento do robô surge pela interação WRC através das mensagens, cujos dados são representados no diagrama de seqüência UML customizado. Na aplicação CPN Tools, as mensagens são representadas pelo conjunto de cores PACKET que é composto pelo produto de dezoito conjuntos de cores INT (Fig. 10). O conjunto de cores INT compreende um único número inteiro. Cada valor vinculado às variáveis do tipo INT, tem seu significado correspondente no protocolo ad hoc para comunicar as requisições WRCs através do Coordenador. Quatro tipos de mensagens são representados: Register, Register Reply, Request e Ack. O conjunto de cores PACKET possui dezoito variáveis do tipo INT relacionadas (Par1, Par2, i1, … i5, j1, … j5, n1, … n5, Par6), que são usadas para compor e analisar as mensagens no modelo CPN. No entanto, não há locais com expressões de inicialização definidas para armazenar os dados WRC para gerar a mensagem de registro; há conjuntos de cores que precisam ser especificados para análise posterior, que precisam ser uma composição de conjuntos de cores (por exemplo, PACKET). Além disso, algumas transições precisam ser alimentadas com novos tipos de cores e requerem guardas e expressões de arco de saída para realizar a operação indicada. Finalmente, os CPNs fundamentais precisam de interfaces de entrada/ saída para se comunicar entre eles. cal modelo CPN no aplicativo CPN Tools. Além disso, o desenvolvedor especifica e declara novos tipos de cores no A terceira fase aborda essas questões. O desenvolvedor converte os CPNs fundamentais em módulos de uma hierarquia A mensagem Register contém dados sobre o remetente inscrição; adiciona locais e estruturas de rede para criar e manter os novos tipos de cores a serem consumidos pelas transições; adiciona guardas de transição e expressões de arco para obter a operação e os resultados apropriados; e também adiciona interfaces de entrada/ saída para transmitir/receber mensagens entre os módulos CPN.A Figura 9 mostra o CPN fundamental gerado a partir do diagrama de atividades UML do Coordenador. Na segunda fase, os elementos de cada diagrama de atividades UML, como nós de atividade, nós de controle de fluxo, arestas e instruções de guarda, são traduzidos para elementos CPN como transições, lugares, arcos e expressões de arco, entre outros. WRC: A Unidade de Comunicação MAC (64b Addr), o Os CPNs fundamentais fornecem a estrutura básica de módulos e visualização do tipo de cor (tipo de dados) consumido pelas transições (operações). Em cada CPN fundamental, há um lugar (P1) com 1ÿe como expressão de inicialização. 1 3 Journal of Intelligent & Robotic Systems (2022) 104: 70 Fig. 6 Diagrama de sequência UML personalizado da arquitetura WRC 70 Página 10 de 28 Machine Translated by Google e interfaces de entrada/saída, entre outras, são representadas na cor vermelha. Por exemplo, as expressões de arco, traduzidas das instruções de guarda do diagrama de atividades UML, são usadas para liderar o desenvolvimento de expressões CPN ML, que permitem executar a condição correspondente de acordo com a definição de variáveis e conjuntos de cores no simulador. As Figuras 11–12 mostram os módulos CPN para o Coordenador e o Steering WRC, respectivamente. Os elementos CPN adicionados pelo desenvolvedor, como guardas de transição, inscrições de arco, endereço PAN atribuído (16b Addr), os pedidos que podem tratar (RF1-RF5), os pedidos que podem gerar (RQ1-RQ5), as prioridades de pedidos correspondentes (PR1-PR5) e o valor do terminador (Term=233) . A mensagem Register Reply contém os endereços 64b e 16b do WRC registrado, o ID atribuído (ID) e o terminador (Term=233). o O modelo CPN hierárquico completo da arquitetura WRC customizada é estruturado em um conjunto de módulos con não concorda com a abordagem proposta da WRC. Os módulos CPN podem interagir através de interfaces (portas de entrada e saída) com um mecanismo de estruturação hierárquica que captura diferentes níveis de abstração do sistema robótico [28]. Os módulos CPN envolvem os atributos gerais do diagrama de classes UML (Fig. 2). Os atributos das classes de software são instanciados em elementos do módulo CPN que descreve cada WRC, como os endereços MAC e PAN, os Requests, as prioridades dos Requests e os Requests a serem tratados no Steering WRC (Fig. 12). A marcação inicial desses locais conforma os dados WRC, que são utilizados para gerar as mensagens de registro que são enviadas pelas WRCs. O Coordenador A mensagem de solicitação consiste no endereço do remetente 64b, a solicitação que o remetente requer (Request), um parâmetro complementar (Par), a prioridade da solicitação (Prio), seu número de ID (ID) e o terminador (Term =255). A mensagem Ack inclui os mesmos dados que o Request, mas o valor do terminador é diferente (Term=244). A Tabela 2 mostra o significado das requisições numéricas (RQ) no protocolo ad hoc da arquitetura WRC. As requisições numéricas e os parâmetros complementares são utilizados nas mensagens de requisição geradas pelos modelos CPN, e nos WRCs embarcados que compõem os robôs implementados. 1 3 Página 11 de 28 70 Fig. 7 Diagrama de atividades UML para representar o fluxo de operações do Coordenador Journal of Intelligent & Robotic Systems (2022) 104: 70 Machine Translated by Google Uma vez definida a composição do conjunto de cores da mensagem e os dados do registro, outros elementos devem ser definidos, como inscrições de arco, expressões de guarda de transição e elementos adicionais (porexemplo, lugares, transições, arcos e inscrições de arco) para alimentar os dados do registro como entrada para as transições. recebe, cria listas e registra esses dados, que também são armazenados nos elementos place correspondentes do módulo CPN. A Tabela 3 mostra a marcação inicial (atributos) que são instanciados como dados numéricos para cada módulo CPN. este Na primeira etapa, os WRCs necessários para implementar um robô móvel são modelados em um simulador CPN, enquanto o Os elementos mais signifcativos adicionados ao módulo Coordinator, como inscrições de arco de saída e guardas de transição, são descritos resumidamente na Tabela 4; enquanto os elementos mais significativos adicionados ao módulo Steering WRC estão descritos na Tabela 5. A Figura 13 mostra os módulos que representam as WRCs no modelo CPN hierárquico, utilizado para simular o sistema robótico baseado em WRC. Esta entrada de dados é utilizada para verificar as mensagens, gerar listas, gravar em determinados locais, ou controlar o fluxo de operação dos módulos CPN, entre outras operações complementares para construir o modelo executável. As portas de entrada e saída, utilizadas para comunicar mensagens entre os módulos CPN, são denominadas como buffers de recepção ou transmissão ou de acordo com os dados de entrada/saída. a marcação inicial compreende as especificações funcionais WRC no modelo CPN hierárquico do robô autônomo. O esquema para validar um projeto de robô móvel baseado na arquitetura WRC possui três etapas: (1) modelo CPN conectado a uma simulação do robô e ambiente, (2) modelo CPN vinculado a uma plataforma móvel escrava e (3) arquitetura WRC implementação em um protótipo de robô móvel para realizar a tarefa atribuída. O desenvolvimento dessas etapas progressivas a partir da simulação computacional, da simulação HIL e da implementação do protótipo do sistema robótico, permite a integração de parâmetros, como desempenho WRC, ruído do sensor, tempo de resposta do atuador, entre outros, que dificilmente podem ser capturado por apenas um deles. Os locais que contêm os dados de registro têm tipos de conjuntos de cores atribuídos com base no conjunto de cores INT. Por exemplo, os locais que contêm os dados Addr de 64 bits e Addr de 16 bits são tipos de conjuntos de cores INT, com marcação inicial vinculada a valores inteiros em vez de valores alfanuméricos para simplificar o modelo CPN. 1 3 70 Página 12 de 28 Fig. 8 Diagrama de atividade UML para representar o fluxo de operações do WRC de Direção Journal of Intelligent & Robotic Systems (2022) 104: 70 8 Esquema de Validação Machine Translated by Google para o segundo passo. O software instanciado pelo modelo executável no simulador CPN controla sem fio o HIL a simulação do robô e do ambiente é modelada em uma plataforma de programação de uso geral. A simulação robô-ambiente transmite dados para o modelo WRC que os processa e retorna os comandos apropriados para o robô simulado. Uma plataforma móvel escrava substitui a simulação do robô para avaliar o modelo CPN no ambiente 1 3 Journal of Intelligent & Robotic Systems (2022) 104: 70 Página 13 de 28 70 Fig. 9 CPN fundamental para representar o fluxo de operações do Coordenador Machine Translated by Google foi criado usando o simulador CPN Tools versão 4.0.1. o simulador de ferramentas CPN (http://cpntools.org/2018/01/16/ Um aplicativo de comunicação TCP/USB foi programado em Java versão 1.8.0_144 usando a biblioteca Comms-CPN (http:// cpntools.org/2018/01/09/comms-cpn) [77] e a biblioteca Java RXTX, versão 2-2-20.081.207 Windows-×64 (http://fzzed.com/ oss/rxtx-for-java) comunicar-se com e testar a operação e interação dos WRCs através da simulação, da simulação HIL e da implementação do robô móvel. Duas morfologias baseadas em um Coordenador, com um e quatro veículos autônomos, foram modeladas através da metodologia de desenvolvimento proposta. Um robô Ackermann e três robôs diferenciais realizaram as tarefas de seguir paredes e explorar, respectivamente. Ambas as morfologias foram montadas para validar a implementação da arquitetura WRC onde os modelos UML e CPN serviram para descrever robô escravo. Por fim, a terceira fase é a implementação completa baseada em modelo de software nos WRCs embarcados, construindo o protótipo do robô móvel para avaliar a arquitetura modular proposta no ambiente durante a execução da tarefa atribuída. O modelo CPN hierárquico da arquitetura WRC 1 3 9 Implementação Experimental Vire à direita Para módulo download), através de uma porta USB do PC. A comunicação TCP/IP entre o CPN Tools e o aplicativo TCP/USB foi configurada para localhost e porta 9000. Dois transceptores de rádio XBee S2, montados em placas adaptadoras USB, foram usados para comunicar o aplicativo TCP/USB e o ambiente do robô simulação. O aplicativo de simulação de robô e ambiente foi programado no Matlab Release 2015a, utilizando uma biblioteca de porta serial para comunicação via porta USB a 9600 bauds. Todos os aplicativos são executados em uma estação de trabalho Dell Precision T7610, com dois processadores Intel Xeon E5-2630, 2,60 GHz, 32 G de RAM, disco rígido de 4 TB e Windows 10 Não usado Virar % Tração 1 3 70 Página 14 de 28 Parâmetro complementar Direção Tração Solicitar 5 Fig. 10 O conjunto de cores PACKET é usado para representar os tipos de mensagens na arquitetura WRC personalizada. As mensagens são baseadas em variáveis inteiras. NU não é usado com 255 como valor Direção Velocidade % 0 Virar % Pare Vire a esquerda Para trás Tabela 2 Lista de solicitações numéricas e parâmetros complementares utilizados no modelo CPN Tração 2 Não usado 4 Journal of Intelligent & Robotic Systems (2022) 104: 70 Direção Velocidade %Avançar Não. Centro Machine Translated by Google http://cpntools.org/2018/01/16/download http://cpntools.org/2018/01/09/comms-cpn http://fizzed.com/oss/rxtx-for-java http://cpntools.org/2018/01/16/download O atuador do Traction WRC era um motor de 12 V DC controlado através de um acionador de motor em ponte H e acoplado mecanicamente às rodas traseiras de uma plataforma Ackermann. O atuador Steering WRC era um servomotor TP-S3003 64 bits. Os WRCs foram montados no comercial Ackermann e plataformas diferenciais (Fig. 14). o frmware pertinente baseado nos modelos UML e CPN, usando o compilador C 4.12. A plataforma Ackermann tem 0,5 m de comprimento, 0,4 m de largura e rodas com 0,16 m de diâmetro.Para o robô Ackermann, cada WRC físico foi construído em uma placa genérica de desenvolvimento próprio, baseada no microcontrolador de 16 bits PIC24FJ64GB-004, como unidade de processamento, um rádio transceptor XBee-PRO S2 como unidade de comunicação sem fio, e o sensor/atuador correspondente para as funções de tração, direção, seguimento de parede e evitar obstáculos. Os microcontroladores foram programados com Duas baterias LiFe recarregáveis de9,9 V a 4500 mAh fornecem diferentes níveis de tensão através de um barramento de força. 1 3 Fig. 11 Módulo Coordenador CPN criado no aplicativo CPN Tools com base em seu CPN fundamental. Os elementos CPN na cor vermelha foram adicionados pelo desenvolvedor para obter um modelo executável que pode Página 15 de 28 70 registrar e analisar dados de registro, analisar e gerar mensagens e receber e transmitir mensagens entre os módulos CPN que representam as WRCs Journal of Intelligent & Robotic Systems (2022) 104: 70 Machine Translated by Google b uma 1 3 Journal of Intelligent & Robotic Systems (2022) 104: 70 (INT)a 1'(32.001) 1'(32.002) 1'(32.006) 1'(32.007)Obs. Av. (INT, INT, INT, INT, INT) Os endereços 64b e 16b são instanciados como numéricos em vez de alfanuméricos 70 Página 16 de 28 Prioridade das solicitações (INT, INT, INT, INT, INT) 1'(255, 255, 255, 255, 255) 1'(255, 255, 255, 255, 255) 1'(0, 1, 2, 4, 255) 1'(0, 1, 2, 3, 5) Módulo 1'(255, 255, 255, 255, 255) O módulo de prevenção de obstáculos tem inicialmente todos os valores de prioridade vinculados a zero e muda durante a simulação CPN Fig. 12 Módulo Steering CPN criado no aplicativo CPN Tools baseado no CPN fundamental Steering. Os elementos CPN na cor vermelha foram adicionados pelo desenvolvedor para obter um modelo executável (INT)a 1'(15.001) 1'(15.002) 1'(15.006) 1'(15.007) Direção Tabela 3 Marcação inicial de locais com dados cadastrais nos módulos CPN 1'(255, 255, 255, 255, 255) 16b Endereço Folclore de Parede. 1'(60, 60, 60, 255, 255) 64b Endereço Tração Pedidos (a exigir) (INT, INT, INT, INT, INT) 1'(0, 1, 2, 255, 255) 1'(3, 4, 5, 255, 255) 1'(255.255.255.255.255) 1'(255.255.255.255.255) 1'(0, 0, 0, 0, 0)b Solicitações para lidar Machine Translated by Google Verifique se há solicitações permitidas para o ID ({Idq =Id,Addr =Par1,ToReq =j5}) Nome da transição WRC que pode lidar com a solicitação, a partir do Requests to Handle Records (Regs), e o limita ao local Par1 para passar pela mensagem de solicitação para P6 Registros (Regqs) ,n3,n4,n5),Par6) mais vazio aGuards são expressões booleanas CPN ML (avaliam verdadeiro ou falso) e são usados para testes em variáveis de inscrição de arco de entrada ou valores restritos de variáveis de inscrição de arco de saída ,n3,n4,n5),Par6) mais vazio A solicitação numérica (Par2) e o ID do remetente (n1) são encontrados em criar os registros de i1 a i5, para cada WRC registrado, no local Request to Handle Records ID+1 ,(n1.255.255.255.255), Par6) crie os registros de j1 a j5, para cada WRC registrado, no local de Registros de Solicitações Permitidas. Crie os Registros de Solicitações Permitidas. Cinco arcos de saída são usados para A solicitação numérica (Par2) é encontrada na variável Act do Atribuir ID e registrar dados WRC ,n3,n4,n5),Par6) mais vazio IDs de memória n1 Variáveis ToReq e Idq, respectivamente, das Solicitações Permitidaspara o terminador de mensagem (Par6), ele passa pelo arco para P4 A solicitação numérica (Par2) é encontrada na variável ToReq do para o terminador de mensagem (Par6), ele passa pelo arco para P7 Aumente o número de ID (Id) no local New ID ({Idx =Id,Addr =Par1,Act =i1}) (#ToReq Regqs) =Par2 Verificar ID O ID do remetente (n1) da mensagem de solicitação é encontrado na lista de IDs (Ids)Classifique as mensagens de solicitação. Se a mensagem contiver um valor de 255, Classifique as mensagens de confirmação. Se a mensagem contiver um valor 244 vinculado a mensagens Classify Register. Se a mensagem contiver um limite de valor 233 Modifique a mensagem de solicitação. Obtém o endereço MAC (Addr) do Inscrição do arco de saída se Par6 =255 então 1`(Par1, Par2, (i1,i2,i3,i4,i5), (j1,j2,j3,j4,j5), (n1,n2 O número de ID (n1) é encontrado na variável Idq do Allowed ({Idq =Id,Addr =Par1,ToReq =j1}) Id::Id Crie as solicitações para lidar com registros. Cinco arcos de saída são usados para Tabela 4 Lista das inscrições de arco de saída mais signifcativas e guardas adicionados pelo desenvolvedor no módulo coordenador CPN Guarda Solicitações para lidar com registros (Regs) se Par6 =244 então 1`(Par1, Par2, (i1,i2,i3,i4,i5), (j1,j2,j3,j4,j5), (n1,n2 Decisão 1 Gerar mensagem de solicitação para o WRC correspondente ((#Addr Regs),Par2, (i1.255.255.255.255), (j1.255.255.255.255) Gerar mensagem de solicitação para o WRC correspondente (#Act Regs) =Par2 Adicione o novo ID (Id) à lista de IDs (Ids) no local Lista de IDs Registros de solicitações permitidas (Regqs) Se Par6 =233 então 1`(Par1,Par2, (i1,i2,i3,i4,i5), (j1,j2,j3,j4,j5), (n1,n2 (#ToReq Regqs) =Par2 e também (#Idq Regqs) =n1 Nome da transição Gerar mensagem de confirmação para o WRC correspondente (#Idq Regqs) = n1 ({Idx =Id,Addr =Par1,Act =i5}) Teste isso Registros de Solicitações (Regqs) Costumava ser Verifique se há solicitações permitidas o terminador de mensagem (Par6), ele passa pelo arco para P10 1 3 Journal of Intelligent & Robotic Systems (2022) 104: 70 Página 17 de 28 70 Machine Translated by Google Para o primeiro robô diferencial, implementado em uma plataforma de 0,44 m de diâmetro e 0,5 m de altura, foram construídos mais dois WRCs. O Diferencial Driving WRC usa um microcontrolador Propeller de 8 núcleos como unidade de processamento, com um rádio transceptor XBee-PRO S2 e um controlador de motor DHB-10 Dual H-Bridge para controlar dois motores DC (esquerdo e direito). O Exploring WRC consiste em uma placa Arduino Mega 2560 como unidade de processamento, um rádio transceptor XBee-PRO S2 e um sensor rangefnder LIDAR-Lite V1 montado em uma estrutura de 2 DOF com um motor de passo (pan) e um servomotor (tilt) na plataforma diferencial. Dois 12 V 7 Ah recarregáveis WRC diferencial e um WRC Explorador montado em plataformas retangulares de alumínio de 0,12 m×0,90 m×0,10 m. acoplado às rodas dianteiras. O Obstacle Avoiding WRC era composto por dois sensores ultrassônicos PING de 40 kHz localizados na parte frontal esquerda e direita do veículo. O Wall Follow WRC também foi desenvolvido usando dois sensores ultrassônicos PING de 40 kHz localizados no lado direito do veículo em ângulos de 90o e 45o para rastrear a parede. O segundo e terceiro robôs diferenciais têm um Dif Os WRCs Diferenciais consistem em uma placa Arduino Mega como unidade de processamento, conectada a dois servo motores para controlar o movimento diferencial, e um rádio transceptor XBee-PRO S2. Os Exploring WRCs também consistem em uma placa Arduino Mega como unidade de processamento e um transceptor de rádio XBee-PRO S2. O segundo Exploring WRC é implementado com um servo motor que aciona um sensor ultrassônico PING na frente do robô. O terceiro Exploring WRC possui três sensores ultrassônicos PING localizados na frente do robô a cada 45 graus. Powerbanks USB 5 V 10/5 Ah fornecem energia para esses robôs baseados em WRC. Por fim, o Coordenador foi montado utilizando um microprocessador RCM 4110com um baterias e banco de baterias USB 5 V 5 Ah fornecem energia aos WRCs. 1 3 Verifique MAC Addr e solicitações permitidas add64=Par1 andalso (#Req AllReqRec)=Par2 A mensagem de solicitação tem um valor vinculado a Par1 Decisão 1 se Par6=255 então 1`(Par1,Par2,(i1,i2,i3,i4,i5), (j1,j2,j3,j4,j5),(n1,n2,n3,n4,n5), Par6) mais vazio n2,n3,n4,n5), 233) ({Idq=Id,Req=i1}) Classificar mensagens de registro. Se a mensagem contiver um valor 233 vinculado ao terminador de mensagem (Par6), ela passará pelo arco de saída para P5 if j1lastPrio then 1`(Par2, i1,j1,n1) else vazio Verifica a prioridade do pedido. Se a prioridade da requisição atual (j1) for maior que a prioridade da última requisição (lastPrio) então os dados da requisição (Par2, i1,j1,n1) passam pelo arco para P11 Decisão 3 Crie o registro de solicitações permitidas. Cinco saídas Registros do WRC Gerar mensagem de registro. A nova mensagem é composta pelos endereços 64b e 16b, requisições a tratar, requisições a requerer, suas prioridades correspondentes e termo=233 e passa pelo arco até P2 Costumava ser se n1 lastId então 1'e mais vazio Tabela 5 Lista das inscrições de arco de saída mais signifcativas e proteções adicionadas pelo desenvolvedor no Módulo CPN do WRC de Direção Verifique a identificação. Se o ID do remetente atual (n1) for igual ao último ID do remetente (lastId), os dados da solicitação (Par2, i1,j1,n1) passarão para o arco para P11 Guarda Par1=adicionar64 e também Par2=adicionar16 Decisão 2 Inscrição do arco de saída se Par6=233 então 1`(Par1,Par2,(i1,i2,i3,i4,i5), (j1,j2,j3,j4,j5),(n1,n2,n3,n4,n5) , Par6) mais vazio Criar registro de solicitações permitidas (addr64,addr16,(i1,i2,i3,i4,i5), (j1,j2,j3,j4,j5),(n1, Teste isso variável igual ao endereço 64b do Steering Classifique as mensagens de solicitação. Se a mensagem contiver um valor 255 vinculado ao terminador de mensagem (Par6), ela passa pelo arco de saída para P7 A variável Par2 é encontrada na solicitação permitida ({Idq=Id,Req=i5}) vazio Verifique a prioridade da solicitação. Se a prioridade da solicitação atual (j1) for menor ou igual à prioridade da última solicitação (lastPrio), os dados da solicitação (Par2, i1,j1,n1) passarão para o arco para P12 Journal of Intelligent & Robotic Systems (2022) 104: 70 se n1=lastId então 1`(Par2, i1,j1,n1) senão vazio arcos são usados para criar o registro, de i1 a i5, no local Allowed Request Record Obter ID Nome da transição Verifique a identificação. Se o ID do remetente atual (n1) for diferente do último ID do remetente (lastId), uma unidade e passará pelo arco para P13 Gerar msg de registro Os endereços 64 e 16 são iguais aos valores vinculados a Par1 e Par2 da mensagem Register Nome da transição Machine Translated by Google O Wall Follow WRC recupera o controle do comportamento do robô simulado. Os sistemas robóticos baseados em WRC foram testados através das etapas de validação, registrando os dados experimentais de cada WRC. Foi simulada uma tarefa de seguimento de parede, HIL simulada com um robô escravo e realizada pelo robô móvel Ackermann. O cenário era uma parede perimetral oval com colunas salientes como obstáculos em um corredor de escritório. A restrição da tarefa foi preservar 0,5 m da distância entre o veículo e a parede, evitando o obstáculo. Na fase de simulação, a trajetória percorrida pelo robô é traçada com marcas azuis, iniciadas no ponto S (Fig. 15). The Wall Follow WRC gerou pedidos de conversão à direita e à esquerda para perseguir a distância de separação da parede. Quando o Obstacle Avoiding WRC detectou cada coluna, gerando vários pedidos de conversão à esquerda para contornar o obstáculo. Depois de O protótipo do robô começou no ponto S (Fig. 18), gerando o caminho percorrido (círculos azuis) que mantinha uma distância rádio transceptor XBee-PRO S2, programado em linguagem Dynamic-C, e transportado pela plataforma Ackermann. A Figura 16 mostra a trajetória resultante para a fase de simulação HIL. O aplicativo CPN reuniu os dados dos sensores das WRCs de Seguimento de Paredes e Evitação de Obstáculos para gerar os comandos de controle dos atuadores das WRCs de Direção e Tração. Nesta trajetória, o modelo CPN seguiu a parede curva com comportamento semelhante ao robô e simulação do ambiente. O protótipo do robô Ackermann executou a tarefa de parede seguinte em uma parede perimetral oval com um obstáculo B, instalada em uma quadra pavimentada com área de 28 m×14 m (Fig. 17). Para analisar o desempenho do veículo um Position Tracking WRC, baseado em um receptor GPS com antena de alta sensibilidade, registrava a posição do veículo e um Comunicador registrava as solicitações de cada WRC, que ligava o sistema robótico a um laptop usando dois pares de longa distância. modems de rádio de alcance. Além disso, o aplicativo CPN também realizou a simulação do robô móvel neste segundo cenário. Página 19 de 28 70 Fig. 13 Vista parcial do modelo CPN hierárquico representando os módulos: direção, tração, seguimento de parede, evitar obstáculos e uma rede baseada em Xbee Journal of Intelligent & Robotic Systems (2022) 104: 70 10 Resultados e Avaliação 1 3 Machine Translated by Google 1 3 Fig. 14 Autonomous Acker mann (a) e primeiro (b), segundo (c) e terceiro (d) veículos diferenciais desenvolvidos e construídos com base na arquitetura WRC Uma visão parcial do módulo CPN Wall Follower e a trajetória do veículo Ackermann são representadas enquanto ambos estão interagindo Journal of Intelligent & Robotic Systems (2022) 104: 70 Fig. 15 A etapa de simulação modelo-robô-ambiente é mostrada em execução. Três GUIs são mostradas: simulação do modelo CPN, aplicativo Communication Socket-USB e simulação do ambiente do robô. de 0,5 m da parede e resultou em um lapso de tempo de 114 s, que apresentou comportamento semelhante ao da trajetória simulada 70 Página 20 de 28 Machine Translated by Google (quadrados pretos), completando a tarefa de seguir a parede evitando o obstáculo B através dos pedidos correspondentes. A Figura 19 mostra o intervalo entre o 40º e o 60º segundos das solicitações geradas pelo WRC Wall Following (verde) e WRC Obstacle Avoiding (azul). Dentro 1 3 Página 21 de 28 70 Fig. 16 Simulação HIL com o veículo Ackermann. A trajetória resultante mostra as solicitações de conversão à direita (azul) e à esquerda (vermelho) geradas para evitar a coluna A Journal of Intelligent & Robotic Systems (2022) 104: 70 Machine Translated by Google pedido com uma prioridade maior (70%) do que as prioridades do pedido anterior (60%) da WRC de Seguimento de Paredes. Assim, o Steering WRC efectuou este pedido e os dois seguintes pedidos de conversão à esquerda gerados pelo Obstacle Avoiding WRC até ao 53º segundo, uma vez que