Newsgroups: comp.robotics
Path: brunix!sgiblab!sgigate.sgi.com!olivea!charnel!yeshua.marcam.com!MathWorks.Com!europa.eng.gtefsd.com!howland.reston.ans.net!torn!nott!cunews!ccs1.carleton.ca!Brian_Sullivan
From: Brian_Sullivan@Carleton.CA (Brian Sullivan)
Subject: Re: []  Robot mower (designed by Belgians, built by Swedes, driven by no-one) 
Message-ID: <Brian_Sullivan.26.2DAE901E@Carleton.CA>
Sender: news@cunews.carleton.ca (News Administrator)
Organization: Carleton.CA
X-Newsreader: Trumpet for Windows [Version 1.0 Rev A]
References:  <Co9w4r.CwD@cs.uiuc.edu>
Date: Fri, 15 Apr 1994 13:01:18 GMT
Lines: 42

In article <Co9w4r.CwD@cs.uiuc.edu> kadie@hal.cs.uiuc.edu (Fwd:) writes:
>From: kadie@hal.cs.uiuc.edu (Fwd:)
>Subject: []  Robot mower (designed by Belgians, built by Swedes, driven by no-one) 
>Date: Thu, 14 Apr 1994 23:34:02 GMT


>c) Reliability: This must depend on precisely how intelligent its program is. 
>It can't simply stop when it hits a tree, so what does it do? Back up and 
>charge again? Try a random turn? What happens if it hits your foot, and you 
>then move out of the way? You can bet that even if you have more sense than 
>to get in its way, your kids will have hours of fun trying to convince it 
>that they are a tree! If it maintains a database of the terrain, this could 
>seriously blow its tiny mind! :-) On the other hand, it must somehow avoid 
>mowing the same little patch over and over again. Does it remember where it's 
>been? (Software Engineering coursework assignment: "Design an algorithm using 
>a pseudo-random number generator to ensure that a Turtle covers the whole of 
>a piece of lawn 2,000 sq. ft. in area in a given time irrespective of the 
>shape of the perimeter or the presence of interior obstructions." - That 
>should keep the students busy! :-) 

Here is the algorithm I inend to use on my dust bot:

do forever{
     If night
          /*Sleep */
          wait 1 hour
     else if day and battery low
          /* Feed */
          wait 1 hour
     else if day and battery low {
          mow forward till you encounter an object
          backup up a foot 
          turn a random number of degrees away from the object
     }
}

If you model this behavor, you will notice the central area is covered, quickly
however is you add a bit of smarts to the collision routine, so that it 
follows the object it hit for x feet befor the random turn ...

So what if you mow the same are several times?

