Simple weeding robot - easiest place to start?

Ok, so I'm wanting to set a challenge of building a weeding robot to:

a) learn arduino
b) save my sanity (and raised beds) as our two toddlers are taking every hour of the day, so little time for weeding...! :wink:

Tasks:

  • Weeds will be hacked down by a small strimmer fitted underneath the robot
  • Wheels will be 3d printed with spikes in them to help disturb soil/rotavate etc

Approach:

  • Small robot (maybe 15cm in size)
  • four wheels and one downwards facing strimmer
  • robot will be 'dumb' so just bounce around randomly across the raised bed choosing random direction when it hits the wall of the bed
  • I'll 3d print some protective collars to ensure it doesn't strim plants I want to keep (could potentially use metal or some sensor in this to trigger a response

Current Plan:

  • Will use 3d printer to build chassis, wheels etc
  • I was thinking of using a sumobot set as a starting point

Ask:
Can anyone suggest a good place to start this?

It feels like something that might have a few existing tutorials for vaguely related projects - eg a robot that bounces around randomly off walls etc would be most of the way there...

Many thanks in advance for any advice!

1 Like

That’s in the too difficult pot ( how does it know it’s a weed); plus children and rotating cutter ?

Besides cutting the tops off weeds will not kill them , may even help them spread

Have to agree with @hammy. This is a very tricky project to start with, and spreading the weed cells doesn’t seem like a good place to end.

Can you post a photo (in-line), of the area and weeds you’re interested in removing.

Detecting the presence of a small plant (over another object, or just a bump in the soil) is very hard.

Detecting what kind of plant (wanted or not) is a whole extra level of difficult.

That comes before the questions of control and so.

It's going to be easier to teach the kids to do the weeding for sure!

Sorry folks, wasn't clear with my description of 'dumb' - agree, I'll leave the neural net driven botany expert robot for at least my second project... :wink:

What I'm looking to do is have a robot that simply bounces around a raised bed strumming and disturbing the soil with spiked wheels with no care for what it's strimming.

It will bounce against the side of the wooden raised beds to contain it.

The only thing I then need to do is 'preserve' the plants I want from this rampaging robot, which I was planning to print plastic tubes to clip around the plants I want to keep so it doesn't hurt them (think like a toilet roll tube size)

It's kinda like a dumb roomba if that helps describe?

The strimming is an established practice for weeds - it won't kill them, but by strimming every day it exhausts them and eventually they die.

Does this help describe?

  1. Roomba-like bot that bounces around mindlessly
  2. Some sort of collision detection to randomly change direction (could just be contact, could be distance detection, could be metal etc).
  3. One strimmer motor that just spins constantly

alphabeta279:

  • Small robot (maybe 15cm in size)

I share all the other reservations that have been mentioned plus at least one other.

I don't think a 15cm robot will have sufficient mass to be useful for a task like this.

For example I doubt if the spikes would penetrate the soil.
For example I suspect if the strimmer cord encounters a tough weed it will the robot that goes flying, not the weed.

You may scale down the robot but the weeds will still be at 12inches to the foot scale.

...R

PS ... if you have all the free time that would be necessary to develop this project then there is no shortage of time for weeding. Developing a robot will require significant stretches of uninterrupted time - in chunks of one or two hours. You can do a lot of weeding in a spare 10 minutes - even with a child tugging at your sleeve. Indeed the shared time and experience will also be good for the children.

I don't think a 15cm robot will have sufficient mass to be useful for a task like this.

Really - I can't follow your logic (either in botanically sense or a mechnical sense) - there's plenty of similar sized robots doing exactly this, eg: https://www.youtube.com/watch?v=akc8HoCxC7c

I can't see how a small weed is going to send a 15cm robot with the mass of its battery, motor etc flying?? Even a full heavy duty strimmer never encounters this as any mass would be absorbed by cable flex.

I'm surprised at how difficult this is being described? (degree in electrical engineering BTW, software development etc - really looking for pointers towards similar libraries/models etc to save time)

Am I missing something here?

I'm surprised at how difficult this is being described? (degree in electrical engineering BTW, software development etc... Am I missing something here?

Yes. With qualifications like that, you should have much more of idea of the difficulty of the task you've described.

So, to be clear, we're saying that:

Creating a small robot that has:

  • wheels with motors
  • a vertically-mounted spinning motors

and a function of:

  • driving forward until it hits/senses a boundary
  • then randomly selects a new vector/direction

This is 'in the hard bucket' for arduino....??

Could someone in the forum step past the obtuse comments and give me a pointer as to why this is so complex for arduino? There's clearly some excuses I believe are just incorrect - eg the robot will be 'sent flying by weed seedlings' which is just a silly response the mass differential here (even with a tiny robot is around a thousand to one in the robot's favour).

