Feetech HD1910 서보를 사용하는 Microduck 이족 보행 로봇 오리를 재현하기 위한 중국어 제작 키트로, 조립 가이드, 3D 프린팅 부품, 커스텀 HAT/IMU 보드와 RL 학습 도구를 제공합니다.
hijimasa/cxd5602pwbimu_localizer_arduino
ZUPT를 적용한 관성 항법으로 위치와 자세를 추정하는 Sony Spresense 보드용 Arduino IDE 프로젝트입니다.
- 스타
- 29
- 포크
- 6
- 열린 이슈
- 1
- 마지막 커밋
- 12시간 전
어떤 프로젝트인가요?
이 프로젝트는 CXD5602PWBIMU 애드온 IMU를 장착한 Sony Spresense 메인 보드에서 관성 위치 추정을 수행합니다. 가속도와 각속도를 1920 Hz로 읽고, 지구 기준 NWU 좌표계에서 자세, 속도, 위치를 추정합니다. 작업은 Spresense의 두 코어에 나뉘어 있습니다. MainCore는 IMU 데이터를 수집해 시리얼로 출력하고, SubCore1은 Fusion AHRS 라이브러리, 영속도 업데이트(ZUPT), 바이어스 학습, 사다리꼴 적분을 실행합니다.
위치 추정은 약 15초 동안 정지 상태에서 초기 보정을 수행한 뒤 시작되며, 이후 초당 30회 18개 값으로 구성된 CSV 행을 출력합니다. 정지 구간에는 속도를 0으로 초기화하고 드리프트를 억제합니다. 정지가 확인되면 직전 움직임 중 누적된 속도 오차를 위치에서 제거합니다. 알고리즘은 Arduino에 의존하지 않는 C++로 작성되어 합성 데이터를 사용해 PC에서 테스트할 수 있으며, 기기에서 녹화한 데이터도 동일한 코드로 재생할 수 있습니다.
저장소에는 시리얼을 통한 6방향 가속도계 바이어스 보정, 기기 원시 데이터를 녹화하는 도구, 시리얼 출력을 표준 ROS 메시지로 변환하는 ROS 2 노드도 포함되어 있습니다.
핵심 기능
- 01IMU 데이터를 1920 Hz로 읽고 링 버퍼를 통해 Spresense의 두 코어 사이에서 전달합니다.
- 02Fusion AHRS 라이브러리로 자세를 추정하고 가속도에서 중력을 제거합니다.
- 03분산과 평균을 기반으로 한 ZUPT로 정지 구간을 감지하고 정지 중 속도를 0으로 초기화합니다.
- 04정지 중 가속도계 바이어스를 학습하고 자이로의 지구 자전을 보정합니다.
- 05정지가 확인되면 누적된 위치 오차를 소급해 보정합니다.
- 06SPI 플래시에 저장하는 6방향 가속도계 보정 기능을 제공합니다.
활용 사례
- Spresense 보드에서 저비용 관성 항법을 실험합니다.
- Arduino에 의존하지 않는 C++로 ZUPT와 센서 퓨전 구현을 살펴봅니다.
- Spresense IMU의 시리얼 출력을 ROS 2에 연결해 RViz에서 시각화합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- cxd5602pwbimu_localizer_arduino은(는) 무엇인가요?
- ZUPT를 적용한 관성 항법으로 위치와 자세를 추정하는 Sony Spresense 보드용 Arduino IDE 프로젝트입니다. 이 프로젝트는 CXD5602PWBIMU 애드온 IMU를 장착한 Sony Spresense 메인 보드에서 관성 위치 추정을 수행합니다. 가속도와 각속도를 1920 Hz로 읽고, 지구 기준 NWU 좌표계에서 자세, 속도, 위치를 추정합니다. 작업은 Spresense의 두 코어에 나뉘어 있습니다. MainCore는 IMU 데이터를 수집해 시리얼로 출력하고, SubCore1은 Fusion AHRS 라이브러리, 영속도 업데이트(ZUPT), 바이어스 학습, 사다리꼴 적분을 실행합니다.
- cxd5602pwbimu_localizer_arduino은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- cxd5602pwbimu_localizer_arduino은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- cxd5602pwbimu_localizer_arduino은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. cxd5602pwbimu_localizer_arduino의 마지막 커밋은 2026년 11월 6일입니다.
- cxd5602pwbimu_localizer_arduino은(는) 어디에 사용할 수 있나요?
- Spresense 보드에서 저비용 관성 항법을 실험합니다. Arduino에 의존하지 않는 C++로 ZUPT와 센서 퓨전 구현을 살펴봅니다. Spresense IMU의 시리얼 출력을 ROS 2에 연결해 RViz에서 시각화합니다.
- cxd5602pwbimu_localizer_arduino은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/hijimasa/cxd5602pwbimu_localizer_arduino
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Arduino와 Raspberry Pi에서 사족 보행 로봇 강아지와 고양이를 프로그래밍하기 위한 오픈소스 프레임워크로, 보행 제어와 서보 및 IMU 통합을 지원합니다.
ESP32 기반의 오픈소스 3D 프린팅 미니 사족보행 로봇으로, OLED 얼굴과 서보 모터 구동 보행 기능을 갖췄습니다.
ESP8266 및 ESP32 보드용 대체 펌웨어로, 웹 기반 설정, OTA 업데이트, 로컬 자동화와 MQTT, HTTP, Serial 또는 KNX 제어를 지원합니다.
LLVM 기반 Go 컴파일러로, 마이크로컨트롤러, WebAssembly(WASM/WASI), 명령줄 도구를 대상으로 합니다.
임베디드 개발을 위한 크로스 플랫폼 CLI 도구이자 빌드 시스템으로, 라이브러리 관리, 다양한 보드와 프레임워크, 디버깅 및 단위 테스트를 지원합니다.