You are on page 1of 8
Group 18 Tanbin Tahsin Chowdhury Kiren Rao Michel Abdel Nour Kevin Tchang Sarah Swanson Search and Localize - Overview and Analysis Design Evaluation ‘The main components of the robot consist of two motors, two colour sensors, and one ultrasonic sensor. The EV3 brick is the brain of the robot. The motors used for driving the robot are attached along with the other components, to the EV3 brick using combination of lego bricks, and connected using ethernet cables. Motors attached to the side of the brick have a wheel track of 16cm. ‘The ultrasonic sensor which is used to detect object and also walls for localization, is positioned at the front facing forward along with one colour sensor also facing front, which will be used for identification of the colour blocks. The combined unit is placed at a prime height so that it is able to detect the blocks properly. Another colour sensor is placed at the back facing downwards which is used to detect lines for localization purposes. The robot has been designed keeping it low for stability and all components are put together in a very compact fashion. The 's have been strategically managed and hidden to avoid interruptions and provide a clean look. Figure 1: Hardware design of the robot Figure 2: Software flowchart Test Data Model Acquisition (4x10 independent trials) ‘The working range for the colour sensor is 15cm. Ifthe value exceeds this, the values start to go to zero or the numbers flash on and off. The values were all taken for 5 cm but from different points on the block. For example, if the blue block was being tested, all six sides would be used for testing because there may be differences in the shade or uneven paint marks. This helps to accurately determine the R,G and B value even if the paint is not in perfect condition. ‘RGB Intensity Values for Yellow lock TRB intent Values for Blue Block Tat a A 2 Tal x cl 8 7] _coseea7] —oor27e6| — o.00s8e i] .001s60] 0.003921| — 0.013725| 2096076) 0.011764] — o.o«so 2[ 0.003922] o.coe90i| 0.012745) 3[—o018627] —o.o1176al —o.004so 3[_0.001960] 0003921] 0.012745] 4 ooeer7] 0.011764] —o.oseea 4 0.001960] 0.004903) 0.013725] 3|_oo1se27] 0.012746] —o.oseed | 0.003922] 0.003923] 0.012745] 1 0.196070] 0.012746] 0.004001 ‘| 0.001960] 0.004901] 0.013725] 7 0.96070] 0.011764] —o.oseea 7| 0.003922] 0.008901] 0.012745] ‘| —o018627] 0.011763] —o.0«s01 '3| 0.003822] 0.004901) 0.012748] ‘| onieer7] —o.012746] —ocaseea ‘3 0.001960] 0.003923] 0.013725] 30] 0.196070) 0.011764] 0.0058 40] —0.003922| 0.003923] 0.013725) rear ‘oomscaq] —ooinis7| —on0se ees 0.002841] _o.c08e33] 0.01323! [standard bevation| 0.051633] o.000sa7| _o.cescr] _[StandardDevavon| 0.001038] 0.000517] 0.00051: [RGB intensity Values or Red Bock RG Iensty Vales for White Block Trae ® c 2 Tale © 5 0.019607] o.0029i| —a.oseea 7 Z| oonsis] —aor0see| 0.037352 3] { o.021569] 019607] 0.013720 ‘3 o.oxe666) 0.001960] 0.040 ‘3 0.021569] o.020sea] 0013720) “4 o.0176e7] — o.on2041| o.no«sod “al 0.022500] o.o20seal 0.022352] | _o0176e7] —o.on20e1] o.oseea | 0.002500] o.noseal 0.022352] q A 7] 1 _ B 5 | 0.016666) 0.001960] _0.004o01 0.021569] 0019607] 0.013729 0.016666] 0.001960] __0.004o03 0.022549] 0019607] 0.013729 1016666) 0.002941 — 0.004s04 0.021569] _c20sea| 0.032352 0.017647] 0.029411 o.004s04 (0.022549) o.20seal 0.013729 0] — 0.016666] — 0.002583] 0.005682 ol 0022509] 0019607] 0.032359 can 0.017254] 000267] 0005105] [Mean ‘o.022157| onrorse] 002303 [standard Deviation] 0.000247] 0.000873] 0.000474] standard Deviation! 0.000506] o.o0nsa7] 0.00982 Tables 1,2,3,4: RGB Intensity Values for Coloured Blocks Color and Position Identification (4 independent runs) Note all positions are given in tile units. Blue test block (R.G.B) [0.001960,0.003921,0.013725 [35 [3.5.55 | [o.001960,0.003921,0.013725 [47 dass? fawonting eens fea [ooors60,oomsi coms [35s [36 | [Roby CrP TP PRx, TPR} 0.022549, 0.020588, 0.032352 |74 6.54 fooaasas,cozosea nosmasa [rss fs | meets haansosinnsrsed a a Ee (0.019607, 0.002941, 0.005882 (0.019607, 0.002941, 0.005882 [355 «(36 | (0.019607, 0.002941, 0.005882 [356 (3555 ‘| (0.019607, 0.002941, 0.005882 4 Pec) dre |} “fe ee 2|Saw nothing a 3[0.018627, 0.012746, ooosee2 [635 [oa | 4[0.018627, 0.012746, 0.005882 Table 5,6,7,8: RGB Sample Values for identified blocks Test Analysis Model Acquisition ‘The RGB mean and standard deviation values for each of the four colours are shown in Tables 1, 2, 3 and 4. The Gaussian distributions of the Yellow, White and Red blocks are of similar manner to Plot 1. Gaussian Distribution for RGB intensity values of Blue Block os 0.08 +26 (B) os an +10 (B) 0.025 +20 (8) HA) ma #8) 1a(R)° ° Ae _ AAO ey Fst ft | . 20(G) oons -20(R) “to (B) oot es -20(8) ° 0 2 ‘ 6 8 0 2 “ 6 Plot 1: Gaussian Distribution for the Blue Block Sample calculation of the Mean: ‘The general formula of the mean is calculated as follows: y lu Mean = Where x, is an element in the data set, V is the number of elements in the data set and mis the number count of the element. An example calculation of the mean for the R of the Blue Block is shown: (2.001960) 401003922) 40 091960) 0.01960) 0.005922) 40.0098 430.003822) 0.005522) 40 01940} 0.005922) Tr Mean 002941 ‘Sample calculation of the Standard Deviation: ‘The general formula for the standard deviation is calculated as follows: Where is the mean, x is the value from the data and nr is the number of runs An example calculation of the standard deviation for the R of the Blue Block is shown: 1. (x, — FP = (0.001960 - 0.002941)” = 0.000000962 — continue for values of x, between x, to x1 D(x, -¥)? > summation of the difference of x, and ¥ all squared for all ten runs (n= 10) SD= = 0.001034 Color and Position Identification ‘The way that was used to determine the block position (TPEx,TPEy) was through using the (TPEx,TPEy) as the estimated value. The robot assumes itis at that position, and the odometer reading is taken from there. The Euclidean distance between the estimated position (TPEx,TPEy) and real position (TPRx,TPRy) is shown in Table 9. Note all positions are given in tile units Fieldtestrun | Euclidean Euclidean | Euclidean distance for | distance for | distance for | distance for red block blue block —_| yellow block | white block. 1 0s 0.707 0.707 05 2 0s 05 0S 1 3 os 0.707 0s tt 4 os 0s 1 0s Table 9: Euclidean distance of all recorded RGB values ‘Sample calculation of the Euclidean Distance for the Blue Block: ‘The Euclidean distance between (TPEx,TPEy) and (TPRx,TPRy) is calculated as follow: e= \(TPEx ~TPRxy’ + (TPEy ~ TPRyy =\[(3-3.5Y + (55.5) = 0.707 tile units Where (TPEx,TPEy) and (TPRx,TPRy) are the tile positions of the robot's actual position vations ani clusion: Are rank-ordering Euclidean distances a sufficient means of identifying block colors? Explain in detail why or why not. ‘The rank-ordering of Euclidean distances as @ means of identifying block colours has many downsides to it. If all the Euclidean distances associated with the colours are all very large and the minimum is too small (causing problems with the sensor) the indicated color will not be any of the four blocks. Also, we are not able to see how close to each other each R G B value obtained is. Therefore, when a lot of colours must be recorded, Euclidean distances do not work well. To conclude, using Euclidean distances can have errors and is not always reliable. If we were to use means and standard deviations for a normal distribution, this may be more helpful Is the standard deviation a useful metric for detecting false positives? In other words, if the block color determined using the Euclidean distance metric, dis incorrect, can this false positive be detected by using wt 10 or 4#2o values instead? Under what conditions does the color sensor work best for correctly distinguishing colors? ‘The standard deviation is generally useful for detecting false positives and other outliers that may represent errors. The underlying assumption that needs to be made is that the sample of values are somewhat normally distributed, From this, the boundary condition for detecting outliers (u#10 or #20) may be empirically determined. ‘The color sensor works best within an optimal distance of 5 cm from the block it is ‘measuring, The sensor should ideally by pointing at one of the flat faces of the block. Attempts to distinguish the color when the sensor was at an angle to the face of the block often resulted in failure; the light needs to reflect directly at the sensor. It was also observed during testing that the best results were obtained by sliding the block fairly quickly towards the color sensor (or vice versa). Further Improvements Depending on how you implemented your color classifier, can your results be improved by using one or more of the noise filtering methods discussed in class? It would not be practical to implement a noise filtering method with our current implementation of the color classifier. This is because our color classifier currently samples the sensor reading only once when it is within range of the block, and then chooses a color based on experimentally determined ranges of RGB values. However, a noise filtering method definitely offers potential improvement, especially in case of irregular block surfaces and fluctuations in the ambient lighting, In order to implement a noise filtering method, we would have to take a multitude of samples for each block, and from the sample calculate the mean to reduce the influence of noise, How could you improve the accuracy of your target block's position identification? ‘The accuracy of the target block's position identification can be improved by introducing additional odometry correction methods on top of the initial localisation that is performed at the start. A possibility is to relocalise during the search process at a grid intersection using the light localisation algorithm, This will recalibrate all three odometer coordinates if done correctly, which will for sure improve the accuracy of any block's position identification.

You might also like