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.