I'm a Software Engineer at Honeywell, the Director of Software at Avelo Labs, and a Computer Science Ph.D. student at the University of New Mexico with the Moses Biological Computation Lab. My research is applying cutting edge concepts to flying robot swarms to study volcanic plumes. I've also worked on a variety of research from software architecture, evolutionary complex systems, and intelligent swarm robotics.
I'm also known for a variety of other things. I am an Open Water Scuba Diving Instructor with SSI and New Mexico Scuba Center. I enjoy contributing and collaborating on a handful of open source projects. I am an avid photographer and specialize in underwater photography.
We present methods for autonomous collaborative surveying of volcanic CO2 emissions using aerial robots. CO2 is a useful predictor of volcanic eruptions and an influential greenhouse gas. However, current CO2 mapping methods are hazardous and inefficient, as a result, only a small fraction of CO2 emitting volcanoes have been surveyed. We develop algorithms and a platform to measure volcanic CO2 emissions. The Dragonfly Unpiloted Aerial Vehicle (UAV) platform is capable of long-duration CO2 collection flights in harsh environments. We implement two survey algorithms on teams of Dragonfly robots and demonstrate that they effectively map gas emissions and locate the highest gas concentrations. Our experiments culminate in a successful field test of collaborative rasterization and gradient descent algorithms in a challenging real-world environment at the edge of the Valles Caldera supervolcano. Both algorithms treat multiple flocking UAVs as a distributed flexible instrument. Simultaneous sensing in multiple UAVs gives scientists greater confidence in estimates of gas concentrations and the locations of sources of those emissions. These methods are also applicable to a range of other airborne concentration mapping tasks, such as pipeline leak detection and contaminant localization.
In this review we highlight bio-inspired and self-organizing approaches to swarm foraging and contrast them with approaches that can provide theoretical proofs, but which abstract away important features from foraging in real-world environments.
MLA: Lu, Qi, et al. "Swarm Foraging Review: Closing the Gap Between Proof and Practice." Current Robotics Reports (2020): 1-11.Measurement of volcanic CO2 flux by a drone swarm poses special challenges. Drones must be able to follow gas concentration gradients while tolerating frequent drone loss. We present the LoCUSalgorithm as a solution to this problem and prove its robustness. LoCUS relies on swarm coordination and self-healing to solve the task. As a point of contrast we also implement the MoBSalgorithm, derived from previously published work, which allows drones to solve the task independently. We compare the effectiveness of these algorithms using drone simulations, and find that LoCUS provides a reliable and efficient solution to the volcano survey problem. Further, the novel datastructures and algorithms underpinning LoCUS have application in other areas of fault-tolerant algorithm research.
MLA: Ericksen, John, et al. "LOCUS: A multi-robot loss-tolerant algorithm for surveying volcanic plumes." 4th IEEE International Conference on Robotic Computing: IEEE. 2020.In this paper, we perform an ablation study of neatfa, a neuro-evolved foraging algorithm that has recently been shown to forage efficiently under different resource distributions. Through selective disabling of input signals, we identify a \emph{sufficiently} minimal set of input features that contribute the most towards determining search trajectories which favor high resource collection rates. Our experiments reveal that, independent of how the resources are distributed in the arena, the signals involved in imparting the controller the ability to switch from searching of resources to transporting them back to the nest are the most critical. Additionally, we find that pheromones play a key role in boosting performance of the controller by providing signals for informed locomotion in search for unforaged resources.
MLA: Erickson, John, Abhinav Aggarwal, and Melanie E. Moses. "On the Minimal Set of Inputs Required for Efficient Neuro-Evolved Foraging." arXiv preprint arXiv:1911.11974 (2019).This paper focuses on the problem of swarm foraging, proposing an automated method for designing scalable controllers that can perform effectively in multiple foraging environments. We use Neuroevolution of Augmented Topologies (NEAT) to design a neural network controller for a swarm of homogeneous robots. Our system, called NeatFA (NEAT Foraging Algorithm), is compared to existing swarm foraging algorithms...
MLA: Ericksen, John, Melanie Moses, and Stephanie Forrest. "Automatically evolving a general controller for robot swarms." Computational Intelligence (SSCI), 2017 IEEE Symposium Series on. IEEE, 2017.In this thesis, we examine the approach of a metaprogramming tool named Transfuse. Transfuse targets boilerplate reduction within the constraints prescribed by the Android environment. This is accomplished through compile-time analysis and code generation. This approach is analyzed from both boilerplate reduction and run-time performance perspectives.
MLA: Ericksen, John. "Transfuse: A Compile-Time Metaprogramming Solution for Reducing Boilerplate on Google's Android." (2016).
Parceler is an Android code generation library used to generate implementations of the Parcelable interface.
Implementing this interface is fraught with boilerplate, including defining a public static final CREATOR
field and writeToParcel()
and createFromParcel()
.
With Parceler you simply annotate a POJO with @Parcel
and Parceler does the rest.
Transfuse is a Java Dependency Injection (DI) and integration library geared specifically for the Google Android API. Transfuse allows you to write Android applications in a composed style following the composition over inheritance by breaking you out of the inheritance heavy Android API.
Traditionally, Javadocs have mixed minor markup with HTML which, if you’re writing for HTML Javadoc output, becomes unreadable and hard to write over time. This is where lightweight markup languages like AsciiDoc thrive. AsciiDoc straddles the line between readable markup and beautifully rendered content. Asciidoclet incorporates an AsciiDoc renderer (Asciidoctor via the Asciidoctor Java integration library) into a simple Doclet that enables AsciiDoc formatting within Javadoc comments and tags.
Thermoduino is the output of some tinkering with writing my own thermostat with the goal of controlling my house's temperature from multiple rooms over the day (bedroom for night and living room for day for instance). In the end, I never added the relay to control a thermostat in my home. What I did do is network 3 Arduinos using xbee wireless mesh network devices to gather the temperatures from the kitchen, office, and living room. I then randomly choose one of these rooms every 3 hours and tweet the temperature.
In this article about diving Big Sur in California, I was the dive buddy and there's a picture of me modeling above a pinnacle of Strawberry Anemones and Metridium.
This article in No Fluff Just Stuff the magazine presents Asciidoclet, a lightweight markup alternative to traditional Javadoc.