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.