Algorithm for GPS Navigation, Adapted for Visually Impaired People

Similar documents
Algorithm for blind navigation along a GPS track

International Journal OF Engineering Sciences & Management Research

Location and navigation system for visually impaired

GPS Waypoint Application

Remote PED Assistant. Gabriel DeRuwe. Department of Electrical & Computer Engineering

GPS (GLOBAL POSITIONING SYSTEM)

The Seamless Localization System for Interworking in Indoor and Outdoor Environments

Smart Navigation System for Visually Impaired Person

GM-270. CF GPS Receiver. User s Guide

[Bhoge* et al., 5.(6): June, 2016] ISSN: IC Value: 3.00 Impact Factor: 4.116

GPS based data acquisition system for mobile applications

Multi-Agent Robotics with GPS Navigation

NMEA-0183 Output Message

PB100 WeatherStation Technical Manual

TMR880i technical details

Automatically determine route and mode of tranport using a gps enabled phone

Key Modules For Your Success. ANTARIS 4 SuperSense. GPS Module. User s Manual Ver 展得國際有限公司

SUP500F8. Low-Power High-Performance Low-Cost 167 Channel GPS Smart Antenna Module. Features. Applications

GPS SMART ANTENNA (GWG4287SX)

GT-720F (Flash version) Fast Acquisition Enhanced Sensitivity 65 Channel GPS Sensor Module

Multi-sensory Tracking of Elders in Outdoor Environments on Ambient Assisted Living

GPS Engine Board USB Interface

Key Modules For Your Success SKYTRAQ. GPS Module MG-ST1315. UUser s Manual Ver 展得國際有限公司

GPS Receiver. UT-41R (DB9 and PS2 cable) Fast Acquisition Enhanced Sensitivity 12 Channel GPS Sensor Receiver. Features

Outdoor Navigation Systems to Promote Urban Mobility to Aid Visually Impaired People

GPS-41MLR GPS-41MLF. GPS Receiver Module GPS-41ML. Fast Acquisition Enhanced Sensitivity 12 Channel GPS Sensor Module FEATURES. Ordering Information

SKYTRAQ. GPS Module MG-ST1315S. UUser s Manual Ver 1.01

Users guide ECS 1/2/3 COMPASS / GPS Sensor

GPS Receiver. User s Guide. Dec Rev. A

Resection. We can measure direction in the real world! Lecture 10: Position Determination. Resection Example: Isola, Slovenia. Professor Keith Clarke

EM-406 GPS RECEIVER ENGINE BOARD PRODUCT GUIDE

EM-401. GPS ENGINE BOARD with Active Antenna PRODUCT GUIDE. Globalsat Technology Corporation (Taiwan)

GPS Module AGP3363. Product Datasheet & Design Guide <V1.0>

A MOBILE SOLUTION TO HELP VISUALLY IMPAIRED PEOPLE IN PUBLIC TRANSPORTS AND IN PEDESTRIAN WALKS

GU93030S Series. GPS/GNSS Receiver (G-Mouse) Product Description: GU93030S(M) is a compact, high performance, and low power consumption G-Mouse.

Indoor Navigation for Visually Impaired / Blind People Using Smart Cane and Mobile Phone: Experimental Work

ANNUAL OF NAVIGATION 16/2010

IOT GEOLOCATION NEW TECHNICAL AND ECONOMICAL OPPORTUNITIES

66-Channel GPS Module GP-3711

Automated Mobility and Orientation System for Blind

GMS6-CR6(SIRF-IV) Fast Acquisition Enhanced Sensitivity 48 Channel GPS Sensor Module

Satellite and Inertial Attitude. A presentation by Dan Monroe and Luke Pfister Advised by Drs. In Soo Ahn and Yufeng Lu

SMART ELECTRONIC GADGET FOR VISUALLY IMPAIRED PEOPLE

International Journal of Computer Engineering and Applications, Volume XII, Special Issue, March 18, ISSN

Cooperative localization (part I) Jouni Rantakokko

Bluetooth GPS Navigator

GPS / GNSS Receiver (G-Mouse) GT-901 is a compact, high performance, and low power consumption G-Mouse.

