gps based autonomous car navigation system minhas …

47
GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas Thaker B.E., Gujarat University, India, 2008 PROJECT Submitted in partial satisfaction of the requirements for the degree of MASTER OF SCIENCE in ELECTRICAL AND ELECTRONIC ENGINEERING at CALIFORNIA STATE UNIVERSITY, SACRAMENTO FALL 2010

Upload: others

Post on 16-Oct-2021

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM

Minhas Thaker B.E., Gujarat University, India, 2008

PROJECT

Submitted in partial satisfaction of the requirements for the degree of

MASTER OF SCIENCE

in

ELECTRICAL AND ELECTRONIC ENGINEERING

at

CALIFORNIA STATE UNIVERSITY, SACRAMENTO

FALL 2010

Page 2: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

ii

GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM

A Project

by

Minhas Thaker

Approved by: ________________________________, Committee Chair Jing Pang, Ph.D. ________________________________, Second Reader Preetham Kumar, Ph.D. _________________________ Date

Page 3: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

iii

Student: Minhas Thaker

I certify that this student has met the requirements for format contained in the University

format manual and that this project is suitable for shelving in the Library and credit is to

be awarded for the Project

__________________________, Graduate Coordinator ___________________ Preetham Kumar, Ph.D. Date Department of Electrical and Electronic Engineering

Page 4: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

iv

Abstract

of

GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM

by

Minhas Thaker

Autonomous car navigation system based on GPS (Global Positioning System) is

a new and promising technology, which uses real time geographical data received from

several GPS satellites such as longitude, latitude, speed and course to help navigate a car.

The goal of the project is to make a auto-navigational car model that can route through

known or pre-programmed co-ordinates autonomously without any human involvement.

The project discusses how GPS readings of the current and destination points are

used to compute the distance and direction of the destination and thereby navigating the

car on the set path. It also discusses how the car must maintain its direction by

automatically correcting its course based on new GPS data received. The project

discusses various issues that were encountered and solved throughout the course of the

project.

The project is coded in C, developed and compiled in AVR studio software and is

implemented on a Atmel ATmega328 microcontroller. The project utilizes EM408 SiRF

Star III/LP single based chipset GPS engine board receiver manufactured by GlobalSat

Technology Corp., Taiwan and sold by USGlobalSat Inc, USA. The output of the GPS

Page 5: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

v

receiver is a standard NMEA signal which is decoded by the microcontroller to get

necessary geographical parameters. Once the microcontroller has the required data, it can

compute the direction of movement and thereby navigate the car. Also, the inherent logic

steers the car in case the car deviates more than a certain degree from its course. The car

that is referred to in this project is 4WD dc-motor controlled robot car.

__________________________, Committee Chair Jing Pang, Ph.D. __________________________ Date

Page 6: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

vi

ACKNOWLEDGMENTS

I would like to present deep and sincerest gratitude to Dr. Jing Pang for providing

me with an opportunity to work on this project. This project has immensely helped me to

get exposure to the emerging technology of GPS navigation. I thank her for providing all

the necessary resources, help and support for the project.

I would also like to thank Dr. Preetham Kumar for reviewing my project report

and providing timely feedback and valuable suggestions to improve my report.

I am truly thankful to the faculty and staff members of the Department of

Electrical and Electronics Engineering at California State University, who have been

instrumental directly as well as indirectly in making this project successful.

Lastly, I would like to thank my family and friends for providing immense

support, strength and motivation throughout the course of my project.

Minhas Thaker

Page 7: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

vii

TABLE OF CONTENTS

Page

Acknowledgments.............................................................................................................. vi

List of tables ....................................................................................................................... ix

List of figures ...................................................................................................................... x

Chapter

1. INTRODUCTION .......................................................................................................... 1

1.1. Introduction to GPS Based Autonomous Navigation .............................................. 1

1.2. Purpose of the Project .............................................................................................. 1

1.3. Significance of the Project ....................................................................................... 2

1.4. Organization of the Report....................................................................................... 3

2. INTRODUCTION OF GPS ............................................................................................ 4

2.1. GPS Overview ......................................................................................................... 4

2.2. GPS Satellite Constellations .................................................................................... 6

2.3. GPS Working ........................................................................................................... 8

2.4. Reference Surfaces and the Geodetic Coordinate System ..................................... 11

2.5. NMEA Protocol ..................................................................................................... 14

3. WAYPOINT NAVIGATION ....................................................................................... 17

3.1. Introduction to Waypoint Navigation .................................................................... 17

3.2. GPS Noise .............................................................................................................. 17

3.3. EM408 Pin Configuration and Connection with ATmega328 .............................. 17

3.4. Analysis of GPS Readings ..................................................................................... 19

4. ATMEGA328 MICROCONTROLLER ....................................................................... 24

