Beyond the prototype – Designing a Route Making Algorithm to Cross the Atlantic Ocean

by UBC SailBot Software Team

In late November we posted about our design of a pathfinding algorithm prototype for navigating around simple obstacles in order to get to a destination. Since then we have transformed this from a prototype into an expandable weather routing algorithm that fits into our sailing logic architecture.

Control System Architecture

Image 1 - Control System Architecture

Image 1 – Control System Architecture

Our goal in designing the software for the transatlantic boat is to have two main systems.  The first of those systems is the low level control system.  Similar to our design for the International Robotic Sailing Regatta competition in Massachusetts last year, we want our transatlantic boat to be an expert on getting from one point on earth to another. What drives this is a robust autonomous control system that takes inputs and uses sailing logic to produce desired output on the rudder and sail position. In prior years, this was the key piece in the puzzle. For crossing the Atlantic Ocean, however, we have the additional challenge of obstacles. This is where the second system comes in to play.

The route making system (system two) is designed to plan a route across the Atlantic Ocean given that there will be obstacles that gets in our way, and that the obstacles change over time.  As we moved from the route making prototype and started developing a design to take into account crossing the Atlantic ocean we decided to give the route making algorithm design a makeover.

Route making architecture makeover

Our first design for a route making system incorporated all data into one three dimensional pathfinding algorithm, the third dimension being time.  Through testing we have realized many limitations to this original design and developed a new design with a more robust architecture.  The main driver for this change is the large scale patterns that weather systems display which are imperceptible at smaller scales.  Because the boat navigates at a small scale, and thus also receives sensor data of its surroundings on a small scale, we decided the boat requires a two layer architecture – one for the entire Atlantic Ocean, and one for the foreseeable future.

A one layer structure – combining both large scale and small scale datasets – could be done if we only looked into the near future, however the algorithm would suffer from not being able to see the entire Atlantic. We illustrate this in Image 2, as seen below, where the goal of our boat is to make it to Target 2. Imagine that we only look east as far as Target 1.  We would not see that there is an obstacle just following Target 1 and in this case after we reached Target 1 we would have to backtrack to make it to Target 2.  If we instead looked east all the way to Target 2 we would realize that the fastest way to get to Target 2 is to avoid the obstacle all together.  This sort of situation is very applicable to some of the situations we encounter when analyzing data gathered on the Atlantic. As a result, we separate the different scale datasets into a two layer system. The small scale layer relies on the large scale layer to know the path that is best suited over the entire Atlantic, and then calculates the best direction for the next 10km.

Image 2 - Large versus small scale sailing scenario

Image 2 – Large versus small scale sailing scenario

We have documented each layer in better detail below.

Large Scale Layer:

Image 3 - Route-making from the Gulf Of Mexico, avoiding areas with large waves.

Image 3 – Route-making from the Gulf Of Mexico, avoiding areas with large waves.

Scale: each cell will be 1×1 degree or ~100km

Inputs: weather from an online repository, a preset target (Ireland), a preset bias route that the boat should ideally travel.

Outputs: a 2D grid of weights

Description: At this layer, we plot the long term trend of the route that the boat should take, taking into consideration large scale weather systems while trying to keep as close as possible to the pre-set ideal route. The output of this layer will be a 2D grid of weights representing the long term route which will be fet to the small scale layer.

Small Scale Layer:

Scale: ~10km

Inputs: the output of the Large scale Layer, AIS data, other small scale obstacle data.

Outputs: a set of coordinates ~10km apart

Description: This layer will plot a route for the short term obstacle avoidance taking into consideration smaller obstacles such as boats. It will receive a 2D grid of weights which will serve as a bias for the long term route from the large scale layer. This way, the small scale layer will plot a route that will resemble the the large scale route unless there is an obstacle preventing it, in which case it will plot the next best route. The output of this layer will be a set of coordinates which represent the path calculated by this layer and which will be fet to the control system.

There are a number of challenges going forward that we are focusing on to improve the route making system.  We are actively looking for good data to base our weather routing off of, and with multiple datasets we also need to define how we are going to weight the datasets against each other.  When routing we also need to determine a good resolution for each layer.  This is integral for us to ensure that we can fit the “good” data for the entire time span we are route making over.

Mechanical Team Progress Report

by Dave Tiessen

