Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
Varesano.net
Home
About
Topics
Projects
Socialize
Contact
Search
Stickers
The main application of FreeIMU is orientation sensing: by reading the data from the various sensors is possible to compute precisely the orientation of FreeIMU in the space. Recent boards also feature an high resolution barometer allowing to precisely track the device altitude. This can be useful in many applications: human-computer interaction device prototyping, flying machines, robots, human movement tracking and everywhere orientation sensing is a key aspect. As FreeIMU breakout the sensors interrupt pins, it's also possible to detect per axis single and double taps, free fall as well as activity or inactivity. This makes FreeIMU a very good choice for Human-Computer devices prototyping. Interrupts pins are also very useful if you are into interrupt based reading of the sensors, useful to develop high frequency interrupt based sensor reading.
Popular content
All time:
Installing Flash Player Plugin on Firefox without having Administrator Access or Premissions h264 videos on Flash: cool example Disable related videos on a embedded Youtube player FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing Multiple forums for Organic Groups: my patch committed Older video presentations: FreeIMU v0.3, FreeIMU v0.1 and 0.2. Serial RS232 connections in Python Why No One should Drink and Drive -
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
FreeIMU is a true Open hardware, released under the CC-BY-SA. You are free, actually encouraged, to use it for any purpose, to study and modify its designs, to make your own copies of FreeIMU and even sell your own FreeIMU based hardware. But, you will have to share your designs based on FreeIMU keeping attribution and sharing them using the same libre license. On FreeIMU repository (see development section below) and from the downloads on this page, you have access to everything you need to build your own FreeIMU board. You have access to the schematics, the PCB designs and even the bill of material so that you can build your own FreeIMU. Moreover, FreeIMU has been designed using KiCAD, an excellent libre PCB design software, so you don't have to rely on proprietary software to study or modify FreeIMU.
An homebrew DIY breakout board for the ITG3200 gyroscope: tested with Arduino and Processing About My first 6 DOF IMU Sensors Fusion Implementation: ADXL345, ITG3200, Arduino and Processing
Recent comments
Femtoduino on 1S Lipo 3,7V 10 hours 57 min ago Your driveway may be corroded, 16 hours 40 min ago Manual Installation of Flash Plugin for recent Versions of FF 2 days 17 hours ago
Getting FreeIMU
An assembled, tested and ready to use FreeIMU board can be bought from: Viacopter.eu FreeIMU v0.4 (available!) SDModel.it FreeIMU v0.4 (available!) Flyduino.net FreeIMU v0.4 (sold out) The FreeIMUs boards bought from the above shops financially support the project. The boards have been produced and assembled in Italy by reasonably paid workers in a safe environment in respect with European and Italian laws.
very good guide how to use 1 week 6 hours ago very good tutorial how to use 1 week 7 hours ago condoglianze 1 week 6 days ago Launchpad Project 1 week 6 days ago Wow! It is good to know a new 2 weeks 1 day ago I have encountered about 3
Advertising
FreeIMU versions
v0.4 v0.3.5_MS v0.3.5_BMP v0.3.5 v0.3-v0.3.1 v0.2 v0.1
www.varesano.net/projects/hardware/FreeIMU
2/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
FreeIMU v0.4 features the MPU6050 gyroscope+accelerometer, the HMC5883L magnetometer and the MS5611-01BA high resolution altimeter. The magnetometer is attached to the AUX I2C bus of the MPU6050 thus allowing it to be read directly by the MPU6050. Connecting FreeIMU 0.4 to Arduino FreeIMU v0.4.1 Schematics FreeIMU v0.4 MPU6050 and MS5611 I2C addresses FreeIMU v0.4.1 KiCAD sources FreeIMU v0.4.1 Gerbers FreeIMU v0.4r3 BOM
FreeIMU library
FreeIMU can be easily used on Arduino compatible boards using the Arduino FreeIMU library which implements sensor fusion MARG orientation filter enabling you to do easy and straightforward orientation sensing. FreeIMU library - 2012/11/22 Use Arduino 1.0.1 IDE or later version. Install the libraries as explained in the Arduino Libraries Reference section Contributed Libraries . The FreeIMU library now supports all the versions up to v0.4. By default it's configured to be used on v0.4. In order to use on different boards, open the file FreeIMU.h and uncomment the correct version of your board. The FreeIMU library also supports the following 3rd parties boards: Sparkfun IMU Digital Combo Board - 6 Degrees of Freedom ITG3200/ADXL345 SEN-10121 Sparkfun 9 Degrees of Freedom - Razor IMU SEN-10736 Sparkfun 9 Degrees of Freedom - Sensor Stick SEN-10724 Sparkfun 9 Degrees of Freedom - Sensor Stick SEN-10183 DIYDrones ArduIMU+ V3 Generic MPU6050 Breakout boards (eg: GY-521, SEN-11028 and other MPU6050 wich have the MPU6050 AD0 pin connected to GND.) Note for FreeIMU v0.1 and 0.2 users: from April 2011 the default magnetometer configuration is for HMC5883L. In order to use the library with HMC5843 (v0.1 and v0.2) edit the file HMC58X3.h and uncomment the line #define ISHMC5843.
www.varesano.net/projects/hardware/FreeIMU 3/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
FreeIMU Processing Programs The FreeIMU library comes with Processing visualization demos. In order to use them, Download and install Processing. Copy the folders within the processing folder of the FreeIMU library archive into your Processing sketchbook. Remember to change the Serial port address in the Processing code to match the address used by arduino on your system.
FreeIMU library on NXP LPC1343 Cortex m3 processor by Hari Nair hair.nair@gmail.com. More details and possibility to contact the author on the FreeIMU community development forum. Have you ported the FreeIMU library to other platforms? Please let me know and I'll list your work here!
Calibration
A calibration GUI application is available. The software is currently in alpha state, however many people are already using it. The calibration, when properly executed, drastically improve the orientation sensing performance of the FreeIMU framework. If you are experiencing drifting or inconsistent results, your sensors may need to be calibrated using the Calibration GUI.
Community
There is now a FreeIMU Community website, which has been set up to become the central point of interaction between users of the FreeIMU framework. This is the place where you can get help, join others in developing new features, discuss IMUs applications and much more. Previously we used FreeIMU answers on Launchpad as well as comments on Fabio's website for supporting users, however we decided to create an ad-hoc website to facilitate information gathering and collaboration between people.
Never used bzr before? Not a big deal, it's very similar to git, svn or others. You may wanna have
www.varesano.net/projects/hardware/FreeIMU 4/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
a look at the cheatsheet to have an overview of the commands available or read more documentation on bzr. Alternatively, in case you have problems setting up bzr on your system, you can simply get the latest repository contents from here. The resulting file is a .tar.gz archive which can be opened with the excellent 7zip under Windows. Mac and Linux users shouldn't have problems opening such files. The files on the repository can also browsed from a browser here. A list of recent changes is available here.
www.varesano.net/projects/hardware/FreeIMU
5/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
Chris uses FreeIMU on his VTOL EDF Tricopter powered by the MultiWii software.
www.varesano.net/projects/hardware/FreeIMU
6/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
Francesco Ferrara with his super fast implementation of the AHRS algorithm capable of displaying the rotating cube at 333Hz with FreeIMU! Great work!
Marchino65 with his first test with FreeIMU and the FreeIMU library on Arduino. The cube is spinning pretty good!
Francesco Ferrara in his first flight with FreeIMU on his very young quadcopter project called Simplo.
www.varesano.net/projects/hardware/FreeIMU
7/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
231051 reads
MPU9150
Submitted by Anonymous (not verified) on Sat, 2013-04-27 09:37.
Hi Fabio, I have the MPU9150 breakout board, trying to get the roll pitch yaw program working as we are doing a design project to make a UAV. Problem is when uploading the rollpitchyaw program it gives the errors: MPU60X0.h: No such file or directory and MPU60X0 does not name a type. All the libraries are in the right place, there is #include I2Cdev.h and 6050.h. I have also gone into FreeIMU.h and uncommented the Gen 6050 breakout. Can't figure out what's wrong, thanks for your help! reply
MPU-9150
Submitted by Diego (not verified) on Wed, 2013-04-03 23:58.
Hi Fabio, did you think using the MPU-9150 in the future? thx Diego reply
Hi everyone and thank you Versano for writing this great library. I've been experimenting with my IMU for a couple of months while trying to build a quadcopter from scratch. I have noticed that it was quite complicated to analyze Roll, Pitch, Yaw, roll rate, distance from ground, automatic corrections, etc so I decided to create This Plotting library for Arduino + Processing. The main difference with other libraries I've found out there is that you can plot multiple series on multiple viewports using different Min and Max values on each viewport. I hope this will help many of you and I'd love to get your feedback. reply
www.varesano.net/projects/hardware/FreeIMU 8/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
So sad!
Submitted by philip_xu (not verified) on Fri, 2013-01-25 03:52.
I'm feeling so sad when I knew Fabio has gone. He gave us lots of help, and didn't want any returns, even I didn't ask any question to him, didn't post any reply before, but I read a lot, and knew him a perfect guy. Right now, It seems there's no one hosting the website anymore as spam letters growing. And I'm afraid the website will be shut down months or years later, then Fabio will be lost forever. So, can anyone give some help to continue hosting the website? I know its possible that no one knows Fabio's account name and password, and I still wish someone, his friend, his student or his family, could contact us to continue hosting this, at least, to delete the spam letters. reply
Hi, Im interested in FreeIMU v0.4, but ive just seen the tragic new about Fabio. So, what can we do now? I have seen another board in ebay: http://www.ebay.es/itm/10DOF-IMU-MS5611-HMC5883L-MPU6050-Sensor-module-/... It is significantly cheaper, and has the same sensors. The pins are the same, only one is different, in this module is DRDY instead INTM. What do yo think? Could be this board compatible with FreeIMU libraries? If anyone knows where I can find another solution, please let me know. Thanks! reply
Fabio, I was taking a look at the code and I didn't understand why does it invalidates a measurement if one of the axis is zeroed. I guess it should only invalidate a measurement if all axis are zeroed, right? This is being done to both magnetometer and accelerometer measurements and I was wondering if it isn't throwing away good measures this way. reply
Fabio has passed away,my condolences to his family. look here for more info http://www.multiwii.com/forum/viewtopic.php? f=8&t=649&start=1550#p28428 Re: GPS integration Postby Sharkcopter Fri Dec 28, 2012 10:43 pm I am very saddened to tell you that Fabio Varesano, the manufacturer of FreeImu died on
www.varesano.net/projects/hardware/FreeIMU 9/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
Christmas Day. He was only 27 years of age. This morning we attended his funeral. I remember him as a friend with a great desire to try and help others. Sharkcopter Posts: 21 Joined: Fri Feb 24, 2012 3:12 pm reply
Hello Fabio, I'm using the FreeIMU v4 after calibration with the tool you've created. The results are much better now but I'm still getting some drift. I was thinking, since I have no use for Yaw measurements - is it possible to ignore the Yaw and get better results for pitch and roll? Thank you for your excellent work! reply
LIbrary update
Submitted by tussh13 (not verified) on Sun, 2012-12-09 18:26.
Fabio have you updated the library ? Is the current version on this page the one from bazaar ? reply
I just soldered a FreeIMU board, for testing with Teensy 3.0. At least one user reported an issue with 16 vs 32 bit integer pointers in the code. I'll investigate soon. While soldering, I noticed C303 is shown as 2.2 nF on the schematic, but 10 nF on the bill of materials. Maybe it doesn't matter, but thought it might be helpful to mention? reply
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
Hey Paul, nice to see you around here! Big fan of your work!
While soldering, I noticed C303 is shown as 2.2 nF on the schematic, but 10 nF on the bill of materials. Maybe it doesn't matter, but thought it might be helpful to mention? It will work with both of them.. however, we are currently using 2.2nF in the FreeIMU boards that we produce. Specifically, it's PN: 08051C222KAT2A Digikey: 478-1354-1-ND. I fixed the BOM to avoid confusion.
I just soldered a FreeIMU board, for testing with Teensy 3.0. At least one user reported an issue with 16 vs 32 bit integer pointers in the code. I'll investigate soon. Awesome! The Teensy 3.0 looks like an excellent platform for running the complex FreeIMU library math! It would be great if you could share your ported code, I'm sure people would enjoy it ;-) For any further questions or if you need my help during the porting, jump to the FreeIMU community! reply
Port on atXmega
Submitted by mataor (not verified) on Wed, 2012-11-28 20:36.
Hi Fabio Sorry for bad english - I'll use the Google translator Now I'm busy porting your code atmega128a3. Faced with such a problem: at standard
#d e f i n et w o K p D e f( 2 . 0 f*0 . 5 f )//2*p r o p o r t i o n a lg a i n #d e f i n et w o K i D e f( 2 . 0 f*0 . 1 f )//2*i n t e g r a lg a i n
watch drift YAW / - 13grad, PITCH / -1, ROLL / -2 for 1-2 minutes with decreasing
#d e f i n et w o K i D e f( 2 . 0 f*0 . 0 1 f )//2*i n t e g r a lg a n
The situation is getting better, but the problem does not disappear. The cycle time for my 32MHz CPU frequency is obtained: my3IMU.getQ (q) ~ 2095-2111 microseconds my3IMU.getYawPitchRoll (ypr) ~ 2537-2550 microseconds Thank God now though such a result is available (all day I suffer with constant drift in all directions), but it would be better - IMU is going to introduce a code of my port on MultiWii atxmega reply
www.varesano.net/projects/hardware/FreeIMU
11/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
So for my senior design group we are building a thrust vectoring system for a rocket motor during flight. We are using the FreeIMU to read the flight path of the vehicle and will send any corrections to the vanes in the rocket exhaust. I am an Aerospace Engineer so I have very little experience with electronics and coding them. My main question is what does the FreeIMU output the sensor data as? Is it in that quaternion or as something else? If its in the quaternion, how does one convert this into the raw values so that yaw, pitch and roll can be found? I appreciate any help. I have a little programming background in Matlab and Fortran but I am just lost when I look at your processing code to get the yaw, pitch, roll values from the FreeIMU. We are using an Arduino Uno R3 as our board which will be controlling 4 servos which will rotate the vanes in the rocket exhaust. Thanks, Josh reply
Hey Josh, may I ask you to post your question on the new FreeIMU Community website? http://freeimu.varesano.net/ reply
Lawn Bowling
Submitted by SHOGUN (not verified) on Wed, 2012-11-28 03:24.
Fabio, Greetings from Vancouver Island Canada. Lawn bowling is quite popular in Canada. I would like to instrument a lawn bowling ball with the FreeIMU that you are/have developed. There is quite a bit of skill involved with lawn bowling,ie. smooth release, no bounces, no wobble, correct speed etc. The bowling balls are about 5"in diameter and are weight "biased"to curve either right or left, depending on the release orientation. I would like to use the FreeIMU on a Arduino nano board with bluetooth or zigbee wireless communications with a laptop. I would like to show the ball's trajectory, speed, curve, deceleration, calculate and show the lawn "speed", wobble, bounces etc. This would be agreat tool for training people. The final instrument package would need to be small to fit inside a bowling ball. I think Software devolpment would be difficult. Do you think it can be done? Any suggestions would be appreciated. Regards Shaughan reply
www.varesano.net/projects/hardware/FreeIMU
12/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
It's not an easy development but an IMU can surely be helpful for this kind of training. I can ensure you that the math involved won't be easy and probably results won't be as good as you hope. The rolling path and speed can be tracked quite precisely, see my PALLA project, however it will be pretty hard to track the ball in the air during the launch... I would suggest you to get a FreeIMU an doing some tests and see how it works before going more serious with the project. Please join the community at http://freeimu.varesano.net/ reply
Hi, I am using the arduIMU v3 from dydrone. I am trying to read roll pitch and yaw but it looks like it is displaying a bunch of wrong data that do not have anything to do with roll pitch or yaw, no matter how I vary the positions of my board. actually even when I don't move the board at all the values for yaw keep increasing until they reach a certain value and then go down again. and same thing happens for the roll and the pitch. what could be a possible reason for the readings that I am getting? and what would be a fix for that. thanks reply
Hi Fab, I'm wanting to implement the work you have done with the MS5611 into my OSD system for my model aircraft. I'm trying to run your MS5611BA_Altitude sketch and am having trouble compiling it on a Arduino UNO. These are the errors I'm getting (see below) ~ Can you or maybe someone else help? Thank you in advance, Rick MS561101BA_altitude:36: error: 'MS561101BA' does not name a type MS561101BA_altitude.pde: In function 'void setup()': MS561101BA_altitude:51: error: 'baro' was not declared in this scope MS561101BA_altitude:51: error: 'MS561101BA_ADDR_CSB_LOW' was not declared in this scope MS561101BA_altitude:56: error: 'MS561101BA_OSR_4096' was not declared in this scope MS561101BA_altitude.pde: In function 'void loop()': MS561101BA_altitude:62: error: 'baro' was not declared in this scope MS561101BA_altitude:62: error: 'MS561101BA_OSR_4096' was not declared in this scope reply
www.varesano.net/projects/hardware/FreeIMU
13/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
Compiling fine here. You have to install the library to your Arduino library folder before being able to compile that program. The FreeIMU library section above includes instructions and references on how to do so. Also have a look to the INSTALL.txt file in the distribution. reply
MS5611-01BA03
Submitted by Rick Eis (not verified) on Sat, 2012-11-17 01:40.
Thanks Fab, Got it compiled no errors :) I'm using this MS5611 board from these folks http://www.csgshop.com/product.php?id_product=96 It looks like it is a MS5611-01BA03 Is there something I need to modify in the code to see some type of output in the serial monitor? Right now I am not seeing anything. I feel like I'm getting close and am looking forward to seeing some numbers :) Thanks again, Rick reply
Basic questions
Submitted by Anonymous (not verified) on Wed, 2012-11-14 17:48.
I'm very new to using sensors and have some basic questions to see if FreeIMU (or ArduIMU) would be suitable for the application I have in mind. I'm hoping to be able to measure the change (in degrees) of the yew and pitch during a short forward movement (about 6-12 inches over about 0.1 to 1.0 seconds) parallel to the x-axis of the device. I'd need to determine the start and end of the forward movement (the end may be abrupt - a collision). Also, the device may be oriented in different rolls during this movement and would need the same yew and pitch result regardless of its roll orientation (it could be laying flat, upside down or on its side during the movement). I think this application of the device is a simple case and issues regarding 'drift', calibration, etc. may not come into play. Do you agree? Would FreeIMU be suitable? Would a simpler device, such as only an accelerometer/gyroscope, be sufficient for my needs? Thanks in advice for your comments. reply
Appreciate the comments thus far. Let me try to explain the application better. The device would be a training aid attached to the butt end of a pool (billiards) cue, the x-axis parallel with the cue but it may oriented on the top,
www.varesano.net/projects/hardware/FreeIMU 14/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
side, etc. of the cue stick. When a player shoots the cue tip is paused near the ball (the 'set'), the cue is drawn back and stops momentarily (the 'pause') then stroked forward to strike the ball (the 'finish'). The player's objective is to keep the cue movements straight along it's axis, so the tip finishes at the same place as it was at the set and with minimal lateral (yaw) variation during the stroke (pitch changes during the stroke are normal and acceptable). On a very hard forward stroke the cue may be moving up to about 25 mph, though only for about 6 to 12 inches. Can an IMU (or hopefully a device with fewer sensors) be able to measure the straightness of the stroke? Can some of the difficult programming you are using for more typical IMU applications be avoided? I'm a novice and only familiar with C and Java programming. I'm hoping to get some guidance before buying things I don't need and going down the wrong paths when experimenting. Thanks again for any comments. reply
If the device is stationary for a short period of time, such as one second, at the beginning and end of the movement, I think you could use only an accelerometer. The problem with accelerometers is they are noisy. That is why accelerometers are combined with gyros: the combination reduces noise. But if your device is stationary, you can take a few hundred readings from just an accelerometer, average the readings, and get reasonable results. Of course, a complete IMU such as the FreeIMU will give more accurate results, but you might not need that level of accuracy. reply
No, you can't do what the original poster asks only with an accelerometer. He wants to measure the changes in degrees on the yaw and pitch during forward motions. Unfortunately, you can't measure yaw from an accelerometer only. You need a complete IMU for that. I wouldn't say that this is a simple application tough. Depending on how fast the motion is, you may get good or bad results. You may wanna do some tests and see how it goes. reply
Hi Fabio, I'm using FreeIMU 0.4 with Arduino for a while. Now I'm porting the FreeIMU library to an ARM platform (Energy Micro). I'm modifing the sensor driver to always use the I2CDev lib. Since your code is C++ with only stadard types, I want to only have I2CDev to get modified
www.varesano.net/projects/hardware/FreeIMU 15/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
(concentrate I2C implementation) Could you integrate my modifications ? Always using I2CDev lib enable to get only I2CDev be modified to handle Arduino and EFM32 platform. Regards, reply
Hi Guz, thanks for using FreeIMU and for willing to help. Unifying the I2C access routines is something that the FreeIMU library badly needs. It's been on my todo list for quite some time, but still not been able to do so. So, any help you could give would be much appreciated. However, I always found i2cdevlib unreasonably bloated.. too many functions, calling too many subfuctions.. we are using microcontrollers, not writing Java webapps. I would suggest you to have a look at the i2c implementation used by the MultiWii project (lines 150 to 260 from http://code.google.com/p/multiwii/source/browse/trunk/MultiWii/Sensors.ino ) .. this looks to me as very efficient and elegant. Probably, I would have simply wrapped that code into a CPP object and go with that. Interested in hearing your thoughts. reply
Hi, So I'll look that code and port it into a C++ class. I'll try to make that class portable from Arudion to EFM32 platform. I'll port drivers to use it and to be generic (any platform). Regards. reply
Thanks! I appreciate it. Please use the latest code from the repository as starting point. reply
Ok, Unfortunelately, I'm using windows so get the latest version from launchpad isn't easy.
www.varesano.net/projects/hardware/FreeIMU 16/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
Could you please send me a Zip with latest sources. I'll modify them and post back to you these. Regards, reply
Just use the 2012/11/06 version of the library. I didn't make any changes to it in the last week. Thanks for your help. reply
getting the real world acceleration :) just need to know the g range now reply
If you are using a FreeIMU v0.4, then the default range for the accelerometer is +-2G .. if you want to change this, you can call accgyro.setFullScaleAccelRange(X) where X can be MPU6050_ACCEL_FS_2, MPU6050_ACCEL_FS_4, MPU6050_ACCEL_FS_8, MPU6050_ACCEL_FS_16 respectively for +-2, +-4, +-8 and +-16 G. reply
Hi, I know how to apply kalman filter to an ANALOG ACCELEROMETER read all about it from starlino and instructables. How do I use it in a DIGITAL ACC....I need to get real world acceleration in G's for my project... what more should be done to the raw values from ADXL345 to get Kalman filtered values Fabio please help.....have been trying this for a week now reply
float S=0.0078;//scale factor to convert from raw acc data to g rawAcc[0]*=S; rawAcc[1]*=S; rawAcc[2]*=S; float[] g= { 0.0, 0.0, 0.0
www.varesano.net/projects/hardware/FreeIMU 17/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
}; g[0] = 2 * (q[1] * q[3] - q[0] * q[2]); g[1] = 2 * (q[0] * q[1] + q[2] * q[3]); g[2] = q[0] * q[0] - q[1] * q[1] - q[2] * q[2] + q[3] * q[3]; float[] dynAcc= { rawAcc[0] - g[0], rawAcc[1] - g[1], rawAcc[2] - g[2] }; } Now that values I'm getting are: quaternion= [0] 0.048809517 [1] -0.4581384 [2] 0.8866772 [3] 0.03911991 rawAccleration (now in g I hope); [0] -0.1248 [1] 0.038999997 [2] -0.9906 dynamic acceleration= [0] -0.0023987591 [1] 0.014349561 [2] 0.0015745759 reply
https://answers.launchpad.net/freeimu/+question/178946 reply
MPU6050 DMP
Submitted by fabian (not verified) on Fri, 2012-10-26 21:47.
Hi Fabio, I was curious if you've tried using the DMP of the MPU6050 directly? I was wondering if you'd get better fusion of the acc, gyro, mag that way. Or perhaps both DMP and Mahony's DCM? Thanks! reply
MPU9150
Submitted by fabian (not verified) on Sat, 2012-10-27 19:23.
Actually, I just realized that the MPU6050 is not capable of fusing data from an external magno. Lame, bad marketing. But the 9150 should be capable of doing that and it has a magno integrated as well. So I'm hoping their DMP can do some pretty stable fusion (temperature bias integrated too!) Do you have any plans to integrate MPU9150 into a v5 FreeIMU? I'd love to get one ASAP.
www.varesano.net/projects/hardware/FreeIMU 18/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
Thanks! reply
I haven't been able to source the MPU9150 anywhere yet.. if you see it around let me know. Personally, I'm not a big fan of DMP.. slow and obscure.. the algorithms used on the FreeIMU are better and allows you to reach much faster frequencies.. I guess the DMP is phones/tablets stuff for lazy programmers. reply
True. The only thing I'm concerned is how the variation in temperature is going to affect the sensors readings. I thought the DMP would take that into the account. Or is it the other way around and the raw data is already adjusted for temperature variation? BTW, I just got the FreeIMU v403 three days ago, worked right out of the box, love it. reply
Thanks, we appreciate it. Sensor biases are affected by temperature.. so when you calibrate at say 20 deg and use the sensor at 35 deg, you will see that it will get mostly uncalibrated. We worked a bit on this a lot of time ago, but that code never went into the FreeIMU library.. if you wanna have a look see http://code.google.com/p/itg3200driver/issues/detail?id=9 reply
Hi there. I was just checking out the schematics of the 0.4.1 IMU and I don't see any sign of pullup resistors on the MPU6050 AUX I2C for the Mag. Does the MPU have pullups built in? reply
Pullups are not required for tha aux i2c of the mpu. See it's datasheet. reply
www.varesano.net/projects/hardware/FreeIMU
19/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
Hello fabio, I'm interested in your second video (FreeIMU v0.1 and 0.2:) from 7:23 where you talk about first person kinda game :). Maybe you have a sample code of it and could share it with us? Or maybe you know some webpages that writes something about it, how to look around in the virtual environment using sensor data? Thank You in advance By the way your blog gives me inspiration, keep up the good work Regards, Edgaras reply
Check this out http://magma-software.blogspot.it/ they are using FreeIMU to augment a helmet screen. That software I showed sucks pretty much.. so I'm not going to publish but if you really want it just get in touch by mail and I'll send you a copy. reply
Acceleration in g's
Submitted by tussh13 (not verified) on Tue, 2012-10-23 22:00.
I want to get acceleration in g's from my free IMU ie dynamic acceleration...pointers? reply
On the repository, you have calibration code which will allow you to return data in G by default. Then, you simply have to do this http://www.varesano.net/blog/fabio/simple-gravitycompensation-9-dom-imus reply
Dear Fabio, Firstly, i admire your excellent work!! Secondly, i was wondering how or when to download your latest library(until rev.15) from launchpad.net? (http://bazaar.launchpad.net/~fabio-varesano/freeimu/trunk/files) Last, is the 9DOF IMU you deliver really drift-free @ all axes after calibration? We want to accurately measure roll-angles for a duration of 8 hours non stop. with kind regards, Ronnie (Netherlands)
www.varesano.net/projects/hardware/FreeIMU 20/22
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
reply
Ops Ronnie, sorry I lost your message! Some days ago I updated the downloadable library from this page so there's no need to download the library from bzr currently. However, if you want to do this in the future, you have to install bzr for your operating system. The only angle which may be affected by drift is yaw, pitch and roll aren't. With a properly calibrated IMU, I'm able to get very stable estimation with a drift below 2 degrees on yaw. See this video. reply
next
last
E-mail: *
The content of this field is kept private and will not be shown publicly.
Your website:
If you have a personal or company website insert its address in the form http://www.example.com/ .
Comment Title:
Comment: *
Web page addresses and e-mail addresses turn into links automatically. Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <pre> <small> <del> <img> <h2> <h3> <h4> <b> <video> <sub> <sup> Lines and paragraphs break automatically. Images can be added to this post. You may use [inline:xx] tags to display uploaded files or images inline. You may insert videos with [video:URL] Each email address will be obfuscated in a human readable fashion or (if JavaScript is enabled) replaced with a spamproof clickable link.
23/07/13
FreeIMU: an Open Hardware Framework for Orientation and Motion Sensing | Varesano.net
Replies to my comment
www.varesano.net/projects/hardware/FreeIMU
22/22