End of Arduino?

After watching the amazing Bill Nesbitt AutoiQuad videos (http://diydrones.com/xn/detail/705844%3ABlogPost%3A467650)  I have to wonder if we are hitting a wall with our current hardware.These videos seem to show far more precision than any version of Arduino software has ever had.  Apparently, part of the reason the AutoQuad can do extreme position hold, fast mission with precision waypoints, spin in place, etc. (in addition to some top-notch code!) is the much higher processing power now available.

Is it likely the current Arduino can ever approach this? Is his hardware a lot more expensive?

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Developer

    The way I see it there isn't much left in the APM code that would qualify as Arduino "compatible". The code use direct hardware access not supported by native Arduino commands and has grown to much for any average Joe with some Arduino programming experience to just jump in and start programming the core stuff.

    So what is left is the simple programming IDE and bootloader, making it easy for average "Joe" to make small changes like adding a new servo mix and such.

    Looking at the rate of expansion it is only a matter of time before a new platform is needed. As the code grows even more there will be need for a underlying management system (possibly a RTOS) to keep the code from getting convoluted and buggy.

    In the future there might be an ArduPilot operating system or kernel with core functionality like communication, IMU, servo control, telemetry, etc. And a easy to use IDE and library for accessing these core functions in a sensible way. A Arduino replacement made from scratch for autopilot system if you like. That way you keep the Arduino mentality but is free to change and add hardware as needed.

  • Hi John,

    I was working with ATMEGA's a.s.o. a couple of years and then had to move to an Atmel Arm7, later to a Cortex M3. At first I tried to switch on a LED and read out an input connected with a switch. With an ATMEGA simple and easy work.

    Hours later I became aware that I've to start a Clock for the PIO to let the Inputs refresh. Shii...  :)

    So for starting with such an processor there is a need to learn something new.

    On the other side there are some nice function, an 8 bit cpu doesn't have:

    E.G.: I can link my AD Converter to an DMA channel. So the sensor data will automatically sampled and written directly to the RAM without disturbing the CPU. After some time I can decide to have a look to the data and work with them.

     

    So, there are some nice gadgets waiting for us all with the 32 CPU's, but the most of us haven't the time to learn all the new needed things to get the CPU to work and let it make what we want...

    And this is the moment Arduino  enters the stage. You don't have to understand all the library code at first. You can still work with the sketchcode and improve the Arducopter functionality. And when there is some time you can learn something  new how to manage interrupts or AD conversion in the libaries or in the hardware code.

     

    Resume: I think 32 Bit is not the end of Arduino.. Arduino is needed more then before, due to the complexity of comming processors.

     

  •    Multiprocessor hardware and specialized extensions will no doubt debut, morph and expand horizons of what is possible. A concert of functionality seems likely. I don't think simply more processing power in the embedded world is the best choice because it relies on parts external to it.  Just as some processors have been tweaked to architecturally pattern programming language constructs, extending portions of processor architecture to suit real time applications is here.  The code, more nimble than a new chip arrival makes that happen despite chip limits. 

      Incidentally, Bill Premerlani 's (dsPIC30F4011) board is a 16 bit processor, fairly low cost, supported by free C and assembly programming languages and an assortment of third party tools. Periodically, a newer version of this SMT board emerges improving sensor utility. 

     

     

     

  • Arduino is the development environment and language. It let's pretty much anyone grab a board and get cracking with some experiments. Arduino has always used the Atmel range of processors however it has yet to reach the 32-bit range (soon to be fixed though).
    The only limit we are currently hitting is the space limit for the code.

    For accuracy you need good sensors and fast algorithms.
    276MHz for Autoquad, 200MHz for ACM2. According to ARM the cortex M3 processes 3x more than a high-performance 16-bit uC and we are using an 8-bit uC so APM code is clearly capable to be as fast as this.
    Bills optimisation will help tune the algorithms to his specific frame too increasing accuracy.

    Using more powerful processors means you can be lazy in your coding and still get good results which is why they are chosen for experimental purposes (bang through basics then playtime). Consider the highly optimised APM libraries and the ACM code running on a saucily powerful ARM uC and you have Multipilot32.

    Are we approaching it? Easily.
    Are 32-bit setups expensive? Shouldn't be but we have to build them first.
    Is Arduino near it's end? No, not by a LONG way.
  • Hi John,

     

    You must remeber that Bill's system is very special. As I understand he does a testflight to collect data, and then a simulation in his multicore pc to calculate his special filter parameter, then back to machine and so on. This is a lot of special work.

    I started to port his AutoQuad 5 Board some months ago but became aware that I won't be able to fly my machine with his code because it's a special design to his configuration. Jason's Code can be easily adapted to a lot of machines 'only' by changing the PID values (what can be hard work too :) 

    The improvements of the ArduCopter code in the last months are exciting (thanks jason)

    and by the way the ArduCopter Arduino code can run in 8 Bit and 32 Bit systems, so I think it's still the best road to an universal system.

     

  • 3D Robotics

    Don't forget that Arduino has a roadmap, too. 32-bit ARM-based version are in its near future. Arduini is a software architecture that runs on many hardware platforms, and there will be high-end versions soon. APM will be a big part of that.

  • Developer

    In my opinion no. If you break down what Bill is doing, an 8bit micro at 16 Mhz can accomplish it.

    He just has great control laws and a finely tuned quad.

    Jason

     

This reply was deleted.

Activity