RTDB2 : a flexible distributed blackboard - Silva, Diogo Bastos Tavares da (2017)
Devido ao contínuo crescimento na área de robótica, cada vez mais existe a necessidade de robôs comunicarem entre si de modo a ser possível criar cenários de cooperação, como no caso do futebol robótico. Na CAMBADA, uma equipa de futebol robótico que participa ativamente em competições nacionais e internacionais, existe um módulo interno responsável por garantir que os robôs conseguem aceder facilmente à informação partilhada entre eles de forma simples e eficaz. Este módulo é designado de Base de Dados de Tempo-Real (RtDB) e permite a replicação dos dados enviados por diferentes robôs, garantindo que cada robô consegue facilmente ter acesso à informação lida ou interpretada por um robô remoto. O modelo usado pela RtDB baseia-se totalmente em memória partilhada, sendo que cada robô contém a informação gerada e partilhada pelos outros replicada na sua instância. Desta forma o acesso aos dados de um outro robô é eficiente. A atualização dos dados guardados na RtDB é feita de forma transparente por um processo adicional. O objetivo desta dissertação foi a conceção, desenvolvimento, implementação e validação de uma nova versão da RtDB, designada RtDB2, que colmatasse algumas limitações identificadas na versão anterior e simultaneamente introduzisse algumas funcionalidades novas. Uma limitação importante eliminada pela RtDB2 foi a imposição existente do conhecimento prévio do espaço em memória que um item de informação ocuparia, obrigando a dimensionar as estruturas de dados para os casos mais desfavoráveis, o que conduzia a um despedício de memória e a um custo de transmissão de informação pela rede desnecessário. Entre as novas funcionalidades introduzidas podem-se destacar a possibilidade de usar linguagens de programação diferentes para produzir e consumir o mesmo item de informação, a possibilidade de dinamicamente introduzir novos itens ou a tolerância a pequenas modificações na definição de um item. A nova solução foi devidamente testada e utilizada em duas das competições anuais do RoboCup (Festival Nacional de Robótica em Coimbra, Portugal e no RoboCup 2017 em Nagoya, Japão), sem ter existido quaisquer ocorrências de problemas.