DAMI-M3 v1.1.0.a2

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.

Ambiente do teste 1

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
Apresentação no Processing3

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.