<?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=A1654530</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=A1654530"/>
	<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php/Special:Contributions/A1654530"/>
	<updated>2026-05-01T23:00:57Z</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=3930</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=3930"/>
		<updated>2015-10-21T13:28:39Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)The Arduino robot：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino small.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)The webcam：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:webcam small.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&lt;br /&gt;
&lt;br /&gt;
==Software overview== &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)visual studio&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The visual studio C++ platform and openCV platform are the perfect products to design all kinds of algorithm. Visual studio is a platform made by Microsoft and it gives engineers to design an algorithm or a simulation, not like Matlab, the C# programing language needs a more complicate steps in mathematic algorithm, but it has a high level of accuracy rate, which means it is more suitable for this project. It can also merge with image processing program language in an easy way.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)Arduino IDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino IDE is a platform for Arduino robot to make a program on it.&lt;br /&gt;
&lt;br /&gt;
== Project result ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The settled target&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This is the situation to test the algorithm in an easiest way, and the test is focus on the difference between each neighbor angle. The ideal result should be each difference is close to zero eventually.&lt;br /&gt;
&lt;br /&gt;
[[File:Record4.gif]]&lt;br /&gt;
&lt;br /&gt;
[[File:Angles.png]]&lt;br /&gt;
&lt;br /&gt;
In this picture, for angle differences have different values at first, during the tracking process, the differences become equally and lead to zero. Four curves all have a gentle changes during this process.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The moving target simulation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If the target is a moving target, for angle differences will also leads to an equal value and the value will be zero eventually.&lt;br /&gt;
&lt;br /&gt;
[[File:Record1.gif]]&lt;br /&gt;
&lt;br /&gt;
[[File:Angles2.png]]&lt;br /&gt;
&lt;br /&gt;
It is easy to obverse that these four angles have a huge difference at first, and then lead to an equal value zero. There is a long process to keep this balance, which means the target was surrounded by these tracking cars in safe area in a very long time. Then the target moved to the boundary and it leads the angle differences to become two different values. &lt;br /&gt;
However, this situation does not happen every time in reality, mostly the target would not have much surround period, which means the balance period would be shorter than the picture above, and the target would not have a balance situation obviously.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Debugging analysis&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Since this project has a large system, which is contributed by 5 subsystems, even only one error in a subsystem could lead the project shut down. So debugging is significant for this project. But debugging is not only checking the programs and algorithms, but also the system equipment. Meanwhile, debugging needs to be very logical, to cut the system piece by piece and debug them one by one would be an effective way. This project would take a long time for debugging, and here are some debugging analyses for this project:&lt;br /&gt;
&lt;br /&gt;
(1) Image processing:&lt;br /&gt;
&lt;br /&gt;
The image processing is to find the coordinate of each car and put them into algorithm, but there is a time between the first image and the second one, which include two processes, first one is the image processing delay time, the second one is Arduino robot moving time. Sometimes, it is easily to forget Arduino robot moving time and it would lead to many errors.&lt;br /&gt;
&lt;br /&gt;
(2) Head vector:&lt;br /&gt;
&lt;br /&gt;
Head vector is the most important part in this algorithm, it can tell the robot where to go, without the head vector this robot would be blind. Sometimes, Arduino robot have many turning movements, which would lead to a wrong head vector detection since the error of image processing, so make a program to cut this error is also a crucial part in this project.&lt;br /&gt;
&lt;br /&gt;
(3) Print the results:&lt;br /&gt;
&lt;br /&gt;
Since this algorithm have too many steps and logical judgments the error could because of any steps of that, but it is hard to find the wrong part quickly, so the most effective way to solve this problem is to debug the results one by one, set a breakpoint in program to check a part of the program, and print something you made to check the steps.&lt;br /&gt;
&lt;br /&gt;
(4) Set up the threshold value:&lt;br /&gt;
&lt;br /&gt;
An appropriate threshold value is very important for this algorithm. For example, the boundary value, the motor voltage and the height of the webcam are all have a significant influence for this project.&lt;br /&gt;
&lt;br /&gt;
(5) Coordinate system:&lt;br /&gt;
&lt;br /&gt;
Since the coordinate system is not a traditional system just exactly as in mathematic field, so some standard vectors have to adjust the new coordinate system, otherwise it would lead to errors.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Conclusion&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This report gives a clear project purpose and content, it introduces all the hardware and software, which has been used in this project. Beside some project managements, it still has not only the outcomes but also many analyzing processes. The improvement advises could help other students with further development. All the achievements in this project can be summarized as below:&lt;br /&gt;
&lt;br /&gt;
•	Arduino robot program edition.&lt;br /&gt;
&lt;br /&gt;
•	Arduino Wi-Fi shield communication.&lt;br /&gt;
&lt;br /&gt;
•	Using visual studio to make a color identification program.&lt;br /&gt;
&lt;br /&gt;
•	Appling gyroscope sensor on Arduino robot.&lt;br /&gt;
&lt;br /&gt;
•	Using visual studio to design the tracking and routing algorithm of this project.&lt;br /&gt;
&lt;br /&gt;
•	Debugging the whole programs and systems.&lt;br /&gt;
&lt;br /&gt;
However, the most important knowledge I have learned is neither an unknown knowledge nor any program editing skills, the most important thing is to learn how to use the limited source and equipment to design a system to achieve the destination. The objective environment might be a limitation, which could lead to a failure. But a wide imagination could help to solve these problems. Do not be afraid of trying, and debugging programs with patience is also necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reference&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[1]	Arduino Robot, http://arduino.cc/en/main/robot.&lt;br /&gt;
&lt;br /&gt;
[2]	Brown, AS 2011, ‘Google’s Autonomous Car Applies Lessons Learned From Driverless Races’, Mechanical Engineering, Vol. 133, Issue 2, p. 31-31.&lt;br /&gt;
&lt;br /&gt;
[3]	Farrell, J 2008, ‘Aided navigation: GPS with high rate sensors’, McGraw-Hill professional engineering, Vol. 124, p. 77-78.&lt;br /&gt;
&lt;br /&gt;
[4]	Haitao, J Mei, X 2005, ‘Automatic moving target detecting by a novel video segmentation algorithm’, Proceeding of SPIE, Vol. 5807, p.435-442.&lt;br /&gt;
&lt;br /&gt;
[5]	Meyer, G 2011, ‘Advanced Microsystems for Automotive Applications 2011’, Springer, Vol.321, issue 1, p. 21-22.&lt;br /&gt;
&lt;br /&gt;
[6]	Norman, S 2014, ‘Google car takes the test’, Nature, Vol.514, Issue 7523, pp. 514.&lt;br /&gt;
&lt;br /&gt;
[7]	Johnson, B 2013, ‘Professional Visual Studio 2013’, p. 25-75.&lt;br /&gt;
&lt;br /&gt;
[8]	Hao, H, Steven, M, Vittria, C, Alessandro, V, 2009, ‘Wi-Fi network and malware epidemiology’, National Academey of Sciences of the United States of America, Vol.106 (5), pp1318-33.&lt;br /&gt;
&lt;br /&gt;
[9]	Mario, N, 2010, ‘Advances in Gyroscope Technologies’, p. 35-60.&lt;br /&gt;
&lt;br /&gt;
[10]	Embree, P, 2011, ‘C language algorithm for digital signal processing’, Vol.128, pp1215-90.&lt;br /&gt;
&lt;br /&gt;
[11]	Troch, I, Breitenecker, F, 2006, ‘Robot control’, Vol.15 (1), pp. 1-2.&lt;br /&gt;
&lt;br /&gt;
[12]	Song, D, 2009, ‘Sharing a Vision Systems and Algorithms for Robotic Cameras’, p. 27-100.&lt;/div&gt;</summary>
		<author><name>A1654530</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=3929</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=3929"/>
		<updated>2015-10-21T13:20:19Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)The Arduino robot：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino small.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)The webcam：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:webcam small.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&lt;br /&gt;
