Para a implementac¸˜ao das estrat´egias de planejamento de rota, ´e necess´ario que todos os requisitos do sistema b´asico de navegac¸˜ao (cap´ıtulo 3) e as habilidades desenvolvidas nos cap´ıtulos 4 e 5 sejam executadas para cada robˆo utilizado nos experimentos.
Portanto, o comportamento distribu´ıdo entre os robˆos ´e alcanc¸ado por meio de scripts individuais em C++, executados em diferentes n´os ROS e associados a cada membro do SMR. Os scripts s˜ao desenvolvidos de acordo com o framework ActionLib (SANTOS et al., 2017), onde o paradigma cliente-servidor ´e intermediado pelo ROS e permite que os robˆos processem as tarefas de uma forma preemptiva e por meio de mensagens padronizadas.
Cada script ´e dividido em trˆes etapas de execuc¸˜ao, conforme ilustrado na Figura 56: (i) a partir dos dados do ambiente (posic¸˜ao dos marcadores ARTags), obtidos da imagem capturada pela cˆamera, subscrever e publicar mensagens em t´opicos ROS relacionados `as habilidades de detecc¸˜ao/comunicac¸˜ao; (ii) executar a estrat´egia de planejamento; e (iii) publicar as ac¸˜oes de controle resultantes.
Figura 56: Processamento dos scripts dos robˆos. Fonte: Adaptado de (SANTOS et al., 2017).
Na etapa (i), os robˆos acessam a posic¸˜ao de todas as ARTags, que s˜ao detectadas pela cˆamera (alvos e/ou robˆos) e publicadas usando o pacote ROS ar_track_alvar. Entretanto, apenas as ARTags que s˜ao detectadas pelos robˆos (posicionadas no interior da regi˜ao de detecc¸˜ao dos robˆos) s˜ao consideradas para a pr´oxima etapa do algoritmo. Assume-se que os objetos n˜ao detectados (fora da regi˜ao de detecc¸˜ao) s˜ao completamente desconhecidos aos robˆos.
Este primeiro procedimento da etapa (i) destaca a importˆancia da regi˜ao de detecc¸˜ao para obter o conhecimento do ambiente. Para a estrat´egia h´ıbrida de planejamento de rota (cap´ıtulo 4), todos os objetos localmente detectados pela leitura das ARTags s˜ao considerados
como obst´aculos e oferecem um risco de colis˜ao, ou seja, os robˆos devem desviar dos alvos atribu´ıdos a ele ap´os colet´a-los, desviar dos alvos que n˜ao constam em sua lista de tarefas e desviar de outros robˆos (obst´aculos dinˆamicos). Por outro lado, na estrat´egia de planejamento bioinspirada em feromˆonios artificiais (cap´ıtulo 5), as ARTags detectadas desta maneira devem ser diferenciadas entre alvos e robˆos. Quando representar um alvo, ele pode ser considerado para a visita ou se tornar um obst´aculo est´atico (se o alvo n˜ao for atribu´ıdo a um robˆo), de acordo com as decis˜oes tomadas localmente pelo SMR, enquanto as ARTags associadas aos robˆos s˜ao sempre obst´aculos dinˆamicos.
Para que ocorra esta interac¸˜ao, cada robˆo publica duas listas em t´opicos ROS individuais: uma ´e composta pelas ARTags que representam outros robˆos, denominada L1, e a segunda cont´em a posic¸˜ao de todos os outros elementos detectados (alvos e/ou obst´aculos), denominada L2. Essas listas podem ser acessadas pelos robˆos envolvidos no processo de alocac¸˜ao de tarefas (pol´ıtica de negociac¸˜ao de alvos). Estes procedimentos servem como base para que a comunicac¸˜ao direta seja executada entre os robˆos, permitindo-lhes compartilhar informac¸˜oes, incluindo o aspecto transitivo, descrito no cap´ıtulo 5 (Figura 33).
A comunicac¸˜ao direta estabelecida ´e exemplificada na Figura 57. Neste caso, trˆes robˆos (R1, R2 e R3) publicam suas listas (L1 e L2) em seus respectivos t´opicos ROS, representado pelas linhas tracejadas em azul. Como R2 ´e detectado por R1, e vice-versa, eles s˜ao capazes de compartilhar suas listas: R1 e R2 acessam as listas publicadas pelo outro, representado pelas linhas tracejadas em vermelho. O robˆo R3 apenas publica suas listas e, por n˜ao detectar nenhum outro robˆo (e tamb´em n˜ao ser detectado), sua lista de detecc¸˜oes n˜ao pode ser acessadas por outros robˆos.
Para a detecc¸˜ao de feromˆonios (mecanismo do planejamento bioinspirado), a posic¸˜ao de um robˆo no ambiente ´e convertida para a posic¸˜ao equivalente em uma c´elula de um grid map criado. Assim, cada robˆo faz a leitura das c´elulas ao seu redor, ou seja, que est˜ao no interior de sua regi˜ao de detecc¸˜ao e toma suas decis˜oes de acordo com a intensidade detectada de feromˆonio.
A respeito da estrat´egia bioinspirada em feromˆonios artificiais, conforme descric¸˜ao no cap´ıtulo 5, os sinais para a comunicac¸˜ao indireta s˜ao representados neste ambiente real por meio de um grid map, executado pelos pacotes ROS OccupancyGrid e costmap_2d (WIKI, 2018b). Esta grid utiliza o sistema de referˆencia definido anteriormente e possui uma resoluc¸˜ao de 0,02 m/cel. Cada c´elula desta grid ´e utilizada para armazenar a intensidade dos sinais de feromˆonio, permitindo a sua leitura por meio de t´opicos ROS apropriados.
Figura 57: Exemplo da comunicac¸˜ao direta na arquitetura proposta: compartilhamento de informac¸˜oes entre robˆos.
Fonte: Autoria pr´opria.
estrat´egia de planejamento de rota, como descritas nos cap´ıtulos 4 e 5. Para a estrat´egia h´ıbrida, devido as limitac¸˜oes de tamanho do ambiente real, assume-se que cada robˆo sabe sua posic¸˜ao atual no ambiente em todo instante e, portanto, a navegac¸˜ao cega n˜ao ocorre nos experimentos conduzidos com os robˆos reais. Entretanto, os robˆos frequentemente derrapam devido ao seu formato esf´erico, o que causa desvios nas rotas calculadas. Tais erros s˜ao corrigidos assim que s˜ao detectados, usando os mesmos procedimentos dos casos de navegac¸˜ao cega. Em relac¸˜ao ao planejamento bioinspirado em feromˆonios, todas as decis˜oes de navegac¸˜ao (D1, D2, D3, D4 e D5 – Figura 36) s˜ao consideradas nesta implementac¸˜ao. O sistema de locomoc¸˜ao fuzzy, com todos os seus controladores e decis˜oes (Figura 7), ´e implementado individualmente em todos os scriptsdos robˆos.
Finalmente, na etapa (iii), as ac¸˜oes de controle resultante s˜ao publicadas nos t´opicos ROS relacionados ao mecanismo de locomoc¸˜ao dos robˆos, por meio do uso do pacote ROS sphero_swarm.