Repolode
hijimasa

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에서 시각화합니다.

포함된 컬렉션

토픽

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

자주 묻는 질문

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 통계는 매일 갱신됩니다.

관련 프로젝트