Brennan Cain

Software Engineer

Author: brenn10

Amazon to Nodar

I had my last day at Amazon today. I’ve enjoyed most of the work that I was able to accomplish with my team (Storage Gateway) over the last three years. It is a bit bittersweet to be leaving for my new job with Nodar. Aws Storage Gateway was my first job out of college. I

Fiducial Markers for Pose Estimation

Download Paper Robust localization is critical for the navigation and control of mobile robots. Global Navigation Satellite Systems (GNSS), Visual-Inertial Odometry (VIO), and Simultaneous Localization and Mapping (SLAM) offer different methods for achieving this goal. In some cases however, these methods may not be available or provide high enough accuracy. In such cases, these methods

Image of the drone in flight over the jet-powered kayak

A marsupial robotic system for surveying and inspection of freshwater ecosystems

Download the paper Abstract – Freshwater ecosystems are vast areas that are constantly changing and evolving. To maintain the ecosystem as well as the structures located close to bodies of water, frequent monitoring is required. Although dangerous and time consuming, manual operations are the conventional way of monitoring such areas. Recently, Autonomous Surface Vehicles (ASVs) have

Experimental Comparison of Open Source Visual-Inertial-Based State Estimation Algorithms in the Underwater Domain

Download the paper Abstract – A plethora of state estimation techniques have appeared in the last decade using visual data, and more recently with added inertial data. Datasets typically used for evaluation include indoor and urban environments, where supporting videos have shown impressive performance. However, such techniques have not been fully evaluated in challenging conditions,

Spiral Generation

I am working on some patterns for a UAV. The spiral pattern is a basic one and this is my code for generating spiral patterns with equidistant waypoints.

PynqCopter – An Open-source FPGA Overlay for UAVs

Download my Paper Abstract—FPGAs are a computing platform that excels in performing signal processing, control, networking, and security in a high performance and power efficient manner. This makes FPGAs attractive for unmanned aerial vehicles (UAVs) especially as they require smaller payloads and are processing multiple high data rate input sources (e.g. cameras, lidar, radar, gyroscopes,

PYNQ-copter’s Maiden voyage

This hexrotor was designed using the Xilinx PYNQ board. The system currently has an open-loop controller, but the other members of my group are working toward integrating an Inertial Measurement Unit (IMU) and barometer for a closed-loop controller. What sets this apart from other small unmanned aerial vehicles (UAVs) is that all computation is handled within

Into the Caves

On Sunday, the lab took a field trip to the Anza-Borrego mud caves to collect data to test a simultaneous localization and mapping algorithm and create a ground truth using LiDAR. I was not on the SLAM team, so I instead went with the rest of the group to have fun and crawl around underground.u00a0

Programming Examples: Sorts Complete

Background In any course of study in Computer Science and Engineering, sorts are one of the first topics covered, generally in data structures or a similar class. I first learned the simple sorts (Insertion and Selection) in high school. When I decided to begin this project, sorts were one of the first items for me

Triangles and Circles

In my Math 300 class, I wrote a proof for the equivalent area of a circle and a right triangle with legs of length of the circumference and radius. This is a simple proof that was a final project for my transition to advanced math class. It was fun to work on and to try