android加速度傳感器去除重力影響
-
這是android developer網(wǎng)站提供的方法 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... 這是android developer網(wǎng)站提供的方法 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]; } 請(qǐng)高手解釋下,還有這個(gè)gravity初始值是多少,不能理解啊,不應(yīng)該根據(jù)角度關(guān)系將重力分解到各個(gè)軸,再計(jì)算嗎? 展開(kāi)
全部評(píng)論(6條)
-
- 龔高楓 2014-02-11 00:00:00
- gravity 應(yīng)該是用重力傳感器獲得的數(shù)值。
-
贊(4)
回復(fù)(0)
-
- greatsuimr0386 2014-07-04 00:00:00
- 當(dāng)傳感器靜止時(shí)可以得到初始的Gravity值,通過(guò)計(jì)算歐拉角得到重力在傳感器坐標(biāo)系各個(gè)坐標(biāo)軸上的分解值;
-
贊(13)
回復(fù)(0)
-
- 242734296g 2013-08-23 00:00:00
- 這是android developer網(wǎng)站提供的方法 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]; }
-
贊(10)
回復(fù)(0)
-
- 48pW9 2014-09-06 00:00:00
- gravity初值可以是0,其實(shí)無(wú)所謂,不用太離譜,一個(gè)常數(shù)都行,通過(guò)多次迭代都會(huì)穩(wěn)定到實(shí)際的重力值附近。這個(gè)循環(huán)的迭代,實(shí)際上是一個(gè)一階低通濾波,0.8應(yīng)該是官方推薦的參數(shù),但應(yīng)該根據(jù)實(shí)際的需求可以適當(dāng)調(diào)整,或者自己設(shè)計(jì)低通濾波。這里的低通濾波是這樣的,因?yàn)橹亓σ恢狈€(wěn)定不變,頻率很低,而其他方向的加速度不斷變化,頻率較高,所以用低通濾波可以將重力消減,但也不是的去掉。
-
贊(19)
回復(fù)(0)
-
- 流量通速遞員 2013-08-24 00:00:00
- 初值就是1g,就是重力影響的值。一個(gè)重力加速度值。如果你的手機(jī)需要在隨意狀態(tài)都去除的就需要做加速度值各方向的分量減除的,如果只是平行或者垂直放置就不需要了。只是要求分量會(huì)比較復(fù)雜一些。。希望對(duì)你有用。
-
贊(20)
回復(fù)(0)
-
- 后來(lái)Live77 2016-07-27 05:00:48
- 如果手機(jī)需要在隨意狀態(tài)都去除的就需要做加速度值各方向的分量減除的,如果只是平行或者垂直放置就不需要了。只是要求分量會(huì)比較復(fù)雜一些。 加速度傳感器是一種能夠測(cè)量加速力的電子設(shè)備。加速力就是當(dāng)物體在加速過(guò)程中作用在物體上的力,就好比地球引力,也就是重力。加速力可以是個(gè)常量,比如g,也可以是變量。加速度計(jì)有兩種:一種是角加速度計(jì),是由陀螺儀(角速度傳感器)的改進(jìn)的。另一種就是線加速度計(jì)。
-
贊(4)
回復(fù)(0)
登錄或新用戶(hù)注冊(cè)
- 微信登錄
- 密碼登錄
- 短信登錄
請(qǐng)用手機(jī)微信掃描下方二維碼
快速登錄或注冊(cè)新賬號(hào)
微信掃碼,手機(jī)電腦聯(lián)動(dòng)
熱門(mén)問(wèn)答
- android加速度傳感器去除重力影響
- 這是android developer網(wǎng)站提供的方法 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... 這是android developer網(wǎng)站提供的方法 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]; } 請(qǐng)高手解釋下,還有這個(gè)gravity初始值是多少,不能理解啊,不應(yīng)該根據(jù)角度關(guān)系將重力分解到各個(gè)軸,再計(jì)算嗎? 展開(kāi)
- android加速度傳感器怎么去除重力的影響
- [Android開(kāi)發(fā)] SensorEvent,加速度傳感器如何消除重力影響
- 下圖截自:http://developer.android.com/reference/android/hardware/SensorEvent.html 滑條下拉3分之一處 我想要做到: 取出加速度傳感器的3軸的值,并且對(duì)這3個(gè)值消除重力加速度的影響,Z終求出線性加速度。 問(wèn)題1: 此監(jiān)聽(tīng)函數(shù)里面的gravity[] 這個(gè)數(shù)組... 下圖截自:http://developer.android.com/reference/android/hardware/SensorEvent.html 滑條下拉3分之一處 我想要做到: 取出加速度傳感器的3軸的值,并且對(duì)這3個(gè)值消除重力加速度的影響,Z終求出線性加速度。 問(wèn)題1: 此監(jiān)聽(tīng)函數(shù)里面的gravity[] 這個(gè)數(shù)組是什么? 從哪里可以獲??? 難道在本Class里面再創(chuàng)建一個(gè)SensorManager對(duì)象 sensor2,sensorType 為 Gravity? 并注冊(cè)sensor2.registerListener 監(jiān)聽(tīng)? 問(wèn)題2: 接著問(wèn)題1,這樣我就注冊(cè)了兩個(gè)監(jiān)聽(tīng),一個(gè)Accelerator加速度傳感器監(jiān)聽(tīng)和Gravity重力監(jiān)聽(tīng)。 那么onSensorChanged()這個(gè)監(jiān)聽(tīng)函數(shù)中的 event.values[] 究竟是accelerator 的,還是gravity的? 展開(kāi)
- 加速度傳感器去除重力的比力公式是?
- android加速度傳感器怎么使用
- android加速度傳感器怎么使用
- android加速度傳感器怎么使用
- 加速度傳感器和重力傳感器的區(qū)別
- 加速度傳感器和重力感應(yīng)器一樣嗎?
- android 分解加速度傳感器數(shù)值,過(guò)濾掉重力加速度
- 已知android 加速度傳感器和方向傳感器的,想將加速度傳感器參數(shù)分解,過(guò)濾掉重力加速度,求實(shí)際的加速度是多少,有點(diǎn)難,求大神,加分
- android獲取加速度傳感器的程序問(wèn)題
- 我現(xiàn)在想獲取手機(jī)中的加速度傳感器的變化值,并將它存入txt文檔中,程序應(yīng)該不難,但是我寫(xiě)出來(lái)發(fā)現(xiàn)文件穿件不出來(lái),不知道哪里出問(wèn)題了求高手指點(diǎn)代碼如下:packagecom.example.gets... 我現(xiàn)在想獲取手機(jī)中的加速度傳感器的變化值,并將它存入txt文檔中,程序應(yīng)該不難,但是我寫(xiě)出來(lái)發(fā)現(xiàn)文件穿件不出來(lái),不知道哪里出問(wèn)題了 求高手指點(diǎn) 代碼如下 : package com.example.getsensorvalue; import java.io.*; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { private SensorManager Sm; private String a=""; private String b=""; private TextView TV1; private Button Button1; private Button Button2; private File fos=null; private Writer out=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TV1=(TextView)findViewById(R.id.TV1); Button1=(Button)findViewById(R.id.Button1); Button1.setText(R.string.Button1); Button2=(Button)findViewById(R.id.Button2); Button2.setText(R.string.Button2); Sm=(SensorManager)getSystemService(SENSOR_SERVICE); Sensor Accelerate=Sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); Sm.registerListener(new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { // TODO Auto-generated method stub b=b+event.values[0]+" "+event.values[1]+" "+event.values[2]+"\n"; a=event.values[0]+" "+event.values[1]+" "+event.values[2]+"\n"; TV1.setText(a); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } }, Accelerate,SensorManager.SENSOR_DELAY_NORMAL); Button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub b=""; } }); Button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub try{ fos=new File(Environment.getExternalStorageDirectory().getPath() +"accelerate.txt"); fos.delete(); fos.createNewFile(); out=new FileWriter(fos); out.write(b); out.close(); } catch(Exception e){ System.out.println(e); } } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. menu.add(0,1,1,R.string.exit); getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onContextItemSelected(MenuItem item) { // TODO Auto-generated method stub if(item.getItemId()==1){ finish(); } return super.onContextItemSelected(item); } } 展開(kāi)
- android加速度傳感器類(lèi)型TYPE_LINEAR_ACCELERATION、 TYPE_ACCELEROMETER有什么區(qū)別?
- 請(qǐng)問(wèn)加速度傳感器和重力傳感器有什么區(qū)別呢?
- android模擬器,是否能模擬出加速度傳感器的變化
- RTeclips上面的AVD是否能模擬加速度變化
- 陀螺儀,加速度傳感器,加速度計(jì),重力傳感器的區(qū)別和聯(lián)系
- Android中的加速度傳感器能用來(lái)測(cè)速度嗎
- 有對(duì)加速度積分的應(yīng)用嗎,或者還可以讀出位移
- 小米手機(jī)用的是什么型號(hào)的加速度傳感器(重力傳感器)
- android多個(gè)計(jì)時(shí)器會(huì)影響性能嗎
- 如何使用加速度傳感器在Android智能手機(jī)找到位移距離是多少
- 如何使用加速度傳感器在Android智能手機(jī)找到位移距離是多少
4月突出貢獻(xiàn)榜
推薦主頁(yè)
最新話題





參與評(píng)論
登錄后參與評(píng)論