executor.schedule(new BNO055UpdateTask(this), 0L, THREAD_PERIOD);
zeroReferenceConst = getHeading();
+
+ System.out.println("Initital Heading: " + zeroReferenceConst);
}
/**
return xyz;
}
+ /**
+ * Heading not relative to the starting angle of the robot.
+ * Exists only for debugging purposes.
+ *
+ * @return
+ */
+ public double getRawHeading() {
+ return xyz[0] + turns * 360;
+ }
+
/**
* The heading of the sensor (x axis) in continuous format. Eg rotating the
* sensor clockwise two full rotations will return a value of 720 degrees.
* @return heading in degrees
*/
public double getHeading() {
- double reading = (xyz[0] + turns * 360);
-
- if (zeroReferenceConst == 0)
- return (xyz[0] + turns * 360);
+ double reading = getRawHeading();
- return (xyz[0] + turns * 360) - zeroReferenceConst;
+ return reading - zeroReferenceConst;
}
/**