Project Title: GPS/Optical
Encoder Based Navigation Methods for dsPIC Micro-controlled Mobile Vehicle
Project Level: Master’s Thesis
Time Period: XXXXXXXXX
(XXXX 20XX to XXXX 20XX)
Location: School of Information
Science, Computer and Electrical Engineering, Halmstad University Supervisor: Bjorn Åstran
In this project, I investigated the many aspects of the problem of
remote localization as well as the architecture of methods and modules so as to
achieve precise navigation. I utilized optical encoders and Global Positioning
System (GPS) to attain a practical solution that has fewer errors and higher
accuracy. As a result, this career episode illustrates the tasks performed by
me in this group project, in order to achieve the final prototype. The purpose
of this project was the integration of methods of GPS and optical encoders for
a mobile vehicle that is controlled by a microcontroller. I gained an astute
and involved experience while working on this project.
The inspiration for this project came from the increasingly widespread
use of optical encoders in the field of navigation in recent times. Both, GPS
and optical encoders are used as navigation sensors. The good resolution of GPS
in a global range is no secret, however in a single-point position system, this
kind of resolution doesn’t hold up and measurements get affected by physical
factors. This is reversed in case of optical encoders since they have a higher
resolution in local, smaller ranges but as the vehicle moves, more errors are
introduced and a much poorer resolution is obtained, leading to unreliability
in the long run. My team and I decided upon combining both of these methods so
that we could obtain a system that has the advantages of both GPS and optical encoders,
while defeating both their limitations.
In order to make sure the mobile vehicle navigates the test field properly,
it needs to read encoder values from the computer. A microprocessor was used
for this purpose. This microprocessor
was programmed and connected to the encoders for reading data from the sensors.
The GPS data needs to be matched with the encoder data so that the various
errors encountered in different situations can be resolved. This is the most
important goal of the project and is achieved by Extended Kalman Filtering
(EKF) algorithm and real time curve matching algorithms.
Micro-controlled vehicles have a mountain of applications and scope
for potential improvements. They can be
used to explore unknown or hazardous environments for scientific purposes. Such
vehicles can be expanded to include infrared sensors or cameras, so that
obstructions can be sensed and avoided even when the vehicle moves away from
the line of sight. This study can help vehicles controlled by microcontrollers
to become a more rounded system, providing facilities that go beyond direction
control and navigation.
Limited resources and availability of time led us to study only the
design and create simulations and the project could not be tested in practice. The
algorithms used do not guarantee a completely accurate result. Along with these
limitations, the calculations were also approximated to abridge the complex results
and ease the overall understanding.
A microprocessor is selected to control the movements of the
differential wheeled robot used for the experiments. So, 44pin dsPIC33FJ128MC804
microchip is chosen along with the Explorer 16 development board. In addition,
for motor control, 4Q-PWM-Servostarker (MMC-QR0605 10A/20A) from Maxon Motor is
used. This is managed by two CA1450 op-amps.
The issue with GPS navigation is that it cannot maintain a good
resolution in local, single-point environments. The measurements taken by a GPS
are also affected by physical conditions such as the weather and obstructions
in the setting. Similarly, optical encoder based navigation systems provide
high precision measurements but they get riddled with errors and noise as time
wears on. This leads to the problem of a mobile vehicle navigating in a large-scale
environment while maintaining a high level accuracy. This was the aim of this project
– designing such a system that allows a robot vehicle to navigate a global
range with a high precision.
The project team consisted of two students, all students of Masters
in Science. Our project supervisor Bjorn Åstran monitored the activities carried
out as well the performance of the team. Regular updates were also given to the
Head of the Department, Mr./M(r)s. XXXXXXXXXXXX and the final approval and
submission was made to the Research and Education Board. This can be seen in
the hierarchical chart given below as Figure 1.
project was executed based on a pre-planned schedule which was followed to the
letter so as to avoid any delays in the project. Meetings and discussions with
the teammates as well as the supervisor were held to ensure the project was
going along the right path.
FIGURE 1: TEAM STRUCTURE
Three modules of a microprocessor are used to control the movement
of the mobile vehicle in this project:
Communication of PC and dsPIC
is established by UART module.
Data transfer of encoders is
established by QEI module.
Motor Control is implemented by
The microprocessor itself was programmed in C language.
Receiver Transmitter (UART)
A UART is a computer hardware device with programming that has the
ability to manage the interface of the computer with the attached peripheral devices.
It allows the computer to communicate with the serial devices connected to it
using RS-232 line. It also has a dedicated 16-bit Baud Rate Generator.
This module provides an interface to the incremental encoders used
for obtaining position data. It also detects the position and speed of rotating
FIGURE 2 : BLOCK DIAGRAM
Audio Digital to Analog
A DAC is an electronic
device used for converting digital code to analog signals so they can be
recognized by humans or non-digital systems. The output from DAC is used for
controlling motor control drives.
FIGURE 3: DAC CONVERSION
UxBRG stands for the register that controls the period of a 16-bit
timer while FCY denotes the instruction cycle clock frequency. For this system,
the desired instruction cycle clock frequency (FCY) is 4 MHz and BaudRate is
9600 Bd. To calculate UxBRG, following equations are used:
Position and Speed
The angular velocity and position of the vehicle is computed by using
interrupts. Here, we assume maximum speed of the vehicle as 4 km/h and the
diameter of one wheel is 20 cm. Then interrupt period is computed by the equation:
After dividing the phases, the tasks had to be divided among the
team members so as to utilize the available time and resources efficiently. This
project was carried out in the following phases:
Design and Calculations
Construction of the Model
I worked on the design and calculations while the other members
focused on the construction. All the other phases were worked on by the members
of the team, simultaneously.
My personal role in the project was to design the mobile vehicle so
that it could read measurements from the connected encoders and move
accordingly. My research on this matter led me to realize that odometry and GPS
needed to be studied, along with the application of real time curve matching
and Kalman filtering methods to create an error free navigation system. The
system model of the mobile robot vehicle consists of two wheels, on which two
encoders are mounted. Then kinematic equations of the system are derived in
order to detect the position, as well as
the uncertainties in it. These are given as:
Using these equations, the system model is derived.
I discovered that the addition of op-amps to the motor controlling
apparatus made the process much more stable, but with the RS-232 connection,
speed of both the wheels could be controlled. So it was observed that all the
modules were working successfully and a stronger amplification could resolve
any problems that could be encountered.
In order to ensure accurate odometry, the system needs to be
calibrated and for this, a square path experiment was conducted. Here, I used a
2390mm x1260mm rectangular path to conduct the test.
FIGURE 4: SQUARE PATH
Since our mobile vehicle was designed for use indoors, I took GPS
measurements outside without the vehicle. This data helped us in experiments to
examine the precision of GPS and in the implementation of GPS filtering and
least squares algorithm. The data was collected with a frequency of 10 Hz by a
BU-353 USB GPS receiver and then converted to meters.
This data is typically subjected to Butterworth filtering to remove
errors, however I observed that this method does not improve the accuracy of
the GPS measurements and introduces a time delay as well, so I decided against
implementing it in our system. In order to remove the errors remaining after
GPS filtering, I used the method of least squares curve to approximate the
measured values to a simpler polynomial curve or line. This method involves the
use of a second or third degree curve, such as y = a + bx + cx2 ,for
FIGURE 5: LEAST SQUARE
CURVE FITTING ALGORITHM
I also made use of real
time curve matching algorithms, by which data collected from the encoders was to
be moved to the global coordinates with the GPS, at predefined intervals. So
the local precision of the encoders was matched with an optimal global measurement.
In addition, I used the
Extended Kalman Filtering method to estimate the position and orientation of
the vehicle. The EKF method uses GPS and encoder measurements and gives as
output, the position in the global range as well as the vehicle heading angle.
FIGURE 6: EXTENDED KALMAN
The hardware for this project involves a microcontroller for controlling
the movements of the mobile vehicle. A dsPIC33 family microprocessor was chosen,
along with an Explorer 16 development board and all connection problems
associated with them are documented for future reference. In addition, 4Q-PWM-Servostarker
(MMC-QR0605 10A/20A) from Maxon Motor is used for motor control and it is
managed by two CA1450 op-amps.
C language was used to program the microprocessor and the RTCM and
EKF methods were simulated along with the GPS filtering and least square curve
The biggest challenge associated with this project was the
maintenance of optimal and accurate single-point optical encoder measurements when
transferred onto the global space. This problem is taken care of by RTCM algorithms as well as EKF methods.
The microchip only consists of a 16-bit register, which overflows after
four complete revolutions of the wheels. This limitation is overcome by using a
32-bit register and using a direction status bit.
FIGURE 7: dsPIC33 FAMILY
Some problems were also caused in the microchip due to the limited current
supply from the dsPIC as well as the voltage from the microcontroller not being
enough motor control. These issues are resolved by using op-amps on each motor
driver to provide stronger amplification.
In order to obtain precise navigation in a global environment, Real
Time Curve Matching and Extended Kalman Filtering methods are integrated. It
has been observed from the outcome of the experiments that both the methods offer
good results relatively with accuracy of GPS data collected. The frequency of data also affects the errors
encountered in the local estimation, so a lower number of measurements leads to
However, it was observed that the EKF method is more favorable when
it comes to solving the robot localization problem, since it is a recursive
technique and it adjusts itself in every iteration to find the most efficient, optimal
point that matches the local and global estimates.
The results of each phase of the project were recorded by the project
team and the project’s progress was monitored by the supervisor, who compared
the preplanned schedule with the tasks completed. The tasks were compiled in a
task log which was referenced at the completion of the project in order to create
the final project thesis, consisting of a detailed description of each activity
undertaken in the project. The final report was submitted to the supervisor and
was then approved by the Head of the Department.
By working on this project, I learnt a great deal about the various
fields within Embedded and Intelligent Systems. This project exposed me to the
benefits of teamwork and coordination and working under the guidance of an
experienced supervisor. My work on this project helped me boost many skills, such
as machine designing through the designing of models and simulations using machine
designing software. This project also exposed me to various algorithms and
techniques that might come in handy in the future. On the whole, I was able to
find a solution to the robot localization problem.