Computer Science

Making a boat is one thing,

Making it fully autonomous is another.


Our team consists of individuals that are experienced with different programming and design skills such as experience with Python, Rust, Docker, and Tensorflow.

Together, this unique skill set that our team possesses allows us to work towards a common goal: ensure that our boat can safely and efficiently navigate through the RoboBoat course!

Data and Training

we first and most importantly needed a way to have our boat process information from the outside world.


To train our learning model, we needed SEVERAL pictures of the buoys, in different sizes and colors from varying angles and distances.

By several,
we mean really mean it-

there are A LOT.


Once we had enough pictures of these buoys, we created .xml files to feed into our models, where we could then create a box around where the buoys were, in order to create the ideal data for our object detection model.

The models of the buoys would serve several purposes- we could use them in our machine learning model, but they also proved helpful in setting up the simulated environments we would use, especially over in Engineering.

Putting our models to use,
we created a machine learning model employing the Tensorflow Lite AI library in python to recognize and identify the buoys in real time.

We couldn’t do this without using something to measure depth.

We had planned to use LIDAR, Light Detection and Ranging, to get depth markings and ranges from the buoys to the boat, and though there was initial success, data returns proved to be a much more time consuming process than we had projected.
This didn’t mean gave up, however!

With our Intel RealSense Camera, we are able to get accurate readings and translate them into images our computers can comprehend.

Using the data we receive from the Intel RealSense camera and the real-time data we get from our GPS, we are able to measure how far an object is from us using trigonometry.

Processing

Our GPS is provided by our RTK Tower.
This gives us the position of the boat with a precision within centimeters;
In order to get this precision, though, the RTK tower needs to sit still for about 8 hours.
Our Cube Orange gets its location in relation to the tower in x, y, and z since the tower has been sitting for so long.

Whats the Cube Orange?

The Cube Orange communicates actively with our ground control, QGround Control, which takes data from our GPS and tells the motors what to do.
Its basically the “brains” of our boat, what gives it most of its autonomy.


To summarize the overall process,

Our models feed into our machine learning model to act as training data.
With this trained model, we can use the input from our camera, feed it into our python program, and then give to our model to send what it sees into our QGround Control.
From here, this program talks to the Cube Orange, which will reside inside of the boat.
The Cube Orange then communicates further with our GPS, in order to pin point with great precision where our motors should head to.