Invensense releases licence to allow use of the MPU-6000 DMP processor

Good news: Invensense has finally released a licence that allows open source projects such as ArduCopter/Plane to use the built-in sensor fusion processor in the MPU-6000 gyro/accel chip used in APM 2.x!

This processor, called the Digital Motion Processor (DMP), has been in the APM 2.x sensors from the beginning, but we weren't using it because Invensense had not specifically allowed their driver to be distributed with open source software. However, after much discussion, they have now written a licence that allows this. 

You can get it on the Invensense Developers Corner here. (You'll have to register first). I'm not a lawyer, so I won't attempt to analyze the language to see if there are any holes in it, but the Invensense developer relations managers and their legal team wrote it with projects like ArduPlane/Copter in mind, and they've assured me that we now have the green light to use the DMP code. (The agreement specifies the MPU-6050, which is the I2C version of the chip, but that includes the MPU-6000, which is the SPI version that we use). 

The Ardu* dev team is hard at work at implementing the DMP code in the ArduCopter/Plane code and we hope to have that ready for the next release. It will probably give you a choice of using the current DCM, running on the main processor, or the DMP running on the MPU-6000, freeing up a good bit of processing power for other functions. 

We have not done a rigorous test of the DMP vs the DCM, so we can't yet say that one is better than the other. But this licence now allows us give people the option of trying it, and if it perorms better than the DCM, or just as well but freeing up computational power, we can switch to it going forward. 

Views: 6860

Comment by Rui Manuel Cravo Marques on July 27, 2012 at 1:39pm

Well, this is excellent news and will boost the APM2 value and long term usability for sure:) congratulations for your well done negotiations with Invensense.

Comment by Hamish on July 27, 2012 at 3:45pm

Jumbo news, it's been a year or more since people got excited about the DMP but couldn't use it.

Comment by Harry on July 27, 2012 at 8:30pm

I dont even know what I'm looking for on that site.  I agreed to something and then the downloads were nothing but .pdf .  I need the code that  will replace mpu_read(), read_adc_raw(), HMC5883_read(), HMC5883_calculate(pitch, roll) and not need all kinds of low level tricks. 

Comment by Scott Thompson on July 28, 2012 at 11:49am

I'm a fan of using the DMP fusion algorithm and started in quads with the intent of using a CH Robotics' CHR-UM6 with a PIC32.  APM 2 came out with even more functionality than what I could install on my real estate and did it in a smaller package, so APM2 was a no-brainer, and cheaper.  Implement DMP and I'm back to my original dream of using the "fusion" processor (extended Kalman filter?) to free-up the APM2.  I welcome this with open arms and am thrilled that an agreement between open source community and Invensense has been reached.  If this means I just register as a developer, so be it...  Cheers!

Comment by Yogesh Girdhar on July 30, 2012 at 8:12am

Crispin, I am assuming DMP does motion integration at a much much faster rate than what can be done off-chip. Hence the DMP solution is likely to be much more accurate. 

Comment by Crispin on July 30, 2012 at 8:15am

I accept that off-loading the work from the main processor would be a good thing in the broader sense. Not knowing anything about how "sensor fusion" works, I guess the (rhetorical) question is: Are there good ways and bad ways to do it? Could Invesense put a method in that is "just ok" but being a black box, we would never be able to change it.


3D Robotics
Comment by Chris Anderson on July 30, 2012 at 8:18am

Crispin: Yes, that's possible. In our testing so far, the DMP performed about as well as the DCM, but until we can fully implement (which we are now doing), we won't be able to properly test them head to head to know which is really better in our applications. 

Comment by Crispin on July 30, 2012 at 8:24am

Thanks Chris. I'll just wait (patiently) for the boffins to get on with it then ;)

It'll be interesting to see how it pans out. 

Comment by Greg Fletcher on July 30, 2012 at 8:31am

Does the mpu6000 talk to the mag directly over I2C, and if so how do the mag offsets get incorporated?


3D Robotics
Comment by Chris Anderson on July 30, 2012 at 8:36am

Greg: via SPI. We do mag/GPS sensor fusion externally and send offsets back into the MPU-6000 via Accel bias factors.

Comment

You need to be a member of DIY Drones to add comments!

Join DIY Drones

Social Networking

Contests

Season Two of the Trust Time Trial (T3) Contest has now begun. The fourth round is an accuracy round for multicopters, which requires contestants to fly a cube. The deadline is April 14th.

A list of all T3 contests is here

Groups

Advertisement

© 2013   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service