6DOF IMU

Hello, i just buy a 6dof imu ultra thin. Im trying to get angles with this dcm code. http://voidbot.net/razor-6dof.html
Everything works fine except the yaw. My problem is that the yaw value keep increasing even if the board isstable. Is that because of the lack of gps in my setup? Is there any wayto fix this problem without a magnetometer and without a gps?(myproject is indoor so i cant use a gps)

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Thank you for your response,

    while using DCM code, error is like this.  i want to work in that (except yaw movement) . for that how to change the code. how to use this dcm code in other two (pitch and roll) direction? please help me

     

    error.png

    https://storage.ning.com/topology/rest/1.0/file/get/3692204629?profile=original
  • Developer
    Yes, it is because of not having gps or a magnetometer.  No, there is no way to fix it without a magnetometer or gps (or some other sensor giving you a heading reference).  Magnetometers will work indoors.
  • @lucky13 i am also doing a similar project. i am building an automatic leveling platform using RAZOR 6DOF IMU, arduino uno board and standard servo motors. i used the offset program given in the page http://voidbot.net/razor-6dof.html
    it shows 0,0,0,0,0,101. while moving the sensors these values are also changed.
    but my problem is that the DCM code given is not working properly.this code is compiled. while execution it is hang the computer (i tried on other computer also).  i am not using GPS. can you tell me how you made the DCM code work. did you edit the code or used it as such? please reply ASAP
    voidbot.net
    This domain may be for sale!
  • @lucky13 i am also doing a similar project. i am building an automatic leveling platform using RAZOR 6DOF IMU, arduino uno board and standard servo motors. i used the offset program given in the page http://voidbot.net/razor-6dof.html

    i am getting these readings. but my problem is that the DCM code given is not working. i am not using GPS. can you tell me how you made the DCM code work. did you edit the code or used it as such? please reply ASAP

    voidbot.net
    This domain may be for sale!
  • i still cant find out whats going wrong. so if anybody can help i would appreciate it
  • I've also upload video showing the raw data from the gyros and the accelerometers and roll-pitch-yaw from the dcm code
    https://www.youtube.com/watch?v=5pcU3gfi5YM
  • Developer
    So, you need to check that the analog channel read order in your code (1,0,2,5,4,3) is reading the correct sensors (gyro x, gyro y, gyro z, accel x, accel y, accel z). You also need to verify the sensor signs. Look at the x, y, z axis system shown here:
    http://code.google.com/p/ardu-imu/

    Just insert some statements to print out these six values. The first three should vary as you rotate around the x, y, and z axes, respectively. The second three should register gravity when you point the axis down, again, x, y, and z respectively. I still bevieve the most likely cause of your problem is having two of the three accel readings interchanged.
  • possibly an accel correcting the wrong gyro reading? i had that once



    also, when you spin, roll, or pitch it, do all the values change? or just the one corresponding?

    i cant seem to get this IMU thing for the life of me
  • Developer
    Pitch and roll drift are corrected with the accelerometers. You basically measure the gravity vector and use it as a reference to correct two of the axes. However you need another reference to correct yaw. Typically we use either a magnetometer, or gps, but gps is only good for the case where the IMU is in motion and the motion is aligned with an axis (like in an airplane).

    If you don't have yaw correction the yaw will drift over time because the gyros are not perfect and drift, and there is no mechanism for drift correction.
  • Ok i managed to fixed that problem. I have some other questions now. 1st for the yaw. If for example the imu heading to one direction(i.e at north) when it starts, i get from the euler angle a ~0 . If i turn it left or right at leave it there for some seconds and then turn it again to its starting position the reading now its not ~0 but +- value. Can anybody explain me why is that?
    2nd. If i pitch down or up the imu and hold it there(without turning the board in a way that should affect roll) , the roll value changes for some seconds and then returns slowly to 0. Why is that? My thought is that is caused by a filter.. If anybody can help i would appreciate it.
This reply was deleted.

Activity