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."
I'd make sure its plenty safe. I'm not concerned about you, but picture a mis-programmed robotic lawnmower chasing the neighbors dog, or worse, trying to run over a child... :|
How about a goat? Maybe a sheep? Set one of those bad boys loose and you'll have yourself a short lawn. Obstacle avoidance and everything built right in.
Make sure to code-in police avoidance for when your unattended lawnmower runs over your neighbor's feet while he sleeps in his lawn chair. On the bright side, you might end up with fewer cats hanging around the yard...
...the sunny days during your short summer. To correct this, you will spend time indoors hacking away and making a homebrew robotic lawnmower.
The best part will be you will have perfected it by the end of August.
My first reaction was, "Well, you linked to what looks like a small business site, so either that site's going down or the hosting fees with bankrupt the company". But I digress.
that detracts from both my geek-drive and my wallet, both of which I'd prefer to keep as full as possible."
Well, I think your wallet's going to be drained either way. You need specialized components, software, etc for a completely automated solution. And even that's not going to be the end-all (corners, adjacent to fences, etc)
I would say start with a remote-controlled (as opposed to computer-controlled; mods, there is a difference) solution, see if you can rip apart some RC Cars, take their steering equipment out, see if you can interface to them using a RC Helicopter Remote or RC Airplane Remotes, connect up the servos, and perhaps sprinkle some detectors around your lawn.
Computer controlled would be difficult, to say the least. Perhaps even a Masters level thesis or a really good undergraduate senior project. Hell, if you can make it fairly cheap and efficient, you have your own business.
So, let me get this straight ... your solution to avoid an afternoon of mowing the lawn is to spend several months automating your lawn mower?? Sweet.
Skiers and Riders -- http://www.snowjournal.com
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.
Back before everyone had the internet Popular Electronics (or one such magazine) had a couple articles on this. Lookup it up in the library, you did get the skills of searching in school, didn't you? They operated on batteries, but you could do whatever so long as your managed to power your computer.
The idea was a bunch of sensors, made up of LED senders and receivers. Mow a path around the yard, plus around any trees, and then turn the mower on. It should attempt to keep 2 sensors out of grass, and the rest (~20) in the grass.
BTW, mini-itx boards now have 12 volt power inputs, so things should be easier in many respects.
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.
Those big trak programmable toys really didn't do all that good a job of making ninety degree turns. They worked best on floors and poorly on everything else - my cousins had one and I got to play with it like once but it didn't do what it was supposed to do. It was still neat, though.
There are other problems with your plan, such as the fact that most lawns are not perfect, empty rectangles. Even if you can accurately track how far you are traveling and how far you have rotated, it's going to be a little more complex than just making a couple of right angle turns. If the problem were that simple, meaning you had a level, flat, even rectangular yard with nothing in it but grass which had already been carefully mowed not more than a day before, you wouldn't even need robotics :P
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
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!
AskSlashdot: Building a homebrew prosthetic foot?
If you really want to be different consider an autonomous swarm of mowing machines. The guts of a Roomba would be a good starting point! I'd like to see a self-organizing mesh network created by the mobile mowing agents.
Good luck - I'd love to see this when you're done!
Weedkiller + Green paint. Mix. Apply.
Engineering is the art of compromise.
First, get yourself a couple of Lego Mindstorms kits (so you have all the motors ans sensors you might require), and work up a useful collision-avoidin/path-cutting bot in your living room. maybe put it on a big sheet of paper, arm it with a felt-tip-pen, and tweak it's path-cutting algorithms like that.
Then, if you want to do more complex things - IR rangefinding, ultrasonics etc. strap a PalmPilot, Zaurus or some other PDS with IR on it and feed the midstorms controller unit with instructions from that.
Once you have it more-or-less foolproof (and you will probably want to run a wire round the maximum extents of your lawn and have a hall-effect or similar sensor pick up on it and kill the mower if it breaches that boundary) - then you can think about attaching a proper mower body and blade to it.
Then you'll probably want to port the whole thing to an embedded Linux u-Controller, and sell it for enormous profits.
I gots ta ding a ding dang my dang a long ling long
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.
"The Black Moomba - As dangerous to grass as it is to small pets".
He he he.
Comment forecast: Bits of genius surrounded by a sea of mediocrity.
http://www.robotshop.se/micro/wwwrc_us/indext.htm
robocut
Might be an interesting kit.
You should read an excellent book: "Flesh and Machines: How robots will change us". It is written by Rodney Brooks. His company (iRobot) was behind Roomba design. The book explains algorithms used in it.
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
That's an interesting idea, but I doubt you could get the grill fine enough to prevent fingers from entering without.
The underlying problem is the amount of kinetic energy you have in a spinning blade. The less kinetic energy, the safer. A spinning fishline is going to be safer than what amounts to a giant spinning knife.
Of course the reason you need the kinetic energy is so you can cut a lot of grass very quickly. With a conventional lawn mower, you can probably mow about a square meter or more per second. It cuts down on the drudgery time. But since the author is building a robot, drudgery is not an issue. So why not go slow?
I am imagining something that is very, very slow. Something that moves slowly from place to place gently cropping a tiny amount of grass at a time. In other words, an electric sheep (with apologies to Phillip K Dick). You'd calibrate the jaw strength so that it is enough to rip up a mouthful of grass easily, but not so strong it would sever a finger. You could get a nasty robot bite, but it wouldn't require a trip to the neurosurgeon.
I like the sheep idea because it leads off in more interesting directions. I'd think you'd run out of ideas for a robotized conventional mower. With the electric sheep, you can set a number of more interesting goals than having it walk a predetermined path. For starters, you could give your robot sheep a simple vision system so it could perceive the edge of your walk and touch up the edges. What would be interesting is to train it to visually recognize certain objects: it perhaps could recognize common lawn pests like dandelions or plantains and give them an extra close crop. Maybe it could retrieve the paper the paper boy threw onto the lawn and put it on your front porch. Maybe you could teach it to recognize beer cans and throw them in a recycling bin. You could make several of them and have a flock and begin to program them to interact in interesting ways.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
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.
Hmmm, sheep runs on the grass it eats, nibbles all day and is not particularly noisy. Better still, unless it is a Ram, it's unlikely to chase the neighbors. :)
-All that is gold does not glitter - Tolkien
www.ra
In other words, an electric sheep
mmm electric sheep.. now where's my magnetic gloves and kneepads?
Suchetha
learn from yesterday, plan for tomorrow, party tonight
or one out of three ain't bad
Pic Started mine about 11 years ago. The mechanical platform was a roboticized Toro 4hp mulcher using a permanent magnet motor driven backwards to generate power for two beefy wheel drive servos and the electronics. Fully autonomous. Narrow beam ultrasound sweeping the forward path for semi-coherent vision. No external environment markers used except where there aren't any objects to range off of for 20 odd feet. You walk it through the lawn once and it makes an internal map of the environment and the path you chose it to follow. Then, just plop it down and hit the start button next time. Works infinitely more efficiently than the commercial attempts at *cough* autonomous algorithms the crux of which is which way to turn after boffing into the perimeter wire or an obstacle. Rev. 2 is going to go battery-powered for safety and you'll have to "show' it where the charging station is. Wish I'd had money to take it commercial.
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.