Let's Make Robots!

My first project, lawnmower...



Im new to this forum, and new to robotics in general. The same could be said abou my knowledge about microprocessors and programming language (other than .html notepad stuff).
 I have some basic knowledge about electronics, but nothing worth braging about.

But, i have been thinking about starting on a new project soon (I'm currently in the finishing stages of a little cnc project i have for cutting out rc airplane foamies...) which i would like to start this fall, and hopefully be done with before next summer.

I have for a long time been interested in microprocessors and what they can do, but I have not seen any projects that i really cared enough for to try out for myself as a first project (nothing that has had any real practical value for me), until I started getting bored with mowing the lawn this summer.. (lazy, huh?).
 Therefore i have been reading up on different automated lawnmower projects out there on the internets, and i havent found alot, i found some commercial ones, and i think one on this page.

But i have figuered some things out for my self about what i want and a coupple things i can see i need.
I havent thought much about how much this project will cost, but im thinking something in the range of 4-6k NOK; that would be about 450-700 EUR


I need a frame for the thing, thats something i can handle by welding together some steel squared pipes and some sheet metal.

I need something to make it go forwards, backwards and such, so im thinking about a coupple wheelchair motors with wheels ive seen on ebay, since they usualy come in pairs for left and right. And having two motors makes steering possible without using servos to turn the wheels in front. I would probably also need some kind of speed control for these, it might depend on what kind of controller you think i should use.

I also need another electrical motor and a blade for the cutting, this is something i think i will figure out when i actually have started the project

Since im probably going to use wheelchair motors, the voltage would be 24 volt, aka two 12v batteries.

What i absolutely dont know is which sensors i "need" and what kind of microcontroller i should use etc. 

I figured i need some kind of bumper switch or radar or something, which makes it go around obstacles that can happen to be on my lawn, also some kind of sensor which makes it stop entirely when it senses movable objects as cats, dogs and kids.
I need a tilt switch or a gyro or something to make it stop if it gets tilted so that blades are accessible or it gets turned over or something like that.

But some of the things im most curious about is navigation of the thing, i've figuered i would need some kind of remote control of it, preferably wireless. But what im really curious about is the automatic navigation system. I have been looking at gps, which i have found out to be either to inaccurate or too expencive; i might be wrong though. I figuered i would need some kind of electrical dog fence as a safety guard so that it would not exit the lawn. I have also looked at the commercially made one called Robomow, which cuts the grass in zig zag order, and thats something i find somewhat impractical. What i really would like is to teach it a specific path and order to follow, and have it learn something about the surroundings while i teach it, so it wont get "lost". But how? And maybe, can i use gps?

I'm also curious about what kind of microcontroller or what kind of processing unit i would need for this, and that be preferably something not too expencive and relatively newbie friendly..

So, if you can help me with any of these sollutions, have links to other projects like this, have any questions for me, or can give me somekind of helpfull knowledge about the subject at all. 

In short, i would be really gratefull for any feedback i can get.


ps. I know this project might be kinda advanced for a newbie, but i've figuered the more advanced a project i start, the more i learn. lol xD





Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

You can use wheel encoders to follow a set path. Combined with other sensors it can be fairly accurate. If you have it begin at a start line drawn across the lawn with a laser or shielded IR diode the robot only needs to do 1 preprogrammed loop at a time. When it gets back to the line, it starts over with the next smallest loop. Doing that should prevent the error building up.

Al1970 mentioned the specially designed blades. I have not seen the underside of an electric mower myself, but thinking of different cutting mechanisms I am reminded of those old style push mowers with the rotating barrel of scissors if you know what I mean. If you disconnected the wheels from driving the blades, a 3rd wheelchair motor would probably have enough torque AND speed to turn the blades.

Firstly i must say thanks for the feedback :)

 After a bit concideration i have to face the facts that i really dont know anything about robotics, and this is a huge project.

But i still think it's do-able, and im pretty sure i'm still going to try doing this.


As navigation is the thing i have the most problems with, i've come up with an idea and concidering i really dont know any programing (i will have to learn as i go) i hope someone can shed some light on the matter.
so here's my thought;

I use wheel encoder as an odometer to mesure how long it has to go before turning etc, then i use an electric compass to make it accurately turn in the preffered direction. I use rfid tags that bury in my lawn to make checkpoints for different loops. I would also need sonar, to detect random objects and make it it go around them - i would also need the compass and wheel encoder to interact with the sonar, so that the lawnmower can get back on track.  

also some sensors to make it stop when it sees moving objects like humans and pets. 

If the lawnmower does miss a checkpoint it should start in a random movement pattern to try and find a checkpoint and get back on track. 


as to the actual cutting part of the grass i see this as no real problem, i can either use as ezekiel181 says and use an old manual type of lawnmower and hook it up to motor or something like that. I could also use a slightly less powerfull but high rpm motor and wires, like the clippers used to cut the edges of the lawn. 

 Im still curious as to what kind of processing unit i would need for this though, Al1970 mentioned PIC, and it seems interesting, but how newbie friendly is it? and is there any good place on the net where i can read up on them?


Is it possible to make the programming on the lawnmower so that i can the first time, walk it around (using remote control or something like that) the lawn and register the loops as i go around with it, kinda like teaching it and assign checkpoints etc. Since i think this would be the most practical way of doing it. 



- Tor

As i come to think of it, i think i will put this project on hold for a while, and start on a smaller project using an arduino mega.

I've figuered since arduino programming is similar to c, which also is something i really would like to learn, it would make a good starting point for me, i chose the arduino mega since it have alot of ports, and i therefore maybe can use it on the lawnmower in due time. 

