Go Down

Topic: Can we get an arduino to "remember" a path once it's done it once?  (Read 902 times) previous topic - next topic

vader300

We're working on a project that includes an autonomous snowplow that we want to "learn" the size of the driveway it is to plow so it knows how far it should go. The thing is, we want it to be versatile and not just learn one driveway that we have dimensions hardcoded in but instead be able to run the length and width of any drive way and know the perimeter it is then to stay within. Is this even possible and if so how would we go about coding this? Otherwise, what would be a more productive option?

slipstick

Interesting idea but may need a bit more detailed thought/design. How exactly do you intend it to "learn". On a new driveway what will tell it that it's gone far enough. Are all the areas it is interested in simple rectangles? And then how will it "know" which of its remembered locations it is at and where within that area it is currently?

It's certainly possible to "remember" things in EEPROM or on SD cards but you have to be clear about what exactly it is that you're remembering and how you're going to recall and use the information later.

Steve

jremington

Please explain how the snowplow will know its location on the driveway, which is the first step in figuring the path or the dimensions.

vader300

Thanks for the responses! We're running some light sensors that will make it follow a reflective line that we lay down. This should keep it running along the length and width of the driveway. What we're hoping to do is after it has run the length and width it should remember that those are the bounds and it should not pass those when pushing snow (whether pushing length- or width-wise). To increase versatility is will run the length and width of a drive way using reflective material to follow it and then understand that those are the outside perimeter bounds. If we can't get it to do it running just 1 length and 1 width we could create an entire perimeter using reflective material and just have it run the whole thing but what we want as an end product is that we don't have to hardcode the dimensions each time it changes driveways. It should just run around it once and remember the size. That's the idea at least.

PaulS

Quote
It should just run around it once and remember the size. That's the idea at least.
You have NOT addressed the question of the device learning the size/shape of the driveway vs. doing something with that data again later.

Are you proposing to have reflective material in place only during learning mode? If not, then why does there need to BE a learning mode. The device can just determine where it is, relative to the boundary, and plow within that boundary.

Roombas keep a room clean without knowing anything about the area that they are cleaning. Perhaps your plow can use a similar process for plowing.

You keep referring to rectangular driveways. In reality, very few driveways are truly rectangular, so you are, possibly severely, restricting your target market.

jremington

Quote
It should just run around it once and remember the size.
The gizmo needs to know where it is at all times, in relationship to the driveway, for this to work.

vader300

Quote
The gizmo needs to know where it is at all times, in relationship to the driveway, for this to work.
That's what we're coming to find out but we're not sure how to do this with an arduino. We're still new to this. We were wondering if using GPS chip or a WiFi chip would be better. We thought about triangulating position but again, we're still not sure how to do that.

Quote
You keep referring to rectangular driveways. In reality, very few driveways are truly rectangular, so you are, possibly severely, restricting your target market.
For the current time we're testing the idea on a rectangular driveway and most of the driveways where we live are quite rectangular. We just want to prove a concept here, we're not making a marketable product currently, that's a project for another time.

I apologize if I'm not explaining myself well enough here. We're trying to get ideas of how our robot will understand boundaries. This line following and memorizing boundaries is one idea we have tossed around and it sounds like it is not the most practical idea out there.

Quote
Roombas keep a room clean without knowing anything about the area that they are cleaning. Perhaps your plow can use a similar process for plowing.
This idea was actually originally inspired by those little roomba robots. We're trying to figure out how they and run through a room without learning it.

PaulS

Quote
We were wondering if using GPS chip or a WiFi chip would be better.
A GPS won't worth a damn, trying to connect to a WiFi router. A WiFi chip won't worth a damned for telling you where you are.

A GPS chip will only tell you approximately where you are - "in the middle of the driveway", "running over the rose bushes", "up a creek without a paddle", etc.

They have an accuracy of +/- 10 meters, which is fine when you are barrelling down the freeway at 80 mph, but not so good when you are trying to keep your snowplow out of the rose bushes or the neighbors pool.

Quote
We're trying to figure out how they and run through a room without learning it.
When sucking up dirt, it really doesn't matter what path you follow. When plowing snow, it really does.

A roomba runs into something, and it just randomly moves off in some other direction. Putting up walls for the snowplow to bounce off of doesn't seem practical, or logical.

Northof49

Because of slippage, there is no way you can accurately judge the current location of the plow, without some precise external reference point.  So you are on the right track with exploring those options.  I'm thinking a wire imbedded along the edges of the driveway that carries some sort of electromagnetic signature, similar to an invisible dog fence, would be the best.  It's going to be hard to see a reflective strip on the driveway if its covered in snow.  And because of slippage, the plow will always need to be able to establish its current position.  For convenience, it could probably be on temporary posts above ground for the winter season.  As well, you will probably want a gyro and compass onboard the plow to attempt to keep it running straight lines as it runs along the driveway.  If you put the compass up on a mast, it will get better signals than mounting it right onboard the plow.


Another option is to have a reflective beacon on the plow, a computer with a well placed camera watching it, and controlling it via wireless.  The plow would only have to carry the electronics to control its running, movement and communications, and something like a raspberry pi with a camera could handle the software to watch its position and control it.  There are lots of examples of object recognition and pick and place with robot arms, so I can't see why it wouldn't work as well for controlling your plow.

jremington

Quote
]That's what we're coming to find out but we're not sure how to do this with an arduino.
Accurate location determination for an autonomous robot is a rather difficult problem for any computer. For Arduino there is Pozyx, but it is not cheap. 

I don't think there are any cheap solutions, period.

Go Up