

The Joy of Flying AR Drones with Clojure - gigasquid
http://gigasquidsoftware.com/wordpress/?p=645

======
jjwiseman
It's not clojure, but this is fun: <https://github.com/andrew/quadcopter-
presentation>

    
    
      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
    

And here's a simulated AR.Drone for voxeljs: <https://github.com/shama/voxel-
drone>

My voice controlled AR.Drone: <http://www.youtube.com/watch?v=uhBa11gdbeU>

------
ssfermoy
This is great I've been looking for an excuse to learn Clojure and I have
access to the same model drone.

As an aside this talk is amazing, even more so if you've had any exposure to
control theory.

<http://www.youtube.com/watch?v=C4IJXAVXgIo>

(if you get bored the best bit is at 20min)

~~~
vdm
That's a great talk thanks for the link.

------
ajtaylor
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...

[1] [http://store.diydrones.com/APM_2_5_Not_Assembled_p/br-
apmpwr...](http://store.diydrones.com/APM_2_5_Not_Assembled_p/br-
apmpwrkt2.htm)

------
asimjalis
I kept procrastinating on working on AR-Drone because I didn’t want to do it
in JavaScript. This is great.

------
jbackus
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.

[1] <http://dronegames.co/>

[2] <https://github.com/felixge/node-ar-drone>

[3] <https://github.com/felixge/ardrone>

[4] <https://github.com/gigasquid/clj-drone>

------
yardie
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.

------
galaktor
It does look fun.

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.

~~~
calibraxis
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.

------
mosselman
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.

~~~
mosselman
I don't feel bad about getting down voted. But one could at least raise a
counter point. In all honesty, this syntax is very ugly isn't it?

It reminds me of the JESS rule engine. Same kind of principle.

~~~
Garoof
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.

~~~
mosselman
You raise a valid point. My opinion belonged more in a Clojure based thread.

~~~
mathrawka
The downvotes mean that your opinion is valued, but the way you present your
opinion can be improved.

