-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
806 lines (774 loc) · 46.4 KB
/
index.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
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>ENPH253 - PL2 W7K</title>
<!-- Bootstrap core CSS -->
<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom fonts for this template -->
<link href="vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css">
<link href='https://fonts.googleapis.com/css?family=Kaushan+Script' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Roboto+Slab:400,100,300,700' rel='stylesheet' type='text/css'>
<!-- Custom styles for this template -->
<link href="css/agency.css" rel="stylesheet">
</head>
<body id="page-top">
<!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-dark fixed-top" id="mainNav">
<div class="container">
<a class="navbar-brand js-scroll-trigger" href="#page-top" style="color:#038a23">PL2 W7K</a>
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
Menu
<i class="fa fa-bars"></i>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav text-uppercase ml-auto">
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#team">Team</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#services">Competition</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#portfolio">Modules</a>
</li>
<!-- <li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#about">About</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#contact">Contact</a>
</li> -->
</ul>
</div>
</div>
</nav>
<!-- Header -->
<header class="masthead">
<div class="container">
<div class="intro-text">
<div class="intro-lead-in" style="color:#ffffff; font-size: 2em">ENPH253 | Team 0</div>
<div class="intro-heading text-uppercase" style="margin-bottom: 2%">PL2 W7K</div>
<p class="intro-lead-in" style="margin-top: 0%; font-size: 1em">An Autonomous Ewok Rescue Unit</p>
<a class="btn btn-primary btn-xl text-uppercase js-scroll-trigger" href="#team" style="background-color: #038a23; border-color: #038a23">Meet the team</a>
</div>
</div>
</header>
<!-- Team -->
<section class="bg-light" id="team">
<div class="container">
<div class="row">
<div class="col-lg-12 text-center">
<h2 class="section-heading text-uppercase">The Team</h2>
<h3 class="section-subheading text-muted"></h3>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="team-member">
<img class="mx-auto rounded-circle" src="img/team/isaiah.png" alt="">
<h4>Isaiah Adejumo</h4>
<p class="text-muted">Mechanical Lead</p>
<ul class="list-inline social-buttons">
<li class="list-inline-item">
<a href="#">
<i class="fa fa-envelope"></i>
</a>
</li>
<!-- <li class="list-inline-item">
<a href="#">
<i class="fa fa-facebook"></i>
</a>
</li> -->
<li class="list-inline-item">
<a href="https://ca.linkedin.com/in/isaiah-adejumo-8ab84816a">
<i class="fa fa-linkedin"></i>
</a>
</li>
</ul>
</div>
</div>
<div class="col-sm-6">
<div class="team-member">
<img class="mx-auto rounded-circle" src="img/team/Bichel_AirForceOne.jpg" alt="">
<h4>Joseph Bichel</h4>
<p class="text-muted">Electrical Lead</p>
<ul class="list-inline social-buttons">
<li class="list-inline-item">
<a target="_top" href="mailto:[email protected]?subject=PL2W7K">
<i class="fa fa-envelope"></i>
</a>
</li>
<!-- <li class="list-inline-item">
<a href="#">
<i class="fa fa-facebook"></i>
</a>
</li> -->
<li class="list-inline-item">
<a href="https://www.linkedin.com/in/joseph-bichel-53b72514b/">
<i class="fa fa-linkedin"></i>
</a>
</li>
</ul>
</div>
</div>
<div class="col-sm-6">
<div class="team-member">
<img class="mx-auto rounded-circle" src="img/team/yeeezzat.jpg" alt="">
<h4>Alex Ezzat</h4>
<p class="text-muted">Mechanical Lead</p>
<ul class="list-inline social-buttons">
<li class="list-inline-item">
<a href="#">
<i class="fa fa-envelope"></i>
</a>
</li>
<!-- <li class="list-inline-item">
<a href="#">
<i class="fa fa-facebook"></i>
</a>
</li> -->
<li class="list-inline-item">
<a href="https://www.linkedin.com/in/alexander-ezzat-386320125/">
<i class="fa fa-linkedin"></i>
</a>
</li>
</ul>
</div>
</div>
<div class="col-sm-6">
<div class="team-member">
<img class="mx-auto rounded-circle" src="img/team/ijey.jpg" alt="">
<h4>Ilakkiyan Jeyakumar</h4>
<p class="text-muted">Software Lead</p>
<ul class="list-inline social-buttons">
<li class="list-inline-item">
<a target="_top" href="mailto:[email protected]?subject=PL2W7K">
<i class="fa fa-envelope"></i>
</a>
</li>
<!-- <li class="list-inline-item">
<a href="#">
<i class="fa fa-facebook"></i>
</a>
</li> -->
<li class="list-inline-item">
<a href="https://ca.linkedin.com/in/ilakkiyan-jeyakumar-ba9968115">
<i class="fa fa-linkedin"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-8 mx-auto text-center">
<p class="large text-muted">PL2 W7K was a labour of passionate love by four second-year Engineering Physics <s>bozos</s> students at the University of British Columbia.
<hr><br>Depending on your privacy permissions on Chrome and Windows, there may be some <i>uptown funk</i> with the email links. Here are our emails, laid out in plaintext if you want to reach out to us! (nowhere near as cool as the buttons): <br>
<br>[email protected]</p>
</div>
</div>
</div>
</section>
<!-- Services -->
<section id="services">
<div class="container">
<div class="row">
<div class="col-lg-12 text-center">
<h2 class="section-heading text-uppercase">The Competition</h2>
<h3 class="section-subheading text-muted">Save ewoks. Bridge gaps. Filter and detect varying IR signals. Zoom down ziplines.<br>Look cool.</h3>
<!-- <p>Below is a picture of the competition surface layout.</p> -->
<img src="img/robot/comp_surface.png">
<p style="font-weight: bold">PL2 W7K was tasked with a perilious journey. </p>
<p>
<ul>
<li>Navigate black tape using custom-coded PID control</li>
<li>Build a mechanism to autonomously detect the ewoks scattered at different locations</li>
<li>Filter and read different IR frequency signals</li>
<li>Identify and cross two 6" gaps</li>
<li>Navigate across a narrow region with no tape</li>
<li>Build a mechanism to return the ewoks to the start using a zipline</li>
<li>Complete a run within two minutes</li>
</ul>
<br>Despite several challenges, the competition lent itself open to a myriad of different approaches. Teams could opt to skip the IR beacon entirely and go to Chewey, others opted to complete the whole course, and others still decided to complete the course partially, optimizing for speed and reliability instead.
<br>The official competition document can be found
<a target="_blank" href="https://docs.google.com/document/d/18rYIVlMZeD559deR7-5YjfQzZz4BeeS6pr8FI5Qlm8Q/">here!</a>
</p>
</div>
</div>
<!-- <div class="row text-center" style="width:800px; margin:0 auto;"> -->
<!-- <div class="col-md-10">
<p style="text-align: center;">Below is a picture of the competition surface layout. asdasdsadsadsad</p>
</div> -->
<!-- <div class="col-md-4">
<span class="fa-stack fa-4x">
<i class="fa fa-circle fa-stack-2x text-primary"></i>
<i class="fa fa-shopping-cart fa-stack-1x fa-inverse"></i>
</span>
<h4 class="service-heading">E-Commerce</h4>
<p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima maxime quam architecto quo inventore harum ex magni, dicta impedit.</p>
</div>
<div class="col-md-4">
<span class="fa-stack fa-4x">
<i class="fa fa-circle fa-stack-2x text-primary"></i>
<i class="fa fa-laptop fa-stack-1x fa-inverse"></i>
</span>
<h4 class="service-heading">Responsive Design</h4>
<p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima maxime quam architecto quo inventore harum ex magni, dicta impedit.</p>
</div>
<div class="col-md-4">
<span class="fa-stack fa-4x">
<i class="fa fa-circle fa-stack-2x text-primary"></i>
<i class="fa fa-lock fa-stack-1x fa-inverse"></i>
</span>
<h4 class="service-heading">Web Security</h4>
<p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima maxime quam architecto quo inventore harum ex magni, dicta impedit.</p>
</div>
</div> -->
</div>
</section>
<!-- Portfolio Grid -->
<section class="bg-light" id="portfolio">
<div class="container">
<div class="row">
<div class="col-lg-12 text-center">
<h2 class="section-heading text-uppercase">Modules</h2>
<h3 class="section-subheading text-muted">Peek under the hood</h3>
</div>
</div>
<div class="row">
<div class="col-md-4 col-sm-6 portfolio-item">
<a class="portfolio-link" data-toggle="modal" href="#portfolioModal1">
<div class="portfolio-hover">
<div class="portfolio-hover-content">
<i class="fa fa-plus fa-3x"></i>
</div>
</div>
<img class="img-fluid" src="img/modules/strategy.jpg" alt="">
</a>
<div class="portfolio-caption">
<h4>Strategy and Overview</h4>
<p class="text-muted">Our approach</p>
</div>
</div>
<div class="col-md-4 col-sm-6 portfolio-item">
<a class="portfolio-link" data-toggle="modal" href="#portfolioModal2">
<div class="portfolio-hover">
<div class="portfolio-hover-content">
<i class="fa fa-plus fa-3x"></i>
</div>
</div>
<img class="img-fluid" src="img/modules/cad.PNG" alt="">
</a>
<div class="portfolio-caption">
<h4>CAD</h4>
<p class="text-muted">Mechanical Design</p>
</div>
</div>
<div class="col-md-4 col-sm-6 portfolio-item">
<a class="portfolio-link" data-toggle="modal" href="#portfolioModal3">
<div class="portfolio-hover">
<div class="portfolio-hover-content">
<i class="fa fa-plus fa-3x"></i>
</div>
</div>
<img class="img-fluid" src="img/modules/elec.JPG" alt="">
</a>
<div class="portfolio-caption">
<h4>Circuits</h4>
<p class="text-muted">Electrical Design</p>
</div>
</div>
<div class="col-md-4 col-sm-6 portfolio-item">
<a class="portfolio-link" data-toggle="modal" href="#portfolioModal4">
<div class="portfolio-hover">
<div class="portfolio-hover-content">
<i class="fa fa-plus fa-3x"></i>
</div>
</div>
<img class="img-fluid" src="img/modules/software_menu.JPG" alt="">
</a>
<div class="portfolio-caption">
<h4>Control Code</h4>
<p class="text-muted">STM32 & C++</p>
</div>
</div>
<div class="col-md-4 col-sm-6 portfolio-item">
<a class="portfolio-link" data-toggle="modal" href="#portfolioModal5">
<div class="portfolio-hover">
<div class="portfolio-hover-content">
<i class="fa fa-plus fa-3x"></i>
</div>
</div>
<img class="img-fluid" src="img/portfolio/05-thumbnail.jpg" alt="">
</a>
<div class="portfolio-caption">
<h4>Project Management</h4>
<p class="text-muted">Delegation and integration</p>
</div>
</div>
<div class="col-md-4 col-sm-6 portfolio-item">
<a class="portfolio-link" data-toggle="modal" href="#portfolioModal6">
<div class="portfolio-hover">
<div class="portfolio-hover-content">
<i class="fa fa-plus fa-3x"></i>
</div>
</div>
<img class="img-fluid" src="img/modules/post-comp.jpg" alt="">
</a>
<div class="portfolio-caption">
<h4>Performance Analysis and Post-Mortem</h4>
<p class="text-muted">Lessons learned</p>
</div>
</div>
</div>
</div>
</section>
<!-- About -->
<!-- <section id="about">
<div class="container">
<div class="row">
<div class="col-lg-12 text-center">
<h2 class="section-heading text-uppercase">About</h2>
<h3 class="section-subheading text-muted">Lorem ipsum dolor sit amet consectetur.</h3>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<ul class="timeline">
<li>
<div class="timeline-image">
<img class="rounded-circle img-fluid" src="img/about/1.jpg" alt="">
</div>
<div class="timeline-panel">
<div class="timeline-heading">
<h4>2009-2011</h4>
<h4 class="subheading">Our Humble Beginnings</h4>
</div>
<div class="timeline-body">
<p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!</p>
</div>
</div>
</li>
<li class="timeline-inverted">
<div class="timeline-image">
<img class="rounded-circle img-fluid" src="img/about/2.jpg" alt="">
</div>
<div class="timeline-panel">
<div class="timeline-heading">
<h4>March 2011</h4>
<h4 class="subheading">An Agency is Born</h4>
</div>
<div class="timeline-body">
<p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!</p>
</div>
</div>
</li>
<li>
<div class="timeline-image">
<img class="rounded-circle img-fluid" src="img/about/3.jpg" alt="">
</div>
<div class="timeline-panel">
<div class="timeline-heading">
<h4>December 2012</h4>
<h4 class="subheading">Transition to Full Service</h4>
</div>
<div class="timeline-body">
<p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!</p>
</div>
</div>
</li>
<li class="timeline-inverted">
<div class="timeline-image">
<img class="rounded-circle img-fluid" src="img/about/4.jpg" alt="">
</div>
<div class="timeline-panel">
<div class="timeline-heading">
<h4>July 2014</h4>
<h4 class="subheading">Phase Two Expansion</h4>
</div>
<div class="timeline-body">
<p class="text-muted">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!</p>
</div>
</div>
</li>
<li class="timeline-inverted">
<div class="timeline-image">
<h4>Be Part
<br>Of Our
<br>Story!</h4>
</div>
</li>
</ul>
</div>
</div>
</div>
</section> -->
<!-- Clients -->
<!-- <section class="py-5">
<div class="container">
<div class="row">
<div class="col-md-3 col-sm-6">
<a href="#">
<img class="img-fluid d-block mx-auto" src="img/logos/envato.jpg" alt="">
</a>
</div>
<div class="col-md-3 col-sm-6">
<a href="#">
<img class="img-fluid d-block mx-auto" src="img/logos/designmodo.jpg" alt="">
</a>
</div>
<div class="col-md-3 col-sm-6">
<a href="#">
<img class="img-fluid d-block mx-auto" src="img/logos/themeforest.jpg" alt="">
</a>
</div>
<div class="col-md-3 col-sm-6">
<a href="#">
<img class="img-fluid d-block mx-auto" src="img/logos/creative-market.jpg" alt="">
</a>
</div>
</div>
</div>
</section> -->
<!-- Contact -->
<!-- <section id="contact">
<div class="container">
<div class="row">
<div class="col-lg-12 text-center">
<h2 class="section-heading text-uppercase">Contact Us</h2>
<h3 class="section-subheading text-muted">Lorem ipsum dolor sit amet consectetur.</h3>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<form id="contactForm" name="sentMessage" novalidate="novalidate">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<input class="form-control" id="name" type="text" placeholder="Your Name *" required="required" data-validation-required-message="Please enter your name.">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input class="form-control" id="email" type="email" placeholder="Your Email *" required="required" data-validation-required-message="Please enter your email address.">
<p class="help-block text-danger"></p>
</div>
<div class="form-group">
<input class="form-control" id="phone" type="tel" placeholder="Your Phone *" required="required" data-validation-required-message="Please enter your phone number.">
<p class="help-block text-danger"></p>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<textarea class="form-control" id="message" placeholder="Your Message *" required="required" data-validation-required-message="Please enter a message."></textarea>
<p class="help-block text-danger"></p>
</div>
</div>
<div class="clearfix"></div>
<div class="col-lg-12 text-center">
<div id="success"></div>
<button id="sendMessageButton" class="btn btn-primary btn-xl text-uppercase" type="submit">Send Message</button>
</div>
</div>
</form>
</div>
</div>
</div>
</section> -->
<!-- Footer -->
<footer>
<div class="container">
<div class="row">
<div class="col-md-4">
<!-- <span class="copyright">Copyright © Your Website 2018</span> -->
</div>
<div class="col-md-4">
<!-- <ul class="list-inline social-buttons">
<li class="list-inline-item">
<a href="#">
<i class="fa fa-envelope"></i>
</a>
</li>
<li class="list-inline-item">
<a href="#">
<i class="fa fa-facebook"></i>
</a>
</li>
<li class="list-inline-item">
<a href="#">
<i class="fa fa-linkedin"></i>
</a>
</li>
</ul> -->
</div>
<div class="col-md-4">
<ul class="list-inline quicklinks">
<li class="list-inline-item">
<a href="#">Privacy Policy</a>
</li>
<li class="list-inline-item">
<a href="#">Terms of Use</a>
</li>
</ul>
</div>
</div>
</div>
</footer>
<!-- Portfolio Modals -->
<!-- Modal 1 -->
<div class="portfolio-modal modal fade" id="portfolioModal1" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="close-modal" data-dismiss="modal">
<div class="lr">
<div class="rl"></div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-8 mx-auto">
<div class="modal-body">
<!-- Project Details Go Here -->
<h2 class="text-uppercase">Strategy and Overview</h2>
<p class="item-intro text-muted">Our approach to tackling the course.</p>
<img class="img-fluid d-block mx-auto" src="img/portfolio/FullPic.JPG" alt="">
<p>Our approach to completing the course was to have a separate mechanism for each obstacle. We designed a forklift-style mechanism to lay a bridge over the gaps. The infrared-triggered spinning platform was avoided using an active-filtering IR detection circuit and a <a href="https://projectlab.engphys.ubc.ca/wp-content/phys253/files/datasheets-elec/QSD124_IR_phototransitor.pdf" style="color:#038a23">QSD122 phototransistor</a>.
The bridge mechanism allowed us to avoid requiring the first zipline, while the second was used to transport our ewok-filled basket back to the "safe zone". The pathless bridge would be traversed using an edge detect-and-follow algorithm.
PL2 was designed to be <b>compact, fast, and nimble.</b> The Ewok-grabbing claws employed an optical detection mechanism using an IR emitter and phototransistor to create a beam that would be interrupted when an ewok was present. The fast detection allowed the robot to grab the ewoks without ever having to stop moving.</p>
<br><p>Ultimately, as time became constrained, we shifted our focus to having PL2 reliably pick up three ewoks and then perform a turn-around deploy maneuveur. This allowed us to perfect existing mechanisms and work toward speed and reliability, which paid dividends on competition day.</p>
<button class="btn btn-primary" data-dismiss="modal" style="background-color: #038a23; border-color: #038a23" type="button">
<i class="fa fa-times"></i>
Close</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Modal 2 -->
<div class="portfolio-modal modal fade" id="portfolioModal2" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="close-modal" data-dismiss="modal">
<div class="lr">
<div class="rl"></div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-8 mx-auto">
<div class="modal-body">
<!-- Project Details Go Here -->
<h2 class="text-uppercase">CAD Designs</h2>
<p class="item-intro text-muted">An overview of our CAD and mechanical design decisions</p>
<img class="img-fluid d-block mx-auto" src="img/portfolio/mech/FullView.PNG" alt="">
<p>We built our mechanical components using <a href="https://www.onshape.com/" style="color:#038a23">OnShape</a.> and <a href="https://www.solidworks.com/" style="color:#038a23">SolidWorks.</a> The majority of our components, such as our chassis
were lasercut, while a few other parts were water jet, such as the claws. We focused our mechanical design on keeping PL2 compact, modular and light. This allowed us to execute certain maneuveurs with more precision and enabled rapid prototyping (e.g swapping out different claw prototypes was a breeze). </p>
<br><p><b>Chassis</b></p>
<img class="img-fluid d-block mx-auto" src="img/portfolio/mech/ChassisView.PNG">
<p>Our chassis was lasercut with slots to allow for quick and easy assembly without the need for glue or screws. Compartments for electrical components, batteries, servos and the drivetrain (which is why there is an elevated section in the interior) were all built in.</p>
<br><p><b>Claw</b></p>
<img class="img-fluid d-block mx-auto" src="img/portfolio/mech/ArmView.PNG">
<p>Our claw consisted of two components - <i>the clamp and arm</i>. The clamp and arm were both powered by servos and made out of light aluminum sheet metal. Using throughholes to mount an IR emitter and phototransistor on the clamp, we created an optical detection mechanism.</p>
<br><p><b>Basket deployment</b></p>
<img class="img-fluid d-block mx-auto" src="img/portfolio/mech/BasketView.PNG">
<img class="img-fluid d-block mx-auto" src="img/portfolio/mech/BasketRaisingMechanism.PNG">
<p>Our basket was a simple enough mechanism, consisting of wide slats on the sides to allow the arms to reach in and drop ewoks, and a curved pole with washers to latch onto the zipline.</p>
<p>The basket deployment mechanism was built by modifying a fixed limit servo to become a continuous servo which pulled a string-and-pulley, lifting the platform up the guiderail. We chained two limit switches together to create an AND gate for use in the control logic.
Based on the button states, we could determine how long to lift the platform, and when to begin lowering it once it had the zipline.
</p>
<br><p style="margin-bottom: 0%;"><b>Drivetrain</b></p>
<p style="font-size:0.1em;">MAXIMUM OVERDRIVE</p>
<img class="img-fluid d-block mx-auto" src="img/portfolio/mech/Drivetrain&BottomView.PNG">
<img class="img-fluid d-block mx-auto" src="img/portfolio//mech/DrivetrainIsolatedView.PNG">
<p>Our drivetrain was kept as a modular component that could be quickly popped in and out of the main chassis. This allowed us to finick with different gear ratios and debug issues with the motors separately.</p>
<br><p>The additional gear and orange boxes you may note above were for rotary encoders to keep track of distances and allow for finer movement control. We ultimately abandoned rotary encoders as we found we were able to get sufficient precision using our QRD sensors and timed movements.</p>
<button class="btn btn-primary" data-dismiss="modal" type="button" style="background-color: #038a23; border-color: #038a23">
<i class="fa fa-times"></i>
Close</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Modal 3 -->
<div class="portfolio-modal modal fade" id="portfolioModal3" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="close-modal" data-dismiss="modal">
<div class="lr">
<div class="rl"></div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-8 mx-auto">
<div class="modal-body">
<!-- Project Details Go Here -->
<h2 class="text-uppercase">Circuitry, Wiring and Electric Bugaloo</h2>
<p class="item-intro text-muted">An overview of the key circuits used to drive motor logic and filter infrared frequencies, and wire management.</p>
<img class="img-fluid d-block mx-auto" src="img/portfolio/elec/Circuits.JPG" alt="">
<p><b>Motor Drivers</b></p>
<p>PL2 used H-bridges to allow motors to be driven at high voltages and currents while being controlled through low-voltage signals from the Bluepill mirco-controller.
Our h-bridges consist of electrical switches (N-Type MOSFETS) controlled by a high-side gate driver IC chip which recieved PWM outputs from the Bluepill.
Opposite pairs of MOSFETs were activated so current could flow through the motor in two directions allowing both forward and backwards travel.
Each H-bridge was decoupled through capacitor along input and output voltage lines so that noise propagation was kept to a minimum to not influence other componants in the electrical system.</p>
<img class="img-fluid d-block mx-auto" src="img/portfolio/elec/IRBeacon-1k.jpg">
<img class="img-fluid d-block mx-auto" src="img/portfolio//elec/IRBeacon-10k.jpg">
<br><p><b>IR Detection Circuits</b></p>
<p>One of the obstacles of the course was decoding an infrared signal beacon. This beacon was placed just before the archway, and its signal would switch randomly between flashing at a frequency of 1kHz and 10kHz. If the robot passed through the archway when the signal was at 1kHz a platform beyond the archway would start rotating, breaking the tape the robot used to navigate the course. PL2 had two IR detection circuits that were used to differentiate the 1kHz and 10kHz signals. Both circuits were identical, with the exception of the filter explained below.
This analog circuit was a series of signal manipulators to decode the flashing of the beacon into a signal understood (i.e a digital high or low) by the Bluepill mirco-controller. The components of the circuit are as follows:
<ul>
<li><b>DC-Block</b>: The DC-Block was used to eliminate the steady 60Hz infra-red emitted from standard household lights (i.e ambient lighting) as a part of the competition enviroment.</li>
<li><b>Amplification</b>: At a distance that was relevant to robot manuverability the signal would come across quite weak (in the milli-volts range) the amplificating was used to strengthen the incoming signal</li>
<li><b>Filter</b>: Since PL2 was required to differentiate 1kHz and 10kHz, the respective circuits were built to ignore the opposite frequency.</li>
<li><b>Analog to digital conversion and final amplification</b>: The final conversion is required to turn the detection of the appropriate signal into a digital high that the mirco-controller may interpret. The amplification is required in the event the non-fluctuating voltage is not large enough for the mirco-controller to read a digital high.</p></li>
</ul>
<br><p><b>Voltage inverter</b></p>
<p>A simple voltage inverter was built to supply -VCC to the OpAmps.</p>
<br><p><b>Encoders</b></p>
<p>Originally it was planned to include encoders in the development of PL2 to aid in the navigation of the course. In retrospect we should have started the development of the Encoder interpretation much sooner to ensure reliable usage. The primary difficulty was recieving a steady, noise-free pulse signal from the encoders. As an encoder rotates two switches are turned on and off. The mirco-controller may interpret distance through the number of times the switches are turned on, and direction through the high/low phase shift between the two switches. Due to mechanical inaccuracies the signal is very noise and, initially, the mirco-controller would read high when it should not have, thus, misinterpretation the signal.
To fix this we built a RC filter circuit and Schmitt-trigger to filter out high frequency noise, and to employ hysterisis to ensure a clean pulse signal could be read by the mirco-controller. As mentioned before, this development occured too late, for we had already started to used hardcoded motor-on times for precise movments.</p>
<img class="img-fluid d-block mx-auto" src="img/portfolio/elec/ElecCompartmentWithoutCircuits.JPG">
<br><p><b>Direct IR Sampling</b></p>
<p>Due to the extremely fast clock cycle of the Bluepill mirco-controller (72MHz) it was also possible to directly interpret signals at a frequency in the kHz range as required for the competition. The circuit was simply an amplifier and comparator to ensure the signal was properly read, and the sine wave was converted into a pulse. This development also occurred too late in the 6 week timeline and while it did work it was a back-up plan in the event the analog circuits failed for some unknown reason.</p>
<button class="btn btn-primary" data-dismiss="modal" style="background-color: #038a23; border-color: #038a23" type="button">
<i class="fa fa-times"></i>
Close</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Modal 4 -->
<div class="portfolio-modal modal fade" id="portfolioModal4" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="close-modal" data-dismiss="modal">
<div class="lr">
<div class="rl"></div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-8 mx-auto">
<div class="modal-body">
<!-- Project Details Go Here -->
<h2 class="text-uppercase">Control Code</h2>
<p class="item-intro text-muted">Written in C++ and powered by an STM32 Blue Pill</p>
<img class="img-fluid d-block mx-auto" src="img/portfolio//software//blue-pill.jpg" alt="">
<p><b>STM32 Blue Pill</b></p>
<br><p>The compute power that ran PL2's brains was the <a href="https://wiki.stm32duino.com/index.php?title=Blue_Pill">STM32 Blue Pill microcontroller.</a> With several analog, PWM and digital pins, and a fast clock cycle, this board allowed us to integrate all the electrical components that we needed to without running out of pins.</p>
<br><p><b>State Machine and Object Abstraction</b></p>
<p>One of the key challenges to making the robot was creating a sensible and easy to follow logic flow. To do so, we created state diagrams and a virtual state machine that allowed us to track "where and what" the robot was doing at all times. This provided certainty to the motions the robot was doing, and allowed us to couple different mechanisms (such as basket raising, bridge lowering, claw mechanisms, etc.) to the motor control, making it easy to express what actions we wanted the robot to take. For example, in the control states, we may delegate states 10-19 as "a bridge dropping sequence". In each state, a different component of the maneuver would be executed (find the edge, stop the motors, back up, lower the bridge, wait, etc.)
Using the state machine in conjunction with abstracting different modules on the robot to their own particular class allowed for the code to be kept clean, modular and easy to debug.
</p>
<p></p>
<br><p><b>Menu System</b></p>
<p>Additionally, we also developed a menu system using the onboard Blue Pill memory, EEPROM, to allow us to quickly alter values and make rapid changes without having to resort to uploading code after every proposed change. This allowed us to toy with several key variables for different maneuvers (such as PID constants for tap efollowing, timing vlaues for different maneuvers, and speeds) in a way conducive to rapid testing.</p>
<button class="btn btn-primary" data-dismiss="modal" style="background-color: #038a23; border-color: #038a23" type="button">
<i class="fa fa-times"></i>
Close</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Modal 5 -->
<div class="portfolio-modal modal fade" id="portfolioModal5" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="close-modal" data-dismiss="modal">
<div class="lr">
<div class="rl"></div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-8 mx-auto">
<div class="modal-body">
<!-- Project Details Go Here -->
<h2 class="text-uppercase">Project Management</h2>
<p class="item-intro text-muted">Delegation of tasks, milestones and adhering to a timeline</p>.</p>
<img class="img-fluid d-block mx-auto" src="img/portfolio/05-full.jpg" alt="">
<p style="margin-bottom: 0%"><b>Version Control</b></p>
<p>As you may be able to tell, we relied on Git to manage our documentation and code. This allowed us to work concurrently on several different components of the robot while ensuring everyone was still being kept up to date with the latest devleopments.</p>
<br><p style="margin-bottom: 0%"><b>Task Management</b></p>
<p>Building from scratch is quite an undertaking, with several tasks that can be tackled concurrently. To allow us to delegate tasks efficiently and formulate realistic scheduling estimates, we used <a href="http://trello.com/">Trello</a>. This forced us to express, in tangible terms, the work that needed to be done and then allocate it effectively among our members. It also allowed us to assess what tasks may be blocking others, enabling us to allocate ourselves to the work more efficiently.</p>
<button class="btn btn-primary" data-dismiss="modal" style="background-color: #038a23; border-color: #038a23" type="button">
<i class="fa fa-times"></i>
Close</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Modal 6 -->
<div class="portfolio-modal modal fade" id="portfolioModal6" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="close-modal" data-dismiss="modal">
<div class="lr">
<div class="rl"></div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-8 mx-auto">
<div class="modal-body">
<!-- Project Details Go Here -->
<h2 class="text-uppercase">Results and Lessons Learned</h2>
<p class="item-intro text-muted">This section highlights our competition day performance and our major take-aways.</p>
<img class="img-fluid d-block mx-auto" src="img/modules/post-comp.jpg" alt="">
<p style="margin-bottom:0%"><b>The Result</b></p>
<br><p>PL2 was able to consistently rescue 3 of the 5 plushies, obtaining a total of 9 points (out of 17 - Chewbacca was worth extra). Due to time constraints, we opted to focus on reliably completing the first half of the course than pursuing the second half, meaning we forfeited Chewbacca. This allowed us to focus on speed and consistency, snagging us <b>5th place of 16</b> teams in the final competition.</p>
<br><p style="margin-bottom: 0%"><b>The Takeaway</b></p>
<p>The team picked up many "dos and don'ts" along the way, as we strongly noticed what worked and what did not work. Perhaps our biggest takeaway was to plan "the small things" thoroughly to avoid spending time on them later. Examples:</p>
<ul style="text-align: left">
<li><b>Avoid using header pins</b> - they do not make reliable connections in wired applications</li>
<li><b>Commit to wire placement</b> - Many times we were using connections that would disconnect consitantly, creating a very unreliable system. Having never designed wire managment before we were worried about changing are minds with how we did something, thus having to restart. We ended up changing how we managed our wired three times (complete reboot with solder) anyway and it would have saved time if we just commited and tried sooner.</li>
<li><b>Decoupling Capacitors</b> - Saved our lives. At one point when the 14.5V rail was activated and our motors started the Bluepill mirco-contoller would reset. This was likely caused through an extremly fast voltage drop along the 3.3V rail powering the mirco-contoller. A 500uF capacitor fixed that up instantly through maitining the 3.3V rail high enough for the brief moment it dropped.</li>
<li><b>Design modularly</b> - ensure that each part/system can be easily accessed, replaced and maintained without interfering with other systems. We learned this specifically with our powertrain. It was detachable, thus, changes could be made without invading on the rest of the chassis design.</li>
<li><b>Continuously test</b> - test subsystems, systems and sequences not only for functionality but also for consistency alongside development to save time debugging</li>
<li><b>Sample size</b> - consider outliers in your analysis but do not base your judgement single occurrences (for both failures and successes)</li>
<li><b>Task Delegation</b> - At some points, mainly during testing, it was not necessary for every group memeber to be present. In the event of too many people working on one componant the multitude of opinions bogged down progress. This being said, it was critical in many situations that more than one person was reviewing work to ensure mistakes where not being missed for a long time.</li>
<li><b>Late Nights</b> - Sometimes staying up to un-Godly hours was more of a way to have fun with the lads than actually working efficiently..</li>
</ul>
<button class="btn btn-primary" data-dismiss="modal" style="background-color: #038a23; border-color: #038a23" type="button">
<i class="fa fa-times"></i>
Close</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Bootstrap core JavaScript -->
<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- Plugin JavaScript -->
<script src="vendor/jquery-easing/jquery.easing.min.js"></script>
<!-- Contact form JavaScript -->
<script src="js/jqBootstrapValidation.js"></script>
<script src="js/contact_me.js"></script>
<!-- Custom scripts for this template -->
<script src="js/agency.min.js"></script>
</body>
</html>