Modular Code Structure for Autonomous Robotics
As an intern at Brookhaven National Laboratory in the Non-proliferation and National Security department, I was assigned with the task of developing a modular code system for an autonomous Boston Dynamics robot, Spot.
-
As an intern for both the summer and fall, I worked with two full time nuclear national security scientists to develop technology for searching for radioactive material.
I was the primarily in charge of:
Redesigning existing robot control GUI.
Evaluating existing autonomous search programs.
Implementing modular structure to robot, controller, and radiation detectors.
-
Object-Oriented Programming, Python GUI, Python Package Design
Design Overview
The modular code structure developed was adapted from a previously designed autonomous search algorithm. The previous code was linear and constisted of roughly 7000 lines of code. This made it difficult to change without affecting other portions of the script.
Being tasked to simplify this programming, I began to make it more modular. For this design, I utilized the built in APIs within the Boston Dynamics Robot, Spot, as well as creating my own python package.
Using the above APIs and my own, I was able to create the following system:
Radiation Detectors are mounted onto Spot
Spot searches for radioactive materials using a pre-determined path or an automated search program.
A Graphic User Interface (GUI) is updated and tracked by a user to monitor Spot. See the figure below for a view of the developed GUI.
Due to the export controls on this project, no more information can be released.
Outcome
From my work, the project at Brookhaven National Laboratory could continue to be developed to include new functionality without disrupting the old. I learned a great deal about developing python packages, integrating external systems into an existing product, and furthered my understanding of modular code structures.
For my full report click here.
For my research poster click here.