4.1. Introduction to Atmega328 .................................................................................... 24

Page 8: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

viii

4.2. Approach ................................................................................................................ 25

4.3. Algorithm ............................................................................................................... 27

4.4. Computing Distance and Direction of Destination Point ...................................... 30

5. EXPERIMENTAL RESULTS...................................................................................... 33

5.1. Plotting the Waypoints on a Map........................................................................... 33

5.2. Plotting the Path Traversed By the Car.................................................................. 34

6. CONCLUSION ............................................................................................................. 36

Bibliography ..................................................................................................................... 37

Page 9: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

ix

LIST OF TABLES

Page

1. Table 2.2.1 GPS satellite constellation ........................................................................... 7

2. Table 2.4.1 Reference systems and associated ellipsoids ............................................. 12

3. Table 2.5.1 General NMEA sentences .......................................................................... 15

4. Table 2.5.2 RMC sentence format ................................................................................ 16

5. Table 3.4.1 Tabulating mean and standard deviation for GPS readings ....................... 22

Page 10: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

x

LIST OF FIGURES

Page

1. Figure 2.1.1 GPS segments ............................................................................................. 6

2. Figure 2.3.1 Determining position of receiver by triangulation of three satellites ....... 10

3. Figure 2.4.1 Geodetic latitude and longitude ................................................................ 13

4. Figure 2.4.2 Geodetic height ......................................................................................... 14

5. Figure 3.3.1 EM408 GPS receiver ................................................................................ 18

6. Figure 3.3.2 Pin connection of ATmega328 with GPS receiver ................................... 19

7. Figure 3.4.1 Bar-plot of standard deviation for latitude and longitude readings .......... 21

8. Figure 3.4.2 Mappings Points A, B, C and D on Google Maps .................................... 21

9. Figure 3.4.3 Gaussian distribution of latitude and longitude readings ......................... 23

10. Figure 4.1.1 Pin diagram of ATmega328 DIP ............................................................ 24

11. Figure 4.1.2 Internal architecture of ATmega328 microcontroller ............................. 25

12. Figure 4.2.1 Car mounted with GPS receiver and microcontroller ............................. 26

13. Figure 4.3.1 Algorithm ................................................................................................ 29

14. Figure 4.4.1 Calculating deviation from actual course ............................................... 32

15. Figure 5.1.1 Plot of point A, B, C and D on a map ..................................................... 33

16. Figure 5.2.1 Plot of actual path vs. path traversed by the car ..................................... 35

Page 11: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

1

Chapter 1

INTRODUCTION

1.1. Introduction to GPS Based Autonomous Navigation

Autonomous navigation broadly refers to any technique, approach or method,

which can be utilized to safely navigate a vehicle (terrestrial, marine, airborne or deep

space), on its own in a static or dynamic environment without any intervention by a

human controller. Autonomous navigation is a way to help achieve better route planning,

path prediction, smoother maneuverability in dynamic environments and thereby

achieving optimized fuel efficiency and enhanced human comfort. The approach of GPS

based autonomous navigation utilizes a GPS receiver that receives signals from a

constellation of GPS satellites. The receiver then computes its position on the earth

surface. A navigation algorithm then computes other parameters such as direction and

distances that aid in autonomous navigation.

1.2. Purpose of the Project

The purpose of the project is to develop an algorithm that takes in inputs from a

GPS receiver and using those inputs to successfully navigate a car through a set of known

points also known as waypoints. This type of navigation is also called terrestrial waypoint

navigation or in general, waypoint navigation [1]. Waypoint navigation is also used in

marine navigation which is also based on the same concept. The car described here is a

4WD dc-motor controlled robot car. In general it would be referred as a car, not to be

confused with a real passenger car. The overall process is divided into three parts. In the

first part, when the car is at the start waypoint the GPS receiver tries to get a fix on

Page 12: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

2

visible GPS satellites and compute current latitude and longitude. In the second part, the

algorithm in the microcontroller computes the direction of the destination waypoint from

the current waypoint and drives the car. In the third step, the algorithm steers the car in

case it deviates from its main course. These steps repeat itself after reaching the

destination and navigates to next waypoint.

1.3. Significance of the Project

GPS based autonomous navigation is a very rapidly developing technology.

Researchers have developed several techniques for navigation under a variety of external

environments. Such techniques utilizes robots that have a variety of sensors to sense

external environment such as proximity sensors, ultrasound sensors, and a camera as

shown in [2]. This project utilizes a GPS receiver to help navigate through fixed

waypoints. Autonomous navigation was implemented in the mars exploration rover.

Therein they implemented features such as tracking ground features, terrain mapping and

obstacle avoidance, mentioned in [3]. Autonomous navigation also finds its application in

defense research.

This project focuses on researching a technique of terrestrial navigation as to

