Dead reckoning lawnbot

Hi there, i know there are plenty topics about arduino based lawn mower, and i think i read mostly of them, I just need o be sure if the direction im going is the right one.
So i would like to make dead reckoning lawn mower. I am relatively new to arduino but i have some experience with raspberrypi. I will do the testing on the small bot.
This is the plan:

wheel encoders(magnet)
IMU (vibration and noise make it less reliable)
GPS(+-5m)
Ultrasonic sensors(safety and on turning 360, distance from the wall)
camera for color pixel recognition (while its not green go straight) rasppi OpenCV
(all sensors are from ebay)

Make dead reckoning by making arduino(if its possible, if not then rasppi) collects the data from the sensors, while rasppi data from camera. Now the next time bot is on it would be using wheel encoders data as primary data and rest of the sensors would be used secondary as for checking, stopping, fixing its location.
So while the bot is driving by the data from the wheel encoders arduino(or rasppi) would be comparing the data from the memory with the data given in the present moment. So for example, if imu sensors got the data that is not the same as in memory bot would slow down and bot will be comparing the rest of the sensors data(like sensor1=OK,sensor2=OK...)
I know comparing the data needs to be fast enough for the bot to reposition, but lawnbot is intended to go slow. I think it would be enough time to compute?
Is the arduino capable of doing so? Should i connect arduino and send all the data sensors to the raspPi, and make the decisions from the rasppI(though arduino is better with communication with the sensors?)

There is Kalman filter but I find it too complex for me right now.

Any advice, suggestion is welcomed.

Thanks.

By "dead reckoning" do you mean that you plan to record the wheel movements on one occasion (with the help of a camera etc.) and replicate those movements on other occasions without the camera?

If so I suspect there will be too much slippage between the wheels and the ground for that to work effectively.

If I have got the wrong idea perhaps you can provide a clearer description of your project.

If the Raspberry PI is intended to be a permanent part of the project then I suggest that you do as much as possible with it and just use the Arduino to interface with the hardware.

...R

If you can maintain a reliable wireless connection from the mower to your house then I would say keep all the smarts indoors on a PC or Raspberry Pi. At lawn mower speeds 9600 baud is plenty fast enough to receive sensor data and send movement instructions in real-time.

To stop it wandering off down the road you could use a wireless keep-alive signal, or use something like the Husqvarna Automower boundary wire system.

As you will discover, an IMU will be completely useless on a lawn mower, due to vibration and electrical interference.

Robin2:
By "dead reckoning" do you mean that you plan to record the wheel movements on one occasion (with the help of a camera etc.) and replicate those movements on other occasions without the camera?

If so I suspect there will be too much slippage between the wheels and the ground for that to work effectively.

If I have got the wrong idea perhaps you can provide a clearer description of your project.

If the Raspberry PI is intended to be a permanent part of the project then I suggest that you do as much as possible with it and just use the Arduino to interface with the hardware.

...R

yes that's pretty much that, camera will also according to recorded time and wheel movement, check its data (are the pixels green or not? )for example time: 2min, wheel rpm:120, color=green, it is just useful for the edges of the yard

yeah i thought it would be still some slippage :(, thats why i will use other sensors like gps and imu to get it back in order, if you have advice to make it more efficient i will be happy to hear it

Raspberry PI is intended to be a permanent part, just wasnt sure if its good idea to put all the data on rasp

mikb55:
If you can maintain a reliable wireless connection from the mower to your house then I would say keep all the smarts indoors on a PC or Raspberry Pi. At lawn mower speeds 9600 baud is plenty fast enough to receive sensor data and send movement instructions in real-time.

To stop it wandering off down the road you could use a wireless keep-alive signal, or use something like the Husqvarna Automower boundary wire system.

yeah it will go in the areas offline, so i thought putting all on rasp and put the rasp on the mower

jremington:
As you will discover, an IMU will be completely useless on a lawn mower, due to vibration and electrical interference.

like 100% useless or? yeah i read something about that and about some people also able to reduce the vibration by putting some foam in between and putting the imu in a box
whats the alternative to imu?

golatificon:
Raspberry PI is intended to be a permanent part,

Then I presume the camera is available all the time so I don't understand why you want to use dead-reckoning.

Just in case there is terminological confusion, dead-reckoning usually means starting from a known point A and navigating to point B without any external references. For example how you would have to navigate a boat in fog when you have no GPS.

...R

Robin2:
Then I presume the camera is available all the time so I don't understand why you want to use dead-reckoning.

Just in case there is terminological confusion, dead-reckoning usually means starting from a known point A and navigating to point B without any external references. For example how you would have to navigate a boat in fog when you have no GPS.

...R

yeah camera would always be on, but i can't really rely on it, since i didn't find a way for pi to recognise what grass is cut and what isn't, so it would go on and on, also it could happen because of the slippery surface it could shift its direction, by that i think dead reckoning with the sensors and camera is the optimal solution?

what did you have in mind, what should i do with the camera?

golatificon:
what did you have in mind, what should i do with the camera?

That might be too rude for a family Forum. :slight_smile:

Seriously, I did not have anything in mind. What you are trying to do is not trivial.

Perhaps you need some visible markers around the edges of the lawn that provide fixed references for the camera?

...R

Robin2:
That might be too rude for a family Forum. :slight_smile:

Seriously, I did not have anything in mind. What you are trying to do is not trivial.

Perhaps you need some visible markers around the edges of the lawn that provide fixed references for the camera?

...R

haha, well thats a good idea for a better use of the camera

i know like qr codes. But those are ugly :stuck_out_tongue: and putting wire around the edges doesnt work for me since i have front and backyard (nothin naughty here)

If you want to recognize and track colored blobs, or two color "ID markers" use the Arduino compatible Pixy (CMUCam5).

It has an on board image processor, and works great.

golatificon:
i know like qr codes.

I was not thinking of anything complex like that. Just a marker that can be visibly identified - perhaps a black or white post that contrasts with the background.

If you can see two or more of them on an image you can figure a position by triangulating from them.

I have no idea whether that could be done with the camera in the link in Reply #9. Maybe you could rotate the camera and take a bearing whenever it detects a marker - like a sailor taking bearings on two lighthouses.

...R

I have no idea whether that could be done with the camera in the link in Reply #9.

As explained in the link posted in reply #9, that is the entire point of two-color ID markers. The camera can be trained to identify and locate on the image uniquely colored markers.