My new 10 DOF (degrees of freedom) IMU (inertial measurement unit) is here!


Why I like it:

– MPU9250 chip with the 6500 acceletometer/gyro unit. This one is better than the common 6000/6050 unit I already had. The gyro in particular has less drift.

– The board is small so I can place it closer to the center of gravity. This will avoids polluting the accelerometer readings when the UAV rotates

– SPI interface. I’ll be able to read this from the raspberry pi at 4Khz ideally. It has a fifo so I shouldn’t be bothered by thread jitter. Reading the gyro and accelerometer at 4Khz should result in 384Kbits/s which is below the 1Mbit/s SPI clock rate of the MPU9250.

I have to write a new IO_Board implementation for the brain but it’s not a big deal. Most of the code is the same as the current crius board code I’m using.


13 thoughts on “10DOF IMU

  1. Nice work man, i’m starting working on a project like yours.
    I’m going to use a Crius + Raspberry Pi + Rasp Camera + Sonar to control the quad, with image processing combinate with sonar in the Rasp to make the Quad fly autonomous.
    So, the idea is to switch a button in the control and the drone shifts to automaticaly / manual.
    What do you think? It’s possible to do that? My intention is to use figures to orientate the drone.

    1. You mean use the camera to figure out the position/rotation of the quad? That’s an interesting idea but a pretty complex one to implement. The raspberry pi CPU doesn’t have enough power to process images from the camera except at very low resolution and framerate. Check this thread where they talk about making this a bit faster: http://www.raspberrypi.org/forums/viewtopic.php?f=43&t=75240
      One cool thing is that the camera can give you the mpeg motion vectors and you can use these as optical flow information to detect when the quad rotates.

      1. Actually what i want to do is to tell the drone to go to a location using image processing, for example, i gave an arrow on the wall 2 meters far from the drone and i want that he goes that way to the wall, if he do not founds the image locating forward, i want that he spin until he found. When he find the image, he goes to it, than finds that is an arrow and follow that direction, to find another and than goes on until the final image that says to he lands. What do you think?

        1. So you want to use the crius to fly the quad and the raspi+cam to control the crius using image recognition, right?
          I guess you could setup opencv on the raspi to recognize some images. You might have to paint these images on the floor and recognize them from above to know the exact direction they are pointing at. But it might be doable.
          Can I ask why do you want to do this?

          1. Exactly, i’m thinking on using opencv to do that, but what i don’t know is if i can control crius using raspi, and i want to have a button trigger in my control that allows me to change between raspi and remote control.
            I’m doing this as my college final paper.
            I know its complicated but if its possible, then i’m going try.
            What else i do not know is what language runs faster in the rasp, if is java, python or another?
            Thanks for your help.

          2. The raspi can talk to the crius using UART and i2c. You’d need to change the crius software a bit to allow the raspi to take over when needed but this is not that difficult.
            Regarding the language, it all depends on what you mean by fast. Execution speed might not be an issue for this project since opencv will be doing the image recognition for you. So you’re limited to languages that have bindings for opencv. C/C++ are ok, not sure about python.
            It’s a nice project.

          3. Thanks to your help.
            I ordered the pieces to the project and i’m waiting they.
            I’m going to start the programing to recognize images while the pieces don’t arrive.
            I bought a crius aio, raspberry pi b+ and rasp camera.
            Is going to need anything else to conect the raspi to crius?
            Thanks again.

          4. You’re going to need something like this:
            The raspi uses 3.3v logic while the crius is 5v so you need a logic level converter between the two. Otherwise the raspi will suffer.
            To communicate between the 2 I recommend the UART as it’s very easy to setup and use on both devices.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s