learn about GPS receivers, its signals, understanding how such data can help to navigate a

car, and then interface all components together. It will help in understanding general GPS

satellite system and standard GPS protocols. Developing such a technique is useful

towards researching new domains of navigation applications.

Page 13: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

3

1.4. Organization of the Report

Chapter 2 focuses on basic introduction of GPS, its general understanding, GPS

satellite constellations, and standard GPS navigation. It describes how latitude and

longitude coordinates are computed by a GPS receiver. It also describes general geodetic

coordinate system and NMEA protocol, a standard for GPS receiver output messages.

Chapter 3 gives overview about the waypoint navigation, GPS receiver used in

the project, its configuration and wiring with ATmega328 microcontroller. It explains

how GPS coordinate readings were taken and statistically evaluated for precision

measurement.

Chapter 4 talks about the ATmega328 controller, design steps, and the algorithm

developed for navigation.

Chapter 5 describes the experimental result; it displays output results from the

GPS receiver and is plotted in a map showing waypoints. . A map of proposed path and

actual path are plotted and how to smooth out car steering control is discussed.

Chapter 6 focuses on the conclusion and future work

Page 14: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

4

Chapter 2

INTRODUCTION OF GPS

2.1. GPS Overview

GPS, the Global Positioning System, is a constellation of satellites that provides a

user with an accurate position on the surface of the earth. This satellite based navigation

system was developed by the U.S. Department of Defense (DoD) in early 1970s. It was

first intended for military use but later it was made available to civilian users. GPS can

provide precise position and time information to a user anywhere in the world. It is a one

way system i.e. a user can only receive signals but cannot send signals to the satellite.

This type of configuration is needed due to security reasons as wells as to serve unlimited

number of users [1]. The GPS system consists of three main segments:

1. Space segment

2. Control segment

3. User segment

The space segment consists of a constellation of 24 satellites in fixed orbits

around the earth. Each satellite continuously transmits GPS signals to the earth, which

consist of two carrier frequencies, digital codes, and navigation message. The carrier

frequency and codes are used in determining distance of the satellite from the receiver.

The navigation message consists of information like satellite location and clock

compensation [1].

The control segment includes a network of tracking stations. These tracking

stations continuously monitor the satellite orbit; checks satellite clock, atmospheric

Page 15: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

5

conditions, satellite almanac, provide necessary compensation for clock error, and upload

data to satellites. The OCS (Operational Control System) consists of one master control

station (MCS), several monitor stations, and ground control stations. The MCS is located

in the United States at Shriever Air Force Base, Colorado Springs, Colorado [1] [4].

The user segment consists of all civilian and military users. A GPS receiver can

lock on to any visible satellites and can determine its location on earth’s surface. GPS

system was first conceived for military usage such as navigating in remote terrains and

coordinating military activities. With addition of civilian access to GPS signals, it is used

in various applications such as surveying, mapping, hiking, and vehicular navigation [4].

Figure 2.1.1 shows the three segments of a GPS system. The GPS satellites transmit

signals at two carrier frequencies. One of them is called L1 carrier which generates

carrier frequencies at 1575.42 MHz, while the other is called L2 carrier which generates

frequencies at 1227.60 MHz [4]. The master control station uploads data to the satellites

via ground using frequencies in S-band (2 GHz to 4 GHz).

Page 16: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

6

Figure 2.1.1 GPS segments [1]

2.2. GPS Satellite Constellations

At present (as of October 2010) there are total of 32 satellites orbiting around

earth in circular orbits [5]. The satellites are placed in six orbits labeled A to F, inclined

at 55◦ with respect to the equator and at a height of approximately 20,200 km [4].

Nominally there are 24 satellites in GPS constellation, thus having 4 satellites in each

orbit. Since there are more than 24 satellites, an orbit can contain more than 4 satellites.

The control sites are located at various places all over the globe to monitor and control

the path of satellites. The GPS satellites are categorized into six sequences of Block I, II,

IIA, IIR, II-M and IIF. Each satellite is identified by its unique SVN (Space Vehicle

Page 17: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

7

Number) [1]. Table 2.2.1 shows the sequence number, SVN and the orbital plane of

current GPS satellites.

Sequence SVN Orbital Plane Sequence SVN Orbital

Plane

II-10 23 E5 IIR-7 54 E4

II-11 24 D2-F IIR-8 56 B1

II-14 26 F2-F IIR-9 45 D3

II-15 27 A6 IIR-10 47 E2

II-21 39 A1 IIR-11 59 C3

II-23 34 D4 IIR-12 60 F4

II-24 36 C5 IIR-12 61 D1

II-25 33 C2 IIR-M-1 53 C4

II-26 40 E6 IIR-M-2 52 A2

II-27 30 B2-1 IIR-M-3 58 B4

II-28 38 A3 IIR-M-4 55 F2

IIR-2 43 F3 IIR-M-5 57 C1

IIR-3 46 D2 IIR-M-6 48 A4

IIR-4 51 E1 IIR-M-7 49 B1-F

IIR-5 44 B3 IIR-M-8 50 E3

IIR-6 41 F1 IIF-1 62 B2

Table 2.2.1 GPS satellite constellation [5]

Page 18: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

8

2.3. GPS Working

When a GPS receiver locks on to a satellite it will perform three basic steps:

1. Measure distance from the satellite to the receiver.

2. Determine the position of the receiver by triangulation.

3. Synchronize GPS receiver clock to the satellite.

The GPS receiver will measure the time taken by a signal from a satellite to reach

the receiver. It is assumed that the receiver clock is synchronized with the satellite clock

at this time. The time is then multiplied with the velocity of light c, to get the distance

between the satellite and the receiver, shown in equation 2.3.1. Getting precise time

measurement is achieved by a method of pseudo random code. Pseudo random code is a

complex sequence of ‘on’, ‘off’ pulses. Each satellite has its own pseudo random code,

hence the receiver cannot accidently pick up signals from a different satellite and all

satellites can operate on the same frequency. The method works as follows. Both the

satellite and the receiver will start generating pseudo random code at the same time. The

satellite signal will carry this code in sequence as a part of the GPS signal. The receiver

then computes how late a particular pseudo code was received compared to the code

generated by it. This is how the GPS receiver determines the time taken by a signal to

travel from satellite to receiver [1].

Page 19: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

9

d c t= × ……..…………………….……………………………………….. (2.3.1)

where d is distance of receiver from satellite,

c is velocity of light, 299792458 m/s,

t is the time taken for signal from satellite to reach receiver.

The receiver computes its distance (r1) from one satellite. With measurement from

one satellite, the receiver can be anywhere on a sphere with its center as a satellite and

radius r1 as shown in figure 2.3.1a. Further on, taking another distance measurement (r2)

from the second satellite, the receiver can be on the intersection of two spheres as shown

in figure 2.3.1b. On taking the third distance measurement (r3) from the third satellite, the

receiver precisely lies on two points, which are the intersection points of three spheres as

shown in figure 2.3.1c. One of the two points will lie out farther in space compared to the

other; hence the former can be rejected. The point left is the position of the receiver on

the earth surface [6].

For the above two steps it is assumed that the receiver clock is in synchronization

with the satellite clock. The satellite clocks are atomic clocks hence they are very precise,

but they also tend to give rise to timing errors. Control centers continuously monitor the

satellite clocks and send correcting signals from time to time. The satellite in turn sends

these corrections to the receiver as a part of its signal to synchronize the receiver clock

and correct the distance measured. Also, it is impossible to have a precise clock at the

receiver end and will give rise to receiver clock error. As a result, the spheres in figure 1c

would not intersect at one point. A fourth parameter dT (receiver clock error) has to be

included in the equation to calculate the distances. To solve four unknowns, four

Page 20: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

10

equations are required; hence distance measurement from one more satellite is needed as

shown in equations 2.3.2 to 2.3.5 On solving this equation for X, Y, Z and dT,

coordinates of the receiver on the earth surface can be found [6].

Figure 2.3.1 Determining position of receiver by triangulation of three satellites [6]

Page 21: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

11

2 2 21 1 1 1( ) ( ) ( )r X x Y y Z z cdT= − + − + − − ………..………....…………… (2.3.2)

2 2 22 2 2 2( ) ( ) ( )r X x Y y Z z cdT= − + − + − − .............................................(2.3.3)

2 2 23 3 3 3( ) ( ) ( )r X x Y y Z z cdT= − + − + − − ………….…………………… (2.3.4)

2 2 24 4 4 4( ) ( ) ( )r X x Y y Z z cdT= − + − + − − ………………………………. (2.3.5)

where r1,r2,r3,r4 are distances of receiver from satellite 1, 2, 3 and 4 respectively,

X,Y,Z are three dimensional Cartesian coordinates of receiver,

(x1,y1,z1), (x2,y2,z2), (x3,y3,z3) and (x4,y4,z4) are the coordinates of satellites

1,2,3 and 4 respectively, transmitted as part of GPS signal,

c is velocity of light, 299792458 m/s,

dT is the receiver clock error.

2.4. Reference Surfaces and the Geodetic Coordinate System

Earth’s topographic surface is highly uneven, which makes accurate

measurements of geodetic data highly error prone. Geodesists have formulated two

reference systems that approximate the surface of the earth. These are called Geoid and

Ellipsoid. A Geoid is a surface at mean sea-level used to represent height on a map. An

ellipsoid is a mathematical approximation of earth surface. WGS-84, NAD 83 and GRS