The Mech team has been working steadily over the past couple of months on construction of our Microtransat boat’s hull.  The hull is being built using the “cold molded” construction method.  This method involves first building a skeletal mould that defines the shape of the hull.  Thin layers of softwood strips are then bent over the mould and laminated together to form a shell that will become the hull core.  Finally, carbon fibre is laminated to either side of the core to make a very stiff, light and strong hull structure.

We’ve made some good progress on the hull mould: read on to see what we’ve been up to.


The first step in building a quality boat was to organize our workspace.  The team did a great job of rearranging our work area to accommodate construction of the 5+ metre Microtransat hull – a much larger project than we’ve tackled before.  The diagram below shows our workshop layout.

Figure 1 - UBC Sailbot workshop layout

Figure 1 – UBC Sailbot workshop layout

The lockers at left have been mostly filled with tools, many of which were donated to our team by sponsor Summit Tools. We finally have a collection of tools that gives us the ability to work quickly and efficiently.

The work tables shown at the right side of the diagram were our first construction project.  They were made in a single session from 2 x 4 and ¾” plywood donated by Windsor Plywood.  See the tables in the picture below.  So far they’ve been providing good service and standing up well.  One of our members discovered, however, that it’s really not too hard to saw through the tabletop, screws and all. ;)

Figure 2 - Sailbot work tables

Figure 2 – Sailbot work tables

Strong back

Next we turned our attention to building the “strong back” – essentially a long box beam that forms the base of our boat mould.  In one session, we built the basic structure in two sections, again with material donated by Windsor Plywood.  In the next session, we joined the sections to create one long beam and added diagonal bracing.  The webs of the beam are of ½” plywood 16” deep with flanges of 2 x 3 at top and bottom.  This construction makes for a beam that is extremely stiff.  The process of bending many stringers and veneers over the mould later on creates a strong aggregate reaction force that tends to bend the ends of the strong back upward.  Robust construction is necessary to counter this bending force, keeping the mould free from distortion.

The next step in preparing the strong back was the addition of the transverse members shown in the picture below.  These members were fastened perpendicular to the strong back centreline with precise separation to accurately locate the frames that would be fastened to them later.

Figure 3 - UBC Sailbot Microtransat mould strong back

Figure 3 – UBC Sailbot Microtransat mould strong back

To provide even greater resistance to the forces pulling the ends of the strong back up, heavy weights were added to each end.  These also help to keep the whole mould from shifting after it is aligned.

The final step was levelling the strong back.  With a laser level to create a level reference datum, we precisely measured the distance from this datum to the top of the strong back rails. The structure was then carefully levelled using height adjustment bolts built into the bottom of each leg.  Having the top of the structure very level gives us a good reference to work with when levelling the frames later on.

Hull lines

The team designed the basic shape of the hull last summer, but until early this year the final hull lines had not been developed.  With the aid of Philip Barron, Naval Architect at UBC SailBot sponsor Robert Allan Ltd,  we created a set of hull lines by first building a 3D model of the hull using Rhinoceros 3D (with Orca plugin) and AutoCAD.  These hull lines are sets of 2D lines representing the 3D shape of the hull in a manner similar to topography lines on a map.  The hull lines are taken as a series of slices horizontally (waterlines), vertically (buttock lines) and transversely to the hull axis (stations).  See the image below of the resulting lines.

Figure 4 - Hull lines of UBC Sailbot Microtransat boat

Figure 4 – Hull lines of UBC Sailbot Microtransat boat

Right now we are particularly interested in the stations, which define the shapes of the frames we need to build and attach to our strong back.  Later these frames will play the main role in defining the shape of the hull mould as longitudinal stringers are bent around them.


The frames are the most important part of the mould for our hull.  On their own, they resemble nothing so much as a stack of over-sized bread slices.  When they are positioned on the strong back, however, the shape of the coming boat hull finally becomes apparent.

Despite their importance in shaping the mould, the frames will not be part of the final hull structure, so they are constructed from relatively cheap, but stable medium density fibreboard (MDF).  The shapes of the frames were first printed full size on sheets of Mylar.  Mylar is more durable and less prone to expanding and contracting with changing humidity than paper, making it more suitable for this job.  With the Mylar taped to the MDF, the shape of each frame was transferred to the material with multiple pinpricks.

