Kit em chinês para reproduzir o robô pato bípede Microduck com servos Feetech HD1910, incluindo guias de montagem, peças para impressão 3D, placas HAT/IMU personalizadas e ferramentas de treinamento com RL.
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
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
Framework open source para programar cães e gatos robóticos quadrúpedes com Arduino e Raspberry Pi, incluindo controle de marcha, servos e integração com IMU.
Robô quadrúpede compacto, open source e imprimível em 3D, baseado no ESP32, com rosto em OLED e locomoção acionada por servos.
Firmware alternativo para placas ESP8266 e ESP32, com configuração via web, atualizações OTA, automação local e controle por MQTT, HTTP, Serial ou KNX.
Um compilador Go baseado em LLVM para microcontroladores, WebAssembly (WASM/WASI) e ferramentas de linha de comando.
Ferramenta de linha de comando multiplataforma e sistema de build para desenvolvimento embarcado, com gerenciamento de bibliotecas, suporte a várias placas e frameworks, depuração e testes unitários.