Gianluca Bardaro, Andrea Semprebon e Matteo Matteucci

A use case in model-based robot development using AADL and ROS

2018


Ana Barbosa

2026 © IFRN CNAT

Resumo

O artigo demonstra AADL para uma abordagem baseada em modelos para separar e aprimorar o desenvolvimento, dividindo as funções de engenheiros de software e especilistas em robótica.

2026 © IFRN CNAT

1. Introdução

Rôbos são sistemas complexos. Eles são o resultado da cooperação de diversas áreas. Entretanto, não existe suporte para essa cooperação.

A arquitetura de software dos robôs são sistemas baseasdos em componentes distríbuidos. O middleware mais usado é o ROS, composto por Nodes e Topics.

"We don’t wrap your main."

2026 © IFRN CNAT

Porém, a liberdade que ROS oferece, não é mais sustentável atualmente.

A proposta é criar uma descrição de uma arquitetura de robô baseada em modelos e usar isso para análise de arquiterura, com AADL, e geração de código automática.

2026 © IFRN CNAT

2. A Plataforma

O robô utilizado é a cadeira de rodas elétrica Twist T4 2x2,
modificada para controle por computador.

O sistema que converte ela para uma plataforma robotíca
é o Personal Mobility Kit (PMK), equipado com:

  • motor encoders
  • laser scanner distance sensors
  • on-board PC

O PMK possui os seguintes modos de controle:

  • Manual, PMK desligado
  • Manual, mediado pelo PMK
  • Assistido
  • Autônomo

Twist T4 2x2,

2026 © IFRN CNAT

3. O Modelo

AADL Model,

2026 © IFRN CNAT

O modelo representa as quatro principais partes do robô: teleoperation, sensing, navegation e platform.

Com isso, o sistema principal fica divido em subsistemas, o que é útil para a abstração da arquitura, apesar de não ser necessário.

No sistema principal há dois componentes: o overseer, que gerencia o estado global do sistema, e o ROS Topics, que representa a infraestrutura de comunicação do ROS.

2026 © IFRN CNAT

4. A Implementação de Nós

Nodes UML Diagram

2026 © IFRN CNAT

LifeCycle não está ligado aos nós do ROS. Ele possui uma lista de pares de estados (origem e destino), esses estados são vinculados métodos ou funções que são executados após a transição de estado.

ROSNode implementa o básico para nós ROS, associando métodos aos estados criando um ciclo de vida. Sendo eles: Init, Running, Closing e Error.

Isso além de

2026 © IFRN CNAT

5. Geração de Código

Para a geração do código com base no modelo, os Nós são divididos em três grupos existentes, customizados e especiais.

Existentes: são modelados apenas pelas suas interfaces (tópicos e serviços). O gerador não cria código para eles, mas os inclui na arquitetura.

Customizados: são totalmente descritos no modelo AADL e têm seu código C++ gerado automaticamente.

Especiais: Alguns Nós não podem ser totalmente gerados automaticamente. Mesmo assim, eles são modelados em AADL e adaptado manualmente, aproveitando a estrutura gerada.

2026 © IFRN CNAT

6. Comparação de Arquiteturas

No geral, a arquitetura baseada em modelos se mostra equivalente nos resultados em comparação com a arquitetura feita a mão, com a vantagem de redução de erros e geração de código.

Dentre os problemas principais estão:

  • Conexões desnecessárias
  • Dependência circular nos Nós
  • Nõs redundantes e desconectados.

Por exemplo, o heartbeat node envia o estado para muitos Nós que, praticamente, não usavam essa informação.

2026 © IFRN CNAT
  • Arquitetura Original
    Arquitetura Original,
2026 © IFRN CNAT
  • Arquitetura Baseada em Modelo
    Arquitetura Baseada em Modelo
2026 © IFRN CNAT

Por fim, foi feito um teste de tragetória em
modo autonomo entre o código gerado e
escrito a mão.

Os caminhos se mostram equivalentes.

Comparação de Trajetória,

2026 © IFRN CNAT

7. Discussões

Geração de Código

Existe muitas soluções para gerar código para o ROS .automáticamente.

Mathlab possui o Robotics System Toolbox, que gera C++ com base em modelos Simulink, porém é muito verboso.

SmartSoft, uma abordagem orientada a serviços baseada em componentes, é baseada em DSL que pode ser usada como ponto de partida.

Há outros, como C-Forge e RoCK.

2026 © IFRN CNAT

Desenvolvimento de Sofware Robótica

O trabalho tem como objetivo criar uma solução mais próxima dos desenvolvedores e especialistas, e não a solução definitiva para desenvolvimento de software robótico.

A AADL proporcina a análise de sistemas de baixo nível e modelagem de componentes de hardware. O próximo passo seria analise de recursos (CPU, banda larga) para melhor integração com o software.

2026 © IFRN CNAT

Comentários

O artigo traz um caso de uso muito interresante, apesar de não se aprofundar na AADL. O trabalho busca melhorar a experiência de desevolvimento de software robótico.

2026 © IFRN CNAT

Referência

GIANLUCA BARDARO; SEMPREBON, A.; MATTEUCCI, M. A use case in model-based robot development using AADL and ROS. 28 maio 2018.

2026 © IFRN CNAT