&lt;br /&gt;
==Software overview== &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)visual studio&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The visual studio C++ platform and openCV platform are the perfect products to design all kinds of algorithm. Visual studio is a platform made by Microsoft and it gives engineers to design an algorithm or a simulation, not like Matlab, the C# programing language needs a more complicate steps in mathematic algorithm, but it has a high level of accuracy rate, which means it is more suitable for this project. It can also merge with image processing program language in an easy way.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)Arduino IDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino IDE is a platform for Arduino robot to make a program on it.&lt;br /&gt;
&lt;br /&gt;
== Project result ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The settled target&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This is the situation to test the algorithm in an easiest way, and the test is focus on the difference between each neighbor angle. The ideal result should be each difference is close to zero eventually.&lt;br /&gt;
&lt;br /&gt;
[[File:Record4.gif]]&lt;br /&gt;
&lt;br /&gt;
[[File:Angles.png]]&lt;br /&gt;
&lt;br /&gt;
In this picture, for angle differences have different values at first, during the tracking process, the differences become equally and lead to zero. Four curves all have a gentle changes during this process.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The moving target simulation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If the target is a moving target, for angle differences will also leads to an equal value and the value will be zero eventually.&lt;br /&gt;
&lt;br /&gt;
[[File:Record1.gif]]&lt;br /&gt;
&lt;br /&gt;
[[File:Angles2.png]]&lt;/div&gt;</summary>
		<author><name>A1654530</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Angles2.png&amp;diff=3928</id>
		<title>File:Angles2.png</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Angles2.png&amp;diff=3928"/>
		<updated>2015-10-21T13:19:40Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1654530</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=3927</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=3927"/>
		<updated>2015-10-21T13:19:16Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)The Arduino robot：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino small.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)The webcam：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:webcam small.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&lt;br /&gt;