An important feature added at this point was a set of cross hairs on each frame.  When the frames are arranged in space as they should be to form the hull shape, the cross-hairs all fall on a straight, level line parallel to the axis of the hull.  These cross hairs were the key to precisely aligning the frames later.

With the frame shapes carefully marked on the MDF, we were ready to cut them out.  Straight lines were cut using a circular saw and a jigsaw was used to cut the curved sections.  The final shaping was done with a surform – a sort of cheese-grater type tool that is ideal for shaping MDF.

Mounting the Frames

Getting the frames perfectly aligned to match their theoretical position in the model is the key to achieving a fair hull with the intended shape.  The transverse members on the strong back ensure that the face of each frame ends up on the correct transverse plane.  The challenge then is to make sure that each frames is aligned in the correct position within its plane.

To align the frames, we first drilled a large hole centred on the cross hairs of each frame.  The cross hairs were then carried through the hole by gluing thread across.  Next we set up a laser oriented parallel to the strong back and boat axis, as seen on the illustration below.  Starting from one end we positioned each frame on its transverse member such that the cross hairs were centred on the laser beam.  Then, using the levelled strong back top as a reference to ensure frames were level, we fastened each frame on.

Figure 5 - Laser-aligned frames

Figure 5 – Laser-aligned frames

At that point we had all the frames fastened in their correct position and orientation.  However, we needed to brace them to make sure they stay that way once we start bending stringers around them.  We cut sections of MDF to form a box between each frame.  First checking that each frame was level from top to bottom, we fastened these box sections in, locking the whole structure in place.  The result is what you see in the picture below.  Notice the alignment holes still visible in each frame.

Figure 6 - UBC Sailbot Microtransat boat mould with frames attached and braced

Figure 6 – UBC Sailbot Microtransat boat mould with frames attached and braced

Next steps

To complete our mould, the final step is adding longitudinal stringers.  The stringers are long, square ¾” x ¾” strips.  We cut these from clear poplar donated by Windsor Plywood using a table-saw borrowed from the Royal Vancouver Yacht Club.  The clear (knot-free) and straight-grained nature of the wood in the stringers is important in ensuring they will bend smoothly over the frames.

Once the stringers are in place, we’ll be ready to start laying on the cedar veneer strips to create the core of our actual hull.  Stay tuned for more pictures soon!

Visiting Zaber Technologies

(from right) Tyler, Tobias, and Rajat visiting the Zaber team

(from right) Tyler, Tobias, and Rajat visiting the Zaber team

by Karry Ocean

Back in November, our electrical lead – Tyler Jones – with electrical team members – Tobias Kreykenbohm and Rajat Dixit – and co-captain – Karry Ocean – visited Zaber Technologies in Vancouver. Zaber produces high quality, reliable and incredibly capable motion control products. When Lana Rupp, a mechanical design engineer at Zaber, very kindly invited us on a tour and expressed interest in our project, we were obviously thrilled.

When we first arrived we were warmly greeted by Zaber employees and a very friendly dog on the first floor. Shortly, we were led up to their facilities on the third floor and into a conference room. Honestly, were quite taken back by the amount of interest our project had gathered at their company! Soon enough we had a full room of engineers all intending to assist us with our rudder motor. I could tell Tobias was beginning to get a bit nervous with so many engineers surrounding him with questions, but he proved capable of holding his own. Eventually, with the help of Zaber’s knowledgeable and passionate engineers, we confirmed some of our specifications and further developed our motor design.

Zaber offered to review our final motor design and even offered to sponsor us the components! The assistance of Zaber has been really incredible and just their overwhelming interest in our project is so appreciated!


Once business was taken care of, our group was taken around for a tour of Zaber`s facilities. What amazed us the most was how much was taken care of in-house! Component design, testing, programming and even some manufacturing were all performed by the engineers in their building. It was also clear how passionate all the employees were about their work at Zaber.

Zaber Technologies is located at 1777 West 75th Avenue, Vancouver. They plan to expand in the near future, with a possible move to a larger facility. This means they`re looking to hire, and are welcome to applications!


Crossing the Atlantic – Factors, factors, factors

 by Michael Schnetzler

For the past few months, the various sub-teams at UBC SailBot have been busy getting a better understanding of the problem to be solved. All design concepts have to be able to deal with the harsh weather in the North Atlantic Ocean. Sustained wind speeds of 80 km/h (43 knots) and wave heights of 7m are not uncommon. This blogpost will look at some of the factors of the voyage.

