Dr. Harwell is an experienced emebedded systems engineer researcher specializing in multi-agent systems and robotics. His embedded experience spans many different types of hardware: custom spacecraft avionics, commercial chips such as ARM Cortex-M7, as well as custom SoCs. He has extensive experience architecting, building, and debugging software in embedded systems, from bare-metal to RTOS to embedded Linux, programming in C,C++, and assembly. He is strongly committed to bringing elements of software engineering into research and development in order to accelerate progress and reproducibility through automation and better tooling.
His research interests lie in the investigation of behavior in interacting multi-agent systems, at the intersection of task allocation, mathematical modeling, complexity theory, robotics, and swarm intelligence. Broadly:
Understanding the fundamental principles of large systems, including the “unpredictable” behaviors which emerge as systems interact with their environments in non-trivial ways, to develop better models of collective behavior.
Developing mathematical models for predictive control of large-scale multi-agent systems from first principles which are robust enough to cross the simulation-reality gap. Of particular interest are applications in dangerous or unstable environments (e.g., mining, space exploration), or dynamic environments (i.e., those which are modified by the system as it operates), such as agriculture, autonomous construction, debris/waste removal.
His PhD thesis is here.
In his free time, he enjoys playing his guitars, woodworking, and meditating.
PhD in Computer Science, 2022
University of Minnesota
MSc in Computer Science, 2018
University of Minnesota
BSc in Computer Engineering, 2013
University of Wisconsin-Madison
Stochastic processes, Differential Equations, Graphs, Matroids
Graphs, trees, R-trees, Poisson queues, heaps, C++ STL
Genetic algorithms, Biomimetic Algorithms, Emergent Behavior
Linear Programming, Computational Optimization
C++, C, Python
Linux, RTEMS, SLURM, PBS, ARGoS, ROS1, TurtleBot3
Boost, OpenMP, MPI, LLVM, VTune, git, cmake, pandas, matplotlib
SPARC LEON2, Arduino, Raspberry PI, ARM Cortex-M7