Portolio of David Elkan-Gonzalez

Our simulated robot demonstrated excellent tacking behavior

This is an example of our arbiter, which fuses multiple desires of the robot.
Simulated Sailboat Nav
Team Size: 4
Project Duration: 3 weeks
Year Completed: Sophomore
Key Skills: LabView, Robot Nav, Physics
For a robotics course at Olin I worked on a team of four to program a simulated autonomous sailboat. This simulation included much of the complex physics a sailboat must deal with, particularly the effects of wind and water resistance. Our job was to have our sailboat navigate a simulated harbor by manipulating only the rudder angle. As is the beauty of simulation, by assuming perfect sensor data, localization, and controls we were able to focus our efforts on the boats' behaviour.
The primary method of selecting the sailboat's course was by use of an arbiter. The arbiter took in the three main goals of the robot and determined which direction to take. Each direction receives a different value from each of these goals, and these values are combined to determine the most desirable direction. The first of these goals is in fact the goal; the boat wants to head in the direction of of it's goal. The boat used interstitial goals along a path to avoid pointing the robot through land obstacles to get to it's goal. The second goal speed; our sailboat is a speed-demon at heart. Speed is primarily dictated by the wind direction. By always seeking higher speed, the boat avoids heading too directly into the wind, which would stop it dead in the simulated water. This final goal was obstacle avoidance, which casts a powerful negative vote in any direction that will result in an imminent collision. By combining these three desires in an arbiter, our simulated boat displayed excellent navigation behaviour, including some pretty effect tacking behaviours