Route Planning

Image: Currents in North Atlantic (Source: Encyclopaedia Britannica, Inc)

Image: Currents in North Atlantic (Source: Encyclopaedia Britannica, Inc)

There are two potential routes that follow the main currents in the North and South Atlantic. The Northern Route travels from the coast of Newfoundland to Ireland and is also the shortest route. The Southern Route travels from France to the Caribbean. Based on the report by the US Naval Academy (see report here: Route Planning for a Micro-Transat Voyage), it is more feasible for us to choose the Northern Route and start from the coast of Newfoundland. The shorter distance and stronger prevailing winds will also decrease our time at sea. The only issue here is the prevalence of bad weather, sea states, and among other things: ice (think Titanic).


Due to bad weather in the North Atlantic, the optimum departure time is between July and August. This appears to be the ideal time between the prevalence of ice in the North and the hurricane season that peaks in September. The amount of effective hours of sunlight to power the boat is also a factor, as seen on the graph below.

Image: St. John Weather Data comparison (Source: UBC SailBot, Environment Canada). The best time for solar power would be the time of year when total hours of bright sunshine (in orange) is highest, with the cloud opacity lowest (especially the 8-10 tenths).

Image: St. John Weather Data comparison (Source: UBC SailBot, Environment Canada). The best time for solar power would be the time of year when total hours of bright sunshine (in orange) is highest, with the cloud opacity lowest (especially the 8-10 tenths).


The simplest part of the crossing is having the on-board computer calculate the shortest route based on GPS coordinates and apparent wind angles. But the boat will also be equipped with the ship tracking Automatic Identification System (AIS) that will allow it to “see” other vessels such as tankers. This is handy when dealing with dense shipping lanes (another reason to choose the Northern Route).

