To find a cheap method to locate a mobile robot accurately in a room is currently an enormous challenge. We all learn that the cheapest, simplest and most useful solution for navigation and localization is the GPS system. But when you use a GPS sensor inside a house or building, a wide variety of barriers and interference make it difficult for GPS devices to work particularly well indoors. Given this, we have to forget the GPS navigation system for indoor use and try other methods.
The motors encoder or stepper motors are out of this topic. It doesn’t work for me since my robot wheels can slip at high speeds, while for the stepper motors, I need to know the starting position. A LiDAR or a Hagisonic StarGazer Robot Localization System is also out of this topic due to high prices. These types of sensors give accuracy in measurement, but with high costs. So, I have to find a cheap, efficient and accurate way to locate my robot precisely within an area.
With an exuberant curiosity, I did some research, and I found five methods that work in rooms and large indoor spaces. All the methods explored in this article can localize a robot that starts from a random point and moves towards a goal.
These are the methods:
- BLE Beacon
- WiFi SubPos
- NFC (Near Field Communication)
- RFID (Radio-Frequency IDentification)
1. BLE Beacons
BLE Beacons are small devices available in a wide range of shapes to be mounted on walls, tables, etc. These devices are specially designed for indoor locations. A robot can detect the BLE beacon signal and calculate its position in the range of more than two beacons and estimate the location. The beacons can run on a single battery charge for years, and this is one of its advantages in front of other localization systems.
Using BLE beacons to calculate the indoor position should be easier, at least in theory. The robot receives tiny and static pieces of data within short distances. First of all, the Bluetooth receiver has to identify the beacon. The identification consists of a long and unique string called UUID plus two numeric values from 0-99999 for the beacon’s major and minor number combinations. Then is the data used to calculate the location.
The data package is sent at an interval of n milliseconds. As an example, an interval value can be 350ms. Luckily, this interval can be adjusted for all the beacons. If you choose a shorter interval than the default one, the beacon can be discovered faster, but the battery life will be shortened. Read more →