* ill-conditioning and div by zeros.
* Threshhold: 10% of g, in m/s^2
*/
-static const float NOMINAL_GRAVITY = 9.81f;
+static const float NOMINAL_GRAVITY = 9.80665f;
static const float FREE_FALL_THRESHOLD = 0.1f * (NOMINAL_GRAVITY);
/*
return false;
}
-void orientation_filter::handleGyro(const vec3_t& w, float dT) {
+void orientation_filter::handleGyro(const vec3_t w, float dT) {
if (!checkInitComplete(GYRO, w, dT))
return;
predict(w, dT);
}
-status_t orientation_filter::handleAcc(const vec3_t& a, float dT) {
+status_t orientation_filter::handleAcc(const vec3_t a, float dT) {
if (!checkInitComplete(ACC, a, dT))
return BAD_VALUE;
return NO_ERROR;
}
-status_t orientation_filter::handleMag(const vec3_t& m) {
+status_t orientation_filter::handleMag(const vec3_t m) {
if (!checkInitComplete(MAG, m))
return BAD_VALUE;
public:
orientation_filter();
void init(int mode = FUSION_9AXIS);
- void handleGyro(const vec3_t& w, float dT);
- status_t handleAcc(const vec3_t& a, float dT);
- status_t handleMag(const vec3_t& m);
+ void handleGyro(const vec3_t w, float dT);
+ status_t handleAcc(const vec3_t a, float dT);
+ status_t handleMag(const vec3_t m);
vec4_t getAttitude() const;
vec3_t getBias() const;
mat33_t getRotationMatrix() const;