Design of Low Cost Self-Navigation Rover Based on IOT

Internet of things have transformed existing communications between machines to machine, machines to human in great extent and helped word to move towards more connected systems. This connected system will help all stakeholders to generate process and share the gathered data from various sources/devices located across variety of platforms. This research work in an effort made in the area of IOT with the design of low cost, self-navigation rover which will be able to detect the obstacles based on the video feeds and can take a decision to avoid this obstacle and complete its assigned path. At the same time the rover was capable of posting live video feeds of the places under observations to remote server through the available communication network. GPS sensor installed on the rover is working on the principals of National Marine Electronics Association (NMEA) and provides the geospatial data of longitude, latitude data for processing [1]. The ultrasonic sensor is a low cost sensor which is used to detect and avoid the obstacles coming in the path of rover travel in a dynamic environment [2].


Introduction
Internet of things have transformed existing communications between machines to machine, machines to human in great extent and helped word to move towards more connected systems. This connected system will help all stakeholders to generate process and share the gathered data from various sources/devices located across variety of platforms. This research work in an effort made in the area of IOT with the design of low cost, self-navigation rover which will be able to detect the obstacles based on the video feeds and can take a decision to avoid this obstacle and complete its assigned path. At the same time the rover was capable of posting live video feeds of the places under observations to remote server through the available communication network. GPS sensor installed on the rover is working on the principals of National Marine Electronics Association (NMEA) and provides the geospatial data of longitude, latitude data for processing [1]. The ultrasonic sensor is a low cost sensor which is used to detect and avoid the obstacles coming in the path of rover travel in a dynamic environment [2].

Literature Survey
The robot is a machine capable to perform task autonomously or semi-autonomously which is guided by the micro-controllers [3]. Many industries are using robots to perform the task with higher degree of precision. Accordingly, in light of the requirement and purpose of usage the task of sensor integration is achieved. In this research work the proposed rover is capable of detects and avoids obstacles in the travel path of rover under dynamic environments [4]. To understand the obstacles the ultrasonic sensors, camera module were integrated on raspberry pi board. The open source computer vision library is used to image processing and video processing task [5]. Steering algorithm is beneficial to smoothly navigate the robot in dynamic unstructured environments to avoid the obstacle without stopping in front of obstacles [6]. Avoiding the obstacles in unstructured environment is itself a very challenging task and it was achieved with the help of multiple sensors or fusion of sensor data [7]. GPS sensor is used to move the vehicle from source to destination wherein the image processing is used to detect and avoid the obstacles [8]. To detect the obstacle with edge detection technique which stops the robot in front of obstacle was itself very challenging, similarly the accuracy of detection of obstacles should also be increased [3]. Development of low cost robot to the transport equipment's form one place to another place controlled by using single board computer [9]. A star (A*) algorithm is used to find out path between source to destination by using GPS based navigation [10]. Miniature robot having poor navigation ability because of limited perception ability in the constrained space to avoid the obstacles in an unfamiliar environment [11]. To develop the outdoor navigation robot collaborate with the different sensor data are fused using Kalman filter to process the data and navigate the outdoor robot as per the upcoming input data [12,13]. The motion segmentation technique is the initial task to track the movement of object in the image frame and BLOB hole filling process is applied to fill the holes in image frame to improve the result [14]. Image segmentation technique is used to divide the images into multiple parts to image analysis [15]. Figure 1 shows proposed methodology which is used to develop the rover.

Rover
In the design of rover, Raspberry pi is the core part utilized for design of low cost self-navigation rover based on video feeds. All components of rover parts are listed as below.

Raspberry pi:
The standard specification of areas, it is a credit card size single board computer [5] with 1 GB ram and quad core processor, which deliver fast processing speed as compared to other microcontroller. Raspberry pi single board computer is shown in Figure 2.
Raspberry pi camera module: Raspberry pi camera module is used to capture the video frame collaborate with Raspberry pi single board computer. Camera module can be used to take the high quality video and images. This camera module has a five megapixel camera that supports 1080p30, 720p60 and VGA90 video modes.

