Anteriormente
É importante que você tenha visto o post anterior, Definição do modelo Bbot, para um completo entendimento do desenvolvimento do projeto.
Na etapa dois do processo de construção do Bbot, e de qualquer outro projeto de robótica, é importante definir as funcionalidades do robô. Antes de iniciarmos as próximas etapas, o desenho da arquitetura do robô (mão na massa!! 👷🔧), precisamos listar essas características e analisar como elas estão conectadas entre si, tendo assim um total controle do desenvolvimento do projeto.
Diagrama das funcionalidades
No diagrama construído para o Bbot, podemos ver uma gama de funcionalidades. Para facilitar o entendimento, vamos particionar o diagrama em seções de funcionalidade.
Localização
A localização é responsável por monitorar da posição e orientação do robô dentro do ambiente no qual está contido. Usando os dados de posicionamento e orientação, enviados pelos sensores presentes no sistema de percepção, esta funcionalidade fornece aos sistemas de mapeamento e planejamento de trajetória uma mensagem contendo os dados de posição e orientação do robô no ambiente. A funcionalidade localização serve de base para outras funcionalidades que promovem autonomia ao robô.
Navegação
A navegação para o bbot utiliza o planejamento local e global para transitar de forma segura no ambiente. O sistema de navegação possui como dependência a funcionalidade de planejamento de trajeto. Como saída da funcionalidade de navegação, será enviado a execução da trajetória e, na falha de uma adequada navegação, envia um comando de replanejamento de trajeto.
Percepção
O sistema de percepção do Bbot, através de sensoriamento, deve fornecer ao robô a capacidade de perceber e traduzir as suas próprias condições e as condições do ambiente no qual está inserido. Essas funções são garantidas pela aquisição e processamento de dados coletados de sensores inerciais e sensores ópticos, os quais estão integrados à estrutura do robô. O sistema de percepção oferece, portanto, modelagem do robô e do ambiente obtida pela representação dos dados de IMU, LiDAR 2D, Câmera e Sensor de tensão e pelos algoritmos de tratamento aplicados a esses dados.
A funcionalidade de percepção depende dos dados sensoriais que estão incorporados na estrutura do robô.
As saídas desta funcionalidade são o mapeamento, localização, detecção e controle.
Mapeamento
Utilizando as informações da localização, é possível criar um mapa do ambiente.
A funcionalidade de mapeamento depende dos dados de percepção (pontos 3d do sensor LiDAR) e localização.
Através dos mapa, é possível gerar um costmap global e um costmap local, que é utilizado pela funcionalidade de planejamento de trajetória para identificar a posições do mapa onde o robô não pode transitar e pela funcionalidade de navegação para planejar os controles de velocidade do robô de forma que ele não colida com os obstáculos.
Detecção
No Bbot essa funcionalidade é responsável pela detecção da TAG (importante para missão do robô). Depende dos dados da funcionalidade de percepção e tem como saída o planejamento de trajetória (enviando a pose de destino).
Controle
Define a estratégia adotada para que o robô consiga se equilibrar. No nosso caso, foi escolhido o controlador PID. Depende da funcionalidade da percepção e tem como saída os comandos de velocidade do robô para que ele consiga de equilibrar.
Comportamento
O comportamento tem como função avaliar as situações do ambiente e do estado do robô. Esta funcionalidade é genérica e pode ser descrita como um tomador de decisões que garantem o bom funcionamento do robô. No caso do Bbot, esta funcionaliade irá monitorar a carga atual da bateria e garantir que o robô interrompa sua missão e sinalize o usuário caso esta esteja abaixo de um dado valor. Esta funcionalidade, no entanto, pode ser incrementada futuramente para englobar outras decisões.
Inatividade
É a funcionalidade que dá ao robô uma posição de proteção por motivos de falha. Ela tem como entradas as falhas do robô e como saída a posição de inatividade.
Planejamento de trajetória
Recebe dados do mapeamento, detecção, localização e navegação e, seguindo uma trajetória definida na interface, faz um planejamento adequado para o robô. Tem como saída o path global e local para a funcionalidade de navegação.
Atuação
Essa funcionalidade torna possível o controle dos atuadores das pernas e de locomoção. Tem como entrada os comandos de velocidade dados pelo controle e como saída os comandos de movimento para cada junta do robô. Esta funcionalidade faz a comunicação direto com o hardware.
Conclusão
Na segunda etapa do projeto, nós apresentamos as funcionalidades e como elas estão relacionadas. Com base nesses parâmetros propostos aqui, podemos partir para a construção do Bbot!! 🔧