The Qwerk is a robotic controller made by Charmed Labs, a spinoff of Carnegie Mellon.

It can control beaucoup motors and sensors and has USB, Ethernet, and serial ports for communicating with just about anything. It is cheap and durable. It can be run over the Internet by the Telepresence Robot Kit, TeRK, which is another Carnegie Mellon project.

It is a little Linux computer with a big grasp. I bought three, and now it is no longer being supported.
Actually, VEX has bought it and is spiffing it up to be the star controller of its new line of robotic parts, VEX PRO.

But the VEX PRO controller hasn’t come out yet, and I still have three Qwerks –– and a need to use them.
So we are going to do some technological archeology.
Our resident Linux wizard is focussed on getting the ARM gcc keychain built on Ubuntu 10. Everyone else will concentrate on programming the Qwerk. The Qwerk developers were committed to learning by doing. Which is my polite way of saying that the Qwerk is poorly documented – its developers believe that you should just meditate on sample code and the Zen of Qwerk will be with you. Or as Andrew Kirillov puts it:
If you open a Qwerk box, you will find there quite short note with information on how to start. Basically it says: “Visit Qwerk Start page for information on how to get started”. That is all. And the Qwerk board in the box of course …
As if things weren’t obscure enough, the Qwerk is programmed in C++ but TeRK runs on Java. Fortunately, to run the Qwerk autonomously, we only need to use C++ with libqwerk. We will begin by mastering the Qwerk motor commands in libqwerk and try to pick up the C++ that we need along the way. I have put the files for the flower project on the PBworks wiki, as well as the source files and their text version for us to comment.

I will gradually add the relevant motor control files from libqwerk for a similar exercise in code exegesis and subsequent commenting.

