Shop OBEX P1 Docs P2 Docs Learn Events
Just saying — Parallax Forums

Just saying

rjo__rjo__ Posts: 2,114
edited 2014-06-25 15:33 in Propeller 2
Jazzed has started looking at freeimu with the MPU6050 in a thread started by Kaeru no Ojisan. http://forums.parallax.com/showthread.php/156107-MPU6050-Quaternion

FreeIMU started out as an attempt by Fabio Varesano to solve the problem of sensor fusion for the amateur.
Unfortunately Fabio died of a heart attack on Christmas Day 2012 at the age of 27. Since then his work has been adopted by the community that grew up around his efforts.
I have seen videos showing really impressive results including near-nulling of yaw drift. http://www.varesano.net

FreeIMU works with most available sensors.

Currently, in order to see demos at work... the sensor has to be hooked up to a micro-controller which has to be hooked up to a computer running software that is either outdated... as in the case of Processing(you have to use 1.5.1 since the serial support doesn't work as well in later versions)... or software which you have to compile from a repository that might or might not be the right version from the right depository.

The P2 will (of course) be able to do all the work and display the results directly.

Just saying

Comments

  • jazzedjazzed Posts: 11,803
    edited 2014-06-20 12:08
    Hi,

    I'm following up for the other person because I have no way to reproduce the results without hardware. The board is on order. Once I have that, I'll test it.
  • rjo__rjo__ Posts: 2,114
    edited 2014-06-20 12:19
    My hero:) Not that I'm trying to put any pressure on you, of course.
  • Heater.Heater. Posts: 21,230
    edited 2014-06-20 14:28
    rjo__

    For those of us who have no idea at all can you explain in laymans terms what "FreeIMU" and "the problem of sensor fusion" is.

    So far I did not know I had such a problem or what I would do if I had a solution for it:)
  • davejamesdavejames Posts: 4,047
    edited 2014-06-20 15:27
    Heater. wrote: »
    For those of us who have no idea at all can you explain in laymans terms what "FreeIMU" and "the problem of sensor fusion" is.


    http://www.varesano.net/projects/hardware/FreeIMU

    .
    .
    .
    ...oh well - rjo just responded.
  • rjo__rjo__ Posts: 2,114
    edited 2014-06-20 15:28
    Heater,

    I only have a minute right now... so I reserve the right to be incomplete and erroneous. I am not exactly an expert:)

    Sensor fusion is a general term that implies some process to correlate signals from disparate sources. We have two eyes... when we properly fuse them by looking at the same place with both eyes sensor fusion gives us our sense of 3D. Matching photographic data to lidar data is an example of sensor fusion.

    In the context that we are talking about here sensor fusion implies some strategy to limit the errors that are inherent in the kinds of sensors that are used for robot navigation...gyroscopes, accelerometers, baraometric sensors, GPS, and in the future... P2 vision:) I have seen altitude hold, position hold, and waypoint navigation on very inexpensive quadcopters. This all requires a sensor fusion algorithm that is stable enough to provide useable data longer than the battery lasts in the quad.

    Invensense has a series of sensors that do the correlation process without the need for an outside processor. At one time, access to the DMP("digital motion processor", the data fusion unit) wasn't exactly available. As I understand the history(and I could easily be wrong), freeIMU arose from an effort to reverse engineer the blackbox or make a better one in software and make it available as open source. Somewhere along the way Invensense opened up the black box to some members of the open source community. I may be mixing and matching information that doesn't belong together here:)

    freeIMU refers to the open hardware part of the problem... there is also an open software library that supports most popular combinations of sensors and it is written in C...

    Kaui Labs also provides open access to the DMP of the MPU6050 and later http://www.kauailabs.com/robotics/kauai-labs-releases-port-of-latest-invensense-mpu-60509150-driver-to-arduino-platform/
    Their target is (of course) the Arduino platform:)
  • Heater.Heater. Posts: 21,230
    edited 2014-06-21 08:09
    rjo__

    OK, now I'm with you.


    Strangely enough I was very recently listening to an episode of TheAmpHour podcast where they interviewed Jeff Rowberg and discussed this exact same problem with the Invensense MPU6050.
    http://www.theamphour.com/the-amp-hour-155-mini-module-master/
    I did not pay much attention to that but it seemed like it was a solved problem.
    But, it turns out that if they have a solution they have not released the DMP code:
    http://www.i2cdevlib.com/devices/mpu6050#source


    Seems crazy that Invensense are trying to sell a chip with no documentation on how to use it.
  • rjo__rjo__ Posts: 2,114
    edited 2014-06-21 16:20
    Heater,

    If I read carefully... I can't figure out wtf is going on. It seems .... from a link I lost... that Invensense is sort of "leaking" the info into the open community through developers that they approve... I suspect that this is because they don't want to deal with a bunch of really stupid comments from really stupid people. The 6050+++ line of sensors really don't generate enough sensor info to really solve the problem... but partially solving it is a huge step forward for the hobby market. Way back and once upon a time, I was learning how to fly out of a little airport in my home town. We were flying at night and were down by Peoria, when we decided to turn around and head for home, using "dead" reckoning and lights on the ground. At one point, I turned to my instructor and asked "what if I am lost and have no idea where I am?"... which at the time I was. He flicked some switches and set some dials and then we were using the AM radio station in my home town to guide us home.

    I don't understand the details, but knowing the heading seams to be a reasonable issue for a drone with really good hang time.

    I will be happy...one day... to know that my elev8+++ is level and that I know where it is heading.

    In the time that it took to write this ... my L3G3200D has only accumulated 2 degrees of drift... so, maybe magic is possible:)

    Oops... make that 8 degrees.
  • markmark Posts: 252
    edited 2014-06-21 19:28
    I don't recall these parts supposed to being able to do any substantial sensor fusion. Maybe just sending an interrupt signal upon certain (somewhat) programmable state changes and acting as an I2C or SPI master device for external magnetometers. What makes these parts desirable is their performance compared to other accel/gyro MEMS sensors.
  • Heater.Heater. Posts: 21,230
    edited 2014-06-22 02:23
    If I understand correctly the MPU6050 contains a three axis accelerometer and a three axis gyro.

    The "fusion" going on there is to integrate these six measurements and derive the orientation. which the
    MPU6050 can do by itself it seems.

    Interesting...



  • mklrobomklrobo Posts: 420
    edited 2014-06-25 15:33
    Building on the open source hardware and software, there is a company that makes a microprocessor board, that compiles alot these
    functions. Beaglebone boards, at beagleboard.com has alot of these concepts covered, and the power of a laptop on teh processor board,
    without the expense. I am trying to integrate a beaglebone with a basic stamp to make a universal diagnostic device. :)
Sign In or Register to comment.