← Documents Documentation/iio/bno055.rst GitHub 원문 ↗

Linux 6.18.37 · IIO

BNO055 driver

BNO055 센서 융합 출력, 자동 보정 blob과 장치별 펌웨어 파일, 모드별 offset 동작을 설명합니다.

Source pathDocumentation/iio/bno055.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

bno055.rst:1-51

BNO055는 가속도·자기장·각속도를 항상 제공하고 센서 융합 모드에서 방향·선형 속도·중력 벡터와 자동 보정을 제공합니다. 보정 blob을 장치별 또는 일반 펌웨어 파일로 저장하면 이후 probe에서 재사용할 수 있습니다.

문서 개요
항목내용
SourceDocumentation/iio/bno055.rst
분량51 source lines
버스Serial, I²C
보정 파일장치별 이름 우선, 일반 이름 fallback

원문 분량과 핵심 대상을 요약합니다.

핵심 흐름
기본 센서 값 수집센서 융합 활성화자동 보정 완료 확인보정 blob을 firmware 파일로 저장다음 probe에서 보정 복원

설정과 데이터 접근 순서를 압축합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2
3 ==============================
4 BNO055 driver
5 ==============================
6
7 1. Overview
8 ===========
9
10 This driver supports Bosch BNO055 IMUs (on both serial and I2C busses).
11
12 Accelerometer, magnetometer and gyroscope measurements are always available.
13 When "fusion_enable" sysfs attribute is set to 1, orientation (both Euler
14 angles and quaternion), linear velocity and gravity vector are also
15 provided, but some sensor settings (e.g. low pass filtering and range)
16 become locked (the IMU firmware controls them).
17
18 This driver supports also IIO buffers.
19
20 2. Calibration
21 ==============
22
23 The IMU continuously performs an autocalibration procedure if (and only if)
24 operating in fusion mode. The magnetometer autocalibration can however be
25 disabled by writing 0 in the sysfs in_magn_calibration_fast_enable attribute.
26
27 The driver provides access to autocalibration flags (i.e. you can determine
28 if the IMU has successfully autocalibrated) and to the calibration data blob.
29
30 The user can save this blob in a firmware file (i.e. in /lib/firmware) that
31 the driver looks for at probe time. If found, then the IMU is initialized
32 with this calibration data. This saves the user from performing the
33 calibration procedure every time (which consists of moving the IMU in
34 various ways).
35
36 The driver looks for calibration data file using two different names: first
37 a file whose name is suffixed with the IMU unique ID (exposed in sysfs as
38 serial_number) is searched for; this is useful when there is more than one
39 IMU instance. If this file is not found, then a "generic" calibration file
40 is searched for (which can be used when only one IMU is present, without
41 struggling with fancy names, that change on each device).
42
43 Valid calibration file names would be e.g.
44 bno055-caldata-0e7c26a33541515120204a35342b04ff.dat
45 bno055-caldata.dat
46
47 In non-fusion mode the IIO 'offset' attributes provide access to the
48 offsets from calibration data (if any), so that the user can apply them to
49 the accel, angvel and magn IIO attributes. In fusion mode they are not
50 needed (the IMU firmware internally applies those corrections) and they
51 read as zero.
52

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

BNO055 측정값과 센서 융합 모드

1-19

이 문서는 GPL-2.0 라이선스가 적용되는 BNO055 드라이버 설명서입니다. 드라이버는 직렬 버스와 I²C 버스에 연결된 Bosch BNO055 IMU를 지원합니다.

가속도계·자력계·자이로스코프 측정값은 항상 사용할 수 있습니다.

sysfs 속성 `fusion_enable`을 1로 설정하면 Euler 각과 quaternion 두 형식의 방향, 선형 속도, 중력 벡터도 제공됩니다. 다만 이때 저역 통과 필터링이나 측정 범위 같은 일부 센서 설정은 잠기며 IMU 펌웨어가 이를 제어합니다.

BNO055 모드별 데이터와 제어권
항목비융합 모드`fusion_enable = 1`
가속도·자기장·각속도항상 제공항상 제공
방향제공하지 않음Euler angles, quaternion
추가 벡터제공하지 않음선형 속도, 중력 벡터
필터·범위 설정사용자 설정잠김, IMU firmware 제어

기본 측정 모드와 센서 융합 모드에서 달라지는 출력과 설정을 비교합니다.

이 드라이버는 IIO 버퍼도 지원합니다.

센서 융합 활성화
기본 가속도·자기장·각속도 측정`fusion_enable`에 1 쓰기IMU firmware가 필터와 범위 제어Euler·quaternion 방향 계산선형 속도와 중력 벡터 제공

sysfs 설정이 추가 출력과 펌웨어 제어를 여는 흐름입니다.

.. SPDX-License-Identifier: GPL-2.0

==============================
BNO055 driver
==============================

