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)
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 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.
Here are some examples of BLE Beacons:
Step 2: AprilTags
This is probably the cheapest method to localize a robot in a room. You need a webcam, a development board able to run an OS (preferably Linux) and an ordinary printer to print the makers.The system will read the unique makers and will calculate the location and orientation reported to the camera mounted on the robot.
The AprilTags library makes things easier. The C++ library detects any AprilTags, provide a unique ID for the tag and its location in the image.
Step 3: WiFi SubPos
A WiFi localization system can be used in a similar way as BLE beacons. The biggest disadvantages of this system are the external power source, additional equipment, and more setup costs.
Since the signal is stronger than other technologies such as Bluetooth, this system covers a large area than BLE beacons. And this is the biggest advantage of this system.
SubPos is a localization system designed for use where the GPS system doesn’t work. Also, the localization method works much like the GPS satellites rather than WiFi localization technique based on the signal strength.
Of course, you need a WiFi enabled the device to determine your robot location underground or indoors. The SubPos system uses coded transmitter information in parallel with the client’s received signal strength to determine the distance from this known point.
Step 4: NFC (Near Field Communication)
NFC is a specialized subset of the RFID technology which uses radio waves to identify the items. The NFC systems operate at the 13.56 MHz frequency, and the technology is capable of using the same NFC device as an NFC reader and an NFC tag. This unique feature of the NFC technology allows NFC devices to communicate peer-to-peer.
To localize your robot in a room, you have to stick NFC tags, and when the robot sees an NFC tag, it scans it and knows exactly its position in the home.
These NFC tags don’t require a power source like other methods do. The disadvantage is the short range when the device is detected. Your robot should be around 30 cm away from the chip to read its serial number.
Here are some NFC tags:
- SMARTRAC 3002530 Clear Wet NFC – Available on Amazon, priced $13.25
- YARONG-50pcs MIFARE Classic® 1K Chip 13.56MHZ tag sticker – Available on Amazon, priced $17.12
- Blank White On-Metal NFC Sticker – NTAG213 – Available on Amazon, priced $11.99
- GoToTags NFC Stickers – NXP NTAG213 – Available on Amazon, priced $11.99
Step 5: RFID (Radio-Frequency IDentification)
There are two types of RFID tags. Active and passive. An active RFID tag includes their own power source giving them a range of the signal of up to 100 meters.
A passive RFID tag doesn’t contain its own power source. The tag is activated by the electromagnetic energy transmitted from the RFID reader. The disadvantage of the passive RFID tags is the lowest range of the signal which is around 25 meters. A much smaller range compared with the active RFID tags.
A complete system able to localize a robot inside a room requires hardware such as RFID tags, readers, reader control and an application software.
Here is an RFID tag example:
- RFID Tag Sample Pack – Available at Amazon, priced $54.00 + $10.98 shipping
Did you use any of these methods? Did you use another precise method(s) for indoor localization? Please leave a comment in the comments section below.
You can find the original post here: 5 Cheap Methods For Indoor Robot Localization: BLE Beacon, AprilTags, WiFi SubPos, NFC and RFID