HOME ABOUT PROJECTS CONTACT
RFID BASED INDOOR LOCALIZATION

Indoor Localization

Radio-Frequency Identification Based

In this project we have designed and built an indoor localization system using RFID for mobile robots. The system works using a simultaneous RFID reader which sends out a radio signal through an antenna. This signal then activate passive RFID tags which will also then send a signal to the reader with identifying grid position data. From here, the reader sends this returned data to the connected Arduino UNO in the form of an electronic product code (EPC). The EPC is a universal identifier that provides a unique identity for every RFID tag currently employed in the grid system. Finally, the Arduino sends this information to the developed python localization map where it is displayed to the user as a simple GUI app as seen in Figure 14. The data is read according to its assigned EPC and then actively updated on the map in the form of a tracking dot.

List of Parts


dc-dc-power-converter-25w
DC-DC Power Converter 25W
Arduino Due 32 Bit


Arduino Due 32 Bit
step-down-voltage-regulator.jpg Step Down Voltage Regulator
motor-servo-shield-arduino.jpg Arduino Motor Shield
micro-bracket.jpg Encoder Bracket
pololu wheel.jpg RC Tires
servo.jpg Servo Motor
gearmotor-encoder.jpg 6v 210:175 micro metal gearmotor and encoder
Gizhome Caster.jpg SparkFun Simultaneous RFID Reader

battery.jpg



GOLDBAT 11.1v lipo
lynxmotion.jpg Lynxmotion Bracket Kit
jumper-wires.jpg Jumper Wire Kit

Mechanical Design

Here's a short run down of the mechanical design. We used Siemens NX to produce the CAD model of the robot shown below along with the mechanical gripper. Then we used a 3D printer to produce the parts of the robots body and gripper. An RC car body and wheels were used as we built the support strucures and gripper depicted below.

1 / 4
2 / 4
3 / 4
4 / 4

Localization Design

Python and Arduino languages are used in the development of the programming of the system. The Arduino C-based language is used to instruct the microcontrollers. Data is sent from the Arduino to Python via a Bluetooth module. For Python to catch the data the Arduino is throwing across the Bluetooth path it must have an object in place to catch this data. This is done using the pySerial package. Using Pyserial a serial object is made, this object is positioned at a COM port with a specified baud rate, these variables should match the COM port and baud rate used on the microcontroller. The serial object opens the serial port, it will then catch all data that the Arduino throws along the Bluetooth path. Here the Arduino will throw a letter, this letter is found when the RFID reader reads a tag, based on the data on the tag, as discussed previously, a specific letter will be thrown, Python will then catch this letter and read it as a string. In Python strings are an array, this is important because we must specify where on this array we want to point to. The position of the tracked robot is updated using a simple series of ‘if’ statements. We ask if the string at index 0 is equal to a specific letter then update the position on the map. Using this method the position of the robot is updated whenever the RFID reader collects data from a tag. For code Visit: RFID Localization

CONTACT

WHERE I WORK

I'd love your feedback!

Toronto, Canada
Email: RobotGooners@gmail.com