I am pondering on building a practical learning lawnmower robot (could be Arduino based) and I am wondering if this will work.
The robot will be both autonomous and RC (radio controlled). Given some specific lawn, the robot will first learn the path it will have to take via RC. So initially the user has to use RC to control the bot to mow the lawn completely. Necessary data will be recorded by the bot, to be used in later autonomous sessions.
To keep things simple, the RC controller will have only a 2 buttons: rotate (0 radius) and go (forward). The path will then be made up of straight segments (i.e. in a zig-zag manner).
So basically, when learning the path, the bot will record the angle (by mean of an onboard IMU) and length of every straight segment taken. In an autonomous session, the bot will first be placed at the START point, and will just re-play whatever has been recorded. It will ensure recorded angles are maintained, and segment lengths are covered precisely.
I understand that using this strategy, if there are new obstructive objects that emerge on the lawn (lamps, sprinklers...) , re-learning will be required. But I guess that this is still much better than the bot having to improvise everytime it mows the lawn (very likely the same lawn). The advantage of this approach is that it will be much cheaper than fully-autonomous approaches, and might even be more efficient.
- Do you think this strategy will work, or there are deal-breakers I haven't thought of? What else do I need to consider for this to work?
- What kind of motors (stepper, servo, DC with encorder) will be most suitable for this application?
If you can even recommend a specific motor model, that would be great.
I am obliged to any thoughts that you could share.