incomplete power hogs that run very slowly when real life sensors are included?
The ability to program your project in Python. Even better, it would be nice to program in Octave!
adafruit wrote: Some of them also have the advantages of being mass produced on a scale that yields end-user costs that would be hard to duplicate with a more specialized platform.
Octave or Matlab, at least Python with Numpy
westfw wrote:can you place a lower limit on the amount of RAM needed to do the sorts of calculations you had in mind? Just from a data array point of view. When you start talking about languages with built-in matrix and vector support, I think "large amounts of data."
westfw wrote:It would be EXTREMELY useful to eliminate, say, any board with less than 640k of RAM, for example ("640k isn't enough for anyone to do anything." (someone younger than Bill Gates))
K = Pp * H.T * linalg.inv(H * Pp * H.T + R);
in terms of ram, assuming each term in the K equation is a 6x6 matrix (36 elements, 8 bytes per element, 288 RAM), the total ram required is 1,728 RAM (based on 6 terms, 288 RAM each) - tiny compared to Arduino Due's 96,000 RAM.
westfw wrote:K = Pp * H.T * linalg.inv(H * Pp * H.T + R);
I'm not a C++ programmer, but I'm pretty sure you couple implement that syntax in C++ as well. Classes, types, operator overloading...
randomvibe wrote:Can python or Octave fit on the Arduino Due? I can't say for sure, but I know the leaflabs people successfully ran a watered-down version of Python called pyMite on their Maple board (32bit, 20KB RAM, 120KB flash). pyMite does not support matrix math, but I can't imagine that matrix addition, multiplication, transpose and division would require much more flash.
port -y install octave-devel +atlas+docs | grep ^For | wc
"one statement of my program ate through 2k of RAM and my program is xxx bytes long."
BruceF wrote:I'm not much of a C++ programmer, but even I have implemented that syntax in C++.
randomvibe wrote:Frustrating by all the new single board computers boasting power, speed, RAM, awards, yet prove to be incomplete power hogs that run very slowly when real life sensors are included? Frustrated by poor documentation and myriad of scattered wiki links and forums? The usual response to this criticism is education - you'll learn. I think the main education has been how to sell and hype. Maybe they'll be knighted next year.
That said, one thing very enticing with new boards is the ability to program your project in Python. Even better, it would be nice to program in Octave! Octave is the GNU version of basic Matlab, arguably the best language for engineering and feedback control systems - absolutely perfect for robotics. Clean concise programming and vector math! Every engineering student and professional knows what I'm talking about.
I'm not an adafruit representative by any means. I am a customer impressed by Adafruit's ability to pick the right component or sensor and integrate it with a simple to use breakout board at a very reasonable price, cheaper than sparkfun. Now adafruit claims to be engineer, but I've mostly seen selling and hacking. So here's an engineering challenge: design the Adaboard -
The staff here was really nice in answering you
I'm sure it can also be implemented in fortran, pascal, basic and even assembly language
Matrix A(3,3), B(3,3), C(3,3);
A = B * C; // matrix multiplication.
K = Pp * ~H * !(H * Pp * ~H + R);
BruceF wrote:So maybe you get, say, a simple Kalman-based sensor fusion IMU running on the Due in "Octave lite" - that's great, but it doesn't mean you've created a platform for merging ease of use, numerical methods and embedded computing. Which is what it sounds to me like you're aiming for here.
BruceF wrote:...the Due is a great uC platform, but it doesn't give you the headroom I think you'd need for a comfortable Octave (or numerical Python) environment. You may be able to get *something* to run but as westfw points out, with 2k RAM here and 2k there, it wouldn't take long before you run out of space.