It's not that i dont want to make the lawnmower right away, its just that i should really learn something about microcontrollers and sensors and such first, some time to scavenge parts would also prove sensible.

So im putting this project on hold for a few months, so that i swallow too much work at the start of my new hobby of robotics and goes tired.


But if you have any ideas on the project, i would gladly and apreciatively hear them, since im most definitely going to go through with it as soon as i get some insight in how theese things work. And after a while i might actually understand what your thoughts are xD

*eagerly avaiting the Atmega1280 Arduino Mega which i just ordered*



Compass and accurate are 2 words that don't really go together well. I have a Devantech compass, and there are a number of influences that can make the readings somewhat off, from electrical motor operation, to buried cable, to large metal objects nearby.

Navigation can be made more accurate through the use of an IMU, inertial measurement unit. This is typically 3 axis of gyro sensors combined with a 3 axis accelerometer and some decent programming. Commercial versions may also include a magnetometer. 

The mower could be programmed to do whatever you like, but safety is the primary responsibility when building something like this. The Friendly Robotics mower has a tilt switch to tell when orientation goers above a certain measure to shut off the mini blades. It runs 3 sets of small blades to limit damage causing possibilities. Bumpers and obstacle detection needs to be all around to prevent backing over something as well as avoiding hitting it going forward. Here's a lesson in what can happen.

AVRs are a very capable micro. They have a large following of experimenters and professional developers at AVR Freaks. There is even a guide posting to help get started with the AVR. A ready platform that has an easy form of C programming using the AVR is the Arduino.  It might be useful in running a very basic mowbot.

There's also a Robomower group on Yahoo that goes over some of the bits of commercial robot mowers. 

Thanks for the thorough reply :)

I actually read that story about the dane who got hit by a mower, and i am all for making it as safe as absolutely possible before putting it to use without supervision, and a tilt switch is absolutely necessary even though my lawn and the area around is all flat. 

 As i said in my last post, i am postponing the lawnmower project until i have obtained some knowledge about microcontrollers and sensors. 

I had never heard of AVR before, not in the sense of the name at least, but i have now just an hour ago or so, bought my self an arduino, i also bought a motor/stepper shield for it. 

Im also a bit proud to be norwegian now that i found out about AVR origin :P lol




Hi tsknutsen,

As for the buried fence.... check out this:


The navigation and design on that website are 'interesting' but the schematics are good.


this is actually better: 




Thanks Ycd,


I dont know if thats what you meant, but after seeing that lego one, i figuered it would probably be easyer and alot more accurate if i make like a "follow the line bot" and bury a wire throuought the whole garden.. It wouldn't be to much work, i can just make a plow who makes a small ditch just beneath the grass and pull it in the desired pattern for the lawnmower, kinda flips the grass to the side... Of course, i would need alot of wire though..

But that would work right?



Line following for a lawnmower is an option:

1) simple; the 'brain' is not complex
2) loads of examples around
3) your mower will cover all the grass (guaranteed) well... if you stick the wires in the right place
1) you need a LOT of wire. Lets say you have a lawn which is 10m * 10m (30feet) square shaped. A mowing width of about 30cm (1 foot). Then you would need:   i have about 900m2 of grass around my house and assuming a mowing width of about 30cm I would need roughly 10*10*3=300m of wire. The circumference is only 40m. If you go to 15*15m it gets to 675m!!
Trying to get a signal through a wire that long.... I don't know if that would work.
I am working on the same project ;-) and a 'fence' approach I find more viable. My lawn is 30*30m so I would need 2700m of wire that is almost 2 miles!! no way I am going to put all that effort in. I doubt it would even work with wires that long and I don't want to make lots of parallel systems.

Making a simple line following robot IS a good way to start though, regardless of what your ultimate goal is. Numerous people have made nice working examples on this website so I suggest doing that anyway, and take it from there.

My approach (for now) regarding the navigation of my mowbot is:

Take a running platform (a 10euro RC car).
Modify it so it can steer properly
Put a wire on top of the grass in a closed loop (jus to test)
Put a sensor on it (the lego one is nice)
Put a brain on it (I am going for PIC)
Program it in such a way that it will 'randomly' drive around but when it hits the fence it will change direction
put the car INSIDE the wire fence and see what happens ;-)
that way it will cover all the grass (eventually). It's the system most commonly used by commercial lawnmowers.

When I have that running I will start thinking about improving the 'random drive' into something more fancy with odometers, a map,gps,navigation beacons whatever will add to the accuracy (some of them imply upgrading the brain)

And only then I will start making the real lawnmower bot. I considered developing a positronic brain for it but since my name is not Dr. Noonien Soong I will have to start building this thing from the ground up.

Take care



I've been working for 2 years on my project of lawn mower and there is still a lot to do. First keep in mind that the hardware has to be tough ! moving in the grass is like climbing a no-end hill ! if you want have a look on mine

I will try to maintain my site up to date.

For sensors, you want some sort of ultrasonic-based rangefinder, such as the PING))) or SRF05. Infrared will not work in sunlight, so Ultrasonic is how you want to go. It's to make sure you don't run over anyone. Second, you may want a battery power sensor, so if it runs low, it goes back into the shed and recharges. Third, a GPS sensor might help it, by letting it navigate coordinates around your yard.

For MCU, I reccomend a Picaxe. They are cheap and easy to program for beginners. You could also get a slightly more expensive Arduino, with a very powerful programming language. If you are willing to learn it, it may be worth the money.