Software Engineer 347K
Supported the development of Surface Simulation (Ssim), a simulator used by rover planners to validate rover sequence commands on the Mars rover. Improved terrain support for Ssim by adding better multi-threading of terrain files. Extended testing capabilities for both Ssim and its web interface. Improved web interface by exposing Ssim inputs and designing better external terrain file management. Developed a parser to extract information from flight software channels.
PNT Platform Software Intern
Created a MITRE internal python package that simulated signal propagation. Focused on adding support of terrain maps to pathloss models. Utilized existing packages, such as GDAL and Cartopy, to read in DTED and SRTM files then show accurate latitude/longitude plots. Also, implemented collision detection methods for determing if terrain is blocking signal between receiver and transmitter.
NREIP Software Intern
As an NREIP intern, I worked on developing neural networks to predict reaction time in sleep deprived individuals. I used Python and TensorFlow to implement various types such as a fully connected neural network and convolutional neural network. To perform quick analysis I used the hyperopt library and created a system to compare and store various architectures.
Simulations Engineer
Developed software to support simulations in two DARPA projects: URSA and Subterranean challenge. For URSA I built environments and worlds with artificially intelligent characters in them to test the capabilities of drones running FOCUS. AirSim was utilized to mimic the drones physics within these environments. For SubTerranean challenge I supported both the Systems and Hardware team (MARBLE) and simulation team (COLLEMBOLA). For MARBLE I developed a base station that interacted with the robots using ROS and JavaScript. For COLLEMBOLA I aided in testing and developing the control systems for managing and moving multiple drones within the Virtual Track. I mostly worked on writing algorithms for navigating through the tunnel system safely.
General suite of ROS2 packages for controlling robots (drones, rovers, planes, etc.). Generic API to launch a team of vehicles in any simulator. Easily allows for switching between AirSim, Gazebo, and Ignition. Added capabilities to command with velocities, waypoints, and paths. Side packages include support for using darknet to follow objects with bounding boxes.
Swarm Carrier CapstoneSoftware Lead
Project building a large octocopter (UHL) for delivery and retrieval of smaller UAVs. Controls are done with a modified version of PX4 using RTPS. RTPS is a communication framework that allows for ROS2 to directly interface with the PX4 firmware. ROS2 is used as the main infrastructure for communicating commands and retrieving data from sensors. Missions are performed with a behavior tree library developed by our club in C++. The main mission involves dropping UAVs from our UHL and then having them catch themselves mid-air using a custom Drop
mode we added. The UAVs will then perform a search mission and reintegrate back into the UHL through precision landing on ArUco markers.
Northeastern Unmanned Aerial Vehicles (NUAV) is a club my friends and I started my sophomore year. It focuses on developing solutions to robotics problems involving UAVs. A large portion of the software was developed with the capstone project above in mind. Custom interfaces to PX4 using RTPS are primarily used and various tools are being developed, such as behavior trees, aruco detection, simulation, and path planning.