Thanks for the amazingly detailed response John!

And here's some related news for good timing:
http://www.suasnews.com/2014/10/31767/linux-foundation-and-leading-technology-companies-launch-open-source-dronecode-project/.
I wonder how much of this is accessible via Clojure?


On 10/14/2014 01:08 PM, John Wiseman wrote:
> Hi, JPH.  I'm interested in clojure + drones too.  I'll try to describe the
> relevant parts of the current landscape as I see it.
>
> Unless you're writing your own firmware, at the moment most higher level
> drone programming is done with libraries that communicate with a remote
> drone, over a comms link:
>
>    - clj-drone <https://github.com/gigasquid/clj-drone>. The Clojure
>    library by Carin Meier/gigasquid that speaks the AR.Drone protocol.
>    Includes some computer vision (with OpenCV) and belief-oriented 
> programming.
>    - turboshrimp <https://github.com/wiseman/turboshrimp>.  My fork of
>    clj-drone.  Fewer dependencies (OpenCV is not required) and can run on
>    Android.  Focuses more on drone control/protocol without mixing in higher
>    level concepts like belief-oriented programming.  Supports receiving
>    telemetry data from AR.Drone, like altitude, speed, heading, GPS location,
>    onboard vision capabilities (marker identification), etc.
>    - mavjava
>    <https://github.com/geeksville/arduleader/tree/master/thirdparty>.  A
>    Java library that implements the MAVLink protocol, which is the currently
>    the leader in the "open drone communications protocol" category.  MAVLink
>    is spoken by a lot of different drone systems including APM
>    Autopilot/Arducopter/Arduplane <http://ardupilot.com/> by 3D Robotics
>    and PIXHAWK/PX4 <https://pixhawk.ethz.ch/> by ETH.  The AR.Drone
>    supports a subset of MAVLink.
>    - Drone API <http://dev.ardupilot.com/wiki/droneapi-tutorial/>.  This is
>    a Python library that speaks MAVLink but provides higher-level
>    functionality for management of waypoints, etc.  It's Python, but is
>    relevant because MAVLink is a rather low-level, somewhat annoying protocol
>    and this code will be useful to look at if you want to build higher level
>    abstractions on top of MAVLink.
>
> The AR.Drone is a fun platform because the API is easy, the drone itself
> has a lot of functionality (video, wifi, GPS) and can be flown indoors.  It
> usually just works. It has an ARM CPU running Linux and has USB, which
> makes it easy to cross-compile your own code, run it on-board, and
> interface to other hardware.  E.g. see these experiments with connecting a
> software defined radio to the drone so it can pick up aircraft
> transponders: Augmented Reality Display of Air Traffic for Drones
> <http://lemondronor.com/blog/indexphp/2013/5/augmented-reality-display-of-air-traffic-for-drones>
> and Cheap ADS-B on Amateur Drones
> <http://lemondronor.com/blog/indexphp/2013/4/cheap-ads-b-on-amateur-drones>.
> The AR.Drone is limited by wifi range and payload capability, and it is
> closed software and hardware.
>
> APM Autopilot is the current leader of open source drone hacking.  It runs
> on lots of different drone platforms (including the AR.Drone) and is open
> hardware and software.  The comms links are typically 1 km/line of sight,
> and there are a variety of payloads available.  The software is very
> capable, though it's not always stable.  The development process is
> maturing, but it still has a way to go (today's announcement of the
> creation of the Dronecode foundation <https://www.dronecode.org/about> is a
> good sign).  It uses the NuttX OS on really limited hardware (168 MHz
> Cortex M4F CPU w/ 256 KB RAM, compared to the AR.Drone's 1 GHz ARM Cortex
> A8  w/ 1 GB RAM), which is annoying, though they have just started
> experimenting with a port to Linux on a Beaglebone Black.  An example of
> some awesome hacking using APM is the search & rescue work done by
> CanberraUAV <http://canberrauav.org.au/2014-uav-challenge/>.
>
> The PX4FMU autopilot is by the same group that came up with the PX4
> hardware that APM Autopilot currently uses, and while it's probably not as
> mature as APM it seems to have a lot of potential.
>
> My current project is porting this demo I did last year of voice control of
> an AR.Drone, using Python running on a laptop, to clojure running on an
> Android phone: https://www.youtube.com/watch?v=uhBa11gdbeU
>
>
> John
>
>
>
>
>
> On Mon, Oct 13, 2014 at 8:20 PM, JPH <j...@hackworth.be> wrote:
>
>> I watched Carin Meier's great talk last year at OSCon on "The Joy of
>> flying robots with Clojure"
>> (http://www.youtube.com/watch?v=Ty9QDqV-_Ak&html5=1), and seen her work
>> on clj-drone (https://github.com/gigasquid), and have wanted a hackable
>> drone ever since.
>>
>> I'm now in a position to purchase one, and was wondering what the
>> options were if I wanted a programmable drone (ideally with Clojure).
>>
>> The Google namespace for "clojure drone" is dominated by clj-drone,
>> which is designed for AR Parrot (http://ardrone2.parrot.com/), but my
>> searches haven't found much else. Are there any / many alternatives to
>> AR Parrot if I want to program one in Clojure/Java?
>>
>> JPH
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to