CUDA Spotlight: Jon Rogers
GPU-Accelerated Guidance and Control for Robotic Systems
This week's Spotlight is on Jon Rogers, Assistant Professor in the Department of Aerospace Engineering at Texas A&M University. Jon is director of the Helicopter and Unmanned Systems Lab, where he works on new technologies for autonomous systems.
Jon is currently exploring new algorithms and sensing technologies to increase task complexity of robotic devices. His research encompasses the fields of nonlinear dynamics, robust control, and high-performance computing. This interview is part of the CUDA Spotlight Series.
Q & A with Jon Rogers
NVIDIA: Jon, tell us about your robotics research at Texas A&M.
In a broad sense, our research focuses on creating new technologies that will revolutionize task complexity for robots and autonomous systems. We are looking at this problem from multiple perspectives. First, we are exploring low-cost sensors that mimic sensor perception techniques used by insects and other biological systems. Also, we are examining new ways to quantify uncertainty in real-time and make use of it in feedback control to make better decisions in uncertain environments.
Coupling uncertainty quantification (UQ) with feedback control provides a powerful capability. GPUs are the tools that allow us to quantify uncertainty in real-time − we can run hundreds or thousands of dynamic predictions in the time it used to take to run one. Now robots can base control inputs on a rich set of predictions that incorporate all the uncertainty they are faced with. Furthermore, through GPU-based uncertainty propagation, they can evaluate future risk associated with each action at the current time.
NVIDIA: What is the charter of the Helicopter and Unmanned Systems Lab (HUSL)?
A unique aspect of our lab is the emphasis on taking a project from theoretical conception through simulation to experiment. Many of our projects begin as a sketch on paper and culminate in a flight test. We ensure that our research is relevant to the larger community this way, since real-world issues that arise during implementation are dealt with early on in the project.
NVIDIA: Tell us about the parafoil test flights planned for this summer.
Guided parafoils are commonly used to deliver supplies for humanitarian aid and other missions, but they often miss their targets due to wind gusts and turbulence. Our new guidance scheme creates a candidate set of trajectories from the parafoil’s current location to the target. Using real-time Monte Carlo simulation on a GPU, we evaluate the obstacle collision risk associated with each trajectory given uncertainty in winds. This results in a robust guidance algorithm in which risk due to uncertain winds can be evaluated in real-time, and control decisions made accordingly.
This new paradigm of using massively-parallel processing for collision risk assessment and uncertainty quantification has the potential to be game-changing technology for parafoil systems. Recently we showed how use of this GPU-based guidance scheme can enable accurate landings in some pretty challenging drop zones where winds have historically caused large miss distances.
NVIDIA: What are some key challenges in your field?
For aerial robotic systems, the problem is much worse. Uncertainty exists not just in human interaction, but also due to sensing errors, winds, and modeling error. Control systems are expected to achieve a high degree of reliability considering all the uncertainty the aircraft is subjected to. Historically, this field of study has been known as robust control.
Researchers in the aerospace robotics area are now looking at how to leverage high performance computing to allow us to evaluate risk in real time. New robust control algorithms can be created in which risk associated with certain control actions can be accurately quantified for nonlinear systems.
NVIDIA: What role does GPU computing play in your work?
GPUs allow us to propagate non-Gaussian uncertainty for nonlinear systems through Monte Carlo simulation. Monte Carlo simulation is an “embarrassingly parallel” process which yields 1-2 orders of magnitude runtime reduction when implemented on a GPU.
Whereas 10 years ago Monte Carlo simulations were something we did offline in the lab on a CPU, now we can execute them in real-time on the vehicle itself with a GPU. This is a paradigm shift in the robust control community enabled only through low power parallel computing devices. Accurate non-Gaussian uncertainty propagation is now possible for nonlinear systems in real-time due to the availability of these new computing architectures.
We developed our Monte Carlo code directly in CUDA C/C++. The core of this code was developed several years ago, before Thrust and OpenACC were mature. Our current versions use CURAND to generate randomized initial conditions and wind values in each GPU thread. This works quite well and allows us to minimize data transfer from CPU to GPU.
For instance, for the parafoil code we need to generate about 1.4 million random numbers (100,000 trajectories and 14 randomized variables) every time we run a Monte Carlo simulation, which occurs every 2 seconds or so during the parafoil flight. The ability to do this on the GPU directly using CURAND, rather than transferring this data from the CPU, removes a serious bottleneck in the code.
NVIDIA: What problems has CUDA helped you solve?
We leverage CUDA primarily for parallel trajectory simulation, which means we have developed dynamic models for several vehicles (mostly aircraft) that run within a GPU kernel. Launching thousands of threads means we can run numerous dynamic simulations at once.
CUDA specifically has allowed us to take existing codes and port them to the GPU relatively quickly. The core of the GPU codes we run today were originally built for CPU execution and validated extensively with experimental data. The ability to leverage legacy simulation codes in this manner has been a key enabler. It is also convenient that the same CUDA software we use for our desktop simulation codes can be run on embedded GPUs on-board our robotic vehicles with minimal changes.
NVIDIA: What specific approaches did you use to apply the CUDA platform to your work?
Our lab is becoming increasingly interested in embedded GPU hardware as we take these new control laws and port them to vehicles for testing. Some new embedded GPU devices that have been recently released by NVIDIA and others will allow us to do just that. For our research, low power requirements and small size are critical.
NVIDIA: What are some other examples of your research?
NVIDIA: How did you become interested in this field?
GPUs are an emerging technology. However, we are at a pivotal moment where researchers are looking at how this technology can be leveraged for more than just graphics processing. I am excited to be on the forefront of research exploring how new emerging computing architectures can solve difficult problems in applied dynamics and robotics.
NVIDIA: Do you have advice for high school students considering a career in engineering?
Now is a great time to be an engineer. There are so many challenges to be solved, and more opportunities than ever to contribute to science and change the world. New technologies can make a difference in people’s lives on a large scale almost universally. It may sound like a cliché, but if you want to have an impact on the world, engineering is the place to do it.
Bio for Jon Rogers
Jon Rogers is an Assistant Professor of Aerospace Engineering at Texas A&M University. He has a passion for all things that are, or can be made, airworthy. When he is not in the lab, he can usually be found running or flying around the skies over Central Texas. Jon will be joining the Woodruff School of Mechanical Engineering at Georgia Tech as an Assistant Professor in Fall 2013.