1. Overview
===========

This driver supports Bosch BNO055 IMUs (on both serial and I2C busses).

Accelerometer, magnetometer and gyroscope measurements are always available.
When "fusion_enable" sysfs attribute is set to 1, orientation (both Euler
angles and quaternion), linear velocity and gravity vector are also
provided, but some sensor settings (e.g. low pass filtering and range)
become locked (the IMU firmware controls them).

This driver supports also IIO buffers.

자동 보정과 보정 데이터 저장

20-42

IMU는 센서 융합 모드로 동작할 때에만 자동 보정 절차를 계속 수행합니다. 다만 sysfs 속성 `in_magn_calibration_fast_enable`에 0을 쓰면 자력계 자동 보정을 비활성화할 수 있습니다.

드라이버는 자동 보정 상태 플래그를 노출하므로 IMU가 성공적으로 자동 보정되었는지 확인할 수 있고, 보정 데이터 blob에도 접근할 수 있습니다.

사용자는 이 blob을 `/lib/firmware` 같은 펌웨어 경로의 파일로 저장할 수 있습니다. 드라이버는 probe 시점에 이 파일을 찾고, 발견하면 해당 보정 데이터로 IMU를 초기화합니다.

이 방법을 사용하면 IMU를 여러 방향으로 움직이는 보정 절차를 매번 다시 수행할 필요가 없습니다.

보정 데이터 재사용
센서 융합 모드에서 자동 보정 수행보정 완료 플래그 확인보정 데이터 blob 읽기`/lib/firmware`에 파일로 저장다음 probe에서 파일을 찾아 IMU 초기화

실행 중 자동 보정 결과가 다음 probe에서 복원되는 과정입니다.

드라이버는 두 가지 이름으로 보정 데이터 파일을 찾습니다. 먼저 sysfs의 `serial_number`로 노출되는 IMU 고유 ID가 접미사로 붙은 파일을 검색합니다. 여러 IMU 인스턴스가 있을 때 각 장치에 맞는 데이터를 고르는 데 유용합니다.

고유 ID 파일을 찾지 못하면 일반 이름의 보정 파일을 검색합니다. IMU가 하나뿐인 경우 장치마다 달라지는 복잡한 이름을 다루지 않고 사용할 수 있습니다.

BNO055 보정 파일 검색 우선순위
순서파일 이름 형식용도
1`bno055-caldata-<serial_number>.dat`여러 IMU의 장치별 보정
2`bno055-caldata.dat`단일 IMU의 공통 보정

probe 시도 순서와 각 이름의 사용 목적입니다.

2. Calibration
==============

The IMU continuously performs an autocalibration procedure if (and only if)
operating in fusion mode. The magnetometer autocalibration can however be
disabled by writing 0 in the sysfs in_magn_calibration_fast_enable attribute.

The driver provides access to autocalibration flags (i.e. you can determine
if the IMU has successfully autocalibrated) and to the calibration data blob.

The user can save this blob in a firmware file (i.e. in /lib/firmware) that
the driver looks for at probe time. If found, then the IMU is initialized
with this calibration data. This saves the user from performing the
calibration procedure every time (which consists of moving the IMU in
various ways).

The driver looks for calibration data file using two different names: first
a file whose name is suffixed with the IMU unique ID (exposed in sysfs as
serial_number) is searched for; this is useful when there is more than one
IMU instance. If this file is not found, then a "generic" calibration file
is searched for (which can be used when only one IMU is present, without
struggling with fancy names, that change on each device).

유효한 파일 이름과 비융합 오프셋

43-51

유효한 보정 파일 이름의 예는 다음과 같습니다.

bno055-caldata-0e7c26a33541515120204a35342b04ff.dat
bno055-caldata.dat

비융합 모드에서는 IIO `offset` 속성으로 보정 데이터의 오프셋이 있다면 접근할 수 있습니다. 사용자는 이를 가속도(`accel`), 각속도(`angvel`), 자기장(`magn`) IIO 속성에 적용할 수 있습니다.

센서 융합 모드에서는 IMU 펌웨어가 내부적으로 보정값을 적용하므로 이 오프셋이 필요하지 않으며, `offset` 속성을 읽으면 0이 반환됩니다.

모드별 보정 오프셋
모드적용 주체IIO `offset`
비융합사용자 공간보정 데이터 오프셋 노출
센서 융합IMU firmware0 반환

보정값 적용 주체와 IIO offset 읽기 결과를 비교합니다.

Valid calibration file names would be e.g.
 bno055-caldata-0e7c26a33541515120204a35342b04ff.dat
 bno055-caldata.dat

In non-fusion mode the IIO 'offset' attributes provide access to the
offsets from calibration data (if any), so that the user can apply them to
the accel, angvel and magn IIO attributes. In fusion mode they are not
needed (the IMU firmware internally applies those corrections) and they
read as zero.