Thursday, March 15, 2012

Rasberry PI for PI day

The Raspberry Pi is causing quite a stir on the streets.  With a built in Graphics Processing unit... which I suspect can be used for video processing... this $25.00 board is capable of 24 GFLOPS.

Microchip has a nice product in the PIC32, but the performance pales in comparison. Futher, the PIC32 development systems cost far more and offer far less in speed performance.

I have not looked at the power per flop usage of the two, but, it is  clear that for serious robotics... trying to tap into vision, SLAM, and my favorite- Legged Robots- we need a little more ump than what the PIC32 currently offers.

More critically, the ARM architecture is what Cell phone are made from. It is what students in college want to learn about. However, traditional hands-on microprocessor courses focus on PICs, ATMEL processors with rather anemic processing power.

Student: "Heh Dr. Lewis, are you going to teach us how to build a cell phone?"
Dr. T: "er.. not in this class.. ah... no.."
But now, with this board, we have the guts of a system that could be expanded into a pretty usable almost phone like device. Especially if you go on a shopping spree at SparkFun and check out the cool bits and pieces they have.

While I am a huge fan of microchip, I am frustrated by the fact that it is difficult to run Linux on this processors. The Rasberry has a linux distro, and very importantly comes with nice programming languages. Languages like the language of choice for beginning roboticists: Python.

Python is a very elegant scripting language. (I can't believe I am saying this. On my first encounter with Python, I found it unbelievably frustrating and draconian in its indentation policy)
You type, and you get results instantly. What can be more rewarding! Its like being back in the old days of Lisp. Programming is actually fun and incredibly productive.

With such a huge about of code available.  I feel like Trinity in the Matrix in the famous Helicopter scene:

Neo:  "can you fly that thing? 
Trinity: "not yet, Tank, I need a pilot program for a B 212 helicopter. Hurry!"

Trinity's eye flutter, for a moment then

Trinity: "let's go"

That's pretty much my experience with using python.

Me thinking : "I need a elegant machine learning modules that is easy to use."

On my Mac it is as easy as :
port search learn
I get a bunch of results and then select one promising module:
port install py27-scikits-learn 
for my version of python and in minutes I have a naive Bayesian classier running.

Need code to do voice reco on my mac using google voice? Bam! Within 15 minutes world class speech reco is up and running.

Need vision, OpenCv has great python binding.... (Ok, there are a few tricks to building it so that it runs fast... but the standard mac port build is pretty darn good.

So, what does this have to do with the Rasberry?

Here is my vision of the future of Robotic Education:

Rasberry+Mobile Platform+ Camera+Python = Fast Fun and Effective learning.

If you want to dig deeper into the inner working of the platforms, feel free to tear it appart. No worries, its only $25.00!

Yes, yes, there have been Panda boards with ARMs, Beagle Boards, BeagleBone boards, but when you look at the cost of those platforms, it is out of reach for many state schools and high schools.

In my minds eye I see a $50.00 robot kit with awe inspiring processing power, Matrix like programmability doing real, hardcore robotics tasks.

IMHO, this board will take the world by storm.

-Dr T

No comments:

Post a Comment