Knowledge Discovery from RoboSail data


From the thirteenth of January 2000, the RoboSail software was able to store information about the boat and its environment in an onboard database. This information initially consisted of sensor readings from the Brooks & Gatehouse network, the Furuno GPS and the Intelligent Rudder Control Unit. Additional information about the current sail settings, the amount of ballast, the canting angle of the mast and the keel angle of the boat was manually input by the skipper. Altogether, 27 different pieces of information (also called attributes) from the sources mentioned before were recorded in a state (or record, in database terminology), once each second. Such a state can be seen as a snapshot of certain properties of the boat and its environment.

Up to this moment, the database has grown large in two directions: Of course, the amount of states got bigger by simply recording various sailing sessions. Besides the states, the amount of attributes has more than doubled. This has a couple of reasons:

• Motion sensors were added to measure the boat's movement in its six degrees of freedom.
• A new compass was added to the system. Besides an additional attribute, this also resulted in more states being created each second, due to the compass's high frequency of delivering information.
• The software system got bigger and more complex. This resulted in several additional attributes, providing internal information.

Currently, the database contains 61 different attributes. Their values are recorded in states at a frequency of ten times per second which, until now, has lead to a collection of more than thirteen million states. Taking into account contemporary Artificial Intelligence technology, it is possible to gain knowledge from this database.

Learning properties of the boat
When designing a yacht, certain assumptions are made bout, for example, the optimal wind angle or optimal boat heel. A simple example of such an assumption is: "If the wind speed increases, the boat's speed will increase as well". These assumptions usually are made by using physics calculations and / or simulation. Given all the information stored in the database, it is now possible to empirically learn the same properties. Basically, such a property looks as follows:

IF attribute1 = A1 and attribute2 = A2 and …. THEN goal = optimal

Again, an attribute is a piece of information about the boat and its environment. When the goal is defined, the pattern of attributes belonging to that goal is found in the database. Obviously, such patterns can only be found if they also exist in the real world. An explanation of how to learn such patterns is beyond the scope of this web page. For more in - depth information, an interesting reference is the Carnegie Mellon University site. Also the book "Machine Learning" by T. M. Mitchell explains various topics.

Currently, some results have been achieved, showing non - trivial relations between apparent wind angle and the boat's optimal speed.

Learning to sail
It is necessary to take a closer look at an if - then relation as described before. Maybe surprising, it is really a very small step to change such a rule into another rule, stating which action to take in each situation. Only two things have to be done:

• One of the attributes on the "if-side" of the rule must be a description of an action taken by an experienced skipper.
• The goal at the "then-side" of the rule must be a description of the boat's performance (for example, velocity made good) in the near future.

This means that if the database is being enriched with extra attributes describing the skipper's action and a performance measure, rules can be learnt, stating which combinations of situation and action led to optimal performance. It is easy to see that these kind of rules actually describe how to sail the boat like an expert human sailor.

Natural Language
The rules learnt from the data contain lots of numeric information, for example "apparent wind angle < 47.3 degrees". It would be convenient if such rules were expressed in language spoken by human sailors. For example, 47.3 degrees AWA can be expressed as "sailing upwind". Also combinations of attributes like the boat's rudder angle and turning rate will be expressed in concepts like "to luff".