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.
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.
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
I'd love your feedback!