One of the best decisions we made was basing our autopilot system on Arduino (credit goes to Jordi for spotting its potential so early and selling me on it). The engineers all sniffed at it, complaining that it was just an 8-bit processor running at 16Mhz and could never compete with 32-bit ARM processors running at 70Mhz and faster. But what Jordi spotted was something more: the Atmel chips are RISC processors and very effecient, an autopilot is not actually a very computationally intensive task, and most importantly, it's not about "feeds and speeds", it's about community, which Arduino attracts by being cheap, open and very easy to use.
Arduino has won the community competition hands down. The chart above is from the latest status post, and it shows more than 750,000 monthly vistors to the website and nearly 5 million monthly page views. These figures continue to grow at 100% per year.
Community brings tens of thousands of smart people around a platform, and many hands make light work. The amount of code and libraries out there that can be used for free are staggering and there's little need to reinvent the wheel. What basing the ArduPilot line on Arduino has meant is that we're not just using a great technology platform; we're part of a movement. That means not just great tools and thousands of available developers, but also a "cool factor", that really helps with marketing and adoption. In short, the success of the Arduino revolution is thrilling to watch, not least because it means we've hitched our wagon to the right horse!
Comments
":even though the current chips can run at 20Mhz or faster."
only the smallest AVR run that fast.
Long term, the move to 32 bits and an RTOS will make this codebase future-proof. Thus the importance of Roberto's work.
@Mark,
wiht standard Arduino is impossible to understand exactly where is the error ... you have the number of line in .cpp file that is the join of all pde file .. :( So is not so good for debug complex code . With Eclipse instead you have exact point of error with full description and with OpenOCD you can debug it step by step in realtime using jtag connector.
@John,
in MP32 IDE we decide to use two kind of approach Eclipse ide for professional application that support Jtag debug ,too and a standard Arduino IDE as editor with a ARM Gcc compiler that is the same used on Eclipse ide , so is possible migrate from one enviroment to the other.With Eclipse is available a ChibiOS/RT as advanced OS.
Thi is the status of task in MP32 community http://www.virtualrobotix.com/forum/topics/olimex-jtag-eclipse-openocd
Best
Roberto
I am stuck troubleshooting using Ardrino IDE.. Here is the error.
ArduPilotMega_2_1:-1: error: expected constructor, destructor, or type conversion before 'void'
Now how do I find which 'void' it could be in any function. Help!
In starting stage of developing Arduino could be a good choose , but after some development became a limit.
infact the code is around up 100 kbyte now and standar Arduino UNO have only 32 kbyte of flash .. only
So now with Multipilot32 that use STM32 is possible to continue the development of AutoPilot Project on ARM M3 at 72 Mhz with 512 Kbyte of Flash and 64 kbyte ram.
Sure Arduino have a good and huge community and good Brand , the arduino core team are doing a great job :)
What was possible to do on AVR platform are doing.Is not only a problem of speed but also on the bus interface for example. So if you put more device on i2c for example it freeze ... i doing a lot of test on this limit but i cannot solve it . So in my new design i use a micro with 2 i2c bus one for ESC and other for sensor.
So really the DIYDrones developer don't use only Arduino framework to solve the problem of performance on imu , but develop a lot of good library that using directly the native code of AVR processor. Don't forget AVR Freaks community that was usefull for this years on development on AVR micro processor. http://www.avrfreaks.net
Best
Roberto
Exactly this is why I was amazed abotu some other autopilot claiming 140MIPS? then extra 140 MIPS for another processor just fo rthe IMU? this is something like 280.
AVR 16MHz is around 14-15.5 MIPS I estimate. So you can have as many MIPS as you want. You can have also MS Word opened on quad core 4GHz machine - the programmers become careless so easily, no matter how much you have, any processing power can be wasted easily.
Space shuttle is maybe 8x motorola 68000. But with less redundance, you could fly space shuttle on 2-3 atmegas.
1 atmega should be enough for anything less than cruise missile, if you got Engineers.
Most autopilots are RABBIT3000 which is only overmegahertzed Zilog80 with extra peripherals.
-
1
-
2
of 2 Next