80 are some common reference ellipsoid used [1] [7]. WGS-84 is an acronym of World

Geodetic System of 1984. It is a reference ellipsoid used by the U.S. Department of

Defense. The National Geospatial Intelligence Agency maintains and constantly enhances

the WGS-84 reference standard. NAD 83 which stands for North American Datum for

Page 22: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

12

1983 is another reference ellipsoid used mainly in North America. It is based on the

ellipsoid of Geocentric Reference System of 1980 (GRS 80). Table 2.4.1 shows the

common reference system used and the ellipsoid values.

Reference System Ellipsoid a(m) 1/f

WGS 84 WGS 84 6378137.0 298.257223563

NAD 83 GRS 80 6378137.0 298.257222101

NAD 27 Clarke 1866 6378206.4 294.9786982

Table 2.4.1 Reference systems and associated ellipsoids [1]

Geodetic Coordinate system is a three dimensional coordinate system in which a

point on earth’s surface is represented by three quantities latitude (ϕ), longitude (λ) and

geodetic height (h). The coordinate system has three axis, the z axis coincides with

rotational axis of the ellipsoid, x and y axis lie on the equatorial plane. Latitude of a point

is defined as an angle between the normal drawn at the ellipsoid and the equatorial plane.

Longitude of a point is the angle between the Prime Meridian which passes through

Greenwich and the meridian ellipse that contains the point. Geodetic height is the

distance between the point on the earth surface and the point on the ellipsoid along the

line perpendicular to the ellipsoid [1] [7].

As shown in figure 2.4.1, consider a point P on the surface of the earth. The earth

surface is approximated as an ellipsoid. Point P’ is a point on the ellipsoid exactly below

point P. A normal to the ellipsoid is drawn from point P and intersects the equatorial

plane. The angle made by the normal to the plane is the latitude (ϕ) of the point. The

meridian, at point P, makes an angle (λ) with the Greenwich meridian on the equatorial

Page 23: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

13

plane. This angle is the latitude of point P. Now considering figure 2.4.2, the distance

between point P and P’ gives the geodetic height of the point.

There are also other coordinate systems to determine location of a point on earth’s

surface. A coordinate system can be converted to other using mathematical equations.

These coordinates can also be projected on a map using various projection techniques [7].

Figure 2.4.1 Geodetic latitude and longitude [7]

Page 24: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

14

Figure 2.4.2 Geodetic height [8]

2.5. NMEA Protocol

National Marine Electronics Association is a group of electronics dealers, which

has standardized an interface protocol for electrical signaling and data transmission in

marine electronic equipments. This project uses NMEA 0183 format of GPS receiver

output. A common GPS receiver outputs data streams based on NMEA 0183 format.

Each NMEA sentence starts with a “$” sign and ends with a carriage return-line feed

<CR><LF>. The “$” is followed by a five character address field (e.g. $GPRMC), of

which the first two characters define the talker and the last three determine NMEA

sentence. There are 8 basic types of NMEA output messages or sentences [9]. Table 2.5.1

shows some general NMEA sentences.

Page 25: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

15

NMEA

sentence Description

GGA GPS fixed data

GLL Geographic position - Latitude/Longitude

GSA GNSS DOP and active satellites

GSV GNSS satellites in view

MSS MSK receiver signal

RMC Recommended minimum specific GNSS data

VTG Course over ground and ground speed

ZDA SiRF timing message Table 2.5.1 General NMEA sentences [9]

Page 26: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

16

This project utilizes RMC NMEA sentence. Table 2.5.2 shows detailed

description of the RMC sentence.

Name Example Units Description

Message ID $GPRMC RMC protocol header

UTC time 161229.487 hhmmss.sss

Status A A = valid data

V = not valid data

Latitude 3723.2475 ddmm.mmmm

N/S indicator N N= north or S = south

Longitude 12158.3416 ddmm.mmmm

E/W indicator E E = east or W = west

Speed over ground 0.13 Knots

Course over

ground 309.62 Degrees True

Date 120509 Ddmmyy

Magnetic Variation Degrees E = east or W = west

Mode A A=autonomous, D=DGPS,

E=DR

Checksum *10

<CR><LF> End of message termination Table 2.5.2 RMC sentence format [9]

Page 27: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

17

Chapter 3

WAYPOINT NAVIGATION

3.1. Introduction to Waypoint Navigation

A waypoint in general is a coordinate that identifies a point in 3-dimensional

space. For terrestrial application it is generally defined using latitude and longitude

coordinates. For aviation applications it is defined using latitude, longitude and altitude.

Waypoint navigation is a technique by which a user can navigate from one waypoint to

another. Generally, a GPS receiver is used to compute the direction of destination

waypoint from current position and help navigate the user. Waypoint navigation is

generally used by surveyors to layout points and lines and mariners to navigate in open

sea [1] [10].

3.2. GPS Noise

The GPS signal is constantly affected with errors and noise. These errors and

noise can affect the computed coordinates by the GPS receiver. Noise and error signal

can creep into the GPS signal at any level starting from the satellite to the receiver.

Ionosphere and Troposphere refraction at signal propagation level, and clock bias and

multipath at the receiver level account for major error in GPS data [4].

3.3. EM408 Pin Configuration and Connection with ATmega328

This project utilizes EM408 receivers manufactured by GlobalSat Technology

Corporation. Figure 3.3.1 shows the EM408 receiver. EM408 GPS engine board is a

SiRF Star III chipset based receiver, supports WAAS, EGNOS and MSAS augmentation,

features an integrated patch antenna and supports NMEA 0183 data protocol.

Page 28: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

18

Pin explanation:

1. Enable/Disable: On/Off.

2. VCC: 3.3 DC supply

3. TX: Transmit channel output.

4. RX: Receive channel input for receiving software commands.

5. GND: Provides ground to the engine board.

Figure 3.3.2 shows connection of GPS receiver to ATmega328 board. Enable, RX

and TX pins were connected to ATmega328 pins 2, 3 and 4 respectively. GND and VCC

pins were connected to GND and VCC (3.3) pins of ATmega328.

Figure 3.3.1 EM408 GPS receiver

Page 29: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

19

Figure 3.3.2 Pin connection of ATmega328 with GPS receiver

3.4. Analysis of GPS Readings

Several GPS readings were taken at point A, B, C and D, located in the faculty-

staff parking lot, at an interval of one hour. Thereafter, mean and standard deviation were

computed to determine precision of GPS readings. The results obtained are shown in

table 3.4.1. A bar graph showing standard deviation in meters is shown in figure 3.4.1.

Mean latitude and longitude coordinates of points A, B, C and D are plotted on a map as

Page 30: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

20

shown in figure 3.4.2. Gaussian response of latitude and longitudes readings for all points

is shown in figure 3.4.3, using the mean and standard deviation from table 3.4.1.

The latitude and longitude readings were fairly precise with a standard deviation

ranging from 0.92 meter to 2.26 meters. For latitude readings, Point B had the lowest

standard deviation while point D had the highest standard deviation. For longitude

readings, Point C had the lowest standard deviation while point A had the highest

standard deviation. Overall longitude readings showed less deviation compared to

latitude readings. Equation 3.4.1 was used for converting standard deviation in degrees to

standard deviation in meter.

( )1'' 301'' 30*cos

d

d

of mof mφλ φ

=

=……………………...……………………………… (3.4.1)

where ϕd is latitude standard deviation,

λd is longitude standard deviation,

ϕ is mean latitude for the point,

Page 31: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

21

Figure 3.4.1 Bar-plot of standard deviation for latitude and longitude readings

Figure 3.4.2 Mappings Points A, B, C and D on Google Maps

Page 32: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

22

Latitude(ϕ) Longitude(λ)

Point A

Mean 38.5603182128 -121.4210546807

Standard Deviation (deg) 0.0000104313 0.0000158458

Standard Deviation (m) 1.1265828691 1.3381948275

Point B

Mean 38.5603597584 -121.4208304601

Standard Deviation (deg) 0.0000085694 0.0000140004

Standard Deviation (m) 0.9254949024 1.1823422272

Point C

Mean 38.5607323646 -121.4210119247

Standard Deviation (deg) 0.0000125592 0.0000125281

Standard Deviation (m) 1.3563896801 1.0580017803

Point D

Mean 38.5606722938 -121.4211874816

Standard Deviation (deg) 0.0000210007 0.0000154879

Standard Deviation (m) 2.2680759935 1.3079614379

Table 3.4.1 Tabulating mean and standard deviation for GPS readings

Page 33: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

23

Figure 3.4.3 Gaussian distribution of latitude and longitude readings

Page 34: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

24

Chapter 4

ATMEGA328 MICROCONTROLLER

4.1. Introduction to Atmega328

Atmega328 is a high performace, low power, 8-bit CMOS microcontroller,

manufactured by Atmel. It is based on modified Harvard AVR RISC architecture. It

features 32K bytes of Flash, 1K bytes of EEPROM, and 2K bytes of RAM memory. It

also has an optional boot code section where in a bootloader program can be loaded.

Hence the feature of in-system programming can also be attained. Atmega328 is

generally programmed through AVR studio. AVR studio is the Integrated Deeopment

Environemt (IDE) for Atmel microcontrollers [11]. Figure 4.1.1 shows the pin diagram of

ATmega328 microcontroller. The AVR RISC architecture is shown in figure 4.1.2.

Figure 4.1.1 Pin diagram of ATmega328 DIP [11]

Page 35: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

25

