Transportation using autonomous vehicles has emerged as a global phenomenon with breakthroughs in personal automobiles and public transport. The potential of implementing safe and reliable on-campus transport using self-driving vehicles is high since the density of traffic on the roads in the campus is low. This project was therefore designed to transform a golf cart into an autonomous, solar-powered, electrical vehicle that will be used to take visitors on tour around the campus. The deliverables of the project can be divided into four major sections: the electrical drive system, the automation system, the solar charger system, and the localization system.
The electrical drive system of the golf cart was redeveloped by replacing the existing shunt direct current (DC) motor with a more efficient and advanced permanent magnet alternating current (PMAC) motor. A variable frequency drive consisting of a bidirectional buck-boost converter and inverter is designed to essentially convert the DC supply from a 24 V 20 AH lead acid battery to three-phase AC waveforms to control the speed of the motor. The steering system of the golf cart is modified for unmanned control using a pulley system driven by a low RPM high torque DC motor. The steering angle is determined using a 1000 pulses per revolution (PPR) rotary encoder.
The automation system of the golf cart was developed on the basis of sensor fusion involving a LIDAR sensor for the detection of up front dynamic obstacles and sixteen ultrasonic sensors for the detection of peripheral obstacles. The LIDAR sensor produces a 2D 360 degrees map of the surroundings of the golf cart, which is shown on a graphical user interface (GUI) programmed using Python programming language, on the display of Raspberry Pi 4. The data from the ultrasonic sensors is translated into relative positions of the objects which are displayed on a GUI, also programmed using Python.
The solar charger system consists of a maximum power point tracking (MPPT) controller which is developed using the topology of a non-inverting buck-boost converter, running the Perturb and Observe (PO) algorithm. The solar charger system charges the 24 V 20 AH lead acid battery that in turn powers up the PMAC motor. Three 100 W solar panels are connected in series configuration to produce an open circuit voltage of 60 V and short circuit current of 6 A.
The localization system of the golf cart uses Real Time Kinematics (RTK) positioning to achieve sub-centimeter accuracy in the coordinates. The positioning is implemented using the Reach RTK kit which comes with an application showing real time positions of the rover module and the base station module. A Networked Transport of RTCM via Internet Protocol (NTRIP) caster is used to send correction links from the base station module to the rover module to minimize errors in positioning due to ephemerides and multipath interference. Using a NTRIP caster as the intermediary between the base station module and the rover module, both the modules can be connected to different local networks allowing the rover module to be as far away as ten kilometers from the base station while retaining the accuracy of positioning.
This project will serve as the foundational platform for other autonomous applications in the future.
Chapter 1. Introduction
The campus has been providing an on-campus tour service to visitors using golf carts that are manually driven. The golf cart has been observed to follow a pre-defined route at a relatively slow speed (below 15 km/h). Our project took advantage of the predictability of the route and the low risk of safety of the on-campus roads by automating the golf cart to complete the tour with minimal human interference. A few major challenges that had been identified before the commencement of the project were as follows:
The existing electrical drive system of the golf cart was no longer functioning.
A mechanical modification had to be made to the steering system of the golf cart since the system was initially designed for manual manoeuvring.
The roads in the campus are shaded by heavy foliage making the satellite-dependent positioning unreliable.
Therefore, the project was designed appropriately to both exploit the advantages while resolving the issues arising from the challenges simultaneously.
Aim and Objectives
The primary aim of this project was to transform a golf cart into an autonomous solar-powered electrical vehicle with capability to tour the campus. The system can be implemented on the existing golf carts on the campus, after which human involvement in the driving of the vehicles is no longer needed. In order to address the tasks that were needed to be undertaken for the transformation of the golf cart in a more systematic manner, the following objectives had been laid out following the identification of the limitations and the challenges that were bound to be faced:
Design a new electrical drive system for the golf cart to replace the dysfunctional old drive system.
The electrical drive system consists of the power supply unit, control circuit and the motor. A proper system voltage had to be chosen for the power supply unit based on the specifications of the motor. The control circuit had to be designed based on specifications of the motor. The selection of the motor was done with considerations given to the power consumption, the torque, the rotation per minute (RPM) and the efficiency of the motor.
Design a mechanical system to automate the movement of the steering.
The mechanical system consists of a pulley system actuated by a motor, coupled to the shaft of the steering system. The motor had to be chosen with emphasis given to the size of the motor, the torque, and the power consumption. The motor should preferably be small and also produce high torque while maintaining a reasonably low power consumption. A closed loop system between the motor and the rotation of the shaft required the use of a rotary encoder with a resolution high enough for a precise angle control.
Design an automation system consisting of sensors and control system to drive the golf cart autonomously.
The advantages and the disadvantages of the sensors chosen had to be identified to allow for inter-compensation using the fusion of data from more than one type of sensor. The control system had to be designed to ensure that the golf cart follows the desired trajectory with minimal computation power. Safety considerations should also be given by determining the maximum allowable speed of the golf cart based on the reliability of the sensors used.
Design a solar charger system to charge the battery used to supply power to the electrical drive system of the golf cart.
The idea of including solar charger system to the golf cart is to use a renewable source of energy as an effort to address the importance of reducing reliability on non-renewable energy sources to conserve the environment. The control circuit for the charger should allow for the harvesting of maximum power from the solar panels to reduce the charging time required besides addressing issues with low irradiance.
Design a localization system to help in the navigation of the golf cart in the campus.
The localisation system essentially provides the sense of direction to the automation system of the golf cart. The localisation system should be able to provide coordinates with sub-centimetre accuracy for the purpose of achieving high precision in the tracking of the desired trajectory besides addressing the level of safety demanded by potential passengers.
All the designs required considerations to be given for the possibility of future expansion.
Chapter 2. Background Review
Section 2.A. Variable Frequency Drive System
A variable frequency drive (VFD) system has to be used to drive an AC electric motor with the purpose of varying the rotational speed of the rotor of the AC electric motor. Since the golf cart in the project runs purely on electricity, there is a need for an electrical mechanism that can perform speed control conveniently. The diagram  in Figure in Figure 2.A.1 shows the basic block diagram of a typical VFD drive system.
Figure 2.A.1. Basic block diagram of Variable Frequency Drive
The next part of the VFD system is essentially a pulse width modulated inverter as shown in the diagram  in Figure 2.A.2.
Figure 2.A.2. The component layout of a pulse width modulated inverter
In most industrial converters, insulated gated bipolar transistor (IGBT) is used for T1, T2, T3, T4, T5 and T6. The diodes in the layout are crucial in protecting the transistors from voltage spikes due to the inductive nature of the load. Transistors T1 – T4, T2 – T5 and T3 – T6 work in pairs. Each of the pair is responsible for a single phase of the three-phase AC output of the inverter. Only one of the transistors in each pair will be turned on at one instance.
A total of 3 comparators are used to control the ‘on’ and ‘off’ states of each of the transistors (1 comparator for each pair of transistors). The control signals of each of the comparators are essentially sinusoidal signals that are 120° apart in phase and can be varied in their frequencies depending on the required speed of the motor. The input signal to the comparators is a triangle signal that has a pre-set frequency depending on the magnitude of the AC output required to run the motor.
Using transistor pair T1 and T4 as an example, when the magnitude of the triangle signal is higher than the magnitude of the control signal, transistor T¬1 is switched on resulting in positive square pulses generated at the load. On the other hand, when the magnitude of the triangle signal is lower than the magnitude of the control signal, transistor T4 is switched on, resulting in negative square pulses generated at the load.
Although, the output voltage at the load for one of the 3 phases of the AC network appears to be a PWM signal, the average current approximates a sinusoidal waveform as the frequency of the triangle signal used is increased while the gap between subsequent square pulses is decreased. The resultant frequency of the output signal can be controlled by varying the frequency of the control signal of the comparator.   
In a VFD system, the frequency of the sinusoidal signals determines the frequency of the output AC supply of the inverter, which will also determine the synchronous speed of the motor using the following formula:
Rotation per minute = (120 ×frequency fo the AC supply )/(The number of poles of the windings for each phase) Equation 2.A.1
To cater for the forward and reverse direction of the motor, since for any given time, either two of the phases are responsible for the positive power supplied to the motor, by interchanging the AC supply two any of two of the phases, the direction of the flux induced in the air gap of the motor will be changed, resulting in the opposite direction of the rotation of the motor.
Section 2.B. Permanent-Magnet Synchronous Motor
In an electrical vehicle, a motor with a high power efficiency is needed to preserve the charge of the battery, by reducing the amount of energy wasted. In the EV industry, the Brushless Direct Current (BLDC) motor and induction alternating current (AC) motor are the two most popular choices used by top manufacturers. BLDC is often chosen for lower end EVs due to the relatively high performance along with the reliability and low cost of maintenance over an extended period of time. At the same time, the peak efficiency of a BLDC is also higher to the synchronous nature of the rotation of the rotor the frequency of the magnetic field of the windings at the stator. Tesla chose an induction motor for its latest Model S. The reasons given by engineers at Tesla were as follows:
The rotor of an induction motor has no magnet and does not require maintenance over a long period of time.
A BLDC requires an inverter to perform current control.
Although the peak efficiency of induction motor is slightly lower than that of a DC motor, as the size of the motor increases, the amount of magnetic losses in a BLDC grows, resulting in a reduced efficiency. The amount of magnetic losses in an induction motor is however maintained.
A stationary induction motor produces a high starting torque when connected to a fixed frequency power supply even when the motor is loaded. A BLDC does not produce any starting torque when connected to same supply. It requires an inverter with its position controlled in step with the angular position of the rotor to start up.
Permanent Magnet Synchronous Motor (PMSM) is an option to be considered if we would like to tap the advantages of both the BLDC and the induction motor. Both PMSM and BLDC have a rotor made of permanent magnets surrounded by a stator wound with coils. The identical structure of the PMSM and the BLDC often makes researchers treat both the motors as the same type.
2.B.1. Differences between BLDC and PMSM
Both BLDC and PMSM are permanent magnet motors, however, the term ‘BLDC’ is restricted to a particular type of self-synchronous permanent magnet motor in which the rotor magnets and stator windings are arranged to produce a trapezoidal shaped stator flux linkage. The stator flux linkage of a PMSM has a sinusoidal shape. The sinusoidal shape of the stator flux linkage is the core reason for the reduced torque ripple of PMSM system, giving a smoother drive.  The back electromotive force (EMF) is essentially the differentiation of the stator flux linkage with respect to time. Therefore, the waveforms of the back EMF for both of the motors are also different. The differences are made intentionally by winding the coil in the stator of a PMSM in a sinusoidal manner, while the coils in the stator of a BLDC are evenly wound.
2.B.2. PMSM Technology
As with most motors, the permanent-magnet synchronous motor (SM) has two primary parts. The non-moving is called the stator and the moving, usually inside the stator, is called the rotor. Most SM motors, there are mainly two ways to generate rotor flux. To obtain current supply and generate the rotor flux, motors which are fitted with rotor windings would require brushes for the feeding of flux from the windings of the stator to the windings of the rotor. Another method, which is as seen in PMSMs, uses permanent magnets as parts of the rotor, to generate a constant rotor flux. The use of permanent magnets in PMSM enables an efficient use of the radial space by replacing the rotor windings.
There are generally two types of general modifications that have been done to the structure of the rotor of modern PMSMs as follows:
The permanent magnets are mounted on the surface of the motor giving it a non-salient pole configuration that reduces the amount of torque ripple due to the relatively steadier sinusoidal magnetic flux at the windings of the stator. At the same time, PMSMs with non-salient poles are generally used for high speed electrical machines, for RPM above 3000.
The permanent magnets are mounted inside the motor structure giving it a salient pole configuration. PMSMs with non-salient poles, promote an increase in the effective air gap in the direct d-axis and subsequently increase the effective air gap.  
Generally, despite the trade-off in the maximum speed of the motor which however is more than sufficient for medium speed electrical machines such as the golf cart in our project, a PMSM with salient poles is a better choice because it can pull-in to synchronism faster than a non-salient PMSM due to the higher average reluctance torque which overcomes the braking torque more easily . Therefore, in order to increase the competitiveness of salient pole PMSMs especially among slow-speed drives, the relatively higher torque ripple has been resolved using the designs shown in Figure 2.B.1 and Figure 2.B.2, which allow a PMSM to tap the advantages of both the salient and non-salient pole variants. .
Figure 2.B.1. Permanent magnets mounted on the surface of the rotor closely Figure 2.B.2. Permanent magnets buried closely in the rotor with slanted orientation
However, unlike an AC induction motor, a PMSM is not self-starting. Unless the rotor is running at the same speed as the rotating field, no steady torque can be produced because the fields from the rotor and the stator will slide past each other, giving rise to a pulsating torque with an average value of zero. Therefore, a PMSM is equipped with a squirrel rotor cage which works exactly like that of an AC induction motor. When the motor is switched onto the power supply, a PMSM operates as an induction motor during the run-up phase, until the speed of the rotor reaches slightly below the synchronous speed. The excitation is then switched on so that the rotor is able to make the final acceleration and ‘pull-in’ to synchronism with the rotating field. Once the rotor is synchronized to the rotating field of the stator, no currents are induced in the squirrel case, since the slip is zero. The cage does, however come into play when the load changes, when it provides an effective method for damping out the oscillations of the rotor as it settles to its new steady-state load angle. .
Section 2.C. Photovoltaic Panels and Battery Charging
This section provides an overview of different photovoltaic (PV) cell types and battery types that are suitable to be used in electrical vehicles.
Electric vehicles (EVs) can be powered either partly or completely using solar panels that contain photovoltaic (PV) cells, which transform sunlight directly into electricity. In this project, it is expected that a DC solar panel will be used, followed by DC batteries. An inverter is expected to be used to convert the DC power into AC power for the AC load; that is the AC drive system of the vehicle. The solar power may also be used to perform some auxiliary functions. The block-diagram in Figure 2.C.1 represents the system described above.
Figure 2.C.1. A typical block diagram for the PV system
In 2010, Malaysia’s total electricity generation was 137,909 GWh. Because of its proximity with the equator, parts of Malaysia (particularly southern Malaysia) receive up to 5,000 Wh per sq. m per day. So, Malaysia has a maximum potential of producing enough energy from the Sun in one day to generate 11 years’ worth of electricity.  Hence, solar power, with technological advancement and increased efficiency can become a major source of electricity in the future. However, this potential is hampered by the high costs and low efficiencies of solar power systems.
Section 2.C.1. Photovoltaic Cells
Solar panels are used for directly converting sunlight into electricity using the photovoltaic effect. In solar panels used in EVs, photovoltaic cells are wired together in series, producing output voltages (DC) at the order of 12 V, 18 V, 24 V and so on, based on the number of solar cells present in the solar panel.
PV cells are made of semiconductor material which exhibits the photovoltaic effect. When solar energy in the form of sunlight falls onto solar panels, the electrons in the semiconductor are knocked free and move into a higher energy level, giving rise to flow of electrons, or electricity.
Structure and types of PV Cells:
Modern PV cells are made of either crystalline silicon or thin-film semiconductor material. Crystalline silicon PV cells have high efficiency in regard to converting sunlight to electricity, but are more expensive to manufacture than thin-film semiconductor PV cells. While, thin-film semiconductor cells have lower efficiency, but are cheaper to produce. 
Following is a comparison between the most common types of solar cells based on material used and efficiency :
Single crystal silicon (or mono-crystalline) cells: These are made using cells sliced from a single cylindrical crystal of silicon. This is the most efficient photovoltaic technology. Its efficiency is around 12.8%. 
Multi-crystalline silicon cell: These cells are manufactured without lattice perfection, to lower costs. They are generally cheaper to produce than monocrystalline cells, due to the simpler manufacturing process, but they tend to be slightly less efficient. Their efficiency is around 12.6%. The cost of a multi-crystalline cell is 80% of a mono-crystalline cell because of the cheaper casting process of the panel. 
Amorphous silicon cells: These are thin films of silicon, with no long or short range order in their crystal lattice. They are made of silicon deposition in a thin layer, instead of forming a proper crystal lattice. Also, amorphous silicon absorbs light more effectively than crystalline silicon, so the solar cells can be thinner. The efficiency of these cells is between 5-7%. 
Section 2.C.2. Battery for EVs
The two most commonly used battery types in EVs are lithium-ion and lead-acid batteries whose properties are listed in Table 2.C.1 .
Table 2.C.1. Comparison between the characteristics of lithium-ion and lead-acid batteries
Lithium ion batteries have higher energy, power density and higher battery life span than the other three battery types, making them a suitable choice for an EV. However, their safety concerns, low durability and high cost are some of their major drawbacks. Flooded lead-acid batteries on the other hand are the most commonly used batteries in EVs. This is due to their low cost, high availability and a low self-discharge rate of 20% per month at 25o C; that is 1000 life cycles. Due to these reasons, a flooded lead-acid battery would be the best option to use.
Section 2.D. Maximum Power Point Tracker (MPPT)
To maximize the power output of a non-linear PV system during changing ambient temperature and solar radiation, a maximum power point tracker (MPPT) is used. A MPPT is essentially a DC to DC converter that converts DC input from the solar panels into AC, and then converts it back to a different DC voltage and current that matches the battery. The higher DC voltage that is supplied by the solar panels is stepped-down to a lower DC voltage required to charge the battery of the vehicle. This conversion is done in a manner in which there is minimum power loss. Manufacturers claim up to 40% power increase using MPPT panels; which is most likely to be achieved when battery levels are low and/or light levels are low. 
2.D.1. Why is a MPPT system advantageous?
A basic solar charger ensures that no damage is dealt to batteries due to over-charging. It does this by either cutting off or reducing current being supplied to the batteries from the PV panels, when the voltage reaches its desired level. However, due to this approach, the extra output that is produced by the PV panels goes to waste.
This loss in efficiency in basic solar chargers is a result of a miss-match between voltage produced by the PV panels and that required to charge the batteries under certain conditions. If the voltage supplied by the PV panel is just slightly below the battery voltage, then the current drops nearly to zero. So, to play it safe, a typical PV panel used to power a battery that needs 15 V is made with an open circuit voltage of around 17V when measured at a cell temperature of 25°C. This is done because it will drop to around 15V on a very hot day. However, on a very cold day, it can rise to 18V.
An MPPT controller, in addition to performing the function of a basic controller, also includes a DC voltage converter, converting the voltage of the panels to that required by the batteries, with practically no loss of power. 
2.D.2. How does MPPT work?
The efficiency of the power supplied by the PV cells to the battery depends on the extent of sunlight received by the PV cells, that is, solar radiation, the electric characteristics of the load, that is, the DC battery, and the ambient temperature. Since the amount of sunlight that falls on the PV cells varies in accordance with environmental conditions (such as the weather or the time of day), the load characteristics specific to the highest power efficiency also vary such that the systems tries to maintain the power efficiency at a maximum. This load characteristic is called the maximum power point (MPP), and MPPT is the method used to find this specific point. Due to this function, MPPTs are also called power point trackers.
Inverters used in solar systems convert DC power to AC power. These inverters may include MPPT. The output power from the PV panels is sampled (I-V curve) and a proper resistance is applied to maximize power. An MPPT charge controller compares the output of the PV panels to the voltage of the battery. The controller then ascertains the best power is that can be supplied to the battery; this is converted to the best voltage that can be supplied to get maximum amperes into the battery. 
2.D.4. I-V Curve of PV Cells
Each PV cell has a point at which the current output and voltage output of the cell gives maximum power output from the cell.
Figure 2.D.1. Solar Cell I-V Curve.
Based on Figure 2.D.1 , the MPP can be thought of as an operating point whereby if the PV cell output is regulated to the current and voltage levels needed to get a power output at MPP, then power generated would be maximum. The MPPT controller simulates the resistance (V/I) needed by the PV panel to achieve maximum power output from the cell. If the resistance is lower or higher than this value, the power drawn will be less than the maximum, and thus the cell will not be used as efficiently as possible. Electronics and programming are used in MPPT to change the electrical operating point (usually the voltage) of the panels so that they are able to deliver maximum available power. 
From the figure above, it can be seen that the current is almost constant in the graph, especially in the PV cell’s MPP region. When the resistance of the load is increased, current remains constant for a while and the voltage across the PV panels increases. So, power delivered also increases. But once MPP is reached, the PV is at its maximum voltage. If the resistance is further increased, current falls sharply. If resistance is infinite, the PV is effectively an open circuit. The power at MPP is equivalent to the product of the voltage at MPP and the current at MPP.  
2.D.4. Comparison of MPPT algorithms
Due to the nonlinear nature of photovoltaic energy, it requires the use of an intermediate converter implementing a control algorithm to operate the PV cells at their MPP under different environmental conditions. MPPT can be used to get maximum power from one or more panels. Various algorithms have been proposed for MPPT, these are explained as follows.
Perturb & Observation
In this method, the terminal voltage of the solar array is perturbed (i.e. incremented or decremented), and the output power of the PV panel is compared with that of the previous perturbation cycle. If the operating voltage and the power of the PV panels increases, the controller moves the PV’s operating point in the direction of the increase. If the parameters decrease, the point is moved in the opposite direction.
A drawback of this method is that the terminal voltage is perturbed every MPPT cycle; so at the MPP during conditions of low irradiance, the output power may oscillate around the maximum and reduce the power generated by the PV system. This true for both slow-varying and rapidly-varying atmospheric conditions. 
Incremental Conductance (IC)
In this method, incremental changes in the current and voltage of PV panels are measured to predict the effect of a change in voltage. The incremental conductance of the PV panel is used to identify whether the change in power with respect to voltage is positive or negative. The MPP is computed by comparing incremental inductance with the conductance of the panels. When, the two are equal, the output voltage of the panels is the MPP voltage. The cycle of MPP calculation is repeated when the irradiation changes. 
This method can track changes quicker than the P&O method; but the controller has to carry out more calculations. The IC method is good under rapidly varying atmosphericconditions (such as rapidly varying irradiance).  However, noise reduction techniques have to be implemented to prevent the controller from continuously searching due to noise. But unlike the P&O method, the IC method can track MPP more accurately and does not requires oscillating power output to be around the maximum power point even during steady atmospheric conditions. 
Constant Voltage (CV)
The Constant Voltage (CV) algorithm is the simplest MPPT control method. The operating point of the PV panel is kept near the MPP in each nth step by regulating the panel voltage and matching it to a fixed reference voltage VREF equal to the VMPP of the characteristic PV panel. The CV method assumes that insulation and temperature variations on the solar panels have no significant effect on the VMPP. Therefore, the operating point is never exactly at the MPP and different data has to be used for different geographical regions.
When the PV panel is in low insulation conditions, the CV technique is more effective than both the P&O method and the IC method. 
Section 2.E. Automation / Autonomous Vehicle
An autonomous vehicle is a vehicle that is able to drive on its own without any human input or control. Sometimes, an autonomous vehicle is also known as an automated vehicle. However, there is a difference between the word ‘autonomous’ and ‘automated’. In simple words, an autonomous vehicle is defined as a vehicle that could drive by its own, while an automated vehicle is defined as a vehicle that is driving on its own all the time. An automated vehicle has no human input controllers such as steering, brake pedal, throttle pedal, gear selector, and clutch, except for an input for user to enter the destination of the trip. 
2.E.1. Static Obstacle Detection System
This system is important to ensure the golf cart car does not crash into any static objects. The golf cart car has to scan its surrounding obstacle to ensure the golf cart car uses the smallest possible turn and the shortest time possible to move out from the obstacle(s) while staying on the correct route to destination.
2.E.2. Lane Identification and Keeping System
The lane changing system has to be implemented to ensure the golf cart is on the correct lane before making a turn. To ensure safe lane changing, a sensor has to be employed to detect any vehicles coming from the back of the lane the car wishes to change to. If the vehicle is far but approaching at a fast speed, the golf cart car should not move to the new lane.
2.E.4. Moving Object and Pedestrian Detection, Tracking, and Avoidance System
This system has to be able to differentiate between static and moving objects. The direction of the moving object is also important because if there is a person walking away from the car, the car should not be stopped but rerouted to avoid the pedestrian. It is also crucial to differentiate between pedestrians and objects such as a ball because inanimate objects cannot be alerted by honking.
2.E.4. Ultrasonic Sensors, LIDAR and Sensor Fusion
An ultrasonic sensor uses sound wave as the reflecting medium to detect object. When compared to an infrared sensor, an ultrasonic sensor has a lower directionality thus wider detection range but lower accuracy. Furthermore, an ultrasonic sensor is able to detect transparent objects while an infrared or laser sensor cannot.  When compared to a microwave sensor, an ultrasonic sensor uses sound waves instead of electromagnetic wave. Therefore, the generation of desire frequency of sound wave (typical frequency for piezoelectric transducer is 32kHz) and the easiness of obtaining distance of the object are the reasons ultrasonic sensor are less expensive compared to most of the other sensors. 
Figure 2.E.1 shows the ultrasonic sensor basic arrangement and the impedance characteristic of a piezoelectric transducer.
Figure 2.E.1. Ultrasonic Sensor Basic Arrangement; Impedance Characteristic of a piezoelectric Transducer
The distance of the object, L_0 can be obtained using the angle of the object with respect to the receiver, θ as shown in Equation 2.E.1.
L_0=(vt cosθ)/2 Equation 2.E.1
Another key feature of the ultrasonic sensor is the Doppler effect of the sound signal. It allows for the detection of the velocity of moving objects easily by differentiating the frequency of reflected waves. For an object that is moving away, the reflected frequency decreases while the reflected frequency increases for an approaching object. The reflected frequency, f_r can be calculated using the equation below:
f_r=f_0 √(1-(v/c_0 )^2 )/(1+v/c_0 ) Equation 2.E.2
However, for practical usage, (v/c_0 )^2is very small and it can be neglected. The differential frequency which is also the Doppler frequency, ∆f can be found using
∆f=f_0-f_r=f_0 1/(c_0/v+1) Equation 2.E.3
Since c_0/v is much greater than 1,
∆f≈(f_0 v)/c_0 Equation 2.E.4
∆f≈v/λ_0 Equation 2.E.5
Using the Equation 2.E.5, the velocity of the objects can be determined. However, this only applies if the object is normal to the sensor. For an object that is moving at an angle with respect to the transmitter, θ,
∆f≈v/λ_0 cosθ Equation 2.E.6
According to the above equation, an ultrasonic sensor is unable to detect anything that is perpendicular to the transmitter. Therefore, a low directional ultrasonic sensor has to be used to reduce the number of ultrasonic sensors used to ensure maximum coverage for obstacle detection in the surroundings.
Different ultrasonic sensors have different directional diagrams which are highly dependent on the structure characteristics and properties of the diaphragm. Figure 2.E.2  shows an example of a directional diagram for an ultrasonic sensor
Figure 2.E.2 Directional Diagram for Ultrasonic Sensor
LIDAR – Light Detection and Ranging
The main function of a LIDAR sensor is its real time 3D mapping feature where it constructs a 3D map of its detectable surrounding with accurate 3D coordinate. Figure 2.E.3 shows the principle setup of a simple coaxial LIDAR system.
Figure 2.E.3. Principle Setup of a Simple Coaxial LIDAR System
A LIDAR sensor uses short impulse laser light with specific spectral properties as the transmitting signal and a photodetector to detect the backscattered laser light. The intensity of the backscattered laser light determines the distance of the object. 
The most conventional 3D Mapping Sensor uses one laser transmitter and one receiver only. In order to achieve 3D mapping, a rotating mirror is used to reflect the laser at desired angle. However, the generated 3D map will have a low resolution due to the lower data rate. There is a high-definition LIDAR technology produced by Velodyne which consists of a rotating head with 64 semiconductor lasers on it, allowing much higher data rates and consequently the generation of a high definition 3D map. Figure 2.E.4 shows a 3D map generated by Velodyne’s High Definition LIDAR System. 
Figure 2.E.4. 3D Map Generated by Velodyne’s High Definition Lidar System at a distance of over 100m. 
There are several solid-state LIDAR systems such as S3 Solid State Lidar Sensor by Quanergy and Sweep by Scanse that provide similar solutions at a much lower prices. These solid-state LIDAR systems cost around USD $250 and are much more affordable compared to other LIDAR system solutions.
According to the datasheet of Sweep by Scanse, Sweep has a low power consumption of 3W, a 360° field of view, appropriate range of 0.1 to 40m, and operational at full sunlight condition. With its low price, it is the most appropriate LIDAR sensor for this project.
Sensor or Data Fusion uses multiple sensors to generate an accurate result by combining the results of different sensors. One of the benefits of sensor fusion is the increase in the reliability of detection by using different types of sensors to compensate for the individual weaknesses for each of the sensors. For example, a laser sensor is unable to detect glass but an ultrasonic sensor is able to do so. Therefore, the coordinates of a glass window may not be shown on the 3D map produced by LIDAR but the ultrasonic sensor would be able to detect the presence of the glass object. Therefore, the data from the ultrasonic sensor can be fused with the 3D map produced by the LIDAR sensor. Figure 2.E.5 shows the sensor fusion concept that can be used for this project.
Figure 2.E.5. Sensor Fusion concept for the golf cart
Section 2.F. Localization System for an Autonomous Vehicle
A reliable localization system is one of the key features of most of the commercial autonomous vehicles. In a closed environment, the localization system can simply rely on the data from an ordinary Global Positioning System (GPS) device despite the subpar accuracy of positioning. The estimation of the position of a vehicle however becomes futile in a complex ambience with GPS satellite signals obstructed by tall and enclosing structures. Even when a high-end satellite GPS based system is used, the presence of multipath interference that takes place when different satellites are obstructed by different structures in the environment at different times, may perturb the estimation of the positon of a vehicle, leading to a deviation of up to several meters . For the purpose of navigation in a human-controlled vehicle, this deviation can be tolerated since the vehicle is maneuvered based on the perception and intelligent judgement of the driver. More accurately, all the errors arising from the compromised estimation of position are corrected in real time.
The motion of an autonomous vehicle is however driven by an independent system which does not involve human intelligence. The gap between the actual position of the vehicle and the position estimated by GPS raises a lot of issues such as the increased possibility of accidents and misrouted destinations.
In this project, using a GPS-based system for the purpose of positioning may not be the most suitable choice. Although there aren’t many built structures on campus, the GPS signal in the campus surroundings is still relatively weak compared to public roads in the city. The reason for this is most likely the secluded location of the campus that is far beyond the popular coverage of GPS satellites.
Therefore, there is a need to build a reliable localization system that is customized specifically to achieve the purpose of precise navigation in the campus. There are several methods that can be employed, that most common of which is Real time Kinematics. This falls under the category of absolute localization which uses the timing signals from the satellites for positioning while relative localization uses reference points such as landmarks for positioning . In this project, there would be a need for us to gauge the relevance of each of the localization methods before deciding on the combinations that will be used.
2.F.1. Real Time Kinematics
For applications that requires sub-centimeter to sub-millimeter accuracies, Real Time Kinematics (RTK) is a reliable technique that uses carrier-based ranging to achieve positioning instead of code-based positioning technique used in differential GPS as shown in Figure 2.F.1 .
Figure 2.F.1. The concept of Real Time Kinematics
Like differential GPS which focuses on GPS as the most common Global Network Satellites System used, Real Time Kinematics also relies on timing signals from GPS satellites. Based on the diagram in Figure 2.F.1, we can see that the RTK method uses the same differential method as differential GPS, whereby a base station and a moving rover work in tandem to correct common errors in the positioning information obtained.
Unlike DGPS method that uses the time shift of the PRN code for the calculation of pseudo range using code-based positioning, RTK uses carrier-based positioning to achieve the same purpose. The accuracy of this method of ranging is solely because of the extremely high frequency of the carrier signal, 1575.42 MHz for L1 signal and 1227.60 MHz for L2 signal. The high frequency of the signal allows for the change in phase of the signal caused by the change in the level of the PRN embedded in it to be detected with a higher precision due to the reduced time of uncertainty, corresponding to the high resolution of measurement of 1 mm per 0.003ns of signal in the time domain .
As in DPGS, the same calculation, both the base station and the moving rover measure the range separately. However, since the base station is placed at a position with known global coordinates, the error in the range could be determined and subsequently sent to the moving rover. The moving rover then offsets the calculated range locally with the value of error received from the base station. The differential approach involving the base station and moving rover pair simply allows the elimination of errors from satellite clock, ephemerides, ionospheric delays and tropospheric delays to take precision of the carrier-based measurement.
Another method of RTK employs the carrier-phase measurement technique to give a sub-millimeter accuracy of positioning. Despite the increased precision in positioning, the carrier-phase measurement technique is relatively complex due to the ambiguity of the number of full cycles of the carrier signal from the transmitter of the satellite to the receiver. Therefore, a lot of subtleties must be considered when generating these measurements in a receiver.
To have a better understanding on this, discussion about the carrier phase is necessary. For a plane propagating in free space, the carrier phase observation equation is as follows:
ϕ_(r,RF) (〖t=t〗_1 )=f_RF t_1- ( r(t = t_1 ))/λ+ ϕ_t (t=0)+M Equ ation 2.F.1
ϕ_(r,RF) (〖t=t〗_1 )=ϕ_r (t_1 )+ ϕ_t (t=0)+M Equation 2.F.2
where the satellite transmits signal at t = 0, the receiver receives signal at t = t1, f_RF is the frequency of the transmitted carrier signal, ϕ_t (0) is the initial phase offset of the transmitter, λ= c/f_RF is the wavelength, r(t_1 )=ct_1 is the range from satellite to the receiver, M is the true integer number of wavelengths between the satellite and the receiver, and ϕ_r (t_1 ) is the phase offset at the receiver.
It can therefore be deduced that carrier phase would be the total number of full carrier cycles, fractional cycles between the antennas of a satellite and a receiver at any instant, and the phase offset at the transmitter. To determine the exact range between the satellite and the receiver in units of cycle, (r(t_1))/λ, the values of three unknowns have to determined. The unknowns are:
The initial satellite phase offset, ϕ_t (0).
The phase offset at the receiver, ϕ_r (t_1 ).
The true integer number of cycles, M.
The phase of the RF signal at the receiver, ϕ_(r,RF) (t_1 ).
The 4th unknown, phase of the RF signal at the receiver, can be determined easily using a phase locked loop (PLL) tracker. The 1st unknown can be eliminated by measuring the phase of the same carrier signal while the 2nd unknown can be eliminated by measuring the phase of the carrier signal from two different satellites. This approach is better known as the double differencing technique.
However, an ambiguity arises due to the undetermined value of M which cannot be resolved by the double differencing of the carrier signal. This is due to nature of the phase locked loop which only works on tuning the local oscillator to match the phase of the input signal in a negative feedback loop. The value of phase measured is only relative to 1 cycle of a signal, which means that all the information about the number of cycles is not observed by PLL. 
To resolve this, the code-based positioning method is normally used to narrow down the possibility of number of cycles since the pseudo range measured from the PRN is accurate to within several meters. With a number of possibilities of the integer number of cycles reduced, the time taken for the computer to converge to the true integer number of cycles can be reduced to less than 10 seconds. The time can be reduced to sub-1 second by increasing the number of base stations appropriately to further narrow down the possibilities of the number of cycles.
However, one major weakness of RTK is the range of service that is confined within 10 km to 20 km radius of the base station. This is due the time needed to fix the ambiguity which becomes significantly large as the number of cycle slips increases with the growing radius.
Chapter 3. Methodology
The methodology used for this project is as shown in Table 3.1 with different colour markers used to represent the group member that was responsible for the individual methods for each of the deliverables.
Motor Drive System Steering Control Solar Charger System Sensor Fusion Localisation
Selection of motor Mechanical design Selection of solar panels Selection of sensors Selection of positioning method
Circuit design Fabrication Collection of data Collection of data Preliminary test
Assembly of circuit Assembly Analysis of data Interfacing Collection of data
Testing and troubleshooting of circuit Testing and troubleshooting Circuit design Programming Analysis of data
Programming Programming Assembly of circuit Testing and troubleshooting Interfacing
Fabrication Testing and troubleshooting of circuit
Wong Boon Chun
Ng Rong Wang
Lok Tze Wen
Syed Adnan Suvaid
Table 3.1. Methods with their respective implementer
All the methods except for “Fabrication” in Table 4.1 will be explained in detail in Chapter 4, Design and Implementation. The fabrication was being outsourced to an external vendor due to the inability of the mechanical department of the university to comply with the time limitation for the order request to be fulfilled.
Chapter 4. Design and Implementation
In this chapter, the approaches used in the execution of all the deliverables of this project will be explained in depth. Aspects such as the design procedures, circuit layouts as well as details related to the assembly of the hardware will be extricated with highlights that are deemed appreciable in the fulfilment of the deliverables. All the deliverables in the project are linked to form a complete network of systems consisting of the motor drive system, the steering drive system, the automation system, the control system and the localization system as shown in Figure 4.1.
Figure 4.1. The block diagram linking all the systems implemented
Raspberry pi 3 model B as shown in Figure 4.2. is used as the master controller due to its high processing power, attributed to its 1.2GHz 64-bit quad-core ARMv8 CPU and 1GB RAM. It also comes with four full size type A USB ports that can be used to power and control several devices such as Slave Microcontroller 1, Slave Microcontroller 2 and the LIDAR sensor. It has 40 GPIO pins that can be configured as serial ports for the purpose of communication with multiple microcontrollers to achieve automation. It also features a Display Interface (DSI) which allows the display of the graphical user interfaces for real time data via a Raspberry Touchscreen Display.
Figure 4.2. Raspberry Pi 3 Model B
Section 4.A. The Motor Drive System (Variable Frequency Drive System)
The motor drive system of the golf cart was redesigned to replace the existing dysfunctional drive system. A permanent magnet alternating current (PMAC) synchronous motor was selected to run the drivetrain for the rear wheels of the golf cart in lieu of the existing DC shunt motor. A motor controller was also designed to convert the direct current (DC) voltage from a 12 V 20 AH lead acid battery to provide the motor with 3-phase alternating current (AC) voltage waveforms. The motor controller is also capable of controlling the speed of the motor which in turn determines the speed of the golf cart. Prior to selecting a suitable motor to run the drivetrain of the golf cart, the amount of motor wheel torque was calculated as follows;
Vehicle Design Criteria
Gross vehicle weight, GVW (N)
Radius of wheel/tire, R_w (m)
Desired top speed, V_max (m/s)
Desired acceleration time, t_a (t)
Maximum incline angle, θ (°)
Worst working surface, C_rr (N)
To select motors capable of producing enough torque to drive the golf cart, the total tractive effort (TTE) required by the vehicle was calculated as follows;
TTE=RR+GR+FA Equation 4.A.1
GR=Force required to climb a grade
FA=Force required to accelerate to final velocity
Determine rolling resistance (RR):
RR=GVW × C_rr Equation 4.A.2
RR=2943 N × 0.017 (for asphalt)=50 N
Determine grade resistance (GR):
GR=2943 N ×sin〖3°〗=154 N
Determine acceleration force (FA):
FA=GVW × V_max/((9.81 ×〖 t〗_a ) ) Equation 4.A.3
FA=2943 N × (4.17 ms^(-1))/( 9.81 × 10 s)=125 N
Total Tractive Force:
TTE=50 N+154 N+125 N=329 N
Determine motor wheel torque (T_w):
T_w=TTE × R_w × RF Equation 4.A.4
R_w=radius of wheel
RF=””resistance” factor” of the drivetrain
T_w=329 N × 0.2 m × 1.15=76 Nm
With the minimum amount of motor wheel torque, T_w required to move the golf cart calculated to be 76 Nm. The motor selected to run the drivetrain of the golf cart needs to provide an amount of torque higher than the T_w calculated. The amount of raw torque that has to be provided by the motor prior to the amplification by the gear ratio (25:1), can be calculated using Equation 4.A.5.
T_m=T_w/(Gear ratio of the drivetrain)=(76 Nm)/6=12.7 Nm Equation 4.A.5
With the amount of current from the battery limited to 25 A, the torque constant, K_T of the motor can be using Equation 4.A.6.
K_T=T_m/(Current limit)=(12.7 Nm)/(25 A)= 0.5 Nm/A Equation 4.A.6
4.A.1. The Permanent Magnet Alternating Current (PMAC) Motor
The PMAC motor that had been selected to run the drivetrain of the golf cart was the Motenergy ME1118 PMAC motor as shown in Figure 4.A.1.
Figure 4.A.1. Motoenergy ME1118 PMAC Motor.
The motor has a torque constant, K_T of 0.8 Nm/A which is higher than the minimum K_T required to drive the wheels of the golf cart. can be powered by a system voltage, ranging from 12 V to 72 V. It is also capable of taking in 100 A continuously and up to 300 A for 30 seconds. This motor has a built-in bidirectional fan and internal temperature sensor. This PMAC motor has been designed to work with sinusoidal controllers.
Table 4.A.1 shows the specifications of the motor.
Power 6 Hp continuous, 19 peak Hp
Voltage 12 – 72 V DC
Maximum RPM 5000
Torque Constant 0.8 Nm/Ampere
Max Motor Current 300 A for 30 seconds
Motor Diameter 204.2 mm
Shaft Diameter 35 mm
Line to Line Resistance 0.025 Ω
Number of Poles Per Phase 8
Number of Turns Per Phase 28
Weight 10.14 kg
Table 4.A.1. The specifications of Motoenergy ME1118 PMAC motor
A coupling was fabricated to fit the shaft of PMAC motor into the existing O-ring to avoid the need to implement any major modifications to the gearbox. The coupling consists of two parts. The first part of the coupling, as shown in Figure 8.A.1 and Figure 8.A.2 in Appendices, is milled to fit into the shaft fitting of the O-ring of the gearbox. The second part of the coupling, as shown in Figure 8.A.3 in Appendices, was milled to fit together with the shaft of the motor. In Figure 8.A.3, it can only be seen that a bracket was also made to attach the motor to the chassis of the golf cart. The motor was installed into the golf cart successfully as shown in Figure 4.A.2.
Figure 4.A.2. The drive train after the installation of the PMAC motor
4.A.2. The Motor Controller
The motor controller consists of a microcontroller and 3 circuits: the isolation circuit, the driver circuit, the bidirectional buck-boost circuit and the inverter circuit. The microcontroller also continuously monitors the data from the sensors of the motor through the feedback route. All the circuits are designed and assembled on different stripboards for the purpose of prototyping and promoting convenience in troubleshooting. Figure 4.A.3 shows the block diagram of the motor controller.
Figure 4.A.3. Block diagram of the motor controller
Based on the system block diagram in Figure 4.A.1, the microcontroller in the motor controller is annotated as Slave Microcontroller 2. The STM32F411RE microcontroller that is based on the high-performance ARM Cortex -M4 32-bit ROSC core operating at a frequency up to 100 Hz was chosen for the role. It offers one 12-bit analog-to-digital converter (ADC), six general-purpose 16-bit timers and two general-purpose 32-bit timers. The microcontroller is mounted on the STM32 Nucleo-64 development board as shown in Figure 4.A.4, providing a flexible way for prototyping since the board provides access to all the features of the MCU thru the Arduino and ST Morpho connectors.
Figure 4.A.4. Nucleo STM32 F411RE
4.A.2.1. The Isolation Circuit
The isolation circuit was designed using optocouplers as the isolating chips to separate the grounds of both the microcontroller and the driver circuit. The optocouplers also protects any backflow of current from the driver and inverter circuit to the digital pins of the microcontrollers. The optocouplers chosen for the circuit are Broadcom HCPL3180 that have a fast switching speed up to 250 kHz and a high speed response with 200 ns maximum propagation delay at 100 ℃. The schematics used for each of the optocouplers is as shown in Figure 4.A.5.
Figure 4.A.5. The design of the schematics for one optocoupler on the LTSpice simulation software
Resistor R1 in Figure 4.A.5 limits the current input from the digital pins of the microcontroller. Resistor R2 allows the voltage from the output of the optocoupler to be transferred effectively to the input of the driver since the input impedance of the gate drive is very low compared to that of the output of the optocoupler. Capacitor C1 improves the transient state of the output voltage of the optocoupler.
A total of 6 optocouplers were used in the isolation circuit since a total of 6 digital pins of the microcontroller were used to provide control signals to the driver circuit. The circuit was assembled on a stripboard as shown in Figure 4.A.6.
Figure 4.A.6. The isolation circuit that was assembled on a stripboard
4.A.2.2. The Driver Circuit
The driver circuit consists of 3 International Rectifier IR2110 MOSFET/IGBT gate driver, each designed to drive one high side and low side transistors in the configuration as shown in Figure 4.A.7.
Figure 4.A.7. The design of the schematics for one gate driver to drive high and low side transistors on the LTSpice simulation software.
Capacitor C3 is a bootstrap capacitor that charges up when the low side MOSFET is turned on. When the high side MOSFET is turned on while the low side MOSFET is simultaneously turned off, the negative terminal of the capacitor provides a negative reference voltage to the source terminal of the high side MOSFET to overcome the floating ground reference that may prevent the MOSFET from switching on or off completely. The minimum capacitance value of C3, C_BOOT was determined using the following procedure:
∆V_BOOT=V_DD-V_F-V_GSMIN Equation 4.A.7
∆V_BOOT=Maximum allowable voltage drop
V_DD=Supply voltage of gate driver (V)
V_F=Bootstrap diode forward voltage drop (V)
V_GSMIN=Minimum gate source threshold voltage
C_BOOT=Q_TOTAL/(∆V_BOOT ) Equation 4.A.8
Q_TOTAL=total amount of the charge supplied by capacitor
Q_TOTAL=Q_GATE+(I_LKCAP+I_LKGS+I_QBS+I_LK+I_LKDIODE ) t_ON+Q_LS Equation 4.A.9
Q_GATE=Total gate charge
I_LKGS=Switch gate-source leakage current
I_LKCAP=Bootstrap capacitor leakage current
I_QBS=Bootstrap circuit quiescent current
I_LK=Bootstrap circuit leakage current
Q_LS=Charge required by the internal level shifter,which is set to 3nC for all HV gate drivers.
t_ON=High-side switch on time
I_LKDIODE=Bootstrap diode leakage current
At a switching frequency of 10Hz which is equivalent to a t_ON of 0.10s and a duty cycle of 50 %, C_BOOT can be calculated by obtaining the values of the parameters from the data sheets of 1N4002 diode, IR2110 gate driver and IRFP4668 MOSFET as follows;
The capacitance value for C3 was chosen to be 10 uF, higher than the minimum value calculated. Capacitor C4 is connected in parallel to capacitor C3 to reduce the stray inductance in capacitor C3 during high frequency switching.
Based on Figure 4.A.7, it can be seen that the gate driver and the MOSFETs are isolated from the digital pins of the microcontroller shown as ‘High_Input’ and ‘Low_Input’ ports by the HCPL3180 optocouplers. Bootstrap diode D1 reduces the power dissipation in the gate driver during the discharge of capacitor C4. The parallel resistor-diode configuration connected to the gates of the MOSFETs reduces the ringing effect due to the gate capacitance. The IN4002 diodes were used in the circuit. The driver circuit was assembled on a stripboard as shown in Figure 4.A.8.
Figure 4.A.8. The driver circuit that was assembled on a stripboard
4.A.2.3. The Bidirectional Buck-boost Converter Circuit
The bidirectional buck-boost converter circuit was designed using a H-bridge topology consisting of 4 Infineon IRFP4668Pbf MOSFETs driven by 2 International Rectifier IRF2110 gate drivers. The IRFP4668Pbf MOSFET has a drain-to-source breakdown voltage of 200 V. It also allows a continuous drain current of 130 A, making it suitable for high power operation. This converter circuit allows power to flow in both directions from the input to the output, and vice versa. It serves the purpose of stepping up the voltage of the back electromotive force (EMF) of the PMAC motor to a value higher than the system voltage to charge the battery during the regenerative braking. The design of the converter circuit is as shown in Figure 4.A.9.
Figure 4.A.9. The design of the schematics of the bidirectional buck-boost converter on LTSpice simulation software
Based on Figure 4.A.9, the circuit is essentially a back-to-back connection of two circuits in Figure 4.A.7 with an inductor as the intermediary. Isolating circuits consisting of Broadcom HCPL3180 optocouplers were also included in the design to protect the microcontroller from the backflow of current from the high-power network of the circuit. The circuit is capable of operating in 4 different modes of operation based on the ‘on’ or ‘off’ state of the MOSFETs as shown in Table 4.A.1.
Mode State of MOSFET
M1 M2 M3 M4
Forward buck Modulated Off Off Off
Forward boost On Off Off Modulated
Reverse buck Off Off Modulated Off
Reverse boost Off Modulated On Off
Table 4.A.1. The states of the MOSFETs for different modes of operation
For the forward flow of current from the battery to the PMAC motor, all the transistors are kept in the ‘off’ except for M1. For the backward flow of current from the PMAC motor to the battery due to the back EMF induced, the circuit is operated in the reverse boost mode whereby the duty cycle for the PWM control signal of M2 depends on the magnitude of the back EMF.
The duty cycle of the ‘on’ time of the modulated MOSFETs determines the degree of boost and buck for both the forward and reverse modes of operation based on the following equations.
Buck Operation: V_out=DV_in-2V_diode Equation 4.A.10
Boost Operation: V_out=V_in/(1-D)-V_diode Equation 4.A.11
With a switching frequency of 25 kHz set for the control signals of the MOSFETS, V_M1, V_M2, V_M3 and V_M4, the inductor as shown in Figure xxx was designed to have an inductance of 2 mH which is higher than the minimum inductance, L_min of 0.2 mH needed to ensure that the converter operates constantly in the continuous current mode. The minimum inductance, L_min was calculated as follows:
L_min= R/2f Equation 4.A.12
R=Maximum output resistance
L_min= (10 Ω)/(2 ×25000 Hz )=0.2 mH
Electrolytic capacitors with capacitances of 1000 μF were connected in parallel to the input and output of the converter to smooth the voltage. The capacitance value is higher than the minimum capacitance, C_min of 100 uF needed to ensure that the ripple factor of the voltage is lower than 1%.
C_min= 1/(8Lf^2 ∇V/V) Equation 4.A.13
L=Inductance of inductor
C_min= 1/(8 ×0.2 mH ×25000 Hz × 0.01)=100 μF
The values for L_min and C_min were also used for the circuit design for the buck-boost converter in Section
The transient response of the circuit in the reverse boost mode was simulated on the LTSpice simulation software and the results obtained are as shown in xxx. After validating the functionality of the circuit from the results of the simulation as shown in Figure xxx, the circuit was assembled on a stripboard as shown in Figure 4.A.10.
Figure 4.A.10. The bidirectional buck-boost circuit that was assembled on a stripboard
All the MOSFETs were attached to a large common heat sink with a fan for active cooling, keeping their junction-to-case temperature below 90 ℃ which is lower than their maximum operating temperature of 175 ℃. The maximum allowable thermal resistance, R_s of the heat sink needed can be calculated using the following equation.
R_s= (T_j- T_a)/Q- R_jc-R_cs Equation 4.A.14
T_j=Desired junction temperature= 85 ℃
T_a=Temperature of the ambience=30 ℃
Q=Maximum power dissipated by 4 MOSFETs=100 W
R_jc=Thermal resistance of junction to case=0.29 ℃/W
R_cs=Thermal resistance of case to sink=0.24 ℃/W
R_s= (90 ℃ – 30 ℃)/(100 W)- 0.29 ℃/W-0.24 ℃/W=0.07 ℃/W
Therefore, the heatsink chosen needs to have a thermal resistance of at least 0.02 ℃/W. An aluminium heat sink of dimension 90 mm ×20 mm ×45 mm with a thermal resistance of 0.02 ℃/W lower than R_s. Equation 4.A.14 was also applied for the thermal consideration in Section 4.A.2.4. The PCB design for the bidirectional buck-boost converter is as shown in Figure 8.B.1 in Appendices.
4.A.2.4. The Inverter Circuit
The inverter circuit consists of 6 Infineon IRFP4668PBF N-channel MOSFETs. The inverter is separated into 3 legs, whereby each leg is made of high and low side MOSFETs as shown in Figure 4.A.11.
Figure 4.A.11. The design of the schematics of the inverter circuit on LTSpice Simulation Software
Each of the MOSFETs comes with an integrated anti-parallel diode needed to handle the backflow of current due to the back electromotive force induced in the PMAC motor. The backflow of current will be exploited to charge the battery thru regenerative braking. The diodes also prevent the backward voltage spikes due to the inductive nature of the PMAC motor from damaging the MOSFETs.
The inverter was assembled on the stripboard as shown in Figure 4.A.12.
Figure 4.A.12. The inverter circuit that was assembled on a stripboard
Based on Figure 4.A.10, it can be observed that all the MOSFETS are attached to heat sinks that are ventilated using fans for active cooling. Thermal consideration was emphasized in the design since each of the MOSFETs dissipates about 10 W of heat when the motor draws a current of 25 A at a system voltage of 12 V. Due to the accumulation of heat during the continuous series of switching of the MOSFETs, when the amount of heart dissipated by each of the MOSFET is increased to about 50 W, the cooling system keeps the junction-to-case temperature of the MOSFETs below 90℃ which is lower than their maximum operating temperature of 175 ℃ which can be calculated using the Equation 4.A.14 in Section 4.A.2.4.
4.A.2.5. The Current and Voltage Sensors
Arduino voltage sensors and ACS71 30 Ampere current sensors were employed to measure the voltage and current flowing in the motor controller. The voltage and current sensors were combined to form a single module as shown in Figure 4.A.13. One module was added to the input of the inverter while three modules were added to the output of the inverter.
Figure 4.A.13. A module consisting of the Arduino voltage sensor and ACS712-30 sensor
A potential divider, consisting of a 12 Ω resistor in series with two 10 Ω resistors in parallel, was added to the input of voltage sensor to increase the sensing range of the sensor from 25 V to 100 V.
The voltage sensor produces an output voltage with a sensitivity of 33 mV/V while the current sensor produces an output voltage with a sensitivity of 60 mV/A. These sensitivity values were essential for the conversion of the output voltages of the sensors to the actual voltage or current value in the program, after the output voltages are being read by the microcontroller via the analog-to-digital converters.
The following equations were used for the conversion of the output voltages of the sensors to their respective voltage or current value.
Actual voltage (V)=Output voltage of the voltage sensor (V)×33 mV/V Equation 4.A.15
Actual current (A)=[ Output voltage of the current sensor (V)
– 1/2 ( Supply voltage of the sensor (V)) ] ×60 mV/ A Equation 4.A.16
4.A.2.6. The Over-current Protection Circuit.
The over-current protection circuit protects the MOSFETs in the inverter from current surges from the battery that are higher than 28 A. Unlike the fuse, the over-current protection circuit shuts down the circuit by turning off the passing MOSFET between the battery and the inverter circuit without causing any irreversible damage. Figure 4.A.14 shows the schematics of the protection circuit..
Figure 4.A.14. The design of the schematics of the protection circuit on the LTSpice simulation software
The protection circuit as shown in Figure 4.A.11 uses two Analog Devices AD8216 differential amplifiers which have a high operational bandwidth of 3 MHz, a high common mode rejection range and an output propagation delay lower than 100 ns, making them suitable for current shunt applications. The output of U1 in Figure 4.A.11 varies with respect to the following formula.
V_out=V_ref1/2+(R1×Current flowing across R1) Equation 4.A.5.
U2 is configured as an inverting comparator which switches its output from 12 V to 0 V, turning off the MOSFET when the output voltage of U1 is higher than 2.5 V. This form of protection circuit employs the low response time of the hardware to break the circuit much faster than protection circuits that employ the software interrupt.
4.A.2.7. The full schematics of the Motor Controller Circuit
The full schematics of the motor controller circuit, consisting of the isolating circuit, the driver circuit and the inverter circuit is as shown in Figure 4.A.15.
Figure 4.A.15. The schematics consisting of the isolation circuit, the driver circuit and the inverter circuit on the LTSpice simulation software.
The simulation results and the measured results from the assembled motor controller can be found in Section 5.A in Result and Discussion. The PCB design for the motor controller is as shown in Figure 8.B.2.
4.A.2.8. Speed control of the PMAC motor
The microcontroller STM32 F411RE was programmed to run the motor with a linear frequency-speed control. The speed of the motor is related to the frequency of the AC voltage waveforms produced by the motor controller as follows;
Speed of the motor (RPM)
= (120 ×frequency fo the AC voltage waveforms (Hz))/(The number of poles of the windings for each phase) Equation 4.A.5
where the number of poles of the windings for each phase=8
In order to cap the speed of the golf cart at 5 km/h, the maximum frequency of the AC voltage waveforms was set to 25 Hz. The speed of the golf cart is related to the frequency of the AC voltage waveforms at the output of the motor controller as follows;
Speed of the golf cart (km/h)
=(60 × Speed of the motor (RPM) × Gear ratio ×2π ×〖R 〗_wheel )/100000 Equation 4.A.6
where Gear ratio=6 and 〖R 〗_wheel=20 cm
Figure 4.A.16 shows the code snippet for the speed control of the PMAC motor.
Figure 4.A.16. The code snippet for the speed control of PMAC motor
The code enclosed in the “while” loop in Figure 4.A.15 emulates the control signals in Figure 4.A.13 with considerations given to maintaining the time interval of the dead band, represented by the variable “interval”, at 5% of the total time for one period for different frequencies of the AC waveforms. For instance, for a frequency of 15 Hz, the dead band is set to be 3333 μs, which is 5% of the duration of one period of the control signal, which is equal to 66666 μs. The dead band can be observed in the waveforms produced by the microcontroller as shown in Figure 5.A.3 in Results and Discussion.
The setup for the testing of the motor controller is as shown in Figure 8.A.4 in Appendices.
Section 4.B. Steering Control
A mechanical pulley system as shown in Figure 4.B.1 was designed to actuate the steering using Como Drills 942D5161, a high torque low speed DC motor with the specifications as shown in Table 4.B.1.
Figure 4.B.1. The mechanical pulley system for the actuation of the steering system
Speed at 12 V 27 RPM without load
Output torque 8 Nm
Current consumed at 12 V without load 0.52 A
Gear ratio 516:1 (Reduction of 15000 RPM to 27 RPM)
Table 4.B.1. The specifications of Como Drills 942D5161
Figure 4.B.2 shows the design layout of the mechanical pulley system (not drawn to scale).
Figure 4.B.2. The design layout of the mechanical pulley system
The resultant torque, T_steering acting on the shaft of the steering, the speed of the steering and the speed of the rotation of the shaft of the rotary encoder were calculated as follows;
T_steering= T_motor × (Diameter of P1)/(Diameter of P2)=8 Nm ×1.33=10.5 Nm Equation 4.B.1
Speed of the steering=27 RPM × (Diameter of P2)/(Diameter of P1)=27/1.33=20 RPM Equation 4.B.2
Speed of the shaft of the rotary encoder=Speed of the steering × (Diameter of P1)/(Diameter of P3)
=20 RPM ×2.65 =53 RPM Equation 4.B.3
The T_steering as calculated in Equation 4.B.3 is higher than the minimal value of torque, 10 Nm needed to actuate the steering manually.
The direction and the speed of the DC motor was controlled using the L298 motor driver interfaced to the Nucleo STM32 F4 441RE, which was also used to provide control signals to the motor controller in Section 4.B. The OMRON 1000 pulses per rotation rotary encoder was also interfaced to the same microcontroller board to allow for the control of the angle of rotation of the steering. Figure 4.B.3 shows the flow chart for the detection of the direction of rotation and the angle of the shaft of the steering by capturing and comparing the signals from Phase A and Phase B outputs (as shown in Figure xxx) of the rotary encoder using the software interrupt.
Figure 4.B.3. Flow chart for detection of direction and angle of rotation of the steering
The code snippet for the implementation of the pseudocode in the flow chart in Figure 4.B.3 is as shown in Figure 4.B.4.
Figure 4.B.4. The code snippet for the detection of the direction of rotation and the angle of rotation of the shaft of the steering
The testing steering system for the automated steering system is a shown in Figure 8.A.5 in Appendices.
Section 4.C. The Solar Charger System
The solar charger system was designed to charge the 12 V 20 AH battery used to power up the PMAC motor using three 100 W solar panels on the roof of the golf cart as shown in Figure 4.C.1.
Figure 4.C.1. Three 100 W solar panels fixed onto the roof of the golf cart.
The specifications of the solar panels are as shown in Table 4.C.1.
Type Semi-flexible monocrystalline
Maximum output power 100 W
Open circuit voltage 20.5 V
Short circuit current 5.9 A
Rated voltage 18 V
Rated current 5.55 A
Table 4.C.1. The specifications of the solar panels.
Figure 4.C.2. shows the block diagram of the solar charger system that was implemented.
Figure 4.C.2. The block diagram of the solar charger system
4.C.1. Determining the I-V Curve of the Solar Panels
The I-V curve of a solar panel indicates the characteristic of a solar panel at a particular level of irradiance. To estimate the I-V curve for a particular level of irradiance, three of the following parameters have to be determined:
The open circuit voltage.
The short circuit voltage at the given level of irradiance.
The fill factor.
The fill factor which remains constant irrespective of the level of irradiance was determined by:
(Rated voltage × Rated current)/(Open circuit voltage × Short circuit current )=(18 ×5.55)/(20.5 ×5.9)= 0.826 Equation 4.C.1
The open circuit voltage and short circuit current at different times of the day, representing different levels of irradiance, for three 100 W solar panels with the specifications as shown in Table 4.C.1. connected in the series configuration, was measured and recorded as shown in Table 4.C.2.
Time Open circuit voltage (V) Short circuit current (A)
9.00 am 54.0 1.12
10.00 am 54.5 2.08
11.00 am 56.7 4.82
12.00 am 54.7 4.50
1.00 pm 55.0 4.92
2.00 pm 55.0 4.37
4.00 pm 54.3 4.63
4.00 pm 54.2 1.56
5.00 pm 54.0 1.12
Table 4.C.2. The open circuit voltage and short circuit current of three 100 W solar panels connected in the series configuration at different times of the day
Using the method of least square fitting in MATLAB based on the fill factor that has been calculated in Equation 4.C.1, the I-V curve of the solar panels, connected in the series configuration, at different times of the day is plotted as shown in Figure 4.C.3.
Figure 4.C.3. The I-V curve of the solar panel at different times of the day
The maximum power point for each of the respective time of the day is indicated by the ‘X’ mark at the ankle of the corresponding I-V curve in Figure 4.C.3. The maximum power decreases as the irradiance decreases with the lapse in the time of the day from 1.00 pm to 5.00 pm. The irradiance value was measured using a pyranometer.
4.C.2. The Maximum Power Point Tracking (MPPT) Controller
The MPPT controller is essentially a buck-boost converter equipped with both the voltage and current sensors at the input and output. The duty cycle of the converter changes as the program in the microcontroller searches for the maximum power point using the Perturb and Observe algorithm.
The Arduino Mega 2560 was as shown in Figure 4.B.5 was chosen as the microcontroller board for this controller since the board has a high number of I/O resources that would allow for the possibility to expand of the solar charger system when more MPPT controllers are developed in the future to harvest the maximum amount of power from each of the solar panels individually.
The buck-boost converter was designed using 2 Infineon IPP100N10S3 N-Channel MOSFETs driven by 1 International Rectifier IRF2110 gate driver. The IPP100N10S3 MOSFET, having a breakdown voltage of 100 V and maximum drain current rating of 100 A, was chosen instead of the IRFP4668PBF MOSFET used in the motor controller because the solar power charger system only handles at most 300 W provided by the solar panels. The IPP100N10S3 MOSFET is also much smaller which allows for a more compact circuit design.
Figure 4.C.4. shows the schematics of the buck-boost converter.
Figure 4.C.4. The design of the schematics of the buck-boost converter on LTSpice simulation software
The circuit in Figure 4.C.4. operates in the buck or boost mode depending on the states of the MOSFETS as shown in Table 4.C.3.
Mode State of MOSFET
Forward buck Modulated Off
Forward boost On Modulated
Table 4.C.3. The states of the MOSFETs for different modes of operation
The duty cycle of the ‘on’ time of the modulated MOSFETs determines the degree of boost and buck for both the forward and reverse modes of operation based on the following equations.
Buck Operation: V_out=DV_in-2V_diode Equation 4.C.2
Boost Operation: V_out=V_in/(1-D)-V_diode Equation 4.C.3
With a switching frequency of 25 kHz set for the control signals of the MOSFETS, V_M1 and V_M2, the inductor as shown in Figure xxx was designed to have an inductance of 3 mH which is higher than the minimum inductance of 0.15 mH needed to ensure that the converter operates constantly in the continuous current mode. An electrolytic capacitor with capacitances of 1000 μF was connected in parallel to the output of the converter to smooth the voltage. The capacitance value is higher than the minimum capacitance of 100 uF needed to ensure that the ripple factor of the voltage is lower than 1%.
The STMicroelectronics STTH20R04FP diode, a high power diode with a continuous maximum current rating of 20A, was chosen for this circuit since the circuit has to handle a magnitude of current up to 6 A. Based on Figure 4.B.4, it can also be observed that the gate driver and the high power circuit network have been isolated using the Broadcom HCPL3180 optocoupler to prevent the backflow of current from damaging the microcontroller.
Prior to the assembly of the circuit, the transient response of the circuit at 50% duty cycle was simulated using LTSpice. The result of the simulation is as shown in Figure .xxx.
The circuit was assembled on a stripboard as shown in Figure 4.C.5.
Figure 4.C.5. The MPPT Controller that was assembled on a stripboard
As shown in Figure 4.C.5, two sets of voltage and current sensing modules as discussed in Section 4.A.2.5 were included in the circuit. However, the 5 A variant of the current sensor was used instead of 30 A to increase the resolution in the measurement of the current flowing. The data from these sensors are essential for the implementation of the PO algorithm since the algorithm is highly dependent on the current and voltage values at the input and output of the MPPT controller for the calculation of power.
The Charger Circuit
The charger circuit is essentially a duplicate of the design of the buck-boost converter in Figure 4.C.5. Therefore, the characteristics of the circuit are similar to those discussed for the MPPT controller. The charger circuit was also assembled on a stripboard. It was subsequently cascaded to the output of the MPPT controller to form a MPPT solar charger as shown in Figure 4.C.6. A set of voltage and current sensor was added to the output of the charger circuit to monitor the charging voltage and current supplied by the solar charger to the battery.
Figure 4.C.6. The MPPT solar charger consisting of the MPPT controller and the charger circuit
Both the MPPT controller and charger circuit share the same PCB design as shown in Figure 8.B.3 in Appendices.
Implementation of the Perturb and Observation Algorithm
A program was developed as shown in Figure 4.C.7. based on the following flow chart for the implementation of the PO algorithm to track the maximum power point of the solar panels during the charging of the battery. The code snippet which implements the PO algorithm is as shown in Figure 4.C.8.
Figure 4.C.7. The PO algorithm utilized for the control the voltage of the MPPT controller in the program.
Figure 4.C.8. Code snippet showing the implementation of the PO algorithm
The charger circuit maintains a constant output voltage across the battery by varying the duty cycle based on the instantaneous output voltage of the MPPT controller. During conditions of low irradiance, the duty cycle of the charger circuit in the boost operation will be reset to 0% and ramped up to track the charging voltage needed when the maximum duty cycle has been achieved.
The testing setup for the MPPT solar charger is as shown in Figure 8.A.6 in Appendices.
Section 4.D. The Automation System (Sensor Fusion)
The sensor fusion in this project involves the use of a 2D LIDAR scanner and sixteen HC-SR04 ultrasonic sensors, interfaced to Nucleo STM32 F767ZI microcontroller board, annotated as Slave Microcontroller 1 in the system block diagram in Figure 4.1. The board is powered by a powerful microcontroller STM32F767ZI that features the ARM 32-bit Cortex-M7 CPU with an operating frequency up to 216Mhz, up to 2 Megabits of Flash memory, three 12-bit ADC with up to 24 channels, up to eighteen 16-bit timers, two 32-bit timers, and two watchdog timers.
It also consists of a ST Zio connector that includes the support for Arduino Uno V3 connectivity. The ST morpho connectors on board provides access to all the 168 I/O ports of the STM32 F767ZI microcontroller. The board is packed with RJ45 ethernet port, which provides the capability for the implementation of Internet of Things (IOT). It also comes with 4 USART/UART interfaces that can be used to communicate with different microcontrollers. The same microcontroller board is also used to acquire data from the Reach RTK module using the UART interface. It will be further discussed in Section 4.D.
Figure 4.D.1: STM32 F767ZI Nucleo Board
4.D.1. 2D LIDAR Scanner
The 2D LIDAR RPLIDAR A2 by SLAMTEC, as shown in Figure 4.D.1 with the specifications as shown in Table 4.D.1 was chosen as the master sensor for the automation system.
Figure 4.D.1. RPLIDAR communicates with the computer using a USB adapter
Max Detection Distance 8 meters
Detection Angular Range 360°
Detection Distance Resolution < 1%
Scanning Speed 15Hz Max
Sampling Frequency 4000Hz
Table 4.D.1: Specifications of RPLIDAR by SLAMTEC
The Raspberry Pi 3 model B, the master controller is used as the processing unit for the data provided by RPLIDAR to prevent data loss since RPLIDAR is capable of scanning the surroundings at 4000 samples per second since the program is completed using Python programming language.
4.D.1.1. RPLIDAR Communication Protocol
RPLIDAR Request Packet
RPLIDAR uses serial to communicate and control by sending a request package. The format for the request packet is as shown in Table 4.D.2.
Sync Byte Command Payload Size Payload Byte 1 Payload Byte 0 Checksum
0xA5 Refer to Table 4.D.3 Optional for all operations except for START_MOTOR
Table 4.D.2: RPLIDAR Request Packet Format
Sync Byte for request package is always 0xA5 and the commands are operation specific. The available commands for the control of the RPLIDAR are listed in Table 4.C.4.
Operation Command Payload
STOP 0x25 Optional
RESET 0x40 Optional
SCAN 0x20 Optional
FORCE_SCAN 0x21 Optional
GET_INFO 0x50 Optional
GET_HEALTH 0x52 Optional
START_MOTOR* 0xF0 PWM Duty Cycle
Table 4.D.3: Available Commands for RPLIDAR A2
*Payload is compulsory for the START_MOTOR command
The “Payload” is optional for all the commands except for the “START_MOTOR” command. The “Payload” for “START_MOTOR” command determines the duty cycle of the PWM signal which controls the rotation speed of the RPLIDAR. The “Payload” data consists of 2 bytes. The duty cycle of the PWM signal is mapped to a range from 0 to 1024. For instance, to produce a PWM signal with a duty cycle of 65% which is mapped to a value 660, the “Payload” data will be 0x0294 with byte 0 and byte 1 of the data storing 0x02 and 0x94 respectively. The “checksum” is used to check whether the request packet is valid. The formula for “checksum” is as shown in Equation 4.D.1.
checksum=(Sync Byte) ^ (Command) ^ (Payload Size) ^ (Payload Byte 1) ^ (Payload Byte 0)
where ^ is the XOR operator.
Therefore, for example, to start the rotation of the RPLIDAR with a duty cycle of 65%, the full request packet is 0xA5F0029402C1.
4.D.1.2. RPLIDAR Response Packet
There are 3 types of responses given by RPLIDAR as follows:
Single request, single response
Single request, multi-response
Single request, no response
Table 4.D.4 shows the type of response for the respective operation of the RPLIDAR.
Operation Type of Response
STOP No Response
RESET No Response
SCAN Multi Response
FORCE_SCAN Multi Response
GET_INFO Single Response
GET_HEALTH Single Response
START_MOTOR No Response
Table 4.D.4. Type of Response for Different Operations
The response packet always comes with two sync bytes before the information data. For multi-response packet, the sync bytes precede the response descriptor. The general format of the response packet is as shown in Table 4.D.5.
Sync Byte 1 Sync Byte 2 Response Descriptor Data
0xA5 0x5A Refer to table 4.D.6 XX
Table 4.D.5: Response Packet Format
Different commands have different response descriptors unless they share the same format and purpose.
Operation Response Descriptor
SCAN 0x05 00 00 40 81
FORCE_SCAN 0x05 00 00 40 81
GET_INFO 0x14 00 00 00 04
GET_HEALTH 0x03 00 00 00 06
Table 4.D.6. Response Descriptor for Different Operations
The length of the format of data is different for each command. The most commonly used operation is the SCAN operation, which is a multi-response operation. The format of the data of the response packet for the SCAN operation is as shown in Figure 4.D.2.
Figure 4.D.2: Format for data in response packet for SCAN operation
“Quality” is a fixed number for valid data, which has a value of 47. “S” is the start flag bit, which is raised for every new 360° scan. “C” is the data check bit which is constantly set to value of 1. “Angle_q6” is the angle related to the heading of the RPLIDAR with unit in degree. The value of the angle can be used to calculate the actual degree using the following formula.
Actual heading (°)=(angle_q6)/64 Equation 4.D.2.
Distance_q2 is a 2-byte value that stores the measured object distance related to the RPLIDAR rotation center with unit in millimeter. The actual distance is calculated using the formula.
Actual distance (mm)=(distance_q2)/4 Equation 4.D.3
To present the heading and distance data in real time, a Graphic User Interface (GUI) was programmed using Python programming language to both control the rotation of the RPLIDAR and process the data acquired from the RPLIDAR based on the flow chart in Figure 4.D.3.
Figure 4.D.3. The flowchart for the acquirement of data from the RPLIDAR
The code snippet in Figure 4.D.4 shows how the rotation of the RPLIDAR is started and stopped using Python programming language.
Figure 4.D.4. Code snippet showing the implementations needed to start and stop the rotation of the RPLIDAR
Matplot.lib animation library was used for the plotting of data on a polar plot in real time. The resultant GUI is as shown in Figure 5.D.2 in Section 5. Results and Discussion.
4.D.2. HC-SR04 Ultrasonic Sensors
The ultrasonic sensors selected were the Arduino HC-SR04 ultrasonic sensors as shown in Figure 4.D.5 which are relatively, cheap, reliable, easy to implement, and compatible with many platforms. A total of 16 ultrasonic sensors were attached to the body of the golf cart to increase the coverage of proximity sensing.
Figure 4.D.5. HC-SR04 Ultrasonic Sensor Module
Specifications of HC-SR04
Detection Range 2cm to 4m
Maximum Detection Angle 15°
Detection Resolution Up to 3mm
Operating Power 5V with 15mA
Ultrasonic Frequency 40kHz
Table 4.D.7: Specifications of HC-SR04 provided by manufacturer
4.D.2.1: Working principle of the HC-SR04 sensor module
The measurement sequence of HC-SR04 sensors are controllable through TRIG pin. To trigger the module to transmit an 8 cycle burst of ultrasound at 40 kHz, a 10us 40 pulse signal is sent to the module via the TRIG pin. Simultaneously with the transmission of the ultrasound, the ECHO pin will produce and hold its voltage high at 5V. The ultrasound will reflect off an obstacle within the beam angle of the module and travel back to the module. Upon the reception of the reflected ultrasound by the module, the ECHO pin of the module will drop its voltage to 0 V. The duration of which the voltage of the ECHO pin is held at 5 V is equivalent to the time taken for the ultrasound to travel from the module to the obstacle and back to the module. The distance between the module and the obstacle can be calculated using the following equation.
distance (mm)=(duration of high voltage of the ECHO pin (μs))/(1/2 × speed of sound (mm/μs) )
= (duration of high voltage of the ECHO pin (μs))/5.882 Equation 4.C.3
The flowchart in Figure xxx shows the programming sequence that was employed for the measurement of distance of an obstacle from the ultrasonic sensor.
Figure 4.D.6. The programming sequence for the measurement of distance of an obstacle
The data acquired from the ultrasonic sensors were converted into a GUI showing the relative position of obstacles around the golf cart as shown in Figure 5.D.3 in Section 5. Results and Discussion. The placements of the ultrasonic sensors on the golf cart are as shown in Figure 8.A.7, 8.A.8, 8.A.9 and 8.A.10 in Appendices.
Section 4.E. The Localisation System
The localisation system of the golf cart employs the real time kinematics (RTK) positioning technique which involves the continuous correction of data obtained by Global Network Satellite (GNSS) receiver 1 using data transmitted wirelessly from GNSS receiver 2. The GNSS receiver 1 is essentially affixed to a moving object or a rover while GNSS receiver 2 remains stationary at a base station.
In this project, Reach RTK kit consisting of two RTK modules with U-Blok GNSS receivers, powered by Intel Edison, as shown in Figure 4.E.1 was used. The modules are also equipped with Each of the receivers comes with a Tallysman multi-GNSS antenna. The receivers are able to track L1 timing signals from GPS, GLONASS, SBAS, QZSS and BEIDOU satellites.
Figure 4.E.1. Reach RTK Kit
In order to connect the RTK modules to the Internet, each of the RTK module has to be manually connected to any local Internet network through the hotspot provided by the modules themselves upon being successfully booted up. The hotspot can be accessed by connecting any devices with internet connectivity to it. The hotspot appears as a local network as shown in Figure 4.E.2.
Figure 4.E.2. The name of the hotspot of Reach RTK module as appeared on the list of available networks.
After the module has been successfully connected to a local network that has an Internet accessibility, the hotspot of the device will be terminated.
The Reach RTK modules also come with an inbuilt application known as ReachView which allows for an easy configuration of the settings required to establish a proper platform for the implementation of RTK positioning. ReachView can be accessed using a web browser through the local IP of the Reach RTK module in the local network. The IP can be identified using an IP scanner software as shown in Figure 4.E.3.
Figure 4.E.3. The local IP address of the Reach RTK module identified using an IP scanner software
In order to implement RTK Positioning, one the Reach RTK module has to be configured as the rover while the other has to be configured as the base station. The rover settings can be accessed in ReachView as shown in Figure 4.E.4.
Figure 4.E.4. The interface for rover settings in ReachView
Based on Figure 4.E.4, parameters such as the positioning mode, elevation mask angle and SNR mask can be tuned. The GNSS systems desired can also be selected from the options available.
The base station settings can be accessed in ReachView as shown in Figure 4.E.5
Figure 4.E.5. The interface for base settings in ReachView.
Based on Figure 4.E.5, the method for the transmission of correction output to the rover can be selected from the three available options as follows:
Serial transmission involves the use of UART which may not be practical for most cases since the transmission requires wired connection.
Transmission Control Protocol (TCP)
TCP is a form of wireless transmission which requires both the RTK rover and base module to be connected to the same local network. This method of transmission becomes impractical if the rover has to move dynamically away from the base station since most local networks have limited coverage. The change of access points within a local network will cause the local IP address to change causing the correction link to fail.
Networked Transport of RTCM via Internet Protocol (NTRIP)
A NTRIP caster such as RTK2go, a community free caster is used as an intermediary to allow both the RTK rover module and base module to be connected to different local networks. This option of correction link has been chosen since the golf cart moves at a relatively large radius away from the base station making serial transmission and TCP transmission impractical.
ReachView provides real time data as shown in Figure 4.E.6.
Figure 4.E.6. Real time data provided by ReachView
Based on Figure 4.E.6, the real time data provided by ReachView includes the signal-to-noise (SNR) ratio of the GNSS signals, the solution status, the coordinates, velocity and the position of the base station. ReachView also plots the coordinates in real time on a map that is updated regularly.
Each set of coordinates come with one of the following statuses:
Fixed (plotted in green)
Fixed solutions are obtained when the ambiguity in the pseudo range can be resolved after the coordinates obtained by the GNSS receiver of the rover are rectified using data from the base station. These solutions are normally obtained when the GNSS receiver has a clear view of the sky, during which the reception of the timing signals from the satellites are the strongest. The coordinates with fixed status have accuracies of sub 5 centimetres
Floating (plotted in yellow)
Floating solutions are obtained when the ambiguity in the pseudo range cannot be resolved even when the correction data is available from the base station. Floating solutions may be obtained even when the GNSS receiver has a clear view of the sky. This is due to the multipath interference that may be incurred by the timing signals. The GNSS satellites may also be masked by the horizon of the Earth leading to weakened timing signals. Weakened timing signals do not provide the resolution needed for the small change in the pseudo range to be detectable. The coordinates with floating status have accuracies of sub 50 centimetres.
Single (plotted in red)
Single solutions are the raw data that are obtained by the GNSS receiver of the rover. Single solutions are normally obtained in RTK when the correction link between the base station and the rover fails to be established due to latency in the network or in the server of the NTRIP caster. The coordinates with single status have accuracies of sub 10 metres.
4.E.1. Setting up NTRIP for Correction Link
The NTRIP connection is set up using a NTRIP caster. A mountpoint has to be first be created in the caster in order to receive correction data from the RTK base station, which acts as the NTRIP server. The mountpoint is given the status ‘online’ when a successfully connection is established between the base station and the NTRIP caster. The mountpoint can then be accessed by RTK rovers, acting as NTRIP clients to obtain the correction data. In this project, the community NTRIP caster, RTK2go.com is used as the NTRIP caster. Figure 4.E.7 and 4.E.8 shows the configurations that have to be made to both the rover and base station on ReachView.
Figure 4.E.7. NTRIP settings on ReachView for the Reach base station module
Figure 4.E.8. NTRIP settings on ReachView for the Reach rover module
Based on Figure 4.E.7 and 4.E.8, the address and the port number are specific for the NTRIP caster used and they are determined the developer of the caster. The name of the mountpoint and password are determined by the owner of the base station. If the mountpoint allows public access, any RTK rover get access to the correction data from the base station, as clients using a self-defined unique username and the specific password set by the owner of the base station. If the mountpoint is configured to only allow private access, only RTK rovers that have been recognised by the mountpoint are able to benefit from the correction data. Another alternative NTRIP caster is “youcors.com” which allows users to have more control over the settings of the mountpoint.
4.E.2. Setting up the Base station and the Rover for Preliminary Testing
The Tallysman multi-GNSS antennae for each of the GNSS receivers are placed on top of a circular aluminium ground plane of 12 mm each as shown in Figure 4.E.9. Figure 4.E.10 shows the rover and the base station that were ready for the preliminary testing of RTK positioning.
The preliminary testing was conducted by allowing the rover to track its position on the map by moving it along with a mobile vehicle in the main roads of the campus. Table 4.E.1 shows the information of the setup that had been implemented prior to the testing.
Refresh rate for base station 10 Hz
Refresh rate for rover 10 Hz
Rover positioning mode Kinematics
Elevation mask angle 15 degrees
SNR mask 35
Location of base station Open area between Block D and Block E of the campus
Coordinate accumulation time of base station 5 minutes
Correction input Using YouCORS NTRIP caster.
Base station configured as NTRIP server.
Rover configured as NTRIP client.
Table 4.E.1. The information of the setup for the preliminary testing of RTK
4.E.3. Experimenting the Validity of the Sub-Centimetre Accuracy of RTK Positioning
A desired trajectory of the roads was chosen as the test site to experiment the sub-centimetre claim of RTK positioning. In this experiment, the trajectory chosen had a total distance of 230 m. A total 460 points, with a displacement precisely measured to be 50 cm between successive points, were marked along the trajectory. The coordinates of each of the points were obtained using the Reach RTK set. The RTK setup was implemented as shown in Table xxx. The displacements between the successive coordinates were calculated using MATLAB by reading the coordinates off the Microsoft Excel file. A comparison was then done between the calculated displacement values with the actual displacement value of 50 cm measured manually on the road. Figure 4.E.11 shows a part of the trajectory that was marked with points for the purpose of this experiment.
Figure 4.E.11 A part of the trajectory that was marked with points for the experiment.
The results from this experiment can be found in xxx.
4.E.4. Interfacing Reach RTK Rover Module to the Microcontroller.
The data output from the RTK rover module was relayed to Nucleo STM32 F767ZI using the Universal Asynchronous Receiver/Transmitter (UART) available on the module and the Nucleo board. The data was relayed in the LLH format as shown in Figure 4.E.12.
Figure 4.E.12 The data relayed by the RTK rover module to the Nucleo board via UART.
However, for each line of the data shown in Figure 4.E.12, only those data that are bounded by the red square have appreciable use for the localisation of the golf car. These data consisting of the latitude, longitude and height have to made available for the program of the microcontroller in real time. A sub program as shown in Figure 8.D.21 in Appendices was created to extract the useful data from the data line when the coordinates of the rover were needed for computations. Since the data lines are transmitted continuously from the rover module to the Nucleo board, when an instruction is made to obtain the coordinates from the RTK module, the sub program has to be able to bypass the data line that comes into the microcontroller at that instance and instead obtain the coordinates from the next data line. This is due to the reason that some of the earlier data fragments of the instantaneous data line may have been lost.
Figure 4.E.13. Latitude, longitude and height data extracted from the data in Figure 4.E.12
Chapter 5. Result and Discussion
Section 5.A. The Motor Controller
5.A.1. Simulation Results
Figure 5.A.1. The switching scheme for control signals produced on the LTSpice simulation software
Unlike the switching scheme used for BLDC motor which involves complementary switching of signal for the low side MOSFETS to produce switching voltage waveforms, PMAC motor requires a continuous sinusoidal voltage waveforms. Switching voltage waveforms will potentially damage the motor as stated by the vendor of the motor. The switching scheme as shown in Figure 5.A.1produced the waveforms as shown in Figure 4.A.14 at the output of the motorcontroller when the circuit as shown in Figure 4.A.12 was simulated on LTSpice simulation software.
Figure 5.A.2. The output waveforms of the motor controller on the LTSpice simulation software.
The switching scheme in Figure 5.A.1 produced 7-level AC phase voltage waveforms and 5-level AC line voltage waveforms as shown in Figure 5.A.2. The frequency of the waveforms is 10 Hz. The frequency corresponds to the frequency of the control signals in Figure 5.A.1 which is also 10 Hz. The duty cycle of the each of the control signals was set to 45% to introduce a dead band between the falling edge of the control signal of the high side MOSFET and the rising edge of the bottom MOSFET. This was implemented to prevent shoot-through from happening when the high side and low side MOSFET are simultaneously in the “on” state. At the same time, the introduction of the dead band increases the number of steps in the voltage waveforms giving the waveform a better approximation to a pure sinusoidal waveform.
5.A.2. Measured Results from Circuit
Figure 5.A.3. The presence of dead band between the control signals of a series top and bottom MOSFET to avoid shoot-through
The dead band in Figure 5.A.3 was measured to be equal to 5 ms which is equal to 5% of the duration of one period of the control signals which have frequencies of 10 Hz. The time interval of the dead band was maintained at 5% of the duration of one period of the control signals irrespective of the frequency used. For example, for a frequency of 15 Hz, the dead bad was set to be 3.33 ms.
Left: Figure 5.A.4 (a). Phase A (Channel 1) and Phase B (Channel 2) output voltage waveforms of the assembled motor controller, across Y-connected 390 Ω resistors
Right: Figure 5.A.4 (b). Measurement of the phase difference between Phase A and Phase B output voltage waveforms
Left: Figure 5.A.5 (a) Phase A (Channel 1) and Phase C (Channel 2) output voltage waveforms of the assembled motor controller, across Y-connected 390 Ω resistors
Right: Figure 5.A.5 (b) Measurement of the phase difference between Phase A (Channel) and Phase C (Channel 2) output voltage waveforms
The shape of the AC phase voltage waveforms produced at the output of the assembled motor controller circuit as shown in Figure 5.A.4 and Figure 5.A.5 is similar to the shape of the waveforms produced in the Figure 5.A.2 in the simulation. The number of levels found in the waveforms is 7, as that found in the waveforms produced in the simulation. The frequency of the waveform was recorded to be equal to 10 Hz by the oscilloscope since the microcontroller was programmed to produce control signals with frequencies of 10 Hz. The phase difference between the Phase A and Phase B voltage waveforms was measured as shown in Figure 5.A.4 (b) to be equal to 34 ms, which can be converted to degrees as follows;
phase difference=34ms/0.1s×360=122.4° Equation 5.A.1
The calculated phase difference in Equation 5.A.1 is only 2.4° higher than the theoretical value of 120° for a common 3 phase AC supply. The phase difference between the Phase A and Phase C voltage waveforms was measured as shown in Figure 5.A.5 (b) to be equal to be 66 ms, which can be converted to degrees as follows;
phase difference=66ms/0.1s×360=237.6° Equation 5.A.2
The calculated phase difference is Equation 5.A.2 is only 2.4° lower than the theoretical value of 240°.
Figure 5.A.6. Line-to-line Phase A – Phase B output voltage waveform, across Y-connected 390 Ω resistors
Figure 5.A.6 shows the 5-level line-to-line volage waveform that was produced at the output of the assembled motor controller circuit across Phase A and Phase B. The shape of the waveform is similar to that observed in Figure 5.A.2.
Left: Figure 5.A.7. Input current waveform from 12 V lead acid battery.
Right: Figure 5.A.8. Phase A output current waveform and Phase A – Phase B back electromotive force (EMF) waveform.
To calculate the fundamental rms current,〖 I〗_1 the following equation is used.
I_1=(4I_D)/(π√2) sin(θ/2) Equation 5.A.3
where I_D is the DC current from the battery and θ is the conduction period for the switches
Since the conduction period for each MOSFET is 60°, and from figure 4.A.11, I_D=12.5A,
Fundamental RMS current=5.627A
Total RMS current=9.58A
Current distortion factor,ψ=(fundamental rms current)/(total rms current)=0.587 Equation 5.A.4
Total Harmonics Distortion,THD=√(1/ψ^2 -1)=1.38 Equation 5.A.5
A perfect sinusoidal signal has a current distortion factor of 1 and THD of 0. The waveform in Figure 4.A.12 was calculated to have a THD of 1.38 which indicates a relatively high severity of distortion, which however still lower than the THD value of 1.73, the point at which the PMAC motor starts to present an obvious jerky motion due to the presence of torque ripple. The peak-to-peak value of the back EMF of the line-to-line voltage of the PMAC motor was also measured to be 16.8 V which is lower than the peak-to-peak value of the AC line-to-line voltage of 25.4 V supplied to the motor. During regenerative braking, since the back EMF only has an amplitude of 8.4 V (half of the peak-to-peak value, the bidirectional buck-boost converter was configured to operate in the reverse boost mode to increase the amplitude to a value higher than the nominal voltage value of the battery.
Section 5.B. The Bidirectional Buck-boost Converter
5.B.1. Simulation Results
Figure 5.B.1. Transient response simulation result for bidirectional buck-boost converter in reverse boost mode on LTSpice simulation software at 50 % duty cycle for input voltage = 1 V, 3 V, 5 V, 7 V and 10 V.
Colour Input Voltage (V) Simulation Output Voltage (V) Theoretical Output Voltage(V) Percentage deviation (%)
Green 1 1.3 2 35.0
Blue 3 5.5 6 8.3
Red 5 9.5 10 5.0
Cyan 7 13.5 14 3.5
Magenta 10 19.5 20 2.5
Table 5.B.1. Comparison between the simulation and theoretical output voltages at 50% duty cycle
Based on Figure 5.B.1, at a duty cycle of 50% in the reverse boost mode, the settling time of the transient response of the output voltage is lower than 5 ms when the input voltage is lower than 10 V. The maximum overshoot of the transient response is 17.9 % when the input voltage is 10 V. Based on Table 5.B.1, it can be observed that the percentage deviation of the output voltage produced by the simulation is significantly reduced when the input voltage increase.
5.B.2. Measured Results from Circuit
Forward boost mode, Input Voltage = 10 V, Switching frequency = 25 kHz
Duty Cycle (%) Circuit Output Voltage (V) Simulation Output Voltage (V) Percentage Deviation (%)
10 13.1 10.6 23.6
20 14.7 12.0 22.5
30 16.7 13.8 21.0
40 19.5 16.2 20.3
50 23.4 19.5 20.0
60 28.7 24.5 17.1
70 39.0 32.8 18.9
Table 5.B.2. Comparison between the circuit and simulation output voltages for bidirectional buck-boost in the forward boost mode
Forward buck mode, Input Voltage = 30 V, Switching frequency = 25 kHz
Duty Cycle (%) Circuit Output Voltage (V) Simulation Output Voltage (V) Percentage Deviation (%)
10 5.53 2.5 12.1
20 7.98 5.5 45.0
30 10.2 8.5 20.0
40 12.3 11.5 6.9
50 15.0 14.5 3.4
60 17.5 17.5 0.0
70 20.3 20.5 0.0
80 23.3 23.5 0.0
90 26.7 26.5 0.0
Table 5.B.3. Comparison between the circuit and simulation output voltages for bidirectional buck-boost in the forward buck mode
Reverse boost mode, Input Voltage = 10 V, Switching frequency = 25 kHz
Duty Cycle (%) Circuit Output Voltage (V) Simulation Output Voltage (V) Percentage Deviation (%)
10 12.8 10.6 20.8
20 14.3 12.0 19.2
30 17.0 13.8 23.1
40 19.8 16.2 22.2
50 23.7 19.5 21.5
60 28.2 24.5 15.1
70 39.0 32.8 18.9
Table 5.B.4. Comparison between the circuit and simulation output voltages for bidirectional buck-boost in the reverse boost mode
Reverse buck mode, Input Voltage = 30 V, Switching frequency = 25 kHz
Duty Cycle (%) Circuit Output Voltage (V) Simulation Output Voltage (V) Percentage Deviation (%)
30 17.1 8.5 101.26
40 19.4 11.5 68.7
50 20.6 14.5 42.1
60 21.5 17.5 22.9
70 22.7 20.5 10.7
Table 5.B.5. Comparison between the circuit and simulation output voltages for bidirectional buck-boost in the reverse buck mode
Based on the results, it can be observed that the results from the circuit conform relatively closely to the results from the simulation except for the reverse buck mode which can be shown clearly by the relatively large gap between the circuit value and simulation value in Figure 5.B.5. The poor performance in reverse mode can be attributed to the presence of a large 1000 μF. Capacitor at the output of the circuit (input for reverse mode) which disallows the input voltage from changing to reduce the average voltage flowing through the circuit to produce a lower output voltage when the circuit operates in the reverse buck mode. This capacitor does not affect the performance of the circuit in the reverse boost mode since the input voltage should fluctuate as minimally as possible to effectively increase the voltage at the output. The circuit, in the reverse boost mode which is the mode of interest in our project, shows a relatively constant percentage deviation despite the increase in the duty cycle. Generally, the percentage deviation of the output voltage of the circuit from that of the simulation decreases with the increase in the duty cycle. The circuit is therefore capable of boosting the back EMF of the motor to charge the battery during regenerative braking.
Section 5.C. The MPPT Controller (Buck-boost Converter)
5.C.1. Simulation Results
Figure 5.C.1. Transient response simulation result for the MPPT controller/charger circuit in the buck mode at 50 % duty cycle for input voltage = 1 V, 3 V, 5 V, 7 V and 10 V
Colour Input Voltage (V) Simulation Output Voltage (V) Theoretical Output Voltage(V) Percentage Deviation (%)
Green 1 0.1 0.5 80.0
Blue 3 0.9 1.5 40.0
Red 5 1.8 2.5 28.0
Cyan 7 2.9 3.5 17.1
Magenta 10 4.3 5.0 14.0
Table 5.C.1. Comparison between the simulation and theoretical output voltages at 50% duty cycle in the buck mode
Figure 5.C.2. Transient response simulation result for the MPPT controller/charger circuit in the boost mode at 50 % duty cycle for input voltage = 1 V, 3 V, 5 V, 7 V and 10 V
Colour Input Voltage (V) Simulation Output Voltage (V) Theoretical Output Voltage(V) Percentage Deviation (%)
Green 1 1.5 2 25.0
Blue 3 5.0 6 16.7
Red 5 9.5 10 5.0
Cyan 7 13.0 14 7.1
Magenta 10 19.5 20 2.5
Table 5.C.2. Comparison between the simulation and theoretical output voltages at 50% duty cycle in the boost mode
Based on Figure 5.C.1, at a duty cycle of 50% in the buck mode, the settling time of the transient response of the output voltage is lower than 4 ms when the input voltage is lower than 10 V. The maximum overshoot of the transient response is 58.13 % when the input voltage is 10 V. The overshoot will however only occur at the starting point of operation of the circuit. The voltage will increase and decrease steadily to a new steady state voltage value when the duty cycle is changed. Based on Table 5.C.1, it can be observed that the percentage deviation of the output voltage produced by the simulation decreases subtly as the input voltage increases.
Based on Figure 5.C.2, at a duty cycle of 50% in the boost mode, the settling time of the transient response of the output voltage is lower than 7 ms when the input voltage is lower than 10 V. The maximum overshoot of the transient response is 46.15 % when the input voltage is 10 V. The overshoot will however only occur at the starting point of operation of the circuit. The voltage will increase and decrease steadily to a new steady state voltage value when the duty cycle is changed. Based on Table 5.C.2, it can be observed that the percentage deviation of the output voltage produced by the simulation is significantly reduced as the input voltage increases.
5.C.2. Measured Results from Circuit
Buck mode, Input Voltage = 30 V, Switching frequency = 25 kHz
Duty Cycle (%) Circuit Output Voltage (V) Simulation Output Voltage (V) Percentage Deviation (%)
10 7.40 2.5 196.0
20 11.2 5.5 103.6
30 14.6 8.5 71.8
40 17.1 11.5 48.7
50 18.9 14.5 30.3
60 20.1 17.5 14.9
70 21.8 20.5 6.3
80 24.8 23.5 5.5
Table 5.C.3. Comparison between the circuit and simulation output for the buck-boost in the buck mode
Boost mode, Input Voltage = 10 V, Switching frequency = 25 kHz
Duty Cycle (%) Circuit Output Voltage (V) Simulation Output Voltage (V) Percentage Deviation (%)
10 13.5 10.6 27.4
20 15.1 12.0 25.8
30 17.4 13.8 26.1
40 20.2 16.2 24.7
50 24.0 19.5 23.1
60 29.7 24.5 21.2
70 39.0 32.8 18.9
Table 5.B.4. Comparison between the circuit and simulation output voltages for buck-boost in the boost mode
Based on Figure 5.B.4, when operated in the boost mode, it can be observed that the results of the circuit conform to the results of the simulation with a relatively constant percentage deviation when the duty cycle is increased. When operated in the buck mode, it can be observed that the results from the circuit deviate at a relatively large percentage away from the results of the deviation at low duty cycles. However, the results from the circuit and the simulation gradually converge as the duty cycle increases. The circuit will only be operated in the buck mode at the region of high duty cycles. Therefore, the deviation at low duty cycles in the buck mode can be accepted.
Section 5.D. The Automation System
Figure 5.D.1. Testing setup for the RPLIDAR
Figure 5.D.2. GUI for the data from the
Figure 5.D.1 shows the testing environment for the RPLIDAR. Figure 4.D.2 shows the GUI captured during the testing. Figure 4.D.2 shows that the RPLIDAR was able to detect the wall since the data was displayed on the GUI with a relatively good definition. However, the door could not be detected which could be observed as a gap in the GUI. That was due to the transparency of the door which reflected very a very minimal amount of invisible light (infrared) back to the RPLIDAR. Therefore, in order to detect transparent objects, ultrasonic sensors, which are able to detect transparent objects but however have narrow beams of detection angle and are prone to interference and noise, were used along with the RPLIDAR to achieve sensor fusion to inter compensate the weaknesses by exploiting the strengths of the respective sensors. The GUI for the network of 16 ultrasonic sensors indicates the nearest distance of obstacles from the sensors using 4 different colours, for different ranges of distance.
Figure 5.D.3. GUI for for a network of 16 Ultrasonic Sensors
Section 5.E. The Localisation System
5.E.1. Preliminary Testing of RTK Positioning
Figure 5.E.1 shows the route that was travelled by the rover during the preliminary testing. The route consists of plots of RTK coordinates provided by the Reach RTK module that was configured to run in the rover mode.
Colour of plot Status of solution
Figure 5.E.1. The position of the rover was tracked onto the map
5.E.2. Experimenting the Validity of the Sub-Centimetre Accuracy of RTK Positioning
Table 5.E.1 shows a part of the results from the collection of coordinates from 460 points in the desired trajectory in the campus. Using the latitude and longitude values, the displacement of one point to its successive point was calculated using MATLAB. From the results, when the status of the solution from the RTK module was fixed, the displacement from one point to the successive point was found to be within 10 cm of the actual displacement of 50 cm. Such solutions have been highlighted in green in Table 5.E.1. This shows that the RTK positioning is reliable when the solutions provided have “fixed” status. The full results can be found in Section 8.C.1 in Appendices.
Point Latitude Longitude Height (m) Status Displacement to next point (m)
171 2.94667372 101.87564778 68.113 float 1.19395893
172 2.94666747 101.87565652 68.258 float 0.73091117
173 2.94666424 101.87566225 68.222 float 0.38861509
174 2.94666266 101.87566537 68.154 float 0.58054006
175 2.94666004 101.87566989 68.194 float 0.91037124
176 2.94665504 101.87567638 68.086 fixed 0.52457115
177 2.94665238 101.87568028 68.109 fixed 0.51685256
178 2.94664977 101.87568413 68.121 fixed 0.47564812
179 2.94664732 101.87568764 68.116 fixed 0.45728817
180 2.94664477 101.87569087 68.115 fixed 0.56491489
181 2.94664195 101.87569510 68.143 fixed 0.49685677
182 2.94663918 101.87569861 68.146 fixed 0.47351204
183 2.94663690 101.87570221 68.134 fixed 0.53132211
184 2.94663425 101.87570619 68.135 fixed 0.50404037
185 2.94663153 101.87570982 68.155 fixed 0.46028501
186 2.94662908 101.87571316 68.175 fixed 0.49440908
187 2.94662655 101.87571682 68.178 fixed 0.49720333
188 2.94662427 101.87572067 68.181 fixed 0.54137796
189 2.94662146 101.87572465 68.193 fixed 0.53899500
190 2.94661830 101.87572833 68.217 fixed 0.42056388
218 2.94654170 101.87581979 67.896 fixed 0.47620074
Table 5.E.1. A part of the results from the collection of coordinates from 460 points in the desired trajectory in the campus
Chapter 6. Conclusion
The implementation of this project for a duration of 24 weeks, with its main aim to modify a dysfunctional golf cart into the prototype of an autonomous electrical vehicle has been an enriching experience, in spite of the innumerable encounters of challenges arising from the limitations of the technologies and facilities available of with the completion of all the objectives that were discussed in Chapter 1, except for the control system could not be completed due to the relatively amount of time and effort spent on building a new electrical motor drive system .
Accomplishments and Challenges
The status of completion of the project is reviewed as shown in Table 7.1.
System Status Challenges
The Electrical Motor Drive System A motor controller for the new PMAC motor was successfully developed with the capability of speed control. Due to the limitation imposed by the vendor of the motor on the availability of the critical information of the motor, a relatively huge amount of time was invested to modify and reassemble the motor controller.
The Automated Steering Control System The steering system was successfully modified through the incorporation of a mechanical pulley system driven by DC motor, with position sensing using a high precision rotary encoder. Due to cost limitation, a DC motor was selected instead of a stepper motor. The DC motor produced a loud noise during its operation.
The Solar Charger System A MPPT charger was successfully developed using two buck-boost converters. The charger was able to charge the battery by harvesting maximum power from the sun at at a given irradiance. Fluctuations in the voltage values measured by the sensors caused a relatively high oscillation in the operating point of the MPPT controller during conditions of low irradiance.
The Automation System Sensor fusion was used to fuse the data from the LIDAR and the ultrasonic sensors. The data was presented using GUIs programmed using Python. The 3D LIDAR, which was delivered late by the vendor, was replaced with a 2D LIDAR. The 2D LIDAR has a very much lower resolution and scan rate which compromise on the safety factor.
The Localization System A localization system using RTK positioning was established. The correction link was established using a NTRIP caster, allowing the base station and the rover modules to be connected to separate local networks. The roads in the campus have relatively low coverage of GPS satellites, leading to weak signals at certain points of the roads.
Table 7.1. A review on the status and challenges faced for all the major systems of the golf cart
Reflection on Actual Progress Flow
Table 7.2 and 7.3 show the estimated progress flow and the actual progress flow of the project respectively. It can be observed, a relatively large number of weeks was actually utilized for the testing and the rectification of the motor controller in Table 7.3, compared to the number of weeks allocated in the Table 7.2. The skewed effort was due to criticality of the motor controller in this project, since the drivetrain of the golf cart is dependent on the motor controller. Due to skewed amount of effort of towards the electrical drive system, the attention should have been given for the development of a robust control system for the golf cart was divided. However, since all the discrete systems are fully functional, the golf cart is ready for any future work to make it fully autonomous.
Table 7.2. The estimated progress flow of the project
Table 7.3. The actual progress flow of the project
Several more features can be incorporated into the golf cart which were not possible to incorporate during this project due to lack of time and the less than desirable initial state of the golf cart. To this end, further testing of the integrated system will be done in order to identify areas that can be improved. In particular, lane keeping methods and better tools for sensor fusion will be introduced to enable the golf cart to effectively tackle path following problems and to deal with dynamic obstacle sensing to a greater extent. In addition to this, features such as parallel parking capability could be incorporated into the system in the future. In order to improve the efficiency of the solar panels, the implementation of nanostructure-based coating technology is an area that can be explored. The linear frequency-speed control should be replaced with a more efficient vector control once the characteristics of the PMAC motor are better understood. A better maximum power point tracking algorithm such as a fuzzy logic control scheme can also be developed to further improve the performance of the PV panel system.
This project serves to contribute to the field of autonomous vehicle navigation, particularly with respect to electric vehicles. As per the current state of the golf cart which combines the goodness of a new more efficient drive system, solar charger system, sensor fusion, RTK navigation, a reasonably good prototype for an autonomous vehicle has successfully been produced which can be further improved by subsequent groups working on it in the coming years.
Chapter 7. References
 “Power Electronics,” [Online]. Available: http://powerelectronics.com/motion-systems/energy-equation-variable-speed-drives. [Accessed 1 August 2016].
 [Online]. Available: http://www.mhhe.com/engcs/electrical/chapman/fundamentals/PWM.pdf. [Accessed 1 August 2016].
 A. Hughes, Electric Motors and Drives, Burlington: Newnes, 2006.
 M. H. Rashid, Power Electronics Handbook, Oxford: Butterworth-Heinemann, 2011.
 A. Bello, I. M. Kilishi, M. M. Bari and U. Abubakar, “Comparative Review Of PMSM And BLDCM Based on Direct Torque Control,” INTERNATIONAL JOURNAL OF SCIENTIFIC & TECHNOLOGY RESEARCH, 2014.
 A. Hughes, “Synchronous, Brushless DC and Switched Reluctance Drives,” in Electric Motors and Drives, Oxford, Elsevier, 2006, pp. 261 – 384.
 J. Lee, “A Comparison of Salient and Nonsalient Pole Line-Start PMSM,” Madison.
 C. T. B. Sung, “Electricity from solar energy in Malaysia: Clean Renewable, and abundant energy source, so what’s the problem?,” Extraordinary Minds Discuss Ideas, 2012.
 A. G. Aberle, “Thin-film solar cells,” Thin Solid Films, 2009.
 “Types of Photovoltaic (PV) Cells”.
 G. J. Conibeer and A. Willoughby, Wiley Series in Materials for Electronic & Optoelectronic Applications : Solar Cell Materials : Developing Technologies, Wiley, 2014.
 L. A. Klein, Sensor and Data Fusion – A Tool for Information Assessment and Decision Making, SPIE, 2004.
 “MPPT Solar Charge Controllers – A More Intelligent Controller,” Solar Facts, [Online]. Available: http://www.solar-facts.com/controllers/mppt-controllers.php.
 “Solar Charge Controller: How to choose it,” [Online]. Available: http://www.mpptsolar.com/en/how-to-choose-a-solar-charge-controller.html.
 “What is Maximum Power Point Tracking (MPPT)?,” [Online]. Available: https://www.solar-electric.com/mppt-solar-charge-controllers.html.
 “Photovoltaic Efficiency: Maximum Power Point”.
 S. M. Sze, Physics of Semocinductor Devices, 2nd, Ed., 1981, p. 796.
 “Solar Photovoltaics,” EJM, May 2011.
 A. Dolara, R. Faranda and S. Leva, “Energy Comparison of Seven MPPT Techniques,” J. Electromagnetic Analysis & Applications, September 2009.
 “Evaluation of Micro Controller Based Maximum Power Point Tracking Methods Using dSPACE Platform”.
 D. Freeman, “Introduction to Photovoltaic Systems Maximum Power,” 2010.
 G. J. Yu, Y. S. Jung, J. Y. Choi, I. Choy, J. H. Song and G. S. Kim, “A novel two-mode MPPT control algorithm based on comparative study of existing algorithms,” in Photovoltaic Specialists Conference, 2002.
 S. P. Wood, J. Chang, T. Healy and J. Wood, “The Potential Regulatory Challenges of Increasingly Autonomous Motor Vehicle,” 20 12 2012. [Online]. Available: http://digitalcommons.law.scu.edu/cgi/viewcontent.cgi?article=2734&context=lawreview. [Accessed 5 8 2016].
 H. K. H. H. Lee Suk-han, Multisensor Fusion and Integration for Intelligent Systems: An Edition of the Selected Papers from the IEEE International Conference on Multisensor Fusion and Integration for Intelligent Systems, Springer Science & Business Media, 2009, 2009.
 J. Fraden, Handbook of Modern Sensors: Physics, Designs, and Applications Third Edition, San Diego, California: Springer, 2004.
 S. Nolan and D. Toal, “A low directivity ultrasonic sensor for collision avoidance and station keeping on inspection-class AUVs,” Journal of Marine Engineering & Technology,, vol. 7:1, pp. 1-11, 2008.
 C. Weitkamp, Lidar: Range-Resolved Optical Remote Sensing of the Atmosphere, Germany: Springer, 2005.
 B. Schwarz, “Lidar: Mapping the world in 3D,” July 2010. [Online]. Available: http://www.velodynelidar.com/lidar/hdldownloads/Nature%20Photonics.pdf. [Accessed 13 Aug 2016].
 “iiRAV,” Institute of Infocomm Research, 2015. [Online]. Available: http://www.i2r.a-star.edu.sg/autonomousvehicle/about-us. [Accessed 27 July 2015].
 J. M. Webster, “A Localization Solution for an Autonomous,” Virginia, 2007.
 “Real Time Kinematics (RTK),” Novatel, [Online]. Available: http://www.novatel.com/an-introduction-to-gnss/chapter-5-resolving-errors/real-time-kinematic-rtk/. [Accessed 8th August 2016].
 D. M. Petovello, “Carrier Phase and Its Measurements for GNSS,” Inside GNSS, pp. 18-22, July/August 2010.
Chapter 8. Appendices
Section 8.A. Additional Figures (Components and Testing Setups)
8.A.1. The Motor Drive System
Figure 8.A.1. Gearbox-side coupling (side view)
Figure 8.A.2. Gearbox-side coupling (front view)
Figure 8.A.3. PMAC motor-side coupling and bracket
8.A.2. The Motor Controller
Figure 8.A.4. Testing setup for brushless motor controller
8.A.3. The Automated Steering System
Figure 8.A.5. Testing setup for automated steering system
8.A.4. The Solar Charger System
Figure 8.A.6. Testing setup for MPPT charging circuit
8.A.5. Position of Sensors
Figure 8.A.7. Ultrasonic sensors on the left side of the golf cart
Figure 8.A.8. Ultrasonic sensors on the right side of the golf cart
Figure 8.A.9. Ultrasonic sensors on the front of the golf cart
Figure 8.A.10. Ultrasonic sensors on the rear of the golf cart
Section 8.B. Printed Circuit Board (PCB) Design
8.B.1. Bidirectional Buck Boost Converter
Figure 8.B.1. Bidirectional boost-boost converter
8.B.2. Motor Controller
Figure 8.B.2. Motor controller
8.B.3. MPPT Charger Controller
Figure 8.B.3. MPPT buck-boost converter
Section 8.C. Additional Results
8.C.1. Localization Survey Points
Table 8.C.1. Localization Survey Points
Table 8.C.2. Localization Survey Points
Table 8.C.3. Localization Survey Points
Table 8.C.4. Localization Survey Points
Table 8.C.5. Localization Survey Points
Table 8.C.6. Localization Survey Points
Table 8.C.7. Localization Survey Points
Table 8.C.8. Localization Survey Points
Table 8.C.9. Localization Survey Points
Table 8.C.10. Localization Survey Points
Table 8.C.11. Localization Survey Points
Section 8.D. Source Codes
8.D.1. Motor Controller
Figure 8.D.1. Source code for motor controller with speed control
8.D.2. MPPT Solar Charger
Figure 8.D.2. Source code for MPPT controlled solar charging
Figure 8.D.3. Source code for MPPT controlled solar charging
Figure 8.D.4. Source code for MPPT controlled solar charging
Figure 8.D.5. Source code for MPPT controlled solar charging
Figure 8.D.6. Source code for MPPT controlled solar charging
8.D.3 Automated Steering
8.D.3.1. Rotary Encoder Header File
Figure 8.D.7. Source code for rotary encoder header file
Figure 8.D.8. Header file for rotary encoder
Section 8.D.3.2. Automated Steering Control Main Program Source Code
Figure 8.D.9. Source code for automated steering control
8.D.4. Ultrasonic Sensor
8.D.4.1. Ultrasonic Sensor Header File Source Code
Figure 8.D.10. Header file for ultrasonic sensor
Figure 8.D.11. Header file for ultrasonic sensor
8.D.4.2. Ultrasonic Sensor Absolute Position
Figure 8.D.12. Position for ultrasonic sensors
Figure 8.D.13. Position for ultrasonic sensors
8.D.4.3. Main program for ultrasonic sensors
Figure 8.D.14. Main program for ultrasonic sensors
Figure 8.D.15. Main program for ultrasonic sensors
Figure 8.D.16. Main program for ultrasonic sensors
Figure 8.D.17. Main program for ultrasonic sensors
8.D.4.4. GUI Plotting for ultrasonic sensors using python
Figure 8.D.18. GUI plotting for ultrasonic sensors
8.D.5. Data processing and GUI display for RPLIDAR
8.D.5.1. Edited segment of python library for RPLIDAR A2
Figure 8.D.19. Edited segment of RPLIDAR python library
8.D.5.2. RPLIDAR Main Program
Figure 8.D.20. GUI plotting for RPLIDAR A2
8.D.6. Extraction of positioning data from EMLID REACH
Figure 8.D.21. Extraction of positioning data from EMLID REACH
Figure 8.D.22. Extraction of positioning data from EMLID REACH
Cite This Work
To export a reference to this article please select a referencing stye below:
Related ServicesView all
Related ContentAll Tags
Content relating to: "Automotive"
The Automotive industry concerns itself with the design, production, and selling of motor vehicles, such as cars, vans, and motorcycles, and is home to many multi-billion pound companies.
Analysis of India's Automobile Industry
Following India’s growing openness, the arrival of new and existing models, easy availability of finance at relatively low rate of interest and price discounts offered by the dealers and manufa...
Fiat Brand – Issues and Opportunities in Brand Portfolio Management
Master Thesis: The Fiat Brand – issues and opportunities in brand portfolio management. Introduction Missing Chapter one 1.1 Theoretical Framework Several terms and definitions are related with the...
DMCA / Removal Request
If you are the original writer of this dissertation and no longer wish to have your work published on the UKDiss.com website then please: