Objective Comparison of Virtual Sailboat Controllers

Sail Challenge 1.2 is now available for download. See if you have what it takes to create a virtual sailboat controller!

The Sail Challenge package consists of software in C that includes a physics model for a virtual sailboat, and a virtual yachtsman, or controller. The object of the controller is to circumnavigate a circular island. The purpose of this is to allow anyone to substitute their controller for ours, and see how it performs.

The main new feature in this version is the ability to repeat the virtual sailing run many times. Each run is different because of the variable winds, but the multiple runs allow computing an average time for sailing around the island. This average time may be used to clearly decide if one controller is superior to another. Crashes are considered in the calculation; if the boat crashes into the island a lower computed value will result.

Although any technology may be used to create the sailboat controller, some readers may wish to use EvSail 2.3 (also available for download through our website). This software can evolve an ANN that does a good job of controlling the virtual sailboat. The "extract" program, included with EvSail 2.3, lets you isolate one ANN descriptor and save it in a file. This ANN may then be used as the data file for SailChallenge. Try evolving one that is better than the three provided with the package. When you are done, and think you have created something as good or better than our controllers, then let's compare yours to ours. By doing so you can help in our experiment of creating a virtual yachtsman.

We have included an example controller and the sailboat physics model from our EvSail program to get you started. The example controller is an artificial neural network, but yours may be hand coded, or use any technology that appeals to you.

There is a circular island, which the sailboat is supposed to circle in the contra-clockwise direction, and not crash on the beach. The program will start the sailing run from a random starting position. The wind will vary in a semi-realistic manner, gradually changing in strength and direction. Your task is to create, by any method you wish, a replacement for the controller function. A successful controller() function will efficiently circle the island, always moving contra-clockwise in spite of varying winds.

Annevolve team members have created controllers that sail around the island better than 90% of the time. We know this figure can be improved upon, so show us your stuff and start creating your own virtual yachtsman.

More information about this challenge can be found in the ReadMe file included with the program at:

formatting link
The Annevolve team is experimenting with the Evolution of Artificial Neural Networks (ANNs). They are combining the two fields of Artificial Neural Networks and Evolutionary Computation. Find out more about EvSail and other ANN programs at the Annevolve project at:
formatting link

Reply to
zanke
Loading thread data ...

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.