Figure 4.1.2 Internal architecture of ATmega328 microcontroller [11]

4.2. Approach

Point A, B, C and D were the waypoints and the car had to navigate from point A

to point D, passing through point B and C. The car must maintain its couse of travel

while navigating through waypoints. An algorithm was developed to constantly compute

the car’s direction of travel to true direction of travel. For any deviation in the difference

Page 36: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

26

between the above two for more than certain allowable limit would steer the car

appropriately compensating for the deviation.

Figure 4.2.1 Car mounted with GPS receiver and microcontroller

Page 37: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

27

Figure 4.2.1 shows the car used in this project which was mounted with GPS

receiver, ATmega328 board, and related circuitry of H-bridge motor controller with

separate power supply for the motors and the board. The car was 4-wheel-drive; hence an

appropriate differential drive mechanism was used to move the car forward, backward,

left and right. The GPS receiver constantly supplied GPS coordinates, course and speed

data to the board. The board computed the direction of travel, i.e. weather to go forward,

take left or right and provided appropriate signals as input to the H-bridge motor

controller. The motor controller in turn drove the motors. The combination of direction of

rotation of motors drove the motor forward, backward, left or right.

4.3. Algorithm

The project implemented feature of waypoint navigation, using GPS coordinate

readings to continuously compute its current direction, distance from the waypoint and

true direction. From time to time it corrected itself from any deviation from true

direction. Below mentioned are the basic steps implemented for the project. Figure 4.3.1

shows the algorithm.

1. Collect coordinates readings of all waypoints from the GPS receiver

2. Store the coordinates of waypoints into memory (of controller or GPS receiver)

3. Collect coordinates of current position

4. Compute the distance and direction of the next waypoint

5. Start navigating in the set direction

6. Steer car in case it deviates from its course

7. Repeat steps iii to vi until all waypoints are reached

Page 38: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

28

In step (i), points A, B, C and D were first decided and multiple readings of

latitude and longitude were recorded. The mean of those readings were then used as fixed

waypoints for the project. The mean latitude and longitude readings are tabulated in table

3.4.1 and are mentioned here. Point A: 38.5603182128, -121.4210546807, Point B:

38.5603597584,-121.4208304601, Point C: 38.5607323646, -121.4210119247, Point D:

38.5606722938, -121.4211874816. These coordinate points were stored in program

structure. Whenever a particular waypoint was achieved, next coordinate point was

loaded into main program.

The car was kept a little further away from point A. The GPS receiver took 30-40

seconds which is its cold start time to get first readings of the car’s current location. The

reason to keep car away from point A was to determine whether the start point A was

successfully reached by the car when kept randomly anywhere on the track.

Step (iv) is explained in detail in section 4.5. This part of the algorithm

determines the distance and direction of next waypoint. Step (v) is driving motors straight

or steer left or right based on the computer direction. Whenever the car reached the

waypoint in vicinity of 1m, it would consider that particular waypoint had been achieved

and move on to next waypoint. As our GPS coordinates showed a precision standard

deviation of around 1m, it was decided to consider all points a distance of 1m from

waypoint as the waypoint itself.

Page 39: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

29

Figure 4.3.1 Algorithm

Page 40: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

30

4.4. Computing Distance and Direction of Destination Point

This project assumed a spherical model of earth surface. As the trajectory for

navigation was limited to few hundreds of meters only, there was a very less chance of a

positional error. Equation 4.4.1 gave the distance between two coordinates (ϕ1, λ1) and

(ϕ2 ,λ2) in meters. Here R is radius of the earth, which was assumed to be constant as the

spherical model of earth surface was under consideration. Also, it is assumed that the

positional accuracy of a waypoint achieved would be equal to or less than 1 meter.

Hence, if the car reached anywhere in 1 meter radius circle, it was assumed that the

waypoint was achieved.

11 2 1 2 2 1.cos (sin .sin cos .cos .cos( ))d R φ φ φ φ λ λ−= + − ……….………..…… (4.4.1)

where d = distance between two points

R = radius of earth 6371000 m

Equation 4.4.2 gave the direction of next waypoint at coordinate (ϕ2 ,λ2) from

current position (ϕ1, λ1). This equation gave the direction in range from –π to +π, with 0

degrees set in north direction.

Page 41: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

31

( ) ( ) ( ) ( ) ( ) ( ) ( )( )atan2 sin .cos 2 ,cos 1 .sin 2 sin 1 .cos 2 .cosθ λ φ φ φ φ φ λ= ∆ − ∆ (4.4.2)

0arctan

0, 0arctan

0, 0arctanatan2( , )

0, 02

0, 02

0, 0

xyx

y xyx

y xyy x x

y x

y x

undefined y x

π

π

π

π

>

≥ < +

< < − + =

> = < =− = =

…………….………..……… (4.4.3)

