반응형

BNO085는 Bosch Sensortec의 9축 물리 센서 하드웨어와 CEVA(구 Hillcrest Labs)의 센서 퓨전 펌웨어(SH-2)가 결합된 고성능 9축 System-in-Package (SiP) IMU(관성측정장치) 센서입니다.
기존 IMU 센서와 달리, 내부의 32-bit ARM Cortex-M0+ 코어가 센서 데이터를 직접 처리하므로 라즈베리 파이나 마이크로컨트롤러(MCU)의 연산 부담을 최소화합니다.
1. BNO085의 핵심 구성 (9-DOF)
BNO085 내부에는 총 3가지 센서가 하나의 칩에 집적되어 있습니다.
- 3축 가속도계 (Accelerometer): 중력 및 직선 가속도 측정
- 3축 자이로스코프 (Gyroscope): 회전 속도(각속도) 측정
- 3축 지자기 센서 (Magnetometer): 지구 자기장을 이용한 방위각(절대 북쪽) 측정
- 32-bit ARM Cortex-M0+ MCU: 내부 센서 퓨전 프로세서 (SH-2 펌웨어 내장)
2. 주요 특징 및 강점
1) 온칩 센서 퓨전 (On-Chip Sensor Fusion)
원시 가속도/자이로/지자기 값을 복잡한 캘러먼 필터(Kalman Filter) 등으로 처리하지 않아도, 칩 내부에서 계산된 사원수(Quaternion), 오일러 각도(Roll/Pitch/Yaw), 선형 가속도, 중력 벡터 등을 즉시 읽어올 수 있습니다.
2) 세분화된 림/회전 벡터 (Rotation Vectors)
사용 목적에 맞춰 다양한 회전 벡터 모드를 제공합니다.
- Rotation Vector (9축 퓨전): 지자기 센서를 포함하여 절대 북쪽(Absolute North)을 기준으로 한 3D 자세 출력.
- Game Rotation Vector (6축 퓨전): 지자기 센서를 제외(가속도+자이로)하여 모터나 주변 철제 구조물로 인한 자기장 왜곡(Magnetic Distortion)의 영향을 받지 않는 고속 자세 측정 모드.
- AR/VR Stabilized Rotation Vector: 미세한 손떨림을 보정하고 초저지연 트래킹을 제공하는 모드.
- Geomagnetic Rotation Vector: 자이로스코프를 사용하지 않고 저전력으로 지자기+가속도만 조합하는 모드.
3) 부가 기능
- 활동 분류 (Activity Classification): 정지 상태, 걷기, 뛰기, 차량 탑승, 계단 오르기 등의 상태를 센서 자체 판단.
- 걸음 수 측정 (Pedometer): 실시간 스텝 카운터 내장.
- Tare (영점 조정): 센서의 현재 위치를 기준으로 좌표계를 즉시 0, 0, 0으로 재설정 가능.
3. BNO055 vs BNO085 비교
BNO085는 기존의 인기 IMU인 BNO055의 단점을 크게 개선한 후속작입니다.
| 구분 | BNO055 | BNO085 |
| 센서 퓨전 엔진 | Bosch 내장 소프트웨어 | CEVA (Hillcrest Labs) SH-2 |
| 응답 속도 / 지연 시간 | 비교적 느림 (Robotics에 제한적) | 초저지연 (AR/VR/드론/로봇 최적화) |
| 자기장 보정 기능 | 주변 자석/모터 영향에 약함 | 우수한 자기장 왜곡 억제 알고리즘 |
| 특수 모드 | 기본 오일러/사원수 출력 | RVC(로봇청소기 UART), VR 스태빌라이저, 활동 인지 등 |
| 통신 프로토콜 | I2C, UART | I2C, SPI, UART, UART-RVC |
4. BNO085 통신 인터페이스
- I2C: 기본 주소 0x4A, 보조 주소 0x4B (최대 400kHz)
- SPI: 고속 데이터 전송 시 사용 (최대 3MHz)
- UART: 표준 직렬 통신
- UART-RVC (Robotic Vacuum Cleaner Mode): 센서가 100Hz 주기로 Yaw, Pitch, Roll 및 가속도 데이터를 단순 텍스트로 보드 보레이트 115200으로 계속 쏘아주는 특수 모드로, 로봇청소기나 단순 이동 로봇 제작 시 매우 편리합니다.
5. 주요 활용 분야
- 자율주행 로봇 / ROS (Robot Operating System) 네비게이션: Odometry 오차 보정 및 Heading 추정
- 드론 / 항공 모형: 실시간 3축 자세 제어
- AR/VR 모션 트래킹: 헤드셋 및 HMD, 컨트롤러 추적
- 카메라 짐벌(Gimbal): 미세 진동 및 기울기 보정
sunshout@raspberrypi:~ $ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- 4b -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: 70 -- -- -- -- -- -- --728x90
반응형