Video streaming
The Raspberry pi camera module was used to capture the image sequence to streaming from raspberry pi and posted to base station through the available communication network [17]. Camera module is collaborated with raspberry pi to capture video streams and post over to the remote server and posted stream will be utilized for detection objects The Raspberry pi camera module is captured image frame sequentially for video streaming.

Base station
Nowadays video surveillance system plays an important role to maintain the security in various fields such as public security, home surveillance, field monitoring and many other fields [18]. The Raspberry pi camera module is collaborated with raspberry pi mounted over the rover which is capable to capture the video stream and post to the base station for analysis. Analysis of the video stream is done at a base station in the form of real time multiple colored object detection, which display over the display unit of the base station. Proposed rover will control through base station by instructions send from base station to rover.

Obstacle detection
The ultrasonic sensor is mounted over the rover to check obstacles with the help of ultrasonic waves. This sensor continuously transmits ultrasonic waves ahead the rover if obstacle occur that waves reflected back as the input signal to rover to avoid the obstacle coming in the path of rover. The ultrasonic sensor is consisting from multi vibrator fixed at its base. Resonator and vibrator are used to make the multi vibrator. Ultrasonic sensor consists of two parts, emitter and detector. Emitter produces 40 KHz sound wave and detector which detect the sound wave and send signals to raspberry pi. Eqn. (1) is used to calculate the distance of obstacles from rover, which are used to detect the obstacle coming in the path of rover.
GPS sensor: GPS sensor which is collaborating with the raspberry pi single board computer. This is high gain GPS receiver sensor made with the ultra-compact POT(Patch on Top) and the GPS data is in the form of NMEA which includes time, date, latitude, longitude, speed, altitude and travel direction.

Ultrasonic sensor:
The ultrasonic sensor is used to avoid the obstacles coming in the path of the rover. This sensor is works with a transmitter and receiver mechanism which transmit ultrasonic waves ahead of rover if obstacle occur that waves are reflected back and received by ultrasonic sensor which is the input signal to raspberry pi for taking the decision.

Finding location on map
To find out initial position of rover on the Google map and to move from source to destination on the basis of GPS data that is latitude and longitude are accessed through installed GPS sensor on Raspberry pi board. Once the initial position of rover is marked it will move towards destination in autopilot mode designed for self-navigation at successful collaboration of the GPS sensor with raspberry pi it provides GPS data in the form of NMEA standard [16]. It is required to extract longitude and latitude information from the NMEA sentences. For example, suppose that the NMEA string values for a position are as follows.  (1)

Self-decision mechanism
Ultrasonic sensor work with transmission and receiver, transmitter transmit the ultrasonic wave in front of the robot and when obstacle occurred in the path of robot ultra-sonic wave reflected back and received by the receiver which is input to raspberry pi to take a decision as per the received signals. According to signal raspberry pi take the decision with respect to forward, backward, left and right to avoid the obstacle coming in the path of the rover. Proposed rover will capable to take self-decision to avoid the obstacle according to ultrasonic signals.

Algorithm-Working Principle
Motor control algorithm 1. Step 1: Input Turn power on to Dc Geared Motors

4.
Step 4: Declared four GPIO pins to control motor such as GPIO pin 1, pin 2, pin 3 and pin 4 in which pin 1 and pin 2 are used to control the motor number 1 and pin 3 and pin 4 are used to control the motor number 2. Also Declared Enable pin A and Enable pin B.
Obstacle detection algorithm

Experimental Work
Proposed rover is implemented by using the raspberry pi framework. Raspberry pi having its own operating system which is Raspbian and it will give the fast processing speed as compared to micro-controller. In raspberry pi there is no limit of memory as like micro-controller and we run large programs using raspberry pi. Raspberry pi having 40 pins for attachment of motor driver kit and various sensors.

