I am currently a post-doc (post-doctoral research associate) in the Department of Computer Science & Technology
in the Prorok Lab
at the University of Cambridge, UK.
My work revolves around agile multi-robot systems in the field: I develop systems and algorithms that enable teams of robots to plan, reason
and cooperate, and most importantly, do all of these in real-world (outdoor) settings.
I completed my PhD at the University of Nebraska-Lincoln (UNL), USA,
where I worked on field aerial robots in the Nimbus Lab,
was co-supervised by
Dr Carrick Detweiler and
Dr Sebastian Elbaum (now at Univ. of Virginia, USA),
and built many fortunate collaborations with
Dr Adam Houston (Earth and Atmospheric Sciences, UNL).
Although my work falls primarily under robust software autonomy & controls,
during the course of system development, I often like to build and interface low-level
hardware sensor and actuator systems (electro/mechanical).
You can find more about my work here on this page, jump to some of my projects on GitHub, or find my articles on Google Scholar and dblp.
I enjoy bicycle trips all around the UK (and previously in Great Plains in Nebraska), and often pretend to be a good photographer of the moors & Prairies.
(this→username) at (cst·cam·ac·uk)
SN05, William Gates Bdg, JJ Thomson Av,
Cambridge, UK, CB3 0FD.
My research generally focuses on field robotics -- furthering robot autonomy as they operate in their real (target) environments. I work on solving hard problems of multi-robot control and coordination, and deploy the resultant solutions in outdoor settings where they must face practical constraints and operate "without luxuries" :) During my PhD, I worked on aerial platforms that can perform tactile interactions amongst each other in the air. This capability makes them far more useful agents as they handle objects, transfer cargo, and undertake long-range autonomous missions. I've developed systems, mechanisms and algorithms that have allowed two multicopters to transfer a (cargo) payload between them without having to land, and even dock mid-air.
In my post-doc work, I am looking at extending many of these ideas to multi-robot settings, while also investigating data-driven (ML) solutions to some of the combinatiorally complex problems that arise. Some of these problems may even be tractable (for 2-5 vehicles), and yet, the computational cost of obtaining a solution often outweighs the benefits -- here again I try to use data-driven models to essentially complement robust classical methods. By addressing team-level challenges, we endow such autonomous systems with the skills they need in order to work as a collective and negotiate sharing the real world.
I am interested in how these systems, when brought closer and closer to our physical worlds, create novel opportunities for us to sense the atmosphere, measure properties of air and water, and even explore previously unmodeled phenomena in real time.
Current Robotics Reports, Springer, 2022.
Heterogeneous Reinforcement Learning
Proceedings of the National Academy of Science (PNAS) Special Issue, 2023.
International Conference on Autonomous Agents and Multiagent Systems (AAMAS), 2023.
Aerial Control & Flight
International Conference on Robotics & Automation (ICRA), 2021.
[online] hosted on Github.
International Symposium on Experimental Robotics (ISER), 2020.
Conference on Decision & Control (CDC), 2020.
Aerial Payload Transfer
Robotics & Automation Letters (RAL) 2020, and, International Conference on Intelligent Robots & Systems (IROS) 2020.
International Symposium on Experimental Robotics (ISER), 2018.
International Conference on Intelligent Robots & Systems (IROS), 2018.
Earth System Science Data (ESSD) [preprint], 2021.
A. Islam, A. Shankar, C. Detweiler, A. Houston; Sensors, 2019.
L. Barbieri (and others); Sensors, 2019.
99th American Meteorological Society (AMS) Annual Meeting, 2019.
98th American Meteorological Society Annual Meeting, 2018.
K. Song, A. Brewer, S. Ahmadian, A. Shankar, C. Detweiler, A. Burgin; Limnology & Oceanography: Methods (LOM), 2017.
International Conference on Unmanned Aircraft Systems (ICUAS), 2017.
Unmanned Systems, Vol 6:4, 2018.
International Conference on Robotics and Biomimetics (ROBIO), 2013.
Outreach & Activities
Open Source & Reports
FreyjaFreyja is a flight control stack for flying precise and aggressive trajectories using a multirotor (available on GitHub). Written entirely in C++/ROS, it packages outer-loop optimal state regulators (LQR/LQG) and state estimators (EKF/Kalman) as well as communication interfaces to common autopilots (ArduPilot/px4, Ascending Technologies). Besides handling position and velocity targets as a feedback regulator, the system is capable of handling acceleration feed-forward commands (using the differential flatness of the multirotor system), and also includes an optimal full-state observer that additionally measures external forces acting on the system (such as wind and payload offsets). As a result, we are able to fly precise & aggressive trajectories outdoors under moderately-high wind speeds (by interfacing with RTK GPS systems). An example video at the top of this page shows a multicopter flying a circular trajectory at speeds exceeding 5m/s under wind speeds of over 25km/h (~15mi/h, ~7m/s). The highest translational speed controlled by Freyja so far is ~9.5m/s. Freyja is at the backbone of several projects listed here, and many others within the Nimbus Lab.
Freyja-SimulatorSome of the technical components of my work have evolved into independent projects which may find broader use-cases. With inspiration from former colleagues, I've developed a high-fidelity physics-based simulator for multirotor systems called Freyja-Simulator (available on GitHub). The simulator is built on Matlab/Simulink blocksets, and provides library blocks for a generic multirotor, an LQR feedback control system, and some other physical objects (such as cables) that can be attached to each other. This complements the C++/ROS implementation for Freyja, and the trajectories developed here in Matlab can be translated directly over to C++.
ROS2 SimplePointRobotsA multi-threaded point-robot simulator -- SimplePointRobots -- written in C++ with ROS2 interfaces (consistent with Freyja). Supports holonomic & diff-drive ground robots, as well as holonomic aerial robots, all represented as simple point objects with second-order dynamics. The simulator supports basic collisions and allows effecting an abstracted "downwash" force from one multicopter to another. The key selling-point of this tool is the ROS2 interfaces it wraps, allowing us to test the algorithmic logic (using feedback from topics and messages). A few students in the Intro. to Robotics course at Cambridge found it useful for their course projects :)
mavros/mavros_extrasI've contributed to a GPS RTK plugin that enables autopilot reporting of RTK baseline & base-station data already codified in mavlink:common. The plugin handler publishes this data over a standard ROS topic.
ArduPilot::ArduCopterI've also authored and currently maintain a Nimbus Lab fork of one of the largest open-source project stacks for aerial systems, ArduPilot. The fork addresses a key limitation of the Copter flight stack: direct raw-thrust control with battery compensation. This modified "computer-flight mode" firmware is used extensively within the Nimbus Lab (and a few subscribers outside), and is an essential component of our LQG/LQR control architecture.
- Helped co-author NSF-IIS-1925052: "Raining Drones".
- Chancellor's Fellowship, UNL; yr 2015-2016 & 2016-2017.
- National Science Foundation (NSF) Travel Grant for ISER 2018; held in Buenos Aires, Argentina.
- Control Systems Society (CSS) Sponsorship Award; Travel & registration for CDC 2020.
- CSE Outstanding Graduate Research (UNL); Department Prize, 2018, 2020.
- Reviewer for IROS 2019, 2022, 2023.
- Reviewer for ICRA 2017-2023; RSS 2020(WS)-2022