SIAPAS: A Case Study on the Use of a GPS-Based Parking System

GNSS Receiver BN-80D Datasheet BN-80D. Revision: Date:

Azaad Kumar Bahadur 1, Nishant Tripathi 2

GPS-41EBR GPS-41EBF. GPS Receiver Module GPS-41EB. Fast Acquisition Enhanced Sensitivity 12 Channel GPS Sensor Module FEATURES. Ordering Information

GPS & BDS Antenna Module

Part Number Weblink for the part Description Unit Price. Hardware interfacing to the Freescale 9S12C32 MCU on board the CSM-12C32 module

GT-321R-RS232 Fast Acquisition Enhanced Sensitivity 65 Channels GPS Sensor Receiver

Precision Estimation of GPS Devices in Static and Dynamic Modes

Mitigate Effects of Multipath Interference at GPS Using Separate Antennas

FGPMMOPA6B. [Fully pin compatible with FGPMMOPA6]

Hardware-free Indoor Navigation for Smartphones

GPS Engine Board FGPMMOSL3

AN UNIQUE METHODOLOGY ENABLING BUS BOARD NAVIGATING SYSTEM USING WSN

GPS/GNSS Receiver Module

EN: This Datasheet is presented by the m anufacturer. Please v isit our website for pricing and availability at ore.hu.

Datasheet of stand-alone GPS smart antenna module, LS20037

Indoor Navigation Approach for the Visually Impaired

Indoor Positioning with a WLAN Access Point List on a Mobile Device

HOW CAN A GPS HELP? WHY A GPS? HOW DOES A GPS WORK?

Measurement Level Integration of Multiple Low-Cost GPS Receivers for UAVs

32-channel GPS Engine Board SmartAntenna

«Navi-Campus» : an orientation and navigation app for helping visually impaired people to walk independently on any university campus

Bluetooth-GPS receiver WBT-100 USER S MANUAL. Ver 1.0 R2

Sonar and Pi Based Aid for Blind

idocent: Indoor Digital Orientation Communication and Enabling Navigational Technology

Installation Manual GPS RECEIVER GP-310B

A Multimodal Approach for Determination of Vehicle Position

2009 i-lotus - All Rights Reserved

PB100 WeatherStation Technical Manual

Technology offer. Aerial obstacle detection software for the visually impaired

WeatherStation Technical Manual

Brian Hanna Meteor IP 2007 Microcontroller

Inertially Aided RTK Performance Evaluation

A Survey of Mobile Augmentation for Mobile Augmented Reality System

GNS 430 Basic Usage. VFR GPS Usage

CONTENTS. INTRODUCTION 1 INTRODUCTION TO GPSPlus 3

MiniGMouse-PS2. User Manual. Document : Datasheet Model # : GPS Date : 01-Jan -10

GPS System Design and Control Modeling. Chua Shyan Jin, Ronald. Assoc. Prof Gerard Leng. Aeronautical Engineering Group, NUS

Cooperative navigation (part II)

C3-470B Jnavi SPECSHEET

BRB900 GPS Telemetry System August 2013 Version 0.06

041 GPS Interface (001 processor only)

Vehicle accident messenger system

>>> RALLY SAFETY SYSTEM

Using GPS in Embedded Applications Pascal Stang Stanford University - EE281 November 28, 2000

Real Time Indoor Tracking System using Smartphones and Wi-Fi Technology

Specifying GPS Disciplined Oscillators

GPS-001 GPS Module Manual

A VIRTUAL VALIDATION ENVIRONMENT FOR THE DESIGN OF AUTOMOTIVE SATELLITE BASED NAVIGATION SYSTEMS FOR URBAN CANYONS

Differential navigation for UAV platforms with mobile reference station

GPS Firmware A1080 A description of the standard NMEA GPS firmware provided on Tyco Electronics GPS module A1080 User s Manual Version 3.

GPS+ GLONASS Engine Board

Location Tracking. Current Technologies 1/19/2011. Not one, single technology Convergence of several technologies. Systems for

Transcription:

Algorithm for GPS Navigation, Adapted for Visually Impaired People Rosen S. Ivanov Abstract The paper presents an algorithm for speech enabled GPS navigation in Bulgarian. The algorithm is part of the Java mobile application for GPS tracking and navigation. Application is adapted for people with visual disabilities. The proposed algorithm allows: navigation through a trace of a route in the presence and in the absence of an electronic compass, embedded in mobile terminals; reducing errors in GPS data using Kalman filtering; adapting navigation to the current accuracy of GPS receiver; dynamic change of the course; SOS mode - the opportunity to send information about the current user location via SMS and voice message by MMS. User is informed by Text To Speech (TTS) module for: a need to change the course; distance and time to reach the end of the route; reaching the target point and a change of status of the GPS receiver. Index Terms GPS outdoor navigation, J2ME applications for blind navigation 1 INTRODUCTION R.S. Ivanov is with the Department of Computer Systems and Technologies, Technical University of Gabrovo, BULGARIA. E-mail: rs-soft@ieee.org. T he number of people with visual disabilities is around 180 million, of which 45 million are totally blind [1]. Navigation of people with visual impairment in urban and suburban environment, necessary for their normal way of life, are very serious problem and create social and professional difficulties. These limitations are partially overcome by the use of dogs, white canes and by adapting the environment. Current level of mobile communications, satellite navigation systems and functional characteristics of mobile terminals allow the creation of mass available applications for GPS outdoor navigation, which can be used by people with visual disabilities. Major problem in such systems is the insufficient accuracy of GPS receivers, mainly due to noise in GPS data. In the absence of support for the differential GPS, the noise can be reduced through the use of information from inertial sensors and filtering techniques [2], [3]. One of the most commercial mobile applications for the past years is based on customer location - Location Based Services (LBS) [4], [5]. The majority of applications for mobile GPS navigation, which can be used by people with visual disabilities, are developed in C++ for operating systems such as Symbian, Windows Mobile and Linux. This implies the use of mobile terminal such as smartphones, PDA or Pocket PC, which still have a high price. There are existing navigation applications for visually impaired people, such: Drishti [6], Wayfinder Access [7], Brunel navigation system for blind [8], Street Talk [9], Mobile Geo [10], and etc., but a mobile application is not present in Bulgarian yet. Mass availability of such application can be guaranteed when using Java. J2ME is platform independent technology, that allows the application to be installed on any mobile terminal with built-in JVM, which supports the necessary Java API. Considering the trend for hardware interpretation of the Java bytecode, such as technology Jazelle Direct Bytecode execution (DBX) [11], it is not a problem the creation of applications requiring high JVM performance. 2 ALGORITHM DESIGN It is proposed to use an external GPS receiver with Bluetooth interface. Such a decision has the following advantages: still small number of mobile terminals of the medium price segment have integrated GPS receiver; the user has the option to choose a GPS receiver, taking into account parameters such as price, sensitivity and accuracy. Data necessary for the operation of the navigation algorithm are: GPS status, longitude, latitude, speed and hdop. The sequence of their obtaining is shown in figure 1. For communication with the GPS receiver class GPSProvider is used. It implements search and communication with any GPS receiver with Bluetooth interface. Search and connect to GPS receiver are realized without user interaction. - 1 -

