Android CTS Verifier Sensor Test Cases (2)

本文详细介绍了Android CTSVerifier中的加速计测量测试项,包括测试原理、预期值、阈值及常见失败类型,并探讨了加速计校准的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从本章开始将详细介绍每一个测试项。

1. Accelerometer Measurement Tests
这是所有 CTS Verifier 测试项里最容易的一个。简单点说就是依次测试设备的六个面的重力加速度。因为Android 设备外形绝大多数都是立方体,该测试项就是把设备按立方体的各个面放置一下,然后获取加速度的值于期望的值进行比较,在规定范围内(+-threshold)就算通过。

CTS Verifier 6.0_r9 Accelerometer Measurement Tests

下面来看具体的test case
测试前提条件:

STANDARD_GRAVITY(标准重力加速度)

Standard gravity (g) on Earth. This value is equivalent to 1G
Constant Value: 9.80665f 

Threshold(阈值, 即允许误差)

+-1.95f m/s^2

代码:

 private String verifyMeasurements(float ... expectations) throws Throwable {
        Thread.sleep(500 /*ms*/);
        TestSensorEnvironment environment = new TestSensorEnvironment(
                getApplicationContext(),
                Sensor.TYPE_ACCELEROMETER,
                SensorManager.SENSOR_DELAY_FASTEST);
        TestSensorOperation verifyMeasurements =
                TestSensorOperation.createOperation(environment, 100 /* event count */);
        verifyMeasurements.addVerification(new MeanVerification(
                expectations,
                new float[]{1.95f, 1.95f, 1.95f} /* m / s^2 */));
        verifyMeasurements.execute(getCurrentTestNode());
        return null;
    }
public String testFaceUp() throws Throwable {
    return verifyMeasurements(
    R.string.snsr_accel_test_face_up,
    0, 0, SensorManager.STANDARD_GRAVITY);
}

该项测试设备静止正面朝上时的x,y,z三轴加速度的值. CTS Verifier 会设置 Accelerometer Sensor 工作在 Fastested Data Rate (100Hz/200Hz, 具体频率由 SensorList Structure 上报的 minDelay 决定),然后收集100个 event,计算一下三个轴的平均值,再与 {0.00+-1.95, 0.00+-1.95, 9.80665+-1.95} 相比较。如果不在误差范围内则报错,反之则通过。

失败类型:

1)  轴错误;正面朝上静止放置时,设备的三轴加速度的值应该在{0.0, 0.0, 9.8}附近。如果出现类似{0.0, 9.8, 0.0}的值,说明要么sensor的axis remapping(sensor的三轴坐标系要跟设备的三轴坐标系一致) 做错了;要么设备摆放的方向错误;
2)mean value 错误;正面朝上静止放置时,测试结果提示某一轴的mean value > 1.95 (or < -1.95)。说明sensor offset 过大,需要进行校准。
3)没有数据;basic sensor knowledge,check your own code bro!

Accelerometer 校准一般分为两类,一类是在驱动(kernel driver)里做硬件校准或软件校准,另一类是在 HAL 里有算法来进行校准。因为Acceleremter是在静止时比较准确的sensor, 所以校准的目的之一是去掉静止时各个轴上产生的offset.  
简单一点的校准算法就是,取 Accelerometer sensor 静止时50个数据的平均值,如{0.8, 1.2, 9.5},把它跟期望值{0.0, 0.0, 9.8}的差当作offset。然后在上报数据是去掉这个offset。
稍微复杂的校准算法,不仅要考虑各轴的noise, 还要计算增益误差(Gain Error),具体实现方式需要比较大的篇幅,这里不展开讲了。

Accelerometer Measurement Tests 里其他5项测试内容与FaceUp测试一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值