DAMI-M3 v1.1.0.a3 – Actualização 3
Actualização da programação
Alterações efectuadas
- Comportamento de saida de beco (implementado no master-sensor_v14)
- As leituras do sensor frontal em algumas rotações são apresentadas incorrectamente, o problema deve estar relacionado com o problema já reportado no processing (corrigido no master-sensor_v14)
- Corrigir a apresentação no processing3 de alguns movimentos de rotação em que, erradamente, a pose altera-se instantaneamente antes de efectuar a rotação, e no processo roda para apontar para o final na direção certa (corrigido no master-sensor_v14)
- os pontos dos sonares nas rotações provocam pontos incorrectos (mitigado no master-sensor_v14)
- Verificar a melhor forma de lidar com os valores dos sensores de distância para alem do limite (leitura 0 ou maior que o valor máximo) (escolhi 0 no master-sensor_v14)
- o varrimento com o servo polui a variavel de distancia frontal (arranjar forma dos scans não afectarem a leitura frontal) (resolvido ou mitigado no master-sensor_v14)
Foram realizados vários testes para confirmar o resultado das alterações efectuadas.
As alterações foram implementadas ao longo dos vários testes.
Observações gerais
Durante os vários testes e experiências efectuados, o comportamento do robot conforme esperado, excepto numa situação em que simplesmente parou o varrimento frontal logo no inicio, aparentemente sem razão, e não se mexeu mais (foi a primeira vez e unica até agora que aconteceu).
Teste 1
Procurou avaliar a correção à poluição do sensor de distancia frontal. assim como reavaliar no geral o posicionamento e orientação do robot.

Os resultados foram satisfatórios, a poluição do valor da distancia frontal foi resolvida ou mitigada quanto baste.
Repare-se na posição e orientação do robot na fotografia do espaço (acima) e no mapa (abaixo). São coincidentes ou muito aproximadas. Volto a concluir que a adequação geral da posição e orientação calculada e representada do robot é satisfatória.
Nota-se no mapa desenhado que o rasto do robot não é completamente limpo após a sua passagem. Alem disso, a observação da deslocação do robot, mostrava a sua deslocação aos pulos.
Penso que o problema tenha sido, pois nao se repetiu nos outros testes, ou ainda seja, falhas na comunicação rádio entre o robot e a estação base.
Devido a essas falhas a actualização do programa de desenho do mapa fazia-se com atrazo e aos pulos.
Com o problema da poluição resolvido, devo começar a pensar em arranjar forma de aumentar a exactidão do calculo das distancias recolhidas no laser frontal, tendo como base o estudo préviamente efectuado sobre o comportamento do VL53L1X.
A observação da distribuição dos pontos vermelhos, torna saliente a existencia de grupos de pontos com grandes discrepancias de localização face ao que seria expectavel.
Talvez o problema não seja só da exactidão das leituras, mas também da parametrização do método de obtenção da distancia actual, que é uma variavel calculada com o kalman simplificado.
Numa próxima versão devo experimentar usar parametros no calculo da distancia actual, semelhantes aos usados no sonar, ou na variavelQuick, que entretanto pode ser removida.

Grupo de testes 2
Testes do comportamento de saida de beco.
Este comportamento acontece quando o robot fica numa situação em que não vale a pena ir para a frente, pois é um espaço sem saida, em que nada há a explorar.
Conforme a dimensão do beco, o robot pode sair de marcha atrás ou rodando 180 graus, à esquerda ou à direita, em função do espaço disponivel.
Não está previsto a saida de becos muito profundos. Para o implementar, posso usar um controlo, por codigo de comportamento geral (que será o novo significado do: prgCmd.cmd), que pode entao ser usado para definir e gerir comportamentos mais complexos e continuados.
Teste 2a
Teste do comportamento de saida de beco com marcha atrás.
Foram efectuados dois testes a este modo de saida de beco. Um com um beco muito estreito, outro com um beco mais largo, mas que ainda assim nao permitu a rotação.
Foram efectuados vários testes deste tipo, os resultados foram satisfatórios, o comportamento foi quase sempre o esperado excepto duas vezes em que decidiu rodar sem espaço.
Terei que verificar se volta a acontecer. Tavez tenha que implementar medidas de controlo das distancias laterais, na execução dos comandos de movimento de rotação.


Filme do comportamento de saida de beco estreito com marcha atrás
Teste 2b
Teste do comportamento de saida de beco largo com rotação.
Foram efectuados vários testes deste tipo, os resultados foram satisfatórios, o comportamento foi sempre o esperado.
No entanto na observação do mapa gerado, e do qual estão reproduzidos abaixo dois momentos, está evidente uma consequencia do problema da orientação do robot no processing, que já foi relatado, e que neste teste mostrou afectar também o calculo dos pontos lidos pelo sensor de distancia frontal.
A nova linha vermelha que rodeia o robot, exibida no segundo mapa abaixo, nunca devia ter sido traçada á direita do robot.
O problema residia na actualização dos dados da odometria (problema de sinais) e foi corrigido.


Filme do comportamento de saida de beco largo com rotação
No filme do mapa gerado com comportamento de saida de beco largo com rotação,
Teste 3
Teste efectuado para avaliar o resultado das alterações efectuadas para corrigir o problema da orientação do robot nas rotações.
No filme do mapa gerado com comportamento de saida de beco largo com rotação, pode-se verificar que a nova linha vermelha a volta do robot já não é desenhada, e que a rotação do robot já não dá nenhum pulo subito, pelo que o problema foi resolvido, e os sintomas desapareceram.
Resumindo foram resolvidos problemas, e mais um passo consolidadação da arquitectura orientada para os comportamentos programados, com a inclusão de um novo comportamento.