Autonomous Mobile Robots (AMRs)
WWW.DJI.COM & WWW.CLEARPATHROBOTICS.COM

Autonomous Mobile Robots (AMRs)

An autonomous mobile robot (AMR) is a robot capable of navigating its environment without human oversight. AMRs leverage a variety of sensors for safe and accurate navigation.

I’ve worked on a wide variety of projects focused on designing, implementing, and field testing aerial and ground AMRs. I describe in this post some of the projects I’ve worked on. The last section summarizes the technical skills I’ve improved on and acquired while working on these projects.

ROS and ROS 2 were the base architecture for all the projects described in this post. I provide more details about my ROS skills in this post.

Feel free to contact me if I can provide value to your projects: Consulting Services

Aerial Vehicles


During my tenure as a faculty researcher at the Georgia Tech Research Center (GTRI), I was the autonomy lead, and then project director, for a wide variety of DoD-sponsored projects. I was responsible for developing algorithms to enable autonomous behaviors of collaborative aerial vehicles.

Due to the sensitive nature of most projects, I can only provide a high level summary of some of them:

Collaborative Swarming

The algorithms I developed were for swarms of multiple agents. For most scenarios, the number of agents was unknown or changed over time depending on the mission. As such, all algorithms had to be adaptable in realtime such that the implementation was not affected by the dynamic conditions of the swarm.

I leveraged the open source multi-agent simulator SCRIMMAGE to test my algorithm development. I gained expertise in both using the simulator as well as developing new behaviors for it.

The following video provides a high level description of the simulator and its capabilities (taken from the SCRIMMAGE Github page):

Target Following

A swarm of n vehicles act on a GPS signal to surround the target. The number of vehicles is unknown at any point in time so the swarm adapts its formation as a function of the number of vehicles at time t.

Visual Servoing

One aerial vehicle following another one using only an optical camera. This project required 1) training a machine learning model of the target vehicle, 2) development of a controller for keeping the target bounding box in the center of the image frame, and 3) simulation of the high level logic before testing on the real platforms.

Aerial Platforms

Although it’s important to consider the dynamics of the vehicle when developing algorithms to enable autonomous behaviors, I make sure that their implementation is platform agnostic. This means that I design my algorithms to be adaptable such that future developers don’t have the burden of updating the code whenever they try to implement the same algorithms on other platforms.

The S1000 from DJI (pictured on the left of this post’s banner), is one of the platforms I’ve developed for.

Indoor Ground Vehicles


I have addressed several challenged with autonomous indoor navigation. Namely:

Mapping and Localization

The following is a demo video showing my implementation of the ROS2 Navigation Stack. You can see the vehicle autonomoulsy navigate to a waypoint in a simulated Gazebo environment:

Path Planners

I have leveraged the Open Motion Planning Library (OMPL) as much as possible due to it easy of use and flexibility for swapping out planners to accomplish different tasks.

Obstacle Avoidance

The Time Elastic Band (TEB) planner is a specific type path planner that I’ve implemented and tuned on several projects. This planner is typically used to locally optimize the robot’s trajectory with respect to the global planner, separation from obstacles, and the dynamic contraints of the vehicle.

Source Code

As part of our startup, RIF Robotics, we provide open source solutions for roboticists and hobbyists such that they don’t need to start from scratch. Check out our Github page and explore our public repos. The dingo_setup repo provides the framework for running the ROS 2 nav-stack inside a Docker container. The instructions in the main README should be enough, but feel free to reach out if you run into any issues.

Ground Platforms

Similar to the aerial vehicles, I also developed the algorithms for the ground vehicles to be platform agnostic.

The Dingo from ClearPath Robotics (pictured on the right of this post’s banner), is one of the platforms I’ve developed for. You can read here about how, at RFI Robotics, we won a Dingo platform as part of the ClearPath Robotics PartnerBot Grant Program.

Autonomous Lawnmowers


I had the oportunity to be a Robotics Software Engineer consultant for Greenzie, a startup developing software for commercial mowers. Outdoor navigation has its own set of challenges. For example, visual-based navigation becomes more challenging since there are less features to keep track of while operating in open fields.

Technical Skills


The following summarizes my proficiency in the technical skills I improved on and acquired while working on the projects described in this post:

ROS and ROS 2
Expert
C++
Expert
Python
Expert
Object Detection
Expert
Docker
Proficient
Path Planning
Proficient
SCRIMMAGE Simulations/Development
Proficient
Gazebo Simulations
Competent