R. S. IVANOV: ALGORITHM FOR GPS NAVIGATION, ADAPTED FOR VISUALLY IMPAIRED PEOPLE GPS receiver GPS Provider GPS Dispatcher Bluetooth interface Find GPS receiver, parse NMEA sentences. Generate GPS data, depending current mode: tracking or navigation. Message gpsdatafornavi Message gpsdatafortracking Fig. 1. Obtaining the necessary GPS data Parsing GPRMC, GPGGA, GPGSV and GPGSA NMEA-0183 sentences, following GPS data are obtained: status, longitude, latitude, altitude, speed, direction, hdop and vdop. Access to the GPS information is possible through the interface GPSListener. Class GPSDispatcher, which implements interface GPSListener, filters GPS position (adaptive Kalman filter) and speed (1st order IIR filter) and notify Tracking and Navigation modules for new data availability. Communication between classes is realized through the mailbox. GPSDispatcher class generates message "gpsdatafornavi", when there are new data for Navigator module. This message is generated in the 1.5 to 10 seconds, depending on the trend of the filtered speed. Each program module, that should receive messages, must define method newmessage. 3 ALGORITHM DESCRIPTION Whenever Navigator module receives gspdatafornavi message, method NavigationHandler is called (see figure 2). 1. Algorithm NavigationHandler() 2. if (loadrouteflag) 3. if (navigate) 4. if (navigationstatusflag) Navigate(lon,lat,hdop) 5. else StartNavigation(lon,lat) 6. endif 7. endif 8. endif Fig. 2. Algorithm NavigationHandler Its task is to call the method Navigate or StartNavigation, depending on whether the navigation is started or not. The methods are called only if the track is loaded (flag loadrouteflag is true) and the user has enable navigation (navigate flag is true). 3.1 Start Navigation Navigation mode is started if the user current position is less than a preset distance from the route. The method StartNavigation uses the following variables and constants: direction - defines the direction of the route: (1) go to the last route waypoint, (-1) go to the first waypoint; lastpoint - last waypoint number; lastdistance last traversed distance in meters; lastalpha last heading error in degrees; MAX_DIST - initial value of lastdistance; MAX_ALPHA - initial value of lastalpha. Navigation can be started if the user approaches a track MINDIST_TO_TRACK meters. Figure 3 shows the coordinate system that was used for computation of heading error. In this coordinate system North is 0 and positive angles are measured clockwise. currentpoint Fig. 3. User Position North α2 α 1 d 1 D d 2 user position α nextpoint To verify the condition for the start of navigation, nearest track waypoint (currentpoint) is searched. The distance to this waypoint (d 1 on figure 3 and mindist on figure 4) and the nearest distance to track (d 2 on figure 3 and d on figure 4) if available are calculated. If min(d 1,d 2 ) < MIN_DIST_TO_TRACK (line 13) assumes that navigation can start (startnavigationflag is set true). Otherwise the user is informed that it is too far from the track (line 32). The initial values of variables lastdistance and lastalpha are set (lines 22-23) and next waypoint of the track (nextpoint), depending on the chosen direction, is obtained (lines 19-20). If the mobile terminal has a built-in electronic compass (line 24), the direction that the user must follow to reach nextpoint is obtained through getazimuth method (line 25). The method NavigateToAzimuth notifies the user to turn round until hear "stop", as shown on figure 5. - 2 -

