Como posso detectar buracos usando um acelerômetro montado em um veículo?

9

Atualmente, estou estudando DSP e FFT, sou muito novo nisso e faço eletrônica há muito tempo com projetos de Arduino e hobby. Recentemente, estou fazendo um projeto com o objetivo de mapear buracos ao longo do seu trajeto diário no carro, medindo a rugosidade da estrada. Este não é o perfil da estrada, mas a aspereza sujeita ao percurso que o motorista sente durante a viagem. Eu tenho uma aceleração montada para medir a aceleração "vertical" do eixo Z do carro, quando um buraco é atingido pelos choques e as molas amortecem a força conforme o modelo de quarto de carro por simplicidade.

Basicamente, eu quero ser capaz de criar um detector que detecte buracos usando a FFT para encontrar a frequência dominante da aceleração vertical; talvez eu possa combiná-lo com o padrão para detectar a batida da porta da porta do carro ou uma tampa de buraco de homem de um buraco, talvez no futuro.

Não tenho certeza se FFT é o caminho a seguir, qualquer sugestão ou conselho e idéias são muito apreciadas. Eu criei um filtro passa-baixo para filtrar a vibração de alta frequência do trem de acionamento e do motor.

Alguma idéia sobre a "aspereza" sujeita sentida pelos passageiros / motorista no carro? Eu estava pensando em fazer testes de estrada em uma estrada tranqüila, estrada de cascalho, estrada de tijolos, estrada ruim e chegar a um limiar da magnitude da aceleração vertical e fazer uma escala de alguma forma no que é considerado "áspero"

Os buracos detectados também seriam registrados com GPS em suas localizações, estou tentando usar o Rasberry Pi para isso, com armazenamento de dados e sua velocidade como um bom projeto para ele.

Obrigado qualquer ajuda ou idéias é apreciada, livros, tutoriais, sabedoria, etc

ATUALIZAR:

Carregue dados adicionais aqui:

/electronics/56238/accelerometer-data-smoothing-filtering-pothole-detection

zacharoni16
fonte
2
A resposta do PAK-9 abaixo tem algumas boas sugestões. A Etapa 1 para você provavelmente deve ser coletar alguns dados usando testes de estrada (como sugerido) para ver como são os recursos que você gostaria de detectar.
Jason R
Você os enviará automaticamente para seeclickfix.com? :)
endolith
Sim, eu poderia, se eu conseguir funcionar corretamente, lol, a cidade de Boston fez um aplicativo para smartphone que faz isso, eles tinham milhares de dólares em doações para as pessoas por seus envios. O meu será um subconjunto simples disso, imagino que com um smartphone a maioria das pessoas o mova em seu carro, então você teria que ter o telefone em um suporte para obter leituras precisas ou detestar de deixar o telefone cair ou movê-lo enquanto o carro está se movendo. Então, eu estou usando um acelerômetro externo para evitar essas complicações
zacharoni16
@ user978563 Qual é essa marca externa de acelerômetro que você está usando?
Spacey
Marca é KXPS5-3157 Datasheet dz863.com/downloadpdf-lovdnabsxg-KXPS5-3157.pdf
zacharoni16

Respostas:

8

Você não está realmente interessado nas informações de frequência em seu sinal, mas em recursos detectáveis ​​- como tal, eu sugeriria que não há tanta utilidade em uma FFT aqui.

O que você realmente quer fazer é correlacionar o 'sinal do carro' contínuo registrado no carro com um sinal diferente, que é a 'assinatura' da saliência do buraco. Você precisará adquirir essa assinatura gravando-a em um carro passando por um buraco (talvez gravando muitos e usando-os para produzir um sinal genérico que seja uma boa representação de um buraco). Depois de o ter, pode cruzá- lo com o sinal do seu carro. Você pode fazer isso no domínio da frequência; nesse caso, você deve correlacionar a FFT da sua assinatura com uma FFT deslizante do sinal do carro.

Convém processar o sinal do carro antes de usá-lo para remover, por exemplo, ruído de alta frequência (com um filtro passa-baixo). Você pode fazer isso de maneira bastante eficiente visualmente com vários filtros nos sinais do carro para ver qual remove as informações mais estranhas, deixando intactas as informações importantes do buraco.

PAK-9
fonte
Seria muito difícil fazer essa correlação cruzada programaticamente? Quero que tudo seja feito automaticamente em software. Acho que a parte mais difícil é obter o "sinal genérico" para um buraco amplo o suficiente para combinar a FFT com a FFT dos dados atuais no carro. A FFT deslizante, qual seria a função de janelas? A única coisa que me confunde sobre a FFT é a janela, seria uma janela deslizante? Parece que as freqüências Caldeirão ocorrer no 5Hz a faixa de 20Hz de frequência muito baixa que a SHM da suspensão de amortecimento
zacharoni16
2
A correlação cruzada não é especialmente difícil de fazer de maneira programática, é muito semelhante à convolução (ambas iterando essencialmente duas matrizes e executando alguma função com uma amostra de cada uma) - tenho certeza de que existem bibliotecas disponíveis, se você não quiser escreva o seu próprio. A assinatura pode ser um pouco difícil de adquirir, mas se você obtiver uma carga de dados, verá alguns recursos emergentes, além da correlação cruzada não ser binária, o resultado é essencialmente um valor de 'confiança' para que você possa defini-lo como quiser.
PAK-9
11
O fn de janela da FFT deslizante pode ser o que você quiser, não deve afetar o resultado de maneira dramática. Eu esperaria ver um grande impulso amortecido por um curto período (SHM da suspensão, como você diz), para que você possa sintetizar algo assim com base nas observações dos sinais.
PAK-9
AH que faz sentido, a parte difícil é obter a assinatura. Existe algum tutorial, livro ou site com um exemplo semelhante do procedimento? No momento, estou pensando que só preciso fazer solavancos sintéticos, como lombadas, buracos e motorista sobre eles várias vezes para obter muitos dados. Eu não sei o que apresenta devo considerar para a assinatura embora
zacharoni16
2
Dirigir sobre uma carga de solavancos e buracos e cortar essas partes do sinal dará a você uma biblioteca de assinaturas. Faça a FFT de cada uma delas para fornecer uma assinatura espectral, se algumas forem amplamente diferentes na inspeção visual, então as separe em grupos semelhantes. Em seguida, você pode executar algum tipo de média em cada grupo de assinaturas para terminar com uma assinatura 'mestre' final de cada grupo, que você pode comparar com os sinais do carro.
PAK-9