I wrote to the developers and they can support cross-compiling into Arduino board, and I believe they rare not compute intensive for our purposes.
100% OPEN SOURCE + GUI visual programming
There are several more when I hear from the developers I will post here.
would that run on a beaglebone?
what do you think about cpu performance needed?
I will ask the developers, but I do not see any reason since they must have made similar applications cross-compile.
Performance: If we use the CMAC hash-table based model for the evaluation of the NN then I fathom it will run real-time for the copters we are flying. Since most of the them hashing is done addressing memory little computation.
But to be on the safe side, I will make a small sample code working to demonstrate.
The example of I have in mind is to balance a stick in the middle, if that is real-time I guesstimate the quad copter code will be 8 times more compute intensive.
I suspect the worst case scenario one order of magnitude. But we need to code and experiment for sure
I get back to you on that soon
> At over 1.5 billion Dhrystone operations per second and vector floating point arithmetic operations, the BeagleBone is capable of not just interfacing to all of your robotics motor drivers ...
At 1.5 billion operations a second and vector calc, I have a strong confidence it can balance the copter
Ok from the developers of this toolkit: (IF THINGS GOT ROLLING I DO NOT MIND SENDING THIS FELLOW SOME BOARDS but we need to make sure this is the right tool)
Core library FANN written C there is no dependency so most probably it works over beagble board
FANNTool isa GUI for FANN and main purpose is training of ANN
FANNTool requires a FLTK GUI library ( FLTK 1.1.10 )
FLTK also a cross-platform GUI
for Linux version OS over beagleborad, i think FannTool work.
but i dont try it because i have no beagle board :(
the fanntool is the reason to buy a beaglebone.
i am thinking of having a more powerfull cpu as assistant to the regular flightcontroller.
will try to organize one of these boards.
Let me play around more and I can work something out, if all works out with this tool I will send the developer of fanntool APM and Beagleboard to help us to understand how their tool should run.
I think in general it is good idea to have another powerful cpu to assist APM board, I can see many applications e.g. foraging requires serious calculations for a swarm of arducopters flying in formation.
Good idea, this is a very useful tool...
Here a source code of a basic example of multi-layer backpropagation neural network with bias terms and momentum which works on Arduino (tested on my APM board...). It is used to detect structure in time-series, which is presented to the network using a simple tapped delay-line memory. The program learns to predict future sunspot activity from historical data collected over the past three centuries. To avoid overfitting, the termination of the learning procedure is controlled by the so-called stopped training method.
The original C code from Karsten Kutza used for Prediction of the Annual Number of Sunspots is now re-writen for the Arduino board and I have tested it on my APM board.
Enjoy and good coding...
I will look at this very carefully, at first glance this code will run real-time on beaglebone and APM no problem. I assume even an order of magnitude more complexity still will be real-time on APM.
If and when ready, hope you teach me how to upload the code into the APM board and test.
So I am very happy with this development, it is along the ways my mind thinks.
Let's do some more due diligence, I do not mind hacking some code for arducopte.
My first most important application of NN is a safer take-off by arducopter for the beginners (like myself) who crashed the poor arducopter into piles of snow all over Ontario :), also a safer take-off indoors since no matter what I do I cannot take off without a drift by the eddies off the floor.
FANNTOOL does supervised-learning:
We need to see if that fits the needs of arducopter, I am certain it does, but again this is our homework before adopting this tool
Tutorials for FANNTOOL's learning:
From a couse taught at in Imperial College:
FANNTool is the GUI interface for:
It seems it does provide more than one layer NN