Image: Shipping lanes in Atlantic Ocean (Source: Sea Lane/

Image: Shipping lanes in Atlantic Ocean (Source: Sea Lane/

However, many smaller fishing vessels don’t use this system and are also trolling long nets at various times during the year. The following image outlines fishing zones that will be in season during the crossing. This, together with the fact that there is a lot of floating debris in the ocean, is one of our biggest challenges to overcome before we launch our attempt. We are still considering different concepts in tackling these obstacle challenges. To continue this conversation, please don`t hesitate in contacting us at

Image: Fishing zones in proposed route (Source: UBC SailBot)

Image: Fishing zones in proposed route (Source: UBC SailBot)

Designing an Autonomous Route Planning Algorithm Prototype

by Rodrigo Blaustein and Yasmeen Akbari

In order to implement a complex pathfinding algorithm such as the one that is required for our transatlantic crossing, it is necessary to divide the task into stages.

The motivation behind the development of the Pathfinder GUI tool was to provide a tool which would facilitate the work of the UBC SailBot Software team by providing them a way to specify test scenarios, run the test scenarios and display the result of the test scenarios in a meaningful way.

The tool utilises a 2D array in order to represent the scenarios like a map. Currently, each element in the 2D array can represent one of five possible values. From the users point of view each of these five possible values is represented by a specific color in the GUI. The possible values are as follows:

start: Represents where the boat starts and is represented in the GUI by the color red

target: Represents where the boat wants to go and its color in the GUI is green

obstacle: Represents an obstacle the boat cannot visit and has color brown in the GUI

visited: Represents a node that has already been analysed by the algorithm and is represented by the color dark gray on the GUI

new: The default value of a node, it represents open space that the boat can travel and has not been analysed by the algorithm yet. It is represented by the color light gray in the GUI.

Input of prototype route-planning. The red dot represents our vessel, the green dot is the destination, and the brown boxes and line are all obstacles.

Input of prototype route-planning. The red dot represents our vessel, the green dot is the destination, and the brown boxes and line are all obstacles.

The user can specify the initial state of the scenario and then run the tool which would simulate the path according to the specific heuristic function. The heuristic function is used to inform the algorithm what neighbour node the boat should visit next.  Some algorithms are dynamic and require extra data to be stored on each node.

Showing the menu for how to create nodes. By choosing Run the algorithm will figure out the best path to take to avoid the different obstacles.

Showing the menu for how to create nodes. By choosing Run the algorithm will figure out the best path to take to avoid the different obstacles.

Output of the prototype route planning. The vessel (red dot) will travel in the dark grey area to reach the destination (green dot).

Output of the prototype route planning. The vessel (red dot) will travel in the dark grey area to reach the destination (green dot).

The current heuristic implemented, which was used in the demonstration, chooses the next node to visit based on that node’s euclidean distance to the target. The euclidean distance to the target is calculated using pythagoras theorem.  We aim for a heuristic function which will always underestimate the distance to the goal, also called an admissible heuristic.  For each neighbour of the current node which has a value of new, we calculate the distance of that neighbour to the target node and then choose the neighbour that has the shortest euclidean distance. All other neighbours are marked as visited nodes.

If we improve the heuristic function, we could improve the amount of time it takes for the algorithm to run.  Because this algorithm ignores visited nodes, the boat could get stuck, blocked by its own path. This is why it is necessary to try and test several heuristics, and improve the algorithm to work in all cases by revisiting nodes.

The next steps will involve implementing and testing different heuristics and algorithms in order to determine which one produces the most efficient path. Another feature that needs to be implemented is moving obstacles. The user should be able to draw an obstacle and specify its velocity, both magnitude and direction. In future versions the tool should also be able to include other parameters such as weather data, getting entangled on debris, etc.

Deciding on a Rig

by Adrian Granchelli

The question: “What kind of rig will our Transat boat be using” came up really early in this project.  The more traditional design, used by the previous year’s Sailbot, became the first option.  However, this new challenge (transatlantic crossing) provided more demanding conditions.  The rig for our transatlantic crossing will need to be able to withstand the worst conditions the Atlantic Ocean can provide. During a storm this could be 50 knots with 12 meter crashing waves.  These conditions are a huge design concern and set apart the Transat boat from previous Sailbot’s, and the rig definitely needs to be re-thought.

The next option brought to the table is a fixed wing, a new technology famously used in the 2013 America’s Cup’s boats.  This design could prove to be a huge advantage and could possibly be designed to have 360 degrees of freedom.  A huge drawback to fixed-wing sails is they are very new technologies with limited information available.

After further research, we “re-discovered” the windsurfing sail. Windsurfing sails are very robust, designed for demanding scenarios, are already designed and come in various sizes and qualities. After meeting and discussing with our advisor, Don Martin, we reached an “AHA” moment when we revealed that both our personal research led us to a windsurfing sail!

Below you will find summaries of the different technologies we looked at.

Main & Jib Sails

Greg and Adrian launching the Thunderbird 2012 robotic sailboat in the summer of 2012. UBC SailBot's Thunderbird 2012 has main & jib sails.

Greg and Adrian launching the Thunderbird 2012 robotic sailboat in the summer of 2012. UBC SailBot’s Thunderbird 2012 has main & jib sails.

Ready Technology: Yes.

Number of Sails: 2

De-powering:  Luff (let out) both sails.

Durability: A luffing sail will eventually tear.

Other:  We have experience building and using these!

Fixed-Wing Sail

Fixed-Wing sail. Photo by  ** RCB ** (Flickr)

Fixed-Wing sail. Photo by ** RCB ** (Flickr)

Ready Technology: No, a lot of research and designing is needed.

Number of Sails: 2 (looks like one, but acts like two).

De-powering: Alter one sail flap, or both.

Durability: Very durable and streamline, will not luff.

Other: These are so cool!

Windsurfing Sail

Windsurfing rig. Photo by Filipe*Fonseca (Flickr)

Windsurfing rig. Photo by Filipe*Fonseca (Flickr)

Ready Technology: Yes.

Number of Sails: 1

De-powering:  Luff sail.  Square Top sail allows for self-depowering in lower winds.

Durability: Designed for extreme conditions.

Other:  We can easily pick, choose, and test various rigs as these are off the shelf products!


The best candidate for the Transat boat would be a fixed-wing sail; however, this would need extensive research, testing, expert building techniques, and much iteration to ultimately create our rig.  Since we do not have enough time, money, and expertise, a windsurfing rig appears to be the best candidate and is the design we will be using!

Public Showcase – UniquelyUBC

by Karry Ocean

Back on October 10th, UBC hosted a showcase for major donors to the university entitled UniquelyUBC, and the UBC Sailbot Team was in attendance! Represented by two of our Mechanical Team Leads – Adrian Granchelli and Neil Dobie – and our Co-Captain – Karry Ocean – we showed off this year`s award winning and record setting boat. However, the main focus was to get influential people excited about the prospect of our transatlantic project and it was clear that the word of our project was spreading. Between Thunderbird 2013 posting a perfect score this year and the beginning of our project to cross the Atlantic Ocean and set a world record, UBC Sailbot was creating a buzz.

By the end of the evening we were the talk of the event. Some of the very important people at this event were representing the funds, such as the Walter Gage fund for example, that our team relies on. We got to talk with many of the attendees, a good number of whom were sailing enthusiasts, about the new challenges our team plans to face and conquer. As a team we are extremely excited about our project this year, and it’s becoming apparent that this excitement is starting to rub off. The Uniquely UBC event was a prime example of that, and we hope to continue creating excitement around our project moving forward!

Introduction to the GUI

by Arek Sredzki and Eleanor Wong

We want to make tracking the UBC Sailbot’s progress in crossing the Atlantic an activity that anyone in the public can partake in. In light of this, we have started work on a clean, simple, and yet still functional site design.  The design was inspired by the recent trend of minimalism.  These are some preliminary mockups for the transatlantic boat GUI for a widescreen monitor and a mobile phone.  We aimed for a simplistic design that will allow us to incorporate more information without cluttering the page.  On the tracking page, we plan to display real time statistics such as: current wind speed, average velocity (last 24 hours and total), distance traveled, distance to finish line, and the elapsed duration of the voyage.  This statistical info will keep the public interested and allow for everyone following the crossing to remain up to date with the boat’s progress.

Future mockups for the remaining pages of the GUI will include the debugging and about pages.  The debugging page will allow users during testing to view the raw data logs that the boat sends to our servers over GSM. In the past having this extra information has been an integral part of our testing process. The about page will provide visitors with more information about our boat and its features. We plan to start development as soon as a design is finalized.  We will appreciate any comments and suggestions on the current design, and any ideas on how we can make our transatlantic boat GUI better. Send all comments to

New look and content of

A new season is not a reality unless we have a new website content! Check out the changes we have made recently:

1. Simplified

We have simplified the website a lot, making it easier to find relevant information. We have organized the following four pages in addition to our blog:

  • How You Can Help -> How companies and individuals can donate to the team.
  • The Challenge -> Information about the International Robotic Sailing Regatta and the MicroTransat
  • What We Do -> Information about our project
  • Who We Are -> The team behind the project

2. New design

As you can see, the website now has a beautiful, new design. This will make our website much more enjoyable to read. It should also make it easier to read our blog on a mobile device.

3. More donation features

In addition to donations from companies, we are now to able to accept donations from individuals through our collaboration with UBC`s Start an Evolution donation website. This makes individual donations very easy to happen: just fill in your donation amount, your credit card details, and your mailing address to be able make a donation and receive a tax receipt from UBC! We hope you consider helping us make this amazing project come true!
Check out all the details on our How You Can Help section.

New season, new challenges

Portmagee, Ireland. One of the possible landing spots for UBC SailBot in 2015. Photo by Tobias Abel.

Portmagee, Ireland. One of the possible landing spots for UBC SailBot in 2015. Photo by Tobias Abel.

Welcome to a new season of UBC SailBot news!

The team has worked throughout the summer and beginning of the fall to plan for our newest adventure: crossing the Atlantic Ocean with an autonomous sailing vessel! We are planning to enter the MicroTransat challenge (, a 2,900 km (1,800 miles) journey from Newfoundland to the West coast of Ireland in 2015.

6 teams have so far tried this challenge, including the French Naval Academy, but nobody has succeeded so far. This is going to be our most challenging project yet, and we hope to be the first team to succeed when we launch our attempt in 2015. To complete this challenge we will use all the knowledge we have about robotic sailing vessels and apply the same winning 4-step recipe that lead us to winning the International Robotic Sailing Regatta in 2012 and 2013:

1. Design for the challenge using the best brains of UBC and our fantastic industry mentors.

new season, new challenges - design

2. Build the best vessel we can with expertize from the local marine industry.

new season, new challenges - build

3. Test the hell out of it!

new season, new challenges - test

4. Race!

Testing phase

Throughout our two-year project we are dedicated to showing you all the steps we are taking in this exciting new project from UBC SailBot. Stay tuned!