1. A system for navigating an unmanned waterborne surface vehicle safely to a desired location, comprising: one or more sensors configured to be mounted on an unmanned waterborne surface vehicle, said one or more sensors configured to detect the presence of one or more objects different from said unmanned waterborne surface vehicle in the vicinity of said one or more sensors, each of said one or more sensors having a control terminal configured to allow control of said sensor, and each of said one or more sensors having an output terminal configured to provide a signal representative of said presence of said one or more objects different from said unmanned waterborne surface vehicle; and a general purpose programmable computer including instruction recorded on a machine readable memory, said general purpose programmable computer operatively coupled to each of said one or more sensors, said general purpose programmable computer when operating under said instructions configured to perform the following steps: (i) controlling an operational state of each of said one or more sensors, said operational state selected from the group of operational states consisting of an on state and an off state; (ii) receiving from said one or more sensors one or more respective output signals representative of the presence of said one or more objects different from said unmanned waterborne surface vehicle; (iii) deducing from said received one or more respective output signals whether there is present said one or more objects different from said unmanned waterborne surface vehicle; (iv) if there is present said one or more objects different from said unmanned waterborne surface vehicle, computing for each such object a location, a velocity and a heading; (v) applying a first set of rules configured to direct said unmanned waterborne surface vehicle to reach a desired location; (vi) applying a second set of rules configured to direct said unmanned waterborne surface vehicle to avoid each of said one or more objects different from said unmanned waterborne surface vehicle that are present; (vii) generating a command to be issued to said unmanned waterborne surface vehicle to operate at a particular velocity and along a particular heading, so as to approach said desired location while avoiding a collision with each of said one or more objects different from said unmanned waterborne surface vehicle that are present; and (viii) iteratively repeating steps (i) through (vii) until said desired location is reached.