Repolode
hijimasa

hijimasa/cxd5602pwbimu_localizer_arduino

Projeto para Arduino IDE na placa Sony Spresense que estima posição e atitude usando sua IMU com navegação inercial e ZUPT.

Estrelas
29
Forks
6
Issues abertas
1
Último commit
há 10 horas

O que é?

Este projeto executa localização inercial na placa principal Sony Spresense com a IMU CXD5602PWBIMU adicional. Ele lê aceleração e velocidade angular a 1920 Hz e estima atitude, velocidade e posição em um sistema de coordenadas NWU relativo à Terra. O processamento é dividido entre os dois núcleos do Spresense: MainCore adquire os dados da IMU e envia a saída pela serial, enquanto SubCore1 executa a biblioteca Fusion AHRS, atualizações de velocidade zero (ZUPT), aprendizado de bias e integração trapezoidal.

A estimativa de posição começa com uma calibração inicial em repouso de cerca de 15 segundos; depois disso, o dispositivo envia linhas CSV com 18 valores a 30 Hz. Períodos de repouso zeram a velocidade e reduzem o drift; quando uma parada é confirmada, o erro de velocidade acumulado durante o movimento anterior é removido da posição. O algoritmo é escrito em C++ independente do Arduino para poder ser testado em um PC com dados sintéticos, e gravações feitas pelo dispositivo podem ser reproduzidas pelo mesmo código.

O repositório também inclui uma calibração de bias do acelerômetro em seis orientações pela serial, uma ferramenta para gravar dados brutos do dispositivo e um nó ROS 2 que converte a saída serial em mensagens padrão do ROS.

Recursos principais

  • 01Lê dados da IMU a 1920 Hz e os transfere entre os dois núcleos do Spresense por meio de um buffer circular.
  • 02Estima a atitude com a biblioteca Fusion AHRS e remove a gravidade da aceleração.
  • 03Detecta períodos de repouso com um ZUPT baseado em variância e média e zera a velocidade enquanto o dispositivo está parado.
  • 04Aprende o bias do acelerômetro durante o repouso e compensa a rotação da Terra no giroscópio.
  • 05Corrige retroativamente o erro de posição acumulado quando uma parada é confirmada.
  • 06Oferece calibração do acelerômetro em seis orientações, armazenada na memória flash SPI.

Casos de uso

  • Experimentar navegação inercial de baixo custo em uma placa Spresense.
  • Estudar implementações de ZUPT e fusão de sensores em C++ independente do Arduino.
  • Enviar a saída serial da IMU do Spresense para o ROS 2 e visualizar os dados no RViz.

Em coleções

Tópicos

#imu#sensor-fusion#localization#arduino#embedded#zupt#spresense#robotics

Perguntas frequentes

O que é cxd5602pwbimu_localizer_arduino?
Projeto para Arduino IDE na placa Sony Spresense que estima posição e atitude usando sua IMU com navegação inercial e ZUPT. Este projeto executa localização inercial na placa principal Sony Spresense com a IMU CXD5602PWBIMU adicional. Ele lê aceleração e velocidade angular a 1920 Hz e estima atitude, velocidade e posição em um sistema de coordenadas NWU relativo à Terra. O processamento é dividido entre os dois núcleos do Spresense: MainCore adquire os dados da IMU e envia a saída pela serial, enquanto SubCore1 executa a biblioteca Fusion AHRS, atualizações de velocidade zero (ZUPT), aprendizado de bias e integração trapezoidal.
cxd5602pwbimu_localizer_arduino é gratuito? Qual é a licença?
cxd5602pwbimu_localizer_arduino é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
cxd5602pwbimu_localizer_arduino ainda é mantido?
Manutenção ativa. O último commit de cxd5602pwbimu_localizer_arduino foi em 6 de nov. de 2026.
Para que posso usar cxd5602pwbimu_localizer_arduino?
Experimentar navegação inercial de baixo custo em uma placa Spresense. Estudar implementações de ZUPT e fusão de sensores em C++ independente do Arduino. Enviar a saída serial da IMU do Spresense para o ROS 2 e visualizar os dados no RViz.
Onde consigo cxd5602pwbimu_localizer_arduino?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/hijimasa/cxd5602pwbimu_localizer_arduino

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados