<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://projectswiki.eleceng.adelaide.edu.au/projects/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=A1627992</id>
	<title>Projects - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://projectswiki.eleceng.adelaide.edu.au/projects/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=A1627992"/>
	<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php/Special:Contributions/A1627992"/>
	<updated>2026-04-30T16:41:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.4</generator>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2015s1-50_Tracking,_Herding_and_Routing_by_Autonomous_Smart_Cars_(PG)&amp;diff=3250</id>
		<title>Projects:2015s1-50 Tracking, Herding and Routing by Autonomous Smart Cars (PG)</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2015s1-50_Tracking,_Herding_and_Routing_by_Autonomous_Smart_Cars_(PG)&amp;diff=3250"/>
		<updated>2015-08-17T05:34:55Z</updated>

		<summary type="html">&lt;p&gt;A1627992: /* Current Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The aim of this project is to create a system of autonomous smart cars, which will be able&lt;br /&gt;
to co-exist and move in an area without collision. Arduino robot vehicles will be used as the&lt;br /&gt;
`Smart Cars&amp;#039; due to size and complexity constraints.&lt;br /&gt;
&lt;br /&gt;
[[File:ArduinoRobot.jpg|thumb|alt=The robot being used in place of smart cars.|The Arduino Robot]]&lt;br /&gt;
&lt;br /&gt;
==The Team==&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Benjamin Riches&lt;br /&gt;
*Christopher Bouras&lt;br /&gt;
*Michael Cheung&lt;br /&gt;
*Tidasa Tennakoon&lt;br /&gt;
&lt;br /&gt;
===Supervisors===&lt;br /&gt;
*A/Prof Cheng-Chew Lim&lt;br /&gt;
*Prof Peng Shi&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The basic goal is to be able to demonstrate four smart cars interacting in such a way that&lt;br /&gt;
they can create a given formation without colliding with one another. A set of extension goals&lt;br /&gt;
devised that incorporate movement in formation, user-defined formations and expansion for&lt;br /&gt;
larger numbers of vehicles will also be demonstrated if time permits.&lt;br /&gt;
To achieve the proposed environment, two main systems will be created:&lt;br /&gt;
&lt;br /&gt;
1) Movement system&lt;br /&gt;
&lt;br /&gt;
2) Communication system&lt;br /&gt;
&lt;br /&gt;
This project will demonstrate, at a small scale level, a method of which multiple smart&lt;br /&gt;
robots can interact with each other, and move based on those interactions. This is a very&lt;br /&gt;
important principle as it is the basis for being able to create true automation of devices.&lt;br /&gt;
On the other hand, observing this project from the perspective of smart vehicles, it will be&lt;br /&gt;
able to demonstrate a starting point for autonomous transportation. Similar systems already&lt;br /&gt;
exist, however most use much larger, more powerful computers. The system created in this&lt;br /&gt;
project will operate on much less powerful hardware, demonstrating that automation may&lt;br /&gt;
not require extensive and expensive computer systems.&lt;br /&gt;
&lt;br /&gt;
==System Overview==&lt;br /&gt;
The major design challenge will be making the two systems work together to achieve the&lt;br /&gt;
desired result, and the final product is displayed in Figure 1.&lt;br /&gt;
&lt;br /&gt;
[[File:System.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: System Overview&lt;br /&gt;
&lt;br /&gt;
==Objectives== &lt;br /&gt;
The project has one main objective, with many further extension objectives devised if time&lt;br /&gt;
permits. The objective is to create the environment where a command can be sent from a&lt;br /&gt;
computer, such as form a line, and from there 4 smart cars will autonomously move to the&lt;br /&gt;
required positions to create the formation without colliding with one another. This requires&lt;br /&gt;
them to be aware of their initial location on the terrain, the initial locations of all other&lt;br /&gt;
smart cars, and the location of all cars whilst in movement. This will require a communica-&lt;br /&gt;
tion system between the computer and each robot to be created, and to integrate with the&lt;br /&gt;
movement system of the smart cars.&lt;br /&gt;
The extension objectives that have been outlined include; Making the smart cars move in&lt;br /&gt;
formation, making the smart cars move into a user-defined formation (via computer appli-&lt;br /&gt;
cation) and allowing the system to be expandable for many more smart cars (up to 10).&lt;br /&gt;
&lt;br /&gt;
== Project Details == &lt;br /&gt;
===The Robot===&lt;br /&gt;
&lt;br /&gt;
To implement the smart cars we will be using an existing Arduino robot that is readily&lt;br /&gt;
available on the market. This makes it easier for us as we wont have to design and construct the hardware of the smart car as this would veer away from&lt;br /&gt;
the scope of our project.&lt;br /&gt;
The Arduino robot platform has the following features:&lt;br /&gt;
&lt;br /&gt;
• ATmega32u4 microprocessor, which has a reasonable amount of computational power&lt;br /&gt;
and on-board memory, which is vital for our calculations.&lt;br /&gt;
&lt;br /&gt;
• Pre built movement system, which includes motors, motor controllers, wheels and&lt;br /&gt;
gearboxes.&lt;br /&gt;
&lt;br /&gt;
• Additional on-board memory space, to allow more code to be stored.&lt;br /&gt;
&lt;br /&gt;
• Compass sensor and multiple extension slots to allow additional sensors to be added.&lt;br /&gt;
&lt;br /&gt;
===Grid/Initial Position System===&lt;br /&gt;
In order for the smart cars to know their current positions without the need to use GPS&lt;br /&gt;
coordinates, we will need to establish a grid system in the operational terrain, which is approximately a 4m by 4m or 5m&lt;br /&gt;
by 5m area. The smart car will then be using a coordinate in the grid system to determine&lt;br /&gt;
their current location.&lt;br /&gt;
&lt;br /&gt;
The process will be to first establish the grid system using a designated boundary set out by&lt;br /&gt;
physical markers, then using the established grid system the initial positions of the smart&lt;br /&gt;
cars can be calculated and communicated to them. This can done in various ways, for this project we will be mainly focusing on image processing.&lt;br /&gt;
&lt;br /&gt;
The image recognition process will be done be using a HD webcam and camera mount so&lt;br /&gt;
that the camera has a view of the entire operational terrain. To establish the grid systems and initial positions we will place coloured markers in four&lt;br /&gt;
corners of the terrain and program the smart cars to display a unique colour on their LCD&lt;br /&gt;
screens, this is so the boundaries and smart cars can be more easily distinguished to the&lt;br /&gt;
image recognition algorithm. The webcam will the take a single HD photo of the terrain&lt;br /&gt;
and send it to the computer control unit.&lt;br /&gt;
&lt;br /&gt;
The computer control unit will then use image recognition algorithm in its existing system&lt;br /&gt;
to first determine the boundaries to create a grid system, then to recognise the smart cars&lt;br /&gt;
and using the grid, determine the initial positions of the smart cars. This information will&lt;br /&gt;
then be sent out to the smart cars using Wi-Fi.&lt;br /&gt;
&lt;br /&gt;
[[File:ImageRecognition.png|ImageRecognition.png||700px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Image Processing Technique&lt;br /&gt;
&lt;br /&gt;
===Smart Car Control System===&lt;br /&gt;
The behaviour and movement of the smart car will be determined by the smart car control&lt;br /&gt;
system. Each smart car will use this system independently of the other robots. This system&lt;br /&gt;
consists of three subsystems.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Basic Movement System (BMS)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The first subsystem that will need to be implemented is the basic movement system (BMS),&lt;br /&gt;
the BMS handles any physical moment the smart car will need to make, this consists of&lt;br /&gt;
moving in a straight line forwards and backwards, performing a 90 degree turn, performing&lt;br /&gt;
a curved turn and stopping. The Arduino robot already comes pre-programmed with a library to help perform these&lt;br /&gt;
movements; however code will need to be written in conjunction with this library in order&lt;br /&gt;
for the robot perform these given movements provided previously.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Routing System&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The routing system uses behaviour algorithms and additionally data inputs to calculate an&lt;br /&gt;
optimal route for the smart car to take to avoid other smart cars and obstacles. This route&lt;br /&gt;
will then be translated to the BMS which will physically move the smart to along that route.&lt;br /&gt;
The routing system works by first getting a command and coordinate from the computer&lt;br /&gt;
control unit. Knowing its goal the routing system will then give the current location and the real time&lt;br /&gt;
locations of the other smart cars to the behaviour algorithm. The behaviour algorithm will&lt;br /&gt;
then use this information to determine which route to the destination coordinate the smart&lt;br /&gt;
car must take to avoid the other smart cars and any obstacles on the way.&lt;br /&gt;
&lt;br /&gt;
The routing system will be continually monitoring the location of itself and the other smart&lt;br /&gt;
cars around it, if however a smart car gets too close, the routing system will then need to re&lt;br /&gt;
calculate a route to avoid a collision, this may mean waiting for another smart car to pass&lt;br /&gt;
or reversing and changing direction. The appropriate decision will be determined by the&lt;br /&gt;
behaviour algorithm.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Sensory System&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Many of the systems described above rely on the use of various sensors to provide the&lt;br /&gt;
appropriate information to perform a task. The sensory system has two roles the first is to&lt;br /&gt;
provide raw sensor data to various systems and the second is the make calculations of its&lt;br /&gt;
own using the sensors and giving that information to other systems.&lt;br /&gt;
&lt;br /&gt;
The sensory system provides the raw sensor data of the compass, the compass will provide&lt;br /&gt;
the current direction the smart car is facing and this information will be given to the BMS,&lt;br /&gt;
the BMS is reliant on this information so that it can move the smart car in a certain direction&lt;br /&gt;
or make a turn. The sensory system also provides calculated data using various sensors, the main information&lt;br /&gt;
being the current location of the smart car.&lt;br /&gt;
&lt;br /&gt;
===Communication System===&lt;br /&gt;
&lt;br /&gt;
The communication system is vital part of the object avoidance system it provides the&lt;br /&gt;
necessary information to be transferred amongst the smart cars and the computer control&lt;br /&gt;
unit. We will be using Wi-Fi as the form of communication we have chosen this for the&lt;br /&gt;
following reasons&lt;br /&gt;
• Wi-Fi shields are relatively cheap and easily adapted on to the Arduino robot platforms;&lt;br /&gt;
they are come with extensive pre-built libraries to assists with programming.&lt;br /&gt;
&lt;br /&gt;
• Wi-Fi provides the ability to broadcast information, this means multiple devices can&lt;br /&gt;
receive the information simultaneously.&lt;br /&gt;
&lt;br /&gt;
• Wi-Fi can be made secure to prevent interference from external sources.&lt;br /&gt;
&lt;br /&gt;
• Wi-Fi shields have an approximate range of 100m indoors which is more than adequate&lt;br /&gt;
for what we require.&lt;br /&gt;
&lt;br /&gt;
There will be two types of communication in the object avoidance systems.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Communication Between Smart Cars&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
In order for the routing system to determine the optimal route for the smart car to take,&lt;br /&gt;
it must first know the positions of all the other smart cars in the area. This information is&lt;br /&gt;
found from the communication system. When a smart car moves, the sensory system described previously will determine the new&lt;br /&gt;
position of the smart car, this information will then be broadcasted to all the other smart&lt;br /&gt;
cars in the area using the Wi-Fi communication system. The receiving smart robot will&lt;br /&gt;
be constantly checking for new coordinates on the Wi-Fi communication network, when&lt;br /&gt;
it determines that another smart car has moved it will save its new position in onboard&lt;br /&gt;
memory. Therefore, each smart car will have stored the current position of all the other smart cars&lt;br /&gt;
in the area and will use this information to avoid collisions.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Communication Between Smart Cars and Computer Control Unit&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The computer control unit also plays an important role in the communication network. As&lt;br /&gt;
previously discussed the smart cars will be communicating their positions to each other,&lt;br /&gt;
however they will also be communicating their position to the computer control unit as well,&lt;br /&gt;
by doing this the computer control unit can know where all the smart cars are at all times,&lt;br /&gt;
this has a lot of uses which will be discussed in the next section.&lt;br /&gt;
Additionally, the computer control unit will need to send information to the smart cars&lt;br /&gt;
individually or all at once. This includes issuing commands to the smart cars, giving out&lt;br /&gt;
initial positions in the case of image recognition being used or issuing an emergency stop.&lt;br /&gt;
&lt;br /&gt;
===Computer Control Unit (CCU)===&lt;br /&gt;
&lt;br /&gt;
The computer control unit will act as the central command of the smart cars, its roles&lt;br /&gt;
include:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Issuing Tasks to the Smart Cars&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The CCU program will have a range of predefined requests the smart cars can perform such&lt;br /&gt;
as make a shape formation. When the user picks one of these requests the CCU program will&lt;br /&gt;
first determine the positions each smart car must go to, next it sends out this information&lt;br /&gt;
plus a status of the task to all the smart cars. For example go to this position and create a&lt;br /&gt;
square formation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Up To Date View of the Grid&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The CCU will also keep an up to date map showing the current positions of all the smart&lt;br /&gt;
cars in the grid, this information helps the CCU determine the positions the smart cars must&lt;br /&gt;
go to, to perform a task.&lt;br /&gt;
Additionally, other than to give the user a graphical representation of where the smart cars&lt;br /&gt;
are on the grid, there will be another map that the user can interact with. This map will&lt;br /&gt;
initially show robot markers corresponding to their current locations. The user will then be&lt;br /&gt;
able to drag and drop these markers on the map, which will then make the actual robot&lt;br /&gt;
move to that position in the grid. By doing this, user will be able to create custom routes&lt;br /&gt;
for the robots apart from the pre-defined formations.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Emergency Stop&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To encourage the safety of the project we will have an emergency stop command on the&lt;br /&gt;
CCU, if the user initiates this command, the CCU will issue an emergency stop to all the&lt;br /&gt;
smart cars regardless of there current positions or movements. This is to ensure if an error&lt;br /&gt;
was to occur there was minimal damage to the systems.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;/div&gt;</summary>
		<author><name>A1627992</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2015s1-50_Tracking,_Herding_and_Routing_by_Autonomous_Smart_Cars_(PG)&amp;diff=3249</id>
		<title>Projects:2015s1-50 Tracking, Herding and Routing by Autonomous Smart Cars (PG)</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=Projects:2015s1-50_Tracking,_Herding_and_Routing_by_Autonomous_Smart_Cars_(PG)&amp;diff=3249"/>
		<updated>2015-08-17T05:32:08Z</updated>

		<summary type="html">&lt;p&gt;A1627992: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The aim of this project is to create a system of autonomous smart cars, which will be able&lt;br /&gt;
to co-exist and move in an area without collision. Arduino robot vehicles will be used as the&lt;br /&gt;
`Smart Cars&amp;#039; due to size and complexity constraints.&lt;br /&gt;
&lt;br /&gt;
[[File:ArduinoRobot.jpg|thumb|alt=The robot being used in place of smart cars.|The Arduino Robot]]&lt;br /&gt;
&lt;br /&gt;
==The Team==&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Benjamin Riches&lt;br /&gt;
*Christopher Bouras&lt;br /&gt;
*Michael Cheung&lt;br /&gt;
*Tidasa Tennakoon&lt;br /&gt;
&lt;br /&gt;
===Supervisors===&lt;br /&gt;
*A/Prof Cheng-Chew Lim&lt;br /&gt;
*Prof Peng Shi&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The basic goal is to be able to demonstrate four smart cars interacting in such a way that&lt;br /&gt;
they can create a given formation without colliding with one another. A set of extension goals&lt;br /&gt;
devised that incorporate movement in formation, user-defined formations and expansion for&lt;br /&gt;
larger numbers of vehicles will also be demonstrated if time permits.&lt;br /&gt;
To achieve the proposed environment, two main systems will be created:&lt;br /&gt;
&lt;br /&gt;
1) Movement system&lt;br /&gt;
&lt;br /&gt;
2) Communication system&lt;br /&gt;
&lt;br /&gt;
This project will demonstrate, at a small scale level, a method of which multiple smart&lt;br /&gt;
robots can interact with each other, and move based on those interactions. This is a very&lt;br /&gt;
important principle as it is the basis for being able to create true automation of devices.&lt;br /&gt;
On the other hand, observing this project from the perspective of smart vehicles, it will be&lt;br /&gt;
able to demonstrate a starting point for autonomous transportation. Similar systems already&lt;br /&gt;
exist, however most use much larger, more powerful computers. The system created in this&lt;br /&gt;
project will operate on much less powerful hardware, demonstrating that automation may&lt;br /&gt;
not require extensive and expensive computer systems.&lt;br /&gt;
&lt;br /&gt;
==System Overview==&lt;br /&gt;
The major design challenge will be making the two systems work together to achieve the&lt;br /&gt;
desired result, and the final product is displayed in Figure 1.&lt;br /&gt;
&lt;br /&gt;
[[File:System.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: System Overview&lt;br /&gt;
&lt;br /&gt;
==Objectives== &lt;br /&gt;
The project has one main objective, with many further extension objectives devised if time&lt;br /&gt;
permits. The objective is to create the environment where a command can be sent from a&lt;br /&gt;
computer, such as form a line, and from there 4 smart cars will autonomously move to the&lt;br /&gt;
required positions to create the formation without colliding with one another. This requires&lt;br /&gt;
them to be aware of their initial location on the terrain, the initial locations of all other&lt;br /&gt;
smart cars, and the location of all cars whilst in movement. This will require a communica-&lt;br /&gt;
tion system between the computer and each robot to be created, and to integrate with the&lt;br /&gt;
movement system of the smart cars.&lt;br /&gt;
The extension objectives that have been outlined include; Making the smart cars move in&lt;br /&gt;
formation, making the smart cars move into a user-defined formation (via computer appli-&lt;br /&gt;
cation) and allowing the system to be expandable for many more smart cars (up to 10).&lt;br /&gt;
&lt;br /&gt;
== Project Details == &lt;br /&gt;
===The Robot===&lt;br /&gt;
&lt;br /&gt;
To implement the smart cars we will be using an existing Arduino robot that is readily&lt;br /&gt;
available on the market. This makes it easier for us as we wont have to design and construct the hardware of the smart car as this would veer away from&lt;br /&gt;
the scope of our project.&lt;br /&gt;
The Arduino robot platform has the following features:&lt;br /&gt;
&lt;br /&gt;
• ATmega32u4 microprocessor, which has a reasonable amount of computational power&lt;br /&gt;
and on-board memory, which is vital for our calculations.&lt;br /&gt;
&lt;br /&gt;
• Pre built movement system, which includes motors, motor controllers, wheels and&lt;br /&gt;
gearboxes.&lt;br /&gt;
&lt;br /&gt;
• Additional on-board memory space, to allow more code to be stored.&lt;br /&gt;
&lt;br /&gt;
• Compass sensor and multiple extension slots to allow additional sensors to be added.&lt;br /&gt;
&lt;br /&gt;
===Grid/Initial Position System===&lt;br /&gt;
In order for the smart cars to know their current positions without the need to use GPS&lt;br /&gt;
coordinates, we will need to establish a grid system in the operational terrain, which is approximately a 4m by 4m or 5m&lt;br /&gt;
by 5m area. The smart car will then be using a coordinate in the grid system to determine&lt;br /&gt;
their current location.&lt;br /&gt;
&lt;br /&gt;
The process will be to first establish the grid system using a designated boundary set out by&lt;br /&gt;
physical markers, then using the established grid system the initial positions of the smart&lt;br /&gt;
cars can be calculated and communicated to them. This can done in various ways, for this project we will be mainly focusing on image processing.&lt;br /&gt;
&lt;br /&gt;
The image recognition process will be done be using a HD webcam and camera mount so&lt;br /&gt;
that the camera has a view of the entire operational terrain. To establish the grid systems and initial positions we will place coloured markers in four&lt;br /&gt;
corners of the terrain and program the smart cars to display a unique colour on their LCD&lt;br /&gt;
screens, this is so the boundaries and smart cars can be more easily distinguished to the&lt;br /&gt;
image recognition algorithm. The webcam will the take a single HD photo of the terrain&lt;br /&gt;
and send it to the computer control unit.&lt;br /&gt;
&lt;br /&gt;
The computer control unit will then use image recognition algorithm in its existing system&lt;br /&gt;
to first determine the boundaries to create a grid system, then to recognise the smart cars&lt;br /&gt;
and using the grid, determine the initial positions of the smart cars. This information will&lt;br /&gt;
then be sent out to the smart cars using Wi-Fi.&lt;br /&gt;
&lt;br /&gt;
[[File:ImageRecognition.png|ImageRecognition.png||700px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Image Processing Technique&lt;br /&gt;
&lt;br /&gt;
===Smart Car Control System===&lt;br /&gt;
The behaviour and movement of the smart car will be determined by the smart car control&lt;br /&gt;
system. Each smart car will use this system independently of the other robots. This system&lt;br /&gt;
consists of three subsystems.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Basic Movement System (BMS)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The first subsystem that will need to be implemented is the basic movement system (BMS),&lt;br /&gt;
the BMS handles any physical moment the smart car will need to make, this consists of&lt;br /&gt;
moving in a straight line forwards and backwards, performing a 90 degree turn, performing&lt;br /&gt;
a curved turn and stopping. The Arduino robot already comes pre-programmed with a library to help perform these&lt;br /&gt;
movements; however code will need to be written in conjunction with this library in order&lt;br /&gt;
for the robot perform these given movements provided previously.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Routing System&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The routing system uses behaviour algorithms and additionally data inputs to calculate an&lt;br /&gt;
optimal route for the smart car to take to avoid other smart cars and obstacles. This route&lt;br /&gt;
will then be translated to the BMS which will physically move the smart to along that route.&lt;br /&gt;
The routing system works by first getting a command and coordinate from the computer&lt;br /&gt;
control unit. Knowing its goal the routing system will then give the current location and the real time&lt;br /&gt;
locations of the other smart cars to the behaviour algorithm. The behaviour algorithm will&lt;br /&gt;
then use this information to determine which route to the destination coordinate the smart&lt;br /&gt;
car must take to avoid the other smart cars and any obstacles on the way.&lt;br /&gt;
&lt;br /&gt;
The routing system will be continually monitoring the location of itself and the other smart&lt;br /&gt;
cars around it, if however a smart car gets too close, the routing system will then need to re&lt;br /&gt;
calculate a route to avoid a collision, this may mean waiting for another smart car to pass&lt;br /&gt;
or reversing and changing direction. The appropriate decision will be determined by the&lt;br /&gt;
behaviour algorithm.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Sensory System&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Many of the systems described above rely on the use of various sensors to provide the&lt;br /&gt;
appropriate information to perform a task. The sensory system has two roles the first is to&lt;br /&gt;
provide raw sensor data to various systems and the second is the make calculations of its&lt;br /&gt;
own using the sensors and giving that information to other systems.&lt;br /&gt;
&lt;br /&gt;
The sensory system provides the raw sensor data of the compass, the compass will provide&lt;br /&gt;
the current direction the smart car is facing and this information will be given to the BMS,&lt;br /&gt;
the BMS is reliant on this information so that it can move the smart car in a certain direction&lt;br /&gt;
or make a turn. The sensory system also provides calculated data using various sensors, the main information&lt;br /&gt;
being the current location of the smart car.&lt;br /&gt;
&lt;br /&gt;
===Communication System===&lt;br /&gt;
&lt;br /&gt;
The communication system is vital part of the object avoidance system it provides the&lt;br /&gt;
necessary information to be transferred amongst the smart cars and the computer control&lt;br /&gt;
unit. We will be using Wi-Fi as the form of communication we have chosen this for the&lt;br /&gt;
following reasons&lt;br /&gt;
• Wi-Fi shields are relatively cheap and easily adapted on to the Arduino robot platforms;&lt;br /&gt;
they are come with extensive pre-built libraries to assists with programming.&lt;br /&gt;
&lt;br /&gt;
• Wi-Fi provides the ability to broadcast information, this means multiple devices can&lt;br /&gt;
receive the information simultaneously.&lt;br /&gt;
&lt;br /&gt;
• Wi-Fi can be made secure to prevent interference from external sources.&lt;br /&gt;
&lt;br /&gt;
• Wi-Fi shields have an approximate range of 100m indoors which is more than adequate&lt;br /&gt;
for what we require.&lt;br /&gt;
&lt;br /&gt;
There will be two types of communication in the object avoidance systems.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Communication Between Smart Cars&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
In order for the routing system to determine the optimal route for the smart car to take,&lt;br /&gt;
it must first know the positions of all the other smart cars in the area. This information is&lt;br /&gt;
found from the communication system. When a smart car moves, the sensory system described previously will determine the new&lt;br /&gt;
position of the smart car, this information will then be broadcasted to all the other smart&lt;br /&gt;
cars in the area using the Wi-Fi communication system. The receiving smart robot will&lt;br /&gt;
be constantly checking for new coordinates on the Wi-Fi communication network, when&lt;br /&gt;
it determines that another smart car has moved it will save its new position in onboard&lt;br /&gt;
memory. Therefore, each smart car will have stored the current position of all the other smart cars&lt;br /&gt;
in the area and will use this information to avoid collisions.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Communication Between Smart Cars and Computer Control Unit&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The computer control unit also plays an important role in the communication network. As&lt;br /&gt;
previously discussed the smart cars will be communicating their positions to each other,&lt;br /&gt;
however they will also be communicating their position to the computer control unit as well,&lt;br /&gt;
by doing this the computer control unit can know where all the smart cars are at all times,&lt;br /&gt;
this has a lot of uses which will be discussed in the next section.&lt;br /&gt;
Additionally, the computer control unit will need to send information to the smart cars&lt;br /&gt;
individually or all at once. This includes issuing commands to the smart cars, giving out&lt;br /&gt;
initial positions in the case of image recognition being used or issuing an emergency stop.&lt;br /&gt;
&lt;br /&gt;
===Computer Control Unit (CCU)===&lt;br /&gt;
&lt;br /&gt;
The computer control unit will act as the central command of the smart cars, its roles&lt;br /&gt;
include:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Issuing Tasks to the Smart Cars&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The CCU program will have a range of predefined requests the smart cars can perform such&lt;br /&gt;
as make a shape formation. When the user picks one of these requests the CCU program will&lt;br /&gt;
first determine the positions each smart car must go to, next it sends out this information&lt;br /&gt;
plus a status of the task to all the smart cars. For example go to this position and create a&lt;br /&gt;
square formation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Up To Date View of the Grid&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The CCU will also keep an up to date map showing the current positions of all the smart&lt;br /&gt;
cars in the grid, this information helps the CCU determine the positions the smart cars must&lt;br /&gt;
go to, to perform a task.&lt;br /&gt;
Additionally, other than to give the user a graphical representation of where the smart cars&lt;br /&gt;
are on the grid, there will be another map that the user can interact with. This map will&lt;br /&gt;
initially show robot markers corresponding to their current locations. The user will then be&lt;br /&gt;
able to drag and drop these markers on the map, which will then make the actual robot&lt;br /&gt;
move to that position in the grid. By doing this, user will be able to create custom routes&lt;br /&gt;
for the robots apart from the pre-defined formations.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Emergency Stop&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To encourage the safety of the project we will have an emergency stop command on the&lt;br /&gt;
CCU, if the user initiates this command, the CCU will issue an emergency stop to all the&lt;br /&gt;
smart cars regardless of there current positions or movements. This is to ensure if an error&lt;br /&gt;
was to occur there was minimal damage to the systems.&lt;br /&gt;
&lt;br /&gt;
==Current Progress==&lt;br /&gt;
Each team member has worked on separate sections&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;/div&gt;</summary>
		<author><name>A1627992</name></author>
		
	</entry>
</feed>