Meanwhile, I'm thinking a zumobot kit as a base chassis will do most of the work - naturally they're designed for high-geared torque applications, so will likely suit nicely. Can fit a high rpm motor for the strimmer and then need to decide about distance/collision detection (am thinking about ultrasonic sensor for this purpose).

alphabeta279:
Really - I can't follow your logic (either in botanically sense or a mechnical sense) - there's plenty of similar sized robots doing exactly this,

Fascinating.

The thing in the video is more substantial than what I envisaged from your description.

...R

This is not too complex for Arduino. Most of the Arduino microcontrollers will have plenty of I/O pins and enough SRAM to handle this task.

I do think the project is a complex project, but not out of the reach of an electrical and software engineer. Watch this video of a similar robot to what you are describing for a description of the timeline it took to develop that robot.

Robots eh? Who'd have thought they might catch on... :wink:

Yes, there's kinda two concepts here:

Relentless weeding ( ie strimmer) - differing to how humans remove weeds, robots can quite happily weed a bed five times a day if desired. This means they don't need to worry about the 'once and for all' approach humans try to take to get roots etc out - they can instead just keep hacking away at top growth until the weed's energy is exhausted and it dies.

Soil disturbance - by simply disturbing the top 2-3mm of soil continually (ie with the wheel spikes), then it makes it difficult for any surface seeds (ie airborne) to germinate as their roots will be broken shortly after germination. I've also thought about a drag tail for a two wheeled robot to have a similar effect.

Both above have the advantage over weeding in that they don't remove nutrients from the soil (esp nitrogen fixers), whereas weeding naturally pulls out all the nutrients in that plant, so over time this approach should have a minor, but not insignificant advantage for plants growing there (much like trials of hoeing vs removing weeds)

Sorry Thee_Captain - replies passed in the ether! Thanks for this, yes agree - I posted the same video further up the thread (there's a couple of other ones too).

Agree the commercial timeline would be significant - note I'm needing no solar power, no smartphone app, no recharge state monitoring, no sensor-based turning on of strimmer etc etc. Really am just talking about a simple bot that bounces madly around hacking stuff. I'm quite happy to manually drop them outside each morning when I want to strim the beds - this should hugely reduce the code complexity.

Really talking about an aggressively simple MVP here!

if you think you can do this, then get started !
the motors are not hard
the trimmer is not hard
making it detect plants of some height ? not sure how that made that work, but that is not rocket surgery

for the low power, I would offer that the ESP32 has a very low power ability and some of the boards have a battery charger.

battery lawn mowers have a wire antenna under the soil.
when the battery starts to go low, the unit 'finds' the antenna and then go into the charger.

You have some difficult problems to tackle with this project. The software engineer in me would use a spare iPhone to send wireless signals to an Arduino to control the robot to start.

The iPhone SDK has ARKit which allows you to calculate all kinds of stuff via camera. I think that’d be more interesting and easier on the software side.. I know it’s not much advice but it could be a way to get started quickly.

dave-in-nj:
if you think you can do this, then get started !
the motors are not hard
the trimmer is not hard
making it detect plants of some height ? not sure how that made that work, but that is not rocket surgery

for the low power, I would offer that the ESP32 has a very low power ability and some of the boards have a battery charger.

Great advice - had a look and the esp32 looks well suited as you suggest (plus probably gives a decent feature scope should I want to add to complexity later!)

I'm not even thinking I need to detect height of plants (not entirely convinced this is the best approach given there are weeds that could exceed an inch in a few hours given their growth cycles).

Instead if I design to detect hard boundaries/conductive surfaces etc, then I can just use protection tubes for plants I want to keep - poking in 12 tubes in a bed isn't going to blow my mind each year....! (heavy KISS principles in operation!)

dont forget to report back with your progress

Another one who wishes to get started with Arduino by making an ambitious project and going to skip every bit that doesn't prove necessary to that end.

Never mind that limited code knowledge will shape a kludge that takes forever to debug, you have a goal!

Honestly, try simple things first like debounce a button or even get to stage where you need to do that at all and learn why and a bit about timing events in the process.

The simple things have lessons that you really do need to make more complex things work.

Have you thought about black plastic ground cloth ?

black plastic