SensorEvent.Values 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
배열의 #values values
길이와 내용은 모니터링되는 형식에 android.hardware.Sensor sensor
따라 달라집니다(사용된 좌표계 정의도 SensorEvent
참조).
[Android.Runtime.Register("values")]
public System.Collections.Generic.IList<float>? Values { get; set; }
[<Android.Runtime.Register("values")>]
member this.Values : System.Collections.Generic.IList<single> with get, set
속성 값
- 특성
설명
배열의 #values values
길이와 내용은 모니터링되는 형식에 android.hardware.Sensor sensor
따라 달라집니다(사용된 좌표계 정의도 SensorEvent
참조).
<h4>android.hardware.Sensor#TYPE_ACCELEROMETER Sensor.TYPE_ACCELEROMETER
:</h4> 모든 값은 SI 단위(m/s^2)입니다.
<ul>li 값[0]: x-축 </li li><> 값[1]의 가속에서 Gx를 뺀 가속 -y축 </li li>>< 값[2]: 가속에서 Gz를 뺀 z축 </li></ul><>
이 유형의 센서는 디바이스에 적용되는 가속도(<b>Ad</b>)를 측정합니다. 개념적으로, 관계형을 사용하여 센서 자체(<b>Fs/b>)에 적용되는 힘을 측정하여 이 작업을 수행합니다<.
<b><center>Ad = - ∑ Fs / mass</center></b>
특히 중력의 힘은 항상 측정된 가속에 영향을 미칩니다.
<b><center>Ad = -g - ∑ F/ mass</center></b>
이러한 이유로 디바이스가 테이블에 앉아 있을 때(그리고 분명히 가속하지 않음) 가속도계는 b>g</b> = 9.81m/s^2의 <크기를 읽습니다.
마찬가지로 장치가 자유 낙하 상태이므로 9.81m/s^2에서 지상으로 위험하게 가속할 때 가속도계는 0m/s^2의 크기를 읽습니다.
디바이스의 실제 가속도를 측정하려면 중력의 힘을 제거해야 합니다. 이 작업은 하이패스 필터를 적용하여 수행할 수 있습니다. 반대로, 로우 패스 필터를 사용하여 중력의 힘을 격리할 수 있습니다.
public void onSensorChanged(SensorEvent event)
{
// alpha is calculated as t / (t + dT)
// with t, the low-pass filter's time-constant
// and dT, the event delivery rate
final float alpha = 0.8;
gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];
linear_acceleration[0] = event.values[0] - gravity[0];
linear_acceleration[1] = event.values[1] - gravity[1];
linear_acceleration[2] = event.values[2] - gravity[2];
}
<u>Examples</u>: <ul><li>디바이스가 테이블에 평평하게 놓여 있고 왼쪽에서 오른쪽으로 밀면 x 가속 값이 양수입니다.</리>
<li>디바이스가 테이블에 평평하게 놓이면 가속 값은 +9.81이며, 이는 디바이스의 가속(0m/s^2)에서 중력의 힘을 뺀 값(-9.81 m/s^2)에 해당합니다.</리>
<li>장치가 테이블에 평평하게 놓여 있고 A m/s^2의 가속으로 하늘쪽으로 밀면 가속 값은 중력의 힘을 뺀 디바이스의 가속(+A m/s^2)에 해당하는 A+9.81과 같습니다(-9.81 m/s^2).</li></ul>
<h4>android.hardware.Sensor#TYPE_MAGNETIC_FIELD Sensor.TYPE_MAGNETIC_FIELD
:</h4> 모든 값은 uT(micro-Tesla)에 있으며 X, Y 및 Z 축에서 주변 자기장을 측정합니다.
<h4>android.hardware.Sensor#TYPE_GYROSCOPE Sensor.TYPE_GYROSCOPE
: </h4> 모든 값은 라디안/초 단위이며 디바이스의 로컬 X, Y 및 Z 축을 중심으로 회전 속도를 측정합니다. 좌표계는 가속 센서에 사용되는 것과 동일합니다. 회전은 시계 반대 방향으로 양수입니다. 즉, 원본에 배치된 디바이스에서 x, y 또는 z 축의 양수 위치에서 바라보는 관찰자는 디바이스가 시계 반대 방향으로 회전하는 것처럼 보이면 양수 회전을 보고합니다. 이것은 양의 회전에 대한 표준 수학 정의이며 이전에 제공된 롤의 정의에 동의하지 않습니다. <ul>li 값[0]: x축 </li li<>> 값 주위의 Angular 속도[1]: y축 </li li>>< 값 주위의 Angular 속도[2]: z축 </li></ul 주위의 Angular 속도><>
일반적으로 자이로스코프의 출력은 시간에 따른 각도 변경을 설명하는 회전을 계산하기 위해 시간이 지남에 따라 통합됩니다. 예를 들면 다음과 같습니다.
private static final float NS2S = 1.0f / 1000000000.0f;
private final float[] deltaRotationVector = new float[4]();
private float timestamp;
public void onSensorChanged(SensorEvent event) {
// This time step's delta rotation to be multiplied by the current rotation
// after computing it from the gyro sample data.
if (timestamp != 0) {
final float dT = (event.timestamp - timestamp) * NS2S;
// Axis of the rotation sample, not normalized yet.
float axisX = event.values[0];
float axisY = event.values[1];
float axisZ = event.values[2];
// Calculate the angular speed of the sample
float omegaMagnitude = sqrt(axisX*axisX + axisY*axisY + axisZ*axisZ);
// Normalize the rotation vector if it's big enough to get the axis
if (omegaMagnitude > EPSILON) {
axisX /= omegaMagnitude;
axisY /= omegaMagnitude;
axisZ /= omegaMagnitude;
}
// Integrate around this axis with the angular speed by the time step
// in order to get a delta rotation from this sample over the time step
// We will convert this axis-angle representation of the delta rotation
// into a quaternion before turning it into the rotation matrix.
float thetaOverTwo = omegaMagnitude * dT / 2.0f;
float sinThetaOverTwo = sin(thetaOverTwo);
float cosThetaOverTwo = cos(thetaOverTwo);
deltaRotationVector[0] = sinThetaOverTwo * axisX;
deltaRotationVector[1] = sinThetaOverTwo * axisY;
deltaRotationVector[2] = sinThetaOverTwo * axisZ;
deltaRotationVector[3] = cosThetaOverTwo;
}
timestamp = event.timestamp;
float[] deltaRotationMatrix = new float[9];
SensorManager.getRotationMatrixFromVector(deltaRotationMatrix, deltaRotationVector);
// User code should concatenate the delta rotation we computed with the current
// rotation in order to get the updated rotation.
// rotationCurrent = rotationCurrent * deltaRotationMatrix;
}
실제로 자이로스코프 노이즈 및 오프셋은 보정해야 하는 몇 가지 오류를 발생합니다. 이 작업은 일반적으로 다른 센서의 정보를 사용하여 수행되지만 이 문서의 범위를 벗어집니다.
<h4>android.hardware.Sensor#TYPE_LIGHT Sensor.TYPE_LIGHT
:</h4><ul<>li>values[0]: SI lux units </li></ul의 주변 광원 수준>
<h4>android.hardware.Sensor#TYPE_PRESSURE Sensor.TYPE_PRESSURE
:</h4><ul<>li>값[0]: hPa(밀리바) </li></ul의 대기 압력>
<h4>android.hardware.Sensor#TYPE_PROXIMITY Sensor.TYPE_PROXIMITY
: </h4>
<ul><li>값[0]: 센티미터 </li></ul로 측정된 근접 센서 거리>
<b>참고:</b> 일부 근접 센서는 이진 근거리 또는 원거리 측정만 지원합니다. 이 경우 센서는 먼 상태에서 해당 android.hardware.Sensor#getMaximumRange() maximum range
값을 보고하고 가까운 상태에서는 더 작은 값을 보고해야 합니다.
<h4>android.hardware.Sensor#TYPE_GRAVITY Sensor.TYPE_GRAVITY
:</h4>
중력의 방향과 크기를 나타내는 3차원 벡터입니다. 단위는 m/s^2입니다. 좌표계는 가속 센서에서 사용하는 것과 동일합니다.
<b>참고:</b> 장치가 미사용 상태이면 중력 센서의 출력은 가속도계의 출력과 동일해야 합니다.
<h4>android.hardware.Sensor#TYPE_LINEAR_ACCELERATION Sensor.TYPE_LINEAR_ACCELERATION
: </h4> 중력을 포함하지 않고 각 디바이스 축을 따라 가속을 나타내는 3차원 벡터입니다. 모든 값의 단위는 m/s^2입니다. 좌표계는 가속 센서에서 사용하는 것과 동일합니다.
가속도계, 중력 및 선형 가속 센서의 출력은 다음 관계를 준수해야 합니다.
<ul>가속 = 중력 + 선형 가속</ul>
<h4>android.hardware.Sensor#TYPE_ROTATION_VECTOR Sensor.TYPE_ROTATION_VECTOR
:</h4>
회전 벡터는 각도와 축의 조합으로 디바이스의 방향을 나타내며, 이 경우 디바이스는 축을 중심으로 각도 및 #952를 통해 회전합니다. x, y, z>.
회전 벡터의 세 요소는 <입니다. x*sin(θ/2), y*sin(θ/2), z*sin(θ/2)> - 회전 벡터의 크기가 sin(θ/2)과 같고 회전 벡터의 방향은 회전 축의 방향과 같습니다.
</p>회전 벡터의 세 요소는 b>단위</b> 쿼터니언 <의 <마지막 세 구성 요소와 같습니다. cos(θ/2), x*sin(θ/2), y*sin(θ/2), z*sin(θ/2)>.</p>
회전 벡터의 요소는 단위가 없습니다. x, y 및 z 축은 가속 센서와 동일한 방식으로 정의됩니다.
참조 좌표계는 직접 정수 기준으로 정의됩니다. 여기서는 </p>
<ul><li>X는 벡터 제품 <b>Y.Z</b>로 정의됩니다(장치의 현재 위치에서 지면에 접지되고 대략 동쪽을 가리킵니다).</li li><>Y는 장치의 현재 위치에서 땅에 접선이며 자기 북쪽을 가리킵니다.</li li><>Z는 하늘을 가리키며 땅에 수직입니다.</li></ul>
<center><img src=".. /.. /.. /images/axis_globe.png" alt="세계 좌표계 다이어그램." border="0" /></center>
<ul>li values[0]: x*sin(θ/2) </li li>>< values[1]: y*sin(θ/2) </li li><> values[2]: z*sin(&##) 952/2) </li li>>< values[3]: cos(θ/2) </li li>>< values[4]: 예상 제목 정확도(라디안) (-1을 사용할 수 없는 경우)</li></ul><>
원래 선택 사항인 values[3]는 항상 SDK 수준 18부터 제공됩니다. values[4]는 SDK 수준 18에 추가된 새 값입니다.
<h4>android.hardware.Sensor#TYPE_ORIENTATION Sensor.TYPE_ORIENTATION
:</h4> 모든 값은 각도입니다.
<ul><li> 값[0]: 지무스, z축 주위의 자기 북쪽 방향과 y축 사이의 각도(0~359). 0=북쪽, 90=동부, 180=남부, 270=서부 </p>
values[1]: z축이 b>를 y축 쪽으로</b>로 이동할 <때 양수 값을 가진 피치, x축(-180~180)을 중심으로 회전합니다.
values[2]: 장치가 시계 방향으로 이동함에 따라 y축(-90에서 90)을 중심으로 회전합니다.
</ul>
<b>참고:</b> 이 정의는 X축이 평면의 긴 면(꼬리에서 코까지)을 따라 있는 항공에서 사용되는 b>yaw, 피치 및 롤</b>와 다릅니다<.
<b>참고:</b> 이 센서 유형은 레거시상의 이유로 존재합니다. 이러한 값을 대신 사용하고 android.hardware.SensorManager#getRotationMatrix getRotationMatrix()
android.hardware.Sensor#TYPE_ROTATION_VECTOR rotation vector sensor type
함께 android.hardware.SensorManager#remapCoordinateSystem remapCoordinateSystem()
android.hardware.SensorManager#getOrientation getOrientation()
계산하세요.
<b>중요 참고:</b> 기록상의 이유로 롤 각도는 시계 방향에서 양수입니다(수학적으로 말하면 시계 반대 방향으로 양수여야 함).
<h4>android.hardware.Sensor#TYPE_RELATIVE_HUMIDITY Sensor.TYPE_RELATIVE_HUMIDITY
:</h4><ul><li> 값[0]: 상대 주변 공기 습도(백분율 </li></ul)>
상대 주변 공기 습도 및 주변 온도를 측정하면 이슬점과 절대 습도를 계산할 수 있습니다.
<u>이슬점</u>
이슬점은 수증기가 물로 응축되기 위해 일정한 기압에서 공기의 주어진 소포를 냉각해야하는 온도입니다.
<center>
ln(RH/100%) + m·t/(T<sub>n</sub>+t)
t<sub>d</sub>(t,RH) = T<sub>n</sub> · ------------------------------
m - [ln(RH/100%) + m·t/(T<sub>n</sub>+t)]
</center><dl><dt>t<sub>d</sub></dt dt><dd>dew point temperature in ° C</dd><dt>t</dt><dd>실제 온도 (° C</dd><dt>RH</dt><dd>실제 상대 습도(%</dd><dt>m</dt<>dd>17.62</dd><dt>T<sub>n</sub></dt><dd>243.12 ° C</dd></dl>
예를 들어:
h = Math.log(rh / 100.0) + (17.62 * t) / (243.12 + t);
td = 243.12 * h / (17.62 - h);
<u>절대 습도</u>
절대 습도는 건조 공기의 특정 볼륨에서 수증기의 질량이다. 단위는 g/m<sup>3</sup>입니다.
<center>
RH/100%·A·exp(m·t/(T<sub>n</sub>+t))
d<sub>v</sub>(t,RH) = 216.7 · -------------------------
273.15 + t
</center><dl><dt>d<sub>v</sub></dt><dd>absolute humidity in g/m<sup>3</sup></dd><dt>t</dt><dd>actual temperature in ° C</dd><dt>RH</dt><dd>실제 상대 습도(%</dd><dt>m</dt<>dd>17.62</dd><dt>T<sub>n</sub></dt><dd>243.12 ° C</dd><dt>A</dt><dd>6.112 hPa</dd></dl>
예를 들어:
dv = 216.7 *
(rh / 100.0 * 6.112 * Math.exp(17.62 * t / (243.12 + t)) / (273.15 + t));
<h4>android.hardware.Sensor#TYPE_AMBIENT_TEMPERATURE Sensor.TYPE_AMBIENT_TEMPERATURE
: </h4>
<ul><li> 값[0]: 앰비언트(실) 온도(섭씨)입니다.</li></ul>
<h4>android.hardware.Sensor#TYPE_MAGNETIC_FIELD_UNCALIBRATED Sensor.TYPE_MAGNETIC_FIELD_UNCALIBRATED
:</h4> 와 유사 android.hardware.Sensor#TYPE_MAGNETIC_FIELD
하지만, 하드 아이언 보정은 측정에 포함되는 대신 별도로 보고됩니다. 공장 보정 및 온도 보정은 여전히 "보정되지 않은" 측정값에 적용됩니다. 자기장이 지구의 극 때문이라는 가정은 피할 수 있습니다.
값 배열은 다음과 같습니다. ul>li values[0] = x_uncalib </li li><> values[1] = y_uncalib </li><li> values[2] = z_uncalib </li<>li> values[3] = x_bias </li><li> values[4] = y_bias </li li><> values[5] = z_bias </li<>/ul><<>
x_uncalib, y_uncalib, z_uncalib X, Y, Z 축에서 측정된 자기장입니다. 연철 및 온도 보정이 적용됩니다. 그러나 하드 아이언 보정은 적용되지 않습니다. 값은 마이크로 테슬라 (uT)에 있습니다.
x_bias, y_bias z_bias X, Y, Z 축으로 추정되는 철 바이어스를 제공합니다. 각 필드는 예상 하드 아이언 보정의 구성 요소입니다. 값은 마이크로 테슬라 (uT)에 있습니다.
경철 - 이러한 왜곡은 장치의 자화 철, 강철 또는 영구 자석으로 인해 발생합니다. 부드러운 철 - 이러한 왜곡은 지구의 자기장과의 상호 작용으로 인해 발생합니다.
<h4>android.hardware.Sensor#TYPE_GAME_ROTATION_VECTOR Sensor.TYPE_GAME_ROTATION_VECTOR
:</h4> 지자기 필드를 사용하지 않는다는 점을 제외하고 동일합니다 android.hardware.Sensor#TYPE_ROTATION_VECTOR
. 따라서 Y축은 북쪽을 가리키지 않고 다른 참조 대신 자이로스코프가 Z축을 중심으로 드리프트하는 것과 동일한 크기의 순서로 드리프트할 수 있습니다.
이상적인 경우, 휴대폰이 회전하여 동일한 실제 방향으로 돌아가면 지구의 지자기 필드를 사용하지 않고도 동일한 게임 회전 벡터를 보고합니다. 그러나 시간이 지남에 따라 방향이 다소 표류할 수 있습니다. 값에 대한 자세한 설명은 참조 android.hardware.Sensor#TYPE_ROTATION_VECTOR
하세요. 이 센서에는 예상 제목 정확도 값이 없습니다.
<h4>android.hardware.Sensor#TYPE_GYROSCOPE_UNCALIBRATED Sensor.TYPE_GYROSCOPE_UNCALIBRATED
:</h4> 모든 값은 라디안/초 단위이며 X, Y 및 Z 축을 중심으로 회전 속도를 측정합니다. 각 축의 드리프트 추정도 보고됩니다.
자이로 드리프트 보정은 수행되지 않습니다. 공장 보정 및 온도 보정은 회전 속도(각도 속도)에 계속 적용됩니다.
좌표계는 회전에 android.hardware.Sensor#TYPE_ACCELEROMETER
사용되는 것과 동일하며 시계 반대 방향(오른쪽 규칙)에서 양수입니다. 즉, 원본에 배치된 디바이스에서 x, y 또는 z 축의 양수 위치에서 바라보는 관찰자는 디바이스가 시계 반대 방향으로 회전하는 것처럼 보이면 양수 회전을 보고합니다. 범위는 17.45 rad/s 이상입니다(예: ~1000 deg/s). <ul>li 값[0] : Y축 주위의 각도 속도(w/o 드리프트 보정)(rad/s </li li>>< value[1] : Y축 주위의 각도 속도(w/o 드리프트 보정)(rad/s<) /li li><> value[2] : Z 축을 둘러싼 각도 속도(w/o 드리프트 보정)(rad/s </li li<>> value[3] : rad/s /li li>>< value[4]에서 X축 주위의 <예상 드리프트:>< rad/s </li li><> 값[5]의 Y축 주위의 예상 드리프트: Z축 주위의 예상 드리프트(rad/s </li></ul)>
<b>Pro 팁:</b> 항상 값 배열에 대한 작업을 수행하는 동안 값 배열의 길이를 사용합니다. 이전 버전에서는 항상 3으로 변경되었습니다.
<h4>android.hardware.Sensor#TYPE_POSE_6DOF Sensor.TYPE_POSE_6DOF
:</h4>
TYPE_POSE_6DOF 이벤트는 쿼터니언으로 표현되는 회전과 SI 단위로 표현된 변환으로 구성됩니다. 또한 이 이벤트에는 이전 시퀀스 번호가 매겨진 포즈 이후 디바이스의 포즈가 어떻게 변경되었는지 보여주는 델타 회전 및 변환이 포함되어 있습니다. 이 이벤트는 대포 Android 센서 축을 사용합니다.
<ul>li values[0]: x*sin(θ/2) </li li>>< values[1]: y*sin(θ/2) </li li>>< values[2]: z*sin(θ/2) </li li>>< values[3]: cos(θ/2) </li><>
<li> 값[4]: 임의의 원점에서 x축을 따라 변환합니다. </li li><> 값[5]: 임의의 원점에서 y축을 따라 변환합니다. </li li><> 값[6]: 임의 원점에서 z 축을 따라 변환합니다. </리>
<li> values[7]: Delta quaternion rotation x*sin(θ/2) </li li><> values[8]: Delta quaternion rotation y*sin(θ/2) </li><li> values[9]: Delta quaternion rotation z*sin(θ/2) </li li<>> values[10]: Delta quaternion rotation cos(θ/2) </li>
<li> 값[11]: x축을 따라 델타 변환 </li li><> 값[12]: y축을 따라 델타 변환 </li li><> 값[13]: z 축을 따라 델타 변환 </리>
<li> 값[14]: 시퀀스 번호 </li>
</ul>
<h4>android.hardware.Sensor#TYPE_STATIONARY_DETECT Sensor.TYPE_STATIONARY_DETECT
:</h4>
TYPE_STATIONARY_DETECT 이벤트는 최대 대기 시간이 5초 이상인 디바이스가 5초 이상 고정된 경우 생성됩니다. 즉, 이 이벤트를 트리거하기 위해 디바이스가 미사용 상태인 경우 5~10초 정도 걸릴 수 있습니다.
허용되는 값은 1.0뿐입니다.
<ul><li> 값[0]: 1.0 </li></ul>
<h4>android.hardware.Sensor#TYPE_MOTION_DETECT Sensor.TYPE_MOTION_DETECT
:</h4>
TYPE_MOTION_DETECT 이벤트는 최대 대기 시간이 5초 이상인 상태에서 디바이스가 5초 이상 이동된 경우 생성됩니다. 즉, 이 이벤트를 트리거하기 위해 디바이스가 미사용 상태인 경우 5~10초 정도 걸릴 수 있습니다.
허용되는 값은 1.0뿐입니다.
<ul><li> 값[0]: 1.0 </li></ul>
<h4>android.hardware.Sensor#TYPE_HEART_BEAT Sensor.TYPE_HEART_BEAT
:</h4>
이 유형의 센서는 심장 박동 피크가 감지될 때마다 이벤트를 반환합니다.
피크는 ECG 신호의 QRS 복합체에서 양수 피크에 이상적으로 해당합니다.
<ul><li> 값[0]: confidence</li></ul>
신뢰도 값 0.0은 완전한 불확실성을 나타냅니다. 피크는 다른 곳과 마찬가지로 표시된 타임스탬프에 있을 가능성이 높습니다. 신뢰도 값 1.0은 확실히 완전한 것을 나타냅니다. 피크는 QRS 복합체의 다른 어느 곳에도 없을 것입니다.
<h4>android.hardware.Sensor#TYPE_LOW_LATENCY_OFFBODY_DETECT Sensor.TYPE_LOW_LATENCY_OFFBODY_DETECT
:</h4>
이 유형의 센서는 디바이스가 오프 바디에서 온-바디로, 온-바디에서 오프 바디로 전환될 때마다 이벤트를 반환합니다(예: 손목에서 제거되는 웨어러블 디바이스는 오프 바디 전환을 나타내는 이벤트를 트리거합니다). 반환된 이벤트에는 본문 외부 상태를 나타내는 단일 값이 포함됩니다.
<ul><li> 값[0]: 오프 본문 상태</li></ul>
오프 본문 상태에 대한 유효한 값: <ul<>li> 1.0(디바이스는 온-바디)</li><li> 0.0(디바이스는 오프 바디)</li></ul>
이 유형의 센서가 활성화되면 센서를 활성화한 후 5초 이내에 현재 디바이스 상태를 나타내는 초기 온-바디 또는 오프 바디 이벤트를 전달해야 합니다.
이 센서는 본문에서 제거되는 디바이스의 1초 이내에 신체에서 오프 바디 전환을 감지하고 보고할 수 있어야 하며, 디바이스가 본문에 다시 배치된 후 5초 이내에 신체의 오프 바디 전환을 감지하고 보고할 수 있어야 합니다.
<h4>android.hardware.Sensor#TYPE_ACCELEROMETER_UNCALIBRATED Sensor.TYPE_ACCELEROMETER_UNCALIBRATED
:</h4> 모든 값은 SI 단위(m/s^2)입니다.
이와 유사하게 android.hardware.Sensor#TYPE_ACCELEROMETER
공장 보정 및 온도 보정은 여전히 "보정되지 않은" 측정값에 적용됩니다.
값 배열은 다음과 같습니다. ul>li values[0] = 바이어스 보정 <없이 x_uncalib /li li<>> 값[1] = 바이어스 보정 <없이 y_uncalib /li<>li> 값[2] = 바이어스 보정 <없이 z_uncalib /li<>li> 값[3] = 추정 x_bias </li li>>< 값[4] = 추정 y_bias </li><li> values[5] = 추정 z_bias </li<>/ul><<>
x_uncalib, y_uncalib, z_uncalib 바이어스 보정 없이 X, Y, Z축과 유사한 android.hardware.Sensor#TYPE_ACCELEROMETER
측정 가속입니다(공장 바이어스 보정 및 온도 보정 허용). x_bias, y_bias, z_bias 예상 편견입니다.
<h4>android.hardware.Sensor#TYPE_HINGE_ANGLE Sensor.TYPE_HINGE_ANGLE
:</h4>
이 유형의 센서는 디바이스의 두 정수 부분 사이의 각도를 도 단위로 측정합니다. 이 센서 유형으로 측정된 힌지의 이동은 사용자가 디바이스와 상호 작용하는 방식을 변경할 것으로 예상됩니다(예: 디스플레이를 펼치거나 표시).
<ul><li> 값[0]: 0에서 360도 사이의 측정된 힌지 각도 포함</li></ul>
<h4>android.hardware.Sensor#TYPE_HEAD_TRACKER Sensor.TYPE_HEAD_TRACKER
:</h4>
이 유형의 센서는 임의의 참조 프레임을 기준으로 사용자의 머리 방향을 측정하고 회전 속도를 측정합니다.
이 센서에 의해 생성된 이벤트는 특별한 헤드 중심 좌표 프레임을 따릅니다. <여기서 ul<>li> X 축은 사용자의 귀를 통해 교차하며, 양수 X 방향은 사용자의 오른쪽 귀<에서 확장됩니다/li li><> Y 축은 코를 통해 사용자의 머리 뒤쪽에서 교차하며, 양수 방향은 코에서 확장됩니다. 그리고 X/Y 평면은 명목상으로 지면과 평행하게 되어 사용자가 똑바로 앞<을 바라볼 때/li><li> Z 축은 목에서 사용자의 머리 위쪽까지 교차하며, 양수 방향은 헤드</리></울의 위쪽에서 확장됩니다.>
데이터는 유러 벡터 표현으로 제공되며, 방향이 회전 축을 나타내고 크기는 해당 축을 중심으로 회전할 각도를 라디안으로 나타내는 벡터입니다.
처음 세 요소는 (임의, 느리게 표류하는) 참조 프레임에서 헤드 프레임으로의 변환을 제공합니다. 이 벡터의 크기는 범위 [0, π] 라디안에 있지만 개별 축의 값은 범위 [-π, π]입니다. 다음 세 요소는 필요에 따라 사용자 헤드의 예상 회전 속도를 초당 라디안 단위로 제공합니다. 지정된 센서가 속도 확인을 지원하지 않는 경우 이러한 요소는 0으로 설정됩니다.
<ul>li values[0] : 회전</li><li> 값을 나타내는 Euler 벡터의 X 구성 요소[1] : 회전</li<>li> 값을 나타내는 Euler 벡터의 Y 구성 요소[2] : 회전</li><li> 값을 나타내는 Euler 벡터의 Z 구성 요소[3] : 각도 속도를 나타내는 Euler 벡터의 X 구성 요소(지원되는 경우 0)</li>><>< values[4] : 각 속도를 나타내는 Euler 벡터의 Y 구성 요소(지원되는 경우 0)</li li><> value[5] : 각도 속도를 나타내는 Euler 벡터의 Z 구성 요소(지원되는 경우 0)</li></ul>
<h4>android.hardware.Sensor#TYPE_ACCELEROMETER_LIMITED_AXES Sensor.TYPE_ACCELEROMETER_LIMITED_AXES
: </h4> 는 TYPE_ACCELEROMETER 해당하지만 하나 또는 두 개의 축이 지원되지 않는 경우를 지원합니다.
마지막 세 값은 지정된 축의 가속 값이 지원되는지 여부를 나타냅니다. 값 1.0은 축이 지원됨을 나타내고 값이 0이면 지원되지 않음을 의미합니다. 지원되는 축은 빌드 시 결정되어야 하며 이러한 값은 런타임 중에 변경되지 않습니다.
지원되지 않는 축의 가속 값은 0으로 설정됩니다.
android.hardware.Sensor#TYPE_ACCELEROMETER
와 비슷합니다.
<ul>li 값[0]: x축에서 가속에서 Gx를 뺀 값(지원되는 경우)</li li>>< 값[1]: 가속에서 y축에서 Gy를 뺀 값(지원되는 경우)</li><li> 값[2]: 가속 z축에서 Gz를 뺀 값(지원되는 경우)</li li<>> 값[3]: x-axis</li li><> 값에 대해 지원되는 가속[4]: y축</li li>>< 값에 대해 지원되는 가속[5]:>< z축</li></ul에 지원되는 가속>
<h4>android.hardware.Sensor#TYPE_GYROSCOPE_LIMITED_AXES Sensor.TYPE_GYROSCOPE_LIMITED_AXES
: </h4> 는 TYPE_GYROSCOPE 동일하지만 하나 또는 두 개의 축이 지원되지 않는 경우를 지원합니다.
마지막 세 값은 지정된 축의 각 속도 값이 지원되는지 여부를 나타냅니다. 값 1.0은 축이 지원됨을 나타내고 값이 0이면 지원되지 않음을 의미합니다. 지원되는 축은 빌드 시 결정되어야 하며 이러한 값은 런타임 중에 변경되지 않습니다.
지원되지 않는 축의 각 속도 값은 0으로 설정됩니다.
android.hardware.Sensor#TYPE_GYROSCOPE
와 비슷합니다.
<ul>li 값[0]: x축 주위의 Angular 속도(지원되는 경우)</li li>>< 값[1]: y축 주위의 각도 속도(지원되는 경우)</li li<>> 값[2]: z축 주위의 Angular 속도 (지원되는 경우)</li li><> 값[3]: x-axis</li li>>< 값에 대해 지원되는 Angular 속도[4]: y축</li li<>> 값에 대해 지원되는 Angular 속도[5]: z축</li><에 지원되는 Angular 속도/>< ul>
<h4>android.hardware.Sensor#TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED Sensor.TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED
: </h4> 는 TYPE_ACCELEROMETER_UNCALIBRATED 해당하지만 하나 또는 두 개의 축이 지원되지 않는 경우를 지원합니다.
마지막 세 값은 지정된 축의 가속 값이 지원되는지 여부를 나타냅니다. 값 1.0은 축이 지원됨을 나타내고 값이 0이면 지원되지 않음을 의미합니다. 지원되는 축은 빌드 시 결정되어야 하며 이러한 값은 런타임 중에 변경되지 않습니다.
지원되지 않는 축의 가속 값 및 바이어스 값은 0으로 설정됩니다.
<ul>li 값[0]: 바이어스 보정 없이 x_uncalib(지원되는 경우)</li li><> 값[1]: 바이어스 보정 없이 y_uncalib(지원되는 경우)</li li><> 값[2]: 바이어스 보정 없이 z_uncalib(지원되는 경우)<. /li><li> 값[3]: 예상 x_bias(지원되는 경우)</li li<>> 값[4]: 예상 y_bias(지원되는 경우)</li><li> 값[5]: 예상 z_bias(지원되는 경우)</li><><li> values[6]: x-axis</li li><> 값에 대해 지원되는 가속[7]: y축</li li<>> 값에 대해 지원되는 가속[8]: z-축</li></ul에 지원되는 가속>
<h4>android.hardware.Sensor#TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED Sensor.TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED
: </h4> 는 TYPE_GYROSCOPE_UNCALIBRATED 동일하지만 하나 또는 두 개의 축이 지원되지 않는 경우를 지원합니다.
마지막 세 값은 지정된 축의 각 속도 값이 지원되는지 여부를 나타냅니다. 값 1.0은 축이 지원됨을 나타내고 값이 0이면 지원되지 않음을 의미합니다. 지원되는 축은 빌드 시 결정되어야 하며 이러한 값은 런타임 중에 변경되지 않습니다.
지원되지 않는 축의 각도 속도 값과 드리프트 값은 0으로 설정됩니다.
<ul>li 값[0]: X 축 주위의 Angular 속도(w/o 드리프트 보정)(지원되는 경우)</li li><> 값[1]: Y축 주위의 각도 속도(드리프트 보정)(지원되는 경우)< /li><li> 값[2]: Z 축(지원되는 경우)</li li><> 값[3]: X축 주위의 예상 드리프트(지원되는 경우)</li<>li> 값[4] 주위의 Angular 속도(w/o 드리프트 보정) :>< Y축 주위의 예상 드리프트(지원되는 경우)</li li><> 값[5]: Z 축 주위의 예상 드리프트(지원되는 경우)</li<>li> 값[6]: x축</li li<>> 값에 대해 지원되는 Angular 속도[7]: y축</li li><> 값에 대해 지원되는 Angular 속도[8]: z축</li<>/ul></p에 지원되는 Angular 속도>
<h4>android.hardware.Sensor#TYPE_HEADING Sensor.TYPE_HEADING
:</h4>
이 유형의 센서는 디바이스가 실제 북쪽을 기준으로 가리키는 방향을 도 단위로 측정합니다. 값은 0.0(포함)에서 360.0(전용) 사이여야 하며 0은 북쪽, 90 동쪽, 180 남쪽 및 서쪽 270을 나타냅니다.
정확도는 68% 신뢰도로 정의됩니다. 기본 분포가 Gaussian 정상으로 간주되는 경우 이는 하나의 표준 편차로 간주됩니다. 예를 들어 제목이 60도를 반환하고 정확도가 10도를 반환하는 경우 실제 제목이 50도에서 70도 사이일 확률은 68%입니다.
<ul><li> 값[0]: 측정된 제목(도)입니다.</li li><> 값[1]: 제목 정확도(도)입니다.</li></ul>
에 대한 android.hardware.SensorEvent.values
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.