Posted by Chris Anderson on September 22, 2009 at 12:36pm
At last, the long-awaited ArduIMU is available! You can buy the hardware here (the first batch sold out within minutes, but he's making more quickly). The software is in beta, and you can find it here. It is, as promised, $99, making it the first sub-$100 AHRS in the world!
Proper documentation is coming soon, but here are the highlights:
Features
-3 Axis Accelerometer
-3 Axis Gyroscopes
-Arduino Compatible (Atmega328 onboard)
-Source Code included and Open Source!
-Power LED (Green)
-Status LEDs (Red, Blue, Yellow)
-SPI port available for more sensors.
-GPS port (uBlox ready!)
-Code based on Bill Premerlani's Direction Cosine Matrix
This is actually considered a full Attitude Heading Reference System, because it is IMU hardware plus the software to interpret the sensor readings and convert them into absolute attitude and heading information. The output is a serial ASCII string with raw sensor values and the DCM matrix values. You would use this with an autopilot board to convert those matrix values into commands for the your control surfaces.
The board works without the GPS module, but in that case the yaw readings are unreliable. If you add the GPS, the yaw is corrected. We will be releasing a magnetometer module to do the same thing indoors.
Forgot the CD player isolator photo, the CD isolators are easier to work with but are stiffer than the Japanese bushing which are so soft they are sticky, which makes them hard to work with! just a thought...
I do not plan on purchasing a IMU for quite some time but am following the thread so when the time comes I will not be to far behind on my reading!
I recently had to isolate a sensor board from vibrations and used silicon rubber bands as a test and then utilized silicon bushings from japan for final design/comparison. The bands did a better job but the bushings were easier to incorporate into the final enclosure. The bands were directly attached to the board and the bushings were attached to a adapter frame. I also "extracted" silicon bushings from cheap CD player mechanisms and used those, which worked almost as good as the Japan isolators. Both implementations could be applied perhaps with out to much difficult since the IMU is so small.
I'll try to explain the main differences as we see them:
--Development environment: This is Arduino vs the PIC dev toolchain. Arduino is cross-platform (PC, Mac and Linux) and very easy to use, and it only requires a FTDI cable rather than a whole PIC programmer. There are limitations that come with Arduino, mostly that we're limited to the processor that the Arduino project is based on, but the open source community, ease of use and huge and fast-growing Arduino ecosytem that we're part of more than made up for it, we thought. The dsPIC toolchain is very powerful, but more designed for pros and can be hard to learn and configure for newbies.
--Hardware: The UAVDevBoard was originally designed as just that--a dev board--so it doesn't have a mulitplexer/failsafe circuit, differential pressure sensor or easy wireless telemetry addition. It's a testament to Bill's code that it hasn't really needed that to date--his code doesn't crash and he's been able to do a lot without an airspeed sensor. But as it becomes a full-fledged autopilot, people may start to want them. Otherwise, the UAVDevBoard and the current ArduPilot are roughly similar in I/O and other basic functionality.
ArduPilot Mega, on the other hand, will be based on the ArduinoMega plaftorm. Along with a lot more I/O pins (so it can support more sensors and RC channels), it has four serial ports. So that will allow two-way wireless communications and other goodies that will significantly enhance the autopilot functionality.
--Supporting tools: ArduPilot has a ground station (both hardware and software) and a configuration/waypoint entry utility, which makes it more of an autopilot system. No doubt the UAVDevBoard will get those eventually (I wouldn't be surprised if we end up working with Bill to use ours) but it doesn't have them yet.
Bottom line: Right now if you want an open source IMU-based autopilot, the UAVDevBoard (which is about to get a better name, BTW) is by far the best choice in the world. It's cheap, well-tested and very powerful. There's nothing like it in the marketplace at anything like this price point. When ArduPilot Mega comes out around the end of the year, it will probably be a better choice for most people, for the reasons stated above. But don't expect the UAVDevBoard to remain static, either. We and Bill are working closely on tech development, and I wouldn't be surprised to see the gap between the two continue to narrow. Who knows? Maybe someday we'll merge them ;-)
Jordi and Bill,
Could you please contrast the UAVDevboard with ArduMega? It appears that the UAVDevBoard already has the abilities that we are looking for - IMU+autopilot with servo drive. The price seems to be similar when all the sensors are counted in. I don't know if the UAVDevboard has the multiplexor in hardware between RC manual in and autopilot out - could you comment please. Also, I don't know what the development environment (IDE) is like for the UAVDevboard - I love the simplicity of the Arduino with C++. Also, doesn't the UAVDevboard need an airspeed pitot tube system as well?
I greatly appreciate what you all are doing. I helped program the autopilot for the 777 airliner flight simulation at Boeing in Seattle. We had large teams of well paid engineers doing this along with Honeywell's teams for the real LRU. You guys are doing a fantastic job as a DIY project and the result is very exciting!
I finished assembling the ArduIMU a few minutes ago, powered it up using the FTDI cable from the DIYDrones store, ran the LabView groundtest.vi, all is working well.
Great job Jordi and Bill, especially for porting DCM to Arduino/Attmega using floating point.
Ohh i forgot to mention, because we don't have much power to sample the gyros, we are using a big low pass filter. Designed by Bill. Also the ADC is not the regular arduino library's. I've created my own functions using interrupts to increase performance using the fastest possible sample rate and an extra software low pass filters. Works just great!
Comments
The FTDI port is serial. Just plug the Xbee wires into that, just like ArduPilot.
Why did you not incorporate serial, so xbee could be hooked up etc...Or am I missing it on the board design.
-Peter
I do not plan on purchasing a IMU for quite some time but am following the thread so when the time comes I will not be to far behind on my reading!
I recently had to isolate a sensor board from vibrations and used silicon rubber bands as a test and then utilized silicon bushings from japan for final design/comparison. The bands did a better job but the bushings were easier to incorporate into the final enclosure. The bands were directly attached to the board and the bushings were attached to a adapter frame. I also "extracted" silicon bushings from cheap CD player mechanisms and used those, which worked almost as good as the Japan isolators. Both implementations could be applied perhaps with out to much difficult since the IMU is so small.
--Development environment: This is Arduino vs the PIC dev toolchain. Arduino is cross-platform (PC, Mac and Linux) and very easy to use, and it only requires a FTDI cable rather than a whole PIC programmer. There are limitations that come with Arduino, mostly that we're limited to the processor that the Arduino project is based on, but the open source community, ease of use and huge and fast-growing Arduino ecosytem that we're part of more than made up for it, we thought. The dsPIC toolchain is very powerful, but more designed for pros and can be hard to learn and configure for newbies.
--Hardware: The UAVDevBoard was originally designed as just that--a dev board--so it doesn't have a mulitplexer/failsafe circuit, differential pressure sensor or easy wireless telemetry addition. It's a testament to Bill's code that it hasn't really needed that to date--his code doesn't crash and he's been able to do a lot without an airspeed sensor. But as it becomes a full-fledged autopilot, people may start to want them. Otherwise, the UAVDevBoard and the current ArduPilot are roughly similar in I/O and other basic functionality.
ArduPilot Mega, on the other hand, will be based on the ArduinoMega plaftorm. Along with a lot more I/O pins (so it can support more sensors and RC channels), it has four serial ports. So that will allow two-way wireless communications and other goodies that will significantly enhance the autopilot functionality.
--Supporting tools: ArduPilot has a ground station (both hardware and software) and a configuration/waypoint entry utility, which makes it more of an autopilot system. No doubt the UAVDevBoard will get those eventually (I wouldn't be surprised if we end up working with Bill to use ours) but it doesn't have them yet.
Bottom line: Right now if you want an open source IMU-based autopilot, the UAVDevBoard (which is about to get a better name, BTW) is by far the best choice in the world. It's cheap, well-tested and very powerful. There's nothing like it in the marketplace at anything like this price point. When ArduPilot Mega comes out around the end of the year, it will probably be a better choice for most people, for the reasons stated above. But don't expect the UAVDevBoard to remain static, either. We and Bill are working closely on tech development, and I wouldn't be surprised to see the gap between the two continue to narrow. Who knows? Maybe someday we'll merge them ;-)
Could you please contrast the UAVDevboard with ArduMega? It appears that the UAVDevBoard already has the abilities that we are looking for - IMU+autopilot with servo drive. The price seems to be similar when all the sensors are counted in. I don't know if the UAVDevboard has the multiplexor in hardware between RC manual in and autopilot out - could you comment please. Also, I don't know what the development environment (IDE) is like for the UAVDevboard - I love the simplicity of the Arduino with C++. Also, doesn't the UAVDevboard need an airspeed pitot tube system as well?
I greatly appreciate what you all are doing. I helped program the autopilot for the 777 airliner flight simulation at Boeing in Seattle. We had large teams of well paid engineers doing this along with Honeywell's teams for the real LRU. You guys are doing a fantastic job as a DIY project and the result is very exciting!
Great job Jordi and Bill, especially for porting DCM to Arduino/Attmega using floating point.