DAMI-M3 v1.1.0.a2 – Actualização 2
Actualização da programação
Alterações efectuadas
- Mudanças no nome de algumas variáveis e funções (master_v13);
- Implementação dos comandos remotos pause, go, restart arduino (rxbase_v3, master_v13);
- Implementação no processing3 do envio de comandos iniciais para a estação base e para o robot (mod1_v4);
Software
- Robot
- dami_m3_master_sensor_mod2_v13
- dami_m3_slave_motion_mod2v5
- Base
- dami_nrf24l01_rxbase_v3
- Processing
- dami_map_mod1_v4
Os testes 1 e 2 descritos abaixo foram efectuados com os programas:
- master_v13
- rxbase_v2
- map_mod1_v3
Nestas versões o programa da base de comunicações informa todas as coordenadas divididas por 10 (em cm).
Por acidente o map_mod1_v3 não foi guardado, e o programa perdido. Foi rescontruid hoje de memoria, mas está ultrapassado pela v4.
Para além da limpeza e renomeamento de funções e variaveis, apenas foi feita a implementação dos comandos remotos. Não foram feitas correções ou melhorias. Portanto os testes são validos para a actualização.
O robot mede 12 cm de lado, e 13 cm do eixo das rodas a parte da frente.
Teste 1
O objectivo deste teste é procurar avaliar a adequação da escala, da orientação do robot e das leituras dos sensores, na apresentação no Processing3
Para efectuar o teste foi preparado o ambiente exibido na fotografia.
O robot dista cerca de 22 cm da parede à sua direita e 10 cm da parede à esquerda.
Na sua frente a parede em diagonal dista também cerca de 22 cm do robot.
O robot está suspenso, por isso apesar dos dados da odometria exibirem a deslocação do robot, esta não acontece de facto.

Na apresentação do processing3 observamos:
- a branco, o espaço onde o robot passou (o robot é vermelho)
- a verde (lado de baixo), a distancia medida pelo sonar esquerdo
- a azul (lado de cima), a distancia medida pelo sonar direito
- a vermelho (à esquerda) a distancia medida pelo laser frontal
- a laranja (zona frontal) as distancia medidas peo laser frontal no varrimento

Face aos resultados conclui que:
- a escala está bastante aproximada, talvez a representação do robot esteja um pouco grande, como ele não está visivel (defeito da foto) estou a avaliar pelo rasto branco. O tamanho do robot no processing3: 192/6 x 120/6; (devia ser a dividir por 10, mas o robot ficava pequeno e decidi ser por 6 na altura)
- A orientação do robot e das leituras dos sensores parecem bem. Quer na escala, quer na orientação
- Relacionado com a escala está a dimensão da área de apresentação. Não é visivel na foto, mas a área ocupa a toda a largura de um ecran HD (1900px) e supera a sua altura.
- Apesar desta área enorme, o espaço usado pelo ambiente do robot é muito menor. Julgo que devo adequar o tamanho do ambiente ao tamanho da area no processing.
Resumindo, julgo que :
- devo voltar a enviar as coordenadas sem qualquer divisão (em mm); e efectuar qualquer divisão de escala necessária no Processing3;
- devo reduzir o tamanho da área no processing3 e adequa-la à area do ambiente de teste. ( creio que essa adequação é escala efectiva);
- devo colocar o tamanho do robot deve ter a mesma escala usada mapa;
Teste 2
O objectivo deste teste é procurar avaliar a adequação da orientação do robot e das leituras dos sensores, na apresentação no Processing3, durante a sua actividade normal. No conjunto é avaliada também a representação obtida dos limites da área.
O teste foi realizado 2 vezes, na primeira vez foram desenhados os pontos de todos os sensores de distancia, na segunda vez apenas foi desenhado os pontos do sensor laser frontal.
Para efectuar o teste foi preparado o ambiente exibido na fotografia.
A área tem as seguintes dimensões (a partir da parede do espelho, sentido do relógio: 78, 154, 67, 45, 40, 49, 50 cm.
O robot inicia do lado direito voltado para espelho. Em frente a caixa branca com os triangulos verdes.
O programa inicial é: anda 50 cm em frente, roda 90 graus, anda 25 cm em frente, roda 90 graus, reinicia. O programa é interrompido e eliminado após encontrar o primeiro obstáculo, e executa o comportamento basico de desvio de obstaculos, anteriormente descrito.
Teste 2a
Este teste é composto por 3 momentos correspondentes a 5 movimentos do robot. São exibidos os pontos dos sensores de distancia: esquerdo, direito e frontal.
Momento 1
Após iniciar o movimento em direção à parede do espelho. Ainda não passou o limite do caixote à esquerda.
Vai andando e entretanto passa pelo limite do caixote à esquerda.
Pode-se verificar esse pormenor na foto exibida abaixo.
Momento 2
Após andar os 50 cm para e executa a rotação de 90 graus.
Com esta rotação quase toda a area do ambiente de testes fica com os contornos desenhados.
Durante o movimento de rotação, o sonar direito provocou uma deformação arredondada exibida na linha azul.
O mapa do espaço com a localização do robot está na altura com o aspecto da foto abaixo.
Momento 3
Após andar 25 cm, parar, e executar uma rotação de 90 graus e voltar a andar.
Nesta altura, o robot está a executar o seu 5 movimento programado.
A sua orientação é exactamente a contrária à inicial, e essa orientação e posição batem certo com a representação efectuada no processing3.
Teste 2a
Este teste é composto por 8 momentos correspondentes a 15 movimentos do robot. São apenas exibidos os pontos do sensor de distancia frontal.
Momento 1
A efectuar o 5º movimento.
- Avançou 50 cm
- Rodou 90 graus
- Avançou 25 cm
- Rodou 90 graus
- Está no decurso do avanço de 50 cm
Este percurso em U está visivel no rasto branco deixado.
Nos movimentos de rotação os limites do ambiente começaram a ficar definidos.
Momento 2
Depois de ter parado por detectar um obstaculo frontal, faz um varrimento, visivel nos pontos a amarelo, e efectua uma rotação no angulo com maior distancia disponivel, e está a efectuar o 7 movimento, a andar em frente.
Momento 3
Depois de ter parado por detectar um obstaculo frontal, efectua uma rotação e está a efectuar o 9 movimento.
A posição e orientação da representação no mapa está próxima da realidade.
Momento 4
Ainda a continuar o 9 movimento, a chegar perto ao canto junto o espelho.
Momento 5
Depois de ter parado por detectar um obstaculo frontal, efectua uma rotação e está a efectuar o 11 movimento.
Momento 6
Ainda a continuar o 11 movimento, a chegar perto ao outro canto.
Momento 7
Depois de ter parado por detectar um obstaculo frontal, efectua uma rotação e está a efectuar o 13 movimento.
A posição e orientação da representação no mapa continuam a estar próximas da realidade.
Momento 8
Mai uma vez, depois de ter parado por detectar um obstaculo frontal, efectua uma rotação e está a efectuar o 15 movimento.
Existiram mais momentos registados, pois o robot continuou a andar sem bater até acabar a bateria.
No entanto, o mapa começava a ficar com pontos anormais acumulados ao longo do tempo, que julgo serem o resultado da alimentação do varrimento usar como fonte a mesma variavel que as leituras normais.
Momento final
Não sei quantos movimentos foram executado até esta momento.
O que me interessa em particular neste momento é: a aproximação da orientação do robot no mapa face á sua orientação real, que me parece adequada; e o ruido de pontos de leitura do sensor de distancia que entretanto se foram acumulando.