Hello!
I want to build a robot that will automatically navigate itself to a destination. I have so far programmed the robot so it knows how to avoid obstacles/can drive autonomously, but it is aimless in its wandering.
My idea was that the destination would be some sort of tower which transmits radio frequency signals. The robot then listens to the signal and will move towards the direction where the signal is strongest, so it effectively moves towards the destination.
Initially I thought that RSSI would be a good way to go about it - I do not need to measure distance as such, just if the transmitter is relatively near or close to the receiver (attached to the robot). However, I am struggling to find any RF modules which have a RSSI output I can read using an Arduino. (Is it even possible?) Any help here would be greatly appreciated!
I am also considering using a wifi receiver and transmitter module instead of an RF module - mainly because I have seen tutorials where people can measure the strength of the Wifi RSSI quite easily. Would you recommend this approach instead of using RF?
Overall I am slightly daunted as I have not seen a single example of a 'driving towards destination' project online, so I am worried if this is even feasible to do with arduino! I am a beginner so apologies for any inaccuracies in my terminology/understanding - corrections to these are most welcome.
So to conclude, do you think this project is do-able? If so, do you have any advice on whether I should use wifi or normal RF?
I would go for something like a flashing IR beacon and home in on that .
Seems easier ! Not sure if radio signals would be directional
Enough over short distances ( thinking or aerial characteristics) ?
atlanticpacific:
Overall I am slightly daunted as I have not seen a single example of a 'driving towards destination' project online, so I am worried if this is even feasible to do with arduino! I am a beginner so apologies for any inaccuracies in my terminology/understanding - corrections to these are most welcome.
Perhaps its not that its not possible with Arduino, but maybe the reason why you cannot find any examples of the follow the RSSI wheeze, is that it does not work in most situations ?
It can work in clear flat areas, devoid of objects, such as bonneville salt flats or the black rock desert.
There are many radio modules that report the RSSI, but it is nearly useless, as the values are affected by antenna orientation and nearby reflecting/absorbing objects more strongly than distance.
With special antennas you can estimate the direction to a radio source. Google "radio fox hunt" for ideas.
And WIfi is RADIO! If your smart phone is WIFI capable, it will also be sending on one of the many wifi frequencies. In a crowd,how will your robot determine which wifi cell phone to go to?
Your cell phone is radio.
As a test to help you understand the problem, look at your cell phone. See the signal strength bars? Can you tell from the bars which cell tower you care connected to?
hammy:
I would go for something like a flashing IR beacon and home in on that .
Seems easier ! Not sure if radio signals would be directional
Enough over short distances ( thinking or aerial characteristics) ?
Thank you for your reply!
I had thought about using IR but I read that IR signals will not pass through objects like walls - I wanted my robot to be able to go towards the destination even if it was in another room for example.
srnet:
Perhaps its not that its not possible with Arduino, but maybe the reason why you cannot find any examples of the follow the RSSI wheeze, is that it does not work in most situations ?
It can work in clear flat areas, devoid of objects, such as bonneville salt flats or the black rock desert.
Thank you for your reply!
Yes I am beginning to see that RSSI can be very unreliable as a guide even for relative distance.
However, I have found this website which seems to suggest that using wifi.RSSI() works quite well in a project to measure wifi signal strength - I am currently thinking if I can use this in my project so that the transmitter destination is the wifi transmitter, and the robot has the signal strength tester attached.
Paul_KD7HB:
And WIfi is RADIO! If your smart phone is WIFI capable, it will also be sending on one of the many wifi frequencies. In a crowd,how will your robot determine which wifi cell phone to go to?
Your cell phone is radio.
As a test to help you understand the problem, look at your cell phone. See the signal strength bars? Can you tell from the bars which cell tower you care connected to?
Paul
Thank you!
That is true - I have yet to read more about wifi modules and arduino but I suppose there would be some way of 'listening' for a specific wifi signal, in a similar fashion to how our phones can see lots of available wifi sources, but we can connect to a specific one if we know the password/network name
atlanticpacific:
But would it not be true that the stronger the signal strength, it is more likely that you are closer to the source of the signal?
In limited circumstances, yes.
If an autonomous robot could visit each square meter in your building then I guess it could draw a map and come up with a likely location of the beacon.
But the vagries of propagation indoors could mean that the lowest RSSI (strongest signal) could be either side of a long wall that just happens to be built with foil backed platerboard (= weak signals), so you can have a situation when although you are closest to the beacon the signals are weaker.
There are quite a few radio modules that do RSSI, RFM22, RFM69, RFM9x, DRF127x, there are no doubt many others.
Its always a good idea to reveal the full truth of a project at the beggining, you have only just told us that this project is indoors, useful information to have included in the first post.
So please experiment, see how it goes, and report back.