&lt;br /&gt;
==Software overview== &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)visual studio&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The visual studio C++ platform and openCV platform are the perfect products to design all kinds of algorithm. Visual studio is a platform made by Microsoft and it gives engineers to design an algorithm or a simulation, not like Matlab, the C# programing language needs a more complicate steps in mathematic algorithm, but it has a high level of accuracy rate, which means it is more suitable for this project. It can also merge with image processing program language in an easy way.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)Arduino IDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino IDE is a platform for Arduino robot to make a program on it.&lt;br /&gt;
&lt;br /&gt;
== Project result ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The settled target&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This is the situation to test the algorithm in an easiest way, and the test is focus on the difference between each neighbor angle. The ideal result should be each difference is close to zero eventually.&lt;br /&gt;
&lt;br /&gt;
[[File:Record4.gif]]&lt;br /&gt;
&lt;br /&gt;
[[File:Angles.png]]&lt;br /&gt;
&lt;br /&gt;
In this picture, for angle differences have different values at first, during the tracking process, the differences become equally and lead to zero. Four curves all have a gentle changes during this process.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The moving target simulation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If the target is a moving target, for angle differences will also leads to an equal value and the value will be zero eventually.&lt;br /&gt;
&lt;br /&gt;
[[File:Record1.gif]]&lt;br /&gt;
&lt;br /&gt;
[[File:angles2]]&lt;/div&gt;</summary>
		<author><name>A1654530</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Angles.png&amp;diff=3926</id>
		<title>File:Angles.png</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Angles.png&amp;diff=3926"/>
		<updated>2015-10-21T13:18:36Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1654530</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Record4.gif&amp;diff=3925</id>
		<title>File:Record4.gif</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Record4.gif&amp;diff=3925"/>
		<updated>2015-10-21T13:16:17Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1654530</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=3924</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=3924"/>
		<updated>2015-10-21T13:15:45Z</updated>

		<summary type="html">&lt;p&gt;A1654530: /* Project result */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)The Arduino robot：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino small.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)The webcam：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:webcam small.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&lt;br /&gt;
&lt;br /&gt;
==Software overview== &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)visual studio&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The visual studio C++ platform and openCV platform are the perfect products to design all kinds of algorithm. Visual studio is a platform made by Microsoft and it gives engineers to design an algorithm or a simulation, not like Matlab, the C# programing language needs a more complicate steps in mathematic algorithm, but it has a high level of accuracy rate, which means it is more suitable for this project. It can also merge with image processing program language in an easy way.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)Arduino IDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino IDE is a platform for Arduino robot to make a program on it.&lt;br /&gt;
&lt;br /&gt;
== Project result ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The settled target&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This is the situation to test the algorithm in an easiest way, and the test is focus on the difference between each neighbor angle. The ideal result should be each difference is close to zero eventually.&lt;br /&gt;
&lt;br /&gt;
[[File:Record4.gif]]&lt;br /&gt;
&lt;br /&gt;
[[File:angles]]&lt;br /&gt;
&lt;br /&gt;
In this picture, for angle differences have different values at first, during the tracking process, the differences become equally and lead to zero. Four curves all have a gentle changes during this process.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The moving target simulation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If the target is a moving target, for angle differences will also leads to an equal value and the value will be zero eventually.&lt;br /&gt;
&lt;br /&gt;
[[File:Record1.gif]]&lt;br /&gt;
&lt;br /&gt;
[[File:angles2]]&lt;/div&gt;</summary>
		<author><name>A1654530</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=3923</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=3923"/>
		<updated>2015-10-21T13:09:41Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)The Arduino robot：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino small.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)The webcam：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:webcam small.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&lt;br /&gt;
