From: <yx...@us...> - 2010-04-04 09:49:28
|
Revision: 193 http://simspark.svn.sourceforge.net/simspark/?rev=193&view=rev Author: yxu Date: 2010-04-04 09:49:22 +0000 (Sun, 04 Apr 2010) Log Message: ----------- * initialize accelerometer * remove the filter in accelerometer ( team can filter it by themselves) Modified Paths: -------------- trunk/spark/plugin/accelerometer/accelerometer.cpp Modified: trunk/spark/plugin/accelerometer/accelerometer.cpp =================================================================== --- trunk/spark/plugin/accelerometer/accelerometer.cpp 2010-03-31 23:10:34 UTC (rev 192) +++ trunk/spark/plugin/accelerometer/accelerometer.cpp 2010-04-04 09:49:22 UTC (rev 193) @@ -48,6 +48,7 @@ mGravity = mBody->GetWorld()->GetGravity(); mLastVel = mBody->GetVelocity(); + mAcc.Zero(); } bool Accelerometer::Percept(boost::shared_ptr<PredicateList> predList) @@ -75,15 +76,12 @@ // float mass = mBody->GetMass(); // mAcc = F / mass - mGravity; + // calculate the acceleration according to velocity, it is a bit noise Vector3f vel = mBody->GetVelocity(); Vector3f acc = (vel - mLastVel) / deltaTime; acc -= mGravity; Matrix invRot = mBody->GetRotation(); invRot.InvertRotationMatrix(); - acc = invRot * acc; - - float k = 0.9; - mAcc = k*mAcc + (1-k)*acc; - mLastVel = vel; + mAcc = invRot * acc; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |