{'fraction_non_alphanumeric': 0.02366764582459085, 'fraction_numerical': 0.004783885858161981, 'mean_word_length': 4.483663138518177, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
QR Code based Indoor Navigation system for Attender Robot

In this paper, we elicit a cost-effective design of a robot that is used to perform the tasks of the attender, a wheeled mobile robot. The two main challenging aspects of mobile robotics are to achieve localization and navigation. Localization determines the location of the robot with respect to its environment. Navigation is the movement of the robot from one location to the other. Here, the unique design and representation of the QR code helped us to localize and navigate the robot. A raspberry pi mounted with a camera is used to interface with the robot. The triangulation method is used to localize the robot. Dijkstra’s algorithm is used to compute the shortest path from source to destination. The system is monitored tested based on the feedback system established by the Hologram cellular USB modem. Experimental results show that this approach has good feasibility and effectiveness. The robot navigates through the shortest path, performs specified tasks, and returns to its source.


Introduction
The development of Global Navigation Satellite System has been one of the keen inventions of the decade which help in making devices location aware. The next achievement would be to take this kind of service to indoor locations where satellite signals are not tractable.
In this paper, we are proposing a method to render the service of indoor navigation and localization with the help of QR (Quick Response) codes. This navigation system can be used by the mobile robots.
Mobile robots are capable to move around in their environment by not being fixed to one physical location. They can be "autonomous" (AMR -Autonomous Mobile Robot) which says that they can navigate in an uncontrolled environment without the need for any physical or electro-mechanical guidance devices. They can even rely on guidance devices that monitor them to travel a pre-designed navigation route in relatively controlled environment (AGV -Autonomous Guided Vehicle).
In this paper the mobile robot plays a role of attender which moves round in a controlled environment. The idea of building of attender robots is 2 to help ease the human effort in doing menial jobs where it involves transferring files, documents, objects from one place to another. This idea is to help the humans concentrate on better aspects of using their intelligence rather doing repetitive monotonous tasks.
In [8], they have proposed a system for better localization using the QR codes, whereas in this proposed system can help to localize and navigate simultaneously. Mobile robots are being largely used in commercial and industrial settings. Hospitals are using mobile robots to move materials for many years. Warehouses have installed robots to efficiently lift and move materials from stock shelves to manufacturing zone. In [8], they developed the system for better localization using the artificial landmarks and features of a smart phone. In [1], they developed the indoor navigation system based on the ROS and artificial landmarks.

Literature Review
There have been many techniques for navigation which include an approach using GPS (Global Positioning System) transmitters for indoor positioning [2], the methods for integrated navigation and indoor positioning using Wi-Fi RSSI (Received Signal Strength Indicator) and inertial sensors [3]. This approach gives errors at 2m to 4m of distance on position. In [4], another approach of indoor navigation using Bluetooth beacons is proposed.
One of the preferred methods for localization and navigation is using QR codes. Hao and his colleagues studied the orientation of a robot using a hybrid mapping with the QR code technique [7]. Zhang and his colleagues placed the QR codes in a matrix form in their study area to compute the orientation of the robot. They have used an industrial camera mounted on the top of the robot [1].Lee and his colleagues have developed a QR code detecting robot using vectors. They have used a CCD camera [8].

Explanation
In this system, a navigation system is developed to help the attender robot to move around the environment. In this navigation system we are taking the help of QR codes to obtain the localization and navigation. The QR codes have unique patterns, which help in identifying their position and orientation easily. With the help of these patterns the attender robots will be able to identify their current orientation and resolve the future orientation.

Detection and Orientation of the QR code:
When the attender robot starts moving it also initializes the scanning using the camera (facing the ceiling) which is installed on the attender robot. With the help of the finder patterns attender robot identifies the QR code in the frame. After that the QR code is decoded [5] and its current location is identified.
QR code detection uses a python package named "pyzbar" which gives the decoded information, coordinates of the QR code and the coordinates of polygon in the frame.

Orientation of the attender robot
The orientation of the attender robot is identified by fixing the QR codes according to the cardinal directions. After decoding, the corners of the QR code are cropped to get finder patterns. The finder patterns are identified with the help of contours.

Fig. 3. Contours in a QR Code
Since one corner of the QR code does not contain the finder pattern that corner decides the orientation of the attender robot [1].  with QR codes. Dijkstra's algorithm returns the shortest path between source and destination. For every edge in the shortest path, the orientation of the current node and the direction to the next node are to be calculated. The orientation of the robot at am node is calculated with the help of contours method as explained above. The direction to the next node is computed with the help of mapping between the directions of current node and next node in the shortest path. The result of the mapping is the real-world direction which helps the rover to head towards the adjacent QR code.
Where S -Straight, T -Backward, L -Left Turn R -Right Turn The above matrix gives the direction of the rover to be moved where rows and columns represent the directions of the current node and the adjacent node respectively. The following figure is an example which shows that the direction of current node is east and the direction of adjacent node is North and the rover has to turn left. The path deviation can also be calculated with the help of QR code coordinates. The change in Y coordinates of the center of QR code in adjacent frames can give the deviation in path.

Localization:
In this we have two types of conditions, regarding the type of frames. In every frame, X-axis is considered as the direction of heading of a robot. We have 2 types of frames i.e. when there are 2 QR codes in the field of view of the Robot and when there is 1 QR code in the field of view of the Robot. The distance between the vertices in the image is scaled with reference to the real distance depending upon the specifications of the camera.

A. With Two QR codes (between 2 nodes):
In this case, Triangulation method is used to localize the robot. The vertices considered are centers of 2 QR codes and center of the frame.
The perpendicular distance between the line joining the centers of QR codes and center of frame gives distance of deviation.   The distance of robot from first QR code can be given by X-(distance between QRcode1 center and frame center)  The distance of robot from first QR code can be given by X-(distance between QRcode2 center and frame center)

B. With One QR code:
In the second case, we only have a single QR code in the frame. The position of QR code with reference to center of frame gives the position of robot.

Hardware Setup:
This prototype is build using a metal chassis, wheels, 2 60 rpm dc motors and a L298N circuit board. The chassis acts as a base to place the raspberry pi and support the wheels. The wires are soldered to the motors which are to be connected to the circuit board. The female to female jumper wires are used to connect the board to the GPIO pins of the raspberry pi.

Communication:
Initially, raspberry pi is remotely accessed from laptop using SSH (Secure Shell) protocol over Wi-Fi network. All inputs are provided to rover before it starts moving. Raspberry pi is connected to cellular data network with the help of Hologram Nova cellular USB modem.

Experiment Area:
For experiment, we considered the following floor plan. QR codes are fixed according to the floor plan as nodes of the graph.

Testing:
The rover is tested with the help of feedback sent by the rover to hologram cloud over cellular network. Every time the rover localizes itself, it sends the information to hologram cloud.

Experiment Results
The proposed system for QR code based navigation system is validated by a series of experiments. The attender robot is capable of moving around from source to destination. It continuously sends its status and location through feedback system which is achieved using the hologram cellular USB modem. For source 'A' and destination 'D', the shortest path computed is A->B->C->D. The robot localizes itself and measures the scaled distance from the QR code 'A' until it reaches the next QR code 'B'. After reaching 'B', it takes turn to the next node 'C'. It starts heading towards 'C', simultaneously localizing itself. After reaching 'C', it takes turn and starts heading towards the next node 'D'. Finally, it reaches the destination 'D' and completes the task and return to the starting point 'A'.
The frame captures at every node along the path are shown in the figure 12.   The above table depicts that the proposed algorithm performs better in aspects of navigation error and time lag with less cost equipment when compared to the methods proposed in [1], [8], [9].
The frames captured continuously when the robot is moving for west to east of QR code 'A' can be shown in Figure 13. The change in X coordinates of frames 1,2,3,4 depicts the change in movement and change in Y coordinates depicts the deviation.

Fig. 13. Continuous capture of frames at Node A
For localizing the robot, the QR code should be captured continuously. So, it is better to use a camera with high resolution and high frame rate. The camera of required resolution can be chosen according to the distance between the roof and the floor.
Frame capture at ambient and dim light are shown below.

EAI Endorsed Transactions on
Internet of Things 10 2019 -04 2020 | Volume 6 | Issue 21 | e3 The results of above two figures are varied because of the lighting condition. It is better to perform these tasks under ambient lighting conditions.

Limitations
There are few shortcomings in this proposed system. They are: • Light factor: This task can be performed well only in a well-lit environment. This factor helps to reading and scanning of the QR codes more quickly and efficiently during the motion.
• Collision free path: When the attender robot is in its course, it can come across many obstacles which may result in collisions. So, we are performing the tasks under obstacle free environment.
• Static map: The floor map of the region where the attender robot is supposed to move around is static. The floor map is given as input in the form of a graph.

Conclusion
This paper will help in completing the objective of building a mobile robot which could be used to perform the tasks of an attender robot. This mobile robot will be capable of moving around the floor plan. It navigates from source to the destination with the help of QR codes. The attender can further be developed by making it collision proof so that it can avoid any sort of collisions with the obstacles. It can even carry a safe which can be secured using voice or biometric prints in order to carry any confidential information or objects.