IASK PROCEEDINGS 1. Algorithm StartNavigation(lon,lat) 2. index = 0, pos = 0 3. if (direction = 1) lastpoint=numberofpoints-1 4. else lastpoint=0 5. endif 6. [index,mindist] = FindNearestTrackPoint( lon,lat,pathlon,pathlat) 7. d = FindNearestDistToTrackSegment(index-1) 8. if (d < mindist) mindist=d, pos=-1 9. endif 10. d = FindNearestDistToTrackSegment(index+1) 11. if (d < mindist) mindist=d, pos=1 12. endif 13. if (mindist < MIN_DIST_TO_TRACK) 14. if (index = lastpoint) 15. TTS.say( Last waypoint is reached ) 16. stopnavigation() 17. else 18. startnavigationflag = true 19. if (pos=-direction) nextpointindex=index 20. else nextpointindex=index+direction 21. endif 22. lastdistance = MAX_DIST 23. lastalpha = MAX_ALPHA 24. if (compassflag) 25. azimuth = Compass.getAzimuth() 26. navigatetoazimuth(azimuth) 27. else 28. TTS.say( Compass missing ) 29. endif 30. endif 31. else 32. TTS.say( Too far from the track +mindist) 33. endif Fig. 4. Algorithm StartNavigation 1. Algorithm NavigateToAzimuth(destAzimuth) 2. currazimuth = -1 3. TTS.say( Turn round until you hear stop ) 4. while(currazimut!= ±5%(destAzimuth)) 5. currazimuth = Compass.getAzimuth() 6. wait(2sec.) 7. endwhile 8. TTS.say( Follow this direction ) Fig. 5. Algorithm NavigateToAzimut Depending on the distance d 2 user navigates to next waypoint or point D. In the absence of electronic compass the user is necessary to walk certain distance to determine the direction. The value of the direction, obtained from GPS receiver can not be used, because if the speed is less than 10km/h the error is too large. 3.2 Navigation After setting the flag navigationstartedflag method NavigationHandler starts to call method Navigate (see figure 6). It is used to perform the waypoint following task and to inform the user with voice for necessary direction adjustment. The heading error is the difference between the heading to the goal waypoint (angle α 1 ) and the user s current heading (angle α 2 ), α=α 2 -α 1. If α>0, the correction of the course should be α degrees in right, and if α<0 - α degrees in left. If α 0 is assumed that the user follows the correct direction. 1. Algorithm Navigate(lon,lat,hdop) 2. if (hdop > 5.0) return 3. endif 4. MIN_DIST_POINT_TO_POINT = 10*hdop+15 5. elapseddistance = GPS.distance(lon,lat, pathlon[nextpointindex],pathlat[nextpointindex] 6. if (elapseddistance>min_dist_point_to_point) 7. ALPHA_MIN = 15 8. else 9. ALPHA_MIN = 35 10. endif 11. if (elapseddistance<min_dist_to_point) 12. if (nextpointindex=lastpoint) 13. TTS.say( Last point reached ) 14. stopnavigation() 15. return 16. else 17. currpointindex=nextpointindex 18. nextpointindex=findnextpoint() 19. elapseddist=gps.dist(lon,lat, pathlon[nextpointindex],pathlat[nextpointindex] 20. alpha=gps.bearingtonextpoint(currpoint, nextpointindex) 21. if (alpha > 0) 22. TTS.say( Turn right +abs(alpha)+ degree ) 23. elseif (alpha < 0) 24. TTS.say( Turn left +abs(alpha)+ degree ) 25. else 26. TTS.say( Go ahead ) 27. endif 28. else 29. alpha=gps.bearingtonextpoint([lon,lat], nextpointindex) 30. if (alpha < ALPHA_MIN) alpha = 0 31. endif 32. if (elapseddistance > (lastdistance + MIN_DIST_POINT_TO_POINT)) 33. if (abs(alpha - lastalpha) < 15) 34. TTS.say( Go back ) 35. else 36. TTS.say( Stray from the route ) 37. endif 38. else 39. if (alpha > 90) 40. if (nextpointindex = lastpoint) 41. TTS.say( Last point reached ) 42. stopnavigation() 43. return 44. else 45. TTS.say( You pass point +nextpointindex) 46. nextpointindex=nextpointindex+direction 47. endif 48. else 49. if (alpha > 0) 50. TTS( Turn in right +abs(alpha), degree, remain, elapseddistance+ meters ) 51. elseif (alpha < 0) 52. TTS( Turn in left +abs(alpha), degree, remain, elapseddistance+ meters ) 53. else 54. TTS( Go ahead, elapseddistance+ meters ) 55. endif 56. endif 57. endif 58. endif 59. lastdistance = elapseddistance 60. lastalpha = abs(alpha) Fig. 6. Algorithm Navigate - 3 -

R. S. IVANOV: ALGORITHM FOR GPS NAVIGATION, ADAPTED FOR VISUALLY IMPAIRED PEOPLE Navigate method returns when current GPS accuracy is too low (line 2). The user is informed of this situation by TTS module. The value of parameter MIN_DIST_POINT_TO_POINT is obtained adaptively, depending on the value of hdop (line 4). The parameter is used to set minimum value of α - ALPHA_MIN (lines 610), and by method findnextpoint. If the distance to next waypoint (nextpoint) is less than MIN_DIST_TO_POINT is assumed that waypoint is reached (line 11). In this case algorithm checks (line 12) if next waypoint is last waypoint (lines 13-15) or not (lines 17-26). If this waypoint is not last waypoint next waypoint is obtained (line 18) and heading error is calculated (line 20). If the next waypoint is not reached (lines 29-57) direction to follow to reach nextpoint is calculated (line 29). The algorithm informs user if it is moving in the opposite direction (line 34) or if the heading error is too big (line 36). The user is informed if next waypoint if passеd (lines 45-46), otherwise voice navigation is realized (lines 49-55). When last waypoint is reached (lines 13 and 41) navigation is stopped by calling method StopNavigation (see figure 7). 1. 2. 3. TABLE 1 KEYS USED IN NAVIGATION MODE Key Description 0 1 3 5 7 9 GPS data and status Send SOS (SMS or MMS) Distance to next waypoint Last navigational information Change the direction Distance and time to reach target waypoint Start/Stop TTS Record audio landmark * # The results, obtained when testing the application in navigation mode, are shown in figure 8 (mobile terminal Nokia N95 is used). a) b) c) d) e) f) Algorithm StopNavigation() navigate = false navigationstatusflag = false Fig. 7. Algorithm StopNavigation 4 EXPERIMENTAL RESULTS The proposed algorithm is part of J2ME application for GPS outdoor navigation, adapted for people with visual disabilities. Application can be installed on any mobile terminal with JVM and: profile MIDP 2.0, configuration CLDC 1.1, Bluetooth API (JSR82), Mobile Media API (JSR-135), Wireless Messaging API (JSR-120) and File Connection API (JSR-75). The package Wireless Messaging API ver.2.0 (JSR-205), which is used to send MMS messages, is optional. Since the application makes access to protected resources (Bluetooth interface, file system, and etc.) it is needed to be signed. This prevents the need for confirmation that the user is agrees with access to any protectted resource. The user can access the most important information in Navigation mode with the keys of the mobile terminal (see Table 1). -4- Fig. 8. Experimental results: a) select a track from list; b) navigation can not be started, because the user is so far from the track (92m); c) direction correction - 30 in right; d) go ahead (62m); e) waypoint 10 has reached turn 46 in right; f) last waypoint is reached.

5 CONCLUSION In the paper a speech enabled GPS navigation algorithm in Bulgarian is presented. The algorithm is part of the Java mobile application for GPS outdoor navigation, adapted for people with visual disabilities. The proposed algorithm has the following advantages: 1. Ability to work without GPS maps. In Тracking mode visually impaired user walks through a route with additional person. During this walk, GPS information for track waypoints a stored on flash disk of mobile terminal. 2. Navigation is adaptive to the current accuracy of GPS receiver. 3. Changing the direction can be realized at any time. 4. User can pass track s waypoints. 5. User is informed for the necessary adjustments of the direction of movement in degrees. 6. User can send SOS messages in the form of SMS (username, GPS status, longitude, latitude, altitude, date and time) or MMS (the information from the SMS and voice message). 7. User can record voice landmarks. 8. Information from an electronic compass, if it is available, can be used. REFERENCES [1] http://laico.org/v2020resource/files/vision2020_julsep01.pdf. 2008. [2] M.H. Bruch, et al., Accurate Waypoint Navigation Using Non-differential GPS, AUVSI Unmanned Systems, 2002. [3] M.H. Grewal, L.R. Weill, A.P. Andrews, Global Possitioning Systems, Inertial Navigation, and Integration, John Wiley & Sons, NY, 2001. [4] http://www.mobilein.com/location_based_services.h tm. 2009. [5] http://www.forum.nokia.com/resources_and_infor mation/explore/mobile_technologies/location- Based_Services/. 2008. [6] L. Ran, S. Helal, S. Moore, Drishti: an Integrated Indoor/Outdoor Blind Navigation System and Service, Proc. of the 2nd IEEE Annual Conference Pervasive Computing and Communications, pp.23-30, 2004. [7] http://www.mywayfinder.com/manual/access/en/ main.html. 2008. [8] http://dea.brunel.ac.uk. 2009. [9] http://www.freedomscientific.com/products/fs/streett alk-gps-product-page.asp. 2009. [10] http://www.codefactory.es/en/. 2008. [11] http://www.arm.com/products/multimedia/java/jazell e.html. 2008. Rosen S. Ivanov received the Electronics Engineering degree from the University of Gabrovo, Bulgaria. He received the Ph.D. degree from the University of Sofia, Bulgaria, in 2000. He is currently Associate Professor of Computer Systems and Technologies at University of Gabrovo, Bulgaria. He is the author of five books and over than 40 technical papers. His research interest include mobile communications and digital signal processing. - 5 -