Time for a Software Update

Rohan Prashant
MAAV
Published in
4 min readFeb 14, 2018

With over 30 members, MAAV’s software team is the largest of our 4 subteams. The group is comprised of many different specialized divisions, including Strategy, Utilities, Localization, and Vision. In the February update for Software, the public relations team collaborated with various members of the software team to discuss their group’s accomplishments over the past month.

The Software subteam takes a group picture.

First up, we have the Utilities team. Utilities is responsible for developing many of the tools used by the rest of the team. Members of the Utilities team work across many different software divisions and develop efficient and maintainable solutions to address team needs.

The Utilities team has spent the past month doing simulator work for the Strategy and Localization teams, as well as collaborating with strategy’s efforts to refactor their code base. The end goal is to change existing functions and integrate them into the rest of the code.

The simulator is a key element in MAAV’s approach to building software. The tool, which uses OpenGL rendering and a Bullet Physics backend, allows us to observe and understand the behavior of the vehicle. This includes predicting how the drone is going to behave, and “testing” the vehicle without running the risk of damage in a real-world test and also eliminating the need to set up a physical field with roombas.

For the Localization team, Utilities has written code that publishes “spoofed” sensor data from the simulator. These “fake” sensors are the quadcopter’s Inertial Measurement Unit (IMU) and bottom-facing height LIDAR, which is a detection system that uses lasers to determine distance.

One of the most important teams on software is Localization. This hardworking team develops the algorithm responsible for determining the absolute position of our drone by combining information from the Vision team and IMU sensor. Localization uses advanced robotics techniques such as an Iterative Kalman Filter to accomplish this goal.

Over the course of this month, the Localization team has been working on developing a mathematical model for keeping track of the vehicle’s state using all available sensing measurements, and reformulating it to a more mathematically correct manner that accounts for the quadcopter’s orientation. Along with the vision team, Localization is also working on integrating visual odometry, a technique of analyzing camera images to determine drone trajectory, into the software system.

The figurative eyes of our drone, The Vision team uses sensors to view the surrounding environment, and writes algorithms to process the raw data. Currently the team uses a variety of techniques to detect roombas on the field, the lines and design on the field and the obsacles on the field.

In the vision team, various project groups have finalized the design and algorithm choice for the upcoming competition this summer. The ground robot tracking group started to implement and combine particle filters with Kernelized Correlation Filters (KCF) to track and predict the location of the Roombas. Vision’s landmark classification group chose and developed a testing benchmark, and evaluated our current algorithm quantitatively. They then talked to vision experts at the University of Michigan to discuss our challenges and potential techniques to improve our results. In vehicle testing, many of our current challenges are introduced by glare, poor visibility of lines, or occlusion from obstacles. Our proposed solution to improve the algorithm uses a RANSAC grid fitting based on vanishing points, along with intensity based glare removal. Looking forward, another additional feature the Vision team will implement this semester includes visual odometry, which provides additional measurement of the vehicle velocity for our localization group.

As Vision continues to develop infrastructure for their various algorithms, the team will also be working on migrating their perception and localization algorithms to the vehicle’s on-board GPU, Nvidia Jetsons TK2 embedded module. Vision is currently in the progress of implementing a new combined pipeline, and refactoring its vision algorithms to be compliant with Nvidia CUDA API.

Last but certainly not least, the Strategy team works hard to develop the algorithm which determines where the drone should fly in order to achieve a maximum score at the IARC competition. Simply put, this is the brain of our autonomous algorithms. MAAV would not be autonomous without it. Members of Strategy work actively with graduate level robotics students to find a solution to this problem.

The team is currently writing a “perfect knowledge” Roomba tracker for the simulator. It pretends to be the same Roomba tracker that the Roomba-tracking group is working on, but it broadcasts the exact positions of the Roombas at any point in time. This will help Strategy test their code within the simulator.

Strategy has also been working on writing the algorithm that decides how the quadcopter determines its path and how it should “attack” the on field roombas. Last month, the team refactored a lot of old code to make the suite of tools cleaner and easier to use. The team finished refactorization of the arena and is in the process of implementing our roomba targeting (how it decides to land on the roomba to change the roomba’s path). Strategy is also working on finishing an A* path planning algorithm.

A* is a type of path finding algorithm used for finding paths through connected graphs or mazes. Strategy is using it to find efficient flight paths that do not collide with any roombas or obstacles. It is based off of Djikstra’s algorithm, which is a breadth-first flood-fill approach. A* optimizes this search significantly by using a distance based heuristic to check tiles closer to the goal first. A gif showing how it works is HERE.

We hope you enjoyed reading about some of the advanced work that the Software subteam has been doing. If you would like to learn more about us and the work the team as a whole does, make sure to check out some of our other articles detailing the Structures and Circuits teams. Feel free to also visit us at our website (maavumich.org) and reach out to us at maav-leads@umich.edu.

--

--

Rohan Prashant
MAAV
Editor for

Senior at University of Michigan studying Computer Science, minoring in Entrepreneurship. Former Microsoft SWE Intern. Member of MProduct.