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.

Interests

- Multi-agent systems and mathematical modeling
- Swarm intelligence
- Multi-robot systems
- Distributed algorithm design and data structures
- Software engineering practices in research
- Real-time embedded systems
- Computational optimization

Education

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

Mathematical Modeling

Stochastic processes, Differential Equations, Graphs, Matroids

Data Structures

Graphs, trees, R-trees, Poisson queues, heaps, C++ STL

Swarm Intelligence

Genetic algorithms, Biomimetic Algorithms, Emergent Behavior

Optimization

Linear Programming, Computational Optimization

Programming Languages

C++, C, Python

Platforms

Linux, RTEMS, SLURM, PBS, ARGoS, ROS1, TurtleBot3

Software

Boost, OpenMP, MPI, LLVM, VTune, git, cmake, pandas, matplotlib

Embedded Systems

SPARC LEON2, Arduino, Raspberry PI, ARM Cortex-M7