back to CSS Capstone schedule

UWB Logo

Computer Science and Software Engineering Capstone Presentations

Fall Quarter

December 18, 2020

 

Phillip Ovanesyan

"Bridging ROS2 Messages and Database Schemas"

(Gaia Platform)

 

Faculty Advisor: Dr. Arkady Retik

 

 

 

Abstract

Gaia Platform is a startup in Bellevue, Washington that is creating an innovative in-memory database engine and associated decision engine. Using a declarative C++ syntax, Gaia Platform empowers domain experts to efficiently implement business logic without being hindered by language quirks or data passing interfaces. This is especially useful for robotics and edge computing by ensuring complex business functionality can execute in network-constrained environments.

 

To enter the robotics market, Gaia Platform needs to integrate with industry-standard frameworks. With my mentor, we identified ROS2 (the Robot Operating System 2) as the best framework for integration. It is a set of libraries and message-passing middleware that similarly allows developers to create complex robotics architectures. Messages in ROS2 can contain many scalar, non-scalar, and complex type fields, defined in message files. Meanwhile, Gaia Platform database schemas are written in a data definition language (DDL) and use 1-to-N or N-to-N table references to create relationships with multiplicity.

 

As a software developer intern, my main responsibility was to design a system that converted incoming ROS2 messages into Gaia Platform database records. My process to capture various elements of ROS2 message files started as several CMake functions that could aggregate all of the ROS2 packages and the user's desired message files during compilation. It soon expanded into some Python scripts, taking advantage of the ROS2 Python bindings to extract message fields as class member fields

.

One of my additional responsibilities was to rewrite a system demo to integrate ROS2 message publishing/subscribing with Gaia Platform's rules. Another responsibility was to create a conformance testing suite to verify that the code for database table iterators was conformant to C++ iterator definitions. My final responsibility was to communicate the benefits of ROS2 integration to our business development employees and to list what we need to be ROS2-compatible to our developers. This was an important exercise in designing a system and then explaining it to all levels of a product development team.

 

 

 

 

 

 

 

 

 

 

 

Updated December 15, 2020