segunda-feira, 13 de maio de 2013

Testes Acelerómetros como "Inclinómetros"

Boa noites caros seguidores!

Venho mais uma vez dar noticias sobre os pequenos sensores...

Ora uma vez que os acelerómetros se mostraram um pouco "ruidosos" e para pequenas acelerações não se tornar evidente as movimentações, realizei alguns testes a testar a sua viabilidade como "inclinómetros", ou seja, usar estes sensores para calcular a sua inclinação em relação ao vetor da gravidade.

Para estes testes, pude contar mais uma vez com a preciosa ajuda do nosso amigo Fanuc :)

Para posições estáticas foram medidos os valores que os acelerómetros devolviam e digamos que os resultados não são desanimadores...

Com o sensor da POLOLU e tentando alinhar um dos acelerómetros (do eixo Z) com o vetor da gravidade, podem-se observar os resultados presentes na figura que se segue:

Nesta figura pode observar-se que o acelerómetro do eixo Z tem valores que rondam os 256. Isto porque para as configurações atuais, este valor corresponde a 1g. Os acelerómetros dos outros 2 eixos, como seria de esperar, têm valores próximos de 0. 

Com estes dados, calculando apenas a inclinação do eixo Z dos acelerómetros em relação ao vetor da gravidade temos:


Nesta nova figura, podemos observar que os valores da inclinação do eixo Z dos acelerómetros em relação ao vetor da gravidade ronda valores muito próximos de 0. De notar que esta curva nao apresenta qualquer filtragem, apresentando uma amplitude média de 1,5º. Aplicando um filtro de média, sendo um dos mais simples que pode ser usado, conseguiu-se uma amplitude média de 1º. Isto pode ser observado na figura que se segue.


Mais testes foram feitos com estes sensores. Por exemplo na imagem que se segue, a inclinação foi de 35º.

Como se pode observar, os valores do acelerómetro do eixo Z baixou um pouco os seus valores, mas a nossa atenção deve-se voltar para o acelerómetro do eixo Y. Usando os valores deste para calcular a inclinação do IMU, chegou-se ao seguinte gráfico:



Aqui o valor médio da inclinação ronda os 36º e não os 35º. Aqui podemos ter uma perceção do tipo de precisão que podemos ter com estes acelerómetros, contudo, para aplicação no humanoide, penso que esta gama de precisão não será de deitar fora, tendo apenas que tentar reduzir o ruido obtido nas leituras.

No gráfico seguinte pode-se observar a aplicação do mesmo filtro de média utilizado no exemplo anterior.

Neste gráfico pode-se obsrevar uma diminuição da amplitude média em relação ao gráfico anterior. No entanto, penso que seria conveniente experimentar outro tipo de filtros que reduzissem de melhor forma o ruido.

Agora, caros seguidores, devem estar a perguntar-se sobre o segundo sensor, o da RAZOR. Não! Não me esqueci dele.

Para a primeira situação do sensor anterior(alinhar o sensor do eixo Z com o vetor da gravidade), podemos então observar então os dados obtidos.


Como o sensor anterior, os resultados são semelhantes à excepção de um pormenor. O valor máximo que para as configurações do IMU tem, deveria ser próximo de 256 contudo nota-se que esse valor não é maior que 225. Tal acontece provavelmente por uma calibração mal feita ou já desajustada.

No entanto, os resultados para os valores da inclinação nesta situação que serão apresentados a seguir, não são maus de todo.


Os valores encontram-se um pouco deslocados. Em vez de 0º rondam 1.8º,no entanto, mantém uma amplitude média de 1º.

A seguir, pode-se observar os dados dos acelerómetros para uma inclinação de 35º como no exemplo do POLOLU. Como há pouco, há uma descida dos valores do acelerómetro que estaria anteriormente alinhado com o vetor da aceleração gravítica e um aumento nos valores do eixo X.

 Estes valores, com o algorítmo de conversão em inclinação deram origem ao seguinte gráfico:
 Como na inclinação anterior, os dados permitiram observar uma inclinação próxima da real e com uma amplitude média de 1º em torno dos 35.6º. Filtrando com o mesmo filtro de média, os resultados melhoram um pouco, como se pode observar na figura seguinte.

terça-feira, 7 de maio de 2013

Rede Sensores - Recurso ao Multiplexer

Boa noite,
após um dia um pouco atribulado, devo dizer que consegui um pequeno (mas importante) progresso.

Após muitas dores de cabeça que as montagens de circuito em placa branca sabem dar, com fios constantemente a sair ou de uma forma tímida a recusarem-se a colaborar, acrescido ainda de "nabices" minhas a nível da adaptação de software consegui estabelecer a muito aguardada "rede" de apenas 2 IMUs.

Tal foi conseguido, conforme já tinha referido por meio de um multiplexer a permitir a comunicação via I2C entre um Arduino Uno e 2 desses IMUs apenas com um par de fios por parte do arduino.

Pode-se dizer então que, SIM É POSSÍVEL... e SIM CONSEGUI :)

O trabalho está MUITO LONGE de estar em bom caminho... mas julgo que esta pequena vitória representa sempre um pequeno passo em frente.

Brevemente, assim que tiver uma montagem mais apreciável à vista humana publicarei algumas imagens da montagem e falarei mais também sobre a mesma.

Para os mais esquecidos, os IMUs que incorporei nesta pequena rede foram 2 minIMU-v2 9dof que comunicam como já disse via I2C.

Paralelamente a esta evolução conto em também analisar os dados das experiências recentemente realizadas no âmbito do estudo dos acelerómetros a funcionar como "inclinómetros" (sobre o qual também apresentarei publicações).

quinta-feira, 2 de maio de 2013

Experiências Fanuc - Resultados e "Feedbacks"

Saudações Caríssimos Seguidores!

Peço-vos desculpa por me ter ausentado deste blogue tanto tempo mantendo-vos desatualizados da evolução do trablho que tenho vindo a desenvolver.

Pois bem... a verdade é que já realizei alguns testes! No entanto, a análise dos dados retirados nesses testes ainda não foram 100% conclusivos. 

Passo então a expôr...

Na vertente "boa" dos testes - digamos assim - podem-se verificar para movimentos de rotação (puramente movimentos de rotação em torno de um eixo de cada vez), as seguintes imagens:

Para sensor da Pololu (o mais pequeno)


Na primeira imagem, pode-se observar o movimento do "end-effector" do fanuc a azul (a primeira linha de gráficos- cada gráfico corresponde ao movimento de cada eixo) e imediatamente abaixo, a resposta dos giroscópios (a vermelho).

Na segunda imagem os 3 gráficos, dizem respeito à comparação de cada um dos movimentos do "end-effector" do fanuc apresentados nos gráficos anteriores mas agora a vermelho observa-se a resposta doo giroscópios integrada, ou seja, a posição angular dada pelos giroscópios.

É de observar, que para estes movimentos foi obtida uma resposta por parte deste sensor bastante aceitável, contudo deve-se também fazer notar  que sempre que a posição angular do fanuc se encontra em 0, os valores dados pelo giroscópio variam para valores diferentes deste. Isto pode dever-se ao efeito do "drift" que é muito comum neste tipo de sensores, ou ainda, a uma fraca qualidade entre o controlador do fanuc e a sua leitura de posição.


Para sensor da Razor (o maior)



Neste segundo sensor, para as mesmas condições, o comportamento é semelhante, tornando difícil a diferenciação destes sensores pelo comportamento dos giroscópios aqui demonstrado. Consoante a necessidade, novos testes em movimentos de rotação serão realizados.

De salientar que estes movimentos foram realizados a uma velocidade de 50º/s.