Building A Homebrew Robotic Lawnmower?
mmonkey writes "With the seemingly small amount of summer we get here in the UK, the last thing I want to be doing on a sunny day is mow the lawn. So I started thinking "surely a light-ish lawnmower could 'gain' a couple of motors, and suddenly be computer-controlled?". Then I started thinking about stuff like obstacle avoidance, optimum path planning, guidance system, how to get pretty-looking stripes, and I realised that it's actually a potentially complex (read: fun) thing to do. So, have any Slashdotters done this before? Did you modify an existing lawnmower or build a whole new one from scratch? What motors work best? For that matter, what type of mower works best? I know you can already get these, but that detracts from both my geek-drive and my wallet, both of which I'd prefer to keep as full as possible."
Yeah, I imagine it could be an even deadlier version of Vroomba.
I have something in common with Stephen Hawking...
Have you considered artificial grass? It comes in a variety of colors and never needs mowing. Mine is "Misty River Green". With the optional circulated brine heating system, you can have a lush green lawn all year around, even when your neighbors' lawns are covered in snow. I recommend GrassCo brand Artificial Lawn Carpeting with its realistic texture and patented Flow-Thru (TM) drainage system. As a homeowner and lawn care enthusiast, I can assure you, GrassCo brand artificial turf is the only way to go.
Unknown host pong.
Materials: (1) Self Propelled Lawn Mower
(1) long rope
(1) stake
Step 1: Plant stake in yard
Step 2: Tie rope to stake
Step 3: Tie other end of rope to lawn mower
Step 4: Start mower.
A friend's neighbour decided to build a ride on lawnmover. Problems arose when decided to take the mower for a test drive. The Blade guard was off and halfway through the test the seat collasped and he had to put his foot down. Needless to say he gets around really well on his new leg.
The safe way to do it is to have the thing run with very low power, and just nibble at the lawn, but do it all day. The big gas engine on the top of your push mower is really for the convenience of the operator, so that he can mow tall grass without stalling the thing or slowing down.
But if you mowed the grass yourself, one time, and then let loose your robot to simply maintain the height with a low power electric motor and some relatively safe blades, etc.... After all, it can stay out there all damn day!
eikimartinson.com
My dad did this just to get a chuckle out of the neighbors:
1. Get out your self-propelled "push-style" mower.
2. Measure the cutting width
3. Place a post in the center of your yard that has a diameter equal to or less than the Cutting Width / pi.
4. Tie the inner wheel of the mower to a rope that is fixed on the post.
5. Start mower at edge of yard and as it winds itself around the post, it pulls itself inward toward the center.
6. When finished, trim the edges of the yard and you're done!
Easy cheesy, and it'll make your neighbors think you're bonkers!
Yes, I would implement the following:
1. A _safe_ mowing method as you describe
2. The position measurement could be done with (ultra)sonic sensors and a transmitter on the mower. Doesn't work if you have to change garden often.
3. A power and communication cable. Can be cheap because of low power requirements because of 1.
4. A tower from where the cable goes to the mower and a mechanism to ensure that the cable doesn't get in the way.
Of course there is no obstacle avoidance etc., but I would start such a project in a modest size, not with all the 1000 features which _could_ be implemented!
As I'm doing such things also (Homemade microcontroller applications are everywhere in my home), I would say that it is far better to have a little thing working than big plans for a big thing but get nothing implemented.
There was an Autonomous Lawn Mower Competition going on earlier this month - saw it mentioned on robots.net
--The more you know, the less you know.
Suppose you made a grill for the bottom of the mower deck similar to that which covers the blades of an electric razor.
I suspect that if this worked, lawnmower manufacturers would have already done it for liability reasons. One thing about a grill is that it would probably clog for any non-trivial amount of wet grass.
-- "Makes Little Debbie look like a pile of puke!" - Moe Szyslak
you might end up with fewer cats hanging around the yard...
...or one cat all over the yard.
It is easier to build strong children than to repair broken men. -Frederick Douglass
If I was going to do this, I would start here (I've used their products for years).
. ht ml
http://www.tri-m.com/products/engineering/index
I would use the MZ104 CPU Board. They have a Linux distro you can throw on a DiskOnChip pop that in along with a regular old 64mb laptop SODIMM and you are good to go.
You can use the IR104 i/o board to provide 20 digital inputs and 20 digital outputs. This should allow you to hook up some simple sensors as well as giving you control capability. You may also need some sort of Analog I/O board, but I would avoid this for cost reasons.
The MZ104 CPU Board also has an I2C Bus interface with linux driver support. There are a plethera of different sensors available that you can directly read from this simple two wire bus.
These products are extremely affordable, rugged, low power and small. The entire system can run off of 5VDC. You can even lower the clock rate to save power.
If you do decide to go along with this, please add a wifi card and a web cam so we can watch it mow in real-time.... (uhhh oh slashdotted lawn mower)
You could obviously do this with something that had a lot less horse power, like an 8051, HC11 or Z80, but you would have to make up a lot of custom circuitry to get the job done. I like the modular nature of the PC/104 form factor. If you do opt for something with less power, I would definately make sure it has a built-in i2c controller.
Grrrrr... don't bother me, I'm thinking.
points to consider:
1. Make sure the robot does not take an interest in finding Sarah Conner.
2. Should you be enjoying a lazy day in the hammock while the mower does its job, and you hear some incidental music start up that sounds very 'AC/DC-ish', Get your sledgehammer or other non-complex machine based method of destruction ready.
3. Do not power the robot with alcohol. Take extra care not to power the robot with malt liquors such as 'Olde Fortran', lest your robot develope a penchant for petty theft.
4. klaatu barada nikto
5. Consider brushing up on Asimov's laws of robotics, just so's you get them right.
There are some people that if they don't know, you can't tell 'em.
Comment removed based on user account deletion
I think using "Big AI" like that would be the wrong approach, really. It is very difficult to get right and brittle to unexpected change.
:)
Since you are talking about your own lawn only (I assume), you actually have pretty good control over the environment. I would take a page from Rodney Brooks and from toy manufacturers:
First, as other posters have suggested, go for a weed-whacker or other smaller, less dangerous cutting design. Compensate by planning to have it running for long periods of time, like an hour daily, essentially making it a "touch-up" design, relying on manual mowing if you let the grass get away from you.
Second, basically forget about complicated, error-prone sensor packages. Use the minimal amount of sensorics you can get away with, and tailor them specifically for the task at hand. I would use one single front-and-sides bumper, set at exactly the level you want the grass to be cut.
Third, tune the environment. If you have a fence, that will work fine. For flowerbeds, ponds, cobra pits and other garden features that you don't want it to run into, set evenly spaced (rounded!) wooden pegs at the edges, so the bumper has something to run into. If you think pegs will be ugly, be creative: rocks, small fencing, whatever. It needs to be only as high as the bumper - which we alreadey set at the level of the grass.
For control, start out easy. "If we hit something, back up a few centimeters, turn a random amount and go." This can work surprisingly well if the lawn isn't too big. You can even figure out approximately how long you need to run the robot to get reasonable coverage. An added benefit of this Brownian Walk algorithm is that you really need minimal sensors - the bumper is it. You can experiment with some fancier algorithms as well - initiating a turn after some time whether you hit anything or not, for instance, or turning off altogether if you've been going forward for a very long time without hitting anything.
If you want to add some more sensorics, like shaft encoders for the wheels, you can start to play with dead reckoning and do dynaimc map generation and other funs stuff. Even with lousy precision, you can still figure out an approximate average on how much time you've been using to cut a given area, and compensate for it by going (approximately) there for some extra random walking.
As long as you can keep the unit simple, it will tend to be robust, and perhaps inexpensive enough that you can build two or three and cut the time (sorry) by quite a bit.
One important thing: make sure you have a safe, convenient way to turn the thing off. Big red button on top should do it. Have the red top be translucent and add a couple of blinking LEDs inside for that "heavy industry" look that will make you the envy of your neighbours.
And yes, BTW, I am a robot scientist, so I sort of know what I'm talking about
Trust the Computer. The Computer is your friend.
and the sheep's poo make fertilizer for the lawn, so it's a perfect system, sheep trims grass, sheeps digests grass, sheeps return fertilizer to the grass, grass growns better.... and so on
Putting a windows cd backwards, plays evil messages, but it gets worse, putting it right, installs windows.
You will need 802.11b to send this data back to your machine, also run tthhttpd on the machine, so you can address it AND access it via the net, I haven't seen a website running off a lawnmower, so that would be geeky.
Webcam would be nice. If however I r00t ur lawn mower box, and cut your geran1umz bi4tch then it is ur f4ult 4 n0t being l3et and patching your lawnmower.
I don't know if a solar panel about 2ftsquare could run an x86 with linux, and a HDD, and the necessary webcam, and 802.11b.
mmm.
You could setup webservices to allow people to subscribe to lawny, and he could drive aroun dyour whole neighbourhood, whoring itself out and 'mowing peoples lawns'
yeah.
alternatively concrete over the grass.
I dont care how it is built. all home brew mowers need a speech synthesiser and a loudspeaker that constantly says....
"ERROR...ERROR... Must kill all humans!"
It will keep the kids and neighbors away from your yard when it's mowing.
Do not look at laser with remaining good eye.