EDTrackerIICalibrate.ino: In function 'void setup()':
EDTrackerIICalibrate:139: error: 'mpu_set_dmp_state' was not declared in this scope
EDTrackerIICalibrate:141: error: 'mpu_read_6050_accel_bias' was not declared in this scope
EDTrackerIICalibrate.ino: In function 'void loop()':
EDTrackerIICalibrate:185: error: 'dmp_read_fifo' was not declared in this scope
EDTrackerIICalibrate:188: error: 'Quaternion' was not declared in this scope
EDTrackerIICalibrate:188: error: expected `;' before 'q'
EDTrackerIICalibrate:194: error: 'q' was not declared in this scope
EDTrackerIICalibrate:220: error: 'mpu_get_temperature' was not declared in this scope
EDTrackerIICalibrate.ino: In function 'void initialize_mpu()':
EDTrackerIICalibrate:326: error: 'mpu_init' was not declared in this scope
EDTrackerIICalibrate:328: error: 'INV_XYZ_GYRO' was not declared in this scope
EDTrackerIICalibrate:328: error: 'INV_XYZ_ACCEL' was not declared in this scope
EDTrackerIICalibrate:328: error: 'mpu_set_sensors' was not declared in this scope
EDTrackerIICalibrate:330: error: 'mpu_set_gyro_fsr' was not declared in this scope
EDTrackerIICalibrate:331: error: 'mpu_set_accel_fsr' was not declared in this scope
EDTrackerIICalibrate:334: error: 'mpu_configure_fifo' was not declared in this scope
EDTrackerIICalibrate:335: error: 'mpu_set_sample_rate' was not declared in this scope
EDTrackerIICalibrate:337: error: 'dmp_load_motion_driver_firmware' was not declared in this scope
EDTrackerIICalibrate:339: error: 'dmp_set_orientation' was not declared in this scope
EDTrackerIICalibrate:341: error: 'dmp_register_tap_cb' was not declared in this scope
EDTrackerIICalibrate:343: error: 'DMP_FEATURE_6X_LP_QUAT' was not declared in this scope
EDTrackerIICalibrate:343: error: 'DMP_FEATURE_SEND_RAW_ACCEL' was not declared in this scope
EDTrackerIICalibrate:344: error: 'DMP_FEATURE_SEND_RAW_GYRO' was not declared in this scope
EDTrackerIICalibrate:346: error: 'DMP_FEATURE_TAP' was not declared in this scope
EDTrackerIICalibrate:348: error: 'dmp_enable_feature' was not declared in this scope
EDTrackerIICalibrate:349: error: 'dmp_set_fifo_rate' was not declared in this scope
EDTrackerIICalibrate.ino: In function 'void update_bias()':
EDTrackerIICalibrate:386: error: 'mpu_set_gyro_bias_reg' was not declared in this scope
EDTrackerIICalibrate:387: error: 'mpu_set_accel_bias_6050_reg' was not declared in this scope
EDTrackerIICalibrate:399: error: 'dmp_read_fifo' was not declared in this scope
EDTrackerIICalibrate.ino: In function 'void loadBiases()':
EDTrackerIICalibrate:476: error: 'mpu_set_accel_bias_6050_reg' was not declared in this scope
EDTrackerIICalibrate:484: error: 'mpu_set_gyro_bias_reg' was not declared in this scope
EDTrackerIICalibrate.ino: In function 'void flipBias()':
EDTrackerIICalibrate:497: error: 'mpu_set_gyro_bias_reg' was not declared in this scope
EDTrackerIICalibrate:502: error: 'mpu_get_accel_sens' was not declared in this scope
EDTrackerIICalibrate:515: error: 'mpu_get_gyro_sens' was not declared in this scope
EDTrackerIICalibrate:526: error: 'dmp_set_gyro_bias' was not declared in this scope
+---core
| HID.cpp
| readme.txt
| USBAPI.h
| USBAPI.h.105
| USBAPI.h.156
|
+---libraries
| readme.txt
|
+---library
| +---I2Cdev
| | I2Cdev.cpp
| | I2Cdev.h
| | keywords.txt
| |
| +---InvensenseMotionDriver
| | arduino_shim.cpp
| | arduino_shim.h
| | dmpKey.h
| | dmpmap.h
| | helper_3dmath.h
| | inv_mpu.c
| | inv_mpu.h
| | inv_mpu_dmp_motion_driver.c
| | inv_mpu_dmp_motion_driver.h
| | License.txt
| | readme.txt
| |
| \---MPU6050
| | helper_3dmath.h
| | MPU6050.cpp
| | MPU6050.h
| | MPU6050_6Axis_MotionApps20.h
| | MPU6050_9Axis_MotionApps41.h
| |
| \---Examples
| +---MPU6050_DMP6
| | | MPU6050_DMP6.ino
| | |
| | \---Processing
| | MPUTeapot.pde
| |
| \---MPU6050_raw
| MPU6050_raw.ino
|
+---sketches
| +---EDTrackerII
| | EDTrackerII.ino
| |
| \---EDTrackerIICalibrate
| EDTrackerIICalibrate.ino
|
\---UI
+---[...]
I just fixed it on my side. Basically what I did was to erase everything in EEPROM with this here:
Had the same issue with huge offsets. Rob, maybe include the eeprom wipe code in the ED2Calibrate sketch?
it should run without processing now, but i cannot confirm it, i never had the problem that required using processing.Does the Calibration Utility run without issues now, or do some of us still have to run it through Processing 2?
I think not. At least I can't think of a way how to make your EDTracker behave the same every single time. Had some stuff to do away from the PC, and upon turning it back on when I came home I find the head in the EDTracker head now drifting to the right although the temperature is almost at 54 again. 30 minutes is like 40°. Now I don't know for sure, but the minimum turn velocity your're capable of turning your head at however should never be below a certain threshold, meaning it would be well above the gyroscope's drift. That means it should still be able to catch all your head movements.Won't the very slow return to a 'zero' position achieve the same thing?
am a bit confused on the response mode if I toggle exponential and save the drift compensation does that inlcude the linear or is that totally seperate if it is which is better for play ED with?
(...) it is an algorithm which uses a series of measurements observed over time, in this context an accelerometer and a gyroscope. These measurements will contain noise that will contribute to the error of the measurement. The Kalman filter will then try to estimate the state of the system, based on the current and previous states, that tend to be more precise that than the measurements alone.
@ pocketmoon
Would a Kalman filter be a useful addition for a head tracker?
Now I'm confused. If the DMP does a good job, where does the drift come from? I'm asking because the two other suggestions were to either take the temperature into the equation, or to make use of said DMP.