Obstacle detection
Obstacle detection is the primary requirement to design of selfnavigating rover travelling autonomously from source to the destination. A HC-SRO4 ultrasonic sensor was used at the time of design of rover and is having a range of 2 cm to 4 meters, which is very useful to detect the obstacle coming in the path of the rover. Ultrasonic sensor mounted over the rover transmits 40 KHz Frequency towards object and if object is laying in the path it reflects the sound wave and obstacles is detected. Experimental work of obstacle avoidance is shown in Figure 3.
The activity of rover was tested by allowing it to move in controlled environment, where rover was about to move from its earmarked source to destination path of length 20 feet. The 10 repetitions with test cases were recorded in which manually obstacles were placed in the path and movement of rover is recorded. Its performance was evaluated in terms of obstacle detection and avoidance accuracy.
The time factor was also recorded to reach to destinations. It was seen that in case 1, rover takes 45 seconds to reach the 20 feet long destination A detailed description is given in following Table 1.
Designed rover is tested at Vision and Intelligent System Lab, department of computer science and information technology, Dr. Babasaheb Ambedkar Marathwada University Aurangabad. Figure 4 shows the obstacle detection accuracy in different environments.
Designed rover gives 100% obstacle detection and avoidance accuracy in well light and dimly lightning condition with single solid obstacle. Also designed rover gives 90% obstacle detection and avoidance accuracy in well light and dimly lightning condition with double solid obstacles.

Self-decision mechanism for obstacle avoidance
We tested rover for obstacle avoidance, self-decision mechanism in Vision and Intelligent System Lab, department of computer science and information technology. We put two boxes on the table as an obstacle in the path of the rover. We keep 2 meters long starting point of th rover from obstacle. Rover move in a forward direction with self-decision mechanism to detect and avoid the obstacles. In this case rover takes the self-decision when distance of the rover has remained 7 cm from the obstacle according to instruction. In this case when the distance has remained 7 cm from obstacle that time rover slightly move backward and take right turn to get right distance which are 10 cm from the obstacle. After that it will take left turn to get left distance which are 20 cm. Once rover gets right and left distance they are comparable both distance and take the turn where the distance is a long from obstacle. In this case right distance is 10 cm and left distance is 20 cm, hence rover take left turn because of left distance is greater than right distance. Rover moves forward and repeated the same process up  connection is established, on board camera module was automatically initialized and it starts capturing the images for video streaming. The Raspberry pi camera module is very sensitive, hence image capturing is started within 1 second. Raspberry pi camera module captures the 10 frames per second with JPEG format for video streaming. The sampling rate of frames can be configured as per requirement. Video streaming is shown in Figure 7.
The rover post data on www.visbamu.in/stream/index.php website developed by Vision and Intelligent System Lab of Department of Computer Science and Information Technology, Dr. Babasaheb Ambedkar Marathwada University Aurangabad (MS) India.

Location on Google map using GPS sensor
The Rhydo Labs GPS sensor was installed on board of rover which helps in GPS tracking as well as to find out the position of the rover. GPS sensor provides the geological coordinates in the form of latitude and longitude to obtain the initial position of the rover.
At the time of testing, the initial geological coordinate of the rover is 19.902562N latitude and 75.310508E longitude shown in Figure 8. The destination for the rover was considered at 40 Feet from initial position. It was observed that on power up the rover, it was moved from initial point to destination point which having 40 Feet in 2 minutes and reverted with new values that is 19.902562N latitude, 75.310508E to reach the destination. We take such 10 test cases to evaluate accuracy ofself-decision mechanism of rover, it was observed that rover gives 100 percent obstacle detection and avoidance accuracy (Figures 5 and  6). Figure 6 shows result of Self-decision mechanism of robot.

Image posting to server
Video streaming is an important functionality of proposed rover. The Raspberry pi camera module is used to capture high quality images with 5 megapixel camera resolution. Implementation of video stream is done by using web hosting and internet domain. For video streaming, the server was configured to listen the client socket by accepting incoming communication from the client side that is rover. Once the

Conclusion
The proposed rover is capable to take a self-decision and move in an unfamiliar environment without any human interaction. Autonomous real time obstacle avoidance is achieved from proposed over, it also detects obstacles accurately and take decision to move to left, right, forward and backward as per the availability of sufficient space without colliding with surrounding. The camera module is useful to continuously capture the images for video streaming and was successfully posted to remote server and also helpful in detection of objects.
The proposed research can be considered in future to improve the implementation of self-navigation rover with various sensors such as Gas detection sensor, Temperature sensor, humidity sensor etc. Also collaborate with high quality GPS and compass sensor which avoid the distortion of GPS signals in case of low altitude.