&lt;br /&gt;
==Software overview== &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)visual studio&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The visual studio C++ platform and openCV platform are the perfect products to design all kinds of algorithm. Visual studio is a platform made by Microsoft and it gives engineers to design an algorithm or a simulation, not like Matlab, the C# programing language needs a more complicate steps in mathematic algorithm, but it has a high level of accuracy rate, which means it is more suitable for this project. It can also merge with image processing program language in an easy way.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)Arduino IDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino IDE is a platform for Arduino robot to make a program on it.&lt;br /&gt;
&lt;br /&gt;
== Project result ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A settled target&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This is the situation to test the algorithm in an easiest way, and the test is focus on the difference between each neighbor angle. The ideal result should be each difference is close to zero eventually.&lt;br /&gt;
&lt;br /&gt;
[[File:Record1.gif]]&lt;/div&gt;</summary>
		<author><name>A1654530</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Record1.gif&amp;diff=3922</id>
		<title>File:Record1.gif</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Record1.gif&amp;diff=3922"/>
		<updated>2015-10-21T13:08:56Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1654530</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=3921</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=3921"/>
		<updated>2015-10-21T13:07:28Z</updated>

		<summary type="html">&lt;p&gt;A1654530: /* Project result */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)The Arduino robot：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino small.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)The webcam：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:webcam small.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&lt;br /&gt;
&lt;br /&gt;
==Software overview== &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)visual studio&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The visual studio C++ platform and openCV platform are the perfect products to design all kinds of algorithm. Visual studio is a platform made by Microsoft and it gives engineers to design an algorithm or a simulation, not like Matlab, the C# programing language needs a more complicate steps in mathematic algorithm, but it has a high level of accuracy rate, which means it is more suitable for this project. It can also merge with image processing program language in an easy way.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)Arduino IDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino IDE is a platform for Arduino robot to make a program on it.&lt;br /&gt;
&lt;br /&gt;
== Project result ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A settled target&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This is the situation to test the algorithm in an easiest way, and the test is focus on the difference between each neighbor angle. The ideal result should be each difference is close to zero eventually.&lt;br /&gt;
&lt;br /&gt;
[[File:record1]]&lt;/div&gt;</summary>
		<author><name>A1654530</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=3888</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=3888"/>
		<updated>2015-10-21T06:54:49Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)The Arduino robot：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino small.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)The webcam：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:webcam small.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&lt;br /&gt;
&lt;br /&gt;
==Software overview== &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)visual studio&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The visual studio C++ platform and openCV platform are the perfect products to design all kinds of algorithm. Visual studio is a platform made by Microsoft and it gives engineers to design an algorithm or a simulation, not like Matlab, the C# programing language needs a more complicate steps in mathematic algorithm, but it has a high level of accuracy rate, which means it is more suitable for this project. It can also merge with image processing program language in an easy way.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)Arduino IDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino IDE is a platform for Arduino robot to make a program on it.&lt;br /&gt;
&lt;br /&gt;
== Project result ==&lt;/div&gt;</summary>
		<author><name>A1654530</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Webcam_small.png&amp;diff=3887</id>
		<title>File:Webcam small.png</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Webcam_small.png&amp;diff=3887"/>
		<updated>2015-10-21T06:54:06Z</updated>

		<summary type="html">&lt;p&gt;A1654530: small webcam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;small webcam&lt;/div&gt;</summary>
		<author><name>A1654530</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=3886</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=3886"/>
		<updated>2015-10-21T06:52:41Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)The Arduino robot：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino small.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)The webcam：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:webcam small]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&lt;br /&gt;
