-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproject02.html
415 lines (366 loc) · 22.5 KB
/
project02.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>ANIL HARISH - Ant Colony Optimization and Formation Control of Swarm Robots</title>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="" name="keywords">
<meta content="" name="description">
<!-- Favicons -->
<link href="img/favicon.png" rel="icon">
<link href="img/apple-touch-icon.png" rel="apple-touch-icon">
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,500,700" rel="stylesheet">
<!-- Bootstrap CSS File -->
<link href="lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Libraries CSS Files -->
<link href="lib/font-awesome/css/font-awesome.min.css" rel="stylesheet">
<!-- Main Stylesheet File -->
<link href="css/style.css" rel="stylesheet">
</head>
<body>
<!-- Static navbar -->
<div class="navbar navbar-inverse navbar-static-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html">ANIL HARISH</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="project.html">Projects</a></li>
<li><a href="lib/docs/Anil_Harish.pdf">Resume</a></li>
<li><a href="about.html">About</a></li>
<li><a href="blog.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<!--/.nav-collapse -->
</div>
</div>
<!-- +++++ Projects Section +++++ -->
<div class="container pt">
<div class="row mt">
<div class="col-lg-12 centered">
<h2>Ant Colony Optimization and Formation Control of Swarm Robots</h2>
<hr>
<p>
<strong>Date:</strong> Spring 2018 |
<strong>Category:</strong> <a href="https://drive.google.com/file/d/15cLcPFUzODnWF3Gn9qdpyHXAqWQz5nmn/view?usp=sharing"> Graduate Research Project </a> |
<strong>Affiliation:</strong> <a href="https://www.colostate.edu/">Colorado State University</a>
</p>
<p> <strong><a href="https://github.com/anilharish/Robotics/tree/master/Ant_Colony_Particle_Swarm_Optimization">Link to GitHub Repository</a></strong></p>
<p>
Swarm robotics is one of the ground-breaking methods to recreate artificial intelligence of ants, bees, wasps, termites and even humans. They possess the ability to function together and perform complex tasks without a centralized
control mechanism or high processing power.
</p>
</div>
<div class="col-lg-12 centered">
<h3>Dependencies:</h3>
<br>
</div>
<div class="row mt centered">
<div class="col-lg-2 col-lg-offset-2 centered">
<img class="img-responsive" width="100" height="100" src="img/dep/c++.png" alt="">
</div>
<div class="col-lg-2">
<img class="img-responsive" width="300" height="100" src="img/dep/python.png" alt="">
</div>
<div class="col-lg-2">
<img class="img-responsive" width="300" height="100" src="img/dep/ros.png" alt="">
</div>
<div class="col-lg-2">
<img class="img-responsive" width="100" height="100" src="img/dep/opencv.png" alt="">
</div>
</div>
<div class="row mt centered">
<div class="col-lg-2 col-lg-offset-2 centered">
<img class="img-responsive" width="100" height="100" src="img/dep/gazebo.png" alt="">
</div>
<div class="col-lg-2">
<img class="img-responsive" width="300" height="100" src="img/dep/arduino.png" alt="">
</div>
<div class="col-lg-2">
<img class="img-responsive" width="400" height="100" src="img/dep/raspberrypi.png" alt="">
</div>
<div class="col-lg-2">
<img class="img-responsive" width="400" height="100" src="img/dep/autocad.png" alt="">
</div>
</div>
<div class="col-lg-12 centered">
<h3>Media</h3>
<hr>
<h4>Ant Colony Particle Swarm Optimization</h4>
</div>
<div class="row mt centered">
<div class="col-lg-8 col-lg-offset-2">
<p><img class="img-responsive" src="img/portfolio/project02/proj2_res1.jpg" alt="" /></p>
<p>
<div class="embed-responsive embed-responsive-16by9">
<iframe width="560" height="315" src="https://www.youtube.com/embed/zKs-tVocGTw" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
</p>
</div>
</div>
<div class ="col-lg-12 centered">
<h4>Unsupervised Formation Control</h4>
</div>
<div class="row mt centered">
<div class="col-lg-8 col-lg-offset-2">
<p>
<div class="embed-responsive embed-responsive-16by9">
<iframe width="560" height="315" src="https://www.youtube.com/embed/F8Yc3ukKqYY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
</p>
</div>
</div>
<div class="col-lg-12 centered">
<h3>Overview</h3>
<hr>
<p>
Initially the project was part of my final project for <a href="https://www.coursicle.com/colostate/courses/MECH/681A4/">MECH 681A4 - Biologically Inspired Robotics</a> course offered by
<a href="https://www.engr.colostate.edu/me/dr-jianguo-zhao/">Dr. Jianguo Zhao</a>. Based on positive results and room for development and research, it evolved into a Graduate Research Project contributing towards my Master's Degree in
Electrical Engineering. <a href="https://www.engr.colostate.edu/~aam/">Prof. Anthony A. Maciejewski</a> and <a href="http://www.engr.colostate.edu/~echong/">Prof. Edwin K. P. Chong</a> acting as additional advisors.
</p>
<p>
Swarm Robotics is a modus operandi to co-ordination of multi-robot systems which achieve collective behaviour comprising of multi-robot systems which can sense and understand their environment. These robots individually do not have a
high computing power. But the system as a whole is able to perform complex tasks and functions which is time consuming. These simple agents interact locally with one another and their environment. Eusociality in these animals and insects
give rise to Swarm Intelligence (SI). Swarm Intelligence is the collective behaviour of decentralized, self-organized systems, natural or artificial. The key component of their collective behaviour is their ability to function individually
and stronger as a group.
</p>
<p>
The simplest of mathematical models of animal and insect swarms generally represent individual animals as three following rules:
<ol class="centered">
<li>Move in the same direction as your neighbours</li>
<li>Remain close to your neighbours</li>
<li>Avoid collisions with your neighbours</li>
</ol>
Swarm algorithms follow Lagrangian approach or Eulerian approach. The Eulerian approach views the swarm as a field, working with the density of the swarm and deriving mean field properties. It is a hydrodynamic approach, and can be useful
for modelling the overall dynamics of large swarms. However, most models work with the Lagrangian approach, which is an agent-based model following the individual agents (points or particles) that make up the swarm. Individual particle
models can follow information on heading and spacing that is lost in the Eulerian approach.
</p>
</div>
<div class="row mt centered">
<div class="col-lg-8 col-lg-offset-2 centered">
<p><img class="img-responsive" src="img/portfolio/project02/proj2_tab1.jpg" alt=""> Table 1. Comparision of Swarm Robot and other Systems</p>
</div>
</div>
<div class="col-lg-12 centered">
<h3>Dynamic Structure</h3>
<p>
We modelled each of our individual robots to mimic the different body parts of an ant. To be precise they do not have the same structure but have similar functions which help us achieve the biological capabilities of the ant and
its abilities. In this section we will talk mostly about the hardware parts used in realizing our swarm robot.
<ul class="centered">
<li>Eyes - HC SR04 Ultrasonic Sensor</li>
<li>Antennae - Infrared Receiver Sensor - TSOP38238</li>
<li>Body 3D printed parts using <a href="https://www.lulzbot.com/store/printers/lulzbot-mini">LulzBot Mini</a> and <a href="https://www.lulzbot.com/store/filament/inova-1800">INOVA-1800 Filament</a></li>
<li>Pheromones – IR333 5mm 940nm IR LED</li>
<li>Brain – ATMEGA328P Microprocessor and Broadcom BCM2837B0 SoC</li>
<li>Communication - Omnidirectional IR Communication Module : Self Fabricated</li>
</ul>
</p>
</div>
<div class="col-lg-12 centered">
<h3>Omnidirectional IR Sensor (First of its kind)</h3>
<h4>Modified IR Library for Arduino can be found at this <a href="https://github.com/anilharish/Arduino/tree/master/Multiple_IRremote">GitHub</a> location</h4>
<p>
Our major obstacle in this project was to realise an omnidirectional sensor. This was necessary with utmost importance since there is no sensor available in the market which can sense signals coming from 360 degrees and also make
out the difference between those signals at the same time. Nevertheless, modulation and demodulation for transmitting and receiving the signals was another challenge in order to eliminate the interferences from the environment and
other IR signals generated by the sun, light emission sources, reflections etc.
</p>
</div>
<div class="row mt centered">
<div class="col-lg-8 col-lg-offset-4 centered">
<img class="img-responsive" src="img/portfolio/project02/proj2_fig1.jpg" alt="">
</div>
</div>
<div class="col-lg-12 centered">
<p>Figure 1. Initial 6 TX/RX realization</p>
<p>
The IR-equipment has also the problem of interferences. They appear, like in RF case, when several neighbour robots transmit simultaneously. The problem of IR-interferences can be avoided by restricting an opening angle of a pair
IR-receiver-transmitter. For four communication channels, the opening angle of each channel is 90°. In this case we have 2- and 3-robots IR-interferences even in the "closest" radius (50 mm). Reducing the opening angle to 60° or
to 40° allows avoiding IR-interferences in the "close" and "near" radius (100 mm) Since many microcontrollers have 8-channel ADC (one ADC input is used by the distance sensor), we choose 4-channel directional communication.
</p>
</div>
<div class="row mt centered">
<div class="col-lg-8 col-lg-offset-3 centered">
<img class="img-responsive" src="img/portfolio/project02/proj2_fig2.jpg" alt="">
</div>
</div>
<div class="col-lg-12 centered">
<p>Figure 2. Our fabrication of the Omidirectional IR Transceiver Module</p>
<h3>Total Time Required for Sharing Information for All Swarm Robots</h3>
<p>
Firstly, we are interested in the number of communication contacts n_c happens during the motion. This value is equal to the average number of robots in the area S_c, n_c=S_c D_sw, where D_sw is the swarm density. We assume that
the collision avoiding radius and the robot's rotation radius are small so that we can neglect the area of fractures.
</p>
</div>
<div class="row mt centered">
<div class="col-lg-8 col-lg-offset-4 centered">
<img class="img-responsive" src="img/portfolio/project02/proj2_fig3.jpg" alt="">
</div>
</div>
<div class="col-lg-12 centered">
<p>Figure 3. (Left) Information transmission model (Right) Values Total time required for transmission total in seconds for different values of N (number of robots)</p>
<p>In this case S_c=2 R_c \upsilon t. D_sw can be calculated as the number of robots N in swarm divided by the area available for the whole swarm S_sw:</p>
</div>
<div class="row mt centered">
<div class="col-lg-8 col-lg-offset-4 centered">
<p><img class="img-responsive" src="img/portfolio/project02/proj2_dat1.jpg" alt=""></p>
</div>
</div>
<div class="col-lg-12 centered">
<p>
From the above equation, we can calculate the time till the first infection t_first and the total time t_total= n~t_first+Np_t for infecting the whole swarm as, Where:<br />
nc = Number of Communication Contacts<br />
Dsw = Swarm Density<br />
Rc = Communication radius<br />
v = Robot motion velocity<br />
T = Time for motor ON<br />
N= Number of robots<br />
</p>
</div>
<div class="row mt centered">
<div class="col-lg-8 col-lg-offset-4 centered">
<p><img class="img-responsive" src="img/portfolio/project02/proj2_dat2.jpg" alt=""></p>
</div>
</div>
<div class="col-lg-12 centered">
<h3>Autonomous Navigation and Mapping</h3>
</div>
<div class="row mt centered">
<div class="col-lg-8 col-lg-offset-4 centered">
<p><img class="img-responsive" src="img/portfolio/project02/proj2_fig4.jpg" alt=""></p>
<p><img class="img-responsive" src="img/portfolio/project02/proj2_fig5.jpg" alt=""></p>
</div>
</div>
<div class="col-lg-12 centered">
<p>Figure 4 and 5. Ultrasonic Range Finder to gather distance particles for SLAM</p>
<h3>Message Routing</h3>
<p>
Each swarm robot maintains connections to several "neighbours" in the network, and these neighbouring connections are used for message passing. Suppose that swarm robot X receives a message from Optimus to Bumblebee through robot Y,
one of its neighbours. X may have no information clues about where Bumblebee is in the network. However, upon receiving this message, robot X learns something about Optimus: it learns that messages from Optimus come through robot Y.
In the future, if node X ever receives a message to Optimus, it can send it back through Robot Y using this clue.
</p>
</div>
<div class="row mt centered">
<div class="col-lg-8 col-lg-offset-2 centered">
<p><img class="img-responsive" src="img/portfolio/project02/proj2_fig6.jpg" alt=""></p>
<p>Figure 6. Routing from Optimus to Bumblebee</p>
</div>
</div>
<div class="col-lg-12 centered">
<p>
Regardless of what X learns about Optimus, it still has no information about Bumblebee. The best strategy here, using ants as inspiration, is to "send ants in all directions", or to send a copy of the message on to each one of X's
neighbours (what we will call "broadcasting" the message). One of the neighbours may have more information about which direction Bumblebee is in. If none of the robots in the network have clues about Bumblebee's location, they will
all broadcast the message to their neighbours. If Bumblebee exists in the network, this technique will eventually find him.
</p>
<p>
Notice that, throughout the search for Bumblebee, the message has been leaving a trail of clues about Optimus. If the message reaches Bumblebee, and then Bumblebee sends back a response, the response can follow these clues on a
rather direct path back to Optimus. As shown in figure 18, the response is routed to Optimus, it leaves a trail of clues that can be used to route future messages from Optimus back to Bumblebee. Other robots can make use of these
clues too. For example, if robot X sends a message to Bumblebee, the message will travel on a rather direct route using the existing clues.
</p>
</div>
<div class="row mt centered">
<div class="col-lg-8 col-lg-offset-2 centered">
<p><img class="img-responsive" src="img/portfolio/project02/proj2_fig7.jpg" alt=""></p>
<p>Figure 7. Routing from Bumblebee to Optimus</p>
</div>
</div>
<div class="col-lg-12 centered">
<h3>Formation Control - PD controller for DC Motor</h3>
<p>For this project we use the following equations:</p>
<ul class="centered">
<li>Set point – measured distance = error</li>
<li>Error x Kp = Output for Maneuver</li>
<li>Output for maneuver = (Distance Set point – Measured Distance) x Kp</li>
</ul>
</div>
<div class="row mt centered">
<div class="col-lg-8 col-lg-offset-2 centered">
<p><img class="img-responsive" src="img/portfolio/project02/proj2_fig8.jpg" alt=""></p>
<p>Figure 8. Block Diagram of PD Controller Real-Time Velocity calibration</p>
</div>
</div>
</div>
</div>
<!-- /container -->
<!-- /Additional Projects Section -->
<div class="container pt">
<div class="row mt">
<div class="col-lg-6 col-lg-offset-3 centered">
<h4>EXPLORE OTHER PROJECTS</h4>
<hr>
</div>
</div>
<div class="row mt centered">
<div class="col-lg-4">
<a href="project04.html"><img class="img-responsive" src="img/portfolio/port04.gif" alt="" /></a>
<p>Revolutionizing Farming Using Swarm Robots</p>
</div>
<div class="col-lg-4">
<a href="project05.html"><img class="img-responsive" src="img/portfolio/port05.gif" alt="" /></a>
<p>Autonomous Swarm Robots for Delivery System</p>
</div>
<div class="col-lg-4">
<a href="project03.html"><img class="img-responsive" src="img/portfolio/port03.gif" alt="" /></a>
<p>Rapidly Exploring Random Tree Mapping with Multimap Merge</p>
</div>
</div>
</div>
<!-- +++++ Footer Section +++++ -->
<div id="footer">
<div class="container">
<div class="row">
<div class="col-lg-4">
<h4>My Recharging Station</h4>
<p>
1400 W Elizabeth St, Apt 208,<br />Fort Collins, CO - 80521<br /> United States of America.
</p>
</div>
<!-- /col-lg-4 -->
<div class="col-lg-4">
<h4>My Online Presence</h4>
<p>
<a href="https://linkedin.com/in/anilharish/">LinkedIn</a><br />
<a href="https://github.com/anilharish">GitHub</a><br />
<a href="https://twitter.com/anilh92">Twitter</a><br />
<a href="https://www.facebook.com/MY.TIME.IS.N0W">Facebook</a>
</p>
</div>
<!-- /col-lg-4 -->
<div class="col-lg-4">
<h4>More About Me</h4>
<p>
<a>Mobile: +1 (970) 825-2230</a><br />
<a>Email: anil.harish@outlook.com</a>
</p>
</div>
<!-- /col-lg-4 -->
</div>
</div>
</div>
<div id="copyrights">
<div class="container">
<p>
© Copyrights <strong>Anil Harish</strong>. All Rights Reserved
</p>
<div class="credits">
Hosted on GitHub Pages with <a href="http://jekyllrb.com">Jekyll</a>
</div>
</div>
</div>
<!-- / copyrights -->
<!-- JavaScript Libraries -->
<script src="lib/jquery/jquery.min.js"></script>
<script src="lib/bootstrap/js/bootstrap.min.js"></script>
<script src="lib/php-mail-form/validate.js"></script>
<script src="lib/easing/easing.min.js"></script>
<!-- Template Main Javascript File -->
<script src="js/main.js"></script>
</body>
</html>