The GPS receiver computed fresh latitude, longitude, course and speed readings

at a rate of 1 sec. Hence the values of direction and angle θ were constantly updated. Due

to uneven track surface and constantly changing GPS readings, often the car would tend

to deviate from its set course towards destination waypoint. The algorithm measured such

deviation and if that deviation were to go above or below +45 and -45 respectively, the

car was made to take a 45 degree left or a right. The deviation was measured as the

numeric difference of angle θ and the course of travel obtained from GPS receiver. The

algorithm also updated the deviation with new values of θ and course. Figure 4.4.1

illustrates the scenario.

A log file of all latitude, longitude, course and speed readings of GPS receiver

was maintained, in addition to logging the distance and deviation computed by the

controller. The latitude, longitude readings were extracted from the file and were used to

plot a map as described in section 5.1 and 5.2.

Page 42: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

32

Figure 4.4.1 Calculating deviation from actual course

Page 43: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

33

Chapter 5

EXPERIMENTAL RESULTS

5.1. Plotting the Waypoints on a Map

The mean values of latitude and longitudes coordinates shown in table 3.4.1 are

plotted on a map, shown in figure 5.1.1. The average distance between point A and point

B is 20 m, between point B and point C is 44 m and between point C and point D is 17 m.

Considering the precise GPS readings, such distance between the points does not

generate any errors in navigation.

Figure 5.1.1 Plot of point A, B, C and D on a map

Page 44: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

34

5.2. Plotting the Path Traversed By the Car

The actual path traversed in comparison to actual path, by the car is shown in

figure 5.2.1. Initially, the car takes 2 turns around point A in order to lock on first

waypoint. Thereafter it sets off towards point B, its course of direction is not exactly in

line with the direction of point B. The algorithm detects as the deviation moves beyond

45 degrees and then turns car to right. This continues till car is on its set course and

finally reaches in 1 meter vicinity of point B. At point B again it takes whole 360 degree

turn to lock point B and head towards point C. The car sets in direction of point C,

intermediately corrected for its course and reaches point C. Again the car takes 360

degree turn and heads towards point D. Point D is the last waypoint, hence the car stops

on reaching in vicinity of point D. Thus, the car successfully navigates from point A to

point D, via points B and C.

Page 45: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

35

Figure 5.2.1 Plot of actual path vs. path traversed by the car

Page 46: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

36

Chapter 6

CONCLUSION

It was observed that at any time, a current course reading would be largely

different from the previous reading. Hence the path traversed by the car is not smooth.

There are other factors such as uneven surface that affects the traversed path. Distance

between point B and point C is fairly greater compared to other distances. It can be seen

that the car navigates smoothly on path from point B to C compared to path between

points A to B and C to D. This response can be smoothed by filtering the GPS data

received or by getting augmented GPS coordinates. Certain filters like Kalman filters are

used in robotics to smooth out the movement of the car. Secondly use of GPS

augmentation methods like DPGS or WAAS can also help improve the actual response.

Page 47: GPS BASED AUTONOMOUS CAR NAVIGATION SYSTEM Minhas …

37

BIBLIOGRAPHY

[1] A. El-Rabbany, “Introduction to GPS: the Global Positioning System”, 2nd ed.,

Boston, MA, Artech House, 2006.

[2] M. Betke and L. Gurvits, “Mobile Robot Localization Using Landmarks,” 1994 IEEE

Proc. on International Conference of Robotics and Automation, Volume 1, Munich,

1994, pp. 135-142.

[3] M. Maimone, A. Johnson, Y. Cheng, R. Willson, and L. Matthies, “Autonomous

Navigation Results from the Mars Exploration Rover (MER) Mission", 9th

International Symposium on Experimental Robotics, Singapore, 2004, pp. 3-13.

[4] B. Hofmann-Wellenhof, H. Lichtenegger, and J. Collins, “Global Positioning System,

theory and practice”, 5th ed., New York, Sprincer-Verlag, 2001.

[5] R. Langley, “Navstar GPS Constellation Status” [Online]. Available:

http://gge.unb.ca/Resources/GPSConstellationStatus.txt

[6] R. Langley, “The Mathematics of GPS”, GPS World, vol. 2, no. 7, July/August1991.

[7] R. Knippers, “Geometric Aspects of Mapping”, educational notes, International

Institute for Geo-Information Science and Earth Observation (ITC), Enschede,

August 2009.

[8] R. Foster, “Basic Geodesy”, National Geospatial-Intelligence Agency, May 2005.

[9] SiRF Technology Inc., “NMEA Referene Manual”, rev. 1.3, January 2005.

[10] T. Davison, “Navigation Companion”, John Wiley & Sons, 2007.

[11] Atmel Corporation, “ATmega48A/48PA/88A/168A/328/328P Summary”, rev. C,

August 2010.