Để nhận vị trí từ gia tốc, bạn cần tích hợp nó hai lần.
Tích hợp tăng tốc cho phép bạn vận tốc và tích hợp vận tốc cho bạn vị trí.
Hãy nhớ rằng tích hợp tiếng ồn tạo ra trôi dạt và tích hợp trôi tạo ra rất nhiều trôi dạt, các cảm biến android có xu hướng tạo ra khá nhiều tiếng ồn.
Trên Galaxy S3 của tôi, tôi đã có thể nhận được độ lệch ở vị trí xuống 0,02 m trong 5 giây bằng cảm biến tổng hợp Linear Accelerometer của Google.
Tôi không chắc liệu bạn có thể sử dụng cảm biến gia tốc tuyến tính trên bánh gừng hay không. Nếu bạn không thể, bạn sẽ phải loại bỏ trọng lực trước khi tích hợp.
Nếu bạn chưa sẵn sàng, đọc tất cả mọi thứ ở đây http://developer.android.com/guide/topics/sensors/sensors_motion.html
A nói chuyện tuyệt vời về các cảm biến chuyển động trong android
http://www.youtube.com/watch?v=C7JQ7Rpwn2k
Code:
static final float NS2S = 1.0f/1000000000.0f;
float[] last_values = null;
float[] velocity = null;
float[] position = null;
long last_timestamp = 0;
@Override
public void onSensorChanged(SensorEvent event) {
if(last_values != null){
float dt = (event.timestamp - last_timestamp) * NS2S;
for(int index = 0; index < 3;++index){
velocity[index] += (event.values[index] + last_values[index])/2 * dt;
position[index] += velocity[index] * dt;
}
}
else{
last_values = new float[3];
velocity = new float[3];
position = new float[3];
velocity[0] = velocity[1] = velocity[2] = 0f;
position[0] = position[1] = position[2] = 0f;
}
System.arraycopy(event.values, 0, last_values, 0, 3);
last_timestamp = event.timestamp;
}
Bây giờ bạn có vị trí trong không gian 3d, hãy ghi nhớ rằng nó giả định rằng điện thoại là văn phòng phẩm khi nó sta rts lấy mẫu.
Nếu bạn không loại bỏ trọng lực, nó sẽ sớm ở rất xa.
Điều này không lọc dữ liệu chút nào và sẽ tạo ra nhiều sự trôi dạt.
Bản sao có thể có của [Sử dụng gia tốc kế, con quay hồi chuyển và la bàn để tính toán chuyển động của thiết bị trong thế giới 3D] (http://stackoverflow.com/questions/8264518/using-accelerometer-gyroscope-and-compass-to-calculate-devices- chuyển động-in-3d) superset cũng yêu cầu trạng thái quay. –