Quadcopter Presentation
An automated ignite style presentation that sends commands to
a connected Parrot AR Drone via socket.io direct from the
browser.
setup and run https://github.com/bkw/node-dronestream on port
3000 at the same time and you'll get a video stream from the
drone in slide 15
I knew the AR Drone sounded familiar. When I first saw it, I was concerned about the only flying controls being a mobile device (and not a traditional remote). That said, it looks like a ton of fun and the extensibility options are endless.
Still, my personal preference would be a standard quadcopter or plane with an APM [1]. If only I can free up some spending money...
This is so awesome. A handful of other Stanford students and I entered a Node+AR Drone hackathon in SF[1] a while back and we had a blast.
We had so much fun, in fact, that we integrated AR Drone hacking into the Robotics Club. This started as a few friends messing with 2 drones and its grown to the point where I'm actually teaching NodeJS, Javascript+Coffeescript, a bit of Unix, and various algorithms to 35+ students fresh out of Stanford's Intro to Computer Science course! (Its still mostly the basics, but I've been writing up & posting lesson info here http://drones.johnback.us/).
I'm very excited with what the various AR Drone communities have created so far. The popular Node library[2], a Go implementation (in progress) by the same author[3], and this Clojure option[4] are all amazing avenues for teaching interesting CS languages (that remain largely ignored in formal academics) to students new to CS.
The AR Drone (v1) I had was great and I miss it everyday. I hope they worked out the major kinks in the v2 revision. I ended up returning mine not by choice. I sent it back to the store because the motherboard failed and they sent me store credit instead. I guess too many failures and too many returns made them get out the drone selling business.
The SDK was fairly well equipped and the examples were well documented (this was iOS 3, GB, and C# examples). I don't know how they did it but they have the starter ready-to-run drone market to themselves. All the competitors I've looked at are 2-3x the price. Even the link the above is $179 just for the MB; excluding sensors, motors, batteries, cameras, and crossframe.
But the programming done here is very imperative and procedural in nature. Not to say it can't or shouldn't be done. It just doesn't seem like a very good case for using a functional programming language, although the title seems to imply that. Anybody attempting to learn Clojure this way is probably missing out on the actual merits of functional programming.
I think this demonstrates how Clojure lends itself to situations which are all about side-effects. And in particular demonstrates highly interactive REPL-based development.
I had never really looked at Clojure before this post and when I saw the code I almost vomited in my mouth from how ugly it is. Then I thought "that can't be what Clojure looks like", Google proved me wrong, and I cried a little bit for all the programmers stuck using this ugly syntax.
My initial reaction to Clojure was similar discomfort because it was so different from most other languages. Once I had more practice, learned more about why it is written the way it is, and how to write it clearly, I fell in love.
I didn't down vote you, but if I were to, it would be because your comment sounded like discomfort stemming from ignorance. On top of ignorance, you offered your pity for people who are "stuck" using this language, when it's actually almost always a well-informed choice.
You're getting downloaded because your post was highly subjective (ugly? Looks like good-old Scheme to me, son), childish (threw up in your mouth? Really? Because you use ULTRA LEET $LANGUAGE instead?) and added precisely 0 value to the discussion.
If no one raises a counter point, maybe the downvotes are not really about disagreeing with the point you made? Maybe it's more like, people don't like your tone, or they don't think that fun post about fun with AR drones is the time and place for dealing with the issue of Clojure syntax and aesthetics.
My voice controlled AR.Drone: http://www.youtube.com/watch?v=uhBa11gdbeU