&lt;br /&gt;
==Software overview== &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)visual studio&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The visual studio C++ platform and openCV platform are the perfect products to design all kinds of algorithm. Visual studio is a platform made by Microsoft and it gives engineers to design an algorithm or a simulation, not like Matlab, the C# programing language needs a more complicate steps in mathematic algorithm, but it has a high level of accuracy rate, which means it is more suitable for this project. It can also merge with image processing program language in an easy way.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)Arduino IDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino IDE is a platform for Arduino robot to make a program on it.&lt;br /&gt;
&lt;br /&gt;
== Project result ==&lt;/div&gt;</summary>
		<author><name>A1654530</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Arduino_small.jpeg&amp;diff=3885</id>
		<title>File:Arduino small.jpeg</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Arduino_small.jpeg&amp;diff=3885"/>
		<updated>2015-10-21T06:51:43Z</updated>

		<summary type="html">&lt;p&gt;A1654530: small car&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;small car&lt;/div&gt;</summary>
		<author><name>A1654530</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=3884</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=3884"/>
		<updated>2015-10-21T06:50:56Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)The Arduino robot：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino small]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)The webcam：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:webcam small]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&lt;br /&gt;
&lt;br /&gt;
==Software overview== &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)visual studio&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The visual studio C++ platform and openCV platform are the perfect products to design all kinds of algorithm. Visual studio is a platform made by Microsoft and it gives engineers to design an algorithm or a simulation, not like Matlab, the C# programing language needs a more complicate steps in mathematic algorithm, but it has a high level of accuracy rate, which means it is more suitable for this project. It can also merge with image processing program language in an easy way.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)Arduino IDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino IDE is a platform for Arduino robot to make a program on it.&lt;br /&gt;
&lt;br /&gt;
== Project result ==&lt;/div&gt;</summary>
		<author><name>A1654530</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=3882</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=3882"/>
		<updated>2015-10-21T06:42:28Z</updated>

		<summary type="html">&lt;p&gt;A1654530: /* Hardware Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)The Arduino robot：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino robot.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)The webcam：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:Webcam.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&lt;br /&gt;
&lt;br /&gt;
==Software overview== &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)visual studio&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The visual studio C++ platform and openCV platform are the perfect products to design all kinds of algorithm. Visual studio is a platform made by Microsoft and it gives engineers to design an algorithm or a simulation, not like Matlab, the C# programing language needs a more complicate steps in mathematic algorithm, but it has a high level of accuracy rate, which means it is more suitable for this project. It can also merge with image processing program language in an easy way.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)Arduino IDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino IDE is a platform for Arduino robot to make a program on it.&lt;br /&gt;
&lt;br /&gt;
== Project result ==&lt;/div&gt;</summary>
		<author><name>A1654530</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=3881</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=3881"/>
		<updated>2015-10-21T06:41:57Z</updated>

		<summary type="html">&lt;p&gt;A1654530: /* Hardware Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
Mainly this project has two hardware:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)The Arduino robot：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino robot.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)The webcam：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:Webcam.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&lt;br /&gt;
&lt;br /&gt;
==Software overview== &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)visual studio&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The visual studio C++ platform and openCV platform are the perfect products to design all kinds of algorithm. Visual studio is a platform made by Microsoft and it gives engineers to design an algorithm or a simulation, not like Matlab, the C# programing language needs a more complicate steps in mathematic algorithm, but it has a high level of accuracy rate, which means it is more suitable for this project. It can also merge with image processing program language in an easy way.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)Arduino IDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino IDE is a platform for Arduino robot to make a program on it.&lt;br /&gt;
&lt;br /&gt;
== Project result ==&lt;/div&gt;</summary>
		<author><name>A1654530</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=3880</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=3880"/>
		<updated>2015-10-21T06:41:33Z</updated>

		<summary type="html">&lt;p&gt;A1654530: /* Software overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
Mainly this project has two hardware:&lt;br /&gt;
(1)The Arduino robot：&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino robot.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
(2)The webcam：&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:Webcam.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&lt;br /&gt;
&lt;br /&gt;
==Software overview== &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(1)visual studio&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The visual studio C++ platform and openCV platform are the perfect products to design all kinds of algorithm. Visual studio is a platform made by Microsoft and it gives engineers to design an algorithm or a simulation, not like Matlab, the C# programing language needs a more complicate steps in mathematic algorithm, but it has a high level of accuracy rate, which means it is more suitable for this project. It can also merge with image processing program language in an easy way.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;(2)Arduino IDE&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Arduino IDE is a platform for Arduino robot to make a program on it.&lt;br /&gt;
&lt;br /&gt;
== Project result ==&lt;/div&gt;</summary>
		<author><name>A1654530</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=3879</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=3879"/>
		<updated>2015-10-21T06:40:23Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
Mainly this project has two hardware:&lt;br /&gt;
(1)The Arduino robot：&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino robot.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
(2)The webcam：&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:Webcam.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&lt;br /&gt;
&lt;br /&gt;
==Software overview== &lt;br /&gt;
(1)visual studio&lt;br /&gt;
The visual studio C++ platform and openCV platform are the perfect products to design all kinds of algorithm. Visual studio is a platform made by Microsoft and it gives engineers to design an algorithm or a simulation, not like Matlab, the C# programing language needs a more complicate steps in mathematic algorithm, but it has a high level of accuracy rate, which means it is more suitable for this project. It can also merge with image processing program language in an easy way.&lt;br /&gt;
(2)Arduino IDE&lt;br /&gt;
The Arduino IDE is a platform for Arduino robot to make a program on it.&lt;br /&gt;
&lt;br /&gt;
== Project result ==&lt;/div&gt;</summary>
		<author><name>A1654530</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=3878</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=3878"/>
		<updated>2015-10-21T06:32:04Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
Mainly this project has two hardware:&lt;br /&gt;
(1)The Arduino robot：&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino robot.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
(2)The webcam：&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:Webcam.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&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;
[[File:arduino-wifi-shield.jpg|thumb|300px|Wi-Fi shield for the Arduino Robot]]&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;
&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>A1654530</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Webcam.jpeg&amp;diff=3877</id>
		<title>File:Webcam.jpeg</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Webcam.jpeg&amp;diff=3877"/>
		<updated>2015-10-21T06:16:43Z</updated>

		<summary type="html">&lt;p&gt;A1654530: webcam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;webcam&lt;/div&gt;</summary>
		<author><name>A1654530</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=3876</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=3876"/>
		<updated>2015-10-21T06:14:15Z</updated>

		<summary type="html">&lt;p&gt;A1654530: /* Hardware Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
Mainly this project has two hardware:&lt;br /&gt;
(1)The Arduino robot：&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino robot.jpeg]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
(2)The webcam：&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:webcam]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&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;
[[File:arduino-wifi-shield.jpg|thumb|300px|Wi-Fi shield for the Arduino Robot]]&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;
&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>A1654530</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Arduino_robot.jpeg&amp;diff=3875</id>
		<title>File:Arduino robot.jpeg</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Arduino_robot.jpeg&amp;diff=3875"/>
		<updated>2015-10-21T06:12:22Z</updated>

		<summary type="html">&lt;p&gt;A1654530: the smart car&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;the smart car&lt;/div&gt;</summary>
		<author><name>A1654530</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=3874</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=3874"/>
		<updated>2015-10-21T06:11:25Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
The rapidly increasing of the vehicles becomes a reason for traffic accident today. Although the vehicle provides a more convenient way to travel, people may waste more time on the road. Additionally, the long-time driving make driver tired which is also a factor of traffic accident. In this case, many companies are ready to research and develop the smart car, which can drive without people and avoid obstacles or achieve some simple tasks intelligently. &lt;br /&gt;
&lt;br /&gt;
===Team Members===&lt;br /&gt;
*Mingnan &lt;br /&gt;
*Ke Cai&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;
==Hardware Overview==&lt;br /&gt;
Mainly this project has two hardware:&lt;br /&gt;
(1)The Arduino robot：&lt;br /&gt;
The Arduino Robot is the product of Arduino Company. The robot is the first official Arduino on the wheel. It is consisted by two boards: the control board and the motor board. There are two processors in the robot, which are in the control board and motor board separately. The two boards are programmable by Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
[[File:Arduino robot]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Arduino robot&lt;br /&gt;
&lt;br /&gt;
(2)The webcam：&lt;br /&gt;
To catch the image and transmit data to the control terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:webcam]]&lt;br /&gt;
&lt;br /&gt;
Figure 2：webcam&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;
[[File:arduino-wifi-shield.jpg|thumb|300px|Wi-Fi shield for the Arduino Robot]]&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;
&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>A1654530</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Esd.jpg&amp;diff=3872</id>
		<title>File:Esd.jpg</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Esd.jpg&amp;diff=3872"/>
		<updated>2015-10-21T03:59:39Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1654530</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=3871</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=3871"/>
		<updated>2015-10-21T03:56:32Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&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|250px|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;
*Mingnan &lt;br /&gt;
*Ke Cai&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.[[File:esd.jpg]]&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|550px]]&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;
[[File:arduino-wifi-shield.jpg|thumb|300px|Wi-Fi shield for the Arduino Robot]]&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;
&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>A1654530</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=3870</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=3870"/>
		<updated>2015-10-21T03:53:53Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&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|250px|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;
*Mingnan &lt;br /&gt;
*Ke Cai&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|550px]]&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===[[File:Example.jpg]]&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;
[[File:arduino-wifi-shield.jpg|thumb|300px|Wi-Fi shield for the Arduino Robot]]&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;
&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>A1654530</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Wifi_shield_connection.jpg&amp;diff=3869</id>
		<title>File:Wifi shield connection.jpg</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:Wifi_shield_connection.jpg&amp;diff=3869"/>
		<updated>2015-10-21T03:49:43Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1654530</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=3868</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=3868"/>
		<updated>2015-10-21T03:47:32Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Media:Example.ogg]]&lt;br /&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|250px|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;
*Mingnan &lt;br /&gt;
*Ke Cai&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|550px]]&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;
[[File:arduino-wifi-shield.jpg|thumb|300px|Wi-Fi shield for the Arduino Robot]]&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;
&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>A1654530</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:001211.jpg&amp;diff=3867</id>
		<title>File:001211.jpg</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:001211.jpg&amp;diff=3867"/>
		<updated>2015-10-21T03:46:48Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1654530</name></author>
		
	</entry>
	<entry>
		<id>https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:123586.jpg&amp;diff=3866</id>
		<title>File:123586.jpg</title>
		<link rel="alternate" type="text/html" href="https://projectswiki.eleceng.adelaide.edu.au/projects/index.php?title=File:123586.jpg&amp;diff=3866"/>
		<updated>2015-10-21T03:45:01Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>A1654530</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=3865</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=3865"/>
		<updated>2015-10-21T03:44:04Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:1.jpg]]&lt;br /&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|250px|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;
*Mingnan &lt;br /&gt;
*Ke Cai&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|550px]]&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;
[[File:arduino-wifi-shield.jpg|thumb|300px|Wi-Fi shield for the Arduino Robot]]&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;
&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>A1654530</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=3864</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=3864"/>
		<updated>2015-10-21T03:42:37Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[jkbk]]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|250px|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;
*Mingnan &lt;br /&gt;
*Ke Cai&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|550px]]&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;
[[File:arduino-wifi-shield.jpg|thumb|300px|Wi-Fi shield for the Arduino Robot]]&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;
&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>A1654530</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=3863</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=3863"/>
		<updated>2015-10-21T03:42:18Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;vzv&amp;#039;&amp;#039;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|250px|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;
*Mingnan &lt;br /&gt;
*Ke Cai&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|550px]]&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;
[[File:arduino-wifi-shield.jpg|thumb|300px|Wi-Fi shield for the Arduino Robot]]&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;
&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>A1654530</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=3862</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=3862"/>
		<updated>2015-10-21T03:41:31Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;ADV&amp;#039;&amp;#039;&amp;#039;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|250px|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;
*Mingnan &lt;br /&gt;
*Ke Cai&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|550px]]&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;
[[File:arduino-wifi-shield.jpg|thumb|300px|Wi-Fi shield for the Arduino Robot]]&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;
&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>A1654530</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=3847</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=3847"/>
		<updated>2015-10-19T01:30:45Z</updated>

		<summary type="html">&lt;p&gt;A1654530: &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|250px|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;
*Mingnan &lt;br /&gt;
*Ke Cai&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|550px]]&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;
[[File:arduino-wifi-shield.jpg|thumb|300px|Wi-Fi shield for the Arduino Robot]]&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;
&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>A1654530</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=3715</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=3715"/>
		<updated>2015-09-26T07:13:55Z</updated>

		<summary type="html">&lt;p&gt;A1654530: /* Team Members */&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|250px|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;
*Mingnan Wang&lt;br /&gt;
*Ke Cai&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|550px]]&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;
[[File:arduino-wifi-shield.jpg|thumb|300px|Wi-Fi shield for the Arduino Robot]]&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;
&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>A1654530</name></author>
		
	</entry>
</feed>